Você está na página 1de 75

Tema V.

Fundamentos de
algoritmos
Objetivo: El alumno explicar la
importancia de llevar un mtodo
formal para resolver problemas en la
computadora;
asimismo
aplicar
dicho mtodo en la resolucin de
problemas matemticos sencillos.

1.1. La computabilidad y concepto de


algoritmo:
Mquina de Turing.

Partes de un programa
Todo programa esta constituido por un conjunto
de rdenes o instrucciones capaces de manipular
un conjunto de datos. stas rdenes o
instrucciones pueden ser divididas en tres grandes
bloques
claramente
diferenciados,
correspondientes cada uno de ellos a una parte
del diseo de un programa.

1.1. La computabilidad y concepto de


algoritmo:
Mquina de Turing.

1.1. La computabilidad y concepto de


algoritmo:
Mquina de Turing.

Teora de la computabilidad
Es
la
parte
de
la
computacin que estudia
los problemas de decisin
que pueden ser resueltos
con
un
algoritmo
o
equivalentemente con una
mquina de Turing.
Mquina ENIGMA
Segunda Guerra Mundial

1.1. La computabilidad y concepto


de algoritmo:
Mquina de Turing.

Mquina de Turing
La Mquina de Turing se introdujo en 1936
por Alan M. Turing para resolver problemas
computables.
Es
la
base
de
las
computadoras modernas.

1.1. La computabilidad y concepto de


algoritmo:
Mquina de Turing.

Mquina de Turing
Una mquina de Turing esta formada por tres
componentes: Una Cinta, Un Controlador y
Una Cabeza de lectura/escritura.

1.1. La computabilidad y concepto de


algoritmo:
Mquina de Turing.

Cinta
Aun cuando las computadoras modernas utilizan un dispositivo
de acceso aleatorio con capacidad finita, la memoria de la
mquina de Turing es infinita. La cinta, en cualquier momento
mantiene una secuencia de caracteres del conjunto de
caracteres aceptado por la mquina.

Cinta o Banda de Moebius


August Ferdinand Mbius y Johann Benedict Listing en 1858

1.1. La computabilidad y concepto de


algoritmo:
Mquina de Turing.
Cabeza de Lectura / Escritura
La cabeza de lectura/escritura en cualquier momento seala a un
smbolo en la cinta. Llamamos a este smbolo el smbolo actual. La
cabeza de lectura/escritura lee y escribe un smbolo a la vez
desde la cinta. Despus de leer y escribir se mueve a la izquierda,
a la derecha o permanece en su lugar. La lectura, la escritura y el
desplazamiento, todos se realizan bajo instrucciones del
controlador.

1.1. La computabilidad y concepto de


algoritmo:
Mquina de Turing.
Controlador
El controlador es la contraparte terica de la unidad central de
proceso (CPU) en las computadoras modernas. Es un autmata de
estado finito, una mquina que tiene un nmero finito
predeterminado de estados y se mueve de un estado a otro con base
en la entrada. En cualquier momento puede estar en uno de estos
estados.

1.1. La computabilidad y concepto de


algoritmo:
Mquina de Turing.
Mquina de Turing

5.2 Elementos de los algoritmos y tipos


de datos
Fundamentos de Algoritmos
Uno de los algoritmos ms antiguos
conocidos es el algoritmo de
Euclides. El trmino algoritmo
proviene
del
matemtico
Muhammad ibn Musa al-Khwarizmi,
que vivi aproximadamente entre
los aos 780 y 850 D.C. en la
actual nacin iran. Describi la
realizacin
de
operaciones
elementales en el sistema de
numeracin decimal. De alKhwarizmi se obtuvo la derivacin
algoritmo.

5.2 Elementos de los algoritmos y tipos


de datos
Fundamentos de Algoritmos
Un algoritmo se puede definir como
un conjunto pasos, procedimientos
o acciones que nos permiten
alcanzar un resultado o resolver un
problema de un cierto tipo. Por
tanto debe ser:

Precisin
Determinismo
Finitud

5.2 Elementos de los algoritmos y tipos


de datos
Caractersticas de los algoritmos
Precisin:
Los pasos a seguir en el algoritmo deben ser precisados
claramente.
Determinismo:
El algoritmo, dado un conjunto de datos idnticos de
entrada, siempre debe arrojar los mismos resultados.
Finitud:
El algoritmo, independientemente de la complejidad del
mismo, siempre debe ser de longitud finita.

5.2 Elementos de los algoritmos y tipos


de datos
Caractersticas de los algoritmos
Conciso y Detallado:
Debe reflejar con el mximo detalle el orden de ejecucin
de cada accin u operacin que vaya a realizar la
computadora.
Claro y Sencillo:
Con el objetivo de facilitar su entendimiento y compresin
por parte del programador.

5.2 Elementos de los algoritmos y tipos


de datos
Mdulos de un algoritmo

5.2 Elementos de los algoritmos y tipos


de datos
Tipos de algoritmos

Cualitativos
Son aquellos en los que se describen los pasos utilizando palabras.
Cuantitativos
Son aquellos en los que se utilizan clculos numricos para definir los
pasos del proceso.
No Grficos
Representa en forma descriptiva las operaciones que debe realizar
un algoritmo (pseudocodigo).
Grficos
Es la representacin grfica de las operaciones que realiza un
algoritmo (diagrama de flujo).

5.3 Representacin de los algoritmos


(diagrama de flujo y pseudocdigo)

Diagrama de Flujo
Para el diseo de algoritmos se utilizan tcnicas
de representacin. Una de estas tcnicas son
los denominados Diagramas de Flujo, que se
definen como la representacin grfica que,
mediante el uso de smbolos estndar
conectados o unidos mediante lneas de flujo,
muestran la secuencia lgica de las operaciones
o
acciones
que
deben
realizar
las
computadoras, as como la corriente o flujo de
datos en la resolucin de un programa.

5.3 Representacin de los algoritmos


(diagrama de flujo y pseudocdigo)
Construccin de los Diagramas de Flujo
Su correcta construccin es sumamente importante porque a partir
del mismo se puede escribir un programa en algn lenguaje de
programacin.
Es importante mantener un estndar para la realizacin de dichos
diagramas, esto con el fin de facilitar el intercambio de algoritmos
mediante su esquematizacin grfica. Es por eso que a continuacin
se muestran los smbolos a ocupar durante el curso.

5.3 Representacin de los algoritmos


(diagrama de flujo y pseudocdigo)
Smbolos para los Diagramas de Flujo
Smbolo utilizado para marcar el inicio o fin del
diagrama de flujo.
Smbolo utilizado para representar un proceso. En
su
interior
se
expresan
asignaciones,
operaciones aritmticas, cambios de valor de
celdas en memoria, etc.
Smbolo utilizado para representar una decisin. En
su interior se almacena una condicin, y
dependiendo del resultado de la evaluacin de
la misma se sigue por una de las ramas o
caminos alternativos.
Smbolo utilizado para introducir los datos de
entrada. Expresa lectura.
Smbolo utilizado para representar la impresin de
un resultado. Expresa escritura.

5.3 Representacin de los algoritmos


(diagrama de flujo y pseudocdigo)

5.3 Representacin de los algoritmos


(diagrama de flujo y pseudocdigo)

5.3 Representacin de los algoritmos


(diagrama de flujo y pseudocdigo)
Reglas para la construccin de Diagramas de Flujo
1.Todo diagrama de flujo debe tener un inicio y un fin

2. Las lneas utilizadas para indicar la direccin del flujo del


diagrama deben ser rectas, verticales y horizontales.

5.3 Representacin de los algoritmos


(diagrama de flujo y pseudocdigo)
Reglas para la construccin de Diagramas de Flujo
3. Todas las lneas utilizadas para indicar la direccin del flujo
del diagrama deben estar conectadas. La conexin puede ser
a un smbolo que exprese lectura, proceso, decisin,
impresin, conexin o fin de diagrama.

5.3 Representacin de los algoritmos


(diagrama de flujo y pseudocdigo)
Reglas para la construccin de Diagramas de Flujo
4. El diagrama de flujo debe ser construido de arriba hacia abajo y de
izquierda a derecha.
5. La notacin utilizada en el diagrama de flujo debe ser independiente
del lenguaje de programacin.
6. Es conveniente cuando realizamos una tarea compleja poner
comentarios que expresen o ayuden a entender lo que hicimos.
7. Si el diagrama de flujo requiriera ms de una hoja para su
construccin, debemos utilizar los conectores adecuados y enumerar
las pginas convenientemente.
8. No puede llegar ms de una lnea a un smbolo.

5.3 Representacin de los algoritmos


(diagrama de flujo y pseudocdigo)

Tipos de Instrucciones
Una instruccin puede ser considerada como un
hecho o suceso de duracin limitada que genera
unos cambios previstos en la ejecucin de un
programa, por lo que debe ser una accin
previamente estudiada y definida.

5.3 Representacin de los algoritmos


(diagrama de flujo y pseudocdigo)

Instrucciones de definicin de datos


Son aquellas instrucciones utilizadas para informar al
procesador del espacio que debe reservar en memoria, con la
finalidad de almacenar un dato mediante el uso de variables
simples o estructuras de datos ms complejas como, por
ejemplo, tablas.
La definicin consiste en indicar un nombre a travs del cual
haremos referencia al dato y un tipo a travs del cual
informaremos al procesador de las caractersticas y espacio
que deber reservar en memoria.

5.3 Representacin de los algoritmos


(diagrama de flujo y pseudocdigo)
Instrucciones primitivas
Se consideran como tal las instrucciones de asignacin y las
instrucciones de entrada/salida.

Instrucciones de entrada
Son aquellas instrucciones encargadas de recoger el dato de un
dispositivo de entrada, y seguidamente almacenarlo en memoria en
una variable previamente definida, para la cual se ha reservado
suficiente espacio en memoria.

5.3 Representacin de los algoritmos


(diagrama de flujo y pseudocdigo)
Instrucciones de asignacin
Son aquellas instrucciones cuyo cometido es almacenar un
dato o valor simple obtenido como resultado al evaluar una
expresin en una variable previamente definida y declarada.

5.3 Representacin de los algoritmos


(diagrama de flujo y pseudocdigo)
Instrucciones de salida
Son aquellas instrucciones encargadas de recoger los datos
procedentes de variables evaluadas y depositarlos en un
dispositivo de salida.

5.3 Representacin de los algoritmos


(diagrama de flujo y pseudocdigo)
Tipos de datos:
Los datos a procesar por una computadora pueden clasificarse
en:

Simples

Estructurados

5.3 Representacin de los algoritmos


(diagrama de flujo y pseudocdigo)
Datos Simples
La principal caracterstica es que solo ocupan slo una casilla de
memoria, por lo tanto, una variable simple hace referencia a un
nico valor a la vez. Dentro de este grupo se encuentran: enteros,
reales, caracteres, booleanos, enumerados y subrangos.

Datos Estructurados
Se caracterizan por el hecho de que con un nombre (identificador de
variable estructurada) se hace referencia a un grupo de casillas de
memoria. Es decir un dato estructurado tiene varios componentes.

5.3 Representacin de los algoritmos


(diagrama de flujo y pseudocdigo)

Datos numricos
Dentro de los tipos de datos
numricos encontramos los
enteros y los reales.
Los enteros son nmeros que
pueden estar precedidos del
signo + -, y que no tienen
parte decimal.

Los reales son nmeros que


pueden ser precedidos del
signo + -, y que tienen una
parte decimal.

5.3 Representacin de los algoritmos


(diagrama de flujo y pseudocdigo)
Datos alfanumricos
Dentro de este tipo de datos encontramos los de tipo caracter
(simple) y cadena de caracteres (estructurado). Son datos cuyo
contenido pueden ser letras del abecedario (a,b,c,z), dgitos
(0,1,2,9) o smbolos especiales (#, $, ^, *, %, , etc). Debemos
remarcar que aunque este tipo de datos puede contener nmeros,
no pueden ser utilizados para realizar operaciones aritmticas. Un
dato tipo cadena de caracteres contiene un conjunto de
caracteres, y se escribe entre comillas. La longitud de una cadena
depende de los lenguajes de programacin.

5.3 Representacin de los algoritmos


(diagrama de flujo y pseudocdigo)

Datos lgicos
Dentro de este tipo de datos encontramos los
booleanos.
Son datos que slo pueden tomar dos valores:
verdadero (true) y falso (false).

5.3 Representacin de los algoritmos


(diagrama de flujo y pseudocdigo)
Variables
Las variables son objetos que pueden cambiar su
valor durante la ejecucin de un programa. Al igual
que las constantes, pueden existir tipos de
variables como tipos de datos.

5.3 Representacin de los algoritmos


(diagrama de flujo y pseudocdigo)
Constantes
Las constantes son datos que no cambian
durante la ejecucin de un programa. Para
nombrar
las
constantes
utilizamos
identificadores. Existen tipos de constantes
como tipos de datos, por lo tanto, puede haber
constantes de tipo entero, real, carcter,
cadena de caracteres, etc.

5.3 Representacin de los algoritmos


(diagrama de flujo y pseudocdigo)
Operaciones aritmticas
Los operadores son smbolos que sirven para conectar los
datos facilitando la realizacin de diversas clases de
operaciones.

5.3 Representacin de los algoritmos


(diagrama de flujo y pseudocdigo)
Pseudocdigo
Se puede definir como el lenguaje intermedio entre el
lenguaje natural y el lenguaje de programacin
seleccionado. Esta notacin se encuentra sujeta a unas
determinadas reglas que permiten y facilitan el diseo de
algoritmos. El pseudocdigo surge como mtodo para la
representacin de instrucciones en una metodologa
estructurada y naci como un lenguaje similar al ingls, que
utilizaba palabras reservadas de este idioma (start, end,
stop, while, repeat, for, if, if-else, etc.) y que
posteriormente se fue adaptando a otros lenguajes de habla
hispana.

5.3 Representacin de los algoritmos


(diagrama de flujo y pseudocdigo)

Pseudocdigo

5.3 Representacin de los algoritmos


(diagrama de flujo y pseudocdigo)
Prueba de Escritorio
La prueba de escritorio es una herramienta til para entender
que hace un determinado algoritmo, o para verificar que un
algoritmo cumple con la especificacin sin necesidad de
ejecutarlo.
Bsicamente, una prueba de escritorio es una ejecucin a
mano del algoritmo, por lo tanto se debe llevar registro de
los valores que va tomando cada una de las variables
involucradas en el mismo.
Esta prueba consiste en que dar diferentes datos de entrada al
programa y seguir la secuencia indicada en el diagrama, hasta
obtener los resultados.

5.3 Representacin de los algoritmos


(diagrama de flujo y pseudocdigo)
inicio

letra

Z; letra>=A ; letra - 1

letra

fin

1.1. La computabilidad y concepto de


algoritmo:
Mquina de Turing.

5.3 Representacin de los algoritmos


(diagrama de flujo y pseudocdigo)
La estructura general de un algoritmo en pseudocdigo sera:
NOMBRE DEL PROGRAMA
DEFINICIN DE CADA MDULO
CUERPO DEL PROGRAMA
DATOS: parmetros, constantes, variables, ...

ALGORITMO
descripcin detallada de las rdenes y acciones
que se deben ejecutar para resolver el
problema
...
FIN DEL ALGORITMO

5.3 Representacin de los algoritmos


(diagrama de flujo y pseudocdigo)
Un diagrama de flujo es la representacin detallada en forma grfica de como
deben realizarse los pasos en la computadora para producir resultados.
Esta representacin grfica se da cuando varios smbolos (que indican diferentes
procesos en la computadora), se relacionan entre si mediante lneas que indican el
orden en que se deben ejecutar los procesos. Los smbolos utilizados han sido
normalizados por el instituto norteamericano de normalizacin (ANSI).
Todo diagrama debe tener un inicio y un fin.
Se deben se usar solamente lneas de flujo horizontales y/o verticales.
Se debe evitar el cruce de lneas utilizando los conectores.
Se deben usar conectores solo cuando sea necesario.
No deben quedar lneas de flujo sin conectar.
Se deben trazar los smbolos de manera que se puedan leer de arriba hacia abajo y de
izquierda a derecha.
Todo texto escrito dentro de un smbolo deber ser escrito claramente, evitando el uso de
muchas palabras.
Utilizar comentarios ya sea al margen o mediante el smbolo grafico comentarios para que
este sea entendible por cualquier persona que lo consulte.
Si el diagrama abarca mas de una hoja es conveniente enumerarlo e identificar de donde
viene y a donde se dirige.

5.4 Estructuras bsicas


(secuencia, condicional e iteracin)
Un algoritmo contiene instrucciones elementales seleccionadas
cuidadosamente que pueden ser realizadas por un robot un
procesador; el procesador recibe las rdenes y ejecuta lo que
indican, resulta obvio que la disposicin de las instrucciones resulta
crucial al momento de llevarlas a cabo. Por tanto, el algoritmo debe
incluir instrucciones de control que modifiquen la ruta que debe
seguir el procesador, adems de indicar que debe hacerse en cada
paso, as como el momento en el cual debe detenerse.
Se ha probado que para implementar cualquier algoritmo, son
suficientes tres construcciones bsicas para control de flujo
secuencia, condicional y ciclos iterativos (repetitivos). A
continuacin se describe cada una de ellas y se muestra su
representacin tanto en pseudocdigo como en diagrama de flujo.

5.4.1. Estructuras de Control.

El control de la secuencia se consigue combinando varias


instrucciones, llamadas estructuras de control de flujo, o
simplemente estructuras de control.

Incluso la receta del pastel contiene algunas de ellas, por


ejemplo:

5.4.1.1. Ejecucin secuencial.

La ejecucin secuencial consiste de


ejecutar una instruccin y al terminar,
realizar lo que indica el siguiente paso
del algoritmo.

5.4.1.2. Ejecucin condicional.


Consiste de ejecutar un grupo de
acciones A un grupo de acciones
B (pero no ambos) en funcin del
resultado de la evaluacin de una
condicin C (Verdadero Falso).

5.4.1.2. Ejecucin condicional.

Un algoritmo que solo contiene las estructuras de control


anteriores funciona para tareas de longitud fija, dado que cada
instruccin se ejecuta solamente una vez. Sin embargo,
generalmente se requiere que algunas instrucciones sean
ejecutadas ms de una vez (como en el algoritmo de obtencin
del mcd); existen estructuras de control que se encargan de la
ejecucin repetida de bloques de instrucciones, se conocen de
forma genrica como estructuras iterativas o ciclos.

5.4.1.3. Iteracin definida.


Sirve para ejecutar un grupo de
instrucciones A exactamente N
veces, donde N es un entero
positivo.

5.4.1.3. Iteracin definida.


Es importante notar que en el caso de la iteracin definida
existe una variable implcita llamada contador, cont en el
ejemplo, y sirve para tener un registro del nmero de
iteraciones realizadas hasta el momento y para llegar a la
condicin de paro. Otra variable muy utilizada cuando se
trabaja con ciclos es conocida como acumulador, y sirve para
almacenar resultados parciales de alguna operacin
importante dentro del ciclo; adems, al terminar el ciclo,
almacena el resultado final deseado.

5.4.1.4. Iteracin condicional.


Conocida tambin como iteracin indefinida,
se utiliza para repetir un bloque de acciones A,
mientras una condicin c sea verdadera, c es
una condicin de paro.

5.4.1.4. Iteracin condicional.


En este caso, a diferencia de la iteracin definida, la condicin de
paro C depende exclusivamente de las operaciones realizadas dentro
del cuerpo del ciclo.
Cuando en un algoritmo se utilizan iteraciones, es necesario tener
cuidado de no crear ciclos infinitos, esto se hace con operaciones
dentro del bloque de instrucciones que garanticen que la condicin
de paro se cumplir.

5.4.1.5.

CICLO ITERATIVO
CICLO ITERATIVO Se entiende por ciclo iterativo la unin de smbolos
grficos que en su conjunto indica cmo repetir cierto proceso; las
estructuras bsicas ms comunes son:

5.4 Estructuras bsicas


(secuencia, condicional e iteracin)
Es conveniente realizar la
solucin de problemas con la
computadora
de
manera
conversacional, es decir, que el
programa de computadora nos
vaya
indicando
mediante
mensajes las opciones y si se
desea repetir el proceso con
otros datos. El bosquejo general
de un diagrama de flujo
conversacional puede ser el
siguiente:

5.4 Estructuras bsicas


(secuencia, condicional e iteracin)
Aplicaciones del Ciclo Iterativo
Calcular el valor de la expresin
y almacenar en la variable
indicada a la izquierda del signo
igual, se genera el concepto de
contador o expresin que
permite contar (que consta de
un ciclo iterativo que ejecuta
varias veces la instruccin de
reemplazo: C=C+1):

5.4 Estructuras bsicas


(secuencia, condicional e iteracin)
Aplicaciones del Ciclo Iterativo
Otro de los conceptos de
programacin de gran utilidad es
la estructura que nos permite
llevar a cabo sumatorias (en ellas
el proceso que se repite es la
acumulacin
de
expresiones
similares, por ejemplo sumar n
dgitos o sumar una y otra vez el
valor de una variable X elevada a
un exponente que crece en cada
ocasin)

5.4 Estructuras bsicas


(secuencia, condicional e iteracin)
Otro elemento til para el clculo de frmulas es el que resulta de aplicar el
concepto de reemplazo del valor de la variable a lo que se llamar una
multiplicacin reiterada, la cual permite obtener factoriales de tipo
descendente o ascendente.
Obtnganse el factorial de: 5!
Se sabe que su factorial ascendente es: 1 x 2 x 3 x 4 x 5
De dicha multiplicacin se observa la presencia del elemento llamado
contador, que multiplica su valor por el de la variable del factorial obtenido
en el paso anterior, en efecto:
F
F
F
F
F

=
=
=
=
=

1
1
1
1
1

Valor inicial de la variable del factorial


x 2 Valor anterior de F multiplicado por 2, es decir, F = F x 2
x 2 x 3 Valor anterior de F multiplicado por 3, es decir, F = F x 3
x 2 x 3 x 4 Valor anterior de F multiplicado por 4, es decir, F = F x 4
x 2 x 3 x 4 x 5 Valor anterior de F multiplicado por 5, es decir, F = F x 5

5.4.2. Combinacin de
estructuras de control.

Un algoritmo puede contener estructuras de


control de flujo combinadas de forma
compleja;
secuencias,
condicionales
e
iteraciones pueden estar intercaladas y
anidadas.

1.5. Resolucin de problemas bsicos de


ingeniera.
Es importante mencionar que para realizar un
buen diseo de pseudocdigos y diagramas de
flujo es necesario realizar las tres fases
mencionadas en el desarrollo de algoritmos:
1. Analizar.
2. Disear.
3. Probar.

1.5.1. Ejemplos.
Ejemplo: Obtener las races de una ecuacin
cuadrtica.
Este ejemplo presenta el pseudocdigo y el
diagrama de flujo que utiliza la frmula general
para obtener las races reales de una ecuacin de
cuadrtica:

1.5.1. Ejemplos.

1.5.1. Ejemplos.

La importancia de las pruebas.

Aqu se presentan solo algunas de las nmerosas historias relacionadas


con errores en el software, varias han terminado incluso con prdida
de vidas. Es importante realizar simpre pruebas exhaustivas cuando se
disean algoritmos y programas, sin asumir de antemano que son
correctos. A principios de los aos 60s, una nave espacial de la serie
Mariner enviada a Venus se perdi debido a un error en el programa
del control de vuelo, esto cost varios millones de dlares.
En una serie de incidentes entre 1986 y 1987, muchos pacientes
recibieron sobredosis masivas de radiacin de un sistema de terapia de
radiacin Therac-25; tres de ellos fallecieron a causa de
complicaciones relacionadas.
Un componente de hardware de seguridad que bloqueaba la radiacin
fue sustituido por revisiones por software, pero debido a un error en el
programa no realizaba bien la tarea.

La importancia de las pruebas.

Hace algunos aos una anciana danesa recibi, cercano a su cumpleaos


nmero 107, una carta computarizada de las autoridades escolares locales
con instrucciones sobre como realizar su inscripcin a primer grado de
educacin primaria. Resulta que el campo ao en la base de datos solo
almacenaba dos dgitos.
En el cambio de milenio, los problemas de software se convirtieron en
noticia de primera plana con el llamado problema del ao 2000, mejor
conocido como Y2K bug. El miedo era que el 1o de enero del ao 2000
todo dejara de funcionar, ya que las computadoras usaban slo dos
dgitos para almacenar el ao y por esto, asumiran que 00 era el ao
1900 en lugar del 2000. Esto dio como resultado un gran (existoso) y muy
costoso esfuerzo para corregir programas en todo el mundo.
Estos son solo algunos ejemplos de la importancia que tiene realizar
pruebas a los diseos de software elaborados.

1.5.1. Ejemplos.
Disea un algoritmo que lea un nmero natural distinto de 0
desde teclado y muestre por pantalla todos los divisores de dicho
nmero.

1.5.1. Ejemplos.
algoritmo : Divisores
# Algoritmo que escribe los divisores de un nmero dado
{numero=X (X N) X>0}
# Declaracin de variables
var numero, contador : entero fvar
# Cuerpo del algoritmo
escribe('Introduce un nmero natural no nulo : ');
lee(numero);
escribe(1);
contador := 2;
mientras (contador < numero) hacer
si (numero resto contador) = 0 entonces
escribe(contador)
fsi;
contador := contador + 1
fmientras;
escribelin(contador)
{numero=X contador=X}
falgoritmo.

Você também pode gostar