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:

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:

Veamos algunos ejemplos donde se aplique todo lo anterior:

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:
Se pide leer tres notas del alumno, calcular su definitiva en un rango de 0-5 y enviar un mensaje donde diga si el alumno aprobó o reprobó el curso. Exprese el algoritmo usando Pseudocódigo y diagrama de flujos.

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.
programacion else

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.
programacion siwtch

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++)
ritmo de iteracion

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).
condicionales y ciclos:bucle while
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

Entradas populares de este blog

Conceptos Básicos de Algoritmos