Estructuras Secuenciales y Condicionales
Estructuras
Secuenciales y Condicionales
Estructuras
Secuenciales:
La estructura
secuencial es aquella 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.
Una
estructura de programa es secuencial si se ejecutan una tras otra a modo de
secuencia, es decir que una instrucción no se ejecuta hasta que finaliza la
anterior.
Ejemplo:
INPUT x
INPUT y
auxiliar= x
x= y
y= auxiliar
PRINT x
PRINT y
Esta
secuencia de instrucciones permuta los valores de x e y,
con ayuda de una variable auxiliar, intermedia.
·
1º Se guarda una copia
del valor de x en auxiliar.
·
2º Se guarda el valor
de y en x, perdiendo su valor anterior, pero se
mantiene una copia del contenido en auxiliar.
·
3º Se copia a y el
valor de auxiliar, que es el valor inicial de x.
·
El resultado es el
intercambio de los valores entre x e y, en tres
operaciones secuenciales
"Son problemas en los
que, para su solución se emplea una serie de acciones ejecutadas
invariablemente en un orden secuencial."
Las tareas suceden de
tal modo que la salida de una es la entrada de la siguiente y así sucesivamente
hasta el fin del proceso.
Dentro
de este tipo podemos encontrar operaciones de inicio/fin, inicialización de
variables, operaciones de asignación, cálculo, sumarización, etc.
Este
tipo de estructura se basa en las 5 fases de que consta todo algoritmo o
programa:
1. Definición de variables (Declaración)
2. Inicialización de variables.
3. Lectura de datos
4. Cálculos
5. Salida
Componentes:
Asignación
La
asignación consiste, en el paso de valores o resultados a una zona de la
memoria. Dicha zona será reconocida con el nombre de la variable que recibe el
valor. La asignación se puede clasificar de la siguiente forma:
• Simples: Consiste en pasar un valor constate a una variable (a=15)
• Contador: Consiste en usarla como un verificador del número de veces que se
realiza un proceso (a=a+1)
• Acumulador: Consiste en usarla como un sumador en un proceso (a=a+b)
• De trabajo: Donde puede recibir el resultado de una operación matemática que
involucre muchas variables (a=c+b*2/4).
Lectura
La
lectura consiste en recibir desde un dispositivo de entrada (p.ej. el teclado)
un valor. Esta operación se representa en un pseudocódigo como sigue:
Leer a, b
Donde “a” y “b” son las variables que recibirán los valores
Escritura
Consiste
en mandar por un dispositivo de salida (p.ej. monitor o impresora) un resultado
o mensaje. Este proceso se representa en un pseudocódigo como sigue:
Escribe
“El resultado es:”, R
Donde “El resultado es:” es un mensaje que se desea aparezca y R es una
variable que contiene un valor.
DECLARACIÓN
DE VARIABLES Y CONSTANTES
La declaración de variables es un proceso
que consiste en listar al principio del algoritmo todas las variables que se
usarán, además de colocar el nombre de la variable se debe decir qué tipo de
variable es.
Contador: ENTERO
Edad, I: ENTERO
Direccion : CADENA_DE_CARACTERES
Salario_Basico : REAL
Opcion : CARACTER
En la anterior declaración de variables Contador, Edad e I son declaradas de
tipo entero; Salario_Basico es una variable de tipo real, Opcion es de tipo
carácter y la variable Direccion está declarada como una variable alfanumérica
de cadena de caracteres.
En el momento de declarar constantes debe indicarse que lo es y colocarse su
respectivo valor.
CONSTANTE Pi 3.14159
CONSTANTE Msg Presione una tecla y continue
CONSTANTE ALTURA 40
Ejemplos
Los
algoritmos que necesitan de estructuras secuenciales para su solución son los
mas difíciles de comprender y mas sencillos de identificar los procesos que
realizará el programa que nos llevarán a la solución del mismo.
En
algunos algoritmos se omite la declaración de variables, en casos que el
algoritmo no es complicado.
Ejercicio
1
Hacer
el rastreo manual para:
a = 2
a = a + 1
b = a * 2
b = b – 1
c = a + 2 * b
Presentar "c".
RASTREO:
Para el rastreo hay que asignarle a cada línea un número, de la siguiente
manera, de antemano ya nos habremos fijado que el valor de salida es el de la variable
c, el problema sería saber el valor de esta variable c que se mostrará
finalmente.
1) a = 2
2) a = a + 1
3) b = a * 2
4) b = b – 1
5) c = a + 2 * b
6) Presentar "c".
Línea
1: a=2
Línea 2: a=2+1=3
Línea 3: b=3*2=6
Línea 4: b=6–1=5
Línea 5: c=3+2*5=13
Línea 6: Se presenta 13
El valor de la variable c será 13.
Ejercicio
2
Hacer
el algoritmo para escribir un programa que evalúe la expresión
Solución: observe que los valores de ingreso serán para las variables x,
w.
Algoritmo
Inicio
Declare Resultado, x, w
Leer x,w
Resultado (x+w)/(2*w)
Mostrar Resultado
Fin
Variables
resultado: valor de la expresión luego de ser evaluada.
x: guarda un valor numérico ingresado.
: guarda un valor numérico ingresado.
Programa
#include<stdio.h>
main(void)
{float resultado,x,w;
//se escriben dos valores separados por la barra espaciadora
printf("ingrese el valor de x , también de w \n");
//se leen o capturan dos valores escritos en las variables x y w.
scanf("%f;%f",&x,&w);
//Se evalúa la expresión y el resultado es asignado a la variable resultado.
resultado=(x+w)/(2*w);
//se imprime el valor de la variable resultado.
printf("%f",resultado);}
Estructuras Condicionales:
Estructuras
Secuenciales y Condicionales
INPUT x
INPUT y
auxiliar= x
x= y
y= auxiliar
PRINT x
PRINT y
2. Inicialización de variables.
3. Lectura de datos
4. Cálculos
5. Salida
Ejemplos
Las estructuras condicionales comparan una variable contra otro(s)valor (es), para que en base al resultado de esta comparación, se siga un curso de acción dentro del programa. Cabe mencionar que la comparación se puede hacer contra otra variable o contra una constante, según se necesite. Existen tres tipos básicos, las simples, las dobles y las múltiples.
Simples:
Las estructuras condicionales simples se les conoce como Tomas de decisión. Estas tomas de decisión tienen la siguiente forma:
Pseudocódigo: | Diagrama de flujo: |
Dobles:
Las estructuras condicionales dobles permiten elegir entre dos opciones o alternativas posibles en función del cumplimiento o no de una determinada condición. Se representa de la siguiente forma:
Pseudocódigo: | Diagrama de flujo: |
Donde:
Si:Indica el comando de comparación
Condición: Indica la condición a evaluar
Entonces: Precede a las acciones a realizar cuando se cumple la condición
Instrucción(es):Son las acciones a realizar cuando se cumple o no la condición
si no:Precede a las acciones a realizar cuando no se cumple la condición
Dependiendo de si la comparación es cierta o falsa, se pueden realizar una o más acciones.
Múltiples:
Las estructuras de comparación múltiples, son tomas de decisión especializadas que permiten comparar una variable contra distintos posibles resultados, ejecutando para cada caso una serie de instrucciones especificas. La forma común es la siguiente:
Pseudocódigo: | Diagrama de flujo: |
Múltiples (En caso de):
Las estructuras de comparación múltiples, es una toma de decisión especializada que permiten evaluar una variable con distintos posibles resultados, ejecutando para cada caso una serie de instrucciones especificas. La forma es la siguiente:
Pseudocódigo: | Diagrama de flujo: |
Realizar un algoritmo en donde se pide la edad del usuario; si es mayor de edad debe aparecer un mensaje indicándolo. Expresarlo en Pseudocódigo y Diagrama de flujos.
Pseudocódigo: | Diagrama de flujo: |
Pseudocódigo:
INICIO
Not1, Not2, Not 3 :REAL
Def: REAL
LEA Nota1, Nota2, Nota3
Def ß (Not1 + Not2 + Not3) /3
Si Def < 3 entonces
Escriba Reprobó el curso
Sino
Escriba Aprobó el curso
Fin-Si
FIN
Diagrama de flujo:
Se desea escribir un algoritmo que pida la altura de una persona, si la altura es menor o igual a 150 cm envíe 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 al 171 escriba el mensaje: Persona alta. Exprese el algoritmo usando Pseudocódigo y diagrama de flujos.
Pseudocódigo:
INICIO
Altura: ENTERO
ESCRIBA Cuál es tu altura?
LEA Altura
Si Altura <=150 entonces
ESCRIBA persona de altura baja
Sino
Si Altura <=170 entonces
ESCRIBA persona de altura media
Sino
Si Altura>170 ENTONCES
ESCRIBA persona alta
Fin-Si
Fin-Si
Fin-Si
FIN
¡Es importante ser ordenado en el código que se escribe!
Diagrama de flujo:
Dado un numero entre 1 y 7 escriba su correspondiente día de la semana así:
1- Lunes 2- Martes 3- Miércoles 4- Jueves 5- Viernes 6- Sábado 7- Domingo
Exprese el algoritmo usando Pseudocódigo y diagrama de flujos.
Pseudocódigo:
INICIO
Dia: ENTERO
ESCRIBA Diga un número para escribir su día
LEA Dia
En-caso-de Dia haga
Caso 1: ESCRIBA Lunes
Caso 2: ESCRIBA Martes
Caso 3: ESCRIBA Miércoles
Caso 4: ESCRIBA Jueves
Caso 5: ESCRIBA Viernes
Caso 6: ESCRIBA Sábado
Caso 7: ESCRIBA Domingo
SINO: ESCRIBA Escribió un numero fuera del rango 1-7
Fin-Caso
FIN
Diagrama de flujo:
¿Qué son los condicionales y ciclos?
Un condicional, como su nombre lo indica, es una condición para discernir entre una opción u otra, y en el proceso mental normalmente se manifiesta con un “Si”; por ejemplo: Si (va a llover), coge el paraguas.
Operadores lógicos
Para crear condiciones, por muy simples que sean, se necesitan los operadores lógicos. A continuación voy a explicarlos de modo que, después de leer este artículo, puedas escribir condiciones ajustadas a lo que necesites.
== significa “igual”. If x==y, significa “si x es igual a y”
> significa “mayor que”. If x>y, significa “si x es mayor que y”
< significa “menor que”. If x<y, significa “si x es menor que y”
!= significa “si es distinto”. If x!=y, significa “si x es distinto de y”
&& significa “Y”, la conjunción copulativa; es decir: If (x==y) && (x==z), significa “si x es igual a y Y x igual a z”
|| significa “O”, la conjunción adversativa; es decir, If (x==y) || (x==z), significa “si x es igual a y O x igual a z”
IF
Sintácticamente, es la palabra reservada para desencadenar el poder de los condicionales en el código.
ELSE
Expresa “en el caso contrario”. Siguiendo con el ejemplo anterior de la lluvia: if(va a llover) coge el paraguas else coge el bañador.
SWITCH
Es una estructura de control diseñada para diferentes condiciones ligadas a una decisión. Básicamente, es como poner una pila de IF, que sería más eficiente en cuanto a rendimiento, pero haría que tu código fuera ilegible, así que… ¡no es una opción!
Su sintaxis se basa en las palabras switch (variable) y case. Estos últimos plantean los casos en los que el código se dispara: si el case está a 1 y la variable contiene ese valor, se disparará el código que esté dentro de él. Cada uno de los casos se delimita con la palabra reservada break.
BUCLE FOR
En mi opinión, es el “rey de los ciclos”, porque con esta estructura se puede hacer cualquier cosa. Literalmente, todo lo que puedas hacer con los demás bucles se puede hacer con este ciclo. Ahora bien, si no quieres acabar escribiendo un código malo, será mejor que aprendas los demás bucles y que los uses cuando toque.
La sintaxis es la siguiente: for(condición inicial; condición de parada; ritmo de iteración). No te preocupes si aún no entiendes del todo lo que vas leyendo, voy a explicar poco a poco en qué consiste cada uno de los conceptos que he planteado en la definición del bucle for.
Condición inicial: como todo en esta vida tiene un principio y un fin, este es el principio del bucle. Si, por ejemplo, pones la x=0, el bucle empezará en 0, así que vamos completando: for(x=0;condición de parada; ritmo de iteración).
Condición de parada: ¿te acuerdas eso de que todo tiene un principio y un fin? Pues, bien, este es el fin. Si, por ejemplo, pones x<10, la parada se producirá cuando la x llegue a 10.
for(x=0;x<10; ritmo de iteración).
Ritmo de iteración: básicamente, es el ritmo al que se consume el bucle. Si, por ejemplo, pusiéramos x=x+2, el bucle itera de 2 en 2, aunque lo más común es que se haga de 1 en 1 con la siguiente sintaxis x++.
for(x=0;x<10;x++)
BUCLE WHILE
El bucle while es más sencillo de entender. Si has entendido el bucle for, este también será fácil. Básicamente, esta es una estructura iterativa a la que solo hay que pasarle una condición de parada: while(condicion de parada).
Además, aprovecha para introducir el concepto de contador, el cual es muy útil en este tipo de bucles, ya que a diferencia del bucle for, el while no tiene ritmo de iteración.
Comentarios
Publicar un comentario