You are on page 1of 52

MANUAL DE ALGORITMO

INDICE
Introducción…………………………………………………………………………………………………………………………..2
Que es programación………………………………………………………………………………………………………………3
Que es lógica computacional……………………………………………………………………………………………………4
Clasificación de los lenguajes de programación………………………………………………………………………….5-7
Que es un algoritmo………………………………………………………………………………………………………………8-10
Que es un pseudocódigo………………………………………………………………………………………………………11-21
Diagramas de flujo……………………………………………………………………………………………………………...22-24
Que son las variables………………………………………………………………………………………………………….25-29
Que es una constante………………………………………………………………………………………………………….30-31
Tipos de datos……………………………………………………………………………………………………………………….32
Operadores………………………………………………………………………………………………………………………33-35
Simbolos de diagramas……………………………………………………………………………………………………….36-37
Operaciones básicas………………………………………………………………………………………………………….38-52
Bibliografía…………………………………………………………………………………………………………………………..53

Pá gina 1
MANUAL DE ALGORITMO

¿Qué es programación?
Se conoce como programación en ciencias de la computación a los pasos que se abordan para crear el código fuente de un programa
informático. De acuerdo con estos pasos, el código se escribe, se prueba y se perfecciona.
El software informático es aquel ejecutado por el hardware o dispositivos de una computadora, permitiendo que el usuario acceda a
funciones y operaciones de todo tipo. Así, la programación es una de las actividades más determinantes en el desarrollo de sistemas
eficientes, rápidos y amigables para todo tipo de usuarios.
Se conoce como programadores a aquello encargados de desarrollar este código con instrucciones para que el software se comporte
de una u otra manera de acuerdo con las órdenes que reciba. El lenguaje de programación es, por otro lado, la serie de parámetros y
códigos de los que el programador se vale para desarrollar software. Existen distintos tipos de lenguajes, como el C, BASIC o Ruby.
Además, existe la ingeniería el software, que se dedica a desarrollar modelos de software para programas de gran envergadura.
Típicamente, para programar un software o aplicación, el programador debe en principio reconocer el principal problema o tarea a la
que se destinará el programa, definir los requisitos y tipo de funcionamiento, diseñar la arquitectura, implementar el programa,
implantarlo o instalarlo y, luego, perfeccionarlo sobre la base de pruebas y errores.
Hoy en día existen todo tipo de lenguajes de programación, algunos más sencillos o que tienen el propósito de facilitar la tarea de
desarrollar pequeñas aplicaciones. Entre ellos, Ruby es uno de los más popularizados en los últimos años, desarrollado por un
programador japonés y que combina sintaxis de distintos lenguajes como Python o Perl.
Así, prácticamente cualquier usuario informático puede adquirir algunas nociones de programación y desarrollar aplicaciones a su
medida.

Pá gina 2
MANUAL DE ALGORITMO

¿Qué es un lenguaje de programación?

Un lenguaje de programación es un idioma artificial diseñado para expresar computaciones que


pueden ser llevadas a cabo por máquinas como las computadoras. Pueden usarse para crear
programas que controlen el comportamiento físico y lógico de una máquina, para expresar
algoritmos con precisión, o como modo de comunicación humana. [1] Está formado por un conjunto de
símbolos y reglas sintácticas y semánticas que definen su estructura y el significado de sus
elementos y expresiones. Al proceso por el cual se escribe, se prueba, se depura, se compila y se
mantiene el código fuente de un programa informático se le llama programación.

También la palabra programación se define como el proceso de creación de un programa de


computadora, mediante la aplicación de procedimientos lógicos, a través de los siguientes pasos:

 El desarrollo lógico del programa para resolver un problema en particular.


 Escritura de la lógica del programa empleando un lenguaje de programación específico (codificación
del programa).
 Ensamblaje o compilación del programa hasta convertirlo en lenguaje de máquina.
 Prueba y depuración del programa.
 Desarrollo de la documentación

Pá gina 3
MANUAL DE ALGORITMO

¿Qué es lógica computacional?


Muchas veces afirmamos que una cosa es lógica o un acontecimiento es lógico, y a lo que nos referimos en sí
es a que, si a “nuestro entender” es razonable entonces en consecuencia será lógico. Sin embargo esta sólo
es una definición intuitiva de lo que es, y además dependería de la perspectiva de cada quien.

La lógica es una ciencia que estudia los procesos del pensamiento, su estructura sus formas y relaciones.
Teniendo como resultados respuestas claras, precisas y comprobables. Desechando todo resultado que no
sean evidentes y precisos. Cuando hablamos de lógica, se nos viene a la mente todos los procedimientos o
caminos más cortos para desarrollar o resolver un problema, teniendo la oportunidad de desechar ideas o
razones erróneas dando oportunidad a otros pensamientos más factibles, hasta llegar al resultado válido. Con
esto podemos tener el concepto siguiente : “ La lógica es la ciencia de los principios de la inferencia
formalmente válida”.

La lógica estudia la metodología del pensar, todo lo que implica los procesos de la adquisición del
conocimiento, y su estudio nos ayuda a formular métodos científicos, por lo que es instrumento en la
investigación científica. Es importante notar que a pesar de toda la metodología que implica la lógica, no es
necesario estudiarla para emplearla; esto es claro si tomamos en cuenta que todos los seres humanos
realizamos de manera implícita operaciones lógicas en nuestras actividades cotidianas, sin que
necesariamente nos demos cuenta de ello. Sin embargo el estudiarla nos sirve de herramienta para actuar
con mayor eficacia en la práctica de nuestra profesión.

Pá gina 4
MANUAL DE ALGORITMO

¿Clasificación de los lenguajes de programación?


LENGUAJE MÁQUINA.
Los ordenadores sólo entienden un lenguaje específico para cada máquina, que se denomina
CÓDIGO MÁQUINA o Lenguaje Máquina. Este lenguaje utiliza un código binario (símbolos “0" y “1").
Las órdenes que se dan a un ordenador han de ir codificadas en instrucciones, y estas forman los
programas. Las instrucciones tienen dos partes diferenciadas: código de operación y código(s) de
operando(s):
CODOP CODOPERANDO(S)
En la primera, se codifica la operación que realiza la instrucción. Este código de operación
siempre es único para cada instrucción. En la segunda se indica(n) la(s) dirección(es) de memoria en la que se
encuentra el operando, hasta un máximo de tres, sobre el/(los) que se aplicará la operación.
Puesto que cada tipo de ordenador tiene su código máquina específico, para programar en
este lenguaje el programador debe conocer la arquitectura física de la computadora con cierto detalle
(registros de la CPU, palabras de memora,...). La estructura del lenguaje máquina está totalmente
adaptada a los circuitos de la computadora y muy alejada del lenguaje que empleamos normalmente
para expresar y analizar los problemas que hoy día son resolubles con la computadora. Por ejemplo,
para hacer cálculos aritméticos disponemos de un “lenguaje” matemático fácil de comprender y claro,
que no se parece en nada al código máquina necesario para hacer dichos cálculos.
Las ventajas de los lenguajes máquina son:
- Un programa escrito en lenguaje máquina es directamente interpretable por el procesador
central. Una vez introducido el programa en la memoria principal de la computadora, no se necesitan
transformaciones previas para ser ejecutado (como más adelante veremos que sí ocurre con los
programas escritos en lenguajes de alto nivel).
- Los programas escritos en lenguaje máquina se ejecutan muy eficientemente (con rapidez),
debido a que el usuario lo redacta específicamente para los circuitos que lo han de interpretar y
ejecutar, y a que desde el código máquina se puede utilizar la totalidad de los recursos de la
máquina.
Por contra, los lenguajes máquina tienen las siguientes características-inconvenientes:
- Las instrucciones son cadenas de ceros y unos, aunque estas cadenas se pueden introducir
en la computadora mediante un código intermedio (octal o hexadecimal).
- Los datos se utilizan por medio de las direcciones de memoria donde se encuentran. En las
instrucciones no aparecen nombres de variables (i, j aux...), sino que el programador debe asignar las
direcciones de memoria para las variables y constantes del programa. Para realizar esta asignación
se debe tener en cuenta la zona de memoria que ocupa el programa, para que no se solape con la
zona en la que se almacenan las variables.
- El repertorio de instrucciones suele ser muy reducido y las instrucciones realizan
operaciones muy simples.
En lenguaje máquina, hay varios tipos de instrucciones:
- De transferencia de información.
- De tratamiento o aritmético-lógicas y de desplazamiento
- De transferencias de control: bifurcaciones, saltos, llamadas a procedimientos y
retornos de procedimientos.
Muchas computadoras, por ejemplo, no disponen de instrucciones específicas de multiplicar y
dividir; en su lugar, el programador debe ingeniárselas para descomponer cada una de las
operaciones que desee realizar en términos de las instrucciones elementales del repertorio máquina.
Por ejemplo, para multiplicar, se deberá codificar un algoritmo que realice la multiplicación por medio
de sumas, comparaciones, desplazamientos, etcétera.
- Existe muy poca elasticidad y versatilidad para la redacción de instrucciones. Estas tienen
un formato rígido en cuanto a posición de los distintos campos que configuran la instrucción (código
de operación, dirección o direcciones de memoria, códigos de puertos, etc.). El código de operación
debe seleccionarse estrictamente entre los que figuran en una tabla o repertorio fijo. Además, un
programa máquina no permite el uso de sentencias declarativas, existiendo sólo las instrucciones.
- El lenguaje máquina depende y está ligado íntimamente a la CPU del computador. Si dos
computadoras tienen CPU’s diferentes, tendrán distintos lenguajes máquina. En particular, dos

Pá gina 5
MANUAL DE ALGORITMO
microcomputadoras con el mismo microprocesador e iguales circuitos de control, tienen igual
lenguaje máquina. La dependencia del lenguaje máquina de la configuración de la CPU hace que los
programas redactados en este lenguaje de programación sean poco transferibles o transportables de
una computadora a otra.
- En un programa en código máquina, no pueden incluirse comentarios que faciliten la
legibilidad del mismo. Además, debido a su representación totalmente numérica, es muy difícil de
reconocer o interpretar por el usuario.

1.4. CLASIFICACIÓN DE LOS LENGUAJES DE PROGRAMACIÓN.


Tradicionalmente los lenguajes de programación se pueden clasificar atendiendo a varios
factores:
- Según su “nivel”. Hace referencia a lo próxima al hombre que esté la forma de expresar las
sentencias:
* Lenguajes de bajo nivel y ensambladores (cercanos a la máquina).
* Lenguajes de alto nivel (cercanos al hombre).
- Según la relación traducción-ejecución.
* Compiladores.
* Intérpretes.
- Según su campo de aplicación:
* Aplicaciones Científicas. Predominan los algoritmos de cálculo numérico y matrices.
* Aplicaciones de Procesamiento de Datos. Sobresalen las tareas relativas a la
creación, mantenimiento, consulta y listado de datos. Estos datos se organizan en registros, ficheros
y bases de datos.
* Aplicaciones de Tratamiento de Textos. Llevan a cabo la manipulación de textos en
lenguaje natural.
* Aplicaciones en Inteligencia Artificial. Están constituidas por programas que emulan
un comportamiento inteligente. Ej. juegos inteligentes (ajedrez, tres en raya, ...), robótica, sistemas
expertos, ...
* Aplicaciones de Programación de Sistemas. Como por ejemplo aquéllos que se
utilizan para desarrollar los módulos de un Sistema Operativo, traductores de lenguajes, ...
- Según el estilo de programación:
* Imperativos.
* Declarativos.
Nos centramos en esta última clasificación.
1.4.1. Lenguajes imperativos.
Los lenguajes imperativos o procedurales se basan en la asignación de valores. Se
fundamentan en la utilización de variables para almacenar valores y en la realización de operaciones
con los datos almacenados. La mayoría de los lenguajes son de este tipo (FORTRAN, BASIC,
COBOL, PASCAL, C, etc.).
Son los que ya hemos analizado:
a) Lenguajes de alto nivel, caracterizados por estar enfocados a la resolución de problemas en
campos de aplicación específicos y los programas escritos en ellos ser fácilmente trasladables de
una a otra computadora.
b) Lenguajes ensambladores y máquina, totalmente adaptados y predeterminados por la CPU de la
máquina.
1.4.2. Lenguajes declarativos.
Están basados en la definición de funciones o relaciones. No utilizan instrucciones de
asignación (sus variables no almacenan valores). Son los más fáciles de utilizar (no se requieren
conocimientos específicos de informática), están muy próximos al hombre. Se suelen denominar
también lenguajes de órdenes, ya que los programas están formados por sentencias que ordenan
“qué es lo que se quiere hacer”, no teniendo el programador que indicar a la computadora el proceso
detallado (el algoritmo) de cómo hacerlo”.
En este grupo se incluyen ciertos lenguajes especializados en funciones tales como
recuperación de la información en bases de datos (NATURAL e IMS), análisis de circuitos
electrónicos (SPICE), y realización de cálculos estadísticos (BMDP, SPSS, SAS, etc.).

Pá gina 6
MANUAL DE ALGORITMO
Se dividen en lenguajes funcionales y lógicos.
1.4.2.1. Lenguajes funcionales.
Los lenguajes funcionales son un tipo de lenguajes declarativos, en los que los programas
están formados por una serie de definiciones de funciones. Ejemplos de estos lenguajes son el LISP
y el SCHEME. Se suelen aplicar a problemas de Inteligencia Artificial.
1.4.2.2. Lenguajes lógicos.
Los lenguajes lógicos son el otro tipo de lenguajes declarativos, y en ellos los programas
están formados por una serie de definiciones de predicados. También se les denomina lenguajes de
programación lógica, y el mayor exponente es el lenguaje PROLOG. Se aplican sobre todo en la
resolución de problemas de Inteligencia Artificial.

Pá gina 7
MANUAL DE ALGORITMO

¿Qué es un algoritmo?
En matemáticas, ciencias de la computación y disciplinas relacionadas, un algoritmo (del griego y
latin, dixit algorithmus y éste a su vez del matemático persa Al Juarismi[] ) es un conjunto preescrito
de instrucciones o reglas bien definidas, ordenadas y finitas que permite realizar una actividad
mediante pasos sucesivos que no generen dudas a quien deba realizar dicha actividad. [] Dados un
estado inicial y una entrada, siguiendo los pasos sucesivos se llega a un estado final y se obtiene
una solución. Los algoritmos son el objeto de estudio de la algoritmia.

algoritmos son independientes tanto del lenguaje de programación en que se expresan como de la computadora que los
ejecuta. En cada problema el algoritmo se puede expresar en un lenguaje diferente de programación y ejecutarse en una
computadora distinta. []

Características de los algoritmos


Las características fundamentales que debe cumplir todo algoritmo son:
· Un algoritmo debe ser preciso e indicar el orden de realización de cada paso.
· Un algoritmo debe estar definido. Si se sigue un algoritmo dos veces, se debe obtener el mismo resultado cada vez.
· Un algoritmo debe ser finito. Si se sigue un algoritmo, se debe terminar en algún momento; o sea debe de tener un
número finito de pasos.

LOS ALGORITMOS SE CLASIFICAN EN:

1.-Ordenamiento Burbuja

Este es el algoritmo más sencillo probablemente. Ideal para empezar. Consiste en ciclar repetidamente a través de la
lista, comparando elementos adyacentes de dos en dos. Si un elemento es mayor que el que está en la siguiente
posición se intercambian.
Ventajas:
· Fácil implementación.
· No requiere memoria adicional.
Desventajas:
· Muy lento.
· Realiza numerosas comparaciones.
· Realiza numerosos intercambios.

2.-Ordenamiento por Selección

Este algoritmo también es sencillo. Consiste en lo siguiente:


· Buscas el elemento más pequeño de la lista.
· Lo intercambias con el elemento ubicado en la primera posición de la lista.
· Buscas el segundo elemento más pequeño de la lista.
· Lo intercambias con el elemento que ocupa la segunda posición en la lista.
· Repites este proceso hasta que hayas ordenado toda la lista.
Ventajas:
· Fácil implementación.
· No requiere memoria adicional.
· Realiza pocos intercambios.

Pá gina 8
MANUAL DE ALGORITMO
· Rendimiento constante: poca diferencia entre el peor y el mejor caso.
Desventajas:
· Lento.
· Realiza numerosas comparaciones.

3.-Ordenamiento por Inserción

En este tipo de algoritmo los elementos que van a ser ordenados son considerados uno a la vez. Cada elemento es
INSERTADO en la posición apropiada con respecto al resto de los elementos ya ordenados.

Ventajas:
· Fácil implementación.
· Requerimientos mínimos de memoria.
Desventajas:
· Lento.
· Realiza numerosas comparaciones.
Este también es un algoritmo lento, pero puede ser de utilidad para listas que están ordenadas o semiordenadas, porque
en ese caso realiza muy pocos desplazamientos.

4.-Ordenamiento Rápido

Esta es probablemente la técnica más rápida conocida. Fue desarrollada por C.A.R. Hare en 1960. El algoritmo original
es recursivo, pero se utilizan versiones interactivas para mejorar su rendimiento (los algoritmos recursivos son en general
más lentos que los iterativos, y consumen más recursos). El algoritmo fundamental es el siguiente:
· Eliges un elemento de la lista.
· Buscas la posición que le corresponde en la lista ordenada.
· Acomodas los elementos de la lista a cada lado del elemento de división, de manera que a un lado queden todos los
menores que él y al otro los mayores . En este momento el elemento de división separa la lista en dos sublistas.
· Realizas esto de forma recursiva para cada sublista mientras éstas tengan un largo mayor que 1. Una vez terminado
este proceso todos los elementos estarán ordenados.
Una idea preliminar para ubicar el elemento de división en su posición final sería contar la cantidad de elementos
menores y colocarlo un lugar más arriba. Pero luego habría que mover todos estos elementos a la izquierda del
elemento, para que se cumpla la condición y pueda aplicarse la recursividad. Reflexionando un poco más se obtiene un
procedimiento mucho más efectivo. Se utilizan dos índices: i, al que llamaremos contador por la izquierda, y j, al que
llamaremos contador por la derecha. El algoritmo es éste:
· Recorres la lista simultáneamente con i y j: por la izquierda con i (desde el primer elemento), y por la derecha con j
(desde el último elemento).
· Cuando lista sea mayor que el elemento de división y lista[j] sea menor los intercambias.
· Repites esto hasta que se crucen los índices.
· El punto en que se cruzan los índices es la posición adecuada para colocar el elemento de división, porque sabemos
que a un lado los elementos son todos menores y al otro son todos mayores (o habrían sido intercambiados).
Al finalizar este procedimiento el elemento de división queda en una posición en que todos los elementos a su izquierda
son menores que él, y los que están a su derecha son mayores.
Ventajas:
· Muy rápido
· No requiere memoria adicional.
Desventajas:
· Implementación un poco más complicada.

Pá gina 9
MANUAL DE ALGORITMO
· Recursividad (utiliza muchos recursos).
· Mucha diferencia entre el peor y el mejor caso.

Ejemplos de los algoritmos

Pá gina 10
MANUAL DE ALGORITMO

¿Que es un pseudocódigo?
El pseudocódigo (falso lenguaje) es comunmente utilizado por los programadores para omitir
secciones de código o para dar una explicación del paradigma que tomó el mismo programador para
hacer sus códigos esto quiere decir que el pseudocódigo no es programable sino facilita la
programación.

El principal objetivo del pseudocódigo es el de representar la solución a un algoritmo de la forma


más detallada posible, y a su vez lo más parecida posible al lenguaje que posteriormente se utilizara
para la codificación del mismo.

Características y partes

Las principales características de este lenguaje son:

1. Se puede ejecutar en un ordenador


2. Es una forma de representación sencilla de utilizar y de manipular.
3. Facilita el paso del programa al lenguaje de programación.
4. Es independiente del lenguaje de programación que se vaya a utilizar.
5. Es un método que facilita la programación y solución al algoritmo del programa.

Todo documento en pseudocódigo debe permitir la descripción de:

1. Instrucciones primitivas.
2. Instrucciones de proceso.
3. Instrucciones de control.
4. Instrucciones compuestas.
5. Instrucciones de descripción.

Estructura a seguir en su realización:

1. Cabecera.
1. Programa.
2. Modulo.
3. Tipos de datos.
4. Constantes.
5. Variables.
2. Cuerpo.
1. Inicio.
2. Instrucciones.
3. La definición de datos se da por supuesta, sobre todo en las variables sencillas, si se
emplea formaciones: pilas, colas, vectores o registros, se pueden definir en la cabecera del
algoritmo, y naturalmente cuando empleemos el pseudocódigo para definir estructuras de
datos, esta parte la desarrollaremos adecuadamente Fin.

Pá gina 11
MANUAL DE ALGORITMO

Funciones y operaciones

Cada autor usa su propio pseudocódigo con sus respectivas convenciones. Por ejemplo, la
instrucción "reemplace el valor de la variable x por el valor de la variable y" puede ser representado
como:

 asigne a el valor de

Las operaciones aritméticas se representan de la forma usual en matemáticas.

Estructuras de control

En la redacción del pseudocódigo se utiliza tres tipos de estructuras de control: las secuenciales, las
selectivas y las iterativas.

Estructuras secuenciales

Las instrucciones se siguen en una secuencia fija que normalmente viene dada por el número de
renglón. Es decir que las instrucciones se ejecutan de arriba hacia abajo. Las instrucciones se
ejecutan dependiendo de la condición dada dentro del algoritmo.

Pá gina 12
MANUAL DE ALGORITMO

Estructuras selectivas

Las instrucciones selectivas representan instrucciones que pueden o no ejecutarse, según el


cumplimiento de una condición.

Diagrama de flujo que muestra el funcionamiento de la instrucción condicional.

La condición es una expresión booleana. Instrucciones es ejecutada sólo si la condición es


verdadera.

Selectiva doble (alternativa)

La instrucción selectiva realiza una instrucción de dos posibles, según el cumplimiento de una
condición.

Pá gina 13
MANUAL DE ALGORITMO

Diagrama de flujo que muestra el funcionamiento de la instrucción condicional.

La condición es una variable booleana o una función reducible a booleana (lógica, Verdadero/Falso).
Si esta condición es cierta se ejecuta Instrucciones1, si no es así, entonces se ejecuta Instrucciones2.

Selectiva múltiple

También es común el uso de una selección múltiple que equivaldría a anidar varias funciones de
selección.

Pá gina 14
MANUAL DE ALGORITMO

En este caso hay una serie de condiciones que tienen que ser mutuamente excluyentes, si una de
ellas se cumple las demás tienen que ser falsas necesariamente, hay un caso si no que será cierto
cuando las demás condiciones sean falsas.

En esta estructura si Condición1 es cierta, entonces se ejecuta sólo Instrucciones1. En general, si


Condicióni es verdadera, entonces sólo se ejecuta Instruccionesi

Selectiva múltiple-Casos

Una construcción similar a la anterior (equivalente en algunos casos) es la que se muestra a


continuación.

Pá gina 15
MANUAL DE ALGORITMO

En este caso hay un Indicador es una variable o una función cuyo valor es comparado en cada caso
con los valores "Valor", si en algún caso coinciden ambos valores, entonces se ejecutarán las
Instrucciones correspondientes. La sección en otro caso es análoga a la sección si no del ejemplo
anterior.

Estructuras iterativas

Las instrucciones iterativas representan la ejecución de instrucciones en más de una vez.

Bucle mientras

El bucle se repite mientras la condición sea cierta, si al llegar por primera vez al bucle mientras la
condición es falsa, el cuerpo del bucle no se ejecuta ninguna vez.

Diagrama de flujo que muestra el funcionamiento de la instrucción mientras

Bucle repetir

Existen otras variantes que se derivan a partir de la anterior. La estructura de control repetir se utiliza
cuando es necesario que el cuerpo del bucle se ejecuten al menos una vez y hasta que se cumpla la
condición:

Pá gina 16
MANUAL DE ALGORITMO

La estructura anterior equivaldría a escribir:

Bucle para

Una estructura de control muy común es el ciclo para, la cual se usa cuando se desea iterar un
número conocido de veces, empleando como índice una variable que se incrementa (o decremento):

la cual se define como:

Bucle para cada

Por último, también es común usar la estructura de control para cada. Esta sentencia se usa cuando
se tiene una lista o un conjunto L y se quiere iterar por cada uno de sus elementos:

Pá gina 17
MANUAL DE ALGORITMO

Si asumimos que los elementos de L son , entonces esta sentencia equivaldría


a:

Sin embargo, en la práctica existen mejores formas de implementar esta instrucción dependiendo del
problema.

Es importante recalcar que el pseudocódigo no es un lenguaje estandarizado. Eso significa que


diferentes autores podrían dar otras estructuras de control o bien usar estas mismas estructuras,
pero con una notación diferente. Sin embargo, las funciones matemáticas y lógicas toman el
significado usual que tienen en matemática y lógica, con las mismas expresiones.

El anidamiento

Cualquier instrucción puede ser sustituida por una estructura de control. El siguiente ejemplo
muestra el pseudocódigo del ordenamiento de burbuja, que tiene varias estructuras anidadas. Este
algoritmo ordena de menor a mayor los elementos de una lista L.

Pá gina 18
MANUAL DE ALGORITMO

En general, las estructuras anidadas se muestran endentadas, para hacer más sencilla su
identificación a simple vista. En el ejemplo, además de la indotación, se ha conectado con flechas
los pares de delimitadores de cada nivel de anidamiento.

Desarrollo de algoritmos

Con este pseudocódigo se puede desarrollar cualquier algoritmo que:

 Tenga un único punto de inicio.


 Tenga un número finito de posibles puntos de término.
 Haya un número finito de caminos, entre el punto de inicio y los posibles puntos de término.

Funciones y procedimientos

Muchas personas prefieren distinguir entre funciones y procedimientos. Una función, al igual que una
función matemática, recibe uno o varios valores de entrada y regresa una salida mientras que un
procedimiento recibe una entrada y no genera ninguna salida aunque en algún caso podría devolver
resultados a través de sus parámetros de entrada si estos se han declarado por referencia (ver
formas de pasar argumentos a una función o procedimiento).

En ambos casos es necesario dejar en claro cuáles son las entradas para el algoritmo, esto se hace
comúnmente colocando estos valores entre paréntesis al principio o bien declarándolo
explícitamente con un enunciado. En el caso de las funciones, es necesario colocar una palabra
como regresar o devolver para indicar cuál es la salida generada por el algoritmo. Por ejemplo, el
pseudocódigo de una función que permite calcular an (un número a elevado a potencia n).

Pá gina 19
MANUAL DE ALGORITMO

Pá gina 20
MANUAL DE ALGORITMO

Un ejemplo de procedimiento seria el algoritmo de Ordenamiento de burbuja, por el que partiendo de


una lista de valores estos se ordenan, nótese que en un procedimiento, no se calcula el valor de una
función, sino que se realiza una acción, en este caso ordenar la lista.

Ventajas del pseudocódigo sobre los diagramas de flujo


1. Ocupan mucho menos espacio en el desarrollo del problema.
2. Permite representar de forma fácil operaciones repetitivas complejas.
3. Es más sencilla la tarea de pasar de pseudocódigo a un lenguaje de programación formal.
4. Si se siguen las reglas de identación se puede observar claramente los niveles en la estructura del
programa.
5. En los procesos de aprendizaje de los alumnos de programación, estos están más cerca del paso
siguiente (codificación en un lenguaje determinado, que los que se inician en esto con la modalidad
Diagramas de Flujo).
6. Mejora la claridad de la solución de un problema

Pá gina 21
MANUAL DE ALGORITMO

DIAGRAMA DE FLUJO DE DATOS

Componentes de un Diagrama de Flujo de Datos (DFD) según la notación de Yourdon y DeMarco.

Un diagrama de flujo de datos (DFD por sus siglas en español e inglés) es una representación
gráfica del "flujo" de datos a través de un sistema de información. Un diagrama de flujo de datos
también se puede utilizar para la visualización de procesamiento de datos (diseño estructurado). Es
una práctica común para un diseñador dibujar un contexto a nivel de DFD que primero muestra la
interacción entre el sistema y las entidades externas. Este contexto a nivel de DFD se "explotó" para
mostrar más detalles del sistema que se está modelando.

Los diagramas de flujo de datos fueron inventados por Larry Constantine, el desarrollador original del
diseño estructurado, basado en el modelo de computación de Martin y Estrin: "flujo gráfico de
datos" . Los diagramas de flujo de datos (DFD) son una de las tres perspectivas esenciales de
Análisis de Sistemas Estructurados y Diseño por Método SSADM. El patrocinador de un proyecto y
los usuarios finales tendrán que ser informados y consultados en todas las etapas de una evolución
del sistema. Con un diagrama de flujo de datos, los usuarios van a poder visualizar la forma en que
el sistema funcione, lo que el sistema va a lograr, y cómo el sistema se pondrá en práctica. El
antiguo sistema de diagramas de flujo de datos puede ser elaborado y se comparó con el nuevo
sistema de diagramas de flujo para establecer diferencias y mejoras a aplicar para desarrollar un
sistema más eficiente. Los diagramas de flujo de datos pueden ser usados para proporcionar al
usuario final una idea física de cómo resultarán los datos a última instancia, y cómo tienen un efecto
sobre la estructura de todo el sistema. La manera en que cualquier sistema es desarrollado puede

Pá gina 22
MANUAL DE ALGORITMO

determinarse a través de un diagrama de flujo de datos. El desarrollo de un DFD ayuda en la


identificación de los datos de la transacción en el modelo de datos.

niveles, los cuales son:

 Nivel 0: Diagrama de contexto.


 Nivel 1: Diagrama de nivel superior.
 Nivel 2: Diagrama de detalle o expansión.

Características de los niveles

Diagrama de Contexto: Nivel 0

En el diagrama de contexto se caracterizan todas las interacciones que realiza un sistema con su
entorno (entidades externas), estas pueden ser otros sistemas, sectores internos a la organización, o
factores externos a la misma. Se dibuja un sólo proceso que representa al sistema en cuestión y se
escribe su nombre en dicha burbuja como un sustantivo común más adjetivos. De él solamente
parten los flujos de datos que denotan las interrelaciones entre el sistema y sus agentes externos, no
admitiéndose otros procesos ni almacenamientos en el dibujo.

Resulta de gran utilidad de balanceo para los niveles posteriores de análisis como herramienta de
balanceo.

Diagrama de Nivel Superior: Nivel 1

En el diagrama de nivel superior se plasman todos los procesos que describen al proceso principal.
En este nivel los procesos no suelen interrelacionarse directamente, sino que entre ellos debe existir
algún almacenamiento o entidad externa que los una. Esta regla de construcción sirve como ayuda
al analista para contemplar que en un nivel tan elevado de abstracción (DFD Nivel 1) es altamente
probable que la información que se maneja requiera ser almacenada en el sistema aunque no esté
especificado por un Requisito funcional, siendo en realidad un requisito no-funcional.

Diagrama de Detalle o Expansión: Nivel 2

En un diagrama de nivel 2 o mayor, comienzan a explotarse las excepciones a los caminos


principales de la información dado que aumenta progresivamente el nivel de detalle. De aquí en
adelante se permiten los flujos entre procesos.

El DFD nivel 2 puede considerarse el máximo para ser validado en forma conjunta con el usuario
dado que en los niveles posteriores el alto grado de complejidad del diagrama puede resultar de muy
difícil lectura para personas ajenas al equipo de sistemas. También se recomienda el diagrama de
nivel superior.

Pá gina 23
MANUAL DE ALGORITMO

PROGRAMACIÓN
LOS DATOS Y OPERACIONES BÁSICAS.
1. IDENTIFICADOR. Un identificador es una serie de caracteres formados por letras, dígitos y el carácter
subrayado ( _ ) que no inicie con dígito, así mismo es el nombre que damos a todo lo que manipulamos dentro de
un programa (variables, constantes, funciones, etc. . Por ejemplo variables, constantes, funciones, tipos definidos
por el usuario etc.
2. TIPOS DE DATOS. Todos los datos tienen un tipo asociado con ellos. Un dato puede ser un simple carácter, tal
como b, un valor entero tal como 35. El tipo de dato determina la naturaleza del conjunto de valores que puede
tomar una variable.

Pá gina 24
MANUAL DE ALGORITMO

Que son las variables


Una variable es un identificador que puede tomar diferentes valores dependiendo del tipo que esta se declare.
Una variable es un identificador que puede cambiar de valor durante la ejecución de un programa.
Una variable es una posición de memoria donde se puede almacenar una valor para uso de un programa.
INICIALIZACIÓN DE VARIABLES
Inicializar una variable es el darle un valor después que se ha declarado pero antes de que se ejecuten las
sentencias en las que se emplea.
CONSTANTES. Constantes son los valores que no pueden ser modificados. En C, pueden ser de cualquier tipo de
datos.
Además de los ejemplificados anteriormente, Podemos crear constantes de caracteres con barra invertida. Estos
corresponden a los caracteres que son imposibles introducir desde el teclado.

Recomendaciones para el diseño de Diagramas de Flujo.


Un diagrama de flujo es la representación gráfica de un algoritmo. También se puede decir que es la
representación detallada en forma gráfica de como deben realizarse los pasos en la computadora para producir
resultados.
Esta representación gráfica se da cuando varios símbolos (que indican diferentes procesos en la computadora), se
relacionan entre si mediante líneas que indican el orden en que se deben ejecutar los procesos.
Los símbolos utilizados han sido normalizados por el instituto norteamericano de normalización (ANSI).

 Todo diagrama debe tener un inicio y un fin.

 Se deben se usar solamente líneas de flujo horizontales y/o verticales.

 Se debe evitar el cruce de líneas utilizando los conectores.

 Se deben usar conectores solo cuando sea necesario.

 No deben quedar líneas de flujo son conectar.

 Se deben trazar los símbolos de manera que se puedan leer de arriba hacia abajo y de izquierda a
derecha.

 Todo texto escrito dentro de un símbolo deberá ser escrito claramente, evitando el uso de muchas
palabras.

 Evitar la terminología de un lenguaje de programacióno maquina.

 Utilizar comentarios ya sea al margen o mediante el símbolo grafico comentarios para que este sea
entendible por cualquier persona que lo consulte.

Pá gina 25
MANUAL DE ALGORITMO


 Si el diagrama abarca mas de una hoja es conveniente enumerarlo e identificar de donde viene y a donde
se dirige.

2. Pseudocódigo
Mezcla de lenguaje de programación y español(o ingles o cualquier otro idioma) que se emplea, dentro de la
programación estructurada, para realizar el diseño de un programa. En esencial, el pseudocódigo se puede definir
como un lenguaje de especificaciones de algoritmos.
Es la representación narrativa de los pasos que debe seguir un algoritmo para dar solución a un problema
determinado. El pseudocódigo utiliza palabras que indican el proceso a realizar.
El pseudocódigo se concibió para superar las dos principales desventajas del Diagrama de Flujo: el diagrama de
flujo es lento de crear y difícil de modificar sin un nuevo redibujo. Por otra parte el pseudocódigo es mas fácil de
utilizar ya que es similar al lenguaje natural.
Al contrario de los lenguajes de programación de alto nivel como Pascalo Basic no existe un conjunto de reglas
que definan con precisión lo que es y lo que no es pseudocódigo. Varia de un programador a otro.
El pseudocódigo requiere de ciertos símbolos que ya tienen significado preciso y establecido a los que se les
conoce como palabras clave. Es necesario que exista una palabra clave para la selección y otra para la iteración
condicional, así como para las instrucciones adicionales y otras estructuras de control.
Programación estructurada
Método disciplinado de escribir programas que sean claros, que se demuestren que son correctos y fáciles de
modificar
Un programa se compone de:
a.
b. Estructuras de datos.- Los hechos reales, representación en forma de datos, manera en que se organizan
los datos.
c. Operaciones primitivas elementales.- Son accionesque se ejecutan sobre los datos para transformarlos
en información.
d. Estructuras de control.- Son los métodosque existen para dirigir el flujo de acciones que la computadora
deberá ejecutar sobre los datos manejados por el programa.

Estructura de control secuencial


La computadora ejecutará automáticamente enunciados uno después del otro, en el orden en el cual se han escrito
de inicio a fin.

Pá gina 26
MANUAL DE ALGORITMO

Ejemplo Sumar dos números:


Pseudocódigo
Inicio
Entero a,b,c declara las variables a utilizar
Leer a,b solicita el valor de a y b
c= a+b suma a y b y lo almacena en c
Imprimir c muestra el resultado almacenado en la variable c
fin
Diagrama de flujo

Pá gina 27
MANUAL DE ALGORITMO

ESTRUCTURA DE CONTROL SELECTIVA


Existen tres tipos de estructuras de control selectivas, estas se basan en una condición o en una opción para
decidir la parte del programa por el que pasará.
a.
b. Simple b)Doble o compuesta c)Múltiple

Selectiva simple.- evalúa una condición, si esta es verdadera ejecuta la acción o acciones especificadas, si es falsa
no realiza ninguna acción.

Nota:Si existe sola una instrucción o sentencia dentro de la condición no es necesario marcarlos con inicio y fin, en
caso contrario si, como se muestra en el diagrama anterior.
Selectiva doble o compuesta .- evalúa una condición, si esta es verdadera ejecuta la acción o acciones
especificadas, si es falsa ejecuta otra acción o acciones.

Nota: Si existe sola una instrucción o sentencia dentro de la condición no es necesario marcarlos con inicio y fin
como en este caso que la condición fue falsa, en caso contrario si, en este ejemplo cuando la condición fue
verdadera.

Pá gina 28
MANUAL DE ALGORITMO

Ejemplo: Imprimir si un número es positivo o negativo

Nota: las variables no se especifican en el diagrama de flujo, pero si en el pseudocódigo .

En programación, las variables son estructuras de datos que, como su nombre indica, pueden
cambiar de contenido a lo largo de la ejecución de un programa. Una variable corresponde a un área
reservada en la memoria principal del ordenador pudiendo ser de longitud:

 Fija.- Cuando el tamaño de la misma no variará a lo largo de la ejecución del programa.


Todas las variables, sean del tipo que sean tienen longitud fija, salvo algunas excepciones
— como las colecciones de otras variables (arrays) o las cadenas.
 Variable.- Cuando el tamaño de la misma puede variar a lo largo de la ejecución.
Típicamente colecciones de datos.

Pá gina 29
MANUAL DE ALGORITMO

Que es una constante


Una constante representa a un valor (dato almacenado en memoria) que no puede cambiar
durante la ejecución de un programa.

En C, una constante puede ser de tipo entero, real, carácter, cadena o enumerado. Las
constantes de tipo enumerado se van a estudiar en el apartado 4.1 Datos de tipos
enumerados. En cuanto a las demás, se pueden expresar de dos formas diferentes:

1. Por su valor.
2. Con un nombre (identificador).

Ejemplo 1: Las siguientes constantes de tipo entero están expresadas por su valor:

   -5
   10

Para expresar una constante con un nombre, la constante debe ser declarada previamente.
Todas las constantes que se declaran en un programa son definidas de la misma forma,
indicando de cada una de ellas:

1. Su nombre (mediante un identificador).


2. El valor que simboliza (mediante una expresión).

En pseudocódigo, para declarar una constante, vamos a utilizar la sintaxis:

<nombre_de_la_constante> = <expresión>
 

Y para declarar más de una constante en una misma línea, las separaremos por medio de
comas (,).

Ejemplo 2: De modo que, si se quieren declarar las constantes de tipo entero del ejemplo 1,
asignándoles un identificador, se puede escribir, por ejemplo:

   TEMPERATURA = -5
   MES = 10

O también:

   TEMPERATURA = -5, MES = 10

Pá gina 30
MANUAL DE ALGORITMO

En programación es una buena práctica escribir los identificadores de las constantes en


mayúsculas, de esta forma es más fácil localizarlos en el código de un programa (o
algoritmo). Durante la ejecución de un programa, por medio del identificador de una
constante, se puede hacer referencia al valor (dato) que simboliza, tantas veces como sea
necesario

Pá gina 31
MANUAL DE ALGORITMO

Tipos de datos
Precisión. "Cada paso de un algoritmo debe estar precisamente definido; las operaciones a llevar a
cabo deben ser especificadas de manera rigurosa y no ambigua para cada caso".

Entrada. "Un algoritmo tiene cero o más entradas: cantidades que le son dadas antes de que el
algoritmo comience, o dinámicamente mientras el algoritmo corre. Estas entradas son tomadas de
conjuntos específicos de objetos".

Salida. "Un algoritmo tiene una o más salidas: cantidades que tienen una relación específica con las
entradas".

Eficacia. "También se espera que un algoritmo sea eficaz, en el sentido de que todas las
operaciones a realizar en un algoritmo deben ser suficientemente básicas como para que en
principio puedan ser hechas de manera exacta y en un tiempo finito por un hombre usando lápiz y
papel".

Knuth admite que, aunque su descripción pueda ser intuitivamente clara, carece de rigor formal,
puesto que no está exactamente claro qué significa "precisamente definido", "de manera rigurosa y
no ambigua", o "suficientemente básicas", y así sucesivamente.

Pá gina 32
MANUAL DE ALGORITMO

OPERADORES

Operadores y Operandos

Operadores: Son elementos que relacionan de forma diferente, los valores de una o mas
variables y/o constantes. Es decir, los operadores nos permiten manipular valores.

   Los Tipos de Operadores  que existen son tres: los relaciónales, los Aritméticos y por último los
lógicos

Operadores Aritméticos: Los operadores aritméticos permiten la realización de operaciones


matemáticas con los valores (variables y constantes).
  Los operadores aritméticos pueden ser utilizados con tipos de datos enteros o reales. Si ambos
son enteros, el resultado es entero; si alguno de ellos es real, el resultado es real.

Operando (Operador) Operando


Valor
(constante o variable)

  Operadores Aritméticos
   +  Suma
   -  Resta
   *  Multiplicación
   /  División
   Mod  Modulo  (residuo de la división entera)

 Ejemplos:
 Expresión Resultado
  7 / 2         3.5
  12 mod 7    5
  4  + 2 * 5  14

Prioridad de los Operadores Aritméticos

* Todas las expresiones entre paréntesis se evalúan primero. Las expresiones con paréntesis
anidados se evalúan de dentro a fuera, el paréntesis mas interno se evalúa primero.
* Dentro de una misma expresión los operadores se evalúan en el siguiente orden.

   1.- ^ Exponenciación
   2.- *, /, mod Multiplicación, división, modulo.
   3.- +, - Suma y resta.

* Los operadores en una misma expresión con igual nivel de prioridad se evalúan de izquierda a
derecha.

 Ejemplos:
  4 + 2 * 5 = 14
  23 * 2 / 5 = 9.2    46 / 5 = 9.2
  3 + 5 * (10 - (2 + 4)) = 23  3 + 5 * (10 - 6) = 3 + 5 * 4 = 3 + 20 = 23

Pá gina 33
MANUAL DE ALGORITMO
  3.5 + 5.09 - 14.0 / 40 = 5.09  3.5 + 5.09 - 3.5 = 8.59 - 3.5 = 5.09
  2.1 * (1.5 + 3.0 * 4.1) = 28.98  2.1 * (1.5 + 12.3) = 2.1 * 13.8 = 28.98

Operadores Relaciónales:

* Se utilizan para establecer una relación entre dos valores.


* Compara estos valores entre si y esta comparación produce un resultado de certeza o falsedad
(verdadero o falso).
* Los operadores relaciónales comparan valores del mismo tipo (numéricos o cadenas)
* Tienen el mismo nivel de prioridad en su evaluación.
* Los operadores relaciónales tiene menor prioridad que los aritméticos.

 Los operadores Relaciónales son:


   > Mayor que
   < Menor que
   > = Mayor o igual que
   < =  Menor o igual que
   < > Diferente
   = Igual

 Ejemplos:
  Si a = 10 b = 20  c = 30

   a + b > c     Falso


   a - b < c     Verdadero
   a - b = c     Falso
   a * b < > c Verdadero

 Ejemplos no lógicos:
   a < b < c
   10 < 20 < 30
         T    < 30  (no es lógico porque tiene diferentes operandos)

Operadores Lógicos:

* Estos operadores se utilizan para establecer relaciones entre valores lógicos.


* Estos valores pueden ser resultado de una expresión relacional.

 Operadores Lógicos
  And     Y
  Or       O
  Not     Negación

Operador And
Operando1   Operador   Operando2   Resultado
     T     AND       T       T
     T                     F       F
     F                     T       F
     F                     F       F

Operador Or
Operando1   Operador   Operando2   Resultado
     T     OR       T       T

Pá gina 34
MANUAL DE ALGORITMO
     T                  F       T
     F                  T       T
     F                  F       F

Operador Not
Operando   Resultado
     T       F
     F       T
 

 Ejemplos:

(a < b) and (b < c)


  (10<20) and (20<30)
   T     and      T
 T

Prioridad de los Operadores Lógicos


 Not
 And
 Or
 

Prioridad de los Operadores en General


 1.-  ( )
 2.-  ^
 3.-  *, /, Mod, Not
 4.-  +, -, And
 5.-  >, <, > =, < =, < >, =, Or
 

Ejemplo:
  a = 10 b = 12 c = 13 d =10

((a > b)or(a < c)) and ((a = c) or (a > = b))


F           T                  F                 F
T                                F
F

Pá gina 35
MANUAL DE ALGORITMO

SIMBOLOS DE DIAGRAMAS DE FLUJO

REPRESENTACION SIMBOLO EXPLICACION SIMBOLO

Símbolo utilizado para marcar el inicio y el fin de diagrama de


flujo.

Símbolo utilizado para introducir los datos de entrada. Expresa


lectura.

Símbolo utilizado para representar una decisión. En su interior


se almacena una condición y dependiendo del resultado de la
evaluación de la misma se sigue por una de las ramas o
caminos alternativos. Este símbolo se utiliza en la estructura
selectiva si entonces y en las estructuras repetitivas repetir y
mientras.

NO

Símbolo utilizado para representar la estructura selectiva doble


si entonces/sino. En su interior se almacena una condición. Si
el resultado es verdadero se continúa por el camino de la
izquierda, y si es falso por el camino de la derecha.
SI

Símbolo utilizado para representar una decisión múltiple. En su


interior se almacena un selector, y dependiendo del valor de
dicho selector se sigue por una de las ramas o caminos
alternativos. Este símbolo se utiliza en la estructura selectiva
si múltiple,

Pá gina 36
MANUAL DE ALGORITMO

Símbolo utilizado para representar la impresión de un


resultado. Expresa escritura.

Símbolos utilizados para expresar la dirección del flujo del


diagrama.

Símbolo utilizado para expresar conexión dentro de una


misma pagina.

Símbolo utilizado para expresar conexión entre paginas


diferentes.

Símbolo utilizado para expresar un modulo de un problema.


En realidad expresa que para continuar con el flujo normal del
diagrama debemos primero resolver el subproblema que
enuncia en su interior.

Pá gina 37
MANUAL DE ALGORITMO

(OPERACIONES BASICAS)

IF

EJEMPLOS:

1.- Construya un diagrama de flujo tal que dadas la base y la altura de un triangulo, calcule e
imprima su superficie.

INICIO

BASE, ALTU

SUP =(BASE*ALTU)/2

SUP

FIN

Pá gina 38
MANUAL DE ALGORITMO

2.- Construya un diagrama de flujo tal que dado como datos el radio y la altura de un cilindro,
calcule e imprima el área y su volumen.

INICIO

RADIO, ALTU

VOL= 3.1416*(RADIO**2)/ALTU
ARE=2*3.1416*RADIO*ALTU

VOL, ARE

FIN

3.-Construya el diagrama de flujo que calcule e imprima el numero de segundos que hay en un
determinado numero de días.
INICIO

DIAS

SEG= DIAS*24 * 60 * 60

“En”, DIAS, hay, SEG


“Segundos”

FIN

Pá gina 39
MANUAL DE ALGORITMO

EJERCICIOS PARA RESOLVER:

1.- Construya un diagrama de flujo tal que dado el costo de un artículo vendido y la cantidad de
dinero entregada por el cliente, calcule e imprima el cambio que se debe entregar al mismo.

2.- Escriba un diagrama de flujo tal que dado como datos el nombre de un dinosaurio, su peso y su
longitud, expresados estos dos últimos en libras y pies respectivamente; escriba el nombre del
dinosaurio, su peso expresado en kilogramos y su longitud expresada en metros.

3.- Construya un diagrama de flujo que resuelva el problema que tienen en una gasolinera. Los
surtidores de la misma registran lo que “surten” en galones, pero el precio de la gasolina esta fijada
en litros. El diagrama de flujo debe calcular e imprimir lo que hay que cobrarle al cliente.

4.- Dada la matricula y 5 calificaciones de un alumno obtenidas a lo largo del semestre, construya
un diagrama de flujo que imprima la matricula del alumno y el promedio de sus calificaciones.

5.-Escriba un diagrama de flujo que permita calcular e imprimir el cuadrado y el cubo de un numero
entero positivo NUM.

IF ANIDADOS

Un if anidado es un if que es el objeto de otro if o else. Una sentencia else siempre se refiere al
if más próximo que esté en el mismo bloque. Un compilador bajo el estándar ANSI permite
tener como máximo 15 niveles de profundidad.

Es posible encadenar varios ifs y varios elses en algo conocido como escalera if- else -if por su
apariencia visual.

Pá gina 40
MANUAL DE ALGORITMO

Las condiciones son evaluadas de arriba hacia abajo. Tan pronto se cumpla con una
condición, las sentencias asociadas a ella son ejecutadas y el resto de la escalera es brincado.
Si ninguna de las condiciones son ciertas, el último else es ejecutado (si está presente).

EJEMPLOS:

1.- Construya un diagrama de flujo tal que dado como dato la calificación de un alumno en un
examen, escriba “aprobado” en caso de que esa calificación sea mayor a 8.

INICIO

CAL

CAL> 8 NO

SI
“Aprobado”

FIN

Pá gina 41
MANUAL DE ALGORITMO
2.- Dado como dato el sueldo de un trabajador, aplique un aumento del 15% si su sueldo es
inferior a $ 1000. Imprima en este caso el nuevo sueldo del trabajador. Haga el diagrama de flujo
correspondiente.

INICIO

SUE

SUE<1000
NO

SI

AUM= SUE + 0.15


NSUE=SUE+AUM

NSUE

FIN

Pá gina 42
MANUAL DE ALGORITMO
3.- Construya un diagrama de flujo tal que dado como dato la calificación de un alumno en un
examen, escriba “aprobado” si su calificación es mayor o igual que 8 y “reprobado” en caso
contrario.

INICIO

CAL

CAL > 8

“Aprobado” “Reprobado”

FIN

EJERICICIOS PARA RESOLVER:

1.- construya un diagrama de flujo talque dado como dato el sueldo de un trabajador, le aplique un
aumento del 15% si su sueldo es inferior a $1000 y 12% en caso contrario. Imprima el nuevo
sueldo del trabajador.

2.- Construya un diagrama de flujo tal que dado como datos los valores enteros P y Q, determine
si los mismos siguiente expresión. P3 + Q4 – 2*P2 < 680

3.-Construya un diagrama de flujo que le permita calcular la temperatura, teniendo en cuenta el


numero de sonidos emitidos por el grillo.

4.- Construya un diagrama de flujo tal que dado como datos de entrada tres números enteros,
determine si los números están en orden decreciente.

Pá gina 43
MANUAL DE ALGORITMO

SWITCH   
Esta estructura permite considerar decisiones para más de dos posibilidades

EJEMPLOS:

EJERCICIOS PARA RESOLVER:

1.- Un almacén de alimentos, atendiendo al monto anual que los clientes compran al almacén, los
clasifica y les otorga descuentos permanentes según la tabla que se muestra a continuación:
a.- Cliente Preferente
    recibe el 5% de descuento en montos menores a 500.00 pesos
    recibe el 10% de descuento en montos de 500.00 pesos o más
b.- Cliente especial
    recibe el 2% de descuento en montos menores a 500.00 pesos
    recibe el 5% de descuento en montos de 500.00 pesos o más
c.- Cliente Ordinario
    no recibe descuento

2.-

SWITCH ANIDADOS
EJEMPLOS:

EJERCICIOS PARA RESOLVER:

-   

Pá gina 44
MANUAL DE ALGORITMO

       CICLOS REPETITIVOS, (SIMPLES Y ANIDADOS).

FOR
La estructura repetir conocida comúnmente como FOR, es la estructura algorítmica adecuada
para utilizar en un ciclo que se ejecutara en un numero definido de veces. Este tipo de estructura
esta presente en todos los lenguajes de programación, ya sean estructurados u orientados a
objetos. Por ejemplo cuando necesitamos calcular la nomina total de la empresa, tenemos que
sumar los sueldos de los N empleados de la misma. Cuando necesitamos obtener el promedio de
calificaciones de un curso, debemos sumar N calificaciones de los alumnos y dividir esa suma
entre N. es decir sabemos de antemano cuantas veces tenemos que repetir una determinada
operación, acción o tarea. El número de veces se obtiene del planteamiento del problema o de una
lectura que indica que el número de iteraciones se debe realizar para N ocurrencias.

EJEMPLOS:

1.- Construya un diagrama de flujo tal que dado como datos los sueldos de 10 trabajadores de una
empresa, obtenga el total de nomina de la misma. Considere que además que no puede utilizar
estructuras algorítmicas repetitivas en la solución del problema.

Datos: SUE1, SUE2, SUE3, SUE4, SUE5, SUE6, SUE7, SUE8, SUE9, SUE10.
INICIO

NOMINA=0

I=1

NO
1<10
SI
SUE

NOMINA= NOMINA +
SUE

I=I+1

NOMINA

FIN

Pá gina 45
MANUAL DE ALGORITMO
2.- Escriba un diagrama de flujo tal que dado como datos N números enteros, obtenga el numero
de ceros que hay entre estos números.
INICIO
Datos: N, NUM1, NUM2,…,NUMN

CUECER=0

I=1

NO
1<N
SI
NUM

NUM=0 NO

SI
CUECER= CUECER+1

I=I+1

CUECER

WHILE FIN

La estructura algorítmica mientras, comúnmente conocida como while, es la estructura adecuada


para utilizar en un ciclo cuando no sabemos el número de veces que este se ha de repetir. Dicho
numero depende de las proposiciones dentro del ciclo por ejemplo, supongamos que tenemos que
obtener el total de una serie de gastos, pero no sabemos exactamente cuantos son; o cuando
tenemos que sacar el promedio de calificaciones de un examen, pero no sabemos precisamente
cuantos alumnos lo aplicaron. Tenemos que sumar las calificaciones e ir contando el numero de
alumnos, esto con el fin de poder obtener posteriormente el promedio. El ciclo se repite mientras
tengamos calificaciones de alumnos.

En la estructura mientras se distinguen dos partes:

Ciclo: conjunto de instrucciones que se ejecutaran repetidamente.

Condición de terminación: la evaluación de esta condición permite decidir cuando finalizara la


ejecución del ciclo, La condición se evalua al inicio del mismo.

EJEMPLOS:

Pá gina 46
MANUAL DE ALGORITMO
1.- Supongamos que debemos obtener la suma de los gastos que hicimos en nuestro ultimo viaje,
pero no sabemos exactamente cuantos fueron. Los datos son expresados en forma:

Datos: GASTO1, GASTO2,…, -1


INICIO

SUMGAS=0

GASTO

NO
GASTO <>-1

SI

NOMINA= NOMINA + SUE

I=I+1

NOMINA

FIN

2.- Escriba un diagrama de flujo tal que dado un grupo de numero naturales positivos, calcule e
imprima el cubo de estos números. INICIO

NUM

NO
NUM <>-1

SI
CUB=NUM**3

NUM

FIN

Pá gina 47
MANUAL DE ALGORITMO

3.- Escriba un diagrama de flujo que lea un numero entero N y calcule la suma de la
siguiente serie: 11 + 22 + 33 +… NN

INICIO

SERIE=0

I=1

1<N

SERIE= SERIE + 1*1


I=I+1

SERIE

FIN

EJERCICIOS PARA RESOLVER

1.- Realiza un diagrama de flujo que calcule el término número 180 de la secuencia
FIBONACCI. Recuerde que los dos primeros números de la serie son 0 y 1. El resto se
calcula como la suma de los números inmediatos que le preceden.

2.-De una empresa con N empleados, necesitamos obtener el numero de empleado y


sueldo del trabajador con el mayor sueldo de la empresa. Haga el diagrama de flujo
correspondiente.

Pá gina 48
MANUAL DE ALGORITMO

3.-En el centro meteorológico de Argentina se llevan los promedios mensuales de las


lluvias caídas en las principales región es cerealeras del país. Existen 3 regiones
importantes denominadas NORTEM CENTRO Y SUR. Haga un diagrama de flujo para
calcular lo siguiente.

a) el promedio anual de la región centro.


b) el mes y registro con menor lluvia en la región sur
c) La región con mayor anual (considere que los registros anuales de las regiones son
diferentes)

4.- Escriba un diagrama de flujo tal que dado como datos 270 números enteros, obtenga
la suma de los números impares y el promedio de los números pares.

5.- Escriba un diagrama de flujo que obtenga la suma e imprima los términos de la
siguiente serie. 2, 5, 7, 10, 12, 15,17, . . . , 1 800

DO WHILE

Pá gina 49
MANUAL DE ALGORITMO

VECTORES.

Vector es un arreglo unidimensional de tipo entero que se encuentra ordenado en forma


ascendente.

Ejemplos:

Ejercicios por resolver:

1.- Escriba un diagrama de flujo tal que dado como entrada un arreglo unidimensional números reales,
obtenga como resultado la suma de los mismos.

2.- Construya un programa tal que dado como entrada un arreglo unidimensional de enteros y un
numero entero, determine cuantas veces se encuentra el numero dentro de arreglo.

3.- Construya un diagrama de flujo que permita insertar y eliminar elementos en un arreglo
unidimensional que se encuentra desordenado.

4.- Construya un diagrama de flujo que permita insertar y eliminar elementos en un arreglo
unidimensional de tipo entero que se encuentra desordenado.

5.- Construya un diagrama de flujo para almacenar en un arreglo unidimensional los 100 primeros
números Fibonacci. Imprima al final el arreglo correspondiente.

-      

Pá gina 50
MANUAL DE ALGORITMO

MATRICES

Dada una matriz A(M X N) de tipo entero, construya un diagrama de flujo para calcular la
traspuesta de dicha matriz. La traspuesta de una matriz se obtiene al escribir las filas de la matriz A
como columnas. Por ejemplo si tenemos la siguiente matriz A.

-5 6 8 4

A 2 5 7 9

1 3 4 6

La transpuesta de dicha matriz es la siguiente.

-5 2 1

AT 6 5 3

8 7 4

4 9 6

Pá gina 51
MANUAL DE ALGORITMO

BIBLIOGRAFIA
 D Appleby, y J.J. VandeKopple, Lenguajes de
programación: paradigma y práctica, McGraw-Hill
Interamericana, 1998

 T.W. Pratt y M.V. Zelkowitz, Lenguajes de programación: diseño
e implementación, Prentice-Hall Hispanoamericana, 3 ed., 1998

 R. Sethi, Lenguajes de programación: conceptos y
constructores , Addison-Wesley Iberoamericana, 1992

Pá gina 52

You might also like