En FECHA DE ENTREGA Y REVISION DE PROYECTO FINAL: 15 DE DICIEMBRE 2009.
FECHA DE EXAMEN FINAL: 16 DE DICIEMBRE DE 2009 (por confirmar)
EQUIPOS DE 5 O 6 PERSONAS (ni más de 6, ni menos de 5)
PRIMERA PARTE
Objetivos:
Reforzar sintaxis del lenguaje C.
Enriquecer la lógica de programación al analizar programas que resuelven diferentes problemáticas.
Indicaciones: Analizar, Entender, Capturar y Ejecutar cada uno de los programas que se te piden de los siguientes libros.
Programación en C. Libro de problemas. Luis Joyanes Aguilar
Como Programar en C/C++ Deitel/Deitel 2da edición
Programación Estructurada en Lenguaje C Leobardo López Roman
Programacion Estructurada. Un enfoque Algoritmico 2da edición. Leobardo Lopez Roman
C/C++ Curso de Programación 2da edición Fco. Javier Ceballos AlfaOmega
SEGUNDA PARTE
Objetivos:
Poner a prueba su habilidad para solucionar problemas en la computadora, haciendo uso de la lógica de programación desarrollada durante el curso y los conocimientos del lenguaje C.
Lograr un buen trabajo en equipo, fomentando el compañerismo y apoyo en la solución de los problemas.
Indicaciones: Realiza un programa en C para cada uno de los problemas planteados. Utiliza Funciones.
Redacción de Problemas para programar
TERCERA PARTE
Objetivo: Fomentar el desarrollo de un pensamiento lógico.
Indicaciones: Elige el inciso que mejor corresponda.
Ejercicios de Lógica.
Libro: Programación en C. Libro de problemas. Luis Joyanes Aguilar. Mc Graw Hill
Problemas de Funciones.
Página 93,94. Problema 6.15. Numero Combinatorio.
Página 95,96,97. Problema 6.17 Anualidades de capitalización.
Página 132,133,134. Problema 7.14 Triangulo de Pascal
Página 134,135. Problema 7.15 Suma, Resta, Multiplicación de Matrices
Página 136,137,138 Problema 7.17 Transpuesta, simetría o antisimetria de matrices.
Página 138,139 Problema 7.18 Encontrar elemento mayor y menor de una matriz
Página 145,146 Problema 7.23 Lectura de una cadena de caracteres y convertirla en numero
Página 146,147,149 Problema 7.24 Conversiones de base numérica
Página 149,150 Problema 7.26 Palíndromo
Página 169,170 Problema 8.18 Un punto en el plano (struct)
Libro: Como Programar en C/C++ Deitel/Deitel 2da edición
Pagina 120,121. Programa de la figura 4.1 Como utilizar el break en un ciclo
Pagina 121. Programa de la figura 4.12 Como utilizar continue en un ciclo
Página 162. Programa de la figura 5.8. Núm. Aleatorios. Tirar un datos 6000 veces
Pagina 171, 172. Programa de la figura 5.12 Alcance de una variable global, local, static.
Página 192. Programa 5.3. Funciones matemáticas
Problemas de Vectores
Página 207. Programa de la figura 6.3. Como inicializar los elementos de vector a ceros
Pagina 208. Programa de la figura 6.4. Como inicializar los elementos de um vector mediante una declaracion.
Pagina 210. Programa de la figura 6.5 Como generar los valores a colocarse en los elementos de un arreglo.
Pagina 211. Programa de la figura 6.6 Como calcular La suma de los elementos de un arreglo
Pagina 212. Programa de la figura 6.7 Analisis de uma encuesta de alumnos (vector)
Pagina 214. Programa de la figura 6.8 Histograma (vector)
Pagina 216. Programa de la figura 6.10 Como tratar vectores tipo char como cadenas
Pagina 224. Programa de La figura 6.15 Como ordenar un arreglo utilizando La ordenacion tipo burbuja
Pagina 225,226,227,228,229. Programa de La figura 6.16 Analisis de datos de encuesta.
Pagina 230. Programa de La figura 6.18 Busqueda Lineal en un arreglo.
Conversiones de tipos de datos, manipulación de caracteres y cadenas
Pagina 322. Programa de la figura 8.2. Uso de funciones isdigit, isalpha isalnum isxdigit
Pagina 323. Programa de la figura 8.3 Uso de funciones islower, isupper tolower, toupper
Pagina 326. Programa de la figura 8.6 Uso de La funcion atof
Pagina 327. Programa de la figura 8.7 Uso de La funcion atoi
Pagina 335. Programa de la figura 8.8 Uso de La funcion atol
Pagina 335. Programa de La figura 8.18 Uso de funciones strcpy, strncpy
Pagina 335. Programa de la figura 8.19 Uso de funciones strcat y strncat
Pagina 337. Programa de la figura 8.21 Uso de funciones strcmp y strncmp
Pagina 349. Programa de la figura 8.38 Uso de funcion strlen
Libro: Programación Estructurada en Lenguaje C Leobardo López Roman
Problemas de Vectores y Matrices
Ejercicio 8.4.1 ventas realizadas por vendedores
Ejercicio 8.4.2 suma de vectores
Ejercicio 8.4.3 Produccion y obreros
Ejercicio 8.8.1 Imprimir una matriz, sumatoria por renglon
Ejercicio 8.8.3 Produccion y obreros
Ejercicio 8.8.6 Producto de matriz por vector columna
Ejercicio 8.8.7 Sumatoria de renglones y columnas en una matriz
Libro: Programacion Estructurada. Un enfoque Algoritmico 2da edición. Leobardo Lopez Roman
Pasar los pseudocódigos a Lenguaje C
Pagina 258,259. Ejercicio 8.8.8 Compania manufacturera
Pagina 260,261,262. Ejercicio 8.8.9 Estados y sus capitales
Pagina 264,265,266. Ejercicio 8.8.11 Cuadrado Majico
Libro C/C++ Curso de Programacion 2da edicion Fco. Javier Ceballos AlfaOmega
- Pagina 220,221,222,223 Programa "Biblioteca" uso de struct, union y enum
Problemas:
Escribir una función que imprima el símbolo correspondiente a cada uno de los 256 símbolos del código ASCII.
Escribe una función que reciba un número entero e imprima el código morse que le
corresponde
Código Morse:
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 |
.---- | ..--- | ...-- | ....- | ..... | -.... | --... | ---.. | ----. | ----- |
Elaborar una función que genere una matriz de 10 x 10, en la cual asigne ceros a todos los elementos, excepto a los de la diagonal principal, donde asignará unos. imprimir la matriz dentro de la función.
Escriba un programa que permita la captura de una cadena y a través de una función se cuente el total de letras que la integran, la cadena pasa como parámetro a la función, la función retorna el total de letras.
Escribe una función que recibe como parámetro una matriz de 3x2, en la función se debe imprimir la matriz de atrás hacia delante.
Programar una función que reciba un número en romano y retorne su equivalente en arábigo.
El máximo común divisor de dos enteros es el entero más grande que divide en forma uniforme cada uno de los dos números. Escriba una función gcd que regrese el máximo común divisor e dos enteros que lleguen como parámetros.
Cheques
Dada una cantidad numérica entera y el nombre de la persona para quien es el cheque. Imprime en pantalla un cheque. Investiga los datos que van en un cheque. La complejidad de este problema está en escribir con letra la cantidad numérica que será entregada. Ejemplo: $10,520.00 (Diez Mil Quinientos veinte pesos m/n)
Empresa y su Ventas mensuales. (uso de struct)
Una empresa tiene almacenados a sus vendedores en un registro. Por cada vendedor se
guarda su :
• Registro Federal de Causantes
• Apellidos
• Nombre
• Zona
• Sueldo Base
• Ventas Mensuales
• Total Anual y
• ImporteComisión
Las ventas mensuales será un vector de 12 elementos que guardará las ventas realizadas
en cada uno de los meses. Total Anual será la suma de las ventas mensuales del
vendedor. La comisión se calculará aplicando un porcentaje variable al Total Anual del
vendedor. Dicho porcentaje variará según las ventas anuales del vendedor, según la
siguiente tabla:
Menos de 1,500,000.00 0.00%
Desde 1,500,000.00 hasta 2,150,000.00 13.75%
Desde 2,150,000.00 hasta 2,900,000.00 16.50%
Desde 2,900,000.00 hasta 3,350,000.00 17.60%
Más de 3,350,000.00 18.85%
Dicha tabla la habrá de cargar el usuario introduciendo exclusivamente el límite
superior y el porcentaje de comisión.
Diseñar las estructuras de datos necesarias y realizar un programa que permita
• Leer los dados del empleado
• La tabla de comisiones
• Calcule el Total Anual y
• Obtenga la Comisión que se lleva el empleado mediante la tabla descrita anteriormente.
Sistema de reservaciones de aerolínea
Página 250 Problema 6.21 Sistema de reservaciones de aerolínea (Libro: Como Programar en C/C++ Deitel/Deitel 2da edición)
Cajero Automatico
Se tiene un cajero con billetes de las siguientes denominaciones: 100 billetes de $500.00, 250 billetes de $100.00, 450 billetes de $200.00 .
Se tiene un archivo de texto donde se encuentran almacenados todos los login y password autorizados de los clientes.
En una función realiza la captura del login y contraseña (la captura solo debe aceptar digitos y letras), verificar si es válida, de ser incorrecta que la función retorne un 0 y si es correcta un 1.
En caso de que el login o la contraseña no correspondan enviar un mensaje de error y terminar el programa, de lo contrario hacer lo siguiente:
Solicitar una cantidad a retirar, validar que sea múltiplo de 100 y no exceda los 4000 pesos.
La cantidad a retirar debe ser menor o igual al saldo del cajero de no ser así imprimir el mensaje "No existen fondos suficientes". En caso de existir el saldo suficiente hacer:
Imprimir el total de billetes que se entregan de cada denominación para cubrir el retiro. Validar que existan billetes de esas denominaciones antes de entregarlos. De no completar el monto del retiro con las denominaciones que quedan, proponer un ajuste en la cantidad a retirar y preguntar al cliente si esta de acuerdo.
Imprimir el saldo del cajero después del retiro.
Imprimir el total de billetes de cada denominación que le quedan al cajero, después de cada retiro.
Ciclar el proceso de retiros mientras el cliente asi lo requiera. Existe una restricción el cliente no puede hacer mas de tres retiros en una sesión, si el cliente intenta mas de tres retiros debe aparecer el mensaje "excedió el limite de retiros"
Juego ¿Adivina la palabra?
Utiliza un menú con las siguientes opciones.
Jugar
Salar
La opción 1. Jugar debe desplegar un segundo menú con los tres temas que contempla el juego. Ejemplo: Aparatos Electronicos y Electrodomesticos, Deportes, Medios de Transporte. Deben selecciona algún tema y el juego comenzara.
Se requiere tres matrices, una para cada tema. Cada matriz almacenara 15 palabras de cada tema.
Selecciona aleatoriamente alguna palabra entre las contenidas en la matriz.
Presentar al usuario en pantalla solo algunas letras de la palabra bajo las siguientes condiciones:
Imprimir siempre la primera y la última palabra, además Si la longitud de la palabra es igual a 5 desplegar aleatoriamente una letra más, diferente a la primera y a la última. Si la longitud de la palabra es mayor a 5 desplegar aleatoriamente dos letras más, diferentes a la primera y a la última.
Tener cuidado de dejar indicado con algún carácter los espacios vacíos.
Ejemplo para las palabras: Rosa R _ _ a, Cinco C _ n _ O
El usuario tiene tres oportunidades para atinar la palabra. Si acierta mandar un mensaje de felicidades de lo contrario indicar cuál es la palabra correcta Y Regresar al MENU.
Escribe la función menú, que despliegue el menú, capture la opción y valide que la opción este entre 1 y 2. La función retorna el valor capturado.
Escribe la función validapalabra, que recibe la palabra que el usuario piensa que es la respuesta. La función regresa un 1 si el usuario le atino o un 0 si no le atino.
- Aprendiendo a Multiplicar.
Presentar el siguiente menú:
Menú
1)Repasar
2)Examen
3)Salir
Dame tu opción:
Función Repasar 4: Debe estar ciclada mientras el niño desee seguir repasando, se debe presentar aleatoriamente una multiplicación de las tablas entre la del 1 y la del 10. El niño tiene tres oportunidades de contestar, si se equivoca las dos primeras veces debe aparecer el mensaje "Te equivocaste, vuelve a intentar" si se equivoca la tercera vez entonces debe aparecer el mensaje "Tienes que estudiar más, el resultado correcto es: " e imprimir el resultado correcto. Cuando el niño acierta se le debe mandar el mensaje "Felicidades".
Función Examen: El niño tiene que responder 5 multiplicaciones, el sistema debe imprimir el mensaje "correcto" o "incorrecto", según sea el caso, se debe imprimir la calificación del examen, cada acierto vale 2 puntos.
El sistema debe contar además con las funciones:
principal() a partir de la cual se manda llamar a la función menú y se tenga el control total del pseudocódigo.
menu() Despliega el menú, valida, captura y retorna la opción deseada.
aleatorio() Genera y retorna un número aleatorio entre 1 y 10.
- Juego Ruleta Rusa
Realiza el programa para el Juego de la ruleta rusa para 8 jugadores. La pistola utilizada para el juego tiene capacidad para 12 balas. Se requiere.
Función para llenar un vector tipo char con la inicial de cada jugador.
Función para cargar la pistola solamente con 7 balas en posiciones aleatorias con respecto a su capacidad.
Función principal que controle el juego. El juego comienza seleccionando aleatoriamente a un jugador que será el primero en probar suerte, la dinámica consiste en que, cada jugador debe apuntarse a la cabeza y apretar del gatillo. Si el jugador muere imprime su inicial y debe ser eliminado de la lista, independientemente de que sea eliminado o no el turno de probar suerte pasa al siguiente jugador a la derecha. El juego termina imprimiendo la inicial del único jugador que se salva.
- Juego "La gitana"
La gitana contesta todo lo que le preguntas: Ejemplo:
Por favor gitana contesta mi pregunta: Que carrera estudio?
La gitana contesta: Ing en Sistemas Computacionales
Quieres hacer otra consulta s/n?
El truco de este juego es el siguiente: mientras en Pantalla se va imprimiendo el texto "Por favor gitana contesta mi pregunta" realmente tu estas capturando lo que será la respuesta pero como vas a utilizar el getch() no se ve lo que tecleas en su lugar vas a ir desplegando ese texto. Debes elegir un carácter de control por ejemplo el punto (.) para que indiques en que momento terminas de teclear la respuesta y lo que resta del letrero "Por favor gitana contesta mi pregunta" se despliegue automáticamente y enseguida teclea la pregunta. Necesitas otro carácter de control como el signo ? para indicar que se ha terminado de teclear la pregunta y automáticamente aparezca la respuesta que tu previamente ya habías capturado J
- El piano
Convierte tu teclado en un piano, selecciona 8 teclas que represente el do re mi fa sol la si.
Debes presentar un menú con las opciones
- Practicar
- Grabar Melodía
- Tocar Melodía
- Salir
Grabar melodía debe grabar a un vector las notas de alguna melodía.
Tocar melodía debe obtener del vector las notas y tocarlas.
Ejercicios de Logica.
Instrucciones: En los siguientes ejercicios elija la alternativa que mejor se relaciona con la información dada.
Ejemplo:
En la fila del banco, el Sr. Hernández está formado después del Sr. González, y el Sr. González está después del Sr. Ruiz. ¿En qué orden están formados?
(A) González, Ruiz, Hernández
(B) Ruiz, Hernández, González
(C) Hernández, González, Ruiz
(D) Ruiz, González, Hernández
(E) González, Hernández, Ruiz
La alternativa correcta es la respuesta (D). La respuesta que debe marcar es:
Si A está después que B y C, y D está antes que C pero después que B, entonces, el orden de las letras es
- D B C A
- B C D A
- B C A D
- B D A C
- B D C A
Israel está menos poblado que Japón. Filipinas tiene mayor población que Japón. La población de Inglaterra es menor que Israel, sin embargo supera a Cuba en esta variable. Entonces:
- Cuba está más poblada que Inglaterra.
- Japón e Inglaterra tienen, cada una, más gente que Israel.
- los habitantes en Israel son más escasos que en Cuba.
- Filipinas no supera a Japón en cuanto al número de habitantes se refiere.
- el número de habitantes en Japón es superior al de Cuba.
Si consideramos los siguientes datos:
A = Z + D + F
B = A + R
D = J
F = K + E + B
R = L + O
A + B = _ _ _ _ _
- Z + J + K + E + B + L + O
- L + O + Z + D + K + E + A + R
- Z + J + K + E + B + L + O
- Z + J + K + E + B + Z + D + F + R
- K + E + B + J + Z + L + O + J + F
Si Mova está más lejos de Mote que Taci. Dape está más cerca que Lirú y esta última está menos lejos que Taci, entonces
- Mova y Lirú están más cerca de Mote que Taci.
- Lirú es la más cercana a Mote.
- Mova es la más lejana a Mote.
- Taci y Dape están más alejadas de Mote que Lirú.
Dape es la segunda más cercana a Mote.
Ocho caballos corren por la pradera hacia la granja. Lino llegó tres lugares después que Rubí pero uno antes que Sam. Mac le ganó a Chato mas no así a Rubí. Lulo entró 3 lugares antes que Chato y Toto entró 2 lugares después que Curcho, pero uno después que Sam. ¿Cuál de los ocho caballos entró en 4o. lugar?
- Mac.
- Sam.
- Lino.
- Chato.
- Curcho.
Julio nació antes que Gloria y que Pablo; Miguel es menor que Silvia, pues nació después que Pablo, pero antes que Gloria; y Julio es menor que Silvia. ¿Quién de los cinco jóvenes ocupa el tercer lugar en el orden de nacimiento?
- Julio.
- Gloria.
- Pablo.
- Miguel.
- Silvia.
Manolo y Manuel salieron a piscar moras, durante la primera mitad de la jornada Manolo había recolectado 2/3 veces más moras que Manuel. Al final de la jornada, Manolo tenía 59 kilos de moras y Manuel tenía 14 kilos menos. ¿Cuál de las siguientes aseveraciones es FALSA?
- En la segunda mitad de la jornada Manolo recolectó 24 kilos de moras.
- Manolo y Manuel recolectaron la misma cantidad de moras en la segunda mitad de la jornada.
- Manuel tenía 21 kilos de moras al finalizar la primera mitad del día.
- Manolo tenía 14 kilos más de moras que Manuel al iniciar la segunda parte del día.
- Manolo tenía 39 kilos de moras a la mitad de la jornada.
En una tienda de artesanías se venden varios objetos diferentes, si María quiere comprar una muñeca de juguete; ¿a qué zona de la tienda debe dirigirse?
- 2
- 3
- 4
- 5
- 6
Carlos camina 5 cuadras al este, da vuelta a la derecha y camina otro tramo igual, después sigue hacia su izquierda y camina otro poco más; de pronto da una vuelta entera (360°) ¿En qué dirección va?
- Norte.
- Sur.
- Este.
- Oeste.
- Poniente.
Lolo es un perro entrenado por Sebastián, Xito es un gato callejero. Samuel protegue a los gatos y perros sin hogar. ¿Cuál de las siguientes alternativas es VERDADERA?
- Samuel entrenó a Lolo.
- Sebastián entrenó a Xito.
- Xito y Lolo viven con Samuel.
- Samuel no protege a Lolo.
- Xito vive con Sebastián.
Hay 3 bolsas de papel; cada una de ellas está pintada de un color: rosa, rojo y blanco. Se sabe que dentro de ellas hay maíz, sorgo y trigo, pero se ignora en cuál bolsa está depositado cada uno de los granos. Si la bolsa de maíz no es rosa, el sorgo está en la bolsa blanca, entonces el(la)
- trigo está en la bolsa roja.
- maíz está en la bolsa roja.
- bolsa roja tiene sorgo.
- trigo está en la bolsa blanca.
- bolsa blanca tiene maíz.
Un pintor empieza a pintar ventanas a las 8:00 a.m. logrando acabar 4 ventanas por hora. Una hora más tarde, a las 9:00 a.m, su compañero inicia su tarea tambien de pintar ventanas, pero él alcanza a pintar 5 ventanas por hora. ¿Cuántas horas llevará pintando el primero cuando su compañero logre igualar el número de ventanas ya pintadas?
- 3
- 4
- 5
- 6
- 7
En un restaurante en donde fueron a comer 5 muchachos, Gilberto pedía lo mismo que Joel. Rogelio ordenaría pastel, sólo si Joel comía enchiladas. Joaquín quería algo diferente de lo que comieran los otros 4 jóvenes y Claudio lo mismo que Rogelio. Aunque se ordenaron finalmente 2 órdenes de enchiladas, 2 de hamburguesas y 1 de pastel, Rogelio no comió pastel. ¿Quiénes comieron hamburguesas?
- Joel y Gilberto.
- Joaquín y Rogelio.
- Joel y Claudio.
- Gilberto y Joaquín.
- Claudio y Rogelio.
Raúl viaja con frecuencia a las ciudades A , B y C. A está a 4 horas de la casa de Raúl. Para llegar a B tarda el doble de tiempo que le lleva viajar de ida y vuelta a C. C está solamente a una hora menos que A. ¿Cuántas horas tarda el viaje de ida y vuelta a B?
- 6
- 9
- 12
- 18
- 24
La calle Soledad es paralela a la calle Luciérnaga. La avenida Estrella es perpendicular a la calle Pastora. La calle Pastora es paralela a la calle Luciérnaga. La calle Soledad es perpendicular a la calle Gaviota.
Si la avenida Estrella corre de norte a sur, ¿cuál de las siguientes aseveraciones es FALSA?
- La calle Gaviota es perpendicular a la calle Pastora.
- La calle Soledad es paralela a la calle Pastora.
- La calle Gaviota corre de norte a sur.
- La calle Luciérnaga y la calle Soledad corren de este a oeste.
La avenida Estrella es paralela a la calle Soledad.
Un maestro de piano debe seleccionar a 4 de sus 6 alumnos para participar en un programa de televisión. Para decidir quiénes van, toma en cuenta que puede ir Alfredo o Tomás, pero no pueden ir los dos porque tienen el mismo repertorio, pero es preciso que uno de los dos vaya. Como Rosaura, Tomás y Carlota son hermanos, sólo llevará a dos de ellos. Si va Noemí, a fuerza deberá ir Arturo pues no quieren separarse. Es necesario llevar a dos mujeres; o va Alfredo o va Rosaura ya que como están peleados no deben ir los dos pero uno de ellos debería ejecutar la pieza principal. ¿Quiénes son los dos jóvenes que NO irán al programa de televisión?
- Arturo y Nohemí
- Carlota y Tomás
- Tomás y Alfredo
- Rosaura y Tomás
- Alfredo y Carlota