ALGORITMOS SECUENCIALES, CONDICIONALES Y REPETITIVOS
Es un método para resolver un problema mediante una serie
de pasos definidos, precisos y finitos.
ESTRUCTURA SECUENCIAL
Es aquélla en la que una acción (instrucción) sigue a
otra en secuencia. Las tareas se suceden de tal modo que la salida de una es la
entrada de la siguiente y así sucesivamente hasta el fin del proceso. La
estructura secuencial tiene una entrada y una salida. Su representación gráfica
es la siguiente:
Ejemplos:
1.
Obtener la suma
De dos números
cualesquiera
2.
Obtener y Desplegar el nombre y la edad de una persona
3.
Obtener y desplegar el nombre, dirección y estado civil de una persona
4.
Capturar el nombre y dos calificaciones de un alumno y desplegar el promedio de
estas.
5.
Obtener la suma y el promedio de cinco calificaciones que de un alumno
6.
Convertir dólares a pesos
7. Obtener
el descuento de un producto y desplegarlo
8.
Desplegar cuanto pagaría un cliente por una compra con descuento y cuanto seria
el cambio que recibiría en un pago en efectivo.
9.
Desplegar el sueldo neto de un empleado considerando impuestos.
Estructura Condicional:
Aunque en Pseudo-Código no encontramos una sintaxis como tal
pero podemos ajustarlo a lo que encontraremos en casi todos los lenguajes de
programación y en el uso de Software como PSeInt:
si (condición) Entonces
Instrucción o bloque de Instrucciones;
sino
Instrucción o bloque de Instrucciones;
fin-si
Instrucción o bloque de Instrucciones;
sino
Instrucción o bloque de Instrucciones;
fin-si
Ejemplo Condicionales en la vida real:
Deseas ir hacia el trabajo, normalmente lo haces en bus que se
tarda 45 minutos. pero te levantaste un poco tarde y solo faltan 15 minutos
para el ingreso a la oficina, tienes entonces dos caminos:
- Ir en bus y
llegar tarde.
- Ir en taxi y
llegar a tiempo.
En vista que no puedes faltar a las normas de tu empresa decides
tomar la opción de viajar en taxi y no usar el bus, ¿vez como las condiciones
entran en todas los aspectos de nuestra vida cotidiana?, ahora veamos como se
vería nuestro condicional en Pseudo-Codigo:
si (tiempo >=45)
Escribir “Tomar el bus”
sino
Escribir “Tomar un Taxi”
Fin-si
Escribir “Tomar el bus”
sino
Escribir “Tomar un Taxi”
Fin-si
Cabe recalcar que un condicional es una instrucción que nos
permite controlar el flujo de nuestros algoritmos, con el fin de realizar
acciones dependiendo de los valores que tengamos.
Para realizar comparaciones entre instrucciones debemos conocer los
operadores relacionales que nos permiten construir expresiones que puedan ser
verdaderas o falsas (Booleanas),
con el fin de verificar si son verdaderas o falsas, veamos cuales existen:
Operador
|
Significado
|
==
|
Igualdad
|
!=
|
Diferente
|
>
|
Mayor que
|
<
|
Menor que
|
>=
|
Mayor o igual
|
<=
|
Menor o igual
|
Veamos algunos ejemplos:
1 > 2 =
Falso
3 < 5 = Verdadero
(7 – 4) == 3 = Verdadero
17 >= (5 + 12) = Verdadero
3 < 5 = Verdadero
(7 – 4) == 3 = Verdadero
17 >= (5 + 12) = Verdadero
Podemos realizar las comparaciones que necesitemos en nuestros algoritmos, no
solo con números, sino también con variables, cadenas de caracteres, fechas,
etc.
Representación en Diagrama de Flujo
Los condicionales también cuenta con una forma de
representarlos en un diagrama de flujo y se hace mediante un diamante, del
cual se desprenden las opciones dependiendo lo que ocurra:
Ejemplo:
En conclusión los condicionales son instrucciones poderosas que nos permiten manipular
el flujo de nuestros algoritmos, con el fin de realizar tareas según los
valores que se estén manejando, busca situaciones en las cuales encuentres
condicionales en tu vida diaria, te aseguro que encontrarás por montón y así
mismo un programador los utiliza a diario en sus desarrollos.
Estructuras
Repetitivas (Bucles)
Un
bucle o lazo (Loop) es un segmento de un algoritmo o programa, cuya
instrucciones se repiten un número determinado de veces mientras se cumple una
determinada condición (existe o es verdadera la condición). SE debe establecer
un mecanismo para determinar las tareas repetitivas. Este mecanismo es una
condición que puede ser verdadera o falsa y que se comprueba una vez a cada
paso o iteración del bucle (total de instrucciones que se repiten en el bucle).
Un
bucle consta de tres partes:
·
decisión,
·
cuerpo del bucle,
·
salida del bucle.
El
bucle de la siguiente figura es infinito, ya que las
instrucciones (1), (2) y (3) se ejecutan indefinidamente, pues no existe salida
del bucle, al no cumplirse una determinada condición.
Si tras la lectura de la variable N se coloca una condición, el bucle
dejará de ser infinito y tendrá fin cuando la condición sea verdadera.
El diagrama de flujo escrito en pseudo código es aproximadamente
el siguiente:
Inicio
SUMA 0
1: leer N
Si N = 0 entonces
Escribir SUMA
Ir_a fin
Si_no
Suma suma + N
FIN_SI
IR_A 1
FIN
BUCLES ANIDADOS
Un bucle puede anidarse dentro de otro como se vio
en clase con los condicionales anidados (un si fin_si dentro
de otro si Fin_si)
Contadores
Un contador es una variable cuyo valor se incrementa o decremento en una
cantidad constante en cada vuelta.
La siguiente figura
contar
del 1 al 50
presenta un diagrama de flujo para un algoritmo que se desea repetir 50
veces; el contador se representa en este ejemplo con la variable CONT. La
instrucción que representa a un contador es la asignación CONT = CONT + 1.
La siguiente figura
Decrementar
desde N hasta 0
es otro ejemplo de un diagrama de flujo con contador; es este caso, negativo. Se dice
también descontar.
El contador puede ser positivo (incrementos, uno en uno) o negativo
(decrementos, uno en uno).
Importante acerca de
incrementos y decrementos:
En la primera Figura el contador
cuenta desde 1 al 50 y deja de contar cuando la variable CONT toma el valor 51
y se termina el bucle.
En la segunda Figura el contador
cuenta negativamente, o lo que es lo mismo, descuenta o decrementa; comienza a
contar en n y se decrementando hasta llegar a cero, en cuyo caso se termina el
bucle y se realiza la acción escribir.
Como se vio anteriormente la condición permite
terminar el bucle cuando ésta es verdadera (si)
ahora veremos las estructuras repetitivas que se
usarán en el curso de algoritmos:
Tipos de estructuras
repetitivas
Mientras Condicion Hacer
Fin_mientras
Desde Variable=inicio
Hasta Variable=Final hacer
Fin_desde
(La anterior también puede ser usada con la palabra
PARA en vez de DESDE ejemplo:
PARA Variable=inicio Hasta
Variable=Final hacer
Fin_PARA)
Repetir
Hasta Condicion
Hemos visto que las Estructura repetitivas son aquellas en las que especialmente se diseña para
todas aquellas
aplicaciones en las cuales una operación o conjunto de ellas deben
repetirse muchas veces.
asi los Bucles (lazos o
LOOPs) Son estructuras que repiten una secuencia de instrucciones un
numero determinado de veces.
Interacción: Es el hecho de repetir la ejecución de una secuencia de acciones; en otras
palabras el algoritmo repite muchas veces las acciones.
Al utilizar un bucle para sumar una lista de números, se necesita saber cuantos números se
han de sumar, para poder detenerlo en el momento preciso; las dos principales
preguntas ha realizarse en el diseño de un bucle son:
¿Que contiene el bucle? y ¿Cuántas
veces se debe repetir?
Casos Generales de Estructuras repetitivas
1) La condición de Salida del bucle se realiza al principio del bucle (estructura mientras) también
llamada PRE-CONDICIONAL
2) La condición de Salida se origina al final del bucle; el bucle se
verifica hasta que se verifique una
cierta condición
también llamada POST-CONDICIONAL (estructura Repetir Hasta).
3) La condición de salida se realiza con un contador que cuente el
numero de interacciones. ( i es un contador que
cuenta desde el valor inicial (vi.) hasta el valor final (vf) con
los incrementos que se consideren.)(estructura DESDE
o PARA)
Estructura mientras ("while")
Es aquella en que el cuerpo del bucle se repite mientras se cumple una determinada
condición. Cuando se ejecuta la acción mientras, la primera cosa que sucede es
que se evalúa la condición (una expresión booleana que
devuelve Verdadero o Falso), si se evalúa falsa ninguna acción
se tomara y el programa en la siguiente instrucción del bucle; si la expresión booleana es
verdadera, entonces se ejecuta el cuerpo del bucle, depuse del cual se evalúa de
nuevo la expresión booleana.
Esta expresión booleana se repite una y otra vez mientras la expresión booleana
(condición) sea verdadera
Estructura repetir ("repeat").
Si el valor de la expresión booleana es inicialmente
falso, el cuerpo del Bucle no se
ejecutara, por ello se necesitan de otros tipos de estructuras. Dicha estructura se
ejecuta hasta que cumpla una condicióndeterminada que se comprueba hasta el
final del bucle
Diferencias entre las estructuras mientras y
repetir
- La estructura mientras termina cuando la
condición es falsa, mientras que repetir termina cuando la condición
es verdadera.
- En la estructura repetir el cuerpo del bucle
se ejecuta siempre al menos una sola vez; por el contrario mientras es mas general y
permite la posibilidad de que el bucle pueda no ser ejecutado.
- Para usar la
estructura repetir debe
estar seguro de
que el cuerpo del bucle se repetirá al menos una sola vez.
Estructura desde/para ("for").
Son el numero total de veces que se desea ejecutar las acciones del Bucle (numero de
interacciones fijo), este ejecuta las acciones del cuerpo o del Bucle un numero
especifico de veces y de modo automático controla el numero de Interacciones o pasos
a través del cuerpo del bucle.
Ejemplos con
Mientras
Forma de Uso
Mientras condicion hacer
acción 1
acción 2
acción 3
....
acción n
Fin_Mientras
1.- Hacer un programa que cuente del uno al
10
Inicio
x= 1
Mientras x<=10 hacer
Escribir x
x=
x + 1
Fin_Mientras
Final
2.- Hacer un Programa que pida un
número y muestre los 10 siguientes números a el.
Inicio
leer x
Parada = x + 10
Mientras x<=Parada
hacer
Escribir x
x
= x + 1
Fin_Mientras
Final
3.- Hacer un programa que cuente del 20 a 1
en forma descendente
Inicio
x= 20
Mientras x>=1 hacer
Escribir x
x
= x - 1
Fin_Mientras
Final
4.- Realizar un algoritmo que muestre por
pantalla la tabla de multiplicar del número DOS en forma decreciente..
INICIO
n = 2
x = 12
mientras x >= 1 hacer
R <- n * x
Escribir x, n, R
x =- x - 1
fin_mientras
FIN
n = 2
x = 12
mientras x >= 1 hacer
R <- n * x
Escribir x, n, R
x =- x - 1
fin_mientras
FIN
5.- Hallar la suma de los números enteros del
1 al 50
Inicio
Numero = 1
Suma = 0
Mientras Numero <= 50 hacer
Suma = Suma + Numero
Numero = Numero + 1
Fin_mientras
Escribir Suma
Fin
Este ejercicio presenta una novedad SUMA = SUMA + NUMERO acá
el incremento no es de 1 en 1 si no de NUMERO en NUMERO se parece a un
contador pero no se le llama contador el nombre de esta forma se le conoce
como ACUMULADOR
Mientras los contadores acumulan de 1 en 1
los Acumuladores "ACUMULAN" de N en N.
6.- Diseñar un algoritmo que me permita
ingresar cualquier número y luego el algoritmo deberá calcular los
múltiplos menores que 100 del número ingresado.
Inicio
Inicio
Leer A
Mult = A
Mientras Mult <=100 hacer
Mientras Mult <=100 hacer
Escribir Mult
Mult = Mult + A
Fin_Mientras
Fin
Fin
7.- Dado a, b determinar el valor de la
división entera y el resto de la división entera de a, b
sin usar los operadores de DIV y MOD
Inicio
Leer a,b
cv = 0
mientras a >= b hacer
a = a - b
cv = cv + 1
fin_mientras
pe = cv
resto = a
Escribir pe , resto
Fin
sin usar los operadores de DIV y MOD
Inicio
Leer a,b
cv = 0
mientras a >= b hacer
a = a - b
cv = cv + 1
fin_mientras
pe = cv
resto = a
Escribir pe , resto
Fin
8.- Mostrar solo la parte decimal de
una división entre 2 números a y b sin usar DIV y MOD
Inicio
Leer a,b
cv = 0
mientras a >= b hacer
a = a - b
cv = cv + 1
fin_mientras
resto = a
Valor_decimal = resto / b
Leer a,b
cv = 0
mientras a >= b hacer
a = a - b
cv = cv + 1
fin_mientras
resto = a
Valor_decimal = resto / b
Escribe Valor_decimal
Fin
Fin
9.- Hacer un programa que calcule la suma,
suma de cuadrados y suma de cubos de los N primeros números naturales.
Uso de variables:
cantidad de números naturales= num_n
suma= s
suma de cuadrados= s_cuad
suma de cubos= s_cub
Inicio
Leer num_n
s = 0
s_cuad = 0
s_cub = 0
Uso de variables:
cantidad de números naturales= num_n
suma= s
suma de cuadrados= s_cuad
suma de cubos= s_cub
Inicio
Leer num_n
s = 0
s_cuad = 0
s_cub = 0
n = 1
Mientras n <= num_n hacer
s = s + num_n
s_cuad = s_cuad + (n * n)
s_cub = s_cub + (n * n * n)
fin_mientras
Escribir s, s_cuad, s_cub
Fin
Mientras n <= num_n hacer
s = s + num_n
s_cuad = s_cuad + (n * n)
s_cub = s_cub + (n * n * n)
fin_mientras
Escribir s, s_cuad, s_cub
Fin
Comentarios
Publicar un comentario