Ejer Cici Os

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 11

Ejercicios de programacin

Esta es la versin alpha de una gua de ejercicios que en su gran mayora han sido creados para guas y pruebas, otros han sido obtenidos de internet. Por ser una versin alpha: No se asegura que los ejercicios no estn repetidos No se encuentran resueltos No estn ordenados ni por dificultad ni por tema Algunos pueden indicar que se requiere un algoritmo en pseudocdigo o en un lenguaje en particular, obviamente el enunciado sigue siendo vlido para el lenguaje que se encuentre estudiando. Espero en un futuro poder resolver todos estos ejercicios (y ms!) en distintos lenguajes para dar respuesta a distintos cursos y clasificarlos por temas y dificultad, por el momento es lo que hay! 1.-Hacer un programa que imprima los nmeros del 1 al 100. 2.-Hacer un programa que imprima los nmeros del 100 al 0, en orden decreciente. 3.-Hacer un programa que imprima los nmeros pares entre 0 y 100 tomando a 0 como par. 4. Modifique el ejercicio anterior para imprimir los impares entre 0 y 100 tomando a 0 como par. 5.-Hacer un programa que imprima la suma de los 100 primeros nmeros. 6.-Hacer un programa que imprima los nmeros impares hasta el 100 y que imprima cuantos impares hay. 7.-Hacer un programa que imprima todos los nmeros naturales que hay desde la unidad hasta un numero que introducimos por teclado. 8.-Hacer un programa que solo nos permita introducir S o N, es decir, le pedir al usuario una letra, hasta que sea S o N. 9.-Introducir un numero por teclado. Que nos diga si es positivo o negativo (considere el cero como positivo para este ejercicio). 10.-Introducir un numero por teclado. Que nos diga si es par o impar. 11.-Imprimir y contar los mltiplos de 3 desde la unidad hasta un nmero que introducimos por teclado.

Alberto Ceballos

Pgina 1

Ejercicios de programacin
12.-Imprimir y contar los nmeros que son mltiplos de 2 o de 3 que hay entre 1 y N. 13.-Hacer un programa que imprima el mayor y el menor de una serie de cinco nmeros que vamos introduciendo por teclado (si le ocurri hacer una variable para cada nmero ingresado, no hay problema; pero luego intntelo usando una sola variable para ingresar). 14.- Calcular el factorial de un nmero ingresado por el usuario (Recuerde: factorial(4) = 1*2*3*4, factorial(5) = 1*2*3*4*5, por lo que si un usuario ingresa 6 sera 1*2*3*4*5*6, es decir, imprime 720) 15.-Introducir dos nmeros por teclado. Imprimir los nmeros naturales que hay entre ambos nmeros empezando por el ms pequeo, contar cuantos hay y cuntos de ellos son pares. Calcular la suma de los impares. 16.-Imprimir diez veces la serie de nmeros del 1 al 10. 17. Ingrese un nmero y luego realice un men que tenga las siguientes opciones: 1. imprimir la suma de los nmeros desde el 1 al N 2. imprimir los nmeros desde el 1 al N 3. imprimir el factorial de N 4. salir 18.-Realizar un programa que reciba un nmero N y genere una tabla decreciente, por ejemplo, si se ingresa un 5, entonces imprime: 12345 1234 123 12 1 19.-Comprobar si un nmero mayor o igual que la unidad es primo. Un nmero primo es aquel que es divisible por 1 y por si mismo, pero por ningn otro nmero, por ejemplo el 11 o el 7, pero el 6 no, pues es divisible por 1, 2, 3 y 6 20.-Ingresar N notas y calcular su promedio, si este es menor a 4,0 imprimir reprobado, si es 4,0 imprimir justo justo, si es no mayor que 6,0, pero mayor que 4,0, imprimir buena nota y si es mayor o igual a 6,0 imprimir felicitaciones! 21. Imprimir los primeros N nmeros de la serie fibonacci, la serie de fibonacci se define como: F(0) = 1 F(1) = 1 F(n) = F(n-1) + F(n-2)

Alberto Ceballos

Pgina 2

Ejercicios de programacin
22. Realice un programa que imprima todas las combinaciones de 1,2,3,4 23. Resuelva el problema de las torres de hanoi 24. Cree un programa que reciba un nmero n e imprima n "a" y n "b", es decir, si ingresa el usuario un 5, imprime aaaaabbbbb, luego intente realizarlo sin usar ciclos (for, while o do..while) 25. Cree un programa, que reciba un "reloj" es decir, la hora, los minutos y los segundos para luego recibir una cantidad de segundos en que debe adelantarse el reloj, mostrando la nueva hora. 26. Hacer un programa para calcular el mximo comn divisor de dos nmeros enteros positivos N y M siguiendo el algoritmo de Eucldes, que es el siguiente: 1. Se divide N por M, sea R el resto. 2. Si R=0, el mximo comn divisor es M y se acaba. 3. Se asigna a N el valor de M y a M el valor de R y volver al paso 1. 27. Dados dos nmeros enteros positivos N y D, se dice que D es un divisor de N si el resto de dividir N entre D es 0. Se dice que un nmero N es perfecto si la suma de sus divisores (excluido el propio N) es N. Por ejemplo 28 es perfecto, pues sus divisores (excluido el 28) son: 1, 2, 4, 7 y 14 y su suma es 1+2+4+7+14=28. Cree un programa que reciba un nmero N e indique si es perfecto. 28. Se tienen 2n cartas numeradas 1, 2, , n, n+1, , 2n y esta es tambin su secuencia original. Un barajeo de cartas es el proceso de convertir la secuencia original en n+1, 1, n+2, 2,, 2n, n. La secuencia original puede volver a formarse despus de cierto nmero de barajeos. Sin embargo no conocemos exactamente cuntas veces necesitamos barajar las cartas para regresar a la secuencia original para una cantidad M de cartas. Entrada M (que corresponde a 2n cartas). Salida: el nmero de barajeos. Se pide el un programa que permita encontrar la solucin al problema realizando los barajeos. 29. Los conejos se reproducen rpidamente, a los 2 meses de nacidos ya pueden reproducirse y lo hacen cada mes, cada pareja de conejos da a luz 2 conejos, estos extraos conejos son inmortales. Cree un programa que retorne el nmero de conejos existentes en una cantidad n de meses sabiendo que se inicia con una pareja de conejos recin nacidos. 30. Un laboratorio de investigacin distribuye una colonia de bacterias en un cultivo, que se puede considerar como una superficie cuadriculada de N x N, cada casilla de esta superficie, puede estar vaca o puede contener una bacteria. A partir de cualquier configuracin inicial, la colonia evoluciona generacin a generacin segn unas leyes genticas fijas y determinadas y que dependen del nmero de vecinos que tenga cada casilla.

Alberto Ceballos

Pgina 3

Ejercicios de programacin
Para todas y cada una de las generaciones las leyes genticas son: Nacimiento: en toda casilla vaca que tenga exactamente 3 vecinos. Muerte por aislamiento: toda bacteria que ocupe una casilla con ms de 3 vecinos. Muerte por asfixia: toda bacteria que ocupe una casilla con ms de 3 vecinos. Supervivencia: toda bacteria que ocupe una casilla con 2 o 3 vecinos. Se pide simular la evolucin de una colonia inicial durante un cierto nmero de generaciones. Ejemplo: Evolucin de un cultivo de 4x4 en 2 generaciones. * * * * * * * * * *

* *

* *

* *

31. Escribir un programa que encuentre el mayor y menor ingresado dentro de una matriz de mxn 32. Escribir un programa que sume los elementos de cada fila de una matriz de nxm 33. Escribir un programa que sume los elementos de cada columna de una matriz de nxm 34. Escribir un programa que sume los elementos de la diagonal principal de una matriz de nxm 35. Escribir un programa que sume los elementos de la diagonal secundaria de una matriz de nxm 36. Escribir un programa que copie los elementos de los bordes en sentido horario de una matriz de nxm en un vector resultante llamado v, imprima su contenido. 37. Escribir un programa que sume e imprima cada elemento en una matriz de mxn, que forme en ella la letra N

Alberto Ceballos

Pgina 4

Ejercicios de programacin
38. Escribir un programa que al ingresar el usuario una matriz de nxn entregue la traspuesta. 39. Escriba un programa que permita multiplicar dos matrices, la primera de nxm y la segunda de mxr, donde n, m, r pueden o no ser diferentes. 40. Frankkie, Merlin y sus hermanos son animalitos que les gusta jugar a las escondidas. Pero como son animalitos no saben jugar muy bien y a veces, confunden el juego con ajedrez. As es como juegan ellos: Uno de ellos la cuenta y es el que debe encontrar al resto. El resto, se ubica en cualquier posicin esperando no ser visto (no saben esconderse) y no saben si el que la cuenta los puede ver. En el lugar donde juegan (el terreno de juego), hay diversos objetos en distintas posiciones. El que la cuenta slo mira en lnea recta y en diagonal, tal y como lo hace la reina en el ajedrez, ya que as ellos entienden el juego. Aydales a jugar, ellos te entregan un plano con la ubicacin de todos los objetos que hay en el terreno de juego, cada uno te dir la coordenada de donde se esconder y quin es el que la cuenta. Realice un programa que entregue quienes son visibles para el que la cuenta. 41. Cree un programa que reciba un numero n y retorne la suma de todos los nmeros menores o iguales que n y mayores que cero, sin usar ciclos ni formulas. 42. Implemente de forma recursiva, un programa que imprima el mximo comn divisor de dos nmeros enteros utilizando el algoritmo de Euclides. Dados dos nmeros enteros positivos m y n, tal que m > n, para encontrar su mximo comn 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 mximo comn divisor es MCD(n,r). 43. Cree un programa que reciba dos nmeros n y m, y sin el uso de ciclos imprima todas las combinaciones posibles de los rangos [1..n] y [1..m], por ejemplo si el usuario ingresa 3 y 4 debe imprimir: 11 12 13 14 21 22 23 24 31

Alberto Ceballos

Pgina 5

Ejercicios de programacin
32 33 34 44. Cree un programa que reciba un nmero n y retorne un string de n "a" y n "b", por ejemplo si n es 5, entonces imprime aaaaabbbbb, recuerde no puede usar ciclos pero puede usar subrutinas auxiliares. 45. Ahora ranas inmortales. Una familia de ranas africanas se compone inicialmente de padre y madre, luego de 3 meses de vida se reproducen teniendo 100 hijos en cada camada, cada par de hijos forma una familia, la que tambin se reproduce a los tres meses. Las ranas se reproducen cada tres meses. Cada 6 meses, en los das posteriores a la reproduccin, se realiza una comilona canbal donde cada una de las ranas reproductivas se come a 20 parejas de ranas no reproductivas. Realice un programa que dado un nmero de meses ingresado por el usuario y sabiendo que se inicia con una pareja de ranas, entregue el nmero de ranas al finalizar el periodo de tiempo sealado. 46. Cree un programa que imprima todas las posibles descomposiciones de un nmero natural ingresado por el usuario como suma de nmeros menores que l (sumas con ms de un sumando). 47. Las Torres de Hanoi es un juego cuya solucin se simplifica mucho si se piensa como un problema recursivo. Se tienen 3 palos de madera, que llamaremos palo izquierdo, central y derecho. El palo izquierdo tiene ensartados un montn de discos concntricos de tamao decreciente, de manera que el disco mayor est abajo y el menor arriba. El problema consiste en mover los discos del palo izquierdo al derecho respetando las siguientes reglas: Slo se puede mover un disco cada vez. No se puede poner un disco encima de otro ms pequeo. Despus de un movimiento todos los discos han de estar en alguno de los tres palos. Se quiere disear un programa que lea por teclado un valor entero N y escriba la secuencia de pasos necesarios para resolver el problema de las torres de Hanoi para N discos. 48. Debe crear un programa sin ciclos donde el usuario debe ingresar un nmero el cul usar para imprimir un tringulo de nmeros de la siguiente forma, supongamos que el usuario ingreso el nmero 6, entonces el programa deber imprimir por pantalla: 123456 23456 3456 456 56

Alberto Ceballos

Pgina 6

Ejercicios de programacin
6 49. El mtodo ruso de multiplicacin de dos nmeros A*B realizado a mano consiste en: Escribir los nmeros (A y B) que se desea multiplicar en la parte superior de sendas columnas. Dividir A entre 2, sucesivamente, ignorando el resto, hasta llegar a la unidad. Escribir los resultados en la columna A. Multiplicar B por 2 tantas veces como veces se ha dividido A entre 2. Escribir los resultados sucesivos en la columna B. Sumar todos los nmeros de la columna B que estn al lado de un nmero impar de la columna A. ste es el resultado. Ejemplo: 27 82 A 27 13 6 3 1 B 82 164 328 656 1312 Resultado 656 1312 2214 Sumandos 82 164

Usted debe realizar un programa sin ciclos que reciba dos nmeros a multiplicar y seguir el mtodo ruso para multiplicar estos dos nmeros, se solicita imprimir el resultado, lo importante es que realice los procedimientos solicitados. 50. El usuario podr ingresar cuantos nmeros desee mientras diga continuar, si dice basta ya no podr ingresar ms, el programa deber entregar cuantos de los nmeros que fue ingresando son primos (un nmero primo es aquel que slo es divisible por 1 y por si mismo).

51. Realice un programa que permita al usuario ingresar una matriz de nxn nmeros enteros. La idea es que, por ejemplo, si el usuario decide usar una matriz de 4x4 y luego la llena, la estructura debera quedar de la siguiente forma (los valores de la matriz de ejemplo son aleatorios y no tienen relevancia para el problema, es el usuario quien ingresa los nmeros): [[1,2,3,4] Alberto Ceballos Pgina 7

Ejercicios de programacin
[5,6,7,8] [9,10,11,12] [13,14,15,16]] Luego de ingresada la matriz deber mostrar la suma de los valores que forman una N dentro de la matriz, para el ejemplo seran 13+9+5+1+6+11+16+12+8+4, note que los valores de las esquinas (1 y 16 en el ejemplo) slo son utilizados una vez en la suma. 52. Una de las formas ms simples del suavizado de imgenes digitales es en el sistema RGB (Red-Green-Blue), donde cada pxel se forma por estos tres colores, representados por tres nmeros con un rango de 0 a 255. Para suavizar la imagen fcilmente, existen 2 tcnicas bsicas, de cuatro vecinos y de ocho vecinos, donde cada valor de cada color de un pxel se cambia por el valor promedio de sus vecinos, ya sean cuatro (arriba, abajo, izquierda y derecha u ocho (todos los que lo rodean), obviamente cuando un pxel se encuentra en una posicin donde no posee todos los vecinos, sus valores se promedian slo con los vecinos que tiene. Dada una imagen de m x n pxeles y la eleccin de la tcnica, entregue la imagen suavizada. 53. Permita al usuario ingresar los elementos de un arreglo de largo n, y luego en un mtodo recursivo, que reciba el arreglo y los argumentos que usted considere necesarios, sume todos los elementos en posiciones pares y reste todos los elementos en posiciones impares del arreglo. 54. Permita al usuario ingresar una matriz de nxn (la dimensin la decide el usuario, pero es una matriz cuadrada) y luego sume todos los elementos que se encuentran en las filas pares (tomando tambin el 0 como par), con las columnas impares, aquellos elementos que coinciden con ambas condiciones, deben sumarse slo una vez.

55. Genere una clase (si corresponde) que contenga un mtodo que reciba un arreglo de palabras y verifique si el arreglo es palndromo, esto es cuando al leer el arreglo palabra por palabra desde el final al inicio se lee lo mismo que al leerlo palabra por palabra desde el inicio al final. Por ejemplo: { esto, es, un, ejemplo, ejemplo, un, es, esto} Ejemplo de lo que no es un arreglo palndromo: {anita, lava, la, tina} 56. Crear un programa que reciba una palabra y luego imprima si la palabra es un palndromo o no.

Alberto Ceballos

Pgina 8

Ejercicios de programacin
57. Debe recibir una palabra e imprimir si tena el teclado pegado o no, esto ocurre cuando cada letra esta repetida inmediatamente, por ejemplo, el usuario quera escribir hola, pero como su teclado estaba pegado escribi hhoollaa. 58. Usted ha sido contratado para formar parte de un equipo de inteligencia mega secreto, todos los mensajes enviados por los integrantes del equipo deben ser codificados, pero la comunicacin se ha hecho muy lenta pues actualmente no usan ninguna herramienta informtica, por lo que usted tiene la misin de crear un programa que reciba un String y lo codifique segn el mtodo cenit polar. Cada aparicin de la letra c es cambiada por la letra p, la e por la o, etc. Y luego debe imprimir el mensaje codificado. De usted depende que su equipo no sea descubierto. Buena suerte.

59. Debe hacer un programa para Don Memento, el siempre escribe algo y luego se acuerda de algo ms que quera escribir, entonces usted har un programa que sea capaz de recibir un String una y otra vez hasta que Don Memento escriba stop, estos Strings deber concatenarlos uno tras otro e imprimirlo todo junto luego de ingresada la palabra stop. Por ejemplo: Quiero Sacarme Un Siete stop Debe imprimir: QuieroSacarmeUnSiete 60. Usted forma parte de un equipo informtico a cargo de la implementacin de un software para un casino. Dentro de este gran software a usted se le ha encargado una importante misin, debe barajar las cartas. Las cartas estn representadas por strings, donde cada carcter representa una carta diferente, usted deber crear un programa tenga un mtodo que reciba dos Strings que representan mazos de cartas, el mtodo deber barajarlas, lo que significa que deber intercalar un carcter del primer String con uno del otro. Si un String es ms largo que el otro, simplemente se intercalan las primeras cartas hasta agotar el String ms corto y luego se agrega el resto de caracteres del String ms largo.

Alberto Ceballos

Pgina 9

Ejercicios de programacin
61. Debe crear un programa que reciba un String y cuente cuantas silabas ba contiene, por ejemplo, el String abalarajarbarja posee 2 slabas ba (esto debe responder su mtodo), una que comienza en la posicin 1 y otro en la posicin 10. 62. Debe crear un programa que reciba un arreglo de enteros y que intercambie los valores de las posiciones pares con las impares cuando esto sea posible (cuando tiene largo impar el arreglo, la ltima posicin queda intacta), por ejemplo el arreglo A = [0, 3, 6, 2, 1] quedara despus del mtodo A = [3, 0, 2, 6, 1] 63. Se sabe que en cada dcada existe un nmero que impera en las mentes de todos los jvenes, claro que si estn pensando en alguna cosa que se encuentre relacionada con otro nmero si les pregunta por un nmero no dirn el nmero de moda. Es por esto que usted realizar un Encuestador, tendr que permitir el ingreso del resultado de la encuesta, que sern 25 nmeros y deber guardarlos en un arreglo, luego crear un mtodo que permita recibir el arreglo y que encuentre el nmero de moda, que ser el ms repetido dentro del arreglo. 65. Usted es un investigador de lo paranormal y las sectas, debe realizar un programa para descubrir mensajes ocultos en una serie de palabras, para esto ingresar palabras a un arreglo modificando el resultado del ejercicio 1. El primer mtodo que crear ser para descubrir a sectas principiantes, por lo que no saben ocultar bien sus mensajes, slo habrn dicho las palabras al revs, por lo que deber imprimir las palabras del arreglo desde la ltima a la primera. El segundo mtodo ser el mismo que descubri a Xuxa, donde no solo se tendrn las palabras desde la primera a la ltima, sino que adems cada palabra se imprimir a la inversa. La tercera y ms compleja es la de la serpiente, donde se toman las 2 primeras letras de las palabras en posiciones pares desde la ltima a la primera (la posicin cero se considera par) y se intercalan con las 2 ltimas letras de las palabras impares desde la primera hasta la ltima. Tenga cuidado con lo que puede encontrar. 66. Construir un programa que permita obtener los coeficientes de las potencias de x (ordenadas crecientemente) a partir del desarrollo de un binomio, con la frmula de Newton:

n ( a + x ) = a n k x k k =0 k
n

k =n

n n! con = k (n k )!k!

Ejemplo:

(2 + x )3 =

3 3 0 3 2 1 3 1 2 3 0 3 2 x + 2 x + 2 x + 2 x = 8 + 12 x + 6 x 2 + x 3 1 2 3 0

Entonces el algoritmo debe retornar los valores 8, 12, 6, 1 (correspondientes a las potencias desde n=0 a n=3).

Alberto Ceballos

Pgina 10

Ejercicios de programacin
67. Escriba un programa que convierta un entero positivo a Nmero Romano. Asuma que el nmero a convertir es menor a 5000. La regla para construir un Nmero Romano es asumida como sigue. En un sistema de Nmeros Romanos, i es el smbolo para 1, v para 5, x para 10, l para 50, c para 100, d para 500 y m para 1000. Smbolos con valores grandes usualmente estn antes de smbolos de valores bajos. El valor de un Nmero Romano es, en general, la suma de los valores de los smbolos. Por ejemplo, ii es 2, viii es 8. Sin embargo, si un smbolo con valor bajo aparece antes de un smbolo de valor grande, el valor de esos dos smbolos es la diferencia de los dos valores. Por ejemplo, iv es 4, ix es 9, y lix es 59. Note que cuatro smbolos consecutivos en Nmero Romano no pueden ser los mismos. Por ejemplo, iv, pero no iiii, es el Nmero Romano 4. Los Nmeros Romanos Construidos en esta forma no pueden ser los nicos. Por ejemplo, tanto mcmxc y mxm son validos para 1990. Aunque el Nmero Romano generado por tu programa no necesita ser corto, nunca use vv para 10, ll para 100, dd para 1000, o vvv para 15, etc.

68. Hace algunos aos en el sur del pas, hubo una sobrepoblacin de conejos debido a la caza indiscriminada de lobos. Hoy se intenta mantener el equilibrio del ecosistema, estudiando el desarrollo y comportamiento de estos animales y se ha llegado a conocer que los conejos a los 2 meses de nacidos ya pueden reproducirse y cada pareja de conejos se reproduce una vez al mes teniendo 2 conejos. Por otro lado, los lobos se pueden reproducir a los 14 meses de nacidos y cada pareja se reproduce una vez al ao teniendo 4 lobos. Los lobos comienzan a cazar tambin a los 14 meses, comiendo 4 conejos al ao (1 cada 3 meses). Por otro lado el hombre tambin caza 4 conejos al ao (1 cada 3 meses) y 1 lobo cada 12 meses. Dadas 2 parejas de conejos recin nacidos y 2 de lobos, tambin recin nacidos. Realice un algoritmo en pseudocdigo que determine el nmero de conejos y lobos dado un nmero de meses, para que los cientficos puedan evaluar si ser necesario realizar una mayor caza de conejos o de lobos.

Alberto Ceballos

Pgina 11

También podría gustarte