Este sitio web usa cookies de terceros para
analizar el tráfico y personalizar los anuncios.
Si no está de acuerdo, abandone el sitio y no siga
navegando por él.
×
Lista de ejercicios propuestos
(Cantidad de ejercicios propuestos en esta versión del curso: 86)
Apartado 1a: Crea un programa similar al primer ejemplo que hemos visto, pero que, en vez de escribir Hola, escriba tu nombre.
Apartado 2.2a: Crea un programa que, en lugar de preguntarte tu nombre, te pregunte tu edad y luego la escriba en pantalla.
Apartado 2.2b: Crea un programa que te pregunte dos números del 1 al 10 y escriba su suma.
Apartado 2.2c: Crea un programa que te pregunte tres letras y luego las escriba en orden inverso.
Apartado 2.2d: Crea un programa que te pida tres palabras y las muestre separadas por espacios y en el orden contrario a como las has introducido (primero la tercera palabra, después la segunda y finalmente la primera).
Apartado 2.2e: Crea un programa que te pida dos números reales y muestre en pantalla el resultado de multiplicarlos.
Apartado 2.2f: Crea un programa que cree una variable de tipo boolean, le asigne el valor TRUE y luego muestre dicho valor en pantalla.
Apartado 2.2g: Crea un programa que reserve espacio para un Array de 3 números enteros, que asigne a sus elementos los valores 3, 5 y 8, y que después muestre en pantalla la suma de los valores de sus 3 elementos.
Apartado 2.2h: Crea un programa que defina una variable que sea un registro con dos campos: X e Y, ambos números enteros. El campo X debe valer 20, e Y debe valer 30. Después deberá mostrar en pantalla la suma de X e Y.
Apartado 3.3a: Crea un programa que pida al usuario dos números reales y muestre en pantalla el resultado de su división, con dos cifras decimales.
Apartado 3.4a: Crea un programa que pida al usuario su nombre y su apellido y luego los escriba al revés, separados por una coma. Por ejemplo si el usuario introduce Nacho como nombre y Cabanes como apellido, se escribirá Cabanes, Nacho.
Apartado 4.1a: Crea un programa que pida al usuario dos números reales y muestre cuando es el resultado de su división (sólo la parte entera) y el resto de la división. Por ejemplo, si se indican los números 21 y 5, el programa debería responder que el resultado de la división es 4 y que el resto es 1
Apartado 4.2a: Crea un programa que pida al usuario su nombre y su apellido, cree una cadena formada por el apellido, una coma y el nombre (por ejemplo si el usuario introduce Nacho como nombre y Cabanes como apellido, la cadena contendrá "Cabanes, Nacho"), y finalmente escriba esa cadena.
Apartado 4.4a: Crea un programa que pida al usuario un número entero, le aplique una operación XOR 21 y muestre el resultado, aplique nuevamente una operación XOR 21 sobre dicho resultado y muestre el valor final obtenido
Apartado 5.1a: Crea un programa que pida al usuario un número entero y diga si ha tecleado el número 5 o ha tecleado un número distinto.
Apartado 5.1b: Crea un programa que pida al usuario un número real y diga si es mayor de 10.
Apartado 5.1c: Crea un programa que pida al usuario un número entero y diga si es par (pista: habrá que comprobar el resto de la división entre 2).
Apartado 5.3a: Crea un programa que pida al usuario un su nombre. Sólo si ese nombre es "Juan", deberá entonces pedirle una contraseña, y en caso de que la contraseña sea "1234", le responderá diciendo "Bienvenido!"
Apartado 5.4a: Crea un programa que pida al usuario un número real y diga si ha tecleado el número 5 o ha tecleado un número distinto, usando "else".
Apartado 5.4b: Crea un programa que pida al usuario un número entero y diga si es par o es impar.
Apartado 5.4c: Crea un programa que pida al usuario dos números enteros y diga el resultado de dividir el primero entre el segundo si el segundo no es cero, o que escriba "no se puede dividir" en caso contrario.
Apartado 5.4d: Crea un programa que pida al usuario un número real y muestre su valor absoluto (si es positivo, lo mostrará tal cual; si es negativo, le cambiará el signo).
Apartado 5.5a: Crea un programa que pida al usuario un número entero y diga si es mayor de 10, es menor de 10 o es exactamente 10.
Apartado 5.5b: Crea un programa que pida al usuario dos números reales y que diga si son iguales, o, en caso contrario, diga cual es el mayor de los dos.
Apartado 5.6a: Crea un programa que pida al usuario un número entero y diga si es par y a la vez múltiplo de 3.
Apartado 5.6b: Crea un programa que pida al usuario dos números reales y diga si ambos positivos.
Apartado 5.6c: Crea un programa que pida al usuario un número entero del 1 al 3, y escriba en pantalla "Uno", "Dos", "Tres" o "Número incorrecto" según corresponda.
Apartado 5.6d: Crea un programa que pida al usuario un número, una operación (+, -, * o /) y otro número, y muestre el resultado de aplicar esa operación a esos dos números.
Apartado 6.1a: Crea un programa que muestre los números del 10 al 15, cada uno en una línea.
Apartado 6.1b: Crea un programa que muestre los números del 5 al 20, todos ellos en la misma línea, separados por espacios en blanco.
Apartado 6.1c: Crea un programa que escriba 10 veces "Hola" (en la misma línea).
Apartado 6.2a: Crea un programa que escriba tres veces seguidas los números del 1 al 3.
Apartado 6.2b: Crea un programa que escriba 3 líneas, cada una de las cuales contendrá 4 veces la palabra "Hola".
Apartado 6.4a: Crea un programa que escriba las letras de la B a la M.
Apartado 6.4b: Crea un programa que escriba las letras de la Z a la A (de forma descendente).
Apartado 6.4c: Crea un programa que escriba los números del 10 al 1 (de forma descendente).
Apartado 6.4d: Un programa que escriba la secuencia de números 2, 4, 6, 8 ... 16.
Apartado 6.4e: Un programa que escriba la secuencia de números 6, 5, 4,..., 1.
Apartado 6.4f: Un programa que escriba la secuencia de números 3, 5, 7,..., 21.
Apartado 6.4g: Un programa que escriba la secuencia de números 12, 10, 8,..., 0..
Apartado 6.4h: Crea un programa que sume dos vectores, cuyos componentes indicará el usuario. Por ejemplo, la suma de (1,2,3) y (7,11,-1) sería (8,13,2).
Apartado 6.4i: Crea un programa que halle el producto escalar dos vectores, cuyos componentes indicará el usuario.
Apartado 6.4j: Crea un programa que multiplique dos matrices.
Apartado 6.4k: Para los más osados (y que conozcan el problema), un programa de resolución de sistemas de ecuaciones por Gauss.
Apartado 6.5a: Crea un programa vaya sumando los números que el usuario introduzca, y mostrando dicha suma, hasta que introduzca el número 0, usando "while".
Apartado 6.5b: Crea un programa que pida al usuario su contraseña. Deberá terminar cuando introduzca como contraseña la palabra "acceso", pero volvérsela a pedir tantas veces como sea necesario.
Apartado 6.5c: Crea un programa que escriba en pantalla los números del 1 al 10, usando "while".
Apartado 6.6a: Crea un programa que pida números positivos al usuario, y vaya calculando la suma de todos ellos (terminará cuando se teclea un número negativo o cero), usando "repeat".
Apartado 6.6b: Crea un programa que escriba en pantalla los números pares del 26 al 10 (descendiendo), usando "repeat".
Apartado 6.6c: Crea un programa que pida al usuario su nombre de usuario y su contraseña, y no le permita seguir hasta que introduzca como nombre "yo" y como contraseña "acceso", usando "repeat"
Apartado 6.7a: Mejorar el programa de la clave de acceso con "while" (6.5b), para que avise de que la clave no es correcta..
Apartado 6.7b: Mejorar el programa de la clave de acceso con "repeat" (6.6c), para que avise de que la clave no es correcta..
Apartado 6.7c: Mejorar más todavía el programa de la clave de acceso con "while", para que sólo haya tres intentos.
Apartado 6.7d: Mejorar más todavía el programa de la clave de acceso con "repeat", para que sólo haya tres intentos.
Apartado 6.9a: Crea un programa que pida al usuario cuatro nombres y luego muestre todos ellos en la misma línea.
Apartado 6.9b: Crea un programa que pida al usuario varios nombres, hasta que introduzca "fin" y luego diga si alguno de ellos es "Nacho".
Apartado 6.9c: Crea un programa que pida al usuario varios nombres, luego le pregunte tres que quiera borrar (para lo que usará "centinelas") y luego muestre todos los nombres que no se han borrado.
Apartado 7.1a: Modificar el programa de adivinar números (apartado 6.8) para que el número a adivinar deba estar entre 1 y 1000 (estos límites se definirán mediante constantes) y el máximo de intentos permitidos sea 10 (también mediante una constante).
Apartado 7.3a: Crear un tipo de datos llamado "punto", que sea un registro formado por dos componentes, X e Y, números reales. Pedir al usuario el valor de X e Y para dos puntos distintos y calcular la distancia entre esos dos puntos.
Apartado 8.1a: Crear un procedimiento "LimpiarPantalla", que escriba 25 líneas en blanco en la pantalla, de modo que el texto que estaba escrito anteriormente en pantalla deje de estar visible (en una pantalla de texto convencional de 80x25 caracteres).
Apartado 8.2a: Crear una función "triple", que reciba un número real como parámetro, y devuelva como resultado ese número multiplicado por tres.
Apartado 8.2b: Crear una función "media", que reciba dos números reales como parámetros, y devuelva como resultado su media artimética.
Apartado 8.4a: Crear una función "potenciaReal", que trabaje con números reales, y permita cálculos como 3.2 ^ 1.7 (pista; hay que usar una par de funciones matemáticas: las exponenciales y los logaritmos; si te rindes, puedes mirar la ampliación 1 del curso).
Apartado 8.4b: Hacer una función que halle la raíz cúbica del número que se le indique (pista: hallar una raíz cúbica es lo mismo que elevar a 1/3).
Apartado 8.4c: Definir las funciones suma y producto de tres números, y crear un programa que haga una operación u otra según le indiquemos (empleando "case", etc).
Apartado 8.4d: Un programita que halle la letra (NIF) que corresponde a un cierto DNI (documento nacional de identidad) español.
Apartado 8.4e: Crea un programa que sume dos números "grandes", de 30 cifras. Esos números deberemos leerlos como "string" y sumarlos "letra a letra". Para ello, deberás crear una función "sumar", que reciba como parámetros dos "strings", y que devuelva su resultado en un nuevo "string".
Apartado 8.4f: Crea un programa que multiplique dos números "grandes", de entre 30 y 100 cifras, por ejemplo. Para esos números no nos basta con los tipos numéricos que incorpora Pascal, sino que deberemos leerlos como "string" y pensar cómo multiplicar dos strings: ir cifra por cifra en cada uno de los factores y tener en cuenta lo que "me llevo"...
Apartado 8.6a: Crear una función "intercambia", que intercambie el valor de los dos números enteros que se le indiquen como parámetro.
Apartado 8.6b: Crear una función "iniciales", que reciba una cadena como "Nacho Cabanes" y devuelva las letras N y C (primera letra, y letra situada tras el primer espacio), usando parámetros por referencia.
Apartado 8.8a: Crear una función recursiva que halle el producto de dos números enteros.
Apartado 8.8b: Crear otra función que halle la potencia (a elevado a b), también recursiva.
Apartado 8.8c: Hacer un programa que halle de forma recursiva el factorial de cualquier número, por grande que sea. (Pista: habrá que usar la rutina de multiplicar números grandes, que se propuso como ejemplo en el apartado anterior)
Apartado 8.8d: Crear un programa que emplee recursividad para calcular un número de la serie Fibonacci (en la que los dos primeros elementos valen 1, y para los restantes, cada elemento es la suma de los dos anteriores).
Apartado 8.8e: Crea un programa que emplee recursividad para calcular la suma de los elementos de un vector.
Apartado 8.8f: Crear un programa que encuentre el máximo común divisor de dos números usando el algoritmo de Euclides: Dados dos números enteros positivos m y n, tal que m > n, para encontrar su máximo común divisor, es decir, el mayor entero positivo que divide a ambos: - Dividir m por n para obtener el resto r (0 ? r < n) ; - Si r = 0, el MCD es n.; - Si no, el máximo común divisor es MCD(n,r).
Apartado 13.3a: ¿Se podría quitar de alguna forma el segundo "else" de InsertaLista?
Apartado 13.3b: ¿Cómo sería un procedimiento que borrase toda la lista?
Apartado 13.3c: ¿Cómo sería un procedimiento de búsqueda, que devolviera la posición en la que está un dato, o NIL si el dato no existe?
Apartado 13.3d: ¿Cómo se haría una lista "doblemente enlazada", que se pueda recorrer hacia adelante y hacia atrás?
Apartado 13.5a: Implementar una pila de strings[20]
Apartado 13.5b: Implementar una cola de enteros
Apartado 13.5c: Implementar una lista doblemente enlazada que almacene los datos leídos de un fichero de texto (mejorando el lector de ficheros que vimos)
Apartado 13.5d: Implementar una lista simple que almacene los datos leídos de un fichero de texto, pero cuyos elementos sean otras listas de caracteres, en vez de strings de tamaño fijo
Apartado 13.5e: Añadir la función "buscar" a nuestro árbol binario, que diga si un dato que nos interesa pertenece o no al árbol (TRUE cuando sí pertenece; FALSE cuando no).
Apartado 13.5f: ¿Cómo se borraría un único elemento del árbol?