0% encontró este documento útil (0 votos)
193 vistas30 páginas

Introducción a Algoritmos Básicos

Este documento introduce los conceptos de algoritmo, pseudocódigo y diagramas de flujo. Explica que un algoritmo es una secuencia de pasos para resolver un problema y que puede aplicarse a situaciones de la vida cotidiana, no solo a problemas computacionales. Describe los componentes básicos de un algoritmo como variables, estructuras secuenciales, condicionales y de repetición. Presenta ejemplos para ilustrar estos conceptos.

Cargado por

foxblue280
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
193 vistas30 páginas

Introducción a Algoritmos Básicos

Este documento introduce los conceptos de algoritmo, pseudocódigo y diagramas de flujo. Explica que un algoritmo es una secuencia de pasos para resolver un problema y que puede aplicarse a situaciones de la vida cotidiana, no solo a problemas computacionales. Describe los componentes básicos de un algoritmo como variables, estructuras secuenciales, condicionales y de repetición. Presenta ejemplos para ilustrar estos conceptos.

Cargado por

foxblue280
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

Técnico en Informática Personal y Profesional

ALGORITMO, PSEUDOCÓDIGO Y DIAGRAMAS DE FLUJO: UNA


INTRODUCCIÓN
Un algoritmo es una secuencia finita (limitada) de pasos ordenados para la
resolución de un problema.

Como lo dice su definición es una serie de pasos o instrucciones que utilizamos


para resolver una determinada situación.

Este término no solamente se aplica a problemas computacionales, sino que es


válido para cualquier tipo de situación de la vida cotidiana. Por ejemplo a la hora de
cocinar (situación) utilizamos una receta (algoritmo) para llevar a cabo el proceso. A la
hora de armar o instalar algún aparato electrónico leemos el manual de instrucciones,
y de la misma manera aplicamos algoritmos a casi todo lo que realizamos.

EJEMPLO:

PROBLEMA: Abrir una puerta cerrada con llave

1) Tomar el manojo de llaves del bolsillo


2) Seleccionar la llave que corresponda
3) Introducir la llave en la cerradura
4) Girar la llave en sentido anti-horario
5) Etc.

Puede parecer un ejemplo muy básico, pero es algo que realizamos


prácticamente todos los días. Y aunque no necesitamos de ningún manual, y hasta ni
siquiera necesitamos pensar en hacerlo, es un algoritmo que ya tenemos incorporado
y lo aplicamos de manera inconsciente, es decir nuestro cerebro esta “programado”
para realizar esas acciones.

De mas esta decir que la computadora no comprende ningún lenguaje humano,


es por eso que un programa informático debe estar escrito en lenguaje de maquina
(unos y ceros). Por supuesto que no somos nosotros quienes escribimos en ese
lenguaje, sería una tarea muy tediosa y molesta. Los programadores escriben en
algún lenguaje de programación (C++, Java, Visual Basic, etc) que resulta mucho más
amigable, y este luego es traducido por un programa a instrucciones de máquina para
que la computadora sea capaz de leerlo y ejecutarlo.

VARIABLES
Antes de comenzar a explicar cómo se desarrolla un algoritmo necesitamos
definir el término variable. Se trata de un símbolo que representa a un elemento no
definido dentro de un determinado conjunto.

Por ejemplo en matemática solemos utilizar el símbolo x para representar un


valor dentro del conjunto de números. Como la misma palabra lo indica el valor x
puede variar. Es decir, su valor no se encuentra explicito, sino que puede tomar
cualquier valor (numérico) dependiendo de diversos factores.

En programación una variable, representa un espacio en memoria ram, al que le


podemos asignar diferentes valores (datos) de manera temporal. Las variables pueden
ser de diferentes tipos, es decir representar elementos dentro de diferentes conjuntos.

Estructura de Datos – Revisión 1


Técnico en Informática Personal y Profesional

Existen en programación tres tipos básicos de datos; numéricos, alfanuméricos y


lógicos o booleanos.

El tipo de dato numérico, a su vez puede dividirse en números enteros y


números con coma (reales). Por ejemplo, decimos que 54 es un numero entero, y 45,
32 es un número real.

Una variable alfanumérica puede contener cualquier carácter o cadena de


caracteres que admita nuestra computadora. Por ejemplo, “Hola que tal”, “a”, “4jks”,
“123”, etc.

Una variable lógica o booleana puede contener solo dos valores diferentes;
verdaderos o falsos.

Cabe destacar que una variable puede valores de un solo tipo de datos. Es
decir, a una variable de tipo entera no podemos asignarle una cadena de caracteres,
solo números enteros.

Imaginemos una variable como una botella. El contenido de la misma puede


variar (agua, gaseosa, jugo, etc), pero su tipo de contenido siempre va ser líquido.
Sabemos que en realidad podemos colocar otra cosa, arena por ejemplo, pero no es
el fin para el que fue creada.

Según el Teorema de la programación estructurada, todo problema puede ser


resuelto aplicando solamente tres tipos de acciones o estructuras básicas.

 Estructura simple o secuencial (una acción tras otra)


 Estructura condicional (se realiza una acción u otra dependiendo de una
condición)
 Estructura de repetición (una misma acción es repetida varias veces)

En la estructura más básica, se trata de realizar una acción tras otra. Es decir no
se ejecuta una acción (en programación sentencia), hasta haber finalizado la anterior.

Podemos identificar tres tipos de sentencias simples:

LECTURA: Se lee un determinado valor desde el teclado y lo almacenamos en


una variable, en este caso la variable n.

PSEUDOCÓDIGO:

Leer (n)

Si el usuario ingresa el valor 10 por teclado la variable n, pasa a valer 10

ESCRITURA: Mostramos por pantalla una frase, el contenido de alguna variable, o


ambas

PSEUDOCÓDIGO:

Escribir (“Hola”, a)

Estructura de Datos – Revisión 2


Técnico en Informática Personal y Profesional

Se escribe por pantalla la palabra “Hola” más el contenido de a

Ejemplo: Si a vale “Pepe” en pantalla se mostrara “Hola Pepe”

ASIGNACIÓN: Se le asigna a una variable el contenido de otra variable, el


resultado de alguna operación aritmética o lógica, o algún valor en particular

PSEUDOCÓDIGO:

ab

La variable a pasa a contener lo mismo que contiene la variable b

Ejemplo: si b vale 5, a vale 5 también luego de realizar esta sentencia.

Veamos algunos ejemplos de algoritmos simples para tratar de dejar en claro lo


visto hasta ahora. Por ahora no veremos ningún lenguaje de programación en
particular si no que vamos a utilizar diagramas y pseudocódigos para facilitar la
comprensión de los algoritmos.

EJEMPLOS DE ALGORITMOS:

PROBLEMA 1: Realizar un algoritmo que pida al usuario su nombre y luego


escriba en pantalla un saludo.

PSEUDOCÓDIGO:

1) Inicio
2) Mostrar (“Ingrese su
nombre”)
3) Leer (nombre)
4) Mostrar (“Hola”, nombre)
5) Fin

PROBLEMA 2: Realizar un algoritmo que solicite al usuario su edad y muestre por


pantalla cuantos días ha vivido aproximadamente

Estructura de Datos – Revisión 3


Técnico en Informática Personal y Profesional

PSEUDOCÓDIGO:

1) Inicio
2) Mostrar (“Ingrese su edad”)
3) Leer (edad)
4) Días  edad * 365
5) Mostrar (“Ud., ha vivido”, Días, “días”)
6) Fin

Modernamente, se ha usado el término algoritmo en referencia a cualquier


procedimiento sistemático de cálculo, que da lugar a un resultado después de
seguirse una serie de instrucciones precisas.

En el campo de la informática y la programación, se ha adoptado el termino para


describir cualquier serie de instrucciones precisas que dan lugar a un resultado. La
relación con las matemáticas sigue siendo estrecha, aunque ha ganado peso la
concepción como serie de instrucciones precisas, que no necesariamente implican
calculo. Así, podríamos hacernos una primera idea de que es un algoritmo pensando
en las instrucciones para montar un mueble desarmado, o en la preparación de un
plato a partir de una receta de cocina. Veamos lo que sería un algoritmo para freír un
huevo:

1. Inicio.
2. Poner a calentar aceite en un sartén
3. Cuando el aceite humee ligeramente, romper el huevo y verterlo en el aceite
4. Esperar a que se solidifique el huevo
5. Retirar el huevo del aceite, dejar que escurra y ponerlo en un plato. Apagar el
fuego
6. Fin.

Hemos construido el algoritmo con algunas características como:

Se indica un inicio y un fin. No es estrictamente necesario, pero si tenemos


muchos algoritmos, uno detrás de otro, nos servirá de ayuda para identificarlos.

Se ha subdividido el proceso en pasos. De momento, que abarca el paso es


criterio del autor del algoritmo.

Estructura de Datos – Revisión 4


Técnico en Informática Personal y Profesional

Se numeran los pasos. Tampoco es estrictamente necesario, pero nos será útil
al menos hasta que nos acostumbremos a escribir y leer algoritmos sin numeración.

Se ha tratado de precisar todos y cada uno de los pasos, definiendo lo mejor


posible cada uno de ellos.

EJERCICIO APLICATIVO:

Realizar un algoritmo para cruzar una calle.

SOLUCIÓN

1. Inicio
2. Buscar un paso de peatones
3. Mirar a la derecha y comprobar que no vienen coches
4. Mirar a la izquierda y comprobar que no vienen coches
5. Comprobar que no hay obstáculos ni huecos para llegar al extremo opuesto
6. Si hay un semáforo y está en rojo volver al punto 3
7. Cruzar
8. Fin

En relación con este caso destacaremos lo siguiente:

Obtener el algoritmo ha sido un proceso creativo: dos personas pueden pensar


en distintas formas de cruzar un calle, en distintas formas de organizar los pasos o en
distintas posibilidades (por ejemplo, que haya un policía de tránsito regulando el tráfico
o que no haya paso de peatones). Para programar nos apoyaremos en la creación
previa de algoritmos. Por tanto, programar implica creatividad.

Se busca la economía: que las instrucciones sean las mínimas posibles, que
haya el menor número de repeticiones.

Se busca la eficiencia: obtener el resultado deseado empleando poco tiempo y


pocos recursos y estando preparados para resolver situaciones imprevistas.

Pueden realizarse “saltos” entre los distintos pasos, pero el orden es supremo y
nunca se pierde. Ramificaciones y saltos nunca obedecen al azar: siguen un orden.
Un camino siempre se puede repetir si las condiciones iniciales son las mismas.

La idea de algoritmo está profundamente ligada con la idea de programa


informático. A veces diríamos que se confunden. Las normas aplicables a los
algoritmos son normas aplicables a los programas.

Aprender a desarrollar
algoritmos eficientes es
aprender a programar

Trataremos de desarrollar un algoritmo para poner platos y cubiertos en una


mesa de tres comensales.

ALGORITMO “PONER MESA”. VERSIÓN 1

Estructura de Datos – Revisión 5


Técnico en Informática Personal y Profesional

1. Inicio
2. Colocar primer plato delante de una silla
3. Colocar segundo plato delante de una silla
4. Colocar tercer plato delante de una silla
5. Colocar tenedor a la izquierda del primer plato
6. Colocar tenedor a la izquierda del segundo plato
7. Colocar tenedor a la izquierda del tercer plato
8. Colocar cuchara a la derecha del primer plato
9. Colocar cuchara a la derecha del segundo plato
10. Colocar cuchara a la derecha del tercer plato
11. Colocar cuchillo a la derecha de la primera cuchara
12. Colocar cuchillo a la derecha de la segunda cuchara
13. Colocar cuchillo a la derecha de la tercera cuchara
14. Fin

ALGORITMO “PONER MESA”. VERSIÓN 2

1. Inicio
2. Colocar tres platos, cada uno delante de una silla
3. Colocar tres tenedores, cada uno a la izquierda de cada plato
4. Colocar tres cucharas, cada una a la derecha de cada plato
5. Colocar tres cuchillos, cada uno a la derecha de cada cuchara
6. Fin

ALGORITMO “PONER MESA”. VERSIÓN 3

1. Inicio
2. Para cada silla

a) Colocar plato
b) Colocar tenedor a la izquierda del plato
c) Colocar cuchara a la derecha del plato
d) Colocar cuchillo a la derecha de la cuchara

3. Siguiente silla hasta completar la mesa


4. Fin

ALGORITMO “PONER MESA”. VERSIÓN 4

1. Inicio
2. Para cada silla

a) Colocar plato con tenedor a la izquierda, cuchara a la derecha

3. Siguiente silla hasta completar la mesa


4. Fin

ALGORITMO “PONER MESA”. VERSIÓN 5

1. Inicio
2. Para cada silla

a) Colocar platos y cubiertos

3. Siguiente silla hasta completar la mesa

Estructura de Datos – Revisión 6


Técnico en Informática Personal y Profesional

4. Fin

ALGORITMO “PONER MESA”. VERSIÓN 6

1. Inicio
2. Colocar platos y cubiertos en la mesa
3. Fin

Vamos a utilizar este ejemplo para analizar cuestiones como economía del
algoritmo, eficiencia del algoritmo y el lenguaje utilizado.

OPERADORES MATEMÁTICOS EN PROGRAMACIÓN. PRELACIÓN.


EJEMPLOS
Para escribir un programa dispondremos de una serie de operadores y
funciones matemáticas, en general comunes para todos los lenguajes. El uso de estas
herramientas tiene en general dos fines:

a) Realizar operaciones matemáticas


b) Obtener un resultado verdadero o falso después de haber planteado una
hipótesis o situación

Los operadores matemáticos disponibles son los habituales para una calculadora.
Para empezar, los básicos suma (+), resta ( - ), multiplicación (*)y división ( / ). Cuando
escribamos fórmulas matemáticas debemos prestar atención a:

 Las unidades en que se expresan cada uno de los parámetros que intervienen.
Conviene comprobar la coherencia dimensional así como realizar una
comprobación manual de los resultados devueltos por el computador

 Especialmente llamamos la atención sobre ángulos; comprobar si se expresan


en grados o en radianes; si son grados tener en cuenta si son centesimales o
sexagesimales; etc. Los computadores normalmente trabajaban con ángulos
en radianes.

 En cuanto a las operaciones aritméticas, convendrá fijarse en la corrección de


la formula escrita así como que esta represente realmente la operación que
nosotros queremos ejecutar.

La escritura en el computador habrá de guiarse por las órdenes de prelación


habituales en matemáticas, a saber:

Exponenciación > Multiplicación y División > Suma y Resta

Las raíces serán consideradas como exponenciación:

Los operadores
con igual prioridad se
ejecutan de izquierdas a derecha en caso de aparecer encadenados.

Estructura de Datos – Revisión 7


Técnico en Informática Personal y Profesional

Los paréntesis dan prioridad a las operaciones que encierran. Es recomendable


usar paréntesis aun no siendo necesarios con ello se logra mejorar de forma notable
en claridad para interpretación de los escrito.

EJEMPLOS:

EJERCICIO

Determinar la escritura en computador de las siguientes expresiones.

SOLUCIÓN

Por ultimo indicar


que la mayoría de
los lenguajes nos permiten conocer el cociente o resto de una división “tradicional”:

Estructura de Datos – Revisión 8


Técnico en Informática Personal y Profesional

Para ello la notación que se sigue es así:

26 mod 6 o 26 % 6 devuelve el resto de la división, es decir, 2


26 \ 6 devuelve el cociente de la división, es decir, 4

En cuanto al orden de prelación de estos operadores, su prioridad será inferior a


la de la multiplicación y división convencionales, aunque sus estatus respecto a suma
y resta pueden variar dependiendo del lenguaje de programación que utilicemos.

PRIORIDAD ENTRE OPERADORES (ORDEN DE PRELACIÓN) EN LA


MAYORÍA DE LENGUAJES

La prioridad entre operadores puede variar en función del lenguaje informático


que utilicemos. Consideraremos estas prioridades: Operadores Matemáticos >
Operadores de Comparación > Operadores de Negación, Conjunción o Disyunción.

Esta pirámide representa la prioridad entre operadores (orden de prelación) para


la mayoría de los lenguajes de programación.

Estructura de Datos – Revisión 9


Técnico en Informática Personal y Profesional

REPRESENTACIÓN GRAFICO – ESQUEMÁTICA DE PROGRAMAS.


DIAGRAMA DE FLUJO
Un diagrama de flujo es una representación esquemática de los distintos pasos
de un programa. Constituyen pues, otra forma de representar algoritmos distinta al
pseudocódigo, pero que nos sirve de forma complementaria en el proceso de creación
de la estructura del programa ante de ponernos delante del computador.

El diagrama de flujo goza de ventajas como el ser altamente intuitivo, fácil de


leer, claro y preciso. Su interés para nosotros, sin despreciar su utilidad profesional,
radica en su valor didáctico. Lo consideraremos una herramienta muy potente de cara
a comenzar a programar ya que su contenido grafico lo hace menos árido que el
pseudocódigo.

Las limitaciones principales de los diagramas de flujo derivan precisamente de


su carácter de dibujo. No resultan tan fáciles de crear o de mantener como el texto del
pseudocódigo (que podemos trabajar en un procesador de textos cualquiera) y
pueden requerir utilizar papeles tipo plano (más grande de los normal) cuando los
programas son de cierta longitud. Gráficamente podemos verlo de la siguiente
manera: si tenemos por ejemplo siete páginas de pseudocódigo bastara con
numerarlas y ponerlas una detrás de otra.

En cambio, un diagrama de flujo que ocupe siete páginas podrá adoptar


cualquier forma, por ejemplo:

El manejo u ordenación de un diagrama de flujo muy extenso se puede


complicar. La solución a este problema la encontraremos, al menos parcialmente,
utilizando el método del “divide y venceras”.

Para la creación de diagramas de flujo utilizaremos uno símbolos y normas de


construcción determinados. En nuestro caso, un modelo simplificado de los
estándares internacionales, con el objeto de poder interpretar y ser interpretados por
otros programas.

Estructura de Datos – Revisión 10


Técnico en Informática Personal y Profesional

SÍMBOLOS ESTANDARIZADOS PARA DIAGRAMAS DE FLUJO

1) Terminal: Indica comienzo o final de un programa, subprograma o modulo.

2) Captura y emisión de datos: Entrada o salida de información desde o hacia el


computador.

3) Proceso: Cualquier proceso interno realizado por el computador como


asignación de valor a variables, operaciones matemáticas, etc.

4) Evaluación – Decisión: Evalúa una expresión como cierta o falsa siguiendo el


programa distinta vía en función del resultado.

5) Línea de Flujo: Sentido del flujo de procesos. Indica que proceso viene a
continuación del otro.

6) Decisión Múltiple: El dato o condición planteada presenta


distintas alternativas (casos), siguiendo el programa distinto vi en función del
caso.

7) Conector: Indica a través de una referencia (numero, letra o texto) donde debe
continuar un diagrama de flujo que se interrumpe.

Estructura de Datos – Revisión 11


Técnico en Informática Personal y Profesional

8) Modulo Independiente: Recibe distintos nombres como subprograma,


subrutina, proceso, procedimiento, etc. Al llegar a esta llamada el programa
pasa a ejecutar todas las instrucciones contenidas en la subrutina para una vez
terminadas continuar el flujo.

NORMAS PARA LA CREACIÓN DE DIAGRAMAS DE FLUJO


1) Los diagramas de flujo se escriben de arriba – abajo y de izquierda a derecha.
2) Todo símbolo (excepto las líneas de flujo) llevara en su interior información que
indique su función exacta y univoca.

EJEMPLOS:

3) Un elemento del diagrama no puede tener más de una salida si no es un


elemento de decisión. Existen excepciones que veremos en su debido
momento.

EJEMPLOS:

4) Las líneas de flujo no pueden cruzarse.

EJEMPLOS:

Estructura de Datos – Revisión 12


Técnico en Informática Personal y Profesional

EJERCICIO:

Crear el diagrama de flujo que proporcione el volumen de un cilindro dado su


altura y diámetro.

SOLUCIÓN:

OPERADORES LÓGICOS O DE COMPARACIÓN EN PROGRAMACIÓN.


EJEMPLOS.
Otro tipo de operadores fundamentales en programación son los operadores
lógicos o de comparación. Se usan para comparar dos variables o expresiones y
obtener un valor verdadero o falso. Como operadores de comparación disponemos de:

Estructura de Datos – Revisión 13


Técnico en Informática Personal y Profesional

Nótese que las expresiones matemáticas de mayor o igual que (≥) y menor o
igual que (≤) se escriben utilizando los símbolos de mayor o menor seguidos de un
igual (>=,<=).

La evaluación de una comparación da lugar a un resultado de verdadero o falso.


Este resultado puede servir de base para tomar una decisión, pero también puede
almacenarse en una variable booleana. Por ejemplo:

Cam = H < 3 da lugar a que la variable Cam adquiera valor verdadero si H es


menor que tres, o falso si H no es menor que tres.

Supongamos distintas expresiones de comparación entre dos variables A y B


con valores A = 2 y B = 7.

Hemos dejado una


expresión sin evaluación
aunque el computador le asignara un valor: verdadero o falso. Lo que no es tan

Estructura de Datos – Revisión 14


Técnico en Informática Personal y Profesional

inmediato es decir que opción será la que aplique el computador. Depende de factores
como la prioridad de las operaciones, el número de decimales, etc.

Pensemos que un computador, a efectos matemáticos, funciona como una


calculadora. Y hagamos la siguiente experiencia:

Con una calculadora no científica, dividamos 2 entre 7. Una calculadora con 8


dígitos nos devuelve el resultado con 7 decimales como 0,2857142. A continuación
multiplicamos el resultado por 7 y obtenemos 1, 9999994.

Con una calculadora más avanzada podemos obtener un resultado de 2/7 con
más decimales y un valor igual a 2. Pero con esta misma calculadora podemos dividir
1 entre 3, obtener un valor 0, 3 periódico y luego multiplicar por 3 para obtener 0,
999999999.

(A/B) * B tenemos claro que es igual a A. por ejemplo (2/7) * 7 = 2. Pero un


computador podría devolver un resultado (2/7) * 7 = 1, 999. Con lo cual nos dirá que
(A/B) * B es distinto de A.

En definitiva un computador no trabaja con infinitos decimales y puede dar lugar


a resultados inesperados. Estos casos habrán de ser previstos por el programador,
que tomara las medidas que estime convenientes. La forma de operar de los
computadores o las características del lenguaje que estemos utilizando en un
momento dado pueden dar lugar a aparentes fallos o resultados inesperados. No son
muy habituales pero conviene tener en cuenta que pueden aparecer. A estos
“resultados inesperados” los llamamos paradojas. El caso de (A/B) * B <> A lo
denominamos paradojas de los decimales finitos. Conocer las paradojas de un
lenguaje y manejarlas a su antojo es u n hobby para muchos programadores.

Cuando se produce un “resultado inesperado” se puede confiar con un 99, 9%


de probabilidad, que se debe a un fallo del programador. Por lo tanto lo que procede
es revisar paso a paso el código hasta encontrar el punto que ha dado lugar al error,
en vez de quejarse de que el computador no responde como debiera.

En cuanto a variables alfanuméricas, de momento consideraremos valido


únicamente el uso del operador “igual”. Si dos variables son iguales exactamente su
comparación devuelve “verdadero”. Por ejemplo:

Por ultimo disponemos de operadores de negación (no se cumple que),


conjugación (y) y disyunción (ó). En ingles not, and y or.

Estructura de Datos – Revisión 15


Técnico en Informática Personal y Profesional

Respecto a estos operadores, solo podrán ser usados para evaluar expresiones
pero nunca para escribir instrucciones una detrás de otra, relacionadas con estos
operadores. Por ejemplo A = 3 y B = 8 no se pueden usar como instrucciones para
que el computador asigne valores. Únicamente se pueden usar con el fin de evaluar el
hecho de que se cumpla A = 3 y B = 8 dando lugar a un resultado de verdadero, o que
no se cumpla, dando lugar a un resultado de falso.

Respecto al operador No (Not), además de saber de su existencia y significado,


desechamos su uso ya que en general existirá una expresión equivalente en la que no
es necesario y que proporciona mayor claridad y facilidad de lectura.

Expresiones equivalentes para el operador No:

INSTRUCCIONES SI… ENTONCES Y SI … ENTONCES – SINO


La instrucción Si…Entonces permite controlar que procesos tiene lugar en
función del valor de una o varias variables o de las decisiones del usuario.
Escribiremos esta instrucción de la siguiente manera:

Se podrán introducir instrucciones a realizarse en caso de no cumplirse la


condición:

Estructura de Datos – Revisión 16


Técnico en Informática Personal y Profesional

Nótese que el uso de sangrías permite identificar el bloque de sentencias a


ejecutar. Gráficamente:

INSTRUCCIÓN SI … ENTONCES

INSTRUCCIÓN SI … ENTONCES – SINO

Recordemos que para


expresar condiciones disponemos de
símbolos matemáticos como =, >, <, etc. Así como de los operadores Y (and) y ó (or).

Estructura de Datos – Revisión 17


Técnico en Informática Personal y Profesional

En cuanto a los diagramas de flujo, si una condición compuesta es de gran


longitud, consideraremos valido achatar el rombo para adecuarlo al texto.

EJEMPLO:

La instrucción Si … Entonces es anidable dentro de sí misma. Esto significa que


puede haber un bloque Si … Entonces dentro de otro. Se hace más necesario que
nunca el sangrado (tabulación) para que el pseudocódigo sea legible. Ha de
verificarse que todo Si se cierra con FinSi.

ANIDAMIENTO SIMPLE (PSEUDOCÓDIGO Y DIAGRAMA DE FLUJO)

Estructura de Datos – Revisión 18


Técnico en Informática Personal y Profesional

ANIDAMIENTO DOBLE (PSEUDOCÓDIGO Y DIAGRAMA DE FLUJO)

Los
anidamientos se
pueden convertir en triples, cuádruples, quíntuples, etc. Lo cual convierte en dificultosa

Estructura de Datos – Revisión 19


Técnico en Informática Personal y Profesional

la lectura y seguimiento del pseudocódigo. Habrá que tratar de evitar excesos usando
otros recursos, desviando a módulos independientes, etc.

Cuando sea necesario por la complejidad en la toma de decisiones, se recurrirá


a una tabla de decisión como paso previo a la confección del pseudocódigo o
diagrama de flujo.

EJERCICIO:

Crear el pseudocódigo y el diagrama de flujo para un programa que pida un


número entero distinto de cero y nos muestre en pantalla un mensaje indicándonos si
el número es par o impar.

SOLUCIÓN:

EJERCICIO:

Crear el pseudocódigo y el diagrama de flujo para un programa que resuelva la


ecuación cuadrática tipo ax2 + bx + c

SOLUCIÓN:

Problema no tan inmediato como el anterior. Hay que tener muy claro que se
quiere hacer. Así planteamos:

1) Objetivos: Obtención de las raíces reales o imaginarias para la ecuación tipo


2) Condicionantes: Parámetros a, b, c
3) Datos de partida: Parámetros a, b, c
4) Método o estrategia de resolución: Resolución documentada
5) Resultados a obtener: Raíces x1 y x2 de la ecuación.

DOCUMENTACIÓN:

Estructura de Datos – Revisión 20


Técnico en Informática Personal y Profesional

La solución general viene dada por:

Con las siguientes particularidades en función del radicando b2 – 4ac:

a) Cuando b2 – 4ac > 0 existen dos raíces reales:

b) Cuando b2 – 4ac = 0 existe una raíz real:

c) Cuando b2 – 4ac < 0 las dos raíces son imaginarias:

Donde d = b2 – 4ac e i la unidad imaginaria

DIAGRAMA DE FLUJO:

Estructura de Datos – Revisión 21


Técnico en Informática Personal y Profesional

PSEUDOCÓDIGO:

INSTRUCCIÓN MIENTRAS … HACER


La instrucción Mientras … Hacer es una de las alternativas para la repetición de
procesos a traves del computador. Como veremos, guarda cierta similitud con la
instrucción Desde … Siguiente, hasta el punto de que en algunas ocasiones podrá
optarse por el uso de una u otra de forma indistintas. Escribiremos esta instrucción de
la siguiente manera:

Como es habitual, el tabulado se convierte en fundamental para una buena


compresión de que es el bloque subordinado y cuáles son sus límites. La entrada al
bucle queda controlada mediante la evaluación de una condición (verdadera o falsa).
En general, el bucle se repetirá varias veces hasta que se incumpla la condición de
entrada, para continuar el flujo del programa por la siguiente instrucción después de
Repetir. Sin embargo, podría darse el caso particular de que en la primera evaluación
no se cumpla la condición, con lo cual el bloque de instrucciones del bucle no llegaría
a ejecutarse siquiera una vez. Si tras la primera pasada la condición cambia y se
convierte en falsa, el bloque se ejecuta una única vez. Gráficamente utilizaremos la
siguiente representación:

Estructura de Datos – Revisión 22


Técnico en Informática Personal y Profesional

La instrucción Mientras … Hacer es anidable dentro de si misma mediante la


inserción de un bloque Mientras dentro de otro. Una vez, el tabulado nos permitirá
identificar las subordinaciones y habremos de verificar que toda apertura Mientras
tiene su cierre Repetir.

ANIDAMIENTO SIMPLE (PSEUDOCÓDIGO Y DIAGRAMA DE FLUJO)

Estructura de Datos – Revisión 23


Técnico en Informática Personal y Profesional

ANIDAMIENTO DOBLE (PSEUDOCÓDIGO Y DIAGRAMA DE FLUJO)

A diferencia de la instrucción Desde, el número de repeticiones de cada bucle no


está prefijado. Depende del cumplimiento de la condición, que se puede ver afectada
por los procesos internos del bucle. Conociendo ya lo que es un bucle finito, se
comprenderá que es tarea esencial para el programador diseñar un algoritmo tal que
la condición de salida llegue a verificarse, ya que si esto no sucede el computador
repetirá continuamente el mismo proceso y se quedara bloqueado. En general, el
control del bucle se realizara a través de variables existiendo distintas alternativas
como:

a) Contadores
b) Acumuladores
c) Interruptores
d) Señaleros
e) Entradas controladas por el usuario

Estructura de Datos – Revisión 24


Técnico en Informática Personal y Profesional

f) Final de archivo
g) Salida directa

ESTRUCTURA DE REPETICIÓN (BUCLES). INSTRUCCIÓN DESDE


… SIGUIENTE
La instrucción Desde (Valor inicial, Valor final, Paso)… Siguiente explota la
capacidad del computador para repetir procesos y para contar. Muchas veces esta
instrucción se puede reemplazar por otras instrucciones o estructuras de tipo
repetición. Se podrá optar por la que se estime más oportuna, que muchas veces será
la instrucción Desde … Siguiente pues reúne una cualidades interesantes.
Escribiremos esta instrucción de la siguiente manera:

El bloque de instrucciones siempre va tabulado a los limites definidos por Desde


y Siguiente. VAR es una variable de referencia para la instrucción, que toma
inicialmente el valor Vi (Valor inicial). Con la variable de referencia en el valor inicial se
procesa el grupo de instrucciones internas hasta llegar a la instrucción Siguiente. En
este momento el flujo del programa no sigue secuencialmente sino que se vuelve
circular, pues se retorna a la instrucción Desde, donde VAR toma el valor VAR + 1. A
continuación se vuelve a procesar el conjunto de instrucciones internas y se continúa
repitiendo el proceso hasta que, tras n repeticiones, el valor VAR resulta mayo que Vf
(valor final). Cuando esto se produce, ya no vuelve a haber una repetición del conjunto
de instrucciones internas, sino que se continúa la ejecución del programa por la
instrucción posterior a Siguiente.

Gráficamente utilizaremos la siguiente representación:

Recordemos, como se expuso para el Sí, que se consideran válidas para el


símbolo de decisión las dos representaciones siguientes:

Estructura de Datos – Revisión 25


Técnico en Informática Personal y Profesional

El símbolo (2) permite un mejor aprovechamiento del espacio cuando el texto a


englobar es largo. Para los parámetros de inicio y fin se aceptan igualmente Vi a Vf
como Vi hasta Vf.

La expresión Siguiente no tiene representación. El motivo es únicamente la


percepción visual y claridad. Al igual que en la instrucción Si … Entonces no
representamos la expresión FinSi por quedar está definida por la fuerza visual de las
líneas de flujo, en la instrucción Desde prescindimos de representar la expresión
Siguiente por igual causa. Podríamos emplear un esquema del tipo:

Esta representación es aceptable, pero en un diagrama con decenas de


instrucciones Desde supondría decenas de símbolos adicionales.

La variable VAR suele denominarse “contador” pues es un elemento que toma


valores ordenadamente. Así, es habitual utilizar expresiones como “¿Cuál es el valor
actual del contador? o “Voy a iniciar el contador en 6”. El uso de contadores, como
veremos más adelante, es de gran utilidad. Entre los programadores es habitual usar
letras para identificar a los contadores como i, j, k, m, n. No es obligatorio, puesto que
al ser variables se les puede asignar cualquier nombre valido para una variable, pero
si creemos que es conveniente al menos como pauta para no cometer errores. Como
organización de variables es tan válido:

Como:

Estructura de Datos – Revisión 26


Técnico en Informática Personal y Profesional

A efectos del computador una u otra organización es indiferente. A efectos


humanos una mala organización nos puede generar un fuerte dolor de cabeza. Si por
cualquier motivo nos encontramos con un programa con variables desorganizadas y
hemos de seguir trabajando en él, con seguridad nos ayudara parar y reorganizar las
variables antes de perdernos en una maraña incomprensible.

La instrucción Desde … Siguiente es anidable dentro de sí misma mediante la


inserción de un bloque Desde dentro de otro. Como siempre, recurrimos al tabulado
para mantener el pseudocódigo ordenado. Ha de verificarse que todo Desde se cierra
con Siguiente.

NOTA: Si después de siguiente no se especifica variable se entiende que el


siguiente hace referencia al Desde anterior más próximo.

ANIDAMIENTO SIMPLE (DIAGRAMA DE FLUJO)

ANIDAMIENTO DOBLE (PSEUDOCÓDIGO)

Estructura de Datos – Revisión 27


Técnico en Informática Personal y Profesional

ANIDAMIENTO DOBLE (DIAGRAMA DE FLUJO)

Los anidamientos se pueden convertir en triples, cuádruples, quíntuples, etc. El


principal problema de los anidamientos múltiples será la dificultad para el seguimiento
del flujo del programa y confusiones en relación al funcionamiento de los contadores y
los valores que adoptan.

Estructura de Datos – Revisión 28


Técnico en Informática Personal y Profesional

INSTRUCCIÓN SEGÚN (CASO) HACER


La instrucción Según (Caso) Hacer es una forma de expresión de un
anidamiento múltiple de instrucciones Si… Entonces – SiNo. Su uso no puede
considerarse, por tanto, estrictamente necesario, puesto que siempre podrá ser
sustituida. La sintaxis será:

La expresión a evaluar puede ser una variable o una función de varias variables.
El valor de la expresión podrá ser de identidad (p. ej. Caso, = 8) o de intervalo (p. ej.
Caso, < 100; también podría ser Caso, > 0 y < 100).

El caso SiNo determina las instrucciones a ejecutar cuando ninguno de los


casos previstos se ha cumplido. Si no procede, simplemente se deja de escribir.

La única ventaja que podemos obtener con el uso de Según (Caso) Hacer radica
en aportar mayor claridad que un anidamiento múltiple Si … Entonces de gran
longitud.

La instrucción Según (Caso) Hacer también puede anidarse dentro de sí misma,


aunque resulta poco recomendable por perjudicar la claridad de un programa.

Consideremos una estructura de decisión basada en cinco alternativas y el caso


SiNo.

PSEUDOCÓDIGO:

Estructura de Datos – Revisión 29


Técnico en Informática Personal y Profesional

DIAGRAMA DE FLUJO:

Estructura de Datos – Revisión 30

También podría gustarte