Sie sind auf Seite 1von 40

ALGORITMOS

COMPUTACIONALES Y
PROGRAMACIN
Facultad de Ingeniera

L.I. Victor Fernndez Rosales


victorzel@yahoo.com.mx

algoritmos

2016

Contenido
Concepto de algoritmo y sus caractersticas ....................................................................................... 3
Concepto de algoritmo........................................................................................................................ 3
Los pasos para la resolucin de un problema son: ............................................................................. 3
Caractersticas de los algoritmos ........................................................................................................ 4
Los lenguajes de programacin........................................................................................................... 5
Instrucciones a la computadora .......................................................................................................... 5
Lenguajes mquina ............................................................................................................................. 6
Lenguajes de bajo nivel ....................................................................................................................... 7
Lenguajes de alto nivel ........................................................................................................................ 8
Fases en la resolucin de problemas .................................................................................................. 9
Anlisis del problema .................................................................................................................... 10
Diseo del algoritmo ..................................................................................................................... 10
Codificacin de un programa ........................................................................................................ 11
Compilacin y ejecucin de un programa ..................................................................................... 12
Verificacin y depuracin de un programa ................................................................................... 12
Documentacin y mantenimiento ................................................................................................ 13
Constantes y variables....................................................................................................................... 13
Constantes..................................................................................................................................... 13
Variables ........................................................................................................................................ 14
Por su contenido: ...................................................................................................................... 14
Por su uso: ................................................................................................................................. 15
Expresiones ....................................................................................................................................... 17
Estructuras de control (bsicas) ........................................................................................................ 19
Estructuras secuenciales ............................................................................................................... 19
Estructuras selectivas .................................................................................................................... 20
Simples ...................................................................................................................................... 20
Dobles ........................................................................................................................................ 20
Mltiple ..................................................................................................................................... 20
Estructuras repetitivas .................................................................................................................. 21
Mientras .................................................................................................................................... 21

1|Pgina
Victor Fernndez Rosales

algoritmos

2016

Hasta ......................................................................................................................................... 22
Desde ......................................................................................................................................... 22
Estructuras anidadas ..................................................................................................................... 23
Herramientas de programacin ........................................................................................................ 24
Diagrama de flujo .......................................................................................................................... 24
Diagrama de Nassi-Shneiderman .................................................................................................. 25
Diagrama de flujo convencional .................................................................................................... 32
Pseudocdigo ................................................................................................................................ 37
Ejercicios............................................................................................................................................ 39

2|Pgina
Victor Fernndez Rosales

algoritmos

2016

Concepto de algoritmo y sus caractersticas


Concepto de algoritmo
Un algoritmo es un mtodo para resolver un problema. Aunque la popularizacin del
trmino ha llegado con el advenimiento de la era informtica, algoritmo proviene de
Mohammed Al-Khwarizmi, matemtico persa que vivi durante el siglo IX y alcanz gran
reputacin por el enunciado de las reglas paso a paso para sumar, restar, multiplicar y
dividir nmeros decimales; la traduccin al latn del apellido en la palabra algorismus deriv
posteriormente en algoritmo. Euclides, el gran matemtico griego (del siglo IV a. c.) que
invent un mtodo para encontrar el mximo comn divisor de dos nmeros, se considera
con Al-Khwarizmi el otro gran padre de la algoritmia (ciencia que trata de los algoritmos).
El profesor Niklaus Wirth -inventor de Pascal, Modula-2 y Oberon- titul uno de sus ms
famosos libros, Algoritmos + Estructuras de datos = Programas, significndonos que slo se
puede llegar a realizar un buen programa con el diseo de un algoritmo y una correcta
estructura de datos.
La resolucin de un problema exige el diseo de un algoritmo que resuelva el problema
propuesto.
Problema

Diseo del
algoritmo

Programa de
computadora

Figura 1 Resolucin de un problema

Los pasos para la resolucin de un problema son:


1. Diseo del algoritmo que describe la secuencia ordenada de pasos -sin
ambigedades- que conducen a la solucin de un problema dado. (Anlisis del
problema y desarrollo del algoritmo.)
2. Expresar el algoritmo como un programa en un lenguaje de programacin
adecuado. (Fase de codificacin.)
3. Ejecucin y validacin del programa por la computadora.
Para llegar a la realizacin de un programa es necesario el diseo previo de un algoritmo,
de modo que sin algoritmo no puede existir un programa.
Los algoritmos son independientes tanto del lenguaje de programacin en que se expresan
como de la computadora que los ejecuta. En cada problema el algoritmo se puede expresar
en un lenguaje diferente de programacin y ejecutarse en una computadora distinta; sin
embargo, el algoritmo ser siempre el mismo. As, por ejemplo, en una analoga con la vida
diaria, una receta de un plato de cocina se puede expresar en espaol, ingls o francs, pero
cualquiera que sea el lenguaje, los pasos para la elaboracin del plato se realizarn sin
importar el idioma del cocinero.
3|Pgina
Victor Fernndez Rosales

algoritmos

2016

En la ciencia de la computacin y en la programacin, los algoritmos son ms importantes


que los lenguajes de programacin o las computadoras. Un lenguaje de programacin es
tan slo un medio para expresar un algoritmo y una computadora es slo un procesador
para ejecutarlo. Tanto el lenguaje de programacin como la computadora son los medios
para obtener un fin: conseguir que el algoritmo se ejecute y se efecte el proceso
correspondiente.

Caractersticas de los algoritmos


Las caractersticas fundamentales que debe cumplir todo algoritmo son:

Un algoritmo debe ser preciso e indicar el orden de realizacin 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 algn
momento; o sea, debe tener un nmero finito de pasos.

La definicin de un algoritmo debe describir tres partes: Entrada, Proceso y Salida. En el


algoritmo de receta de cocina citado anteriormente se tendr:
Entrada: ingredientes y utensilios empleados.
Proceso: elaboracin de la receta en la cocina.
Salida: terminacin del plato (por ejemplo, cordero).
Ejemplo 1
Un cliente ejecuta un pedido a una fbrica. La fbrica examina en su banco de datos la ficha
del cliente, si el cliente es solvente entonces la empresa acepta el pedido; en caso contrario,
rechazar el pedido.
Redactar el algoritmo correspondiente.
Los pasos del algoritmo son:
1. Inicio.
2. Leer el pedido.
3. Examinar la ficha del cliente.
4. Si el cliente es solvente, aceptar pedido; en caso contrario, rechazar pedido.
5. Fin.

Ejemplo 2
Realizar la suma de todos los nmeros pares entre 2 y 1000.
4|Pgina
Victor Fernndez Rosales

algoritmos

2016

El problema consiste en sumar 2 + 4 + 6 + 8 . . . + 1000. Utilizaremos las palabras SUMA


y NUMERO (variables, sern denominadas ms tarde) para representar las sumas sucesivas
( 2 + 4 ) , ( 2 + 4 + 6 ) , ( 2 + 4 + 6 + 8 ) , etc. La solucin se puede escribir con el siguiente
algoritmo:
El problema consiste en sumar 2 + 4 + 6 + 8 . . . + 1000. Utilizaremos las palabras SUMA
1. Inicio.
2. Establecer SUMA a 0.
3. Establecer NUMERO a 2.
4. Sumar NUMERO a SUMA. El resultado ser el nuevo valor de la suma (SUMA).
5. Incrementar NUMERO en 2 unidades.
6. Si NUMERO <= 1000 bifurcar al paso 4; en caso contrario, escribir el ultimo valor de SUMA
y terminar el proceso.
7. Fin.

Los lenguajes de programacin


Como se ha visto en el apartado anterior, para que un procesador realice un proceso se le
debe suministrar en primer lugar un algoritmo adecuado. El procesador debe ser capaz de
interpretar el algoritmo, lo que significa:

Comprender las instrucciones de cada paso.


Realizar las operaciones correspondientes.

Cuando el procesador es una computadora, el algoritmo se ha de expresar en un formato


que se denomina programa. Un programa se escribe en un lenguaje de programacin y las
operaciones que conducen a expresar un algoritmo en forma de programa se llaman
programacin. As pues, los lenguajes utilizados para escribir programas de computadoras
son los lenguajes de programacin y programadores son los escritores y diseadores de
programas.

Instrucciones a la computadora
Los diferentes pasos (acciones) de un algoritmo se expresan en los programas como
instrucciones, sentencias o proposiciones (normalmente el trmino instruccin se suele
referir a los lenguajes mquina y bajo nivel, reservando la sentencia o proposicin para los
lenguajes de alto nivel). Por consiguiente, un programa consta de una secuencia de
instrucciones, cada una de las cuales especifica ciertas operaciones que debe ejecutar la
computadora.
La elaboracin de un programa requerir conocer el juego o repertorio de instrucciones del
lenguaje.

5|Pgina
Victor Fernndez Rosales

algoritmos

2016

Las instrucciones bsicas y comunes a casi todos los lenguajes de programacin se pueden
condensar en cuatro grupos:

Instrucciones de entrada/salida. Instrucciones de transferencia de informacin y


datos entre dispositivos perifricos (teclado, impresora, unidad de disco, etc.) y la
memoria central.
Instrucciones aritmtico-lgicas. Instrucciones que ejecutan operaciones
aritmticas (suma, resta, multiplicacin, divisin, potenciacin), lgicas
(operaciones and, or, not, etc.).
Instrucciones selectivas. Instrucciones que permiten la seleccin de tareas
alternativas en funcin de los resultados de diferentes expresiones condicionales.
Instrucciones repetitivas. Instrucciones que permiten la repeticin de secuencias de
instrucciones un nmero determinado de veces.

Lenguajes mquina
Los lenguajes mquina son aquellos que estn escritos en lenguajes directamente
inteligibles por la mquina (computadora), ya que sus instrucciones son cadenas binarias
(cadenas o series de caracteres -dgitos- 0 y 1) que especifican una operacin, y las
posiciones (direccin) de memoria implicadas en la operacin se denominan instrucciones
de mquina o cdigo mquina. El cdigo mquina es el conocido cdigo binario.
Las instrucciones en lenguaje mquina dependen del hardware de la computadora y, por
tanto, diferirn de una computadora a otra. El lenguaje mquina de un PC (computadora
personal) ser diferente de un sistema HP (Hewlett Packard), Compaq o un sistema de IBM.
Las ventajas de programar en lenguaje mquina son la posibilidad de cargar (transferir un
programa a la memoria) sin necesidad de traduccin posterior, lo que supone una velocidad
de ejecucin superior a cualquier otro lenguaje de programacin.
Los inconvenientes -en la actualidad- superan a las ventajas, lo que hace prcticamente no
recomendables los lenguajes mquina. Estos inconvenientes son:

Dificultad y lentitud en la codificacin.


Poca fiabilidad.
Dificultad grande de verificar y poner a punto los programas.
Los programas slo son ejecutables en el mismo procesador (UPC, Unidad Central
de Proceso).

Para evitar los lenguajes mquina, desde el punto de vista del usuario, se han creado otros
lenguajes que permiten escribir programas con instrucciones similares al lenguaje humano
(por desgracia casi siempre ingls, aunque existen raras excepciones, como es el caso de las
versiones espaolas del lenguaje LOGO). Estos lenguajes se denominan de alto y bajo nivel.

6|Pgina
Victor Fernndez Rosales

algoritmos

2016

Figura 2 Ejemplo de cdigo mquina que calcula el n-simo nmero de la Serie de Fibonacci

Lenguajes de bajo nivel


Los lenguajes de bajo nivel son ms fciles de utilizar que los lenguajes mquina, pero, al
igual, que ellos, dependen de la mquina en particular. El lenguaje de bajo nivel por
excelencia es el ENSAMBLADOR (assembly languaje). Las instrucciones en lenguaje
ensamblador son instrucciones conocidas como nemotcnicos (mnemonics). Por ejemplo,
nemotcnicos tpicos de operaciones aritmticas son: en ingls, ADD, SUB, DIV, etc.; en
espaol, SUM, RES, DIV, etc.
Una instruccin tpica de suma sera:
ADD M, N, P
Esta instruccin poda significar Sumar el nmero contenido en la posicin de memoria M
al nmero almacenado en la posicin de memoria N y situar el resultado en la posicin de
memoria P. Evidentemente, es mucho ms sencillo recordar la instruccin anterior con un
nemotcnico que su equivalente en cdigo mquina:
0110 1001 1010 1011
Un programa escrito en lenguaje ensamblador no puede ser ejecutado directamente por la
computadora en esto se diferencia esencialmente del lenguaje mquina, sino que
requiere una fase de traduccin al lenguaje mquina.
El programa original escrito en lenguaje ensamblador se denomina programa fuente y el
programa traducido en lenguaje mquina se conoce como programa objeto, ya
directamente inteligible por la computadora.
El traductor de programas fuente a objeto es un programa llamado ensamblador
(assembler), existente en casi todas las computadoras (Figura 3).
No se debe confundir -aunque en espaol adoptan el mismo nombre- el programa
ensamblador (assembler), encargado de efectuar la traduccin del programa fuente escrito
a lenguaje mquina, con el lenguaje ensamblador (assembly languaje), lenguaje de
programacin con una estructura y gramtica definidas.
Los lenguajes ensambladores presentan la ventaja frente a los lenguajes mquina de su
mayor facilidad de codificacin y en general, su velocidad de clculo.
Programa fuente
en ensamblador
(assembly)

Programa
ENSAMBLADOR
(assembler)

Programa objeto
en cdigo mquina

Figura 3 Programa ensamblador


7|Pgina
Victor Fernndez Rosales

algoritmos

2016

Los inconvenientes ms notables de los lenguajes ensambladores son:


Dependencia total de la mquina, lo que impide la trasportabilidad de los programas
(posibilidad de ejecutar un programa en diferentes mquinas). El lenguaje
ensamblador del PC es distinto del lenguaje ensamblador del Apple Macintosh.
La formacin de los programas es ms compleja que la correspondiente a los
programadores de alto nivel, ya que exige no slo las tcnicas de programacin, sino
tambin el conocimiento del interior de la mquina.
Hoy da los lenguajes ensambladores tiene sus aplicaciones muy reducidas en la
programacin de aplicaciones y se centran en aplicaciones de tiempo real, control de
procesos y de dispositivos electrnicos, etc.

Figura 4 Ejemplo de cdigo en lenguaje Ensamblador

Lenguajes de alto nivel


Los lenguajes de alto nivel son los ms utilizados por los programadores. Estn diseados
para que las personas escriban y entiendan los programas de un modo mucho ms fcil que
los lenguajes mquina y ensambladores. Otra razn es que un programa escrito en lenguaje
de alto nivel es independiente de la mquina; esto es, las instrucciones del programa de la
computadora no dependen del diseo del hardware o de una computadora en particular.
En consecuencia, los programas escritos en lenguaje de alto nivel son portables o
trasportables, lo que significa la posibilidad de poder ser ejecutados con poca o ninguna
modificacin en diferentes tipos de computadoras; al contrario que los programas en
lenguaje mquina o ensamblador, que slo se pueden ejecutar en un determinado tipo de
computadora.
Los lenguajes de alto nivel presentan las siguientes ventajas:
El tiempo de formacin de los programadores es relativamente corto comparado
con otros lenguajes.

8|Pgina
Victor Fernndez Rosales

algoritmos

2016

La escritura de programas se basa en reglas sintcticas similares a los lenguajes


humanos. Nombres de las instrucciones, tales como READ, WRITE, PRINT, OPEN, etc.
Las modificaciones y puestas a punto de los programas son ms fciles.
Reduccin del coste de los programas.
Trasportabilidad.

Los inconvenientes se concretan en:


Incremento del tiempo de puesta a punto, al necesitarse diferentes traducciones del
programa fuente para conseguir el programa definitivo.
No se aprovechan los recursos internos de la mquina, que se explotan mucho mejor
en lenguajes mquina y ensambladores.
Aumento de la ocupacin de memoria.
El tiempo de ejecucin de los programas es mucho mayor.
AI igual que sucede con los lenguajes ensambladores, los programas fuente tienen que ser
traducidos por los programas traductores, llamados en este caso compiladores e
intrpretes.

Figura 5 Ejemplo de algunos lenguajes de programacin de alto nivel existentes actualmente

Fases en la resolucin de problemas


El proceso de resolucin de un problema con una computadora conduce a la escritura de
un programa y a su ejecucin en la misma. Aunque el proceso de disear programas es
esencialmente un proceso creativo, se puede considerar una serie de fases o pasos
comunes, que generalmente deben seguir todos los programadores.
Las fases de resolucin de un problema con computadora son:
9|Pgina
Victor Fernndez Rosales

algoritmos

2016

Anlisis del problema.


Diseo del algoritmo.
Codificacin.
Compilacin y ejecucin.
Verificacin.
Depuracin.
Mantenimiento.
Documentacin.

Constituyen el Ciclo de vida del software y las fases o etapas usuales son:
Anlisis. El problema se analiza teniendo presente la especificacin de los requisitos
dados por el cliente de la empresa o por la persona que encarga el programa.
Diseo. Una vez analizado el problema, se disea una solucin que conducir a un
algoritmo que resuelva el problema.
Codificacin (implementacin). La solucin se escribe en la sintaxis del lenguaje de
alto nivel (por ejemplo, C, Visual Basic, etc.) y se obtiene un programa.
Ejecucin, verificacin y depuracin. El programa se ejecuta, se comprueba
rigurosamente y se eliminan todos los errores (denominados bugs, en ingls) que
puedan aparecer.
Mantenimiento. El programa se actualiza y modifica, cada vez que sea necesario, de
modo que se cumplan todas las necesidades de cambio de sus usuarios.
Documentacin. Escritura de las diferentes fases del ciclo de vida del software,
esencialmente el anlisis, diseo y codificacin, unidos a manuales de usuario y de
referencia, as como normas para el mantenimiento.
Anlisis del problema
La primera fase de la resolucin de un problema con computadora es el anlisis del
problema. Esta fase requiere una clara definicin, donde se contemple exactamente lo que
debe hacer el programa y el resultado o solucin deseada.
Para poder definir bien un problema es conveniente responder a las siguientes preguntas:
Qu entradas se requieren? (tipo y cantidad).
Cul es la salida deseada? (tipo y cantidad).
Qu mtodo produce la salida deseada?
Diseo del algoritmo
En la etapa de anlisis del proceso de programacin se determina qu hace el programa. En
la etapa de diseo se determina como hace el programa la tarea solicitada. Los mtodos
ms eficaces para el proceso de diseo se basan en el conocido por divide y vencers. Es
decir, la resolucin de un problema complejo se realiza dividiendo el problema en sub
problemas y a continuacin dividir estos sub problemas en otros de nivel ms bajo, hasta
que pueda ser implementada una solucin en la computadora.
10 | P g i n a
Victor Fernndez Rosales

algoritmos

2016

Este mtodo se conoce tcnicamente como diseo descendente (top-down) o modular. El


proceso de romper el problema en cada etapa y expresar cada paso en forma ms detallada
se denomina refinamiento sucesivo.
Cada subprograma es resuelto mediante un mdulo (subprograma) que tiene un solo punto
de entrada y un solo punto de salida.
Cualquier programa bien diseado consta de un programa principal (el mdulo de nivel ms
alto) que llama a subprogramas (mdulos de nivel ms bajo) que a su vez pueden llamar a
otros subprogramas.
Los programas estructurados de esta forma se dice que tienen un diseo modular y el
mtodo de romper el programa en mdulos ms pequeos se llama programacin modular.
Los mdulos pueden ser planeados, codificados, comprobados y depurados
independientemente (incluso por diferentes programadores) y a continuacin combinarlos
entre s. El proceso implica la ejecucin de los siguientes pasos hasta que el programa se
termina:
1.
2.
3.
4.

Programar un mdulo.
Comprobar el mdulo.
Si es necesario, depurar el mdulo.
Combinar el mdulo con los mdulos anteriores.

El proceso que convierte los resultados del anlisis del problema en un diseo modular con
refinamientos sucesivos que permitan una posterior traduccin a un lenguaje se denomina
diseo del algoritmo.
El diseo del algoritmo es independiente del lenguaje de programacin en el que se vaya a
codificar posteriormente.
Codificacin de un programa
Codificacin es la escritura en un lenguaje de programacin de la representacin del
algoritmo desarrollada en las etapas precedentes. Dado que el diseo de un algoritmo es
independiente del lenguaje de programacin utilizado para su implementacin, el cdigo
puede ser escrito con igual facilidad en un lenguaje o en otro.
Para realizar la conversin del algoritmo en programa se deben sustituir las palabras
reservadas en espaol por sus homnimos en ingls, y las operaciones/instrucciones
indicadas en lenguaje natural expresarlas en el lenguaje de programacin correspondiente.

11 | P g i n a
Victor Fernndez Rosales

algoritmos

2016

Compilacin y ejecucin de un programa


Una vez que el algoritmo se ha convertido en un programa fuente, es preciso introducirlo
en memoria mediante el teclado y almacenarlo posteriormente en un disco. Esta operacin
se realiza con un programa editor, posteriormente el programa fuente se convierte en un
archivo de programa que se guarda (graba) en disco.
El programa fuente debe ser traducido a lenguaje mquina, este proceso se realiza con el
compilador y el sistema operativo que se encarga prcticamente de la compilacin.
Si tras la compilacin se presentan errores (errores de compilacin) en el programa fuente,
es preciso volver a editar el programa, corregir los errores y compilar de nuevo. Este proceso
se repite hasta que no se producen errores, obtenindose el programa objeto que todava
no es ejecutable directamente.
Suponiendo que no existen errores en el programa fuente, se debe instruir al sistema
operativo para que realice la fase de montaje o enlace (link), carga, del programa objeto
con las libreras del programa del compilador. El proceso de montaje produce un programa
ejecutable.
Verificacin y depuracin de un programa
La verificacin o compilacin de un programa es el proceso de ejecucin del programa con
una amplia variedad de datos de entrada, llamados datos de test o prueba, que
determinarn si el programa tiene errores (<< bugs >>). Para realizar la verificacin se debe
desarrollar una amplia gama de datos de test: valores normales de entrada, valores
extremos de entrada que comprueben los lmites del programa y valores de entrada que
comprueben aspectos especiales del programa.
La depuracin es el proceso de encontrar los errores del programa y corregir o eliminar
dichos errores.
Cuando se ejecuta un programa, se pueden producir tres tipos de errores:

12 | P g i n a
Victor Fernndez Rosales

algoritmos

2016

1. Errores de compilacin. Se producen normalmente por un uso incorrecto de las


reglas del lenguaje de programacin y suelen ser errores de sintaxis. Si existe un
error de sintaxis, la computadora no puede comprender la instruccin, no se
obtendr el programa objeto y el compilador imprimir una lista de todos los errores
encontrados durante la compilacin.
2. Errores de ejecucin. Estos errores se producen por instrucciones que la
computadora puede comprender pero no ejecutar. Ejemplos tpicos son: divisin
por cero y races cuadradas de nmeros negativos. En estos casos se detiene la
ejecucin del programa y se imprime un mensaje de error.
3. Errores lgicos. Se producen en la lgica del programa y la fuente del error suele ser
el diseo del algoritmo. Estos errores son los ms difciles de detectar, ya que el
programa puede funcionar y no producir errores de compilacin ni de ejecucin, y
slo puede advertir el error por la obtencin de resultados incorrectos. En este caso
se debe volver a la fase de diseo del algoritmo, modificar el algoritmo, cambiar el
programa fuente y compilar y ejecutar una vez ms.
Documentacin y mantenimiento
La documentacin de un problema consta de las descripciones de los pasos a dar en el
proceso de resolucin de un problema. La importancia de la documentacin debe ser
destacada por su decisiva influencia en el producto final. Programas pobremente
documentados son difciles de leer, ms difciles de depurar y casi imposibles de mantener
y modificar.
La documentacin de un programa puede ser interna y externa. La documentacin interna
es la contenida en lneas de comentarios. La documentacin externa incluye anlisis,
diagramas de flujo y/o pseudocdigos, manuales de usuario con instrucciones para ejecutar
el programa y para interpretar los resultados.
La documentacin es vital cuando se desea corregir posibles errores futuros o bien cambiar
el programa.
Tales cambios se denominan mantenimiento del programa. Despus de cada cambio la
documentacin debe ser actualizada para facilitar cambios posteriores. Es prctica
frecuente numerar las sucesivas versiones de los programas 1.0, 1.1, 2.0, 2.1, etc. (Si los
cambios introducidos son importantes, se vara el primer dgito [1.0, 2.0, ...], en caso de
pequeos cambios slo se vara el segundo dgito [2.0, 2.1 ...].).

Constantes y variables
Constantes
Son datos cuyo valor no cambia durante el desarrollo del algoritmo. Las constantes podrn
ser literales o con nombres.
13 | P g i n a
Victor Fernndez Rosales

algoritmos

2016

Las constantes simblicas o con nombres se identifican por su nombre y el valor asignado.
Una constante literal es un valor de cualquier tipo que se utiliza como tal.
Tendremos pues constantes:
Numricas enteras. En el rango de los enteros. Compuestas por el signo (+,-)
seguido de una serie de dgitos (0..9).
Numricas reales. Compuestas por el signo (+,-) seguido de una serie de dgitos
(0..9) y un punto decimal (.) o compuesta por el signo (+,-), una serie de
dgitos (0..9) y un punto decimal que constituyen la mantisa, la letra E antes del
exponente, el signo (+,-) y otra serie de dgitos (0..9).
Lgicas. Solo existen dos constantes lgicas, verdad y falso.
Carcter. Cualquier carcter del juego de caracteres utilizado colocado entre
comillas simples o apostrofes. Los caracteres que reconocen las computadoras
son dgitos, caracteres alfabticos, tanto maysculas como minsculas, y
caracteres especiales.
Cadena. Serie de caracteres vlidos encerrados entre comillas simples.
Variables
Una variable es un objeto cuyo valor puede cambiar durante el desarrollo del algoritmo.
Se identifica por su nombre y por su tipo, que podr ser cualquiera, y es el que determina
el conjunto de valores que podr tomar la variable. Las variables pueden almacenar todo
tipo de datos: cadenas, nmeros y estructuras.
En los algoritmos se deben declarar las variables. Cuando se traduce el algoritmo a un
lenguaje de programacin y se ejecuta el programa resultante, la declaracin de cada una
de las variables originar que se reserve un determinado espacio en memoria etiquetado
con el correspondiente identificador.
Una variable se clasifica por:

Por su contenido:
Variables numricas: Son aquellas en las cuales se almacenan valores numricos,
positivos o negativos, es decir almacenan nmeros del 0 al 9, signos (+ y -) y el
punto decimal.
14 | P g i n a
Victor Fernndez Rosales

algoritmos

2016

Ejemplo:
iva = 0.15, pi = 3.1416, costo = 2,500

Variables lgicas: Son aquellas que solo pueden tener dos valores (cierto o
falso) estos representan el resultado de una comparacin entre otros datos.

Variables alfanumricas: Est formada por caracteres alfanumricos (letras,


nmeros y caracteres especiales).
Ejemplos:
letra = a
apellido = Lpez
direccion = Av. Libertad #190

Por su uso:
Variables de trabajo: Variables que reciben el resultado de una operacin
matemtica completa y que se usan normalmente dentro de un programa.
Ejemplo:
suma = a + b /c

Contadores: Se utilizan para llevar el control del nmero de ocasiones en que se


realiza una operacin o se cumple una condicin. Con los incrementos generalmente
de uno en uno.
Un contador es una variable cuyo valor se incrementa o decrementa en una
cantidad constante cada vez que se produce un determinado suceso o accin. Los
contadores se utilizan en las estructuras repetitivas con la finalidad de contar
sucesos o acciones internas del bucle.
Con los contadores debemos realizar una operacin e inicializacin, y
posteriormente, las sucesivas de incremento o decremento del contador.
La inicializacin consiste en asignarle al contador un valor. Se situar antes y
fuera del bucle.
<nombre_del_contador> = <valor_de_inicializacion>
Ejemplo:
r=1;
En cuanto a los incrementos o decrementos del contador, puesto que la operacin
de asignacin admite que la variable que recibe el valor final de una expresin
intervenga en la misma, se realizara a travs de este tipo de instrucciones de
15 | P g i n a

Victor Fernndez Rosales

algoritmos

2016

asignacin de la siguiente forma:


<nombre_del_contador> = <nombre del contador> + <valor_constante>
Dicho <valor_constante> podr ser positivo o negativo. Esa instruccin se
colocar en el interior del bucle.
Ejemplo:
r=r+1;

Acumuladores: Forma que toma una variable y que sirve para llevar la suma
acumulativa de una serie de valores que se van leyendo o calculando
progresivamente.
Son variables cuyo valor se incrementa o decrementa en una cantidad variable.
Necesitan operaciones de:
Inicializacin
<nombre_acumulador> = <valor_de_inicializacin>
Acumulacin
<nombre_acumulador> = <nombre_acumulador> + <nombre_variable>
Ejemplo:
r=1;
r=r+s;
Hay que tener en cuenta que la siguiente lnea tambin sera una operacin
de acumulacin.
<nombre_acumulador> = <nombre_acumulador> * <valor>

Interruptores
Un interruptor, bandera o switch es una variable que puede tomar los valores
verdad y falso a lo largo de la ejecucin de un programa, comunicando as
informacin de una parte a otra parte del mismo.
Pueden ser utilizados para el control de bucles.
Constante
Numrico

36
450.35
0.58

Variable
A
nom_ed

16 | P g i n a
Victor Fernndez Rosales

2016

algoritmos

Cadena

'A'
'Juan'
'La Paz'

Lgico

Verdadero
Falso

ciudad
estatura
num

Ejemplos prcticos:
1.- Algoritmo que lea el valor correspondiente a una distancia en millas marinas y las
exprese en metros, conociendo que una milla marina equivale a 1,852 metros.
Qu datos son de entrada?, Que datos de salida?, Qu constantes encontramos y
de qu tipo? y Qu variables encontramos y de qu tipo?
Solucin:
Entrada: La distancia en millas
Salida: La distancia en metros
Identificador
Milla m arina en
metro
Distancia en
millas
Distancia en
metros

Constante o
Variable

Tipo

Constante

Numrico entero

1852

Variable

Numrico entero

Variable

Numrico entero

Ejemplo

2.- Algoritmo que calcule el rea de un crculo.


Solucin:
Entada: Radio
Salida: rea
Identificador
Pi
Radio
rea

Constante o
Variable
Constante
Variable
Variable

Tipo
Numrico real
Numrico real
Numrico real

Ejemplo
3.1416
6
16

Expresiones
Una expresin es una combinacin de operadores y operandos.
17 | P g i n a
Victor Fernndez Rosales

algoritmos

2016

Los operandos podrn ser constantes, variables u otras expresiones y los operadores
podrn ser de cadena, aritmticos, relacionales o lgicos.
Las expresiones se clasifican, segn el resultado que produce, en:

Numricas. Los operandos que intervienen en ellas son numricos, el resultado es


tambin de tipo numrico y se construyen mediante los operadores aritmticos.
Se pueden considerar anlogas a las frmulas matemticas.
Debido a que son los que se encuentran en la mayor parte de los lenguajes de
programacin, los algoritmos utilizarn los siguientes operadores aritmticos:
menos unario (-), multiplicacin (*), divisin real (/), exponenciacin (^), adicin (+),
resta (-), mdulo de la divisin entera (mod) y cociente de la divisin entera (div).
Tenga en cuenta que la divisin real siempre dar un resultado real y que los
operadores mod y div sol operan con enteros y el resultado es entero.

Alfanumricas: Los operandos son de tipo alfanumrico y producen resultados


tambin de dicho tipo. Se construyen mediante el operador de concatenacin,
representado por el operador ampersand (&) o con el mismo smbolo utilizado en
las expresiones aritmticas para la suma.

Booleanas: Su resultado podr ser verdad o falso. Se construye mediante los


operadores relacionales y lgicos. Los operadores de relacin son: igual (=), distinto
(<>), menor que (<), mayor que (>), mayor o igual (>=), menor o igual (<=). Actan
sobre operandos del mismo tipo y siempre devuelven un resultado de tipo lgico.
Los operadores lgicos bsicos son: negacin lgica (no), multiplicacin lgica
(y), suma lgica (o). Actan sobre operandos de tipo lgico y devuelven resultados
del mismo tipo, determinados por las tablas de verdad correspondientes a cada
uno de ellos.
a
Verdad
Verdad
Falso
Falso

b
Verdad
Falso
Verdad
Falso

no a
Falso
Falso
Verdad
Verdad

ayb
Verdad
Falso
Falso
Falso

aob
Verdad
Verdad
Verdad
Falso

El orden de prioridad general adoptada, no comn a todos los lenguajes, es el siguiente:


^
no, *, /, div, mod, y

Exponenciacin
operadores unitarios
operadores multiplicativos
18 | P g i n a

Victor Fernndez Rosales

algoritmos
+, -, o
=, <>, >, <, >=, <=

2016

operadores aditivos
operadores de relacin

La evaluacin de operadores con la misma prioridad se realizar siempre de izquierda


a derecha.
Si una expresin contiene subexpresiones encerradas entre parntesis, dichas
subexpresiones se evaluarn primero.

Estructuras de control (bsicas)


Las estructuras de control de un lenguaje de programacin son mtodos para especificar el
orden en que las instrucciones de un algoritmo se ejecutarn. El orden de ejecucin de las
sentencias (lenguaje) o instrucciones determina el flujo de control. Estas estructuras de
control son, por consiguiente, fundamentales en los lenguajes de programacin y en los
diseos de algoritmos especialmente los pseudocdigos.
Las tres estructuras de control bsico son:
Secuencia
Seleccin
Repeticin
La programacin estructurada hace los programas ms fciles de escribir, verificar, leer y
mantener; utiliza un nmero limitado de estructuras de control que minimiza la
complejidad de los problemas.
Estructuras secuenciales
Se caracterizan porque una accin se ejecuta detrs de otra. El flujo del programa coincide
con el orden fsico en que se han ido poniendo las instrucciones.

Diagrama de flujo

Diagrama N-S

Pseudocdigo

Accin 1
Accin 1
Accin 2

Accin 2

accin 1
accion 2
accin n

Accin n
Accin n

19 | P g i n a
Victor Fernndez Rosales

algoritmos

2016

Estructuras selectivas
Se ejecutan unas instrucciones u otras segn se cumpla o no una determinada condicin;
pueden ser simples, dobles o mltiples.

Simples
Se evala la condicin y si sta da como resultado verdad se ejecuta una determinada accin
o grupo de acciones, en caso contrario se salta dicho grupo de acciones.
Diagrama de flujo

Diagrama N-S

condicin

Pseudocdigo

si <condicin> entonces
fin_si

condicin
si

no
accin

accin

Dobles
Cuando el resultado de evaluar la condicin es verdad se ejecutar una determinada accin
o grupo de acciones y si el resultado es falso otra accin o grupo de acciones diferentes.

Diagrama de flujo

Diagrama N-S

condicin

condicin
si

accin 1

Pseudocdigo

accin n

no
accin 1

accin 2

si <condicin> entonces
accin 1
si_no
accin 2
fin_si

Mltiple
Se ejecutarn una acciones u otras segn al resultado que se obtenga al evaluar una
expresin. Se considera que dicho resultado ha de ser de un tipo ordinal, es decir de un tipo
20 | P g i n a
Victor Fernndez Rosales

algoritmos

2016

de dato en que cada uno de los elementos que constituyen el tipo, excepto el primero y el
ltimo, tienen un nico predecesor y un nico sucesor.
Cada grupo de acciones se encontrara ligado con: un valor, varios valores separados por
comas, un rango, expresado como valor_inicial..valor_final o una mezcla de valores y
rangos.
Se ejecutarn nicamente las acciones del primer grupo, que entre los valores a los que est
ligado, cuente con el obtenido al evaluar la expresin. Cuando el valor obtenido al evaluar
la expresin no est presente en ninguna lista de valores se ejecutaran las acciones
establecidas en la clusula si_no, si existiese dicha clusula.
Diagrama de flujo

Diagrama N-S

expresin

accin 1

accin 2

Pseudocdigo

expresin

accin n

v1

v2

v3

si no

accin
1

accin
1

accin
1

accin
n

segun _sea <expresin>


hacer
<lista1>: <acciones1>
<lista2>:<acciones2>
..............................
[si_no
<accionesN>]
fin_segn

Estructuras repetitivas
Las acciones del cuerpo del bucle se repiten mientras o hasta que se cumpla una
determinada condicin. Es frecuente el uso de contadores o banderas para controlar un
bucle. Tambin se utilizan con esta finalidad los centinelas.
Un centinela es un valor anmalo o una variable que permite detectar cuando se desea
terminar de repetir las acciones dado a una variable que permite detectar cuando se desea
terminar de repetir las acciones que constituyen el cuerpo del bucle. Por ejemplo, se puede
disear un bucle que pida el nombre y la nota de una serie de alumnos y establecer que
termine cuando se le introduzca un * como nombre. Podemos considerar tres tipos
bsicos de estructura repetitivas: mientras, hasta, desde.
Mientras
Lo que caracteriza este tipo de estructura es que las acciones del cuerpo del bucle se
realizan cuando la condicin es cierta, adems, se pregunta por la condicin al principio, de
donde se deduce que dichas acciones se podrn ejecutar de 0 a N veces.

21 | P g i n a
Victor Fernndez Rosales

algoritmos
Diagrama de flujo

Diagrama N-S

no
condicin

si
accin

expresin lgica

2016

Pseudocdigo

mientras <expresin_lgica> hacer


<acciones>
fin_mientras

accin

Hasta
Las acciones del interior del bucle se ejecutan una vez y continan repitindose mientras
que la condicin sea falsa. Se interroga por la condicin al final del bucle.

Diagrama de flujo

Diagrama N-S

Pseudocdigo

repetir

accin
accin

<acciones>
hasta_que <expresin_lgica>

expresin lgica
no

condicin

si

Desde
Se utiliza cuando se conoce con anterioridad a que empiece a ejecutarse el bucle el nmero
de veces que se va a iterar.
La estructura desde comienza con un valor inicial de la variable ndice y las acciones
especficas se ejecutan a menos que el valor inicial sea mayor que el valor final. La variable
ndice se incrementa en 1, o en el valor que especifiquemos, y si este nuevo valor no excede
al final se ejecutan se nuevo las acciones.
Si establecemos que la variable ndice se decremente en cada iteracin el valor inicial
deber ser superior al final. Consideramos siempre la variable ndice de tipo entero.
Es posible sustituir una estructura desde por otra de tipo mientras controlada por un
contador.

22 | P g i n a
Victor Fernndez Rosales

algoritmos
Diagrama de flujo

i <- vi

i > vf

i <- v + incr
no

Diagrama N-S

si

desde v = vi hasta vf
accin
accin

2016

Pseudocdigo

desde v <- vi hasta vf


[incremento decremento incr]
hacer
<acciones>
fin_desde

accin

Estructuras anidadas
Tanto las estructuras selectivas como las repetitivas pueden ser anidadas, e introducidas
unas en el interior de otras.

23 | P g i n a
Victor Fernndez Rosales

algoritmos

2016

Herramientas de programacin
Un algoritmo puede ser escrito en castellano narrativo, pero esta descripcin suele ser
demasiado prolija y adems, ambigua. Para representar un algoritmo se debe utilizar algn
mtodo que permita independizar dicho algoritmo de los lenguajes de programacin y al
mismo tiempo, conseguir que sea fcilmente codificable.
Los mtodos ms usuales para la representacin de algoritmos son:
La descripcin narrativa
El diagrama N-S (Nassi Shneiderman)
Diagrama de flujo convencional
El pseudocdigo, o tambin conocido como lenguaje estructurado
Diagrama de flujo
Los diagramas de flujo son una manera de representar visualmente el flujo de datos a travs
de sistemas de tratamiento de informacin; describen que operaciones y en que secuencia
se requieren para solucionar un problema dado.
Un diagrama de flujo u organigrama es una representacin diagramtica que ilustra la
secuencia de las operaciones que se realizarn para conseguir la solucin de un problema,
se dibujan generalmente antes de comenzar a programar el cdigo frente a la computadora,
facilitan la comunicacin entre los programadores y la gente del negocio.
Estos diagramas de flujo desempean un papel vital en la programacin de un problema y
facilitan la comprensin de problemas complicados y sobre todo muy largos. Una vez que
se dibuja, llega a ser fcil escribir el programa en cualquier idioma de alto nivel. Vemos a
menudo cmo nos dan ventaja al momento de explicar el programa a otros. Por lo tanto,
est correcto decir que un diagrama de flujo es una necesidad para la documentacin mejor
de un programa complejo.

24 | P g i n a
Victor Fernndez Rosales

algoritmos

2016

Diagrama de Nassi-Shneiderman
Los diagramas de Nassi-Shneiderman, denominados as por sus inventores, o tambin N-S,
o de Chapin son una herramienta de programacin que favorece la programacin
estructurada y rene caractersticas graficas de diagramas de flujo y lingsticas propias de
los pseudocdigos. Constan de una serie de cajas contiguas que se leern siempre de arribaabajo y se documentarn de la forma adecuada.
Estos diagramas omiten el uso de flechas de unin y los smbolos se utilizan en forma
continua. Las acciones sucesivas se simbolizan en cajas contiguas. La dificultad en el uso de
estos diagramas est en que ocupan mucho lugar en forma horizontal cuando varias
estructuras se anidan una dentro de otra.
El diagrama N-S cuenta con un conjunto limitado de smbolos para representar los pasos
del algoritmo, por ello se apoya en expresiones del lenguaje natural; sin embargo, dado que
el lenguaje natural es muy extenso y se presta para la ambigedad, solo se utiliza un
conjunto de palabras, a las que se denomina palabras reservadas. Las palabras reservadas
ms utilizadas son:
Inicio, Fin, Leer, Escribir
Mientras, Repita, Hasta Para
Incrementar, Decrementar, Hacer, Funcin
Entero, Real, Carcter, Cadena
Lgico, Retornar
En los diagramas N-S las tres estructuras bsicas de la programacin estructurada:
secuenciales, selectivas y repetitivas, encuentran su representacin propia.

25 | P g i n a
Victor Fernndez Rosales

algoritmos

2016

Sentencia 1
Sentencia 2

Secuencial

...
Sentencia n

Condicin

Selectivas

Si

No
Selection
1

...

Selectivas multiples

Mientras (Condicin) Hacer


instrucciones

Repetitiva de 0 a n
veces (Mientras)

instrucciones
instrucciones
instrucciones

Repetitiva de 1 a n
veces (Repite-hasta)

Repite (Condicin) Hasta (Condicin)

Para variable= valor inicial hasta valor final


hacer
instrucciones
instrucciones

Repetitiva n veces
(Para)

fin para

26 | P g i n a
Victor Fernndez Rosales

algoritmos

2016

Ejemplo secuencial

Problema
Disear un algoritmo para convertir grados Celsius a grados Kelvin
Definicin del problema
Convertir grados Celsius a grados Kelvin
Datos de entrada
Grados Celsius
Datos de salida
Grados Kelvin
Proceso
Kelvin=Celsius+273.15
Solucin

Ejercicios secuencial

Problemas
Disear un algoritmo que calcule el rea de un crculo
Disear un algoritmo que nos indique el porcentaje de hombres y mujeres
de los alumnos del saln de clases.

27 | P g i n a
Victor Fernndez Rosales

algoritmos

2016

Ejemplo selectiva

Problema
Disear un algoritmo que indique si un nmero es mayor que 100
Definicin del problema
Indicar si el nmero es mayor que 100
Datos de entrada
Nmero
Datos de salida
Mensaje de salida
Proceso
Si nmero >100 es mayor, de otro modo es menor
Solucin

Ejercicios selectivas

Problemas
Disear un algoritmo que indique dados 2 nmeros cul es mayor? y
cul es menor?, y si son iguales?
Disear un algoritmo que nos indique el incremento a los salarios del
personal de la UV de acuerdo a la siguiente informacin: Quienes ganan
menos o igual a 199 pesos se incrementa 20%, quienes ganan igual o ms
de 200 y menos de 500 pesos se incrementa 15% y quienes ganan ms o
igual de 500 pesos se incrementa 10%.

28 | P g i n a
Victor Fernndez Rosales

algoritmos

2016

Ejemplo repetitiva (mientras)

Problema
Disear un algoritmo que indique la suma de los nmeros del 1 al
100.
Definicin del problema
Sumar los nmeros del 1 al 100
Datos de entrada
Ninguno
Datos de salida
Suma de los nmeros
Proceso
Sumar uno a uno los nmeros del 1 al 100
Solucin

Ejercicios repetitiva (mientras)

Problemas
Disear un algoritmo que lea una serie de nmeros y nos indique cual es
el mayor, cual es el menor y nos indique cual es el promedio.
Disear un algoritmo que dado un nmero nos genere la serie de
Fibonacci.
Serie de Fibonacci: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34.

29 | P g i n a
Victor Fernndez Rosales

algoritmos

2016

Ejemplo repetitiva (repite-hasta)

Problema
Disear un algoritmo que indique la suma de los nmeros del 1 al
100.
Definicin del problema
Sumar los nmeros del 1 al 100
Datos de entrada
Ninguno Datos de salida
Suma de los nmeros
Proceso
Sumar uno a uno los nmeros del 1 al 100
Solucin

Ejercicios repetitiva (repite-hasta)

Problemas
Disear un algoritmo que lea una serie de nmeros y nos indique cual es
el mayor, cual es el menor y nos indique cual es el promedio.
Disear un algoritmo que dado un nmero nos genere su factorial.
Ej. Factorial de 3 es (1*2*3 = 6)

30 | P g i n a
Victor Fernndez Rosales

algoritmos

2016

Ejemplo repetitiva (para)

Problema
Disear un algoritmo que imprima los nmeros de 5 en 5 hasta 100.
Definicin del problema
Imprimir de 5 en 5
Datos de entrada
Ninguno
Datos de salida
Imprimir los mltiplos de 5 hasta 100
Proceso
Imprimir el mltiplo e incrementar de 5 en 5 hasta 100
Solucin

Ejercicios repetitiva (para)

Problemas
Disear un algoritmo que lea un nmero y nos indique la tabla de
multiplicar de los primeros 10 nmeros.

Disear un algoritmo que dado un nmero nos genere los nmeros de la


serie de Fibonacci.
Serie de Fibonacci: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34.

31 | P g i n a
Victor Fernndez Rosales

algoritmos

2016

Diagrama de flujo convencional


El diagrama de flujo utiliza unos smbolos normalizados, con los pasos del algoritmo escritos
en el smbolo adecuado y los smbolos unidos por flechas, denominadas lneas de flujo, que
indican el orden en que los pasos deben ser ejecutados, los smbolos principales son:
Inicio/Fin

Proces o

Entrada/Salida

Des icin

Com entario

Conector

Reglas para la creacin de Diagramas


1. Los Diagramas de flujo deben escribirse de arriba hacia abajo, y/o de izquierda a
derecha.
2. Los smbolos se unen con lneas, las cuales tienen en la punta una flecha que indica la
direccin que fluye la informacin procesos, se deben de utilizar solamente lneas de
flujo horizontal o verticales (nunca diagonales).
3. Se debe evitar el cruce de lneas, para lo cual se quisiera separar el flujo del diagrama
a un sitio distinto, se pudiera realizar utilizando los conectores. Se debe tener en cuenta
que solo se van a utilizar conectores cuando sea estrictamente necesario.
4. No deben quedar lneas de flujo sin conectar
5. Todo texto escrito dentro de un smbolo debe ser legible, preciso, evitando el uso de
muchas palabras.
6. Todos los smbolos pueden tener ms de una lnea de entrada, a excepcin del smbolo
final.
7. Solo los smbolos de decisin pueden y deben tener ms de una lnea de flujo de salida.

32 | P g i n a
Victor Fernndez Rosales

algoritmos

2016

Ejemplo secuencial

Problema
Disear un algoritmo para convertir grados Celsius a grados Kelvin

Ejercicios secuencial

Problemas
Disear un algoritmo que calcule el rea de un crculo
Disear un algoritmo que nos indique el porcentaje de hombres y mujeres
de los alumnos del saln de clases.

33 | P g i n a
Victor Fernndez Rosales

algoritmos

2016

Ejemplo selectiva

Problema
Disear un algoritmo que indique si un nmero es mayor que 100

Ejercicios selectivas

Problemas
Disear un algoritmo que indique dados 2 nmeros cul es mayor? y
cul es menor?, y si son iguales?
Disear un algoritmo que nos indique el incremento a los salarios del
personal de la UV de acuerdo a la siguiente informacin: Quienes ganan
menos o igual a 199 pesos se incrementa 20%, quienes ganan igual o ms
de 200 y menos de 500 pesos se incrementa 15% y quienes ganan ms o
igual de 500 pesos se incrementa 10%.

34 | P g i n a
Victor Fernndez Rosales

algoritmos

2016

Ejemplo repetitiva (mientras)

Problema
Disear un algoritmo que indique la suma de los nmeros del 1 al
100.

Ejercicios repetitiva (mientras)

Problemas
Disear un algoritmo que lea una serie de nmeros y nos indique cual es
el mayor, cual es el menor y nos indique cual es el promedio.
Disear un algoritmo que dado un nmero nos genere la serie de
Fibonacci.
Serie de Fibonacci: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34.

35 | P g i n a
Victor Fernndez Rosales

algoritmos

2016

Ejemplo repetitiva (para)

Problema
Disear un algoritmo que imprima los nmeros de 5 en 5 hasta 100.

Ejercicios repetitiva (para)

Problemas
Disear un algoritmo que lea un nmero y nos indique la tabla de
multiplicar de los primeros 10 nmeros.
Disear un algoritmo que dado un nmero nos genere los nmeros de la
serie de Fibonacci.
Serie de Fibonacci: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34.

36 | P g i n a
Victor Fernndez Rosales

algoritmos

2016

Pseudocdigo
El pseudocdigo es un lenguaje de especificacin de algoritmos que utiliza palabras
reservadas y exige la identacin, o sea sangra en el margen izquierdo, de algunas lneas.
En nuestros pseudocdigos usaremos determinadas palabras en espaol como palabras
reservadas.
El pseudocdigo se concibi para separar las dos principales desventajas del diagrama de
flujo: Lento de crear y difcil de modificar sin un nuevo redibujo.
Es una herramienta muy buena para el seguimiento de la lgica de un algoritmo y para
transformar con facilidad los algoritmos a programas escritos en un lenguaje de
programacin especifico.
El pseudocdigo comenzar siempre con la palabra inicio y terminar con la palabra fin.
Cuando se coloque un comentario de una sola lnea se escribir precedido de //. Si el
comentario es multilinea, lo pondremos entre {}. Para producir un valor o serie de valores
desde el dispositivo estndar y almacenarlos en una o varias variables utilizaremos leer
(<lista_de_variables>).
Con <nombre_de_variable> <-<expresin> almacenaremos en una variable el resultado de
evaluar una expresin. Hay que tener en cuenta que una nica constante, variable o
funcin, constituyen una expresin.
Para imprimir en el dispositivo estndar de salida una o varias expresiones emplearemos
escribir (<lista_de_expresiones>)
Las distintas estructuras se representan de la siguiente forma:
Decisin simple:

si <condicion> entonces
<acciones1>
fin_si

Decisin doble:

si <condicin> entonces
<acciones1>
si_no
<acciones2>
fin_si

Decisin mltiple:

segn_sea <expresin_ordinal> hacer


<lista_de_valores_ordinales>: <acciones1>
..
[si_no // el corchete indica opcionalidad
37 | P g i n a

Victor Fernndez Rosales

algoritmos

2016

<accionesn> ]
fin_segun
Repetitivas:

mientras <condicion> hacer


<acciones>
fin_mientras
repetir
<acciones>
hasta_que <condicion>
desde <variable> <- <v_inicial> hasta <v_final>
[incremento |decremento <incremento>] hacer
<acciones>
fin_desde

inicio, fin, leer, escribir y las palabras que aparecen en las distintas estructuras se
consideran palabras reservadas y no debern utilizarse en su lugar otras similares.
Ejemplo secuencial

Problema
Disear un algoritmo para convertir grados Celsius a grados Kelvin

inicio
leer (gCel)
gKel <- gCel + 273.15
escribir (gKel)
fin

Ejercicios secuencial

Problemas

Disear un algoritmo que calcule el rea y el permetro de un


tringulo rectngulo dada la base y la altura.
Disear el algoritmo correspondiente a un programa que al
introducir una medida expresada en centmetros la convierta en
pulgadas.
1 pulgada= 2.54 centmetros.

38 | P g i n a
Victor Fernndez Rosales

algoritmos

2016

Ejercicios.

39 | P g i n a
Victor Fernndez Rosales

Das könnte Ihnen auch gefallen