Académique Documents
Professionnel Documents
Culture Documents
Prof. Andrs Arcia Departamento de Computacin Escuela de Ingeniera de Sistemas Facultad de Ingeniera Universidad de Los Andes
24/04/05
Programacin Digital I
Cdigo en C
if (condicin1)
{S11 S1n}
Si no Si (condicin2) entonces else if (condicin2) S21 S2m {S21 S2m} Si no Si (condicink) else if ((condicink) Sk1 Skj Sino Sp1 Spr Fin_si {Sk1 Skj} else {Sp1 Spr}
24/04/05
Programacin Digital I
Ejemplo
if (fecha == 1492) printf(Descubrimiento de America; else if (fecha == 1811) printf(Declaracion de Independencia; else if (fecha == 1998) printf(Gano Chavez); else if (fecha == 2001) printf(Atentado USA); else if (fecha == 1969) printf(Llegada del hombre a la luna); else printf(Error: Fecha invalida);
24/04/05 Programacin Digital I 3
24/04/05
Programacin Digital I
24/04/05
Programacin Digital I
Ejemplo
Sea 0 < x < 1. Se tiene que:
0 < x < 0.25 se incrementa contador1 en 1
if ((x>=0.0) && (x<=1.0)) { if (x<=0.25) contador1++; else if (x<=0.5) contador2++; contador3++; else contador4++; else printf(Error.); }
0.25 < x < 0.5 se incrementa contador2 en 1 else if (x<=0.75) 0.5 < x < 0.75 se incrementa contador3 en 1 0.75 < x < 1 se incrementa contador4 en 1
24/04/05
Programacin Digital I
Ejemplo
Disear un algoritmo que lea tres nmeros A, B y C y escribirlos ordenados de mayor a menor. Suponer que los tres nmeros son diferentes. Anlisis E-P-S Entradas: A, B, C Z Proceso: Determinar cual es el nmero mayor, el del medio y el
menor.
24/04/05
Programacin Digital I
24/04/05
Programacin Digital I
condicin
1
acciones1
2
acciones2
3
acciones3
n
accionen
24/04/05
Programacin Digital I
10
Cdigo en C
switch (expresin) { case <valor1>: sentencias; break; case <valor2>: sentencias; break; default: //opcional <sentencias> }
24/04/05
Programacin Digital I
11
24/04/05
Programacin Digital I
12
24/04/05
Programacin Digital I
13
Cdigo en C
switch (opcion) { case 1: printf( Seleccion=opcin 1\n); break; case 2: printf( Seleccion=opcin 2\n); break; case 3: printf( Seleccion=opcin 3\n); break; default: printf(Opcin incorrecta); }
24/04/05
Programacin Digital I
14
24/04/05
Programacin Digital I
15
24/04/05
Programacin Digital I
17
18
24/04/05
Programacin Digital I
19
24/04/05
22
24/04/05
Programacin Digital I
24
Ejercicios
Dada una fecha con el formato dd, mm, aaaa, escriba un programa para validar si el da es vlido con respecto al mes. Escriba una sentencia decisin mltiple que a partir de una nota expresada en forma numrica imprima su correspondiente literal, segn la siguiente correspondencia:0 a 4 SUSPENSO,5 y 6 APROBADO,7 y 8 NOTABLE, 9 y 10 SOBRESALIENTE. Para cualquier otro valor de la nota numrica se imprimir el mensaje VALOR INCORRECTO. Escriba un programa tal que, dado el valor de un da de la semana entre 1 y 7, escriba si es un da es laboral o es fin de semana.
24/04/05
Programacin Digital I
25
Ejercicios
En una fbrica se desea hacer el clculo de un bono especial para los trabajadores, basndose en el nmero de horas extras trabajadas, y el nmero de horas que el obrero se ha ausentado de su trabajo. Para cada trabajador se lee el nmero de horas trabajadas y el nmero de horas ausentes. La fbrica ha decidido que se use la siguiente frmula para determinar el monto del bono: Tasa de Clculo = Horas extras - (5/6) * Horas Ausentes Despus de hallar la tasa de clculo, se sigue la tabla siguiente:
24/04/05 Programacin Digital I 26
Ejercicios
Tasa de Clculo Bono
> 40 horas 50.000 Bs. > 30 pero < 40 40.000 Bs. > 20 pero < 30 30.000 Bs. > 10 pero < 20 20.000 Bs. < 10 10.000 Bs.
Escriba un programa que calcule el monto del bono que el empleado va a recibir.
24/04/05 Programacin Digital I 27
Ejercicios
Escriba un programa que lea dos fechas dadas por un da, mes y ao e indique cul de ellas es anterior en el tiempo a la otra. Escriba un programa que lea dos fechas de un mismo ao dadas por un da y un mes y calcule el nmero de das transcurridos entre ambas. Tenga en cuenta que el ao puede ser bisiesto.
24/04/05
Programacin Digital I
28