Practica 10 Laboratorio de Computación para Ingenieros FI
1. OBJETIVOS
a) El alumno será capaz de realizar programas que involucren la toma de
decisiones y éstas llevarán a realizar diferentes procesos con el fin de alcanzar la
solución de una tarea.
b) El alumno conocerá la utilidad de la sentencia if como una alternativa doble que
controla la ejecución de dos conjuntos de instrucciones.
c) El alumno controlará la ejecución de varios conjuntos de instrucciones mediante
el valor final de una expresión.
Al final de esta práctica el alumno podrá:
1. Realizar exitosamente programas que involucren la toma de decisiones.
1
2. LISTA DE EJERCICIOS
1. Modificar el ejemplo 2 de la práctica, para que se visualice en pantalla que
no se puede realizar esta operación porque el divisor es igual a cero.
2. Escribir un programa que lea la calificación de un examen por teclado y
devuelva la calificación no numérica correspondiente. La calificación podrá
ser: No aprobado (0-4.99), Aprobado (5-6.99), Notable (7-8.99),
Sobresaliente (9-9.99) o Excelente (10).Realizar este ejercicio utilizando la
sentencia de control if-else.
3. Escribir un programa que lea cuatro números cualesquiera y determine cuál
es el mayor. También deberá considerar el caso en el que los números
sean iguales.
4. Escribir un programa que lea cuatro números enteros y determine cuál es el
menor. También debe considerar el caso en el que los números sean
iguales.
5. Escribir un programa que permita introducir por teclado tres números
enteros y responda si los números son iguales.
6. Una empresa desea calcular la productividad de un mes dado, esta se
calcula como sigue:
Abril, mayo, junio 17
Julio, agosto 19
Septiembre, octubre, noviembre 20
Diciembre 21
Se pide elaborar un programa que permita solicitar al usuario un mes
cualquiera y se calcule la productividad si se sabe que esta es igual al
número de artículos producidos en el mes multiplicándolo por el factor del
mes que corresponda al mes proporcionado, se conoce la cantidad de
artículos producidos y el mes.
2
3. 7. Realizar un programa en el que el usuario introduce un número entero y el
programa responde si el número es par o impar.
8. Realizar un programa que pida cinco números y muestre por pantalla el
siguiente menú:
1. Suma
2. Resta
3. Multiplicación
4. División
El usuario debe elegir una opción y el programa mostrar el resultado de la
operación realizada. Contemplar los casos en los que el usuario elige una
opción distinta de las 4 posibles (por ejemplo: “Opción no válida”).
9. Realizar un programa que sirva para calcular el área de un triángulo
A=b*h/2, área de un rectángulo A=b*h, o el área de un circulo A=pi*r^2*
10. En un supermercado se va a poner en marcha la “Promoción Bolitas”, la
cual consiste en que al llegar a la caja el cliente y proceder a efectuar el
pago correspondiente a sus compras, se le invita a sacar una bolita al azar
de una caja virtual y dependiendo del color de la bolita obtendrá un
descuento aplicable al total de su cuenta.
Realizar el programa con las siguientes características:
• El cliente debe sacar una bolita de la caja (totalmente al azar).
• El sistema debe mostrarle al cliente la bolita e indicarle el porcentaje del
descuento obtenido.
• El sistema le solicita a la cajera teclear el importe de la cuenta total del
cliente.
• El sistema debe aplicar el descuento correspondiente a la cuenta del
cliente e indicar cuál es la cantidad a pagar.
3
4. 11. Escribir un programa que pida un número entero y determine si es múltiplo
de 2 y de 5.
12. Escribir un programa que pida un número entero y determine si es múltiplo
de 2 y de 5. Diseñar un programa que permita realizar diferentes tipos de
conversiones de monedas. El usuario debe seleccionar un tipo de
conversión desde el menú principal. Por ejemplo:
1. Dólares a pesos
2. Pesos a dólares
3. Pesos a euros
4. Euros a pesos
5. Dólares a euros
6. Euros a dólares
4
5. EJERCICIOS QUE NO SALIERON
Todos los ejercicios fueron realizados satisfactoriamente.
5
6. DESARROLLO DE ERJERCICIOS
1. Modificar el ejemplo 2 de la práctica, para que se visualice en pantalla que
no se puede realizar esta operación porque el divisor es igual a cero.
/*Programa que realiza una operación sobre dos números, y restringe división por
cero*/
#include<stdio.h>
int main(void){
char c;
inta,b;
printf("nntDame un car%ccternnt",160);
scanf("%c",&c);
printf("nntIngresa
dos
n%cmeros
enteros
separados
por
comasnnt",163);
scanf("%d, %d",&a,&b);
switch (c){
case '+':
printf("nntResultado de la suma %d",a+b);
break;
case '-':
printf("nntResultado de la resta %d",a-b);
break;
case '*':
printf("nntResultado
de
la
multiplicaci%cn
%d",162,a*b);
break;
case '/':
if(b==0)
printf("nntNo se puede realizar la operaci%cn,
el divisor es cero.",162);
else
printf("nntResultado
de
la
divisi%cn
%f",162,a/b);
break;
default:
printf("nnterror, operación incorrecta");}
printf("nnt");
system("pause");}
6
8. 2. Escribir un programa que lea la calificación de un examen por teclado y
devuelva la calificación no numérica correspondiente. La calificación podrá
ser: No aprobado (0-4.99), Aprobado (5-6.99), Notable (7-8.99),
Sobresaliente (9-9.99) o Excelente (10).Realizar este ejercicio utilizando la
sentencia de control if-else.
/*Programa que lee la calificación de un examen por teclado y devuelva la
calificación no numérica correspondiente. La calificación podrá ser: No aprobado
(0-4.99), Aprobado (5-6.99), Notable (7-8.99), Sobresaliente (9-9.99) o Excelente
(10).Realizar este ejercicio utilizando la sentencia de control if-else.*/
#include<stdlib.h>
#include<stdio.h>
#include<conio.h>
main(){
floatcalific;
printf("nntParaconoer la equivalencia de tu calificaci%cn,nntingresa tu
calificaci%cn:nnt",162,162);
scanf("%f",&calific);
if(calific>10 || calific<0)
printf("nntError al ingresar datos.");
else if(calific<=4.99)
printf("nnt%.2f equivale: No aprovado",calific);
else if(calific<=6.99)
printf("nnt%.2f equivale: Aprovado",calific);
else if(calific<=8.99)
printf("nnt%.2f equivale: Notable",calific);
else if(calific<10)
printf("nnt%.2f equivale: Sobresaliente",calific);
else
printf("nnt%.2f equivale: Excelente",calific);
printf("nnt");
system("pause");
}
8
10. 3. Escribir un programa que lea cuatro números cualesquiera y determine cuál
es el mayor. También deberá considerar el caso en el que los números
sean iguales.
/*Programa que le cuatro números cualesquiera, determine cuál es el mayor.
Considera el caso en el que los números sean iguales.*/
#include<stdio.h>
#include<stdlib.h>
#include<Conio.h>
main(){
int num_1,num_2,num_3,num_4,mayor;
printf("nntIngrese 4 n%cmeros y el programa determinar%ccu%cl es el
mayor:nnt",163,160,160);
scanf("%d %d %d %d",&num_1,&num_2,&num_3,&num_4);
if(num_1==num_2&&num_1==num_3&&num_1==num_4)
printf("nntLosn%cmeros ingresados
son iguales a:
%d",163,num_1);
else if (num_2>num_1&&num_2>num_3&&num_2>num_4)
printf("nntEln%cmerom%cs
grande
es:
%d",163,160,num_2);
else if (num_3>num_1&&num_3>num_2&&num_3>num_4)
printf("nntEl número m%cs grande es: %d",163,160,num_3);
else if(num_4>num_1&&num_4>num_2&&num_4>num_3)
printf("nntEln%cmerom%cs
grande
es:
%d",163,160,num_4);
else
printf("nntEln%cmerom%cs
grande
es:
%d",163,160,num_1);
printf("nnt");
system("pause");
}
10
12. 4. Escribir un programa que lea cuatro números enteros y determine cuál es el
menor. También debe considerar el caso en el que los números sean
iguales.
/*Programa que le cuatro números cualesquiera, determine cuál es el menor.
Considera el caso en el que los números sean iguales.*/
#include<stdio.h>
#include<stdlib.h>
#include<Conio.h>
main(){
int num_1,num_2,num_3,num_4,mayor;
printf("nntIngrese 4 n%cmeros y el programa determinar%ccu%cl es el
mayor:nnt",163,160,160);
scanf("%d %d %d %d",&num_1,&num_2,&num_3,&num_4);
if(num_1==num_2&&num_1==num_3&&num_1==num_4)
printf("nntLosn%cmeros ingresados
son iguales a:
%d",163,num_1);
else if (num_2<num_1&&num_2<num_3&&num_2<num_4)
printf("nntEln%cmero menor es: %d",163,num_2);
else if (num_3<num_1&&num_3<num_2&&num_3<num_4)
printf("nntEln%cmero menor es: %d",163,num_3);
else if(num_4<num_1&&num_4<num_2&&num_4<num_3)
printf("nntEln%cmero menor es: %d",163,num_4);
else
printf("nntEln%cmero menor es: %d",163,num_1);
printf("nnt");
system("pause");
}
12
14. 5. Escribir un programa que permita introducir por teclado tres números
enteros y responda si los números son iguales.
/*Programa que permita introducir por teclado tres números enteros y responda si
los números son iguales.*/
#include<stdlib.h>
#include<stdio.h>
#include<conio.h>
main(){
intuno,dos,tres;
printf("nntPara saber si tres n%cmeros son iguales,nntingresa tres n%cmeros
enteros:nnt ",163,163);
scanf("%d %d %d",&uno,&dos,&tres);
if(uno==dos && uno==tres)
printf("nntLosn%cmeros
ingresados:
%d,%d,%d
son
igualesnnt",163,uno,dos,tres);
else
printf("nntLosn%cmeros
ingresados:
%d,%d,%d
no
son
igualesnnt",163,uno,dos,tres);
system("pause");
}
14
15. 6. Una empresa desea calcular la productividad de un mes dado, esta se
calcula como sigue:
Abril, mayo, junio 17
Julio, agosto 19
Septiembre, octubre, noviembre 20
Diciembre 21
Se pide elaborar un programa que permita solicitar al usuario un mes
cualquiera y se calcule la productividad si se sabe que esta es igual al número
de artículos producidos en el mes multiplicándolo por el factor del mes que
corresponda al mes proporcionado, se conoce la cantidad de artículos
producidos y el mes.
/*Programa que calcula la productividad en cada mes de una empresa*/
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
main(){
intarticulos,productividad;
char mes;
printf("nntBIENVENIDO... nntSelecciones el mes del que desea calcular la
productividad ");
printf("nntA--EneronntB--FebreronntC--MarzonntD--Abril
nntE-MayonntF--JunionntG--JulionntH--AgostonntI-SeptiembrenntJ--OctubrenntK--NoviembrenntL--Diciembrennt ");
scanf("%c",&mes);
printf("nntIngrese la cantidad de articulos producidos en el mes.nnt");
scanf("%d",&articulos);
switch(mes){
case'a':case'A':case'b':case'B':case'c':case'C':
productividad=articulos*15;
printf("nntLa productividad en el mes es de %d.nnt",productividad);
break;
case 'd': case'D':case'e':case'E':case'f':case'F':
productividad=articulos*17;
printf("nntLa productividad en el mes es de %d.nnt",productividad);
break;
case'g':case'G':case'h':case'H':
productividad=articulos*19;
printf("nntLa productividad en el mes es de %d.nnt",productividad);
break;
15
17. 7. Realizar un programa en el que el usuario introduce un número entero y el
programa responde si el número es par o impar.
#include<stdio.h>
#include<conio.h>
intmain(){
intnum;
printf("nntIngrese un n%cmero y el programa le dir%c si es par o impar:
nnt",163,160);
scanf("%d",&num);
if(num%2==0)
printf("nntEln%cmero %d es parnnt",163,num);
else
printf("nntEln%cmero %d es imparnnt",163,num);
system("pause");
}
17
18. 8. Realizar un programa que pida cinco números y muestre por pantalla el
siguiente menú:
1. Suma
2. Resta
3. Multiplicación
4. División
El usuario debe elegir una opción y el programa mostrar el resultado de la
operación realizada. Contemplar los casos en los que el usuario elige una
opción distinta de las 4 posibles (por ejemplo: “Opción no válida”).
/*Programa que pida cinco números y muestre por pantalla el siguiente menú:
1. Suma
2. Resta
3. Multiplicación
4. División
El usuario debe elegir una opción y el programa mostrar el resultado de la
operación realizada.*/
#include<stdlib.h>
#include<stdio.h>
#include<conio.h>
main(){
float num1,num2,num3,num4,num5,resultado;
intop;
printf("nntIngresa una de las opciones del men%c:ntt1) Sumantt2)
restantt3) multiplicaci%cnntt4) Divisi%cnnnt",163,162,162);
scanf("%d",&op);
fflush(stdin);
printf("nntIngresa 5 n%cmeros:nt",163);
scanf("%f %f %f %f %f",&num1,&num2,&num3,&num4,&num5);
switch(op){
case 1:
resultado=num1+num2+num3+num4+num5;
printf("nnt%.2f+%.2f+%.2f+%.2f+%.2f=%.2f",n
um1,num2,num3,num4,num5,resultado);
break;
18
20. 9. Realizar un programa que sirva para calcular el área de un triángulo
A=b*h/2, área de un rectángulo A=b*h, o el área de un circulo A=pi*r^2*.
/*Realizar un programa que sirva para calcular el área de un triángulo A=b*h/2,
área de un rectángulo A=b*h, o el área de un circulo A=pi*r^2*/
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#include<math.h>
#define pi 3.1416
main()
{
floatarea,base,altura,radio;
charopcion;
printf("nnt Seleccione que opcion quiere realizar.");
printf("nnt a) Area de un triangulo.");
printf("nnt b) Area de un rectangulo.");
printf("nnt c) Area de un circulo.");
printf("nnt");
scanf("%c",&opcion);
switch(opcion) {
case'a':case'A':
printf("nntIngrese la altura del triangulo.nnt ");
scanf("%f",&altura);
printf("nntIngrese la base del triangulo.nnt ");
scanf("%f",&base);
area=abs((base*altura)/2);
printf("nntElarea del triangulo es %.2f.",area);
break;
case 'b': case 'B':
printf("nntIngrese la altura del rectangulo.nnt ");
scanf("%f",&altura);
printf("nntIngrese la base del rectangulo.nnt ");
scanf("%f",&base);
area=abs(base*altura);
printf("nntElarea del rectangulo es %.2f.",area);
break;
20
21. case 'c':case 'C':
printf("nntIngrese el radio del circulo.nnt ");
scanf("%f",&radio);
area=pi*(radio*radio);
printf("nntElarea del circulo es %.2f.",area);
break;
default:
printf("nnt Esa opcion no es valida.");
}
printf("nnt");
system("pause");
}
21
22. 10. En un supermercado se va a poner en marcha la “Promoción Bolitas”, la
cual consiste en que al llegar a la caja el cliente y proceder a efectuar el
pago correspondiente a sus compras, se le invita a sacar una bolita al azar
de una caja virtual y dependiendo del color de la bolita obtendrá un
descuento aplicable al total de su cuenta.
Realizar el programa con las siguientes características:
•El cliente debe sacar una bolita de la caja (totalmente al azar).
•El sistema debe mostrarle al cliente la bolita e indicarle el porcentaje
deldescuento obtenido.
•El sistema le solicita a la cajera teclear el importe de la cuenta total delcliente.
•El sistema debe aplicar el descuento correspondiente a la cuenta del cliente
eindicar cuál es la cantidad a pagar.
#include <stdio.h>
#include <math.h>
#include<time.h>
main(){
intbolita;
float porcentaje, precio_original, precio_final;
printf("nntPara participar en la promoci%cn Bolitas,nntoprima una tecla
para sacar una bolitant",162);
getch(); fflush(stdin);
srand((unsigned)time(NULL));
bolita=rand()%5+1;
switch(bolita){
case 1:
printf("nntUstedsac%c una bolita negra y tiene el
10%% de descuento.nnt",162);
porcentaje=0.90;
break;
22
23. case 2:
printf("nntUstedsac%c una bolita verde tiene el
25%% de descuento.",162);
porcentaje=0.75;
break;
case 3:
printf("nntUstedsac%c una bolita amarilla tiene el
50%% de descuento.",162);
porcentaje=0.5;
break;
case 4:
printf("nntUstedsac%c una bolita azul tiene el 75%%
de descuento.",162);
porcentaje=0.25;
break;
case 5:
printf("nntUstedsac%c una bolita roja tiene el 100%%
de decuento.",162);
porcentaje=0;
break;
}
printf("nntIngrese la cuenta totla del cliente:nnt");
scanf("%f",&precio_original);
precio_final=precio_original*porcentaje;
printf("nntCon un precio origninalde %.2f, y un descuento de
%%%.2f,nntel total a pagar es: %.2fnnt",precio_original,(1porcentaje)*100,precio_final);
system("pause");
}
23
25. 11. Escribir un programa que pida un número entero y determine si es múltiplo
de 2 y de 5.
/*Programa que pide un número entero y determina si es múltiplo de 2 y de 5.*/
#include<stdlib.h>
#include<stdio.h>
#include<conio.h>
main(){
int entero,mod2,mod5;
printf("nntEste programa te permitir%c
nntesm%cltiplo
de
2
y
n%cmero:nnt",160,163,163,163);
averiguar si un n%cmero
de
5nntIngresa
un
scanf("%d",&entero);
mod2=entero%2;
mod5=entero%5;
if(mod2==0&&mod5==0)
printf("nntEln%cmero %d
5",163,entero,163);
es
m%cltiplo
de
de
2
y
de
elseif(mod2==0)
printf("nntEln%cmero %d solo es m%cltiplo de 2",163,entero,163);
elseif(mod5==0)
printf("nntEln%cmero %d solo es m%cltiplo de 5",163,entero,163);
else
printf("nntEln%cmero %d
5",163,entero,163);
no
es
m%cltiplo
de
2
ni
de
printf("nnt");
system("pause");
}
25
27. 12. Escribir un programa que pida un número entero y determine si es múltiplo
de 2 y de 5. Diseñar un programa que permita realizar diferentes tipos de
conversiones de monedas. El usuario debe seleccionar un tipo de
conversión desde el menú principal. Por ejemplo:
1. Dólares a pesos
2. Pesos a dólares
3. Pesos a euros
4. Euros a pesos
5. Dólares a euros
6. Euros a dólares
NOTA.
SE TOMARON EN CUENTA LOS SIGUIENTES CAMBIOS DE MONEDA.
1 dólar = 12.1698917 pesos mexicanos.
1 dólar = 0.76810815 euros.
1 euro = 15.843982 pesos mexicanos.
1 euro = 1.30500 dólares.
/*Programa que permite realizar diferentes tipos de conversiones de moneda. */
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
main(){
floatdolares,pesos,euros;
charopcion;
printf("nnt Seleccione la opcion que desea ejecutar.");
printf("nnt a--Dolares a pesos.");
printf("nnt b--Pesos a Dolares.");
printf("nnt c--Pesos a Euros.");
printf("nnt d--Euros a Pesos.");
printf("nnt e--Dolares a euros.");
printf("nnt f--Euros a Dolares.");
printf("nnt");
scanf("%c",&opcion);
27
28. switch(opcion){
case 'a': case 'A':
printf("nntIngrese la cantidad en Dolares que desea convertir a Pesos.");
printf("nnt");
scanf("%f",&dolares);
pesos=dolares*12.1698;
printf("nnt Su cantidad %.2f en Dolares es quivalente a %.2f
Pesos.",dolares,pesos);
break;
case'b': case'B':
printf("nntIngrese la cantidad en Pesos que desea convertir a Dolares.");
printf("nnt");
scanf("%f",&pesos);
dolares=pesos/12.1698;
printf("nnt Su cantidad %.2f en Pesos es quivalente a %.2f
Dolares.",pesos,dolares);
break;
case'c':case'C':
printf("nntIngrese la cantidad en Pesos que desea convertir a Euros.");
printf("nnt");
scanf("%f",&pesos);
euros=pesos/15.8439;
printf("nnt Su cantidad %.2f en Pesos es quivalente a %.2f
Euros.",pesos,euros);
break;
case'd': case'D':
printf("nntIngrese la cantidad en Euros que desea convertir a Pesos.");
printf("nnt");
scanf("%f",&euros);
pesos=euros*15.8439;
printf("nnt Su cantidad %.2f en Euros es quivalente a %.2f
Pesos.",euros,pesos);
break;
en
en
en
en
case'e':case'E':
printf("nntIngrese la cantidad en Dolares que desea convertir a Euros");
printf("nnt");
scanf("%f",&dolares);
28
29. euros=dolares*0.7681;
printf("nnt Su cantidad %.2f en Dolares es quivalente a %.2f en
Euros.",dolares,euros);
break;
case'f':case'F':
printf("nntIngrese la cantidad en Euros que desea convertir a Dolares");
printf("nnt");
scanf("%f",&euros);
dolares=euros/0.7681;
printf("nnt Su cantidad %.2f en Euros es quivalente a %.2f
Dolares.",euros,dolares);
break;
default:
printf("nntEsaopcion no es valida");
}
printf("nnt");
system("pause");
}
29
30. APRENDIZAJE INDIVIDUAL
Alba Hernández Jorge Iván:
Al desarrollar las actividades, tuve algunas dificultades en la interpretación de
algunos ejercicios. También tuve muchas veces errores de sintaxis cuando usaba
scanf, hacía algo así: sacnf(“%d”,&algo); óscanf(“algo”);.Por lo demás el curso de
la práctica marchó bien y me parece que fueron pocos ejercicios para equipos de
3, tocaron 4 a cada quien y había varios muy sencillos.
Esta práctica me ayudó mucho a reforzar los conocimientos de lo que vimos en
teoría y a practicar la sintaxis, que aún me falla un poco, y esto provoca que tarde
mecho revisando las fallas.
García Márquez Stephanie Verónica.
El aprendizaje que me deja esta práctica es la utilización correcta en el
seleccionador de casos, pero más que nada me ayudo a practicar la sintaxis de
éste. Por otra parte es un complemento a lo anterior visto y va dando paso para la
utilización de los ciclos.
Gómez López Cristian:
Esta práctica se me hizo muy interesante, ya que lo difícil aquí no es programar, si
no darle la "lógica" y la solución al problema que se nos presenta. Poco a poco
aprendo un poco más de esta profesión, es difícil, pues no cualquiera programa,
pero nada que no pueda uno hacer con dedicación y coraje.
30