Algoritmica 3.0
Algoritmica 3.0
ESTADO BOLIVAR
U.P.T.E.B
PROGRAMCION ESTRUCTURADA
Jorge Hernandez
C.I: 31.867.914
Jatniel Navas
C.I: 32.254.467
Las Estructura de Control de Algoritmo, son las estructuras que contienen las
instrucciones que permiten romper la secuencialidad de la ejecución de un programa;
esto significa que una estructura de control permite que se realicen unas instrucciones y
omitir otras, de acuerdo a la evaluación de una condición.
Todas las estructuras de control tienen un único punto de entrada. Las estructuras de
control se pueden clasificar en: secuenciales, iterativas y de control avanzadas. Esta es
una de las cosas que permiten que la programación se rija por los principios de la
programación estructurada.
Advertisement
Una estructura de control tiene un único punto de entrada y un único punto de salida.
Tales características permiten desarrollar de forma muy flexible todo tipo de algoritmos
aún cuando sólo existen tres tipos fundamentales de estructuras de control ques son
denominadas Selectiva, Secuencial y Interactiva.
Estructuras de decisión
Tipos.
if… else: viene a ser un estructura que se ejecuta en respuesta a la idea “si esto no se cumple
haz esto otro”. Por ejemplo, si se desea probar una entrada digital, y hacer una cosa si la
entrada fue alto o hacer otra cosa si la entrada es baja.
else: puede ir precedido de otra condición de manera que se pueden establecer varias
estructuras condicionales de tipo unas dentro de las otras (anidamiento) de forma que
sean mutuamente excluyentes pudiéndose ejecutar a la vez. Es incluso posible tener un
número ilimitado de estos condicionales. Recuerde sin embargo que sólo un conjunto
de declaraciones se llevará a cabo dependiendo de la condición probada.
switch..case: Al igual que if, switch..case controla el flujo del programa especificando
en el programa que código se debe ejecutar en función de unas variables. En este caso
en la instrucción switch se compara el valor de una variable sobre los valores
especificados en la instrucción case.
break es la palabra usada para salir del switch. Si no hay break en cada case, se
ejecutará la siguiente instrucción case hasta que encuentre un break o alcance el final
de la instrucción.
default es la palabra que se usa para ejecutar el bloque en caso que ninguna de las
condiciones se cumpla.
Sintaxis
### Python
```python
If condición:
Elif otra_condición:
Else:
```
### Java
```java
If (condición) {
} else if (otraCondición) {
} else {
```
### JavaScript
```javascript
If (condición) {
} else if (otraCondición) {
```
### C++
```cpp
If (condición) {
} else if (otraCondición) {
} else {
```
### PHP
```php
If ($condición) {
} elseif ($otraCondición) {
} else {
// bloque de código si ninguna condición es verdadera
```
Representación gráfica:
Podemos observar: El rombo representa la condición. Hay dos opciones que se pueden
tomar. Si la condición da verdadera se sigue el camino del verdadero, o sea el de la
derecha, si la condición da falsa se sigue el camino de la izquierda.
Se trata de una estructura CONDICIONAL SIMPLE porque por el camino del verdadero
hay actividades y por el camino del falso no hay actividades.
Por el camino del verdadero pueden existir varias operaciones, entradas y salidas,
inclusive ya veremos que puede haber otras estructuras condicionales.
Problema:
Ingresar el sueldo de una persona, si supera los 3000 pesos mostrar un mensaje en
pantalla indicando que debe abonar impuestos.
Diagrama de flujo:
Podemos observar lo siguiente: Siempre se hace la carga del sueldo, pero si el sueldo
que ingresamos supera 3000 pesos se mostrará por pantalla el mensaje "Esta persona
debe abonar impuestos", en caso que la persona cobre 3000 o menos no aparece nada
por pantalla.
Programa:
import java.util.Scanner;
float sueldo;
System.out.print("Ingrese el sueldo:");
sueldo=teclado.nextFloat();
if (sueldo>3000) {
La palabra clave "if" indica que estamos en presencia de una estructura condicional;
seguidamente disponemos la condición entre paréntesis. Por último encerrada entre
llaves las instrucciones de la rama del verdadero.
Es necesario que las instrucciones a ejecutar en caso que la condición sea verdadera
estén encerradas entre llaves { }, con ellas marcamos el comienzo y el fin del bloque del
verdadero.
Problema:
Realizar un programa que solicite ingresar dos números distintos y muestre por pantalla
el mayor de ellos.
Se hace la entrada de num1 y num2 por teclado. Para saber cual variable tiene un valor
mayor preguntamos si el contenido de num1 es mayor (>) que el contenido de num2, si
la respuesta es verdadera vamos por la rama de la derecha e imprimimos num1, en
caso que la condición sea falsa vamos por la rama de la izquierda (Falsa) e imprimimos
num2.
Programa:
import java.util.Scanner;
int num1,num2;
num1=teclado.nextInt();
num2=teclado.nextInt();
if (num1>num2) {
System.out.print(num1);
} else {
System.out.print(num2);
10
54
Las estructuras de decisión son aquellas que permiten elegir entre dos o más opciones
en función de una condición. La condición es una expresión lógica que puede ser
verdadera o falsa, y según su valor se ejecuta una opción u otra.
If – Else: es la estructura de decisión más simple, que permite elegir entre dos
opciones
Switch – Case: es otra forma de evaluar varias condiciones, pero en lugar de usar
expresiones lógicas, se usa una variable o expresión que puede tomar distintos valores.
Se usa cuando hay más de dos opciones posibles y son independientes entre sí.
Estas son las estructuras más comunes que podemos encontrar en los lenguajes de
programación, pero existen otras más complejas que veremos en próximos temas.
Este tipo de decisiones solo toma dos posibles respuestas: TRUE y FALSE, cuando el
resultado es verdadero se ejecutará una instrucción específica, en cambio si el
resultado es falso. Inmediatamente se finalizará el programa.
Si (condicion)
instruccion-1
instruccion-N
FinSi
FinAlgoritmo
Descripción narrada:
2. Calcular el promedio.
FinAlgoritmo
Pseudocódigo:
Leer(c1);
Leer(c2);
Leer(c3);
Leer(c4);
p = (c1 + c2 + c3 + c4) / 4;
FinAlgoritmo
condición lógica.
un grupo de sentencias.
Si ( decisión ) entonces
sentencias....
Si no
sentencias....
fin si
if ( expresión lógica){
sentencias....
else{
sentencias....
}
Ejemplo:
if ( Edad < 18 ){
printf(“Necesita autorizacion\n”);
else{
if ( Edad > 30 ){
printf(“No aplica\n”);
else{
printf(“Puede continuar\n”);
Segun
Caso valor1: Instruccion-1
Instruccion-n1
Romper
FinCaso
Instruccion-nk
Romper
FinCaso
EnOtroCaso: InstruccionIOC-1
InstruccionIOC-n
Romper
FinCaso
FinSegun
FinAlgoritmo
Si (condicion)
instruccion-t1
instruccion-tN
Otro
Si (condicion-f)
instruccion-f1
instruccion-fN
FinSi
FinSi
FinAlgoritmo
Ejemplo:
Descripción narrada:
2. Calcular el promedio.
FinAlgoritmo
If
If – Else
Switch – Break
Instrucción “If”: Nos permite evaluar si una condición es verdadera o falsa y en base al
resultado realizar una acción. Por ejemplo: Si (If) hace calor, usar camiseta. La
condición es una expresión del tipo booleana, es decir, solo puede ser verdadero (1) o
falsa (0). Esta instrucción no realiza ninguna acción si la condición es falsa, solo si es
verdadera. A continuación un ejemplo de evaluaciones de condiciones:
Código:
Instrucción 1
Instrucción 2
Instrucción 3
}
Si quieres utilizar una condición If en donde solo se ejecutará una acción se realiza de
la siguiente manera:
Código:
If(Condicion)
Instrucción;
Código:
If(Condicion)
Instrucción1;
Instrucción2;
Instrucción3;
Las estructuras de control iterativas se utilizan para resolver problemas donde sea
necesario repetir un determinado número de veces un conjunto de instrucciones.
También se les conoce como estructuras repetitivas.
Al igual que en las estructuras de control selectivas, se requiere definir la condición con
la que se evaluará y decidirá qué acciones se llevarán a cabo. Recordemos que para
construir las condiciones es necesario utilizar los operadores relacionales (de
comparación) y los operadores booleanos (lógicos).
Para poder trabajar con estas estructuras, es necesario comprender antes las variables
especiales de ciclos: Contadores y Acumuladores.
Una instrucción iterativa o repetitiva, también conocida como bucle, tiene la misión de
ejecutar las mismas instrucciones de código una y otra vez mientras que se cumpla una
determinada condición.
1 Inicialización.
3 Cuerpo.
4}
5 Finalización.
La Inicialización es el conjunto de instrucciones que se ejecutan para inicializar
las variables que participan de la iteración.
Bucle for
Una o mas instrucciones dentro del rectángulo de inicialización son seguidas por la
evaluación de la condición en una variable la cual puede asumir valores dentro de una
secuencia. En la figura, esto es representado por el símbolo del rombo.
suma <- 0
for (i in seq_along(observaciones)) {
media
## [1] 25.99
Los bucles for pueden ser anidados. En el siguiente fragmento de código creamos un
algoritmo que calcula la suma de dos matrices cuadradas:
for (i in 1:nrow(m1)) {
for (j in 1:ncol(m1)) {
suma[i, j] <- m1[i, j] + m2[i, j]
suma
El siguiente ejemplo sirve para ejemplificar el anidamiento de bucles for. Cada uno con
su propio bloque de instrucciones y manejado con su propio índice. Es decir, i controla
las filas de las matrices y j las columnas.
Bucle while
Si el resultado es FALSE (F), el bucle nunca será ejecutado. Esto es indicado por la
flecha de la derecha en la figura. En esta situación el programa ejecutará la primera
instrucción que encuentre después del bloque iterativo.
Por otro lado, si el resultado es TRUE (T), la instrucción o bloque de instrucciones del
cuerpo de while son ejecutadas. Esto sucederá hasta que la condición lógica sea
FALSE.
n=1
while (n <= 5) {
print(n)
n=n+1
## [1] 1
## [1] 2
## [1] 3
## [1] 4
## [1] 5
Bucle repeat
n=1
repeat {
if (n <= 10) {
print(n)
n=n+1
} else {
break
## [1] 1
## [1] 2
## [1] 3
## [1] 4
## [1] 5
## [1] 6
## [1] 7
## [1] 8
## [1] 9
## [1] 10
La sentencia break.
La sentencia continue.
La sentencia exit().
Sentencia goto.
Ciclo para: sintaxis.
Seguidamente, se muestra la estructura del bucle for. Este presenta tres partes, que
sirven para definir cómo se deben realizar las repetición de las instrucciones.
La segunda parte es la condición que se evaluará cada vez que comience una iteración
del ciclo. Contiene una expresión para decidir cuándo se ha de detener el bucle, o bien,
la condición para que continúe la ejecución de las instrucciones.
Por último se coloca la actualización del contador. En esta parte se puede incrementar
o decrementar el valor del contador, así se actualiza el valor de esta variable cada vez
que termina el ciclo.
Después del for se colocan las instrucciones que se ejecutarán en cada repetición,
acotadas entre llaves.
“Los ciclos anidados son ciclos que están dentro de otros ciclos. No hay límite para
definir ciclos anidados. Escribir ciclos anidados no es necesariamente un error. Escribir
ciclos dentro de ciclos puede ser necesario dependiendo de lo que estemos haciendo.
Un ciclo anidado se convierte en un error lógico cuando existe una manera más
optimizada de resolver el problema. Estos ciclos incrementan el tiempo de ejecución y
además incrementan la complejidad para leer, entender e interpretar el código. En este
código tenemos dos listas, una de marcas y una de años. Luego, se crea una lista
marca_anios inicialmente vacía y se itera la lista_marcas, luego la lista_anios y se
agrega una tupla de la marca y el año que están siendo iterados en ese momento a la
lista marca_anios. Estos ciclos permiten combinar los datos de las dos listas para
obtener una lista de tuplas de sus combinaciones. Inicialmente, lista_marcas,
lista_anios tienen tres valores cada una. Si corremos el código, vamos a…