While
While
While
Instrucciones de ciclo
Hemos hecho programas que solo se repiten una vez, pero en la programación
necesitamos que los programas corran varias veces y que nos presenten
información al final de correr varias veces, en estos casos usaremos ciclos, que
son estructuras de repetición, que se repiten hasta cumplir con una condición o
simplemente indicamos cuantas veces se van a repetir.
Nota: Para evitar ambigüedades, todos los ciclos deben cerrarse siempre, no es
posible que hayan “Ciclos abiertos”.
Ciclo Mientras:
Sintaxis
Ingresar 10 nombres
Proceso contar_nombres
Definir contador Como Entero;
Dimension nombre[25];
Definir nombre Como Cadena;
Contador<-0;
Mientras contador<10 Hacer
Escribir "Ingresar el nombre";
Leer nombre[24];
contador<-contador+1;
FinMientras
FinProceso
Pág. 1
Programación con PSeInt
Proceso acumuladores
Pág. 2
Programación con PSeInt
FinMientras
Escribir "Suma de los 10 números ", Suma;
FinProceso
El ciclo recorre 10 veces y pide los 10 números, pero la línea suma<- suma + num,
hace que la variable suma, incremente su valor con el número que se introduce
en ese momento, a diferencia del contador, un acumulador se incrementa con una
variable, acumulando su valor hasta que el ciclo termine, al final se presenta la
suma, solo en ese momento se debe de presentar un acumulador, porque antes
no reflejaría la suma de todos los números.
Ejemplo sobre el ciclo mientras usando una respuesta para controlar la salida
del ciclo.
Ingresar el nombre del cliente, el precio del producto, cantidad y luego calcular el
subtotal, isv y total a pagar, presentar los datos luego preguntar si desea continuar,
al final presentar el monto global de la factura.
Proceso producto
Definir Resp Como Caracter;
Dimension nombre[25];
Definir nombre Como Cadena;
Definir Precio, cantidad, totalglobal, st, isv, tp Como
Reales;
Totalglobal<-0;
Resp<-'S';
Mientras resp <>'N' Hacer
Escribir "Nombre del cliente";
Pág. 3
Programación con PSeInt
Leer nombre[24];
Escribir "Ingresar la cantidad del producto ";
Leer cantidad;
Escribir "Ingresar el precio de producto ";
Leer precio;
St<- precio*cantidad;
Isv<-st*0.012;
Tp<-st-isv;
Totalglobal<-totalglobal+st;
Escribir "Subtotal ", st;
Escribir "Impuesto sobre venta ", isv;
Escribir "Total a pagar ", tp;
Escribir "Desea continuar S/N";
Leer Resp;
FinMientras
Escribir "Total de la venta ", totalglobal;
FinProceso
En este ejercicio, observamos que el ciclo lo controla una respuesta que se pide
al final S para seguir o N para terminar , pero daría el mismo resultado si escribe
cualquier letra distinta a S, aunque no sea N siempre seguiría funcionando el
programa, la validación de los datos de entrada lo estudiaremos más adelante.
Ingresar el nombre del alumno, la nota examen y nota acumulada, luego calcular
la nota final, y presentar la nota final y la observación del alumno.
Preguntar si desea continuar, al final presentar el número de aprobados y
reprobados.
Proceso aprobado
Definir Resp Como Caracter;
Dimension nombre[25];
Definir nombre Como Cadena;
Definir na,ne,nf Como Reales;
Definir cr,ca Como Enteros;
cr<-0;
ca<-0;
Pág. 4
Programación con PSeInt
Resp<-'S';
Mientras resp<>'N' Hacer
Escribir "Nombre del alumno ";
Leer nombre [24];
Escribir "Nota acumulada ";
Leer na;
Escribir "nota examen ";
Leer ne;
nf<-na+ne;
Si nf >= 60 Entonces
Escribir "Tú estás Aprobado";
ca<-ca+1;
Sino
Escribir "Tú estás Reprobado";
cr<-cr+1;
FinSi
Escribir "Nota final ", nf;
Escribir "Desea continuar S/N";
Leer Resp;
FinMientras
Escribir "Total de reprobados ", cr;
Escribir "Total de aprobados ", ca;
FinProceso
Como podemos observar en las líneas del programa, usamos dentro del ciclo
mientras, decisiones para poder contar los reprobados y aprobados que resulten
del ingreso de los alumnos, si la nota es mayor a 60 escribe aprobado e
incrementa el contador y sino hace lo contrario, escribir reprobado e incrementar
el contador.
Pág. 5
Programación con PSeInt
Ciclo Para
Sintaxis
Para variable <- valor_inicial Hasta valor_final Con Paso Paso Hacer
instrucciones
FinPara
Descripción
Proceso ciclo_Para
Definir I Como Entero;
Para I<-1 Hasta 10 Con Paso 1 Hacer
Escribir I;
FinPara
FinProceso
Pág. 6
Programación con PSeInt
Proceso ciclo_Para_2
Definir I, final Como Enteros;
Escribir "Ingresar el número de veces a repetir el ciclo ";
Leer final;
Para I<-1 Hasta final Con Paso 1 Hacer
Escribir I;
FinPara
FinProceso
Proceso ciclo_Para_con_factorial
Definir I, numero, factorial Como Enteros;
factorial<-1;
Escribir "Ingresar el número para determinar su factorial ";
Leer numero;
Para I<-1 hasta numero Con Paso 1 Hacer
factorial<- factorial*I;
FinPara
Escribir "factorial de ", numero ," es ", factorial;
FinProceso
En este ejercicio se inicia el factorial en 1 porque acumulara una multiplicación y
si lo iniciamos en cero nos daría el resultado cero, si nosotros ingresar 3, el ciclo
se ejecutara 3 veces , el factorial tomaría el valor de 1x2x3.
Diagrama de flujo:
Pág. 7
Programación con PSeInt
Nota: Puede omitirse la expresión “Con Paso -1” en el ciclo para yendo a
Configurar Opciones de lenguaje (perfiles)… → Personalizar → Permitir omitir el
paso -1 en los ciclos Para.
Ciclos anidados