Programación Estructurada

"My basic idea is that programming is the most powerful medium of developing
the sophisticated and rigorous thinking needed for mathematics, for
grammar, for physics, for statistics, and all the <<hard>> subjects. In short,
I belive more than ever that programming should be a key part of the
intellectual development of people growing up."
from the Communicatios of the ACM
Seymour Papert

Material para el curso:

Tareas:

  1. Leer los principios del programador

  2. Familiarizarse con el IDE (Dev-C++)

  3. Algoritmo para determinar el mayor de N números con N > 1

  4. Historia del lenguaje C

  5. Algoritmo para determinar si un numero n >= 0 es par o impar

  6. Diagramas de flujo de los algoritmos.

  7. Algoritmo de Euclides

  8. Escriba un programa que lea un número de 4 dígitos, separe el número en sus dígitos individuales e imprima los dígitos separados unos de otros mediante el tabulador. Si el usuario escribe 1492 el programa debería imprimir 1 @ 4 @ 9 @ 2.

  9. Escriba un programa que calcule los cuadrados y los cubos de los números del 1 al 10 y que utilice tabuladores para imprimir la siguiente tabla de valores:

    Numero

    Cuadrado

    Cubo

    0

    0

    0

    1

    1

    1

    2

    4

    8

    3

    9

    27

    4

    16

    64

    5

    25

    125

    6

    36

    216

    7

    49

    343

    8

    64

    512

    9

    81

    729

    10

    100

    1000

  10. Escriba un programa que calcule la suma de los primeros 10 números enteros.

  11. Escriba un programa que dados 2 números enteros positivos pequeños (menores a 50 por ejemplo), calcule el resultado de elevar el primero de ellos al segundo. Ejemplo:

    Dame dos números: 2 3

      Resultado: 8

      Donde 8 es el resultado de 2 elevado a la 3

  12. Escribir, utilizando la estructura de repetición FOR todos los programas anteriores que hayan utilizando la estructura de repetición WHILE en el esquema de repetición controlada por contador.

  13. En razón del alto precio de la gasolina, los automovilistas están preocupados con el kilometraje que obtienen de sus automóviles. Suponiendo que un conductor ha llevado el registro del consumo de varios tanques de gasolina, desarrolle un programa en C que lea los kilómetros manejados y los litros de gasolina utilizados en cada tanque para un automóvil determinado. El programa debe calcular y desplegar los kilómetros por litro obtenidos para dicho automóvil. Después de procesar toda la información de entrada, el programa deberá calcular también el promedio en Kms/lt de todos los tanques de todos los automóviles. Utilice repetición controlada por centinela (-1 para terminar).

  14. Una gran empresa química paga a su personal de ventas en base a comisiones. El personal de ventas recibe $200.00 por semana más 9% de las ventas brutas de la semana. Por ejemplo, una persona de ventas que vende $5000.00 de productos químicos en una semana, recibe $200.00 más 9% de $5000.00, o sea un total de $650.00. Desarrolle un programa en C que introduzca las ventas brutas de cada vendedor correspondiente a la última semana y calcule y despliegue las ganancias de dicho vendedor. Procese las cifras vendedor por vendedor utilizando repetición controlada por centinela.

  15. Especificar y diseñar un algoritmo para determinar las raíces reales de una ecuación de segundo grado de la forma ax ^2 + bx + c = 0.

  16. Diseñar un algoritmo en el que a partir de una fecha introducida por teclado con el formato DIA, MES AÑO se obtenga la fecha del día siguiente. Se supone que la fecha introducida es correcta. Escriba también el programa correspondiente.

  17. Realizar un algoritmo y un programa que averigüe si dados dos números enteros introducidos por teclado, uno es divisor del otro.

  18. Un palíndromo es un número o una fase de texto, que se lee igual hacia delante y hacia atrás. Por ejemplo, cada uno de los siguientes enteros de cinco dígitos son palíndromos: 12321,55555, 45554 y 11611. Escriba un programa que lea un entero de cinco dígitos y que determine si es o no un palíndromo. (Sugerencia: utilice los operadores de división y de módulo para separar los números en sus dígitos individuales).

  19. Introduzca un entero (de cuatro dígitos) que contenga sólo 0s y 1s (es decir, un entero "binario") e imprima su equivalente decimal. (Sugerencia: utilice los operadores de módulo y de división para detectar los dígitos del número "binario" uno por uno, de derecha a izquierda. Al igual que en el sistema numérico decimal, donde el dígito más a la derecha tiene un valor posicional de 1, y el siguiente dígito a la izquierda tiene un valor posicional de 10, y a continuación de 100, y a continuación de 1000, etc., en un sistema numérico binario, el dígito más a la derecha tiene un valor posicional de 1, el siguiente dígito a la derecha tiene un valor posicional de 2, y a continuación de 4 , y a continuación de 8, etc. Por lo tanto, el número decimal 234 puede ser interpretado como 4 * 1 + 3 * 10 + 2 * 100. El equivalente decimal del número 1101 binario es 1 * 1 + 0 * 2 + 1 * 4 + 1 * 8 o bien, 1 + 0 + 4 + 8, es decir 13).

  20. De forma continua escuchamos decir que las computadoras son muy rápidas. ¿Cómo puede usted determinar la verdadera velocidad de operación de su máquina? Escriba un programa con un ciclo WHILE que cuente de 1 hasta 3,000,000 de uno en uno. Cada vez que el contador llegue a un múltiplo de 1,000,000, imprima este número en la pantalla. Utilice su reloj para medir cuánto tiempo tarda cada repetición de 1,000,000 del ciclo.

  21. Escriba un programa que imprima 100 asteriscos, uno por uno. Después de cada décimo asterisco, su programa deberá imprimir un carácter de nueva línea. (Sugerencia: cuente de 1 a 100. Utilice un operador de módulo para reconocer cada vez que el contador llegue a un múltiplo de 10.)

  22. Escriba un programa que lea un entero, y determine e imprima cuántos dígitos de ese entero son 7s.

  23. Una empresa desea trasmitir datos mediante el teléfono, pero están preocupados de que sus teléfonos pudieran estar intervenidos. Todos sus datos se transmiten como enteros de cuatro dígitos. Le han solicitado a usted que escriba un programa que cifre sus datos, de tal forma de que puedan ser transmitidos con mayor seguridad. Su programa debe leer un entero de cuatro dígitos y cifrarlo como sigue: reemplazar cada dígito por (la suma del dígito más 7) módulo 10. A continuación, intercambiar el primer dígito con el tercero, y el segundo con el cuarto. A continuación imprimir el entero cifrado. Escriba un programa por separado, que introduzca un entero de cuatro dígitos cifrado, y que lo descifre para formar el número original.


Evaluación:

Criterio

Porcentaje

3 Exámenes parciales

50 %

Examen / Proyecto final

50 %

Trabajos, tareas, investigaciones por parcial

20 %

Consulte la rúbrica de evaluación para conocer los criterios a considerar en cada examen.

Formato de entrega para los programas:

  1. Enviar un email a la dirección: rruiz@mixteco.utm.mx

  2. En asunto (subject) escribir programa xxxxxxxxx, donde xxxxxxxxx se refiere al nombre del programa (proyecto) que envían, ejemplo "programa Código Morse".

  3. En el cuerpo del email escribir: Equipo #x Grupo xxxxx, en donde x se refiere al número del equipo y xxxxx al grupo al cual pertenecen.

  4. Debajo de los datos anteriores CONFIRMAR el nombre de los integrantes del equipo siempre y cuando TODOS hayan trabajado, en caso contrario incluir sólo el nombre de la persona (s) que trabajó (trabajaron).

  5. El código fuente del programa que envíen se agregará como archivo adjunto. El nombre del programa deberá estar en LETRAS MINÚSCULAS y con extensión ".c". Ejemplo: "rombo.c".

  6. Asegurarse de incluir sólo funciones y bibliotecas del ANSI C, y apegarse a estas especificaciones, ya que de lo contrario se considerará tarea no entregada o sin funcionar.

  7. El programa deberá compilarse y ejecutarse sin cambio alguno, de no ser así, se aplica lo descrito en el punto 6.

  8. Si existen programas iguales, similares, genéricos o de “primer nivel”, automáticamente se anularán los programas de los equipos involucrados.

  9. Los programas estarán sujetos a revisión y a cuestionamientos hacia cualquiera de los integrantes del equipo.

Consideraciones adicionales:

Ejercicios para el extraordinario:



Bibliografía:

 [Cursos] [Página Principal]