Está en la página 1de 14

Universidad de El Salvador

Facultad de Ingeniería y Arquitectura


Escuela de Ingeniería de Sistemas Informáticos

Programación I Ciclo – II – 2012.


Guía de laboratorio No.1
Repaso de Lenguaje C
Objetivo: Recordar y aplicar todo lo que hemos aprendido del lenguaje de programación C.
Metodología:

Esta guía esta diseñada para desarrollarse en dos secciones de laboratorio:


La sesión de discusión se desarrollará de la siguiente forma:
El estudiante deberá haber leído la guía previamente comprendiendo el ejercicio resuelto habiendo
aclarado dudas si es necesario.

Primera Semana
En la parte I, el instructor indicará a los alumnos que ejercicios de la parte I, debe de codificar (2
ejercicios). En los códigos de los programas que contienen errores, escriba comentarios en las líneas
donde los encontró e indicando cual fue el error y la corrección.
En la parte II, el instructor explicará a los alumnos cual flujograma codificara.

Al final del laboratorio cada alumno debera subir sus archivos al aula virtual, como se les explica en el
documento de indicaciones generales.

 En la parte III, el instructor le indicará a los alumnos 2 ejercicios de los propuestos para resolverlos en casa
y traer Ias codificaciones para subirlas en el próxima sesión.

Segunda semana
 En la parte I, el instructor indicará a los alumnos que ejercicios de la parte I, debe de codificar (2 ejercicios).
 En la parte II, el instructor explicará a los alumnos cual flujograma codificara.
 Asignar tarea de la guía N° 2 (Desarrollar toda la metodología a dos ejercicios propuestos)

jmb-mrcp
1
Parte I: Cada uno de los siguientes programas contienen tienen errores (sintaxis, lógica,
ejecución). Usted debe depurarlos y “ponerlos a punto”
1. Programa uno: Calcula el promedio de 5 números reales, con ciclo while y contador.

//programa con errores


guárdelo como prg1_g1.cpp
#include<stdio.h>
#include<conio.h>
#define k=5
main( )
{
float n, suma, prom;
int i;
suma=0.0;
i=1;
while(i<=k)
{
puts(Digite el numero: );
scanf("%f",&n);
suma += n
i += 1;
}
prom = suma/5;
printf("El promedio de los números es:%f",prom);
getch();
return 0;
}

2. Programa 2: Calcula la temperatura media de 4 diferentes lecturas con ciclo for


/*Este programa tiene errores, depúrelos
Guárdelo como prg2_g1.CPP*/
#include<stdio.h>
#include<conio.h>
main( );
{
float t, sum, prom;
float i;
sum=0.0;
for (i=1; i>=4; i++);
{
puts("Digite la temperatura(oC): ");
scanf("%d",&t);
sum+=t;
prom = sum/4;
}
printf("\n\n\n La temperatura promedio es:\t oC",prom);
getch();
return 0;
jmb-mrcp
2
}
3. Programa 3: Calcula e imprime cuantos clientes pagan de contado, al crédito o con
cheque; además de el total vendido al crédito. Trabaja con ciclo while y contador

//Este programa tiene errores, corríjalos


//guarde como prg3_g1.cpp
#include<stadio.h>
#include<conio.h>
main( )
{
float m, sum;
int i,t, con, cre=0, che=0;
sum=0;
i=1;
while(i<=4) //Tipo de pago:1 es contado, 2 es crédito y 3 es con cheque
{
printf("Digite monto, tipo de pago(1 2 o 3): ");
scanf("%f,%i",m, t);
while (m<=0 || (t <=1 || t>2))
{
puts(“Error, trate de Nuevo”);
scanf(“%f %i”, &m, &t);
}
Switch (t)
{
case 1:
puts("contado ");
con++;
break;
case 2:
puts("crédito ");
sum = sum + m;
cre++;
break;
deaulft:
puts(“cheque”);
che++;
}
}
}
printf("El total de ventas al crédito es $:%f",sum);
getch();
return 0;
}

jmb-mrcp
3
4. Programa 4: Imprime una determinada cantidad de números enteros mayores que cero, a
gusto o necesidad del usuario; trabaja con ciclo while y centinela.

//Programa que genera n numeros enteros positivos, iniciando de 1


//Guarde su programa como prg4_g1.cpp
#include<stdio.h>
#include<conio.>
main()
{
int n, i, num=1;
puts(“Quiere imprimir números, a partir de 1?”);
puts(“Entonces digite 1”);
Scanf(“%i”, n);
prinf(“\n \n \n %i \t PRIMEROS NUMEROS ENTEROS POSITIVOS”, n);
while(n==1)
{
printf(“\n %i”, num);
num += i;
i++;
puts(“ Otro número mas? 1 = si”);
scanf(“%i”, &n)
}
}
puts(“Imprimio %i numeros”, n);
getch();
return 0;
}

5. Programa 5: Este programa lee la calidad de cada uno de 100 productos, ésta puede ser
optima, normal o deficiente. E imprime cuantos productos hay de cada clase de calidad. Trabaja
con ciclo for.

/* Programa para Clasificar 100 productos, en sus tres diferentes clases, OPTIMA, NORMAL O
DIFIECIENTE, Cuenta cuántos hay de cada uno
Guarde su programa como prg5_g1.cpp */
#include <stdio.h>
#include <conio.h>
main()
{
int opt=0, nor=0, def=0,prod=1;
int clase;

printf("\nCLASIFICACION DE PRODUCTOS SEGUN SU CALIDAD\n");


puts("1. Clase de Calidad Optima"); //Estos mensajes,
puts("2. Clase de Calidad Normal"); /* ayudan a la entrada de datos

jmb-mrcp
4
puts("3. Clase de Calidad Deficiente");
printf("\n\n"); // Deja una linea en blanco
for (prod=1; prod<=100; prod ++); // inicia el ciclo de productos
{
printf("Digite la clase del producto \t %i \n", prod);
scanf("%d", &clase);
while (clase<1 || clase >3) //Validación de la clase de producto
{
puts("Esta clase no existe intente de nuevo");
scanf("%d", &clase);
}
switch (clase)
{
case: 1
opt++;

case: 2
nor++;
break;
case: 3
def++;
break;
default;
}
prod++;
}
printf("\n Calidad Optima: %d", opt);
printf("\n Calidad Normal: %d", nor);
printf("\n Calidad Deficiente: %d", def);
getch();
return 0;
} /*Fin del programa*/

jmb-mrcp
5
Parte II: Codifique cada uno de los siguientes flujogramas
1) Flujograma 1. Calcula el promedio anual de lluvia del año anterior, la mayor cantidad de lluvia registrada
(en milímetros cúbicos) y el número de meses que superaron los 40 milímetros; a partir de la cantidad de
lluvia registrada en cada mes del año.
Guarde el programa como flu1_g1.cpp.

Inicio

sum = 0

cm = 0

nm = 0

i = 1, 12, 1

“Introduzca la cantidad de prom = sum / 12


lluvia a registrar en el mes :”, i

“El promedio
cmr
anual es :”, prom
No

cmr <= 0 “La mayor cantidad


de lluvia registrada
Si es :”, cm
“Error!!!
Introduzca
datos > 0”
“El mes que se
obtuvo el mayor
cmr
registro es :”, m

sum = sum + cmr “El número de


meses en que la
Si cantidad supero los
No
cmr > cm 40 mililitros es de :”,
nm
cm = cmr

m=i
Fin

No Si
cmr > 40
nm ++

jmb-mrcp
6
2) Flujograma 2. En un almacén se ofrecen descuentos a los clientes que dependen del departamento
donde se compra y del monto de la compra que se hace, según se muestra a continuación:
Departamento Promoción % Descuento
Ropa En compras que superen los $ 50.00 20
Electrodomésticos En compras que superen los $ 100.00 25
Juguetes En compras que superen los $ 30.00 15

Diseñe una solución que permita presentar para cada cliente:


a) La compra hecha sin descuento, el descuento aplicado y el monto que pagará cada cliente.
b) Número de compras del departamento de electrodomésticos mayores de $ 100.00
c) El total de compras con la promoción aplicada en el departamento de Ropa.
Guarde el programa como flu2_g2.cpp.

Inicio 1

tcr = 0 “digite el departamento


de compra:
nce = 1 1: Ropa
2: Electrodomésticos
3: Juguetes ”
c = 999

No depto
2 i !=c

Si nce, tcr
depto <1
“digite el valor &&
de su compra” depto > 3
Fin
compra

”Error en dato de
departamento”
No
compra
<= 0
“digite el
departamento
Si de compra”
”Error en dato
de compra” depto
“digite el valor
de su compra”
1
compra

1
jmb-mrcp
7
1 2

monto = compra – D_a


depto
compra,
D_a,monto
1
“Ropa”
“Hay más datos
SI: otro valor
No: 999”
No Si
compra
> 50.00 i
D_a = 0 D_a = compra * 0.20
2

tcr+=compra

2
“Electrodomésticos”

No Si
compra
> 100.00

D_a = 0 D_a = compra * 0.25

nce++

3
“Juguetes”

compra
> 30.00

D_a = 0 D_a = compra * 0.15

jmb-mrcp
8
3) Flujograma 3. Diseñe un programa que permita leer cierto número de edades y calcule el promedio de
ellas; al final digitar 999 para dejar de leer edades.(Utilizando centinela)
Guarde el programa como flu3_g3.cpp.

1
Inicio

Prom = suma/n
suma = 0

n=0 “El promedio de las


edades es: ”,Prom
edad = 0
Fin
No
edad != 999

Si
“digite la Edad”

edad

No
edad <= 0

Si
”Error en dato
de edad”

“digite la Edad”

edad

No Si
edad != 999

suma = suma + edad

n ++

jmb-mrcp
9
4) Flujograma 4. Diseñe un programagrama que permita leer cierto número de edades y calcule el
promedio de ellas. (Utilizando bandera)
Guarde el programa como flu4_g4.cpp.

Inicio
1
1
suma = 0

No
n=1 B==1

B=1 Si
“digite la Edad”

1
edad
1

No
edad <= 0
2
1 Si
”Error en dato de edad”

Prom = suma/(n-1)
edad

“El promedio de las


edades es: ”,Prom suma = suma + edad

“Desea otra edad


Fin Si, digite 1
Salir, digite 0”

B 2
1
No
B=1&&B==0

Si
“Error!!!otra edad
Si, digite 1
Salir, digite 0”

n ++

jmb-mrcp
10
5) Flujograma 5. Diseñe un programa en donde se tiene un grupo de números enteros positivos, pero se
desconoce cuantos son, diseñe un: la solución debe calcular:
a. Cuántos números forman el grupo de datos.
b. El promedio de los números pares.
c. Cuántos son los impares.
d. Cuántas veces se repite el número cinco.
El primer dato debe ser 10. (Utilizando bandera)
Guarde el programa como flu5_g5:cpp.

Inicio

datos=0
sump_p=0
tres=0
imp=0

num =10

No
num > 0

Si

datos = datos+1

No Si
num%2 ==0

imp++
sum_p = sum_p+ num
No
num = = 3
pares = datos - imp
tres++

prom_p = sum_p/pares

datos, prom_p,
“Lea un
tres, imp
numero”

num Fin

jmb-mrcp
11
PARTE III. EJERCICIOS PROPUESTOS.
Diseñe una solución para cada uno de los siguientes enunciados, aplicando la metodología para resolver
problemas desde la Fase I hasta la Fase III.

Guardar cada programa como: prog #_guia, según el numero de ejercicio asignado para resolverlo; por
ejemplo para el ejercicio 1 debe ser: prog1_guia1

1. Dado como datos de entrada el nombre y la calificación de ciclo de un grupo de 5 alumnos de


Introducción a la Informática, elabore un algoritmo que determine si el alumno aprobó o reprobó, siendo la
nota mínima de aprobación 6.0, calcule e imprima la cantidad de aprobados y la cantidad de reprobados y
la nota promedio

Nombre Nota Nombre Resultado


Juan 5.00 Juan REPROBADO
María 6.00 María APROBADO
… …

Aprobados: 1 Reprobados: 1 Promedio: 5.50

2. Dados como datos de entrada los nombres y el CUM (Coeficiente de Unidades de Mérito) de carrera de
un grupo de 7 alumnos egresados de la Universidad de El Salvador, elabore un algoritmo que determine
para cada alumno si ha ganado o no la calidad de EGRESADO, siendo la nota mínima para egresar 7.0; y
si no cumple el requisito deberá CURSAR ASIGNATURAS. Calcule e imprima la cantidad de egresados y
la cantidad de no egresados, y el promedio.

Nombre CUM Nombre Resultado


Juan 7.1 Juan EGRESADO
María 8.0 María EGRASADO
Teresa 6.3 Teresa NO EGRESADO
… …

Egresados: 2 No egresados: 1 Promedio: 7.13

3. En la Facultad de Ingeniería y Arquitectura, los alumnos que obtengan una nota de ciclo entre 5.0 y 5.94
inclusive, tiene derecho a realizar un examen de suficiencia con el cual tiene la opción de aprobar la
asignatura. Diseñe un algoritmo que permita conocer a partir de la nota de ciclo de un grupo de 10
alumnos si el alumno reprobó (sin derecho a suficiencia), reprobó y califica para hacer el examen de
suficiencia ó si aprobó la asignatura. El mínimo para aprobar es 6.0 Además calcule e imprima la nota
promedio.
Nombre Nota Nombre Resultado
Juan 4.92 Juan Reprobó la Asignatura
María 6.10 María Aprobó la Asignatura
Teresa 5.90 Teresa Derecho a Suficiencia
… …

Nota promedio 5.50

jmb-mrcp
12
4. Dados como datos el nombre, la categoría y el sueldo de un grupo de 8 empleados, elabore una solución
que calcule e imprima el valor del bono navideño que le corresponde a cada uno de ellos, además calcule
el monto total a pagar en bonos, tome en cuenta la siguiente tabla.

CATEGORIA BONO(%)
1 60

2 45

3 30

5. Diseñe una solución que dados los salarios de un grupo de empleados calcule e imprima el monto total de
los salarios, el salario mayor, el salario menor y el salario promedio.

6. Diseñe una solución que dados los salarios y los bonos a pagarle a un grupo de empleados (cualquier
cantidad conocida) calcule e imprima el monto total del cheque de cada empleado, el monto total a
desembolsar por parte de la empresa (la suma de todos los cheques), el monto mayor y el monto menor
calculado para un cheque.

7. Se tienen los resultados de una encuesta realizada a varias personas adultas, con las siguientes
preguntas: ¿Cuál es su salario mensual? ¿Cuál es el total de sus gastos mensuales? Diseñe una solución
que calcule e imprima la cantidad de dinero que puede ahorrar o disponible (salario - gastos) y el índice
de ahorro (disponible/salario) para cada persona. Además calcule e imprima el ahorro promedio, el ahorro
mayor y el ahorro menor.

Salario Gastos Ahorro Índice de Ahorro


$ 1200.00 $ 700.00 $ 500.00 41.67%
$ 500.00 $ 200.00 $ 300.00 60.00%
$ 3000.00 $ 1500.00 $ 1500.00 50.00%
… …
$ 700.00 $ 500.00 $ 200.00 28.57%

Ahorro promedio $ 500.00

8. Diseñe una solución que dadas las notas de un grupo de alumnos (cuya cantidad es conocida) calcule e
imprima la nota promedio.

9. Diseñe una solución que dadas dos notas de un grupo de alumnos (cuya cantidad es conocida) calcule e
imprima la nota final; la primer nota vale 30% y la segunda 70%. Además imprima la nota final promedio.
10. Un almacén hace 20% de descuento a los clientes con compras mayores a $1000.00. Diseñe una
solución que calcule el total de descuentos hechos dado el monto de compra de varios clientes.
11. En un almacén se hace un 10% de descuento a los clientes solo si la compra es menor a los $100.00.
Dado el monto de la compra de varios de sus clientes diseñe una solución que calcule cuanto pagará
cada persona por su compra, además calcule e imprima el monto total en descuentos, el pago mayor
realizado por un cliente y el pago menor realizado por un cliente.

Tipo de Venta Monto Monto Total Contado $ 600.00


Contado 100.00 Monto Total Crédito $ 1600.00
Crédito 600.00 Monto Global $ 2200.00
Contado 500.00
… % ventas contado 27.27%
crédito 1000.00 % ventas crédito 72.73%
jmb-mrcp
13
12. En una empresa maquilera se da un bono de 10% sobre el salario solo si el trabajador gana $200.00 o
menos Diseñe una solución que dados el salario de un grupo de empleados, calcule el valor del bono a
recibir por cada uno, además calcule e imprima el monto total otorgado en bonos.

13. En una empresa maquilera se da un bono de 10% sobre el salario solo si el trabajador gana $200.00 o
menos Diseñe una solución que dados el salario de un grupo de empleados, calcule el valor del bono a
recibir por cada uno, además calcule e imprima el monto total otorgado en bonos.
14. Un banco que otorga préstamos personales está interesado en una solución para lo siguiente: dados el
nombre, el tipo de empleado y el salario de un grupo de trabajadores; presentado por un Ejecutivo de
Créditos, elabore una solución que calcule e imprima el monto y el plazo máximo del préstamo para cada
trabajador y la comisión del ejecutivo. Además, calcule e imprima la comisión total a pagar al ejecutivo de
créditos, el monto de préstamo mayor y el monto de préstamo menor.
TIPO Monto Plazo Comisión
(veces el (años) %
salario)
PUBLICO 10 7 5

PRIVADO 7 5 3
* El porcentaje de comisión se aplica sobre el
monto del crédito
15. Una empresa vende a sus clientes mayoristas con dos formas de pago (ver tabla). Diseñe una solución
que dado el monto de la compra y el tipo de pago de un grupo de clientes, aplique el descuento o recargo
correspondiente, calcule e imprima el total a pagar por cada cliente.

TIPO Desc Recargo


% %
PUBLICO 40 0

PRIVADO 0 10

16. En una empresa maquilera se da un bono de 10% sobre el salario solo si el trabajador gana $200.00 o
menos Diseñe una solución que dados el salario de un grupo de empleados, calcule el valor del bono a
recibir por cada uno, además calcule e imprima el monto total otorgado en bonos.

17. El concesionario está haciendo descuentos de acuerdo al modelo según la siguiente tabla:

Modelo Descuento
1 Sprak 12%
2 Elantra 8%
3 Accent 10%
Se debe de imprimir:

 Precio del vehículo, su costo final, el total vendido y el total de dinero descontado.
 Número de descuentos aplicados al Modelo Elantra.
 Total de compras de los clientes.

Tome en cuenta que son varios clientes los que compran.

jmb-mrcp
14

También podría gustarte