# data[].attributes.body
Para la realización de un algoritmo es necesario realizar una secuencia de pasos para llegar a cumplir con la resolución de un problema dado. Para ello, definiremos los siguientes pasos:

1. Análisis previo del Problema: Se debe realizar un análisis del funcionamiento del problema antes que se realice cualquier algoritmo.

2. Definición de Requerimientos: Los problemas a solucionar, esto es, por ejemplo, el sumar dos números, multiplicar dos matrices, ordenar una lista de números, generar un reporte, etc.

3. Identificación de los Módulos: La identificación de los módulos es tan importante como la identificación correcta de los requerimientos, esto porque la correcta identificación de los módulos simplifica considerablemente la realización de los algoritmos que darán solución a los requerimientos identificados en el paso anterior.

4. Realización de los Algoritmos: El algoritmo deberá cumplir con las características que se indicaron para posteriormente implementarse en un lenguaje de programación comprensible por una computadora.

5. Implementación de los Algoritmos: La implementación de los algoritmos se debe realizar en un lenguaje de programación para que una computadora pueda comprender las instrucciones que el algoritmo modela para así poder ejecutarlas y lograr el resultado esperado.

# data[].attributes.headline
La implementación es llamada igual Estructuras de Control de Flujo.

# data[].attributes.subject
La implementación es llamada igual Estructuras de Control de Flujo.

# data[].attributes.body
De acuerdo al tipo de problema elegiremos cual seria el proceso de la solución.

Secuencial.

Selectiva.

Repetitiva.

# data[].attributes.body
Es aquella en la que una instrucción o acción sigue a otra en
secuencia.

# data[].attributes.body
Son utilizadas para tomar decisiones lógicas. En estas se evalúa una condición en función del resultado de la misma ya sea que de como resultado verdadero o falso es como se elige uno u otro camino.

Pueden ser:

Simples.

Dobles.

Compuestas o Anidadas.

Múltiples.

# data[].attributes.body
Es un “If-Then" (“Si-Entonces”), el cual ejecuta una determinada acción cuando la condición resulta ser verdadera o falsa. Si la condición es verdadera, se ejecuta una acción o instrucción, sin embargo si la condición es falsa, no hace nada.

# data[].attributes.attachment_link.readable_text
Se identifican porque están compuestos únicamente de una condición.

La estructura si - entonces evalúa la condición y en tal caso:

Si la condición es verdadera, entonces ejecuta la acción Si (o acciones si son varias).

Si la condición es falsa, entonces no se hace nada.

Representación gráfica:

DONDE:

Condición: Expresa la condición o conjunto de condiciones a evaluar

Acción: Expresa la operación o conjunto de operaciones que se van a realizar si la condición resulta verdadera.

EJEMPLOS

Construir un algoritmo tal, que dado como dato la calificación de un alumno en un examen, escriba

DEFINICIÓN DEL PROBLEMA

El mismo enunciado.

ANÁLISIS DEL PROBLEMA

Salidas: mensaje de aprobado si se cumple la condición.

Entradas: calificación

Datos adicionales: un alumno aprueba si la calificación es mayor o igual que 7.

Sección de declaraciones:

Var Real: Cal

Donde Cal = calificación"Aprobado" en caso que esa calificación fuese mayor o igual que 7.

PRUEBA MANUAL:

# data[].attributes.attachment_link.description
Se identifican porque están compuestos únicamente de una condición. La estructura si - entonces evalúa la condición y en tal caso: Si la condición es verdadera, entonces ejecuta la acción Si (o acciones si son varias). Si la condición es falsa, entonces no se hace nada.

# data[].attributes.headline
Excelente, ahora si comprendo la diferencia de este a los demás.

# data[].attributes.subject
Excelente, ahora si comprendo la diferencia de este a los demás.

# data[].attributes.body
Una estructura selectiva
Doble, también conocida como “If - Then - Else” (“Si - Entonces - Sino”), en donde si la condición es verdadera se ejecuta la acción S1 y si es falsa la acción S2.

# data[].attributes.attachment_link.readable_text
Se identifican porque están compuestos únicamente de una condición.

La estructura si - entonces evalúa la condición y en tal caso:

Si la condición es verdadera, entonces ejecuta la acción Si (o acciones si son varias).

Si la condición es falsa, entonces no se hace nada.

Representación gráfica:

DONDE:

Condición: Expresa la condición o conjunto de condiciones a evaluar

Acción: Expresa la operación o conjunto de operaciones que se van a realizar si la condición resulta verdadera.

EJEMPLOS

Construir un algoritmo tal, que dado como dato la calificación de un alumno en un examen, escriba

DEFINICIÓN DEL PROBLEMA

El mismo enunciado.

ANÁLISIS DEL PROBLEMA

Salidas: mensaje de aprobado si se cumple la condición.

Entradas: calificación

Datos adicionales: un alumno aprueba si la calificación es mayor o igual que 7.

Sección de declaraciones:

Var Real: Cal

Donde Cal = calificación"Aprobado" en caso que esa calificación fuese mayor o igual que 7.

PRUEBA MANUAL:

# data[].attributes.attachment_link.description
Se identifican porque están compuestos únicamente de una condición. La estructura si - entonces evalúa la condición y en tal caso: Si la condición es verdadera, entonces ejecuta la acción Si (o acciones si son varias). Si la condición es falsa, entonces no se hace nada.

# data[].attributes.body
una estructura de selección “Si” puede contener más de dos alternativas de solución, esto es porque puede contener otra condición dentro de otra condición. Por lo tanto una estructura selectiva anidada constará
de una serie de estructuras Si anidadas, esto es una condición dentro de otra. De tal forma
que aparenta una escalera.

# data[].attributes.attachment_link.readable_text
DEFINICIÓN DEL PROBLEMA

El mismo enunciado.

ANÁLISIS DEL PROBLEMA.

Datos de salida: Pago.

Datos de entrada: número de horas trabajadas y pago por hora normal.

Datos Adicionales:

Lo primero que hay que determinar es si el trabajador trabajó horas extras o no.

Encontrar las horas extras de la siguiente forma:

Horas extras = horas trabajadas - 40

En caso que sií trabajó horas extras:

Si horas extras > 8 entonces a horas extras excedentes de 8 = horas extras -8 y pago por horas extras = pago por hora normal * 2 * 8 + pago por hora normal * 3 * horas extras excedentes de 8

De otra forma (solo horas al doble) pago por horas extras = pago por hora normal * 2 * horas extras.

Finalmente, pago total que recibirá el trabajador será:

Pago = pago por hora normal * 40 + pago por horas extras.

Si no trabajó horas extras tendremos:

Pago = pago por hora normal * horas trabajadas.

Definición de variables:

ht = horas trabajadas het = horas extras que exceden de 8

ph = pago por hora normal phe = pago por horas extras

he = horas extras pt = pago que recibe el trabajador

DECLARACIÓN DE VARIABLES:

ENTERO: ht, he, het REAL: ph, phe, pt

PSEUDOCÓDIGO:

Begin

Read (ht, ph)

If ht >40 then

he ß ht - 40

If he > 8 then

het ß he - 8

phe ß ph * 2 * 8 + ph * 3 * het

else

phe ß ph * 2 * he

End_if

pt ß ph * 40 + phe

else

pt <-- ph * ht

End_if

Print ("El pago total de horas trabajadas es:", pt)

Fin

# data[].attributes.attachment_link.description
DEFINICIÓN DEL PROBLEMA El mismo enunciado. ANÁLISIS DEL PROBLEMA. Datos de salida: Pago. Datos de entrada: número de horas trabajadas y pago por hora normal. Datos Adicionales: Lo primero que hay que determinar es si el trabajador trabajó horas extras o no.

# data[].attributes.body
Usando la estructura de decisión múltiple se evaluará una expresión que podrá tomar n valores distintos, 1, 2 , 3, ...., n  y según que elija uno de estos valores en la condición, se realizará una de las n acciones o lo que es igual, el flujo del algoritmo seguirá sólo un determinado camino entre los n posibles. Esta estructura se representa por un selector el cual si toma el valor 1 ejecutará la acción 1, si toma el valor 2 ejecutará la acción 2, si toma el valor N realizará la acción N.

# data[].attributes.attachment_link.readable_text
Con frecuencia es necesario que existan más de dos elecciones posibles. Este problema se podría resolver por estructuras selectivas simples o dobles, anidadas o en cascada, pero si el número de alternativas es grande puede plantear serios problemas de escritura y de legibilidad.

Usando la estructura de decisión múltiple se evaluará una expresión que podrá tomar n valores distintos, 1, 2 , 3, ...., n y según que elija uno de estos valores en la condición, se realizará una de las n acciones o lo que es igual, el flujo del algoritmo seguirá sólo un determinado camino entre los n posibles.

Esta estructura se representa por un selector el cual si toma el valor 1 ejecutará la acción 1, si toma el valor 2 ejecutará la acción 2, si toma el valor N realizará la acción N.

Así, si el selector toma el valor 1 se ejecutará la acción 1, si toma el valor 2 se ejecutará la acción 2, si toma el valor N, se realizará la acción N. De otra forma, si no es ningún caso de los anteriores, significa que no se cumplió ninguna de las anteriores, entonces se realizará la acción X.

Deberá reemplazar Selector por variables, propiedad o expresión que vaya a ser el valor clave.

EJEMPLO:

Diseñar un algoritmo tal que dados como datos dos variables de tipo entero, obtenga el resultado de la siguiente función:

DEFINICION DEL PROBLEMA

El mismo enunciado.

ANALISIS DEL PROBLEMA

Salidas: Resp

Entradas: V, num

Datos adicionales: según el valor que tome num, así encontraremos Resp con las fórmulas dadas.

Sección de Declaraciones:

Var integer: V, num

Real: resp

Donde resp será el resultado de la función, V y num los valores de las dos variables de entrada

PRUEBA MANUAL DEL ALGORITMO

ENTRADA

PROCESO

SALIDA

NUM

V

Switch (1) resp=100 * 4

Resp = 400

Resp

1

4

400

5

2

Switch(5) default:

Resp = 0

0

Para este ejercicio es recomendable agregar una validación antes de entrar al switch, ya que V nunca puede ser cero pues invalida la opción 3 al volverse indeterminada la división.

# data[].attributes.attachment_link.description
Con frecuencia es necesario que existan más de dos elecciones posibles. Este problema se podría resolver por estructuras selectivas simples o dobles, anidadas o en cascada, pero si el número de alternativas es grande puede plantear serios problemas de escritura y de legibilidad.

# data[].attributes.body
Son estructuras que se repiten un número determinado de veces, a los cuales también se les conoce como iteraciones.

Pueden ser:

While (mientras).

Do - While (hacer mientras).

For (desde / para).

# data[].attributes.body
Las estructuras de control repetitivas, son aquellas que permiten ejecutar un conjunto de instrucciones varias veces, de acuerdo al valor que genere la expresión relacional y/o lógica. Esto significa que una instrucción repetitiva permite saltar a una instrucción anterior para volver a ejecutarla. A las estas estructuras se les conoce también como ciclos o bucles, por su funcionamiento. Existen 3 estructuras repetitivas:

Mientras (While).

Hacer - Mientras (Do - While).

Desde / Para (For).

# data[].attributes.body
En su caso el cuerpo del bucle se repite mientras se cumple una determinada condición, en donde esta condición se evalúa mediante una expresión booleana (recordando que una condición booleana nos da como resultado Verdadero o Falso). Si se evalúa como falso no se toma ninguna acción y se sale del bucle, en caso que la expresión booleana arroje como resultado verdadero, se ejecuta el cuerpo del bucle, permitiendo volver a evaluar la expresión y volver a ejecutar el cuerpo del bucle mientras este sea Verdadero.

# data[].attributes.body
Es un método muy parecido al
While, con la diferencia de que este funciona al menos una vez. Esto quiere decir que este tipo de estructuras también se les conoce como bucles pre-test, en donde se requiere que el cuerpo del bucle se ejecute al menos una vez sea cual sea el valor de la expresión o condicho de evaluación.

# data[].attributes.body
Es una de las estructuras más utilizadas, La instrucción For ejecuta una secuencia de instrucciones o acciones un número determinado de veces. En su lógica se tienen tres secciones, en la primera de ellas se conoce el valor inicial, en donde se inicializa la variable de control dando pauta a donde comenzaremos el ciclo, Como segunda sección tenemos la
condicional y como tercera sección tenemos el incremento o  decremento de la variable de
control. Un for se puede representar de las siguientes maneras:

# data[].attributes.body
https://create.piktochart.com/output/46691706-my-visual

# data[].attributes.body
Las estructuras selectivas son aquellas que dirigen la ejecución de un programa hacia un grupo de sentencias del resultado de la condición. La estructura selectiva simple es aquella que evalua la condición, por verdadera ejecuta una instrucción y si es falsa no ejecuta ninguna instrucción.