Prof. : Vctor Gavidia http://vmgsistemas.blogspot.
com/
UNIVERSIDAD NACIONAL EXPERIMENTAL
"FRANCISCO DE MIRANDA"
COMPLEJO DOCENTE EL SABINO
DEPARTAMENTO DE GERENCIA
UNIDAD CURRICULAR: INFORMATICA
GUIA 4
CORTE II: ** ESTRUCTURAS CONDICIONALES
** ESTRUCTURAS REPETITIVAS
Prof. : Vctor Gavidia http://vmgsistemas.blogspot.com/
ESTRUCTURAS CONDICIONALES.
Espaol: Si <Condicion> Entonces
Sino
Ingles: If <Condicion> Then
(Pascal) Else
Las estructuras condicionales comparan una variable contra otro(s) valor(es), para que en
base al resultado de esta comparacin, se siga un curso de accin dentro del programa. La
comparacin se puede hacer contra otra variable o contra una constante, segn se necesite. No
puede existir un punto y coma inmediatamente antes de una palabra ELSE ya que sera
interpretado como final del IF. Existen tres tipos bsicos: Simples, Dobles y Mltiples.
.
Simples:
Las estructuras condicionales simples se les conocen como Tomas de decisin. Estas tomas de
decisin tienen la siguiente forma:
Pseudocdigo: Diagrama de flujo:
Prof. : Vctor Gavidia http://vmgsistemas.blogspot.com/
si edad > = 18
entonces
edad
cual es tu edad?
edad
no si
Eres mayor de edad
Inicio
fin
Ejemplo:
Es importante ser ordenado en el cdigo que se escribe!
Realizar un algoritmo en donde se pide la edad del usuario; si es mayor de edad debe
aparecer un mensaje indicndolo. Expresarlo en Pseudocdigo y Diagrama de flujos.
PSEUDOCODIGO DIAGRAMA DE FLUJO
inicio algoritmo edad_persona;
definir
edad: entero;
inicio
escribir (cul es tu edad?);
leer(edad);
si edad >= 18 entonces
escribir (eres mayor de edad);
fin-si;
fin algoritmo edad_persona.
Prof. : Vctor Gavidia http://vmgsistemas.blogspot.com/
Dobles:
Las estructuras condicionales dobles permiten elegir entre dos opciones o alternativas posibles en
funcin del cumplimiento o no de una determinada condicin. Se representa de la siguiente forma:
Pseudocdigo: Diagrama de flujo:
Donde:
Si: Indica el comando de comparacin.
Condicin: Indica la condicin a evaluar.
Entonces: Precede a las acciones a realizar cuando se cumple la condicin.
Instruccin(es): Son las acciones a realizar cuando se cumple o no la condicin.
Si no: Precede a las acciones a realizar cuando no se cumple la condicin.
Dependiendo de si la comparacin es cierta o falsa, se pueden realizar una o ms acciones.
Prof. : Vctor Gavidia http://vmgsistemas.blogspot.com/
fin
not1, not2, not3, def: real
Introducir las notas
not1, not2, not3
Def:= (not1 + not2 + not3) / 3
Si def < 3
entonces
si
no
reprob el curso aprob el curso
inicio
Ejemplo:
Se pide leer tres notas de un alumno, calcular su definitiva en un rango del 0-5 y enviar un
mensaje donde diga si el alumno aprob o reprob el curso. Exprese el algoritmo usando
Pseudocdigo y diagrama de flujos.
PSEUDOCODIGO DIAGRAMA DE FLUJO
inicio algoritmo notas_alumno;
definir
not1, not2, not3: real;
def: real;
inicio
escribir (introducir las notas);
leer(nota1, nota2, nota3);
def:= (not1 + not2 + not3) /3
si def < 3 entonces
escribir (reprob el curso)
sino
escribir (aprob el curso);
fin-si
fin algoritmo notas_alumno.
Es importante ser ordenado en el cdigo que se escribe!
Prof. : Vctor Gavidia http://vmgsistemas.blogspot.com/
Mltiples:
Las estructuras de comparacin mltiples, son tomas de decisin especializadas que permiten
comparar una variable contra distintos posibles resultados, ejecutando para cada caso una serie
de instrucciones especficas. La forma comn es la siguiente:
Pseudocdigo: Diagrama de flujo:
Prof. : Vctor Gavidia http://vmgsistemas.blogspot.com/
fin
altura: entero
Ingrese la altura
altura
Si altura <= 150
entonces si
Persona de altura baja
inicio
Si altura <= 170
entonces
no
Persona de altura media
si
no
si
no
Persona alta
Si altura >= 171
entonces
Ejemplo
Se desea escribir un algoritmo que pida la altura de una persona, si la altura es menor o igual a
150 cm enve el mensaje: Persona de altura baja; si la altura est entre 151 y 170 escriba el
mensaje: Persona de altura media y si la altura es mayor o igual a 171 escriba el mensaje:
Persona alta. Exprese el algoritmo usando Pseudocdigo y diagrama de flujos.
PSEUDOCODIGO DIAGRAMA DE FLUJO
inicio algoritmo alturas;
definir
altura: entero;
inicio
escribir (ingrese la altura);
leer(altura);
si altura <= 150 entonces
escribir (persona altura baja)
sino
si altura <= 170 entonces
escribir (persona altura media)
sino
si altura >= 171 entonces
escribir (persona alta)
fin-si;
fin-si;
fin-si;
fin algoritmo alturas.
Es importante ser ordenado en el cdigo que se escribe!
Prof. : Vctor Gavidia http://vmgsistemas.blogspot.com/
fin
a, b, c: entero
Ingrese valores
A, b, c
Si (a>b) Y (a>c)
entonces si
A es el valor mayor
inicio
Si (b>a) Y (b>c)
entonces
no
B es el valor
mayor
si
no
C es el valor mayor
EJERCICIOS:
Desarrolle un algoritmo que le permita leer tres valores y almacenarlos en las variables A, B, C
respectivamente. El algoritmo debe indicar cul de los tres valores ledos es el mayor. Para el
desarrollo del presente ejercicio se asume que los tres valores ledos por el teclado son valores
distintos.
PSEUDOCODIGO DIAGRAMA DE FLUJO
inicio algoritmo mayor;
definir
a, b, c: entero;
inicio
escribir (ingrese valores);
leer(a, b, c);
si (a > b) y (a > c ) entonces
escribir (a es el valor mayor)
sino
si (b > a) y (b > c) entonces
escribir (b es el valor mayor)
sino
escribir (c es el valor mayor)
fin-si;
fin-si;
fin algoritmo mayor.
Es importante ser ordenado en el cdigo que se escribe!
Prof. : Vctor Gavidia http://vmgsistemas.blogspot.com/
fin
a, b, c: entero
Ingrese valores
a, b, c
si (a < b) Y (a > c ) OR
(a > b) y ( a < c) entonces
si
A es el del centro
inicio
si (b < a) Y (b > c ) OR
(b > a) y ( b < c) entonces
no
B es el del centro
si
no
C es el del centro
. Desarrolle un algoritmo que le permita leer tres valores y almacenarlos en las variables A, B, C
respectivamente. El algoritmo debe indicar cul de los tres valores ledos es el del centro. Para el
desarrollo del presente ejercicio se asume que los tres valores ledos por el teclado son valores
distintos.
PSEUDOCODIGO DIAGRAMA DE FLUJO
inicio algoritmo valor_centro;
definir
a, b, c: entero;
inicio
escribir (ingrese valores;)
leer(a, b, c);
si (a < b) y (a > c ) or
(a > b) y ( a < c) entonces
escribir (a es el valor del centro)
sino
si (b < a) y (b > c ) or
(b > a) y ( b < c) entonces
escribir (b es el valor del centro)
sino
escribir (c es el valor del centro);
fin-si;
fin-si;
fin algoritmo valor_centro.
Prof. : Vctor Gavidia http://vmgsistemas.blogspot.com/
ACUMULADORES Y CONTADORES
Estas dos palabras se usan mucho en programacin para referirse a variables que van
incrementando su valor a lo largo de la ejecucin del programa. Normalmente sern de tipo
numrico y no se tratan de ninguna forma en especial, solo que al asignarles un valor se hace de
forma que el anterior no se pierda.
Es muy importante inicializarlas de forma correcta siguiendo estas normas:
Si vamos a sumar o restar la inicializaremos a cero (0), al principio del algoritmo para que no
empiecen con valores residuales.
Si vamos a multiplicar las inicializamos a uno (1), porque si valen cero todo lo que
multipliquemos por ella seguir valiendo cero.
CONTADOR Son variables de tipo numrico, cuyo valor incrementa o decrementa a una cantidad
constante cada vez que se produce un suceso o accin. Se utilizan con la finalidad de contar
sucesos o acciones internas de un ciclo. La inicializacin consiste en asignarle al contador un
valor, y este debe situarse antes y fuera del ciclo.
Representacin:
NOMBRE DEL CONTADOR:= NOMBRE DEL CONTADOR + VALOR CONSTANTE
NOMBRE DEL IDENTIFICADOR
VALOR NUMERICO ENTERO
Ejemplo:
i:= i + 1 alumnos:= alumnos + 2
Definir
i: entero;
Inicio
i= 0;
i:= i + 1;
i:= 0 + 1;
i:= 1;
Definir
alumnos: entero;
Inicio
alumnos= 5;
alumnos:= alumnos + 2;
alumnos:= 5 + 2;
alumnos:= 5;
Prof. : Vctor Gavidia http://vmgsistemas.blogspot.com/
ACUMULADOR O TOTALIZADOR Es una variable que suma sobre si misma un conjunto de
valores para tener la suma de todos ellos en una sola variable.
Representacin:
NOMBRE DEL ACUMULADOR:= NOMBRE DEL ACUMULADOR + VALOR VARIABLE
NOMBRE DEL IDENTIFICADOR
VALOR NUMERICO ENTERO O REAL
Ejemplo:
total:= total + subtotal
sumaedades:= sumaedades + edad
alumnotas:= alumnotas + notas
Ej: total = 0
subtotal = 555.30
total:= total + subtotal
Definir
Total, subtotal: real;
Inicio
total= 0;
escribir ingrese subtotal;
leer(subtotal);
total:= total + subtotal;
total:= 0 + 555.30;
total:= 555.30;
La diferencia entre un contador y un acumulador es que mientras el contador va
aumentando de forma constante, el acumulador va aumentando en una cantidad variable.
Prof. : Vctor Gavidia http://vmgsistemas.blogspot.com/
ESTRUCTURAS REPETITIVAS
Son aquellas que crean un bucle (repeticin continua de un conjunto de instrucciones) en la
ejecucin de un programa respecto de un grupo de sentencias, en funcin de una condicin.
Las tres sentencias repetitivas son:
SENTENCIA DESDE - HASTA - HAGA (FOR - TO - DO)
SENTENCIA MIENTRAS - HAGA (WHILE - DO)
SENTENCIA REPETIR - HASTA (REPEAT UNTIL)
SENTENCIA DESDE - HASTA - HAGA (FOR - TO - DO) Es de tipo entero, se utilizan
cuando conocemos previamente el numero de veces que debe repetirse una o varias
instrucciones. Necesita una variable de control del bucle que es necesariamente de tipo ordinal, ya
que el bucle se ejecuta mientras la variable de control toma una serie consecutiva de valores de
tipo ordinal, comprendidos entre dos valores extremos (inferior y superior).
Formato ascendente: FOR variablecontrol:=valorinicial TO valorfinal DO.
Formato descendente: FOR variablecontrol:=valorincial DOWNTO valorfinal DO.
Formato: DESDE Variable de control := valor_inicial HASTA valor_final HAGA
ESPAOL INGLES (PASCAL)
DESDE VC := VI HASTA VF HAGA
INICIO
Instruccin1;
Instruccin2;
InstruccinN;
FIN.
FOR VC := VI TO VF DO
BEGIN
Instruccin1;
Instruccin2;
InstruccinN;
END.
DESDE, HASTA, HAGA: Son palabras reservadas invariables en la instruccin.
VC: Variable de Control.
VALOR_INICIAL O (VI): Es el valor mas bajo de la progresin.
VALOR_FINAL O (VF): Es el valor ms alto de la progresin
Prof. : Vctor Gavidia http://vmgsistemas.blogspot.com/
Ejemplo
Realizar un algoritmo con FOR, que permita introducir 3 notas con valores distintos de tipo real, y
que genere;
a) Mensaje de entrada y salida.
b) Calcular la sumatoria de las notas.
c) Calcular el promedio de las notas.
d) Mensaje si el alumno aprob o reprob.
e) Si la nota se encuentra fuera del rango de notas del 0 al 20, enviar el siguiente mensaje: nota
no existe.
inicio algoritmo_notas;
definir
contador: entero;
nota, suma, prom: real;
inicio
escribir (programa que genera el promedio de las notas de un alumno);
desde contador:= 1 hasta 3 haga
inicio
escribir (introducir la nota);
leer (nota);
suma:= suma + nota;
prom:= suma / 3;
fin;
inicio
escribir (la suma de las notas es: , suma);
escribir (el promedio de las notas es: , prom);
inicio
si prom <= 9.4 entonces
escribir (alumno reprobado)
sino
si (prom >= 9.5) Y (prom <= 20) entonces
escribir (alumno aprobado)
sino
escribir (nota no existe);
escribir (fin del programa, gracias);
fin-si;
fin-si;
fin algoritmo_notas;
Prof. : Vctor Gavidia http://vmgsistemas.blogspot.com/
SENTENCIA MIENTRAS - HAGA (WHILE - DO) Indica al ordenador que se ejecuten una
o ms sentencias mientras se cumpla una determinada condicin. La condicin viene determinada
por una variable o expresin booleana. Esta sentencia comprueba inicialmente si la condicin es
verdadera. Si la condicin es verdadera se ejecutan las sentencias mientras la condicin de su
enunciado sea verdadera y finaliza cuando la condicin es falsa. Dado que la condicin puede ser
falsa inicialmente, es decir antes de comenzar el bucle, habr casos en que el bucle no se ejecute.
CARACTERSTICAS DEL BUCLE WHIILE:
Se ejecuta mientras la condicin sea verdadera, y dentro del bucle debe existir, por lo
menos una sentencia que modifique el valor de la variable o expresin, de lo contrario se puede
producir una situacin de bucle infinito. Si la expresin lgica es falsa al comenzar el bucle, ste
no se realizar.
Formato MIENTRAS (CondicinEntrada) HAGA
ESPAOL INGLES (PASCAL)
MIENTRAS (CondicionEntrada) HAGA
INICIO
Instruccin1;
Instruccin2;
InstruccinN;
FIN;
WHILE (CondicionEntrada) DO
BEGIN
Instruccin1;
Instruccin2;
InstruccinN;
END;
MIENTRAS, HAGA (WHILE, DO): Son palabras reservadas invariables en la instruccin.
(CondicinEntrada): Es una expresin lgica simple o compuesta que debe ser evaluada y
dependiendo del resultado ingresar al ciclo o no.
Ejemplo
Realizar un algoritmo con WHILE, que permita introducir la nota de un alumno de tipo real, y que
genere;
a) Mensaje de entrada y salida.
b) Pida la nota por teclado.
c) En caso de ser la nota incorrecta mostrar un mensaje indicndolo.
d) Repetir el paso (b).
e) Muestre por pantalla si el alumno esta aprobado o reprobado.
Prof. : Vctor Gavidia http://vmgsistemas.blogspot.com/
inicio algoritmo nota_error;
definir
nota: real;
inicio
escribir(programa que muestra un error);
escribir(introducir nota);
leer(nota);
mientras (nota < 0) or (nota > 20) haga
inicio
escribir(error: los valores deben estar entre 0 y 20);
escribir(introducir nota nuevamente);
leer(nota);
fin;
si nota >= 9.5 entonces
escribir(alumno aprobado)
sino
escribir(alumno reprobado);
escribir(fin del programa, presione una tecla para salir);
fin-si;
fin algoritmo nota_error.
SENTENCIA REPETIR - HASTA (REPEAT UNTIL) Ejecuta las sentencias comprendidas
entre las palabras reservadas REPEAT y UNTIL hasta que la expresin o variable sea verdadera.
CARACTERSTICAS DEL BUCLE REPEAT:
Se ejecutan siempre una vez, por lo menos, y la terminacin del bucle se produce cuando el
valor de la expresin lgica o condicin de salida es verdadera. Se ejecuta hasta que la expresin
es verdadera, es decir, se ejecuta mientras la expresin sea falsa.
Formato REPETIR
.
.
.
HASTA (CondicinSalida);
ESPAOL INGLES (PASCAL)
REPETIR
Instruccin1;
Instruccin2;
InstruccinN;
HASTA <CondicionSalida>;
REPEAT
Instruccin1;
Instruccin2;
InstruccinN;
UNTIL <CondicionSalida>;
Prof. : Vctor Gavidia http://vmgsistemas.blogspot.com/
REPETIR, HASTA: Son palabras reservadas invariables en la instruccin.
(CondicinSalida): Es una expresin lgica simple o compuesta que debe ser evaluada y
dependiendo del resultado seguir en el ciclo o saldr de l.
Ejemplo
Realizar un algoritmo con REPEAT-UNTIL, que sume 2 numeros y que genere;
a) Mensaje de entrada y salida.
b) Sumatoria de los 2 numeros.
c) Enviar mensaje preguntando si desea continuar S/N, con otra suma.
d) Si la respuesta es N, que el programa realice la suma total de las sumas realizadas.
incio algoritmo mensaje;
definir
s, n2, n2, st: entero;
continuar: carcter;
inicio
escribir(muestra suma y suma total de 2 numeros);
st:= 0;
repetir
escribir(introducir primer numero);
leer(n1);
escribir(introducir segundo numero);
leer(n2);
s:= n1 + n2;
escribir(la suma de los 2 numeros es: , suma);
st:= st + s;
escribir(desea continuar con otra suma (S/N)? : );
leer(continuar);
hasta continuar= N;
escribir(la suma total es igual a: , st);
fin del algoritmo mansaje.