3.1.5. Ejemplo de programas con ciclos y condiciones

1.- Dada la C.I., Nombre, y la Nota Definitiva de 30 estudiantes, realice un algoritmo que permita calcular y dar como salida lo siguiente:

* Cantidad de Alumnos Aprobados
* Cantidad de Alumnos Reprobados
* Promedio General de Notas

En este caso se utilizarán dos contadores: uno para contar los alumnos aprobados y el otro para los reprobados.
Además se utilizará un sumador para calcular el promedio

Algoritmo
1. Inicio
2. ContadorAp = 0 // Se inicia en cero el contador de alumnos aprobados
3. ContadorRe = 0 // Se inicia en cero el contador de alumnos reprobados
4. Suma = 0 // Se inicia en cero el sumador donde se almacenará la suma de todas las notas
5. Para i = 1 hasta 30 hacer /Comienza el ciclo
6. Leer cedula, nombre, nota
7. Incrementar sumador: Suma = Suma + nota //Se incrementa el sumador con cada nota leida
8. Comparamos si el alumno está aprobado o reprobado:
9. Si nota < 10 entonces //Si la nota es menor a 10 se incrementa el contador
10. ContadorRe = ContadorRe + 1 //de los reprobados
11. en otro caso //si no es asi o en caso contrario
12. ContadorAp = ContadorAp + 1 //se incrementa el contador de los aprobados
13. fin del si
14. Fin del Para //Aqui termina el ciclo
15. Hacemos Promedio = Suma/30 //Calculamos el promedio de todas las notas
16. Escribir “Hay “, ContadorAp, ” alumnos aprobados”;
17. Escribir “Hay “, ContadorRe, “alumnos reprobados”.
18. Escribir “El promedio de las notas es “, Promedio
19. Fin del programa

2. Programa que imprima el menor de n números enteros:

Program calmenor; // El programa se llama calmenor
uses crt; // Usamos las propiedades de la pantalla
Var // Declaramos las variables
i,n : integer; // Las variables i y n las declaramos enteras
numero, menor : real; // las variables numero y menor tienen decimales
begin //Comienzo del programa
write(‘Diga la cantidad de números a comparar ‘); //Solicitamos el valor de N
readln(n); // (lo mandamos a leer)
menor := 1000000; // Se le asigna a la variable menor un valor muy grande
for i:= 1 to n do // Comienzo del ciclo
begin // El ciclo debe estar entre un begin y un end;
write(‘ Diga un número ‘ ); // Solicitamos un numero a leer
readln(numero);
if numero < menor then // Si el numero leido es menor que la variable menor se le
menor := numero; // asigna a la variable menor el menor valor
end; // Fin del ciclo
writeln(‘ El menor valor es : ‘, menor:7:2); //Escribimos el valor de menor con formato de dos decimales
end. // Fin del programa

2.1 Otra forma de hacerlo:

Program calmenor;
uses crt;
var
i,n : integer;
numero, menor : real;
begin
write(“Diga la cantidad de números a comparar “);
readln(n);
write(“Escriba el primer número “);
readln(numero);
menor := numero // se asigna al primer numero leido el valor de menor
for i:= 2 to n do // Se inicia el ciclo partiendo del segundo número a leer
begin
write(“Diga el número siguiente ” );
readln(numero);
if numero < menor then // Si el numero leido es menor que la variable menor se le
menor := numero; // asigna a la variable menor ese valor
end; // Fin del ciclo
writeln(“El menor valor es : “, menor:7:2);
end.

2.2 Ejercicio: hacerlo para imprimir el mayor valor de una serie de numeros

3. Sea n vendedores en una tienda. Hacer un programa en pascal que lea el sueldo base y la venta de cada vendedor y calcule el sueldo total en base a:
Si la venta es menor a 1000 su comision es cero, si la venta está entre 1000 y 2000 la comision es del 10% de la venta y si la venta es mayor de 2000 la comision es del 15% de la venta

Program sueldos;
uses crt;
var
n,i : integer;
st,sb,venta,comision : real;
begin
clrscr;
write(“Por favor diga la cantidad de vendedores “);
readln(n);
for i := 1 to n do //Comienza el ciclo
Begin
write(“Por favor diga el sueldo base del vendedor “,i);
readln(sb);
write(“Por favor diga la venta del vendedor “,i);
readln(venta);
if venta = 1000 then
if venta 2000 then comision := venta * 0,15;
st := sb + comision;
writeln(“El sueldo total del vendedor “,i,” es : “,st:7:2);
end;
readkey;
end.

Deja un comentario