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.
Ciclo mientras:
Sintaxis
mientras condición haga
instruciones
fin mientras
El ciclo mientras se utiliza cuando se quiere ejecutar repetidamente un bloque
instrucciones basado en una condición, el ciclo se repite mientras la condición se
cumple.
Ejemplo sobre el ciclo Mientras usando un contador
Ingresar 10 nombres
Entero contador
Cadena[25] nombre
Inicio
Contador←0
Mientras contador<10 haga
Escriba “Ingresar el nombre”
Lea nombre
Contador← contador + 1
Fin mientras
Fin
En este programa introducimos el concepto de contador , que es una variable
que se incrementa su valor en 1 y de esta manera contamos cuantos nombres
Pag. 21
Programación con LPP
se van ingresando para parar cuando ingresemos 10 , esto nos dice que la
condición ya no se cumple porque cuando el contador vale 10 la condición de
contador < 10 ya no se cumple porque es igual y el ciclo termina.
Ejemplo sobre el ciclo Mientras usando acumuladores
Ingresar 10 nĆŗmeros y al final presentar la suma de los nĆŗmeros.
Entero contador,suma,num
Inicio
Contador←0
Suma←0
Mientras contador<10 haga
Escriba “Ingresar un numero”
Lea num
contador← contador +1
Suma←num+suma
Fin mientras
Escriba “Suma de los 10 nĆŗmeros “, suma
Fin
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 numero 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.
Siempre que usemos un contador o acumulador debemos darle un valor inicial
de generalmente serĆ” 0.
Ejemplo sobre el ciclo mientras usando una respuesta para contralor 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.
Caracter Resp
Cadena[25] nombre
Real Precio, cantidad, totalglobal, st, isv, tp
Inicio
Totalglobal←0
Resp←’S’
Mientras resp<>’N’ haga
Escriba “Nombre del cliente”
Lea nombre
Escriba “Ingresar la cantidad del producto ”
Lea cantidad
Escriba “Ingresar el precio de producto “
Lea precio
St← precio * cantidad
Isv←st * 0.012
Tp←st-isv
Totalglobal←totalglobal+st
escriba "Subtotal " , st
llamar Nueva_linea
escriba "Impuesto sobre venta " , isv
llamar Nueva_linea
escriba "Total a pagar " , tp
llamar Nueva_linea
Escriba "Desea continuar S/N"
Lea Resp
Fin mientras
Escriba “Total de la venta” , totalglobal
fin
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 , arenque no sea N siempre seguirĆa funcionando el
programa , la validación de los datos de entrada lo estudiaremos mas adelante.
Ejemplo sobre estructuras de condición dentro del ciclo Mientras.
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 numero de aprobados y
reprobados.
Caracter Resp
Cadena[25] nombre
Real na,ne,nf
entero cr,ca
Inicio
cr<-0
ca<-0
Resp<-'S'
Mientras resp<>'N' haga
Escriba "Nombre del alumno"
Lea nombre
Escriba "Nota acumulada "
Lea na
Escriba "nota examen "
Lea ne
nf<- na+ne
si nf >= 60 entonces
escriba "Usted esta Aprobado"
ca<-ca+1
sino
escriba "Usted esta Reprobado"
cr<-cr+1
fin si
Pag. 24
Programación con LPP
llamar Nueva_linea
escriba "Nota final " , nf
llamar Nueva_linea
Escriba "Desea continuar S/N"
Lea Resp
Fin mientras
llamar Nueva_linea
Escriba "Total de reprobados" , cr
llamar Nueva_linea
Escriba "Total de aprobados" , ca
Fin
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.Ejemplos de haga mientras
1)/*hacer un algoritmo que la ingresar varios numeros responda cual es mayor y menor pero agregandole un ciclo mientras */ entero num1,num2,contador inicio contador<-0 Mientras contador<10 haga escriba "ingrese el primer numero:" lea num1 escriba "ingrese el segundo numero:" lea num2 Contador<- contador + 1 Fin mientras si num1>num2 entonces escriba "el numero:",num1,"es mayor que:",num2 sino si num2>num1 entonces escriba "el numero",num2,"es mayor que :",num1 sino si num1=num2 entonces escriba " ambos numeros son iguales:" fin si fin si fin si fin
2)/*algoritmo que ingrese las notas las sume saque un promedio con un ciclo mientras */ real nota_1,nota_2,nota_3,promedio,nota_4 Entero contador,suma,num inicio Contador<-0 Suma<-0 Mientras contador<10 haga nota_4<-nota_1+nota_2+nota_3 escriba "ingrese la primer nota:" lea nota_1 escriba "ingrese la segunda nota:" lea nota_2 escriba "ingrese la tercer nota :" lea nota_3 contador<- contador +1 Suma<-nota_4+suma Fin mientras promedio<-(nota_1+nota_2+nota_3)/3 si promedio>=3.0 entonces escriba "usted aprobo el curso" sino escriba "usted reprobo el curso" fin si fin
3)/* algoritmo que saque el salario del trabajador y aplicale un ciclo mientras */ real hor_t,precio_hr,sub_tot,salario Entero contador inicio Contador<-0 Mientras contador<10 haga escriba "ingrese el numero de horas trabajadas :" lea hor_t escriba "ingrese el precio * hora:" lea precio_hr Contador<-contador + 1 5rFin mientras salario<-(precio_hr*hor_t) si (hor_t>40) entonces sub_tot<-(salario*0.50)+salario sino sub_tot<-salario fin si escriba "su salario final es de :",sub_tot fin
4)/*algoritmo en el que tiene que ingresar el nombre con un ciclo mientras */ entero contador cadena [10] nombre inicio contador <-0 mientras contador < 5 haga escriba "nombre" lea nombre contador <- contador +1 fin mientras fin
No hay comentarios.:
Publicar un comentario