lunes, 5 de septiembre de 2016

CICLOS REPETITIVOS, HAGA HASTA

Ciclo Repita

este ciclo es más útil cuando necesitamos definir cuándo y cómo acabar el ciclo


estructura

        Repita 
                     Instrucciones 
        Hasta (condición)


ejemplo

(1°) realizar un algoritmo que pida el nombre de la cantidad de alumnos que se requiera y muestre cuántos aprobaron y cuántos reprobaron.

caracter resp 
real nota 
entero ca, cr 
cadena[25] nombre 
inicio 
ca <-0 
cr <-0 
repita 
Escriba "ingresar el nombre del alumno " 
lea nombre 
Escriba "ingresar la nota del alumno " 
lea nota 
si nota >= 60 entonces 
ca <-ca+1 
sino 
cr <-cr+1 
fin si 
escriba " Desea continuar S/N" 
lea resp 
hasta (resp='n') o (resp='N') 
escriba " Aprobados ",ca 
llamar nueva_linea 
escriba " Reprobados ",cr 
fin

(2°) Desarrollar un algoritmo que me permita ingresar el sexo de 10 personas y al final me muestre la cantidad de cada sexo ingresado.

Entero mascu,feme,otro,con
Cadena[10] sexo

Inicio
mascu<- 0
feme<- 0
otro<- 0
con<- 0

 Repita

Escriba "Ingrese el sexo de la persona : "
Lea sexo

Llamar nueva_linea

 Si (sexo="masculino") o (sexo="Masculino") entonces
  mascu<- mascu + 1

  Sino si (sexo="femenino") o (sexo="Femenino") entonces
   feme<- feme +1

    Sino si (sexo="otro") o (sexo="Otro") entonces
     otro<- otro + 1

      Fin si

    Fin si

 Fin si    

 con<- con + 1

  Hasta (con=10)

Llamar nueva_linea 

Escriba " La cantidad de sexos Masculinos son ", mascu

Llamar nueva_linea

Escriba " La cantidad de sexos Femeinos son ", feme

Llamar nueva_linea

   Escriba " Otros sexos ", otro

Fin  


(3) Desarrollar un algoritmo que me permita hallar el salario de los empleados de una empresa y me muestre la cantidad de salarios que superen los 700.000 $ y cuantos son menores a este.



Entero menor,mayor,salario
Cadena [5] resp

Inicio
menor<- 0
mayor<- 0

 Repita

  Escriba "Ingrese el salario del empleado : "
  Lea salario

  Llamar nueva_linea

   Si (salario > 700000) entonces
    mayor<- mayor + 1

   Sino
    menor<- menor + 1
Fin si

  Llamar nueva_linea

  Escriba " Desea seguir ingresando salarios ? "
  Lea resp

  Llamar nueva_linea

 Hasta (resp="No") o (resp="no")

 Llamar nueva_linea

 Escriba " Los cantida de salarios mayoreas a 700.000 son ", mayor

 Llamar nueva_linea

 Escriba " Los cantidad de salarios minimos a 700.000 son ", menor

Fin  


(4) //Declaración de Variables
Cadena [25] nombre 
Real nota1, nota2, nota3, notaFinal 
Inicio 
 //Inicio del ciclo Repita Repita //
Lectura de los datos de entrada
 llamar nueva_linea
 escriba "Ingrese el nombre del estudiante:" 
 lea nombre 
 escriba "Ingrese el valor de la primera nota:" 
 lea nota1 
 escriba "Ingrese el valor de la segunda nota:" 
 lea nota2
//Cálculo de la nota final 
 notaFinal <- (nota1 + nota2) / 2 
 //Escritura de la salida 
 llamar nueva_linea
 llamar nueva_linea 
 escriba "INFORMACION DEL ESTUDIANTE” 
 llamar nueva_linea 
 escriba "NOMBRE------>",nombre 
 llamar nueva_linea 
 escriba "NOTA FINAL-->",notaFinal 
 Si notaFinal < 3 Entonces 
 escriba "REPROBADO” 
 Sino escriba "APROBADO” 
 Fin Si 
 Hasta notaFinal < 2 
 //Fin del ciclo Repita 
Fin

CICLOS REPETITIVOS, HAGA PARA

Ciclo Haga Para.

Es prácticamente lo mismo que el mientras, la única variante es que el contador ya viene incluido en la declaración

Estructura

Para i<-1 hasta 30 Haga
instrucción
instrucción
instrucción
...
...
...
instrucción
fin para

ejemplo

(2) Comprar 9000 camisas, en un algoritmo secuencial se registran las 9000 camisas? para eso hacemos un ciclo.

cadena [20] camisa
entero i
inicio
Contador<-0
Para i<-0 hasta 9000 haga
escriba "ingrese camisa "
lea camisa
llamar nueva_linea
fin para
fin

(2) entero i,suma,numero
INICIO
suma<-0
para i<-1 hasta 5 haga
escriba "ingrese un numero:"
lea numero
suma<-suma+numero
fin para
escriba "la suma de los numeros es: ",suma

FIN

como podemos observar es mucho mas sencillo hacer este ejercicio en haga para que en el mientras.Esto solo lo menciono para que se den cuenta que con cada ciclo es mas facil o dificil hacer cada cosa



(3) algoritmo que muestre los primeros 10 numeros naturales y los sume 

entero num ,suma,i
inicio
num <-1
suma <-0
para i<-1 hasta 10 haga
escriba  num 
llamar nueva_linea
num <- 1 +num 
suma<- num +suma 
fin para
escriba "la suma total es: ",suma
fin  

como podemos observar tambien hay algoritmos que se pueden hacer atomaticos

(4)desarrollar un algoritmo que ingrese la cantidad de numeros deseados, los sume y les saque el promedio

entero num,suma,i,cant_n
real promedio
inicio 
escriba "ingrese la cantidad de numeros: "
lea cant_n
suma <-0
para i<-1 hasta cant_n haga
escriba "ingrese un numero: "
lea num
suma<-suma+num
escriba "lleva: ",suma
llamar nueva_linea
fin para
promedio<-suma/cant_n
escriba "el promedio es: ",promedio

fin 

(5)desarrollar un algoritmo que halle el total de las edades
de varios estudiantes y las cuales son ingresadas desde el teclado

entero edad,suma,i,cant_e
inicio
escriba "ingrese la cantidad de estudiantes: "
lea cant_e
suma <-0
para i<-1 hasta cant_e haga
escriba "ingrese una edad: "
lea edad 
suma <- suma +edad
fin para
escriba "la cantidad de estudiantes es: ",cant_e
llamar nueva_linea
escriba "la suma de los estudiantes es: ",suma
fin 

CICLOS REPETITIVOS, HAGA MIENTRAS

Ciclos Repetitivos.




Los ciclos repetitivos, son simplemente repetir las veces que sea necesario.

Estructura :


Mientras (condición) haga
Instrucción
Instrucción
Instrucción
.
.
.
Instrucción
fin mientras

Diagrama de Flujo:





Un ejemplo seria:

Comprar 9000 camisas, en un algoritmo secuencial se registran las 9000 camisas? para eso hacemos un ciclo.


Algoritmo secuencial:

cadena [20] camisa 
inicio
escriba "ingrese camisa : "
lea camisa
llamar nueva_linea
escriba "ingrese camisa : "
lea camisa
llamar nueva_linea
escriba "ingrese camisa : "
lea camisa
llamar nueva_linea
escriba "ingrese camisa : "
lea camisa

llamar nueva_linea
escriba "ingrese camisa : "
lea camisa

llamar nueva_linea
escriba "ingrese camisa : "
lea camisa

llamar nueva_linea
.
.
.
fin

con ciclo:

cadena [20] camisa
entero Contador
inicio
Contador<-0...................................................../*declaramos un contador, para llevar el                                                                                                   conteo del ciclo*/
mientras Contador<9000 haga......................../*el ciclo se repite siempre y cuando el                                                                                                    contador sea menor a 9000*/
escriba "ingrese camisa "
lea camisa
llamar nueva_linea
Contador<-Contador+1................................... /*Con esto, le vamos aumentando 1 unidad al                                                                                          contador, asignamos lo que llevaba para que                                                                                     no se reemplaze y le sumamos uno*/
fin mientras
fin

mucho más reducido la verdad.


(2) 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

(3) 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

(4) 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

(5)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
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