Documente Academic
Documente Profesional
Documente Cultură
Recopilado por: Docentes del rea de Programacin / Trayecto I / Trimestre II Unidad Curricular: Programacin I Pgina 2
ndice
Pgina Objetivo 1.- Arreglos, Cadenas de Caracteres, Rutinas de 4 Ordenamiento y Rutinas de Bsqueda Objetivo 2.- Funciones y Recursividad Objetivo 3.- Punteros o Apuntadores Objetivo 4.- Estructuras Objetivo 5.- Archivos 16 25 32 40
Recopilado por: Docentes del rea de Programacin / Trayecto I / Trimestre II Unidad Curricular: Programacin I Pgina 3
2. Escribir un programa que lea 5 nmeros y los guarde en un arreglo, luego pida un nuevo nmero e indique si este se encuentra dentro del arreglo y en que posiciones
3. Escribir un programa que lea dos vectores de igual dimensin y calcule el vector suma y el vector diferencia. Suponga que ambos arreglos tienen dimensin n, la salida debe ser los arreglos procesados.
4. Escribir un programa que lea un conjunto de n valores y cree dos arreglos, uno que contenga los nmeros pares y otro que contenga los nmeros impares.
5. Elabore un programa que lea 2 arreglos de n elementos cada uno e intercambie sus elementos, la salida debe ser los arreglos antes y despus del intercambio.
6. Escribir un programa que lea una lista de valores y construya dos arreglos, uno con los que estn dentro del intervalo (a, b), donde a y b son nmeros dados, y otro con los valores que estn fuera del intervalo, la salida debe ser el arreglo original y los arreglos creados, si no hay elementos dentro y fuera del arreglo debe decirlo.
7. Disee un programa que lea una serie de nombres de un curso determinado y sus respectivas notas, luego cree 2 arreglos solo con
Recopilado por: Docentes del rea de Programacin / Trayecto I / Trimestre II Unidad Curricular: Programacin I Pgina 4
8. Una orquesta est formada por n msicos, escribir un programa que lea dos vectores nombre y edad, para luego determinar cual de las personas es ms vieja y cual es ms joven, se debe imprimir el nombre de la persona con su respectiva edad.
9. Disee un programa que lea un vector x de n elementos y construya otro vector que contenga al vector x comprimido, es decir, que no existan elementos iguales.
10. Disee un programa que lea un vector x de n elementos y construya otro vector que contenga al vector x en orden inverso. El programa debe imprimir los dos arreglos.
11. Elabore un programa que dados dos arreglos a y b de m y n elementos respectivamente realice la interseccin y la unin en forma de conjunto. Se debe mostrar los dos arreglos originales, el vector unin y el vector interseccin.
12. Elabore un algoritmo que lea un arreglo de caracteres y determine si la frase es un palndromo, una palabra es palndromo si se lee de igual forma en ambos sentidos.
13. Elabore un programa que cargue un arreglo con 15 nmeros de cdulas, stos no deben estar repetidos. Si la persona introduce un nmero de cdula y ya existe en el vector se debe emitir un mensaje diciendo: Usted ya fue inscrito. En caso de que no exista debe ser agregado a la lista. Una vez cargado el vector debe imprimirlo.
Recopilado por: Docentes del rea de Programacin / Trayecto I / Trimestre II Unidad Curricular: Programacin I Pgina 5
14. Elabore un programa que permita realizar bsquedas en un vector con los nmeros de cdulas de 20 personas que pertenecen a la empresa: ZTA C.A. Se van a hacer bsquedas hasta que el usuario lo desee. Si la cdula a buscar no existe escribir el mensaje persona no pertenece a la empresa. Al finalizar la bsqueda se debe imprimir cuantas cdulas pertenecan a la empresa y cuantas fueron bsquedas fallidas.
15. Elabore un programa en C que permita cargar 2 matrices de orden 4x4 y que haga la suma de las matrices almacenando el resultado en una matriz C.
16. Elabore un programa que cargue 2 matrices de orden 2x2 c/u y calcule el producto de ambas matrices en una matriz c.
17. Elabore un programa en C que cargue en una matriz de 3x7 el nmero de zapatos vendidos por tres vendedores cada da de la semana. Se deben calcular los totales vendidos por cada vendedor durante la semana y los totales vendidos por da en la zapatera. Se deben utilizar 4 arreglos adicionales para: almacenar los das de la semana, almacenar los nombres de los tres vendedores. Almacenar las ventas totales semanales de cada vendedor y los totales de las ventas diarias.
18. Elabore un programa en C que lea las temperaturas que se han presentado durante las 24 horas en una determinada semana y se debe calcular la media de las temperaturas por cada da. 19. Elabore un algoritmo donde se simule el juego de la guerra. El juego se basa en adivinar las posiciones donde el enemigo posee sus
Recopilado por: Docentes del rea de Programacin / Trayecto I / Trimestre II Unidad Curricular: Programacin I Pgina 6
armamento gana los puntos de dicho armamento, si no existen armamentos se van acumulando sus fallos, hasta un mximo de 5. Si el jugador adivina todo el armamento se indica un mensaje que GANO y se muestra el total de puntos acumulados. Si fall 5 veces se enva un mensaje que PERDI y se sealan el total de puntos acumulados. Se poseen en total: 5 aviones, 3 barcos y 2 tanques. Cada armamento est representado por una letra: A aviones, B barcos , T tanques y una X posicin vaca, que representa un fallo en el disparo. Leyenda
Nombre col campo Descripcin Total de columnas fil Nombre Descripcin Total de filas Matriz de posiciones, sealadas por el jugador. totbarcos tottanques totaviones fallo maxfalla i j perdio Total de barcos 3 Total de tanques 2 Total de aviones 5 Total de fallas del jugador Mxima de fallas del jugador. Subndice de las filas Subndice de las columnas. Mensaje indicando que perdio
Total puntos de barcos 300 Total puntos de tanques 500 Total puntos de aviones 100 Cantidad de barcos descubiertos Cantidad tanques descubiertos Cantidad aviones descubiertos Total de puntos acumulados Mensaje indicando que gano
20. Elabore un algoritmo donde se realicen encuestas a las personas de Cuman; el encuestador realizar encuestas mientras lo desee o hasta encuestar un mximo de 100 personas. A cada persona se le pregunta:
Recopilado por: Docentes del rea de Programacin / Trayecto I / Trimestre II Unidad Curricular: Programacin I Pgina 7
Switch que indica si el valor se debe vced_eli eliminar .v.=si, .f.=no Posicin donde se insertan o se cmujmen elimina los valores
Chom3040
resp
Respuesta continuar
la
pregunta
desea inserta
50
elementos y encuentre la suma de ellos e imprima los elementos del vector y la suma calculada.
Recopilado por: Docentes del rea de Programacin / Trayecto I / Trimestre II Unidad Curricular: Programacin I Pgina 8
23. Elabore un algoritmo que cargue tres vectores A, B y C de M elementos (M<15) y cree un vector NUEV de tres elementos, donde cada elemento guarde la suma de todos los elementos de cada vector. 24. Elaborar un algoritmo para clasificar personas segn su tipo de sangre. Para ello se dispondr de la siguiente informacin. Cantidad de personas (mximo 20), tipo de sangre y cdula de identidad de cada persona. Se pide un reporte que imprima las cdulas de identidad de todos los donantes, clasificadas por tipo de sangre. 25. Elabore un algoritmo que cargue un vector X de nmeros de 10 elementos y lea un valor CLAVE y averige si el valor CLAVE se
encuentra o no dentro del vector X. En caso de encontrarse se debe indicar cuantas veces aparece dicho valor dentro del vector.
26. Se tiene un vector de nmeros de N elementos y se desea reemplazar por cero (0) los elementos impares del vector. Disee un algoritmo para solucionar este problema.
27. Disee un algoritmo que cargue un vector de nmeros de N elementos (mximo 15) y que elimine un elemento dado. El
algoritmo debe determinar si el elemento a eliminar se encuentra en el vector de ser as se elimina de lo contrario se imprime un mensaje de falla. Si se elimina el elemento las posiciones de los elementos dentro del vector se deben reorganizar.
Recopilado por: Docentes del rea de Programacin / Trayecto I / Trimestre II Unidad Curricular: Programacin I Pgina 9
29. Elabore un algoritmo que cargue un vector de nmeros de N elementos y obtenga e imprima el mayor y el menor elemento de dicho vector con sus respectivas posiciones.
30. Elabore un algoritmo que cargue un vector de N(N<10) elementos. Luego ordene los elementos del vector de mayor a menor e imprima el vector ordenado.
31. Elabore un algoritmo que lea e imprima un numero entero y positivo N. Lea y escriba los N elementos de un vector A. Determine el o los elementos de la mitad del vector A. Imprima el o los subndices que identifican el o los elementos anteriores y su(s) valor(es)
correspondientes.
32. Elabore un algoritmo que lea un vector A de N elementos(N<15) que se encuentre ordenado en forma ascendente. Luego lea un valor X cualquiera y lo inserte dentro del vector A en tal forma que se mantenga el orden ascendente. Si A ya tiene un elemento que iguale al valor a insertar no haga la insercin. Imprima el vector actualizado.
33. Se tienen dos vectores. Uno de ellos con N elementos y el otro con M elemento. Dichos elementos se encuentran ordenados de menor a
Recopilado por: Docentes del rea de Programacin / Trayecto I / Trimestre II Unidad Curricular: Programacin I Pgina 10
35. Elabore un algoritmo que lea una matriz de 10 filas y 8 columnas. Luego lea un numero, chequee si ese numero existe en algn elemento del arreglo ledo, si es as, imprima los subndices que identifican la ubicacin del elemento que contiene el valor del numero ledo, de lo contrario imprima el valor del numero ledo y un mensaje que diga No se encuentra dentro de la matriz.
36. Elabore un algoritmo que lea una matriz cuadrada NxN(N<10) calcule la suma de los elementos de la diagonal principal de la matriz. La suma de los elementos de la ultima fila y al suma de los elementos de la ltima columna. Imprima las tres sumas.
37. Un tablero de Damas es una matriz de 8 filas por 8 columnas. Un uno (1) representa la presencia de una ficha roja en el tablero. Un dos (2) representa la presencia de una ficha negra en el tablero. Un tres (3) representa ausencia de ficha. Se requiere calcular: El numero de fichas rojas.
Recopilado por: Docentes del rea de Programacin / Trayecto I / Trimestre II Unidad Curricular: Programacin I Pgina 11
38. La transpuesta de una matriz es otra matriz formada intercambiando las fila y las columnas de la primera lea una matriz A de M filas y N columnas(N<M<15). Elabore un algoritmo para calcular e imprimir la transpuesta de A.
39. Elabore un algoritmo que lea una matriz de N filas y M columnas (N<10, M<15) y forme un vector con los nmeros pares que se encuentren en la matriz leda. Imprima el vector resultante.
40. El producto de dos matrices con elementos A(i,j) y B(i,j) es una tercera matriz
41. C(i,j) = A(i,1)*B(1,j) + A(i,2)*B(2,j) + . . . + A(i,N)*B(N,j). Suponiendo que el nmero de columnas de la matriz A y el numero de filas de la matriz B son ambos iguales a N. Elaborar un algoritmo para calcular el producto de dos matrices que cumplan con las condiciones antes sealadas y que adems imprima la matriz resultante.
42. Elabore un algoritmo que lea un numero entero y positivo N(N<10). Lea todos los elementos de una matriz Z de N filas y N columnas. Calcule la suma de los elementos de la diagonal principal de Z. Calcule la suma de los elementos de la diagonal secundaria de Z. Imprima las sumas calculadas.
Recopilado por: Docentes del rea de Programacin / Trayecto I / Trimestre II Unidad Curricular: Programacin I Pgina 12
44. La matriz identidad es una matriz cuadrada en la cual los elementos de la diagonal principal tienen valor igual a uno (1) y todos los dems elementos son iguales a cero (0). Por ejemplo la matriz identidad de orden es: 1 0 0 0 0 1 0 0 1
45. Cualquiera matriz cuadrada de orden N puede aumentarse por medio de una matriz identidad , del mismo orden, colocada a su derecha., por ejemplo, si la matriz dada es: 1 5 3 7
Elabore un algoritmo que lea una matriz cuadrada de orden N(N<7) e imprima la matriz leda, la matriz identidad del mismo orden y la matriz aumentada.
Recopilado por: Docentes del rea de Programacin / Trayecto I / Trimestre II Unidad Curricular: Programacin I Pgina 13
46. N trabajadores de la construccin laboran durante M das en cierta obra. Al final de cada jornada, a cada hombre se le guarda, en un registro que contiene el cdigo del trabajador, el numero de horas trabajadas durante la jornada. Al terminar la obra se tendr la siguiente informacin:
Codigo del Trabajador 120 128 221 300 Codigo N Da 1 8:50 8.00 7:30 8:00 10:00 Da 2 9:00 9.50 8:30 8:00 5:00 Da 3 7:30 7.00 9:40 7:00 6:50 Da M 8:00 9.00 7:20 7:30 8:20
Disee un algoritmo que lea los datos anteriores teniendo en cuenta lo siguiente: Los nmeros de identificacin (cdigos) se almacenaran en un vector y las horas laboradas en una matriz, donde en su orden respectivo, a cada elemento del arreglo corresponde una fila de la matriz. El algoritmo debe calcular e imprimir lo siguiente: El total de horas trabajadas por cada hombre. El total de horas trabajadas por todos los hombres en toda la obra. El total de horas trabajadas en cada jornada. El cdigo del trabajador que ms horas labor y el nmero del da en que ms horas labor dicho trabajador.
47. Para automatizar el proceso de elecciones de gobernador de un estado cualquiera, se debe elaborar un algoritmo que dependiendo del nmero de candidatos y del nmero de municipios se cuenten los votos y se den a conocer los resultados tomando en cuenta las siguientes especificaciones:
Recopilado por: Docentes del rea de Programacin / Trayecto I / Trimestre II Unidad Curricular: Programacin I Pgina 14
DISTRITO
CANDIDATO1
CANDIDATO2
CANDIDATO3
1 2 3 TOTAL CANDIDATO
Recopilado por: Docentes del rea de Programacin / Trayecto I / Trimestre II Unidad Curricular: Programacin I Pgina 15
2. Escribir un programa mediante funciones que realice las siguientes tareas: i. Devolver el valor del da de la semana en respuesta a la entrada de la letra inicial (mayscula o minscula) de dicho da. ii. Determinar el nmero de das de un mes y ao dados.
3. Escribir un programa que lea una cadena de hasta diez caracteres que representa a un nmero en numeracin romana e imprima el formato del nmero romano y su equivalente en numeracin arbiga.
4. Escriba una funcin que calcule cuntos puntos de coordenadas enteras existen dentro de un tringulo del que se conocen las coordenadas de sus tres vrtices.
5. Escribir un programa en base a funciones, que solicite del usuario un carcter y que site ese carcter en el centro de la pantalla. A continuacin, el usuario debe poder desplazar el carcter pulsando las letras A (arriba), B (abajo), I (izquierda), D (derecha) y F (fin) para terminar.
6. En un tablero de ajedrez, la reina puede atacar cualquier pieza que est en la misma fila, columna o diagonal que ella. El problema de las n reinas es posicionar n reinas en un tablero de n*m, de modo que ninguna reina pueda atacar a ninguna otra. Escribir un
Recopilado por: Docentes del rea de Programacin / Trayecto I / Trimestre II Unidad Curricular: Programacin I Pgina 16
7. Escribir un programa, que por medio del uso de funciones, permita visualizar el tringulo de Pascal con una altura dada por el usuario:
1 1 1 1 1 1 1 6 5 15 4 10 20 3 6 10 15 2 3 4 5 6 1 1 1 1 1 1
En el tringulo de Pascal, cada nmero es la suma de los dos nmeros situados encima de l.
10. Escriba un programa que use funciones y mens para trabajar con matrices. El programa debe sumar, restar y multiplicar dos matrices. El programa debe controlar las restricciones de los ndices de las matrices para las operaciones que lo requieran.
12. Escribir un programa, haciendo uso de funciones, que visualice un calendario de la forma:
L 6 13 20 27
M 7 14 21 28
M 1 8 15 22 29
J 2 9 16 23 30
V 3 10 17 24
S 4 11 18 25
D 5 12 19 26
13. El usuario indica nicamente el mes y el ao. La frmula que permite conocer el da de la semana correspondiente a una fecha es:
Recopilado por: Docentes del rea de Programacin / Trayecto I / Trimestre II Unidad Curricular: Programacin I Pgina 17
Donde a=ao; m=mes; d=da; Nota: n mod 7 indica el da de la semana (1=lunes, 2= martes, etc.)
14. Realice un programa, el cual contenga una funcin que lea dos nmeros flotantes, y permita a travs de funciones; sumar los dos nmeros, restarlos y multiplicarlos. El usuario podr escoger la operacin que desee realizar luego de haber introducido los dos nmeros.
15. Realice un programa en C, el cual calcule el rea de un rectngulo, sabiendo que la frmula para calcular dicha rea es la siguiente:
16. Escribir un programa, que por medio de funciones, permita leer 3 nmeros enteros y los imprima de forma ascendente.
17. Realice un programa que determine el mayor de 3 nmeros enteros. Debe emplear funciones. (Las comparaciones deben estar dentro de una funcin) 18. Escribir un programa que contenga una funcin que reciba como parmetro un nmero y devuelva como resultado un valor de tipo lgico que indique si el nmero es o no par.
Recopilado por: Docentes del rea de Programacin / Trayecto I / Trimestre II Unidad Curricular: Programacin I Pgina 18
20. Escribir un programa que contenga una funcin que reciba los valores de x y n como parmetros de entrada y devuelva el valor de x a la n como salida. 21. Escribir un programa que contenga una funcin que imprima la pirmide
22. Escribir un programa que contenga una funcin de nombre Siguiente tal que, recibiendo un nmero primo mayor que uno, devuelva el numero primo inmediatamente siguiente y superior a dicho numero primo. Por ejemplo, si se invoca siguiente (7), la funcin devolver el numero 11.
23. Escribir un programa que contenga una funcin que reciba como parmetros las dos coordenadas cartesianas (x, y) de un punto del plano y devuelva como resultado un numero del 1 al 4 que indique el cuadrante al cual pertenece al punto (no considere los ejes de coordenadas). 24. Escribir un programa que contenga una funcin que reciba como parmetros de entrada dos instantes de tiempo expresados en horas, minutos y segundos y devuelva como resultado un 1 o un 2
Recopilado por: Docentes del rea de Programacin / Trayecto I / Trimestre II Unidad Curricular: Programacin I Pgina 19
26. Modificar la funcin anterior para que calcule tambin el valor medio de ambos nmeros. El nuevo prototipo de la funcin ser ahora el siguiente: void maxmin (int x1, int x2, Pint max, Pint min, Pint media);
27. Escribir un programa que contenga una funcin cuyo prototipo es: bool esLetra (char c); que reciba como parmetro de entrada un carcter y devuelva un valor lgico true si dicho carcter es una letra del alfabeto, y false en caso contrario.
28. Las resistencias electrnicas suelen ir identificadas por un cdigo de colores que permite marcar cada resistencia con su valor (en Ohmios, W) y su Tolerancia (en %). Este cdigo de colores viene representado en la siguiente tabla:
Dgito
Multiplicador
Tolerancia 20%
10% 5%
0 1 2 3 4 5
2%
Recopilado por: Docentes del rea de Programacin / Trayecto I / Trimestre II Unidad Curricular: Programacin I Pgina 20
El cdigo que suele emplearse en las resistencias es un cdigo de 4 colores, es decir, cada resistencia est marcada con 4 bandas y cada una de ellas puede ser de diferente color. Cada banda tiene un significado, que depende de cada color: Las primeras 2 bandas indican un nmero de 2 dgitos: Esos dos dgitos vienen dados por el color de esas bandas, segn la columna "Dgito" de la tabla, La tercera banda es un valor por el que se multiplicar el nmero obtenido por las bandas anteriores. Una vez multiplicados ambos valores, obtenemos el valor de la resistencia en Ohmios (W). La cuarta banda indica la tolerancia de la resistencia y, como puede verse en la tabla, no puede ser de cualquier color.
Ejemplo: Unas resistencias con los siguientes colores, tienen los siguientes valores de resistencia y tolerancia: Verde-Azul-Amarillo-Oro 560kW, 5% Rojo-Negro-Rojo-Rojo 2kW, 2% Rojo-Rojo-Marrn-Plata 220W, 10%
Segn todo lo anterior: Implemente una funcin que permita calcular la resistencia y la tolerancia de una resistencia, sabiendo los cdigos de colores. El subprograma tendr, como mnimo, 4 argumentos, que sern nmeros naturales, y que indicarn el color de las bandas segn la columna "Dgito". Los colores Oro, Plata y Ninguno tomarn los valores 10, 11 y 12 respectivamente. Implementar una funcin que muestre por pantalla el dgito que le corresponde a cada color (incluyendo los dgitos 10, 11 y 12).
Recopilado por: Docentes del rea de Programacin / Trayecto I / Trimestre II Unidad Curricular: Programacin I Pgina 21
Implementar tambin un programa que pida los colores de las 4 bandas y muestre los valores devueltos por la anterior funcin. El programa mostrar el dgito que le corresponde a cada color usando el procedimiento ya creado y leer de teclado 4 nmeros que correspondern a los colores de las 4 bandas. Tras esta lectura mostrar los datos de la resistencia con esos colores en las bandas. El programa se repetir indefinidamente hasta que lea un valor negativo como color de una banda.
29. Hacer una funcin sin argumentos que cada vez que se llame Fibb devuelva el siguiente valor de la sucesin de Fibonacci. O sea, la primera vez que se llame devolver 0, la siguiente 1 y a partir de la tercera llamada devolver la suma de los dos valores anteriores: 1, 2, 3, 5, 8, 13, 21, 34... La funcin devolver datos de tipo unsigned long int. Hasta qu trmino es posible calcular sin que se produzca desbordamiento?. Intente modificar la funcin para que posibilite llegar a un trmino mayor utilizando datos de tipo long double.
30. Calendario Perpetuo: Este ejercicio por objetivo averiguar el da de la semana del 1 de Enero de cualquier ao posterior a 1582. Basndose en ese ejercicio hacer un programa que muestre en pantalla el calendario de un mes y ao elegido por el usuario del programa. El programa mostrar el calendario del mes elegido de forma tradicional, es decir, en 7 columnas, una para cada da de la semana y teniendo en cuenta el nmero de das de cada mes, prestando especial cuidado con el mes de Febrero por si es ao bisiesto. El programa deber remarcar de alguna forma los das festivos: Todos Domingos y algunas fiestas especiales 28 de Febrero (da de Andaluca), 1 de Mayo (da del trabajo), 12 de Octubre (da de la Hispanidad, Virgen del Pilar), 6 y 8 de Diciembre (da de la
Recopilado por: Docentes del rea de Programacin / Trayecto I / Trimestre II Unidad Curricular: Programacin I Pgina 22
31. Mximo Multiplicador Cabalstico: Hay nmeros naturales que al multiplicarlos sucesivamente por 1, 2, 3, 4... se obtienen nmeros que tienen los mismos dgitos que el original pero en distinto orden (slo al multiplicar por 1 se obtiene un nmero con los mismos dgitos en el mismo orden). Supongamos que para el nmero N, se cumple esa propiedad al multiplicarlo por 1, 2, 3..., X. Es decir, si yo multiplico N por cualquier nmero del intervalo [1,X], el resultado ser un nmero con los mismos dgitos que N, pero en distinto orden. Entonces, decimos que el "mximo multiplicador cabalstico" de N es X: MMC(N)=X. Ejemplo: MMC(142857) = 6; Por ejemplo,
142857*5=714285. Para el nmero 142857 la propiedad se cumple, adems de para el nmero 5, tambin para cualquier nmero del intervalo [1,6]. Hacer un programa que muestre (usando funciones independientes): La mayor lista de nmeros posible, en la que todos cumplen que MMC(N) es mayor o igual a 2. Al final debe mostrar el N cuyo valor MMC(N) es el mayor de todos los nmeros analizados. Dado un nmero N, mostrar su valor MMC(N).
32. Dividir calculando periodos: Implementar un programa para dividir dos nmeros de tipo long double. El resultado debe tener hasta 10 decimales, redondeando este ltimo segn el undcimo decimal. El programa debe detectar e indicar si entre los 10 primeros decimales se produce algn periodo (puro o mixto). El Men contendr las opciones "Cambiar dividendo: X" (donde X es el ltimo dividendo introducido), "Cambiar divisor: Y" (donde Y es el ltimo divisor introducido) y "Calcular divisin". Por defecto, al principio del
Recopilado por: Docentes del rea de Programacin / Trayecto I / Trimestre II Unidad Curricular: Programacin I Pgina 23
33. Quizs el ms famoso de todos los sistemas de codificacin es el cdigo Morse, desarrollado por Samuel Morse en 1832, para uso en el sistema telegrfico. El cdigo Morse asigna una serie de puntos y rayas a cada letra del alfabeto, a cada dgito y a unos cuantos caracteres especiales. La separacin entre palabras se indica por un espacio o por la ausencia de un punto o una raya. La versin internacional del cdigo Morse aparece en la tabla siguiente:
Carcter A B C D E F G H I
Cdigo
Carcter T U V W X Y Z
Cdigo
......--..-.---..
Nmeros
Recopilado por: Docentes del rea de Programacin / Trayecto I / Trimestre II Unidad Curricular: Programacin I Pgina 24
1 2 3 4 5 6 7 8 9 0
Escriba un programa que lea una frase escrita en espaol y cifre dicha frase en cdigo Morse y que tambin lea una frase en cdigo Morse y la convierta en el equivalente en espaol. Utilice un espacio en blanco entre cada letra codificada Morse y tres espacios en blanco entre cada palabra codificada en Morse. El programa deber incorporar una funcin Menu() que muestre las siguientes opciones: 1) Pasar una frase a cdigo Morse, lo cual se implementar en una funcin que se llame Frase2Morse(), 2) Pasar cdigo Morse a una frase, implementando una funcin que se llame Morse2Frase() y 3) Salir.
USANDO RECURSIVIDAD:
34. Calcular el mximo comn divisor de una lista de nmeros enteros. El mximo comn divisor es el mayor nmero entero que divide (divisin exacta) a todos los elementos de la lista. Se introducirn tantos nmeros como lo desee el usuario. 35. Elevar un entero positivo a una potencia entera positiva. La base y el exponente deben ser valores enteros positivos. 36. Calcular la sumatoria de los elementos de un arreglo.
Recopilado por: Docentes del rea de Programacin / Trayecto I / Trimestre II Unidad Curricular: Programacin I Pgina 25
38. Determinar si una cadena, introducida por teclado, es un palndromo. 39. Realizar una bsqueda de un elemento en un arreglo a travs de bsqueda binaria.
40. Imprimir en reversa una cadena introducida por el teclado. Mximo de 60 caracteres ms el carcter nulo.
Recopilado por: Docentes del rea de Programacin / Trayecto I / Trimestre II Unidad Curricular: Programacin I Pgina 26
2. Escribir una funcin que reciba como argumento un arreglo de caracteres y lo devuelva invertido por pantalla
3. Escribir una funcin que reciba una cadena de caracteres "s" y un arreglo de caracteres con espacio suficiente "t", y copie la cadena en el arreglo, terminando la cadena con el caracter '\0' (Funcin strcpy() de la biblioteca <string.h>).
4. Escribir una funcin que reciba como argumento dos cadenas de caracteres, y realice la concatenacin de una sobre la otra, terminando la cadena con el caracter '\0' (Funcin strcat() de la biblioteca <string.h>).
5. Escribir una funcin que reciba dos cadenas de caracteres como argumentos, realice una comparacin lexicogrfica de las mismas, y retorne por el nombre valores positivos, cero y negativos, segn corresponda. (Funcin strcmp() de la biblioteca <string.h>).
6. Escribir una funcin que dadas dos cadenas de caracteres y un nmero "n" entero recibidos como parmetros, compare
lexicogrficamente los primeros "n" caracteres, devolviendo un valor positivo, cero o negativo, segn corresponda. (Funcin strncmp() de la biblioteca <string.h>).
7. Escribir una funcin que reciba una cadena de caracteres, un arreglo de caracteres con espacio suficiente, y una variable entera "n", y copie los primeros "n" caracteres de la cadena sobre el arreglo,
Recopilado por: Docentes del rea de Programacin / Trayecto I / Trimestre II Unidad Curricular: Programacin I Pgina 27
8. Escribir una funcin que convierta a minsculas una cadena de caracteres recibida como argumento.
9. Escribir una funcin que convierta a maysculas una cadena de caracteres recibida como argumento.
10. Escribir una funcin que reciba una cadena de caracteres como argumento, y la convierta a minsculas o maysculas, de acuerdo a una opcin ingresada por el usuario a travs del parmetro "format", cuyo tipo es case, un tipo enumerativo compuesto por los tokens UPPERCASE y LOWERCASE:
11. Escribir una funcin que responda al siguiente prototipo: void replace (char *s, char nuevo, char viejo) ; y reemplace en la cadena "s" todas las apariciones del carcter "viejo" por el carcter "nuevo".
12. Escribir una funcin que reciba como parmetro una cadena de caracteres que comienza con espacios en blanco, y los elimine desplazando los caracteres tiles hacia la izquierda. (operacin "lefttrim").
13. Escribir una funcin que reciba como parmetro una cadena de caracteres que finaliza con espacios en blanco, y los elimine desplazando los caracteres tiles hacia la izquierda. (operacin "right-trim").
14. Escribir una funcin que reciba dos cadenas de caracteres denominadas "s1" y "s2" respectivamente, y verifique la existencia de
Recopilado por: Docentes del rea de Programacin / Trayecto I / Trimestre II Unidad Curricular: Programacin I Pgina 28
15. Escribir una funcin que reciba una cadena de caracteres y determine si es un palndromo o no, retornando el resultado por el nombre. Considerar el caso de longitudes de cadena par e impar.
16. Escribir una funcin que reciba una matriz cuadrada de enteros y su dimensin, y determine si es una matriz es simtrica o no, retornando el resultado por el nombre.
17. Escribir una funcin que reciba una matriz cuadrada de doubles y su dimensin, y retorne el valor de su determinante.
18. Escribir una funcin que calcule las partes entera y decimal de cualquier nmero real recibido como argumento, y las retorne por pantalla. 19. Escribir una funcin que convierta un nmero que representa una cantidad de segundos, a su equivalente en horas, minutos y segundos, retornando las partes por pantalla.
20. Escribir una funcin que recibe las coordenadas rectangulares de dos puntos del plano y calcule la distancia entre ellos.
21. Crear un programa que calcule el valor de la intensidad que pasa a travs de una resistencia dada, cuando se le aplica un voltaje determinado. El programa deber estar dividido en las siguientes funciones:
Recopilado por: Docentes del rea de Programacin / Trayecto I / Trimestre II Unidad Curricular: Programacin I Pgina 29
22. Crear una funcin que intercambie el contenido de dos variables. Para ello se pasarn como parmetros las direcciones de las variables. Para probar la funcin escribir un programa que pida los datos por pantalla y muestre los contenidos despus de llamar a la funcin.
23. Crear un programa que lea un nmero determinado (<100) de nmeros reales introducidos por teclado los almacene en un vector para mostrarlos luego en orden inverso. Nota: Para recorrer el array se deber usar aritmtica de punteros en lugar de usar los ndices del array.
24. Escribir una funcin que tras pedir un da de la semana (de 1 a 7) devuelva un puntero a cadena con el nombre del da. La funcin contendr un array de apuntadores a cadena. Para probar la funcin se realizar un programa que pida un da de la semana en nmero y escriba el da de la semana en letra.
25. Escribir un programa que inicialice una cadena con una palabra cualquiera. El programa deber obtener la direccin de la primera letra de la cadena. Una vez sabida esta direccin la mostrar por pantalla y realizar un bucle dando 3 oportunidades para que el
Recopilado por: Docentes del rea de Programacin / Trayecto I / Trimestre II Unidad Curricular: Programacin I Pgina 30
Recopilado por: Docentes del rea de Programacin / Trayecto I / Trimestre II Unidad Curricular: Programacin I Pgina 31
Tomando en cuenta la informacin anterior realice lo siguiente: Cree un arreglo unidimensional (vector) de 100 estructuras, Disee la funcin void incluir_cd (struct cd arreglo_cd[100]) que permita ingresar los datos de los CD en el arreglo. Disee la funcin void listar_cd (struct cd arreglo_cd[100]) que permita mostrar todos los datos de los CD contenidos en el arreglo. Disee la funcin void vender_cd (struct cd arreglo_cd[100]) que permita vender uno o varios CD siempre y cuando haya disponibilidad. (cantidad de CD >0). Se debe validar que exista el CD en el arreglo antes de venderlo. Dado el nombre de un artista, mostrar los CD relacionados con dicho artista. Listar los CD con un nmero de canciones mayor o igual a 15. Mostrar la cantidad total en Bs. invertida en la compra de todos los CD guardados en el arreglo.
Recopilado por: Docentes del rea de Programacin / Trayecto I / Trimestre II Unidad Curricular: Programacin I Pgina 32
4. En una librera tienen la necesidad de automatizar el manejo de la informacin de los libros que estn a la venta, por lo que se solicita a usted hacer un programa en C, que genere una estructura de datos que contemple la siguiente informacin: Cota del libro.
Recopilado por: Docentes del rea de Programacin / Trayecto I / Trimestre II Unidad Curricular: Programacin I Pgina 33
Ahora se requiere que construya un men que incorpore adems de la opcin Salir las siguientes funciones: Leer_Libro: que permitir ingresar los datos del libro. Tenga en cuenta que la cota del libro no debe repetirse. Mostrar_Libros: permitir mostrar todos los libros ingresados. Buscar_Libro: dada la cota de un libro en particular, mostrar sus datos. Si la cota no existe se le debe indicar al usuario a travs de un mensaje Listar_Autor: muestra una lista de libros segn un autor solicitado. Si el autor no est registrado se le debe indicar al usuario a travs de un mensaje.
5. En el hospital Antonio Patricio de Alcal se realiza actualmente un seguimiento de los pacientes que han ingresado al hospital por las enfermedades infectocontagiosa: Paludismo, y Fiebre amarilla. Desarrolle un programa que permita registrar y administrar los datos necesarios para este estudio. El programa que muestre un men con las opciones de: 1. Registrar Paciente, 2. Buscar Paciente, 3. Reporte por enfermedad, 4. Salir. Se debe incorporar las siguientes funciones: Ingresar_Registro: que permitir ingresar los datos del paciente atendido. Por cada paciente se debe registrar: Cedula, nombre, sexo, telfono, direccin y tipo de enfermedad. Se debe validar que solo se ingrese los tipos de enfermedad en
Recopilado por: Docentes del rea de Programacin / Trayecto I / Trimestre II Unidad Curricular: Programacin I Pgina 34
6. Realizar un programa en C, que simule una Agenda, donde se construya un men con las siguientes funciones: Registrar_Contacto: donde se registrar los datos de una persona (nombre, Apellidos, direccin, telfono, email). Tenga en cuenta que la agenda solo tiene capacidad para 50 contactos. Buscar_Contacto: dado el nombre de un contacto se debe mostrar sus datos. Listar_Contactos: mostrar todos los contactos de la agenda. Modificar_Contacto: dado el nombre del usuario, mostrar sus datos y preguntar si realmente desea modificarlo, de ser as solicitar nuevamente los datos, sino volver al men sin hacer ningn cambio. Eliminar_Contacto: dado el nombre del usuario, mostrar sus datos y preguntar si realmente desea eliminarlo, de ser as eliminar el contacto, sino volver al men sin hacer ningn cambio. Se debe salir del programa slo por la opcin Salir del men.
Nota: Para eliminar el contacto puede agregar en la estructura un campo llamado Marca, cuando dicho campo sea igual a 0, el contacto se
Recopilado por: Docentes del rea de Programacin / Trayecto I / Trimestre II Unidad Curricular: Programacin I Pgina 35
7. En una lnea de autobuses tienen la necesidad de automatizar la venta de boletos, por lo que se solicita a usted hacer un programa en C, que genere una estructura de datos que contemple la siguiente informacin: Nmero de la Unidad Nombre del Chofer Destino Nmero total de boletos Precio del boleto Nmero del boleto vendido. (No debe ser mayor que el Nmero total de boletos) Fecha de Salida (Hacer otra estructura llamada fecha: da, mes y ao)
Ahora se requiere que construya un men que incorpore adems de la opcin Salir las siguientes funciones:
Registrar_Boletos: El programa registrar los boletos por unidad. Para ello se solicitar: Nm. de la Unidad, nombre del chofer, destino al que viajar la unidad, nmero total de boletos disponibles, precio del boleto.
Venta_Boletos: Funcin que permite vender un boleto. Para ello, se solicitar el destino del cliente, si existe, verificar si hay boletos disponibles para ese destino, de haber disponibilidad se solicitar la fecha de salida de la unidad y el nmero del boleto a vender. Adems, se debe decrementar el Nmero total de boletos. Por ltimo se debe mostrar por pantalla los datos del boleto vendido.
Recopilado por: Docentes del rea de Programacin / Trayecto I / Trimestre II Unidad Curricular: Programacin I Pgina 36
Por cada asignatura: a) cdula del profesor que la imparte; b) cdigo de asignatura (nico); c) nombre de la asignatura; d) semestre; e) crditos;
Por cada profesor: a) cdula; b) nombre del profesor; c) fecha de ingreso al instituto; d) fecha de nacimiento; e) dedicacin (exclusiva, tiempo completo y medio tiempo).
Teniendo en cuenta que un profesor puede impartir ms de una asignatura, disear las estructuras de datos apropiadas y los siguientes subprogramas: ProfesorAsignatura. A partir de la(s) estructura(s) de datos adecuada y el cdigo de la asignatura, obtener el nombre del profesor que imparte la asignatura si existe la asignatura y el profesor. SueldoMedioAnual. A partir de la(s) estructura(s) de datos adecuada calcula el sueldo promedio al ao de los profesores del instituto. El sueldo base anual depende de la dedicacin: a) Exclusiva: 2000 Bsf, b) Tiempo Completo: 1500 Bsf y c) Medio Tiempo: 1000 Bsf
Hay que tener en cuenta que si el profesor es dedicacin exclusiva el sueldo incluye un complemento que se calcula en funcin del nmero de aos que el profesor ha trabajado en la institucin, cobrando 150 Bsf mensuales por cada cinco aos completos trabajados. Si el profesor es
Recopilado por: Docentes del rea de Programacin / Trayecto I / Trimestre II Unidad Curricular: Programacin I Pgina 37
Recopilado por: Docentes del rea de Programacin / Trayecto I / Trimestre II Unidad Curricular: Programacin I Pgina 38
10. La Academia Local Cisco System de la ciudad de Cuman, requiere desarrollar un programa para el registro y consulta de las notas de los estudiantes que all realizan su Curso de Especializacin en Redes. Se debe mostrar el siguiente men: a. Registrar Calificaciones b. Consultar Calificaciones c. Mostrar Listado de Promedios d. Mostrar Listado por Mdulos e. Salir del Sistema Para cada opcin se debe tener en cuenta lo siguiente: Opcin a: registrar los siguientes datos: Cdula, Nombre y Apellidos del estudiante y las calificaciones correspondientes a cada uno de los cuatro Mdulos all cursados. Es importante mencionar, que se tienen 20 Estudiantes. Opcin b: Dada la Cdula de un estudiante, se desea conocer los datos y calificaciones del mismo. Opcin c: Mostrar un listado con los nombres y el promedio de notas de cada estudiante. Al final del Listado se deber mostrar promedio general del curso. Opcin d: Dado el nmero de un mdulo, se desea mostrar los estudiantes que aprobaron dicho mdulo.
Recopilado por: Docentes del rea de Programacin / Trayecto I / Trimestre II Unidad Curricular: Programacin I Pgina 39
1. Desarrolle un programa que permita: abrir un archivo, leer su contenido y mostrarlo por pantalla, y cerrar el archivo.
2. Desarrolle un programa que acepte como argumento de la lnea de comando el nombre de un archivo, y determinar si existe o no en el directorio actual.
3. Desarrollar un programa que permita leer el contenido de un archivo y realice la siguiente estadistica: cuente el total de lineas, numero de vocales, numero de consonantes, y la cantidad de numeros.
5. Realice un programa que dado una frase, la busque dentro de un archivo e indique el nmero de veces que esta aparece.
6. El comando cp del sistema operativo linux, permite realizar una copia de un archivo. La estructura basica del comando es: >$cp
archivo_original.txt archivo_copia.txt
7. Se requiere de usted crear un programa que dado un archivo cree una copia del mismo.
8. Desarrolle un programa que permita almacenar en un archivo un texto de longitud variada. Este programa debe estar en la capacidad de extraer las vocales del texto almacenado en el archivo y enviarlas a un archivo vocal.txt la lnea final del archivo debe contener el numero total de vocales almacenadas, en otro archivo se deben colocar los
Recopilado por: Docentes del rea de Programacin / Trayecto I / Trimestre II Unidad Curricular: Programacin I Pgina 40
cantidad nmeros. Debe haber un tercer archivo en en el cual se almacene el total de caracteres del archivo original y el total de lneas del archivo original.
9. Uno de los sistemas de encriptacin muy usados en el pasado, fue el mtodo del desplazamiento, el cual consiste en hacer corresponder a cada letra del alfabeto otra letra de acuerdo a un valor dado denominado desplazamiento. Un Ejemplo de este mtodo es el siguiente: Mensaje original: HOLA MUNDO Si el desplazamiento es K=4, este mensaje se transforma en: Mensaje Cifrado: LSPERYQHS
10. Disee un programa que permita leer el contenido de un archivo y lo cifre, almacenando el texto cifrado en un archivo llamado cifa.txt.
Archivos Binarios
11. El Gerente del Hotel Bahia Azul ubicado en la ciudad de cuman, ha planteado una situacin particular en su empresa. Los registros de los clientes que ingresan al hotel son almacenados manualmente en carpetas lo cual esta generando problemas para acceder a los datos. Este lo ha seleccionado a usted como analista programador le solvente esta situacin atendiendo los requerimientos que plantea. Desea un programa que permita registrar las entradas y salida de los clientes del hotel, as como tambin un reporte con los datos de los clientes VIP y clientes corrientes (los clientes VIP son aquellos cuyo consumo es superior a 1 000 000 de Bs), Por cada cliente que ingresa se almacena Nombre, monto y habitacin reservada.
Recopilado por: Docentes del rea de Programacin / Trayecto I / Trimestre II Unidad Curricular: Programacin I Pgina 41
Hemorrgico y A1HN1,. Desarrolle un programa que permita registrar y administrar los datos necesarios para este estudio. El programa debe incorporar las funciones de ingresar, y buscar un paciente. Debe tambin realizar un reporte que muestre las personas atendidas por cada enfermedad (el reporte debe contener cedula y nombre), este reporte debe mostrar el total de personas atendidas por enfermedad. Por cada paciente se debe registrar: Cedula, nombre, sexo, telfono y direccin.
13. La Academia Local Cisco System. Desea desarrollar un programa para el registro y control de los estudiantes que all realizan su curso de especializacin en Redes. Para realizar el control de los estudiantes se debe registrar los siguientes datos: Nombre, cedula, sexo, edad, y las calificaciones correspondientes a cada uno de los cuatro semestres all cursados. Usted como analista-programador debe realizar un programa que permita: Ingresar un estudiantes y sus notas (correspondiente a cada uno de los semestres), Determinar los alumnos con promedio mayor a 90 puntos(Se califica de 0 a 100) generar el reporte de alumnos sobresalientes(el reporte debe tener cedula, nombre, y promedio), Generar un reporte de todos los estudiantes del sistema escolar (Cedula y nombre), Determinar el promedio general de los estudiantes de la academia.
14. Disee un programa que permita controlar los datos de un conjunto de personas, este programa debe estar en la capacidad de: abrir o crear un archivo, dar de alta (ingresar) un elementos al archivo, dar de baja (eliminacin lgica y fsica) un elemento del archivo, modificar los datos de un elemento, buscar un elemento. Los datos a almacenar por cada
Recopilado por: Docentes del rea de Programacin / Trayecto I / Trimestre II Unidad Curricular: Programacin I Pgina 42
15. El messenger es un programa que permite a una persona comunicarse con otra a travs de un sistema de charla on-line. Este programa adems permite almacenar los datos de los contactos en un archivo tipo agenda. Desarrolle un programa que permita almacenar los datos de los contactos, mostrar los datos de un contacto particular, eliminar un contacto que ya no se quiera. Adems el programa permitir determinar el nmero de contactos en la agenda, el numero de contactos por cada grupo (Amigos, panas; novias(os), Familiares, Profesores), y generar un reporte con los datos de los contactos de un grupo especifico. Por cada contacto la agenda almacena los siguientes datos: Nombre, Nick (Alias), correo electrnico principal, correo electrnico secundario, direccin y telfono. La bsqueda de un contacto se puede realizar por su nombre, correo electrnico, o Nick.
16. 14) El concesionario de Autos usados El primero, lo ha contratado a usted como analista programador para que disee el sistema de control del parque automotor. La empresa requiere: totalizar el nmero de autos en el parque, un reporte por marca de autos y total, un reporte de los autos en el parque por ao de construccin, un reporte general de todos los autos. As como tambin desea conocer los autos que hasta una fecha dada (Mes y ao) tengan ms de 30 meses en el parque. Esta empresa distribuye tan solo autos de 3 fabricantes: Toyota, Ford, Chevrolet.
17. El Sistema escolar para adultos Revolucin en Amrica Latina, desea realizar un sistema para registro y control de los estudiantes que all se especializan. Para realizar el control de los estudiantes se debe registrar los siguientes datos: Nombre y apellido, cedula, sexo, edad. Cada
Recopilado por: Docentes del rea de Programacin / Trayecto I / Trimestre II Unidad Curricular: Programacin I Pgina 43
estudiantes del sistema escolar (Cedula y nombre), Generar un reporte con los alumnos con promedio de calificaciones inferiores a 10 puntos, totalizar el promedio de edad de los estudiantes del sistema. Los datos de los estudiantes se almacenan en un registro llamado est.bin, y los datos correspondientes a sus calificaciones en otro denominado notas.bin.
Recopilado por: Docentes del rea de Programacin / Trayecto I / Trimestre II Unidad Curricular: Programacin I Pgina 44