Algoritmos Apuntes Bucles
Algoritmos Apuntes Bucles
Algoritmos Apuntes Bucles
INDICE DE CONTENIDO
CAPTULO I. CONCEPTOS GENERALES
1.1 Introduccin
2.2 Expresiones
4
5
9
10
12
0
12
12
12
Datos de
entrada
Proceso
Datos de
salida
Preciso
2
ALGORITMO
Definido
Finito
formado por
SENTENCIAS
Operadores: Son elementos que relacionan de forma diferente, los valores de una o
mas variables y/o constantes. Es decir, los operadores nos permiten manipular valores.
Aritmticos
Relacinales
Lgicos
Tipos de Operadores
=
Igual
Ejemplos:
Si a = 10, b = 20 y c = 30
a+b>c
a-b<c
a-b=c
a*b<>c
Falso
Verdadero
Falso
Verdadero
And
Or
Not
Operadores Lgicos
Y
O
Negacin
Operador AND
Operando1 Operando2 Resultado
V
V
V
V
F
F
F
V
F
F
F
F
Operador OR
Operando1 Operando2 Resultado
V
V
V
V
F
V
F
V
V
F
F
F
Operador NOT
Operando Resultado
T
F
F
T
Ejemplos:
Si a = 10, b = 20 y c = 30
(a < b) and (b < c)
V and
V
V
Prioridad de los Operadores Lgicos
Not
And
Or
Prioridad de los Operadores en General
1.- ( )
2.- ^
3.- *, /, Mod, Not
4.- +, -, And
5.- >, <, > =, < =, < >, =, Or
Ejemplos:
Si a = 10, b = 12, c = 13 y d =10
1)
2)
2.4 Identificadores
Nombre
Num_hrs
Calif2
Tipeadas. Nos referimos a los textos que aparecen como mensajes de salida en un
programa. Dichos mensajes son inalterables.
Ejemplo: Mostrar ("Hola")
Estructuras
algortmicas
Secuenciales
Asignacin
Entrada
Salida
Condicionales
Simples
Compuestas
Mltiples
Cclicas o
repetitivas
50
A
(receptora)
B
(emisora)
A B
50
50
- Entender
- Corregir
- Mantener
Ms fcil de:
Seguir las siguientes sugerencias:
10
Si <condicin> entonces
Accin(es)
Fin-si
3.3.2. 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:
Si <condicin>
entonces
Accin(es)
Fin-entonces
Sino
Accin(es)
Fin-si
Donde:
Si
Condicin
entonces..
accin(es)
sino
condicin
Ejemplo
COMIENZO
I1
MIENTRAS ( I < 7 ) HACER
CON-SELECCIN ( I ) HACER
CASO 2:
CASO 4:
CASO 6:
MOSTRAR(I ES PAR)
ROMPER
CASO 1:
CASO 3:
CASO 5:
MOSTRAR(I ES IMPAR)
ROMPER
OTROS CASOS:
MOSTRAR(I VALE 0)
FIN-SELECCIN
II+1
FIN-MIENTRAS
FIN
3.3.4 Uso de estructuras selectivas
Razonemos a partir de un ejemplo. Realizar un algoritmo que permita ingresar un
nmero e informe Nmero mayor a cero o Nmero menor o igual a cero segn
corresponda.
Anlisis del problema. El algoritmo deber:
1. Leer el nmero que ingresa el usuario
2. Seleccionar mediante una condicin si ese numero es o no mayor a cero
3. Informar con una de las leyendas enunciadas
Desarrollo del algoritmo en pseudocdigo
COMIENZO
{ declaro las variables a utilizar}
NUMERO
{ Ingreso de datos}
MOSTRAR (Ingrese un nmero:)
LEER (NUMERO)
{ Proceso de seleccin}
SI ( NUMERO > 0)
ENTONCES
MOSTRAR(Nmero mayor a cero)
FIN-ENTONCES
SINO
MOSTRAR(Nmero menor o igual a cero)
FIN-SI
FIN
Problemas Condicionales
Problemas Selectivos Simples
1) Determinar si un alumno aprueba a reprueba un curso, sabiendo que aprobara si su
promedio de tres calificaciones es mayor o igual a 7; reprueba en caso contrario.
Comienzo
Leer ( nota1 )
Leer ( nota2 )
12
Leer ( nota3 )
prom nota1 +nota2 + nota3 )/3
Si ( prom >= 7 )
entonces
Mostrar ( alumno aprobado )
Fin-entonces
si no
Mostrar ( alumno reprobado )
Fin-si
Fin
2) En un almacn se hace un 20% de descuento a los clientes cuya compra supere los
$1000 Cual ser la cantidad que pagara una persona por su compra?
Comienzo
Leer ( compra )
Si ( compra > 1000 )
entonces
desc compra * 0.20
fin-entonces
si no
desc 0
fin-si
tot_pag compra - desc
Mostrar ( tot_pag )
fin.
3) Un obrero necesita calcular su salario semanal, el cual se obtiene de la sig. manera:
Si trabaja 40 horas o menos se le paga $16 por hora
Si trabaja mas de 40 horas se le paga $16 por cada una de las primeras 40 horas y $20
por cada hora extra.
Comienzo
Leer (horas-trab )
Si ( horas-trab > 40 )
entonces
horas-extras horas-trab - 40
salario-sem horas-extras * 20 + 40 * 16
fin-entonces
si no
salario-sem horas-trab * 16
Fin-si
Mostrar ( salario-sem )
Fin
4) Que lea dos nmeros y los imprima en forma ascendente
Comienzo
Leer ( num1 )
Leer ( num2 )
Si ( num1 < num2 )
entonces
Mostrar ( num1, num2 )
Fin-entonces
si no
Mostrar ( num2, num1 )
fin-si
fin
13
fin
3.4. Estructuras Cclicas o Repetitivas
Se llaman problemas repetitivos o cclicos a aquellos en cuya solucin es
necesario utilizar un mismo conjunto de acciones que se puedan ejecutar una cantidad
especifica de veces. Esta cantidad puede ser fija (previamente determinada por el
programador) o puede ser variable (estar en funcin de algn dato dentro del
programa).Los ciclos se clasifican en:
3.4.1 Ciclos con un Numero Indeterminado de Iteraciones (Mientras, HacerMientras)
Son aquellos en que el numero de iteraciones no se conoce con exactitud, ya
que esta dado en funcin de un dato dentro del programa.
Mientras: Esta es una estructura que repetir un proceso durante N veces, donde
N puede ser fijo o variable. Para esto, la instruccin se vale de una condicin que es la
que debe cumplirse para que se siga ejecutando. Cuando la condicin ya no se cumple,
entonces ya no se ejecuta el proceso. La forma de esta estructura es la siguiente:
Mientras <condicin> Hacer
Accion1
Accion2
.
.
AccionN
Fin-mientras
3.4.2 Uso de estructuras repetitivas
Realizar un algoritmo que permita realizar 3 veces lo siguiente: ingresar 2 nmeros
calcular su suma e informar el resultado.
El algoritmo deber:
1. Leer el nmero que ingresa el usuario
2. Efectuar la suma y almacenarla
3. Mostrar el resultado almacenado
Para efectuar esto una sola vez bastara con el siguiente algoritmo:
COMIENZO
{ Ingreso de datos}
MOSTRAR (Ingrese primer nmero:)
LEER (NUMERO1)
MOSTRAR (Ingrese segundo nmero:)
LEER (NUMERO2)
{ Proceso de suma}
RESULTADO NUMERO1 + NUMERO2
{ Informe por pantalla}
MOSTRAR (El resultado de la suma es:)
MOSTRAR (RESULTADO)
FIN
Pero el algoritmo anterior slo efecta una vez la suma de dos nmeros, para que pueda
hacerlo ms veces deberamos repetir las sentencias de entrada, proceso y salida de
datos tantas veces como se solicite.
{ Ingreso de datos}
MOSTRAR (Ingrese primer nmero:)
LEER (NUMERO1)
MOSTRAR (Ingrese segundo nmero:)
LEER (NUMERO2)
{ Proceso de suma}
15
16
17
media sum / 2
Mostrar ( media, baja )
fin
6) Calcular e imprimir la tabla de multiplicar de un numero cualquiera. Imprimir el
multiplicando, el multiplicador y el producto.
Comienzo
Leer ( num )
Para ( X 1 a 10 ) Hacer
resul num * x
Mostrar ( num, * , X, = , resul )
Fin-para
fin.
CAPITULO iV. ALGORITMOS DE EJEMPLO
4.1 Ejemplo de uso de contadores y acumuladores
Ingresar 10 nmeros distintos de cero e informar el resultado de la suma de los
positivos y el producto de los negativos
COMIENZO
CONTADOR 0
SUMA 0
PRODUCTO 1
BORRAR PANTALLA
MIENTRAS(CONTADOR<10) HACER
MOSTRAR("Ingrese nmero:")
LEER(NUM)
{ bucle mientras que valida que el numero no sea cero}
MIENTRAS( NUM = 0) HACER
MOSTRAR("ERROR. Vuelva a ingresar")
LEER(NUM)
FINMIENTRAS
SI(NUM>0)
ENTONCES
SUMA SUMA+NUM
FIN-ENTONCES
SINO
PRODUCTOPRODUCTO*NUM
FINSI
CONTARCONTAR+1
FINMIENTRAS
MOSTRAR("Suma de positivos:", SUMA)
MOSTRAR("Producto de negativos:", PRODUCTO)
FIN
4.2 Uso de distintas estructuras repetitivas
Ingresar 10 nmeros distintos de cero. Sumar los positivos y obtener el producto de los
negativos
1. Uso de la estructura MIENTRAS
COMIENZO
canti0
suma0
19
prod1
MIENTRAS( canti<10) HACER
MOSTRAR("Ingrese un nmero")
LEER(num)
MIENTRAS(num=0) HACER
MOSTRAR("Error. Vuelva a ingresar:")
LEER(num)
FINMIENTRAS
SI(num>0)
ENTONCES
Suma suma+num
FIN-ENTONCES
SINO
Prod prod*num
FINSI
canticanti+1
FINMIENTRAS
MOSTRAR("La suma de los positivos es:",suma)
MOSTRAR("El producto de los negativos es:",prod)
FIN
2. Uso de la estructura HACER...MIENTRAS
COMIENZO
canti0
suma0
prod1
HACER
MOSTRAR("Ingrese un nmero")
LEER(num)
MIENTRAS(num=0) HACER
MOSTRAR("Error. Vuelva a ingresar:")
LEER(num)
FINMIENTRAS
SI(num>0)
ENTONCES
Suma suma+num
FIN-ENTONCES
SINO
Prod prod*num
FINSI
canticanti+1
MIENTRAS( canti<10)
MOSTRAR("La suma de los positivos es:",suma)
MOSTRAR("El producto de los negativos es:",prod)
FIN
3. Uso de la estructura PARA
COMIENZO
suma0
20
prod1
PARA(canti 0; canti<10;canti canti+1) HACER
MOSTRAR("Ingrese un nmero")
LEER(num)
MIENTRAS(num=0) HACER
MOSTRAR("Error. Vuelva a ingresar:")
LEER(num)
FINMIENTRAS
SI(num>0)
ENTONCES
Suma suma+num
FIN-ENTONCES
SINO
Prod prod*num
FINSI
FINPARA
MOSTRAR("La suma de los positivos es:",suma)
MOSTRAR("El producto de los negativos es:",prod)
FIN
4. Ingresar nmeros distintos de 0 (no se sabe cuntos). Sumar los positivos y
multiplicar los negativos.
COMIENZO
seguir 'S'
suma0
prod1
MIENTRAS( seguir = 'S' ) HACER
MOSTRAR("Ingrese un nmero")
LEER(num)
MIENTRAS(num=0) HACER
MOSTRAR("Error. Vuelva a ingresar:")
LEER(num)
FINMIENTRAS
SI(num>0)
ENTONCES
Suma suma+num
FIN-ENTONCES
SINO
Prod prod*num
FINSI
{sentencias de validacin de seguir}
HACER
MOSTRAR("Desea continuar(S/N):")
LEER(seguir)
MIENTRAS(seguir<>'S' AND seguir <> 'N')
FINMIENTRAS
MOSTRAR("La suma de los positivos es:",suma)
MOSTRAR("El producto de los negativos es:",prod)
FIN
21
22
PSEUDOCDIGO
- (resta)
(suma)
(divisin)
(multiplicacin)
Mod (resto de divisin entre enteros)
OPERADORES
(menor)
(menor o igual)
RELACIONALES
(mayor)
(mayor o igual)
(igual)
(distinto)
OPERADORES
Y (and)
LGICOS
O (or)
NO (not)
ENTRADA / SALIDA
MOSTRAR (nombre de variable o constante)
LEER (nombre de variable)
ESTRUCTURA
SI ( condicin )
SELECTIVA SIMPLE
ENTONCES
Sentencias
FINSI
ESTRUCTURA
SI ( condicin )
SELECTIVA COMPUESTA
ENTONCES
Sentencias
SINO
Sentencias
FINSI
ESTRUCTURAS
MIENTRAS ( condicin ) HACER
REPETITIVAS
Sentencias
FIN MIENTRAS
HACER
ESTRUCTURA DE
SELECCIN MLTIPLE
MANEJO DE PANTALLA
OTRAS NOTAS
Sentencias
MIENTRAS ( condicin )
CON-SELECCIN ( variable ) HACER
CASO constante1:
Sentencias
ROMPER
CASO constante2:
Sentencias
ROMPER
CASO constante3:
Sentencias
ROMPER
OTROS-CASOS:
Sentencias
FIN-SELECCIN
BORRAR PANTALLA
Las constantes de tipo carcter se colocan entre apstrofes (comillas
simples) y las constantes de cadena entre comillas. Es para diferenciar las
constantes de las variables
Para salir de una estructura repetitiva antes de que finalice (por su
condicin) o alcance el nmero de iteraciones indicados (en el para)
utilizamos la sentencia ROMPER.
Los comentarios los consignamos entre llaves { .... }
23