Profesores Colaboradores

Lcdo. Rubén Cova

Lcdo. David Licet

Lcdo. Luis Rigual

Lcdo. Gregorio Ruiz

Lcda. Rosemigd Mago

Lcda. Nakary Ortega. MSc

Ing. Leonardo Malavé. MSc

Lcdo. Aníbal Torres

Lcda. Lisblein Arismendi

TSU Christian Hernández

TSU Osman Pineda

TSU Edinson González

TSU Rodolfo Ortíz

TSU Víctor Uzcategui

Recopilado por: Docentes del área de Programación / Trayecto I / Trimestre II Unidad Curricular: Programación I Página 2

Índice
Página Objetivo 1.- Arreglos, Cadenas de Caracteres, Rutinas de 4 Ordenamiento y Rutinas de Búsqueda 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 Programación / Trayecto I / Trimestre II Unidad Curricular: Programación I Página 3

Objetivo 1.- Ejercicios Propuestos de Arreglos, Caracteres, Ordenamiento y Búsqueda
1. Elabore un programa en C que lea en una lista, una serie de números enteros, calcule la media de los n números e indique cuantos de los números dados son iguales a la media.

2. Escribir un programa que lea 5 números y los guarde en un arreglo, luego pida un nuevo número e indique si este se encuentra dentro del arreglo y en que posiciones

3. Escribir un programa que lea dos vectores de igual dimensión y calcule el vector suma y el vector diferencia. Suponga que ambos arreglos tienen dimensión 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 números pares y otro que contenga los números 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 después del intercambio.

6. Escribir un programa que lea una lista de valores y construya dos arreglos, uno con los que están dentro del intervalo (a, b), donde a y b son números dados, y otro con los valores que estén 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. Diseñe 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 Programación / Trayecto I / Trimestre II Unidad Curricular: Programación I Página 4

Ejercicios Propuestos de Arreglos.. Diseñe un programa que lea un vector x de n elementos y construya otro vector que contenga al vector x en orden inverso. Se debe mostrar los dos arreglos originales. El programa debe imprimir los dos arreglos. 11. 13. 9. 8. éstos no deben estar repetidos. Caracteres. se debe imprimir el nombre de la persona con su respectiva edad. Diseñe un programa que lea un vector x de n elementos y construya otro vector que contenga al vector x comprimido. 10. Elabore un algoritmo que lea un arreglo de caracteres y determine si la frase es un palíndromo. Elabore un programa que dados dos arreglos a y b de m y n elementos respectivamente realice la intersección y la unión en forma de conjunto. Si la persona introduce un número de cédula y ya existe en el vector se debe emitir un mensaje diciendo: “Usted ya fue inscrito”. Una orquesta está formada por n músicos. escribir un programa que lea dos vectores nombre y edad. el vector unión y el vector intersección. Recopilado por: Docentes del área de Programación / Trayecto I / Trimestre II Unidad Curricular: Programación I Página 5 . que no existan elementos iguales. Una vez cargado el vector debe imprimirlo.Objetivo 1. 12. es decir. Uno que contenga los nombres de los alumnos aprobados y otro con los alumnos reprobados. para luego determinar cual de las personas es más vieja y cual es más joven. Ordenamiento y Búsqueda los nombres. una palabra es palíndromo si se lee de igual forma en ambos sentidos. Elabore un programa que cargue un arreglo con 15 números de cédulas. En caso de que no exista debe ser agregado a la lista.

Almacenar las ventas totales semanales de cada vendedor y los totales de las ventas diarias. Ordenamiento y Búsqueda 14. 15.. Elabore un programa que cargue 2 matrices de orden 2x2 c/u y calcule el producto de ambas matrices en una matriz c. 19. Elabore un programa en C que cargue en una matriz de 3x7 el número de zapatos vendidos por tres vendedores cada día de la semana. Se deben utilizar 4 arreglos adicionales para: almacenar los días de la semana.A. Se deben calcular los totales vendidos por cada vendedor durante la semana y los totales vendidos por día en la zapatería. 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 día. 18. 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. Si la cédula a buscar no existe escribir el mensaje “persona no pertenece a la empresa”. Se van a hacer búsquedas hasta que el usuario lo desee. Elabore un algoritmo donde se simule el juego de la guerra.Objetivo 1.Ejercicios Propuestos de Arreglos. Al finalizar la búsqueda se debe imprimir cuantas cédulas pertenecían a la empresa y cuantas fueron búsquedas fallidas. Elabore un programa que permita realizar búsquedas en un vector con los números de cédulas de 20 personas que pertenecen a la empresa: ZTA C. almacenar los nombres de los tres vendedores. 17. El juego se basa en adivinar las posiciones donde el enemigo posee sus Recopilado por: Docentes del área de Programación / Trayecto I / Trimestre II Unidad Curricular: Programación I Página 6 . Caracteres.

El campo de batalla es un área de 5 filas y 10 columnas. Cada armamento de guerra posee una puntuación: tanques 500 puntos. barcos 300 puntos y aviones 100 puntos. Se poseen en total: 5 aviones. El jugador indica la posición (fila y columna) donde desea realizar su disparo. A cada persona se le pregunta: Recopilado por: Docentes del área de Programación / Trayecto I / Trimestre II Unidad Curricular: Programación I Página 7 . 3 barcos y 2 tanques. B barcos . Cada armamento está representado por una letra: A aviones. hasta un máximo de 5. Elabore un algoritmo donde se realicen encuestas a las personas de Cumaná. Si falló 5 veces se envía un mensaje que PERDIÓ y se señalan el total de puntos acumulados. que representa un fallo en el disparo.Ejercicios Propuestos de Arreglos. T tanques y una X posición vacía.Objetivo 1. el encuestador realizará encuestas mientras lo desee o hasta encuestar un máximo de 100 personas. Subíndice de las filas Subíndice de las columnas. aviones y tanques) y destruírselos. Ordenamiento y Búsqueda equipos de guerra (barcos. si no existen armamentos se van acumulando sus fallos. Caracteres. Si el jugador adivina todo el armamento se indica un mensaje que GANO y se muestra el total de puntos acumulados.. ptobarcos ptotanques ptoaviones cantbarcos cantanques cantaviones totpuntos gano 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. señaladas por el jugador. si existe algún armamento gana los puntos de dicho armamento. El jugador juega contra la computadora. 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 Máxima de fallas del jugador. Leyenda Nombre col campo Descripción Total de columnas fil Nombre Descripción Total de filas Matriz de posiciones. El jugador tiene 5 oportunidades para adivinar todo el armamento enemigo. Mensaje indicando que perdio Matriz que corresponde al campo mat_pos de batalla.

sólo. Las lista de encuestados debe ser cargada insertando los valores ordenados (ascendente) por número de cédula. Leyenda Nombre tam t_enc sexo_p nombre_p cedula_p mensaje repetida Descripción Tamaño máximo del vector Total encuestados Sexo persona encuestada Nombre persona encuestada Cédula de persona encuestada Mensaje “ya fue encuestado” Nombre i j k vcedula vnombre vsexo Descripción Subíndice de la lista Subíndice de eliminación Subíndice de cedulas eliminadas Vector de cedulas Vector de nombres Vector de sexo Vector de edad Switch que indica si la cedula está vedad repetida . edad y sexo..=no elimina (no usamos) pos Switch que indica si el valor se debe vced_eli eliminar . . Caracteres.=si. Una vez eliminados los mayores de 60 años. buscando el número de cédula entre las personas ya encuestadas.=si . Finalizada la encuesta elimine de la lista todas las personas mayores de 60 años y coloque. Ordenamiento y Búsqueda nombre.v.=no Posición donde se insertan o se cmujmen elimina los valores Vector cédulas eliminadas Cantidad de mujeres menores de 20 años Chom3040 Cantidad de hombre con edad Porhom3040 entre 30 y 40 años Porcentaje de hombres con edad entre 30 y 40 años resp Respuesta continuar a la pregunta desea inserta Switch que indica si el valor se debe insertar .f.v. .f.=si. Si la cédula existe debe imprimir un mensaje indicando “UD. Imprima la lista de encuestados y la lista de los números de cédulas de personas mayores de sesenta años. Recopilado por: Docentes del área de Programación / Trayecto I / Trimestre II Unidad Curricular: Programación I Página 8 .=no 21. . calcular e imprimir cuantas mujeres son menores de 20 años. YA FUE ENCUESTADO”. y el porcentaje de hombres con edad comprendida entre 30 y 40 años con respecto al total de encuestados. cédula. sus números de cédula en otro vector. Elaborar un algoritmo que cargue un vector de números de 50 elementos y encuentre la suma de ellos e imprima los elementos del vector y la suma calculada.Ejercicios Propuestos de Arreglos.v.Objetivo 1. Los datos de entrada deben ser validados. El encuestador debe chequear que no encueste a la misma persona.f.

Recopilado por: Docentes del área de Programación / Trayecto I / Trimestre II Unidad Curricular: Programación I Página 9 .. 24. En caso de encontrarse se debe indicar cuantas veces aparece dicho valor dentro del vector. clasificadas por tipo de sangre. 25. Para ello se dispondrá de la siguiente información. Elabore un algoritmo que cargue tres vectores A. Cantidad de personas (máximo 20). Diseñe un algoritmo para solucionar este problema. 23.Ejercicios Propuestos de Arreglos. Crear otro vector con la multiplicación de los elementos respectivos de los vectores leídos e imprimir los tres vectores. Diseñe un algoritmo que cargue un vector de números de N elementos (máximo 15) y que elimine un elemento dado. Caracteres. 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. 27. Se tiene un vector de números de N elementos y se desea reemplazar por cero (0) los elementos impares del vector. Se pide un reporte que imprima las cédulas de identidad de todos los donantes.Objetivo 1. B y C de M elementos (M<15) y cree un vector NUEV de tres elementos. Elaborar un algoritmo para clasificar personas según su tipo de sangre. Elaborar un algoritmo que cargue dos vectores de números de N elementos cada uno (N< 20). Si se elimina el elemento las posiciones de los elementos dentro del vector se deben reorganizar. Ordenamiento y Búsqueda 22. Elabore un algoritmo que cargue un vector X de números de 10 elementos y lea un valor CLAVE y averigüe si el valor CLAVE se encuentra o no dentro del vector X. tipo de sangre y cédula de identidad de cada persona. 26. donde cada elemento guarde la suma de todos los elementos de cada vector.

El modo de un vector de números es él numero m del arreglo que se repite con mayor frecuencia. que cargue un vector de números de 15 elementos y averigüe el modo (si existe) o de una indicación de que el modo no existe. Se tienen dos vectores. Luego lea un valor X cualquiera y lo inserte dentro del vector A en tal forma que se mantenga el orden ascendente. 29. Determine el o los elementos de la mitad del vector A. 32. Si A ya tiene un elemento que iguale al valor a insertar no haga la inserción. Imprima el vector actualizado. Escriba un algoritmo. Si se repite más de un número con frecuencias máximas iguales. Elabore un algoritmo que lea un vector A de N elementos(N<15) que se encuentre ordenado en forma ascendente. Luego ordene los elementos del vector de mayor a menor e imprima el vector ordenado. 30. Elabore un algoritmo que cargue un vector de números de N elementos y obtenga e imprima el mayor y el menor elemento de dicho vector con sus respectivas posiciones..Objetivo 1. Ordenamiento y Búsqueda 28. Imprima el o los subíndices que identifican el o los elementos anteriores y su(s) valor(es) correspondientes. Dichos elementos se encuentran ordenados de menor a Recopilado por: Docentes del área de Programación / Trayecto I / Trimestre II Unidad Curricular: Programación I Página 10 . no existe un modo.Ejercicios Propuestos de Arreglos. Elabore un algoritmo que cargue un vector de N(N<10) elementos. Caracteres. Elabore un algoritmo que lea e imprima un numero entero y positivo N. Uno de ellos con N elementos y el otro con M elemento. Lea y escriba los N elementos de un vector A. 33. 31.

Suponga que no existen valores duplicados dentro de los vectores A y B.Objetivo 1. Por intersección se entiende que INT va a contener copias de aquellos valores que son comunes a A y B. Elabore un algoritmo para solucionar este problema. si es así. Elabore un algoritmo que cargue dos vectores A y B de 5 y 7 elementos respectivamente.Ejercicios Propuestos de Arreglos. Caracteres. Recopilado por: Docentes del área de Programación / Trayecto I / Trimestre II Unidad Curricular: Programación I Página 11 . 37. 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. Elabore un algoritmo que lea una matriz de 10 filas y 8 columnas. Nota: El procedimiento consiste en intercalar los dos vectores antes mencionados. Imprima las tres sumas. Luego forme un nuevo vector INT cuyos elementos comprenden la intersección de los conjuntos definidos por A y B. Un tres (3) representa ausencia de ficha. de lo contrario imprima el valor del numero leído y un mensaje que diga “ No se encuentra dentro de la matriz”. Ordenamiento y Búsqueda mayor en ambos vectores. por lo tanto el algoritmo NO debe ordenar vectores 34. 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.. Se requiere calcular: • El numero de fichas rojas. 36. chequee si ese numero existe en algún elemento del arreglo leído. imprima los subíndices que identifican la ubicación del elemento que contiene el valor del numero leído. 35. Luego lea un numero. Se pide formar otro vector de N + M elementos el cual contendrá los elementos de los otros dos vectores ordenados de menor a mayor. Un tablero de Damas es una matriz de 8 filas por 8 columnas.

j) y B(i. Recopilado por: Docentes del área de Programación / Trayecto I / Trimestre II Unidad Curricular: Programación I Página 12 . 42.j) = A(i. 39. Calcule la suma de los elementos de la diagonal secundaria de Z. 40.1)*B(1. Suponiendo que el número de columnas de la matriz A y el numero de filas de la matriz B son ambos iguales a N. 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 que lea una matriz de N filas y M columnas (N<10. C(i. Número total de fichas.j) es una tercera matriz 41. Previamente se debe cargar la matriz. Caracteres. Diseñe un algoritmo para solucionar este problema 38. Elaborar un algoritmo para calcular el producto de dos matrices que cumplan con las condiciones antes señaladas y que además imprima la matriz resultante.j). Imprima las sumas calculadas. Calcule la suma de los elementos de la diagonal principal de Z.Ejercicios Propuestos de Arreglos. Elabore un algoritmo que lea un numero entero y positivo N(N<10). M<15) y forme un vector con los números pares que se encuentren en la matriz leída.j) + . Lea todos los elementos de una matriz Z de N filas y N columnas. Ordenamiento y Búsqueda • • • El numero de fichas negras.N)*B(N. Imprima el vector resultante.2)*B(2..j) + A(i. . Elabore un algoritmo para calcular e imprimir la transpuesta de A. + A(i.Objetivo 1. El producto de dos matrices con elementos A(i. .

Caracteres. Cualquiera matriz cuadrada de orden N puede aumentarse por medio de una matriz identidad . Por ejemplo la matriz identidad de orden es: 1 0 0 0 0 1 0 0 1 45. 44. colocada a su derecha... si la matriz dada es: 1 5 3 7 y la matriz identidad del mismo orden es: 1 0 0 1 entonces la matriz aumentada es: 1 3 1 0 5 7 0 1 Elabore un algoritmo que lea una matriz cuadrada de orden N(N<7) e imprima la matriz leída.Ejercicios Propuestos de Arreglos. por ejemplo. Los elementos deben quedar en forma descendente por filas dentro de la matriz. Ordenamiento y Búsqueda 43. del mismo orden. 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 demás elementos son iguales a cero (0). la matriz identidad del mismo orden y la matriz aumentada.Objetivo 1. Elabore un algoritmo que dada una matriz de N filas por N columnas que debe ser leída. Recopilado por: Docentes del área de Programación / Trayecto I / Trimestre II Unidad Curricular: Programación I Página 13 . Ordene los elementos de esa matriz de mayor a menor.

Para automatizar el proceso de elecciones de gobernador de un estado cualquiera. a cada elemento del arreglo corresponde una fila de la matriz. se debe elaborar un algoritmo que dependiendo del número de candidatos y del número 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 Programación / Trayecto I / Trimestre II Unidad Curricular: Programación I Página 14 .50 8:30 8:00 5:00 Día 3 7:30 7. 47. El total de horas trabajadas por todos los hombres en toda la obra.Objetivo 1.00 9:40 7:00 6:50 … … … … … … Día M 8:00 9. el numero de horas trabajadas durante la jornada. Al final de cada jornada. Caracteres. El código del trabajador que más horas laboró y el número del día en que más horas laboró dicho trabajador.00 7:20 7:30 8:20 Diseñe un algoritmo que lea los datos anteriores teniendo en cuenta lo siguiente: Los números de identificación (códigos) se almacenaran en un vector y las horas laboradas en una matriz. El algoritmo debe calcular e imprimir lo siguiente: El total de horas trabajadas por cada hombre. a cada hombre se le guarda. Al terminar la obra se tendrá la siguiente información: Codigo del Trabajador 120 128 221 300 Codigo N Día 1 8:50 8.. en un registro que contiene el código del trabajador.00 7:30 8:00 10:00 Día 2 9:00 9. El total de horas trabajadas en cada jornada. donde en su orden respectivo. Ordenamiento y Búsqueda 46.Ejercicios Propuestos de Arreglos. N trabajadores de la construcción laboran durante M días en cierta obra.

DISTRITO CANDIDATO1 CANDIDATO2 CANDIDATO3 TOTAL DISTRITO 300 700 320 TOTAL DE VOTOS: 1320 1 2 3 TOTAL CANDIDATO 150 300 100 550 100 50 120 270 50 350 100 500 Recopilado por: Docentes del área de Programación / Trayecto I / Trimestre II Unidad Curricular: Programación I Página 15 .Ejercicios Propuestos de Arreglos. así mismo visualizar el candidato mas votado. Ordenamiento y Búsqueda • • Se debe leer el número de candidatos a participar en las elecciones y el número de municipios en que se divide el estado. Usar arreglos bidimensionales. • Se debe calcuar e imprimir el total de votantes por cada municipio y el total de votantes..Objetivo 1. Caracteres. Si ningún candidato recibe más del 50 % de los votos se debe imprimir el nombre de los candidatos más votados que pasarán a la segunda vuelta. Se debe calcular e imprimir los totales de los votos recibidos por cada candidato y el porcentaje de votos emitidos. Se debe tomar en cuenta una estructura similar a la siguiente para la elaboración del algoritmo. • • Si algún candidato recibe más del 50 % de los votos debe declararse como ganador.

Ejercicios Propuestos de Funciones y Recursividad 1. la reina puede atacar cualquier pieza que esté en la misma fila.Objetivo 2. 2. 3. En un tablero de ajedrez. D (derecha) y F (fin) para terminar. de modo que ninguna reina pueda atacar a ninguna otra. que por medio de funciones. Escribir un programa. que solicite del usuario un carácter y que sitúe ese carácter en el centro de la pantalla. El problema de las n reinas es posicionar n reinas en un tablero de n*m. columna o diagonal que ella. Escribir un programa que lea una cadena de hasta diez caracteres que representa a un número en numeración romana e imprima el formato del número romano y su equivalente en numeración arábiga. Devolver el valor del día de la semana en respuesta a la entrada de la letra inicial (mayúscula o minúscula) de dicho día. A continuación. permita llenar una matriz cuadrada de ceros. I (izquierda). B (abajo). 5. Escribir un Recopilado por: Docentes del área de Programación / Trayecto I / Trimestre II Unidad Curricular: Programación I Página 16 .. Escribir un programa en base a funciones. ii. Determinar el número de días de un mes y año dados. 6. el usuario debe poder desplazar el carácter pulsando las letras A (arriba). 4. excepto la diagonal principal que debe llenarse con 1. Escribir un programa mediante funciones que realice las siguientes tareas: i. Escriba una función que calcule cuántos puntos de coordenadas enteras existen dentro de un triángulo del que se conocen las coordenadas de sus tres vértices.

11. Escribir un programa. Realice un programa que permita calcular la inversa de una matriz. Escriba un programa que use funciones y menús para trabajar con matrices. resuelva este problema y permita visualizar el resultado por pantalla.Ejercicios Propuestos de Funciones y Recursividad programa. Escribir un programa. 10.. que por medio de funciones. permita visualizar el triángulo 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 triángulo de Pascal. El programa debe controlar las restricciones de los índices de las matrices para las operaciones que lo requieran. 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.Objetivo 2. 7. La fórmula que permite conocer el día de la semana correspondiente a una fecha es: Recopilado por: Docentes del área de Programación / Trayecto I / Trimestre II Unidad Curricular: Programación I Página 17 . haciendo uso de funciones. que por medio del uso de funciones. restar y multiplicar dos matrices. 12. El programa debe sumar. El usuario indica únicamente el mes y el año. cada número es la suma de los dos números situados encima de él.

d=día. el cual contenga una función que lea dos números flotantes. el cual calcule el área de un rectángulo. etc. Restantes meses: n= a + 31 * (m-1) + d . Realice un programa. y permita a través de funciones. m=mes. restarlos y multiplicarlos. sumar los dos números. 17. permita leer 3 números enteros y los imprima de forma ascendente. Escribir un programa que contenga una función que reciba como parámetro un número y devuelva como resultado un valor de tipo lógico que indique si el número es o no par.(3*(a div 100 + 1)) div 4. El usuario podrá escoger la operación que desee realizar luego de haber introducido los dos números. Escribir un programa. 15. Debe emplear funciones.Ejercicios Propuestos de Funciones y Recursividad Meses de enero o febrero: n= a + 31 *(m-1) + d (a-1) div 4 – 3 * ((a+99) div 100) div 4. 2= martes.(4*m + 23) div 10 + a div 4 . Nota: n mod 7 indica el día de la semana (1=lunes. Donde a=año..) 14. Recopilado por: Docentes del área de Programación / Trayecto I / Trimestre II Unidad Curricular: Programación I Página 18 .Objetivo 2. sabiendo que la fórmula para calcular dicha área es la siguiente: Área del rectángulo = Base*Altura 16. que por medio de funciones. Realice un programa en C. Realice un programa que determine el mayor de 3 números enteros. (Las comparaciones deben estar dentro de una función) 18.

Escribir un programa que contenga una función que reciba los valores de x y n como parámetros de entrada y devuelva el valor de x a la n como salida.Objetivo 2. Escribir un programa que contenga una función que imprima la pirámide 1 121 12321 1234321 La declaración de la función será la siguiente: void piramide (int niveles) Siendo niveles el numero de filas de la pirámide 22. la función devolverá el numero 11. 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 función que reciba como parámetros las dos coordenadas cartesianas (x.Ejercicios Propuestos de Funciones y Recursividad 19. Escribir un programa que contenga una función que reciba como parámetro dos números y devuelva como resultado un valor de tipo lógico que indique si el primer número es múltiplo del segundo. 23. Escribir un programa que contenga una función que reciba como parámetros de entrada dos instantes de tiempo expresados en horas.. devuelva el numero primo inmediatamente siguiente y superior a dicho numero primo. Por ejemplo. Escribir un programa que contenga una función de nombre Siguiente tal que. minutos y segundos y devuelva como resultado un 1 o un 2 Recopilado por: Docentes del área de Programación / Trayecto I / Trimestre II Unidad Curricular: Programación I Página 19 . 20. 21. recibiendo un número primo mayor que uno. si se invoca siguiente (7).

. respectivamente. Pint min). que reciba como parámetros de entrada dos numeros enteros x1 y x2 y devuelva a través de los parámetros de salida max y min el máximo y el mínimo. W) y su Tolerancia (en %).01 0. 28. Modificar la función anterior para que calcule también el valor medio de ambos números. int x2.Objetivo 2.Ejercicios Propuestos de Funciones y Recursividad según el primer instante de tiempo sea anterior al segundo o viceversa 25. Pint media). int x2. Escribir un programa que contenga una función cuyo prototipo es: bool esLetra (char c). Las resistencias electrónicas suelen ir identificadas por un código de colores que permite marcar cada resistencia con su valor (en Ohmios. Pint min.1 1 10 102 103 104 105 10% 5% 0 1 2 3 4 5 Negro Marrón Rojo Naranja Amarillo Verde 2% Recopilado por: Docentes del área de Programación / Trayecto I / Trimestre II Unidad Curricular: Programación I Página 20 . Este código de colores viene representado en la siguiente tabla: Dígito Color Ninguno Plata Oro Multiplicador Tolerancia 20% 0. El nuevo prototipo de la función será ahora el siguiente: void maxmin (int x1. Escribir un programa que contenga una función void maxmin (int x1. 27. que reciba como parámetro de entrada un carácter y devuelva un valor lógico true si dicho carácter es una letra del alfabeto. Pint max. y false en caso contrario. de ambos números. Pint max. 26.

11 y 12). 5% Rojo-Negro-Rojo-Rojo 2kW. 10% Según todo lo anterior: • Implemente una función que permita calcular la resistencia y la tolerancia de una resistencia. Plata y Ninguno tomarán los valores 10. • Implementar una función que muestre por pantalla el dígito que le corresponde a cada color (incluyendo los dígitos 10. El subprograma tendrá. Una vez multiplicados ambos valores. Recopilado por: Docentes del área de Programación / Trayecto I / Trimestre II Unidad Curricular: Programación I Página 21 . que serán números naturales. obtenemos el valor de la resistencia en Ohmios (W). 11 y 12 respectivamente. no puede ser de cualquier color. La cuarta banda indica la tolerancia de la resistencia y. cada resistencia está marcada con 4 bandas y cada una de ellas puede ser de diferente color. 4 argumentos.Objetivo 2. que depende de cada color: Las primeras 2 bandas indican un número de 2 dígitos: Esos dos dígitos vienen dados por el color de esas bandas. sabiendo los códigos de colores. tienen los siguientes valores de resistencia y tolerancia: Verde-Azul-Amarillo-Oro 560kW.. como puede verse en la tabla. es decir. como mínimo. Cada banda tiene un significado. Los colores Oro. Ejemplo: Unas resistencias con los siguientes colores. 2% Rojo-Rojo-Marrón-Plata 220W. según la columna "Dígito" de la tabla.Ejercicios Propuestos de Funciones y Recursividad 6 7 8 9 Azul Violeta Gris Blanco 106 107 El código que suele emplearse en las resistencias es un código de 4 colores. La tercera banda es un valor por el que se multiplicará el número obtenido por las bandas anteriores. y que indicarán el color de las bandas según la columna "Dígito".

12 de Octubre (día de la Hispanidad.. la siguiente 1 y a partir de la tercera llamada devolverá la suma de los dos valores anteriores: 1.. El programa deberá remarcar de alguna forma los días festivos: Todos Domingos y algunas fiestas especiales 28 de Febrero (día de Andalucía). 6 y 8 de Diciembre (día de la Recopilado por: Docentes del área de Programación / Trayecto I / Trimestre II Unidad Curricular: Programación I Página 22 . El programa mostrará el dígito que le corresponde a cada color usando el procedimiento ya creado y leerá de teclado 4 números que corresponderán a los colores de las 4 bandas. 1 de Mayo (día del trabajo). es decir. Basándose en ese ejercicio hacer un programa que muestre en pantalla el calendario de un mes y año elegido por el usuario del programa. 2. Virgen del Pilar). 5. La función devolverá datos de tipo unsigned long int. 30. 34. O sea. 3. la primera vez que se llame devolverá 0.. Intente modificar la función para que posibilite llegar a un término mayor utilizando datos de tipo long double. 29. ¿Hasta qué término es posible calcular sin que se produzca desbordamiento?.Ejercicios Propuestos de Funciones y Recursividad Implementar también un programa que pida los colores de las 4 bandas y muestre los valores devueltos por la anterior función. Calendario Perpetuo: Este ejercicio por objetivo averiguar el día de la semana del 1 de Enero de cualquier año posterior a 1582. 21. 13. El programa se repetirá indefinidamente hasta que lea un valor negativo como color de una banda. en 7 columnas. prestando especial cuidado con el mes de Febrero por si es año bisiesto. una para cada día de la semana y teniendo en cuenta el número de días de cada mes. El programa mostrará el calendario del mes elegido de forma tradicional. Tras esta lectura mostrará los datos de la resistencia con esos colores en las bandas. Hacer una función sin argumentos que cada vez que se llame Fibb devuelva el siguiente valor de la sucesión de Fibonacci. 8.Objetivo 2.

Entonces. además de para el número 5.Ejercicios Propuestos de Funciones y Recursividad Constitución y de la Inmaculada).. à Por ejemplo. 2. "Cambiar divisor: Y" (donde Y es el último divisor introducido) y "Calcular división". decimos que el "máximo multiplicador cabalístico" de N es X: MMC(N)=X. Es decir. redondeando este último según el undécimo decimal. El programa debe detectar e indicar si entre los 10 primeros decimales se produce algún periodo (puro o mixto). pero en distinto orden. 4. el resultado será un número con los mismos dígitos que N. y también el Jueves y el Viernes Santo.. 25 de Diciembre (Navidad). 31. al principio del Recopilado por: Docentes del área de Programación / Trayecto I / Trimestre II Unidad Curricular: Programación I Página 23 . Al final debe mostrar el N cuyo valor MMC(N) es el mayor de todos los números analizados.. Por defecto. 2. 3. Hacer un programa que muestre (usando funciones independientes): • La mayor lista de números posible. Ejemplo: MMC(142857) = 6. X. 32... Para el número 142857 la propiedad se cumple. Máximo Multiplicador Cabalístico: Hay números naturales que al multiplicarlos sucesivamente por 1. 3. en la que todos cumplen que MMC(N) es mayor o igual a 2..Objetivo 2. mostrar su valor MMC(N). El Menú contendrá las opciones "Cambiar dividendo: X" (donde X es el último dividendo introducido). se cumple esa propiedad al multiplicarlo por 1. Dividir calculando periodos: Implementar un programa para dividir dos números de tipo long double. • Dado un número N... si yo multiplico N por cualquier número del intervalo [1.6]. también para cualquier número del intervalo [1. El resultado debe tener hasta 10 decimales.X]. 142857*5=714285. se obtienen números que tienen los mismos dígitos que el original pero en distinto orden (sólo al multiplicar por 1 se obtiene un número con los mismos dígitos en el mismo orden). Supongamos que para el número N.

... 12/7 = 1. Ejemplos: 12/9 = 1. 714285714285714285.)... Para efectuar diversas divisiones cambiando sólo el divisor bastará con usar la segunda y tercera opciones sucesivamente.. -. 13/6 = 2...-.-.-..3 con 3 como periodo (1. ya que el dividendo permanecerá constante mientras no se cambie usando la primera opción.714285 con 714285 como periodo (1.--. .. La versión internacional del código Morse aparece en la tabla siguiente: Carácter A B C D E F G H I Código Carácter T U V W X Y Z Código ..-. para uso en el sistema telegráfico.. ..166666666..Objetivo 2. . Quizás el más famoso de todos los sistemas de codificación es el código Morse... 33.). La separación entre palabras se indica por un espacio o por la ausencia de un punto o una raya.)... .Compruebe que el divisor no sea nunca cero.---.. desarrollado por Samuel Morse en 1832.16 con 6 como periodo (2.Ejercicios Propuestos de Funciones y Recursividad programa se debe suponer un valor cualquiera para el dividendo y el divisor. . a cada dígito y a unos cuantos caracteres especiales... Para calcular los periodos se pueden calcular los restos obtenidos al sacar decimales en la división y. El código Morse asigna una serie de puntos y rayas a cada letra del alfabeto. -. en cuyo caso tenemos un periodo a partir de ese dígito. en cada resto comprobar si ese resto ya se ha repetido anteriormente. --.3333333333.. Números Recopilado por: Docentes del área de Programación / Trayecto I / Trimestre II Unidad Curricular: Programación I Página 24 .

-.---.. Utilice un espacio en blanco entre cada letra codificada Morse y tres espacios en blanco entre cada palabra codificada en Morse..... --. ---.--. Elevar un entero positivo a una potencia entera positiva..Objetivo 2.. --. ... implementando una función que se llame Morse2Frase() y 3) Salir. Calcular la sumatoria de los elementos de un arreglo. --. 36. La base y el exponente deben ser valores enteros positivos. El programa deberá incorporar una función Menu() que muestre las siguientes opciones: 1) Pasar una frase a código Morse. 1 2 3 4 5 6 7 8 9 0 ....---.. lo cual se implementará en una función que se llame Frase2Morse()... Recopilado por: Docentes del área de Programación / Trayecto I / Trimestre II Unidad Curricular: Programación I Página 25 .. --. 2) Pasar código Morse a una frase.--... Se introducirán tantos números como lo desee el usuario. Calcular el máximo común divisor de una lista de números enteros..-.Ejercicios Propuestos de Funciones y Recursividad J K L M N O P Q R S .. USANDO RECURSIVIDAD: 34. ----- Escriba un programa que lea una frase escrita en español y cifre dicha frase en código Morse y que también lea una frase en código Morse y la convierta en el equivalente en español.-. 35. -... El máximo común divisor es el mayor número entero que divide (división exacta) a todos los elementos de la lista. ----.

40.Ejercicios Propuestos de Funciones y Recursividad 37.. 38. Imprimir los elementos de un arreglo. es un palíndromo. Máximo de 60 caracteres más el carácter nulo.Objetivo 2. 41. Realizar una búsqueda de un elemento en un arreglo a través de búsqueda binaria. Imprimir en reversa una cadena introducida por el teclado. introducida por teclado. Ordenar un arreglo a través del método de selección. 39. Determinar si una cadena. Recopilado por: Docentes del área de Programación / Trayecto I / Trimestre II Unidad Curricular: Programación I Página 26 .

terminando la cadena con el caracter '\0' (Función strcat() de la biblioteca <string. Recopilado por: Docentes del área de Programación / Trayecto I / Trimestre II Unidad Curricular: Programación I Página 27 . según corresponda. y una variable entera "n".. 5.h>). terminando la cadena con el caracter '\0' (Función strcpy() de la biblioteca <string. 6. compare lexicográficamente los primeros "n" caracteres. Escribir una función que reciba como argumento dos cadenas de caracteres.Objetivo 3.h>). un arreglo de caracteres con espacio suficiente. (Función strcmp() de la biblioteca <string. 4.h>). Escribir una función que dadas dos cadenas de caracteres y un número "n" entero recibidos como parámetros. y copie la cadena en el arreglo. y retorne por el nombre valores positivos.Ejercicios Propuestos de Punteros o Apuntadores 1. Escribir una función que reciba dos cadenas de caracteres como argumentos. Escribir una función que reciba como argumento un arreglo de caracteres y lo devuelva invertido por pantalla 3. cero o negativo. cero y negativos. según corresponda. Escribir una función que determine si una cadena de caracteres recibida como parámetro está vacía o no 2. realice una comparación lexicográfica de las mismas. devolviendo un valor positivo. 7.h>). Escribir una función que reciba una cadena de caracteres. y copie los primeros "n" caracteres de la cadena sobre el arreglo. Escribir una función que reciba una cadena de caracteres "s" y un arreglo de caracteres con espacio suficiente "t". (Función strncmp() de la biblioteca <string. y realice la concatenación de una sobre la otra.

Escribir una función que convierta a minúsculas una cadena de caracteres recibida como argumento.. 8. 9. Escribir una función que reciba como parámetro una cadena de caracteres que comienza con espacios en blanco.Objetivo 3. Escribir una función que responda al siguiente prototipo: void replace (char *s. char viejo) . (operación "right-trim"). char nuevo. 10. y verifique la existencia de Recopilado por: Docentes del área de Programación / Trayecto I / Trimestre II Unidad Curricular: Programación I Página 28 . (operación "lefttrim"). un tipo enumerativo compuesto por los tokens UPPERCASE y LOWERCASE: 11. y la convierta a minúsculas o mayúsculas. Escribir una función que reciba dos cadenas de caracteres denominadas "s1" y "s2" respectivamente. 14. Escribir una función que reciba como parámetro una cadena de caracteres que finaliza con espacios en blanco. de acuerdo a una opción ingresada por el usuario a través del parámetro "format". Escribir una función que convierta a mayúsculas una cadena de caracteres recibida como argumento. (Función strncpy() de la biblioteca <string. y los elimine desplazando los caracteres útiles hacia la izquierda. 13.Ejercicios Propuestos de Punteros o Apuntadores sin terminar la cadena con el carácter nulo. cuyo tipo es case.h>). y reemplace en la cadena "s" todas las apariciones del carácter "viejo" por el carácter "nuevo". Escribir una función que reciba una cadena de caracteres como argumento. y los elimine desplazando los caracteres útiles hacia la izquierda. 12.

h>). 21. 16. Escribir una función que reciba una cadena de caracteres y determine si es un palíndromo o no. 18. Considerar el caso de longitudes de cadena par e impar. retornando las partes por pantalla. y determine si es una matriz es simétrica o no.Ejercicios Propuestos de Punteros o Apuntadores la cadena s2 como subcadena integrante de la s1. minutos y segundos.. Escribir una función que calcule las partes entera y decimal de cualquier número real recibido como argumento. 20. El programa deberá estar dividido en las siguientes funciones: Recopilado por: Docentes del área de Programación / Trayecto I / Trimestre II Unidad Curricular: Programación I Página 29 . y retorne el valor de su determinante. 19. cuando se le aplica un voltaje determinado. a su equivalente en horas.Objetivo 3. Escribir una función que reciba una matriz cuadrada de enteros y su dimensión. 17. retornando el resultado por el nombre. Crear un programa que calcule el valor de la intensidad que pasa a través de una resistencia dada. retornando un token del tipo enumerativo int por el nombre de la función (ver función strstr() de la biblioteca <string. y las retorne por pantalla. Escribir una función que recibe las coordenadas rectangulares de dos puntos del plano y calcule la distancia entre ellos. Escribir una función que reciba una matriz cuadrada de doubles y su dimensión. 15. retornando el resultado por el nombre. Escribir una función que convierta un número que representa una cantidad de segundos.

23. calcular (): Esta función efectuará el cálculo de la intensidad a partir de la resistencia y el voltaje aplicado. 24. Escribir un programa que inicialice una cadena con una palabra cualquiera. imprimir_respuesta (): Esta función se encargará de mostrar un mensaje con los resultados. Crear un programa que lea un número determinado (<100) de números reales introducidos por teclado los almacene en un vector para mostrarlos luego en orden inverso. Una vez sabida esta dirección la mostrará por pantalla y realizará un bucle dando 3 oportunidades para que el Recopilado por: Docentes del área de Programación / Trayecto I / Trimestre II Unidad Curricular: Programación I Página 30 . 25.Objetivo 3. obtener_valores (): Esta función pedirá los valores para la resistencia y voltaje los cuales se pasarán por referencia al programa principal. Para probar la función escribir un programa que pida los datos por pantalla y muestre los contenidos después de llamar a la función. La función contendrá un array de apuntadores a cadena. Nota: Para recorrer el array se deberá usar aritmética de punteros en lugar de usar los índices del array. Para probar la función se realizará un programa que pida un día de la semana en número y escriba el día de la semana en letra. Escribir una función que tras pedir un día de la semana (de 1 a 7) devuelva un puntero a cadena con el nombre del día. Para ello se pasarán como parámetros las direcciones de las variables. Crear una función que intercambie el contenido de dos variables.. El programa deberá obtener la dirección de la primera letra de la cadena.Ejercicios Propuestos de Punteros o Apuntadores explicar_programa (): Esta función mostrará una introducción del programa por la pantalla. 22.

Objetivo 3. Recopilado por: Docentes del área de Programación / Trayecto I / Trimestre II Unidad Curricular: Programación I Página 31 .. deberá sacar un mensaje indicando cuál es la dirección correcta. En caso de no introducirla bien después de los 3 intentos.Ejercicios Propuestos de Punteros o Apuntadores usuario introduzca la dirección de la tercera letra de la cadena.

con el propósito de llevar su inventario y obtener información rápida de ellos. invertida en la compra de todos los CD guardados en el arreglo. Una empresa dedicada a la venta de discos compactos (CD) desea almacenar los datos de una colección de CD de música. Diseñe la función “void listar_cd (struct cd arreglo_cd[100])” que permita mostrar todos los datos de los CD contenidos en el arreglo. Listar los CD con un número de canciones mayor o igual a 15. • Diseñe la función “void vender_cd (struct cd arreglo_cd[100])” que permita vender uno o varios CD siempre y cuando haya disponibilidad. que diseñe una estructura llamada “CD” que contenga los siguientes miembros (campos): Nombre del Miembro Título Artista Número de canciones Cantidad de CD Precio Tipo de Dato Arreglo de caracteres de tamaño 30 Arreglo de caracteres de tamaño 25 Entero. Mostrar la cantidad total en Bs. • • • • Se debe validar que exista el CD en el arreglo antes de venderlo.Ejercicios Propuestos de Estructuras 1.. Recopilado por: Docentes del área de Programación / Trayecto I / Trimestre II Unidad Curricular: Programación I Página 32 . Se requiere que usted realice un programa en C. Diseñe la función “void incluir_cd (struct cd arreglo_cd[100])” que permita ingresar los datos de los CD en el arreglo. mostrar los CD relacionados con dicho artista. Dado el nombre de un artista. Entero. (cantidad de CD >0). Coma flotante Tomando en cuenta la información anterior realice lo siguiente: • • • Cree un arreglo unidimensional (vector) de 100 estructuras.Objetivo 4.

De cada llamada se almacenan los siguientes datos: código de área.. cuyos componentes son del tipo PERSONAL. Liste nombre. Mostrar todos los datos de las llamadas realizadas a la ciudad de Caracas. dirección contratados con salario >= 1500 BF y turno de los profesores 4. minutos. • • • Calcule el número de alumnos y profesores del Colegio. apellido. En un colegio la información de la comunidad es guardada en un arreglo. En una librería tienen la necesidad de automatizar el manejo de la información de los libros que están a la venta. Se desea que usted almacene M llamadas telefónicas. llamado COLEGIO. fecha y destino.03 BF. edad. día. Sabiendo que el costo por minuto de llamadas locales es de 0. mes y año en que fue realizada. número marcado. la sección y la nota promedio. para los alumnos se almacena el curso. duración. Liste el nombre. que genere una estructura de datos que contemple la siguiente información: • Cota del libro. dirección y otros datos que dependen de si la persona es profesor o alumno. Indicar el total a pagar por llamadas locales.Objetivo 4. segundos.Ejercicios Propuestos de Estructuras 2. el salario y el turno. apellido. apellido. Recopilado por: Docentes del área de Programación / Trayecto I / Trimestre II Unidad Curricular: Programación I Página 33 . En el caso de un profesor se almacena la categoría ( fijo o contratado). 3. además por razones de operaciones se quiere que la fecha contenga: hora. edad y promedio de todos los alumnos de la sección dos de cuarto año. por lo que se solicita a usted hacer un programa en C. Se requiere el siguiente reporte: • • • Número de llamadas realizadas en el mes de febrero del año 2010. Los datos del personal son: nombre.

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.. 4. Fecha de edición. Salir. El programa que muestre un menú con las opciones de: 1. Tenga en cuenta que la cota del libro no debe repetirse. Si el autor no está registrado se le debe indicar al usuario a través de un mensaje. nombre. dirección y tipo de enfermedad. Por cada paciente se debe registrar: Cedula. Nombre de la editorial. Si la cota no existe se le debe indicar al usuario a través de un mensaje • Listar_Autor: muestra una lista de libros según un autor solicitado. 2. Registrar Paciente. sexo. Buscar Paciente. teléfono. Buscar_Libro: dada la cota de un libro en particular. mostrar sus datos. (Hacer otra estructura llamada fecha: día. 5. Se debe incorporar las siguientes funciones: • Ingresar_Registro: que permitirá ingresar los datos del paciente atendido. 3. Nombre del autor. Mostrar_Libros: permitirá mostrar todos los libros ingresados.Objetivo 4. Desarrolle un programa que permita registrar y administrar los datos necesarios para este estudio. Se debe validar que solo se ingrese los tipos de enfermedad en Recopilado por: Docentes del área de Programación / Trayecto I / Trimestre II Unidad Curricular: Programación I Página 34 . Reporte por enfermedad. Ahora se requiere que construya un menú que incorpore además de la opción Salir las siguientes funciones: • • • Leer_Libro: que permitirá ingresar los datos del libro. mes y año) Precio.Ejercicios Propuestos de Estructuras • • • • • Nombre del libro.

. mostrar sus datos y preguntar si realmente desea eliminarlo. dirección. teléfono. Apellidos.Objetivo 4. de ser así solicitar nuevamente los datos. Listar_Contactos: mostrar todos los contactos de la agenda. • Se debe salir del programa sólo por la opción Salir del menú. 6. donde se construya un menú con las siguientes funciones: • Registrar_Contacto: donde se registrará los datos de una persona (nombre. este reporte debe mostrar el total de personas atendidas por enfermedad. que simule una Agenda. • • • Buscar_Contacto: dado el nombre de un contacto se debe mostrar sus datos. mostrar sus datos. sino volver al menú sin hacer ningún cambio. • • Buscar_Paciente: dada la cédula de identidad de un paciente. • Eliminar_Contacto: dado el nombre del usuario. de ser así eliminar el contacto. email). mostrar sus datos y preguntar si realmente desea modificarlo. sino volver al menú sin hacer ningún cambio. Tenga en cuenta que la agenda solo tiene capacidad para 50 contactos. Nota: Para eliminar el contacto puede agregar en la estructura un campo llamado “Marca”. Modificar_Contacto: dado el nombre del usuario. cuando dicho campo sea igual a 0. Reporte_Enfermedad: que muestre las personas atendidas por cada enfermedad (el reporte debe contener cedula y nombre). el contacto se Recopilado por: Docentes del área de Programación / Trayecto I / Trimestre II Unidad Curricular: Programación I Página 35 .Ejercicios Propuestos de Estructuras estudio (Paludismo y Fiebre Amarilla) y que la Cédula del paciente no se repita. Realizar un programa en C.

Para ello se solicitará: Núm. (No debe ser mayor que el Número total de boletos) Fecha de Salida (Hacer otra estructura llamada fecha: día. verificará si hay boletos disponibles para ese destino. nombre del chofer. Por último se debe mostrar por pantalla los datos del boleto vendido. mes y año) Ahora se requiere que construya un menú que incorpore además de la opción Salir las siguientes funciones: • Registrar_Boletos: El programa registrará los boletos por unidad. precio del boleto. de la Unidad. Además.. En una línea de autobuses tienen la necesidad de automatizar la venta de boletos. de haber disponibilidad se solicitará la fecha de salida de la unidad y el número del boleto a vender. 7. se debe decrementar el Número total de boletos. si existe. número total de boletos disponibles. • Venta_Boletos: Función que permite vender un boleto. que genere una estructura de datos que contemple la siguiente información: • • • • • • • Número de la Unidad Nombre del Chofer Destino Número total de boletos Precio del boleto Número del boleto vendido. Recopilado por: Docentes del área de Programación / Trayecto I / Trimestre II Unidad Curricular: Programación I Página 36 . se solicitará el destino del cliente. por lo que se solicita a usted hacer un programa en C. destino al que viajará la unidad. Para ello. entonces el contacto estará eliminado.Objetivo 4. sino si el campo Marca es igual a 1.Ejercicios Propuestos de Estructuras considerará activo.

Por cada profesor: a) cédula. Si el profesor es Recopilado por: Docentes del área de Programación / Trayecto I / Trimestre II Unidad Curricular: Programación I Página 37 . mostrando por pantalla un informe con: Número de la unidad. tiempo completo y medio tiempo). c) fecha de ingreso al instituto. b) código de asignatura (único). b) nombre del profesor. b) Tiempo Completo: 1500 Bsf y c) Medio Tiempo: 1000 Bsf Hay que tener en cuenta que si el profesor es dedicación exclusiva el sueldo incluye un complemento que se calcula en función del número de años que el profesor ha trabajado en la institución. A partir de la(s) estructura(s) de datos adecuada calcula el sueldo promedio al año de los profesores del instituto. El sueldo base anual depende de la dedicación: a) Exclusiva: 2000 Bsf. d) semestre. destino. nombre del chofer. monto total en Bs. 8.. e) créditos. Teniendo en cuenta que un profesor puede impartir más de una asignatura. A partir de la(s) estructura(s) de datos adecuada y el código de la asignatura. cobrando 150 Bsf mensuales por cada cinco años completos trabajados. c) nombre de la asignatura. número de boletos vendidos. diseñar las estructuras de datos apropiadas y los siguientes subprogramas: • ProfesorAsignatura.Objetivo 4. d) fecha de nacimiento. • SueldoMedioAnual. por los boletos vendidos en todas las unidades. obtener el nombre del profesor que imparte la asignatura si existe la asignatura y el profesor. número de boletos restantes. Una aplicación informática de un centro universitario dispone de la siguiente información sobre una carrera: Por cada asignatura: a) cédula del profesor que la imparte. e) dedicación (exclusiva.F.Ejercicios Propuestos de Estructuras • Cierre_Venta: Esta función simula el cierre de las ventas.

4. con un Estado inicial de reservado. 5. Confirmado o Cancelado). Estado de la transacción (Reservado. siempre y cuando haya disponibilidad en el vuelo solicitado.Ejercicios Propuestos de Estructuras tiempo completo o medio tiempo el sueldo no incluirá el complemento de quinquenios. Destino. 6.. Para cada opción se debe Considerar lo siguiente: • Opción 1. Nombre del piloto. Confirmar Reserva de Boleto. Cédula. Cancelar Reserva de Boleto. La empresa solo tiene capacidad para 3 vuelos. Número máximo de pasajeros. la acción a tomar será cambiar el estado de reservado a Cancelado. 2. • Opción 4. diseñando un programa que se ocupe de las transacciones de los pasajeros de un vuelo. Listado de Pasajeros. se debe mostrar un Menú donde las opciones sean las siguientes: 1. Registrar Vuelos. De la transacción con los pasajeros se conoce: Número de vuelo reservado.Objetivo 4. 9. es cambiar el estado de reservado a Recopilado por: Docentes del área de Programación / Trayecto I / Trimestre II Unidad Curricular: Programación I Página 38 . Consultar Disponibilidad de un Vuelo. • Opción 3. Se requiere simular un Sistema de Reservación de Boletos en una compañía aérea. Reservar Boleto. Fecha de salida. De los vuelos se conoce: Número de vuelo. Si el pasajero cancela el pasaje. Si llega una confirmación del pasaje. 7. Cuando llega una solicitud de reservación. el pasajero es agregado en un arreglo de estructuras llamado Reservaciones. Nombre y Apellido del pasajero. Salir del Sistema. 3. la acción a tomar (suponiendo que esta persona esté en el arreglo de reservaciones) confirmado. • Opción 2. Para ello.

Al final del Listado se deberá mostrar promedio general del curso. • Opción ‘d’: Dado el número de un módulo. Nombre y Apellidos del estudiante y las calificaciones correspondientes a cada uno de los cuatro Módulos allí cursados. Mostrar para un vuelo en particular. Dado un Número de vuelo. mostrar sus datos. 10.Ejercicios Propuestos de Estructuras • • Opción 5. requiere desarrollar un programa para el registro y consulta de las notas de los estudiantes que allí realizan su Curso de Especialización en Redes. se desea conocer los datos y calificaciones del mismo. además el listado de pasajeros con reservaciones confirmadas para dicho vuelo. que se tienen 20 Estudiantes.. Recopilado por: Docentes del área de Programación / Trayecto I / Trimestre II Unidad Curricular: Programación I Página 39 . Mostrar Listado de Promedios d. Opción 6. se desea mostrar los estudiantes que aprobaron dicho módulo. la cantidad de puestos disponibles. Opción ‘c’: Mostrar un listado con los nombres y el promedio de notas de cada estudiante. La Academia Local “Cisco System” de la ciudad de Cumaná. Mostrar Listado por Módulos e. • • Opción ‘b’: Dada la Cédula de un estudiante. Se debe mostrar el siguiente menú: a. Registrar Calificaciones b. Es importante mencionar. Salir del Sistema Para cada opción se debe tener en cuenta lo siguiente: • Opción ‘a’: registrar los siguientes datos: Cédula. Consultar Calificaciones c.Objetivo 4.

txt 7. Este programa debe estar en la capacidad de extraer las vocales del texto almacenado en el archivo y enviarlas a un archivo vocal. y cerrar el archivo. El comando cp del sistema operativo linux. Desarrolle un programa que permita almacenar en un archivo un texto de longitud variada. leer su contenido y mostrarlo por pantalla. Desarrolle un programa que permita: abrir un archivo. 5. y la cantidad de numeros. y determinar si existe o no en el directorio actual. La estructura basica del comando es: >$cp archivo_original. en otro archivo se deben colocar los Recopilado por: Docentes del área de Programación / Trayecto I / Trimestre II Unidad Curricular: Programación I Página 40 .txt la línea final del archivo debe contener el numero total de vocales almacenadas.. Desarrolle un programa que acepte como argumento de la línea de comando el nombre de un archivo.Ejercicios Propuestos de Archivos Archivos de Texto 1. 8. numero de vocales. la busque dentro de un archivo e indique el número de veces que esta aparece. permite realizar una copia de un archivo. 2. Realice un programa que dado una frase. Se requiere de usted crear un programa que dado un archivo cree una copia del mismo. Desarrollar un programa que permita leer el contenido de un archivo y realice la siguiente estadistica: cuente el total de lineas. numero de consonantes. 3. 6.Objetivo 5. Desarrolle un programa que dada un texto lo escriba en un archivo. 4.txt archivo_copia.

así como también 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). Debe haber un tercer archivo en en el cual se almacene el total de caracteres del archivo original y el total de líneas del archivo original. 9. Diseñe un programa que permita leer el contenido de un archivo y lo cifre. monto y habitación reservada. Este lo ha seleccionado a usted como analista programador le solvente esta situación atendiendo los requerimientos que plantea. este mensaje se transforma en: Mensaje Cifrado: LSPERYQHS 10. Desea un programa que permita registrar las entradas y salida de los clientes del hotel. almacenando el texto cifrado en un archivo llamado cifa.Objetivo 5. Un Ejemplo de este método es el siguiente: Mensaje original: HOLA MUNDO Si el desplazamiento es K=4. Recopilado por: Docentes del área de Programación / Trayecto I / Trimestre II Unidad Curricular: Programación I Página 41 . fue el método del desplazamiento. El Gerente del Hotel Bahia Azul ubicado en la ciudad de cumaná.txt.. Uno de los sistemas de encriptación muy usados en el pasado. Por cada cliente que ingresa se almacena Nombre.Ejercicios Propuestos de Archivos números existentes en el texto y en la línea final debe colocar la cantidad números. Archivos Binarios 11. Los registros de los clientes que ingresan al hotel son almacenados manualmente en carpetas lo cual esta generando problemas para acceder a los datos. el cual consiste en hacer corresponder a cada letra del alfabeto otra letra de acuerdo a un valor dado denominado “desplazamiento”. ha planteado una situación particular en su empresa.

En el hospital Antonio Patricio de Alcalá se realiza actualmente un seguimiento de los pacientes que han ingresado al hospital por las enfermedades infectocontagiosa: Dengue clásico. nombre. Generar un reporte de todos los estudiantes del sistema escolar (Cedula y nombre). Debe también realizar un reporte que muestre las personas atendidas por cada enfermedad (el reporte debe contener cedula y nombre). dar de alta (ingresar) un elementos al archivo. cedula. dar de baja (eliminación lógica y física) un elemento del archivo. Usted como analista-programador debe realizar un programa que permita: Ingresar un estudiantes y sus notas (correspondiente a cada uno de los semestres). El programa debe incorporar las funciones de ingresar.Objetivo 5. Desea desarrollar un programa para el registro y control de los estudiantes que allí realizan su curso de especialización en Redes. y promedio). Desarrolle un programa que permita registrar y administrar los datos necesarios para este estudio. teléfono y dirección. La Academia Local “Cisco System”. este reporte debe mostrar el total de personas atendidas por enfermedad. Los datos a almacenar por cada Recopilado por: Docentes del área de Programación / Trayecto I / Trimestre II Unidad Curricular: Programación I Página 42 . nombre. Dengue Hemorrágico y A1HN1. 13.Ejercicios Propuestos de Archivos 12.. Por cada paciente se debe registrar: Cedula. buscar un elemento. 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. Determinar el promedio general de los estudiantes de la academia. edad. modificar los datos de un elemento. Para realizar el control de los estudiantes se debe registrar los siguientes datos: Nombre. este programa debe estar en la capacidad de: abrir o crear un archivo. 14. Diseñe un programa que permita controlar los datos de un conjunto de personas. y buscar un paciente. sexo.. y las calificaciones correspondientes a cada uno de los cuatro semestres allí cursados. sexo.

Además el programa permitirá determinar el número de contactos en la agenda. El messenger es un programa que permite a una persona comunicarse con otra a través de un sistema de charla on-line. nombre. 15.. La búsqueda de un contacto se puede realizar por su nombre. edad. Ford. correo electrónico principal. Nick (Alias). panas. un reporte de los autos en el parque por año de construcción. Cada Recopilado por: Docentes del área de Programación / Trayecto I / Trimestre II Unidad Curricular: Programación I Página 43 . Desarrolle un programa que permita almacenar los datos de los contactos. desea realizar un sistema para registro y control de los estudiantes que allí se especializan. Familiares.Ejercicios Propuestos de Archivos persona son: Cedula. El programa debe tener un menú que permita al usuario seleccionar la opción deseada. un reporte general de todos los autos. edad. Profesores). Este programa además permite almacenar los datos de los contactos en un archivo tipo agenda. sexo. correo electrónico. La empresa requiere: totalizar el número de autos en el parque. dirección y teléfono. Para realizar el control de los estudiantes se debe registrar los siguientes datos: Nombre y apellido. o Nick.Objetivo 5. el numero de contactos por cada grupo (Amigos. cedula. y generar un reporte con los datos de los contactos de un grupo especifico. 17. correo electrónico secundario. Esta empresa distribuye tan solo autos de 3 fabricantes: Toyota. eliminar un contacto que ya no se quiera. un reporte por marca de autos y total. mostrar los datos de un contacto particular. El Sistema escolar para adultos “Revolución en América Latina”. Chevrolet. 14) El concesionario de Autos usados “El primero”. 16. novias(os). Así como también desea conocer los autos que hasta una fecha dada (Mes y año) tengan más de 30 meses en el parque. Por cada contacto la agenda almacena los siguientes datos: Nombre. lo ha contratado a usted como analista – programador para que diseñe el sistema de control del parque automotor.

Generar un reporte de todos los estudiantes del sistema escolar (Cedula y nombre).bin”. Recopilado por: Docentes del área de Programación / Trayecto I / Trimestre II Unidad Curricular: Programación I Página 44 . totalizar el promedio de edad de los estudiantes del sistema. y los datos correspondientes a sus calificaciones en otro denominado “notas. Determinar los alumnos con promedio mayor a 18 puntos y generar un reporte de alumnos sobresalientes(el reporte debe tener cedula. y promedio).Ejercicios Propuestos de Archivos estudiante en este sistema cursa un máximo de cuatro Trimestres.bin”.Objetivo 5. nombre.. Generar un reporte con los alumnos con promedio de calificaciones inferiores a 10 puntos. Usted como analista-programador debe realizar un programa que permita: Ingresar un estudiantes y sus notas (correspondiente a cada uno de los trimestres). Los datos de los estudiantes se almacenan en un registro llamado “est.

Sign up to vote on this title
UsefulNot useful