88Elaborar la codificacin en Lenguaje C de los siguientes programas (realizando el
clculo e impresin
respectiva):
1. Leer una fecha (da, mes, ao) y diga si es correcta o no.
% leer una fecha
Dia=input('ingrese dia:');
mes=input('introduce un numero(1-12):');
anho=input('ingrese ao:');
switch mes
case{1,3,5,7,8,10,12}
if(Dia<=31);
disp={Dia,mes,anho}
end
case{4,6,9,11}
if(Dia<=30);
disp={Dia,mes,anho}
end
case{2}
if(mod(anho,4)==0&~(mod(anho,100)==0))||mod(anho,400)==0
Dias<=29;
disp={Dia,mes,anho}
else
Dia<=28
disp={Dia,mes,anho}
end
otherwise
disp('este mes no existe')
end
2. Leer un ao e imprimir si es bisiesto o no.
%leer datos
%calcular ao bisiesto
anho=input('ingrese ao')
m_4=mod(anho,4)
m_400=mod(anho,400)
m_100=mod(anho,100)
if((mod(anho,4)==0 & ~(mod(anho,100)==0))) || (mod(anho,400)==0)
disp('el ao es bisiesto')
else
disp('el ao no es bisiesto')
end
3. Un millonario tena tres hijos: Juan, Luis y Rosa. Al morir dej el
siguiente legado: A Luis le dej 4/3 de lo que le dej a Juan. A Juan le
dej 1/3 de su fortuna. A Rosa le dej la mitad de lo que le dej a Luis.
Adems el licenciado les cobrar por sus servicios un porcentaje de lo
que reciban cada uno de herencia: si el monto es menor a la tercera
parte de la herencia cobrar 3%, en caso contrario 5%. Imprimir cunto
recibirn cada heredero y el abogado.
%ingresar datos
f_fort=input('ingrese fortuna')
f_juan=mod(f_fort,2/3)
f_luis=mod(f_juan,4/3)
f_rosa=mod(f_luis,1/2)
if(f_juan==0);
f_juan=(f_fort*2/3)
disp('f_juan')
end
if(f_luis==0);
f_luis=(4/3*f_juan)
disp('f_luis')
end
if(f_rosa==0);
f_rosa=(1/2*f_luis)
disp('f_rosa')
end
if((f_juan+f_luis+f_rosa)<=1/3*f_fort)
f_lic=f_juan*.03+f_luis*.03+f_rosa*.03
disp('f_lic')
else
if((f_juan+f_luis+f_rosa)>=1/3*f_fort)
f_lic=f_juan*.05+f_luis*.05+f_rosa*.05
disp('f_lic')
end
end
4. El domingo de Pascua es el primer domingo despus de la primera luna
llena posterior al equinoccio de primavera y se determina mediante el
siguiente clculo:
a 5 ao % 19 b 5 ao % 4 c 5 ao % 7 d 5 (19 * a 1 24) % 30 e 5 (2 *b 1 4
* c 1 6 * d 1 5) % 7 n 5 (22 1 d 1 e) Donde n indica el nmero del da del
mes de marzo (si n es igual o menor que 31), en caso contrario el mes de
abril se obtiene como (d1e29). Imprimir la fecha del domingo de Pascua
a partir de un ao dado.
5. Leer un nmero entero (entre 0 y 32 700) e imprimir el nmero de cifras
de dicho nmero.
6. Leer la hora de un da (0 a 23 horas y minutos, por ejemplo para las 18:30
deber leer 18 y 30), e imprimir la misma hora pero en formato de 12 horas
mostrando las horas, los minutos y el indicador de meridiano.
No es posible especificar PM cuando la hora es 0. Cuando se especifica AM
tambin representa las horas antes del medioda. Si se especifica PM
representa las horas despus del medioda. Si se especifica AM, representa la
medianoche. Si se especifica PM, representa el medioda. 12:01 es 1 minuto
despus del medioda, como 12:01 PM, mientras que 12:01 AM es 1 minuto
despus de medianoche. Especificar 12:01 AM es lo mismo que 00:01 o 00:01
AM. Para las 18:30 deber imprimir 6:30 PM.
7. Leer un nmero entero e imprimir si es: a) Cero, positivo o negativo; b) Par o impar
(cuando sea positivo); c) Mltiplo de 7 o no mltiplo de 7 (cuando sea impar). Para el
nmero 35, imprimir: Es un nmero positivo, es impar y es mltiplo de 7.
8. Leer 5 nmeros e imprimir el menor y el mayor de ellos.
%leer 4 numero mayor y menor
A=input('ingrese el numero A');
B=input('ingrese el numero B');
C=input('ingrese el numero C');
D=input('ingrese el numero D');
u==0
if((A<=B)||(B<=C)||(C<=D))
u=(A<=B)||(B<=C)||(C<=D)
disp('menor')
if((A>=B)||(B>=C)||(C>=D))
u=(A>=B)||(B>=C)||(C>=D)
disp('mayor')
end
end
9. Conversin de temperatura expresada en grados Celsius a Fahrenheit : f 5 (9/5)c132 y
viceversa
(Fahrenheit a Celsius). Permita elegir entre estas dos opciones.
10. Dados dos de los ngulos de un tringulo, calcular el tercer ngulo y
determinar si el tringulo es rectngulo (un ngulo igual a 90 grados),
acutngulo (sus tres ngulos menores a 90 grados) u obtusngulo (un ngulo
mayor a 90 grados).
%Dados dos de los ngulos de un tringulo
%calcular el tercer ngulo y determinar si el tringulo es rectngulo (un
ngulo igual a 90 grados),
%acutngulo (sus tres ngulos menores a 90 grados) u obtusngulo (un ngulo
mayor a 90 grados).
a_angulo=input('ingrse dato a:')
b_angulo=input('ingrse dato b:')
c_angulo=180-(a_angulo+b_angulo)
triangulo=(a_angulo+b_angulo+c_angulo)<=180
if(a_angulo==90)|(b_angulo==90)|(c_angulo==90)
disp('triangulo es rectangulo')
else
end
if((a_angulo<=90)&(b_angulo<=90)&(c_angulo<=90))
disp('triangulo es acutangulo')
else
if((a_angulo>=90)|(b_angulo>=90)|(c_angulo>=90))
disp('triangulo es obtusangulo')
end
end
11. Leer las horas trabajadas y la paga por hora para calcular el sueldo
semanal de un empleado. Cuando las horas de trabajo exceden de 40 se
consideran horas extra; las primeras 8 se pagan al doble; si las horas extra
exceden de 8 se pagan las primeras 8 al doble de lo que se pagan las horas
normales y el resto al triple.
%Leer las horas trabajadas y la paga por hora para calcular el sueldo
semanal de un empleado.
%Cuando las horas de trabajo exceden de 40 se consideran horas extra;
%las primeras 8 se pagan al doble;
%si las horas extra exceden de 8 se pagan las primeras 8 al doble de lo que
se pagan las horas normales y el resto al triple.
h_trabajadas=input('ingresar horas trabajadas:')
sueldo=input('ingresar sueldo:')
h_normal=40
h_extra=h_trabajadas-h_normal
if(h_trabajadas>=40)&(h_extra==8)
pago=sueldo+sueldo*2
disp(pago)
else
if(h_trabajadas>=40)&(h_extra>=8)
pago=sueldo+sueldo*3
disp(pago)
end
end
12. En un estacionamiento se cobra de la siguiente manera: los primeros 10
minutos son gratis, los siguientes 15 minutos subsecuentes cuestan $3, la
primera hora $10 y cada hora subsecuente $5. A partir de la primera hora se
cobran horas completas. Si es domingo se hace un descuento de 10% sobre el
monto total. Leer los minutos y horas e imprimir cunto se pagar.
%En un estacionamiento se cobra de la siguiente manera:
%los primeros 10 minutos son gratis, los siguientes 15 minutos subsecuentes
cuestan $3,
%la primera hora $10 y cada hora subsecuente $5. A partir de la primera
hora se cobran horas completas.
%Si es domingo se hace un descuento de 10% sobre el monto total. Leer los
minutos y horas e imprimir cunto se pagar.
h_estac=input('ingresar horas estacionamiento:')
h_dom=input('ingresar horas estac domingo:')
h_15=3
h_60=10
if(h_estac<=25)
pago1=3
disp(pago1)
else
if(h_estac<=70)
pago2=10
disp(pago2)
else
if(h_estac>70)&(h_60)
pago3=10+5
disp(pago3)
else
if(h_dom)
pago_dom=(pago1-(pago1*0.1))|(pago2-(pago2*.01))|(pago3(pago3*.01))
disp(pago4)
end
end
end
end
13. Ordenar dos nmeros con un solo if.
14. Leer 4 nmeros. Imprimir el mayor, el menor y la suma de ambos.
15. Leer 3 nmeros y ordenarlos de manera ascendente.
16. Existen cuatro cuadrantes dependiendo del signo de x y y. Lee las coordenadas x y y
de un punto e imprime si est en los ejes de coordenadas, en el origen o bien en qu
cuadrante se encuentra localizado.
17. Leer el nmero de das transcurridos del ao e imprimir a qu mes
pertenece. Por ejemplo si se captura 32 se imprimir el mes es febrero.
% Leer el nmero de das transcurridos del ao e imprimir a qu mes
pertenece.
%Por ejemplo si se captura 32 se imprimir el mes es febrero.
Dia=input('ingrese dias:');
if(Dia<=31);
disp('enero')
else
if(Dia>=32)|(Dia<=59);
disp('febrero')
else
if(Dia>=60)|(Dia<=90);
disp('marzo')
else
if(Dia>=91)|(Dia<=120);
disp('abril')
else
if(Dia>=120)|(Dia<=151);
disp('mayo')
else
if(Dia>=151)|(Dia<=181);
disp('junio')
else
if(Dia>=181)|(Dia<=212);
disp('julio')
else
if(Dia>=212)|(Dia<=243);
disp('agosto')
end
end
end
end
end
end
end
end
18. Leer la fecha de nacimiento (da, mes y ao) de una persona y la fecha actual (da,
mes y ao), para posteriormente imprimir la edad al da de hoy. Por ejemplo usted tiene
19 aos 7 meses y 14 das.
19. Resolver el ejercicio 8 resuelto con una versin diferente, por ejemplo los valores de
la condicin pueden ir entre apstrofos.
20. Leer el nombre de un determinado mes e imprimir cuntos das tiene dicho mes.
Utilizar la funcin strcmp (vea el captulo de programacin modular).
21. Calcular alguna de las cuatro operaciones bsicas, con el nombre respectivo. Por
ejemplo suma. Utilizar la funcin strcmp (vea el captulo de programacin modular).