Está en la página 1de 51

1

Curso de

ALGORITMOS

Centro de Formación Técnica “CENCO”

Profesor : Jorge Rojas Taborga

-2001-
2
Indice

1. INTRODUCCIÓN........................................................................................................... 1

2. LOGICA Y ALGORTIMOS........................................................................................... 3

3. METODOS DE PROGRAMACIÓN.............................................................................. 6

4. DATOS Y TIPOS DE DATOS....................................................................................... 8

5. VARIABLES................................................................................................................... 10

6. CONSTANTES............................................................................................................... 11

7. EXPRESIONES............................................................................................................... 11

8. HERRAMIENTAS PARA EL DISEÑO DE ALGORITMOS....................................... 14

9. PSEUDOCÓDIGO.......................................................................................................... 24

 COMANDOS

 SENTENCIAS DE SELECCIÓN

 SENTENCIAS DE ITERACIÓN

10. ESTRUCTURAS DE DATOS......................................................................................... 34

 ARREGLOS DE UNA DIMENSIÓN (VECTORES)

 ARREGLOS DE DOS DIMENSIONES (MATRICES)

 PILAS

 LISTAS ENLAZADOS

 COLAS

 ARBOLES

 GRAFOS
3

INTRODUCCIÓN
Todos sabemos que si queremos resolver una situación o un problema determinado, necesitamos seguir una
serie de pasos que nos permitan llegar a una solución. En otras palabras, debemos ejecutar determinadas
instrucciones en forma ordenada con el fin de obtener los resultados deseados. Para aclarar esto, utilicemos el
siguiente ejemplo :

Situación : Deseo de comunicarse con un amigo que está lejos


Herramienta : Disponemos de un teléfono público

Para realizar esta llamada debemos acercarlos a ese teléfono y seguir las instrucciones que están escritas en el
mismo aparato y dicen:

Lámina N° 1

 Levante el auricular y escuche tono de marcar

 Deposite moneda

 Marque número deseado

 Si el número llamado está ocupado o no contesta, cuelgue el auricular y el dinero


será devuelto

 Si contestan la llamada, la moneda depositada le dará derecho a 3 minutos de


conversación

 Cuando hayan transcurrido 2 minutos y 50 segundos, recibirá un aviso mediante una


señal intermitente de 10 segundos, advirtiendo que le restan 10 segundos de
comunicación

 Si desea prolongar la conversación, deberá volver a depositar una moneda sin colgar
el auricular, extendiéndose la llamada por 3 minutos más, lo que puede repetirse
consecutivamente

 Si no deposita una nueva moneda, la comunicación concluirá a los 3 minutos, vale


decir 10 segundos después del aviso

Si las ejecutamos ordenadamente, hemos resuelto la situación que consistía en comunicarnos con nuestro
amigo, a no ser que se produzcan condiciones ajenas como que el teléfono público esté descompuesto, el del
amigo esté ocupado ó que no esté en el momento de la llamada.

Estas instrucciones han sido escritas para facilitarle la tarea a una persona cuando desee realizar una llamada.
4
Pero cuando las instrucciones no van a ser entregadas a una persona para que las realice, sino a un computador,
es necesario utilizar un medio de comunicación apropiado, es decir, un lenguaje que permita la compresión de
ellas por parte de la máquina.

En este caso al conjunto de instrucciones escritas que componen la solución se le denomina programa y de ahí
derivan los nombres de programador, que es la persona que traduce el problema a un lenguaje entendible por el
computador y programar, que es el nombre que se le da a la labor de traducción.

Finalmente, se puede decir que la función de un programa consiste en proporcionar las instrucciones
particulares a la unidad central de proceso que tiene todo computador para que esta realice los cálculos que se
necesitan. La tarea del programador es producir la secuencia adecuada de instrucciones para resolver el
problema
5

LÓGICA Y ALGORITMOS

Un error común del programador es que trate solucionar el problema que se plantea durante la escritura del
programa, saltándose así toda la etapa de clarificación y descripción del método de solución. Es como si se
iniciara un viaje conociendo el destino, pero ignorando el camino que lo conducirá a él.

Por lo tanto, es necesario plantearse en primer lugar el problema de acuerdo a un método determinado, y luego,
una vez que se tienen claros los pasos que se van a seguir y cómo se van a realizar para llegar a un resultado,
traducirlo a un programa para ser ejecutado en un computador.

La forma de plantear un problemas es describirlo utilizando la lógica y representarlo a través de un algoritmo.

Se puede definir la lógica como una disposición mental que permite describir la solución a un problema,
mediante pasos secuenciales, de tal forma que se ejecute una sola acción a la vez.

Muchas veces utilizamos la lógica para resolver una situación o dificultad y no nos damos cuenta. Un ejemplo
de esto es cuando debemos cruzar una calle desde una vereda a la otra y que tiene tránsito en un sentido.
Nuestra mente debiera funcionar de la siguiente manera :

Lámina N° 2

 Avanzamos hasta el borde de la calle

 Miramos en contra del sentido del tránsito para ver si viene un vehículo cerca

 Si no es así cruzamos, pero si vemos alguno calculamos en forma aproximada el


tiempo que se demoraría en llegar al lugar donde vamos a cruzar y también
calcularíamos cuanto tiempo ocuparíamos en atravesar nosotros la calle

 Comparamos mentalmente esos tiempos

 Si el tiempo que demoramos en cruzar es menor que el del vehículo en llegar,


atravesamos

 Si no es así, esperamos hasta que el auto pase frente a nosotros y volvemos a mirar
nuevamente si viene otro, hasta que no venga alguno o se encuentre demasiado lejos
6
Algunas definiciones de algoritmos son:

Lámina N° 3

 Conjunto específico de procedimientos matemáticos y lógicos simples y bien


definidos que pueden seguirse para resolver un problema en un número determinado
de pasos.

 El conjunto de instrucciones que especifican la secuencia de operaciones a realizar


en orden, para resolver un sistema específico o clase de problemas,

 Medio por el cuál se explica como se puede resolver un problema en una cantidad
finita de pasos

Las características fundamentales que debe cumplir un algoritmo son:

Lámina N° 4

 Un algoritmo debe ser preciso e indicar el orden de realización de cada paso

 Debe estar definido (siempre se debe llegar al mismo resultado)

 Debe ser finito (debe terminar en algún momento, o sea tener un número finito
de pasos)

Algunos ejemplos cotidianos de algoritmos son:

 Recetas de cocina
 Instrucciones para cambiar la rueda de un auto
 Instrucciones para realizar una llamada telefónica
 Pasos para escribir una carta
 Como envolver un regalo de navidad
 Solicitar un libro en una biblioteca
 Pasos para depositar un cheque
 Resolución de operaciones matemáticas

Para aclarar el concepto de algoritmo, veamos el siguiente ejemplo:

Se tienen escritos en una hoja, tres números distintos enteros desordenados. Se debe determinar el mayor de
ellos. Si se observan los números, se puede señalar casi de inmediato, el número mayor. Pero este resultado
es producto de un proceso mental, del cual algunos pasos se efectúan casi inconscientemente. Al analizar
este proceso y escribir los pasos dados se obtiene el siguiente algoritmo:
7

Lámina N° 5

 Se compara el primer número con el segundo

 El que resulte mayor se compara con el tercero

 El que resulte mayor de esta última comparación es el número pedido

En la definición de un algoritmo se deberían describir tres pasos:

ENTRADA PROCESO SALIDA

Para aclarar tomemos algunos ejemplos anteriores:

Lámina N° 6

PROBLEMA ENTRADA PROCESO SALIDA

Preparar estofado de - Carne - Preparación del - Estofado de


carne - Condimentos estofado carne
- Aceite

Llamar por teléfono - N° telefónico - Conversación - Comunicación


- Monedas

Cambiar una puerta - Herramientas y - Cambiar la puerta - Puerta en buen


puerta nueva deteriorada por la estado
nueva
8

MÉTODOS DE PROGRAMACIÓN

Top – Down : Se caracteriza por ir de lo general a lo particular. (Diseño Descendente)

Bottom – Up : Se caracteriza por ir de lo particular a lo general. (Diseño Ascendente)

MÉTODO TOP DOWN

Es un método de pasos expansivos por niveles. El primer nivel resuelve totalmente el problema y el segundo
nivel y los siguientes son refinamientos sucesivos del primero.

Tomemos un ejemplo:

Lámina N° 7

1. Hacer un puré de papas

2. a. Obtener ingredientes
b. Mezclar ingredientes
c. Servir puré

3b. a. Pelar papas


b. Hervir papas
c. Moler papas
d. Condimentar
e. Batir

4d. a. Agregar sal


b. Agregar mantequilla
c. Agregar leche
9
EJERCICIOS.

Lámina N° 8

Ejercicio N°1 : Crear un algoritmo que permita determinar el mayor entre dos números

1. Determinar el mayor entre dos números

2. a. Obtener los números


b. Comparar cual es el mayor
c. Mostrar resultado

Ejercicio N°2 : Crear un algoritmo que permita determinar la suma de los diez primeros
números naturales

1. Determinar la suma de los diez primeros números naturales

2. a. Obtener los números


b. Sumarlos
c. Mostrar resultado

Ejercicio N°3 : La empresa “ACME” pide determinar el sueldo que gasta mensualmente
si todos los empleados ganan lo mismo
( $ / Hr. )

1. Determinar el sueldo que gasta la empresa mensualmente

2. a. Obtener datos
b. Realizar cálculos de gastos
d. Mostrar resultado

3a. a. Obtener cantidad de empleados


b. Obtener la relación $ / Hr. y número de horas trabajadas por empleado
c. Acumular para cada empleado horas trabajadas * $ / Hr.

4b. a. Mostrar resultado parcial

Ejercicio N°4 : Determinar los pasos para sacar un libro de biblioteca

1. Sacar un libro de biblioteca

2. a. Obtener datos
b. Solicitar libro en el mesón
c. Llevar libro

3a. a. Obtener datos personales


b. Obtener datos del libro
c. Llenar solicitud
10

DATOS Y TIPOS DE DATOS

El principal objetivo de todo computador es el manejo de datos. Los programas de computador contienen
ciertos valores que permiten realizar diferentes tipos de operaciones. Un programa necesita de elementos para
llegar a una solución. Estos son las instrucciones y los datos. Se puede decir que los datos son los antecedentes
necesarios para llegar al conocimiento exacto de una cosa o para deducir las consecuencias de un echo.

Estos datos pueden ser las cifras de ventas semanales de un determinado producto, nombres y direcciones de
una lista de correos, calificaciones finales de un curso, mediciones de un experimento, etc.

Lámina N° 9

TIPOS DE DATOS
11

TIPO DE DATOS ESTÁNDAR

ENTERO: Dato con el cual se puede realizar una operación aritmética y cuyo origen son los dígitos
del sistema decimal. También se denominan números completos pudiendo ser positivos o
negativos.

34 -4 457800 -295 -2 62000

REAL: Dato con el cual se puede realizar una operación aritmética y cuyo origen son los dígitos
del sistema decimal. Contienen siempre un punto decimal en que las fracciones se
representan como números decimales. También se pueden ser positivos o negativos.

45.8 -3.6 12340.34 -24.5789 1200.1

CARACTER: Se agrupan en series de caracteres o String . Lo conforman las letras del alfabeto ( A..Z,
a..z); los dígitos ( 0..9 ) y símbolos especiales ( % , $ , & , espacio , etc ).

‘A’ ‘Juan Pérez’ ‘Providencia 4533’ ‘Escriba su nombre’

LOGICO: Es aquel que puede tomar o adoptar sólo dos valores Verdadero (True) o Falso (False)
12

VARIABLES
Los datos con los cuales trabaja un programa se sitúan en objetos llamados variables.

Lámina N° 10

Una variable se identifica por los siguientes atributos:

 Nombre de la variable. También conocidos como identificadores, deben ser


significativos y tener relación con el objeto que representan

 Tipo que describe el uso de la variable

 Un Valor o conjunto de valores asociado

EDAD Nombre de la variable

24 Valor de la variable

El valor de una variable puede ser examinado tan a menudo como sea necesario para borrarlo o cambiarlo

El tipo de dato de una variable es el conjunto de datos que puede tomar. En la mayoría de los lenguajes de
programación se permiten las variables enteras, reales, caracteres y booleanas o lógicas.

Una variable es un objeto o conjunto de datos cuyo valor puede cambiar durante el desarrollo del algoritmo o
ejecución del programa.

La acción que consiste en atribuir un valor o dato a una variable se llama asignación.

En un algoritmo, algunos ejemplos de asignación de un valor a una variable son:

EDAD = 24 ( Variable de tipo entero)


NOMBRE = ‘Alejandro’ ( Variable de tipo carácter)
CASADO = Falso ( Variable de tipo lógico)
13

CONSTANTES
Es un conjunto de datos (objetos) que permanecen sin cambios durante el desarrollo del algoritmo o la
ejecución del programa. En la mayoría de los lenguajes de programación se permiten las constantes enteras,
reales, caracteres y booleanas o lógicas.

La acción que consiste en atribuir un valor o dato a una variable se llama asignación.

En un algoritmo, un ejemplo de asignación de un valor a una constante es:

IMPUESTO = 0.18 ( Constante de tipo real)

EXPRESIONES
Son combinaciones de constantes, variables, símbolos de operación y nombres de funciones especiales.
Cada expresión tiene un valor que se determina tomando los valores de las variables y constantes implicadas y
ejecutando las operaciones indicadas. Las expresiones se clasifican en dos tipos:

EXPRESIONES ARITMÉTICAS

Son análogas a las fórmulas matemáticas. Las variables y constantes son numéricas y las operaciones son las
aritméticas. Los operadores más comunes son:

Lámina N° 11

SIMBOLO SIGNIFICADO
^, ** Exponenciación
* Multiplicación
/ División (Real)
+ Suma
- Resta
DIV División entera
MOD Módulo (Residuo)
= Asignación
( ) Paréntesis
14

EXPRESIONES LOGICAS O BOOLEANAS

Permiten realizar comparaciones de valores de tipo numérico o carácter. Sirven para expresar las condiciones en
algoritmos o programas. El valor sólo puede ser Verdadero (True) o Falso (False) Una expresión booleana se
genera a través de dos tipos de operadores:

Operadores relacionales:

Lámina N° 12

SIMBOLO SIGNIFICADO
> Mayor que
< Menor que
= Igual a
<> Distinto a
>= Mayor o igual a
<= Menor o igual a

Operadores lógicos:

Lámina N° 13

SIMBOLO SIGNIFICADO
NOT NO Lógico
AND Y Lógico
OR O Lógico

Ejemplo: RESUL = 2 > 3 (El tipo de la variable es booleano y su valor es Falso)

Tabla lógica:

Lámina N° 14

A B NOT A A AND B A OR B
V V F V V
V F F F V
F V V F V
F F V F F
15

Ejemplo:

A= Falso
B= Verdadero
C= 3
D= 5

( ( A OR B ) AND ( B AND A ) ) OR ( C < = D )

( V AND F ) OR V

F OR V

V
16

HERRAMIENTAS PARA EL DISEÑO DE ALGORITMOS


Las distintas representaciones de un ALGORITMO son

 Diagrama N-S
 Diagrama de Flujo
 Pseudocódigo

DIAGRAMAS NASSI – SCHNEIDERMAN

Conocidos como Diagramas N-S o Diagramas de Chapin. Las acciones se escriben dentro de cajas sucesivas.

Lámina N° 15

DIAGRAMAS NASSI – SCHNEIDERMAN


17

DIAGRAMAS DE FLUJO

Es una representación que utiliza símbolos unidos por flechas. Dentro de cada símbolo o caja se indican las
operaciones que deben ser realizadas.

Lámina N° 16

DIAGRAMA DE FLUJO
18

Lámina N° 17

SIMBOLOGÍA DE LOS DIAGRAMAS DE FLUJO

Permite iniciar o terminar un proceso según la leyenda que se


coloque en su interior

Sirve para indicar la operación que se va a realizar

Permite indicar la dirección que se ha de seguir frente a una


decisión

Se usa para indicar la dirección de la siguiente actividad u operación

Se utiliza para indicar lectura o escritura, o lo que es lo mismo,


entrada o salida de información

Permite enlazar dos o más partes del diagrama dentro de una misma
página
19

Lámina N° 18

TOMEMOS UN EJEMPLO SIMPLE COTIDIANO DE CÓMO PREPARAR UN CAFÉ CON 3 TERRONES DE


AZUCAR

INICIO

ECHAR UN
TERRÓN DE
AZUCAR

NO SE
ECHARON 3
TERRONES

SI

ECHAR CAFE

NO ESTA
LLENA LA
TAZA

SI

FIN

En las siguientes páginas se muestran algunos algoritmos simples representados en diagramas de flujos
20

Lámina N° 19
21

Lámina N° 20
22
Lámina N° 21
23

Lámina N° 22
24

Lámina N° 23
25

Lámina N° 24
26

PSEUDOCÓDIGO

Pseudo significa “Falso” o “Imitación” y Código se refiere a las instrucciones escritas en un lenguaje de
programación. Por esto el pseudocódigo es un lenguaje de especificación de algoritmos y no puede ser
ejecutado por una computadora, la ventaja del pseudocódigo es que el programador se puede concentrar en la
lógica y en las estructuras de control y no preocuparse de las reglas de un lenguaje de programación específico.
Es fácil de modificar y puede ser rápidamente traducido a un lenguaje de programación. Representa acciones
sucesivas en un lenguaje similar al humano. La fase de creación del pseudocódigo es inmediatamente anterior a
la fase de codificación

En los diferentes pasos de un algoritmo en pseudocódigo se establece la realización de alguna de estas tres
acciones:

 OBTENER O ENTREGAR ALGÚN DATO


 TOMAR ALGUNA DECISIÓN
 OPERAR ALGÚN DATO

1. OBTENER O ENTREGAR ALGÚN DATO

Estas acciones indican que se debe obtener desde el exterior (Teclado) un valor el cual formará parte del
proceso del algoritmo. En pseudocódigo se escribirá LEER

Así mismo, se permitirá entregar un valor producto de un proceso (Resultado) . En pseudocódigo se escribirá
IMPRIMIR o MOSTRAR

Lámina N° 25

Ejemplo:

Problema: Determinar la suma de dos números

Algoritmo Pseudocódigo

Obtener 2 números LEER NUM1 , NUM2


Sumarlos RESUL = NUM1 + NUM2
Entregar resultado IMPRIMIR RESUL
27

2. TOMAR ALGUNA DECISIÓN

Estas acciones indican que se debe tomar alguna decisión, es decir, decidir si realizar una determinada acción u
otra. Esta decisión está sujeta a responder previamente una pregunta cuyo resultado el lógico o booleano , es
decir Verdadero (True) o falso (False). Si el resultado es verdadero se realizará una o varias acciones, en caso
contrario (Resultado Falso), se efectuará una o varias acciones distintas. Esto se denomina sentencias de
selección y su estructura es como sigue:

Lámina N° 26

SENTENCIA DE SELECCIÓN:

SI (condición ) ENTONCES

( Proceso 1 )

SINO
( Proceso 2 )

FIN-SI

Ejemplo

Problema: Determinar el mayor de dos números distintos

Algoritmo Pseudocódigo

Obtener 2 números LEER NUM1 , NUM2


Compararlos SI NUM1 > NUM2
MAYOR = NUM1
SINO
MAYOR = NUM2
FIN-SI

Entregar resultado IMPRIMIR MAYOR


28

Las sentencias de selección también pueden anidarse como muestra la estructura siguiente:

Lámina N° 27

SENTENCIA DE SELECCIÓN ANIDADA:

SI (condición 1 ) ENTONCES

( Proceso 1 )

SINO
SI (condición 2 ) ENTONCES

( Proceso 2 )
SINO
( Proceso 3)
FIN-SI

FIN-SI

Ejemplo

Problema: Determinar el mayor de dos números. Considerar si son iguales

Algoritmo Pseudocódigo

Obtener 2 números LEER NUM1 , NUM2


Compararlos SI NUM1 > NUM2
MAYOR = NUM1
SINO
SI NUM2 > NUM1
MAYOR = NUM2
SINO
MAYOR = ‘IGUALES’
FIN-SI
FIN-SI

Entregar resultado IMPRIMIR MAYOR


29
No existe una solución algorítmica úica para un de terminado problema. El ejercicio anterior también pudo ser
resuelto de la siguiente forma:

Lámina N° 28

Ejemplo

Problema: Determinar el mayor de dos números distintos.


Considerar si son iguales.

LEER NUM1 , NUM2

SI NUM1 > NUM2

IMPRIMIR “EL MAYOR ES EL PRIMERO”

SINO

SI NUM2 > NUM1

IMPRIMIR “EL MAYOR ES EL SEGUNDO”

SINO

IMPRIMIR “SON IGUALES”

FIN-SI
30
A continuación se presentan ejercicios propuestos

Lámina N° 29

Ejercicios Propuestos

1. Imprime tu nombre, sexo, edad y estado civil

2. Lee por teclado el nombre y la edad de cualquier persona e imprime ambos datos

3. Lee por teclado el nombre y la edad de cualquier persona e imprime su nombre


sólo si es mayor de edad

4. Lee por teclado el nombre y la edad de cualquier persona e imprime su nombre


sólo se es mayor de edad, en caso contrario imprime el mensaje “no puede votar”

5. Lee por teclado el nombre , edad y sexo de cualquier persona e imprime su


nombre sólo si es de sexo masculino y mayor de edad

6. Lee por teclado el nombre , edad, sexo ( 1 = m y 2 = f) y estado civil (1=soltero,


2=casado, 3=otro) de cualquier persona e imprime su nombre sólo si es mujer
soltera y mayor de edad

7. Lee por teclado el nombre , edad, sexo ( 1 = m y 2 = f) y estado civil (1=soltero,


2=casado, 3=otro) de cualquier persona e imprime su nombre y el mensaje “Usted
no se manda sólo” sólo si es hombre o mujer menor de edad, u hombre casado de
cualquier edad. En cualquier otro caso imprime su nombre solamente

8. Lee un numero por teclado e imprime su valor absoluto

9. Lee un numero y calcula e imprime su raíz cuadrada. Usa la función sqrt( x ). Si el


numero es negativo, además imprime el mensaje “Tiene raíz imaginaria”

10. Lee dos números e imprime sólo los positivos

11. Lee dos números e imprime ambos sólo si son positivos

12. Lee dos números e imprime ambos si alguno de ellos es positivo

13. Lee dos números e imprime ambos números sólo si son de diferente signo y
distintos de cero

14. Lee dos números calcula su suma. Imprime los números leídos y sólo si la suma
es negativa, imprímela también

15. Lee dos números y calcula el cuociente de dividir el primero por el segundo.
Imprime el cuociente. Pero si el segundo número es cero no ejecute cálculo e
imprima un mensaje que diga “División no es posible”
31

3. OPERAR UN DATO

Estas acciones indican que se deben realizar operaciones de cálculo entre los distintos datos y variables que
participan en un algoritmo. Además, puede indicar que se le asigne un valor determinado a una variable.

Lámina N° 30

Ejemplo:

Sentencia Pseudocódigo

Asigne el valor 0 a la variable suma SUMA = 0

Asigne 1 a la variable contador CONTADOR = 1

Acumule en suma el valor de contador SUMA = SUMA + CONTADOR

Sume 1 a contador CONTADOR = CONTADOR + 1

Si, por ejemplo, se nos pidieran imprimir los numero del 1 al 100, sería engorroso crear el algoritmo con 100
instrucciones mostrando un número cada vez :

IMPRIMIR “1” VALOR =1


IMPRIMIR “2” Ó IMPRIMIR VALOR
. VALOR = VALOR + 1
. IMPRIMIR VALOR
. .
IMPRIMIR “100” .
.
IMPRIMIR VALOR

La solución sería asignar una vez VALOR = 1 y repetir 100 veces las instrucciones:
32
IMPRIMIR VALOR
VALOR = VALOR + 1

Si un conjunto de sentencias debe repetirse mas de una vez debido a la complejidad del algoritmo estamos
frente a lo que denomina sentencias de iteración o repetición.

Los procesos iterativos o de repetición ( también llamados ciclos ) comportan de acuerdo a 3 tipos: Ciclo
PARA, ciclo MIENTRAS y ciclo REPETIR.

1. CICLO PARA:

Posee la siguiente estructura:

Lámina N° 31

Estructura Ciclo PARA

PARA ( variable control ) := ( valor inicial ) HASTA ( valor final ) PASO ( incremento )

( proceso )

FIN-PARA

Ejemplo

PROBLEMA: Mostrar los números del 1 al 100

PARA VALOR = 1 HASTA 100

IMPRIMIR VALOR

FIN-PARA

Cuando se llega a la instrucción FIN-PARA se realizan automáticamente los siguientes procesos

 Incremento automático de la variable de control en la cantidad indicada en PASO. Si esta última no se


especifica, se asume el incremento en 1

 El flujo de control vuelve al punto de evaluación de la condición de iteración, es decir, si variable de


control < = valor final se continúa con la iteración, de lo contrario el flujo salta a la instrucción que sigue
a FIN-PARA
33
2. CICLO MIENTRAS:

Posee la siguiente estructura:

Lámina N° 32

Estructura Ciclo MIENTRAS

MIENTRAS ( condición ) HACER

( proceso )

FIN-MIENTRAS

Ejemplo

PROBLEMA: Mostrar los números del 1 al 100

VALOR = 1

MIENTRAS ( VALOR < = 100 ) HACER

IMPRIMIR VALOR
VALOR = VALOR + 1

FIN-MIENTRAS

El proceso sólo ingresará al proceso si la condición es verdadera, de lo contrario el flujo salta a la instrucción
que sigue a FIN-MIENTRAS

Cuando se llega a la instrucción FIN-MIENTRAS el flujo de control vuelve al punto de evaluación de la


condición de iteración, es decir, si la condición sigue siendo verdadera se continúa con la iteración, de lo
contrario el flujo salta a la instrucción que sigue a FIN-MIENTRAS
34

3. CICLO REPETIR:

Posee la siguiente estructura:

Lámina N° 33

Estructura Ciclo REPETIR

REPETIR

( proceso )

HASTA ( condición )

Ejemplo

PROBLEMA: Mostrar los números del 1 al 100

VALOR = 1

REPETIR

IMPRIMIR VALOR

VALOR = VALOR + 1

HASTA ( VALOR > 100 )

Siempre ingresará al proceso por lo menos una vez pues la condición es evaluada al final del ciclo.

A diferencia del ciclo MIENTRAS, si la condición es falsa se continúa con la iteración, de lo contrario el
flujo salta a la instrucción que sigue a HASTA.
35
A continuación se presentan ejercicios propuestos

Lámina N° 34

Ejercicios Propuestos

16. Imprime los 10 primeros números naturales

17. Imprime los números comprendidos entre el 200 y 300 inclusive

18. Imprime los 10 primeros números pares

19. Lee por teclado un número e imprime los 10 siguientes

20. Imprime la suma de los 10 primeros números pares

21. Lee por teclado el dos números. Si el segundo es menor o igual que el primero,
imprime el mensaje “Cálculo no es posible”, de lo contrario imprime todos los
números comprendidos entre el primero y el segundo inclusive.

22. Lee por teclado 50 números e imprime la suma de ellos

23. Lee por teclado 12 notas e imprime su promedio

24. Imprime una lista de notas del 1 al 7 con incrementos de 0.1. Cada nota debe
mostrar, además, el valor correspondiente al 40 % de ella.

25. Lee una cantidad indeterminada de números hasta el ingreso del 0 (cero) e
imprime la suma de ellos

26. Lee una cantidad indeterminada de números hasta el ingreso del 0 (cero) e
imprime su promedio

27. Lee una cantidad indeterminada de números hasta el ingreso del 0 (cero) e
imprime la cantidad de números ingresada

28. Lee una cantidad indeterminada de números hasta el ingreso del 0 (cero) e
imprime la cantidad de números positivos y negativos

29. Lee una cantidad indeterminada de números positivos hasta el ingreso del 0
(cero) e imprime :

 Cantidad de números ingresados


 Promedio de los números ingresados
 Cantidad de pares
 Cantidad de múltiplos de 5
36

ESTRUCTURAS DE DATOS
La Estructura de Datos dicta la organización, los métodos de acceso, el grado de asociatividad y las alternativas
de procesamiento para la información.

Las Estructuras de datos clásicas son las siguientes:

 Simples o estáticos

 Arreglos (Vectores/Matrices)
 Registros
 Archivos
 Conjuntos
 Cadenas

 Compuestos o dinámicos

 Pilas
 Colas
 Listas enlazadas
 Arboles
 Grafos

ARREGLOS (ARRAYS)

Es un conjunto finito y ordenado de elementos homogéneos (del mismo tipo de datos). Es un tipo de dato
estructurado simple o estático y pueden ser vectores o tablas (matrices).

Arrays de una dimensión

Es el tipo de array más simple conocido como vector (matriz de una dimensión).

Lámina N° 35

Creación de un Vector

DIM ( nombre del vector ) ( tamaño )

Ejemplo

DIM NOTAS (5)

NOTAS

1 2 3 4 5
37
Como accesar un vector.

Para poder leer o imprimir el valor de cada casilla del vector debemos definir una variable índice o puntero.
Según el valor de esta variable es la casilla que podremos accesar. También se puede hacer en forma literal
como se indica a continuación tomando el ejemplo anterior

Lámina N° 36

Acceso a un Vector

 LEER NOTAS( 2) // El dato ingresado se almacena en la casilla 2 del vector Notas

 IMPRIMIR NOTAS( 5) // Se muestra el contenido de la casilla 5 del vector Notas

 VC = 1
LEER NOTAS ( VC) // El dato ingresado se almacena en la casilla 1 del vector Notas
IMPRIMIR NOTAS ( VC) // Se muestra el contenido de la casilla 1 del vector Notas

 VC = 3
VALOR = 0
LEER VALOR
NOTAS ( VC) = VALOR // El dato ingresado se almacena en la casilla 3 del vector Notas

 PARA VC = 1 HASTA 5 // Rutina para llenar el vector Notas

LEER NOTAS ( VC)

FIN-PARA

 PARA VC = 1 HASTA 5 // Rutina para mostrar el vector Notas

IMPRIMIR NOTAS ( VC)

FIN-PARA

 SUMA = 0
PARA VC = 1 HASTA 5 // Rutina para calcular el la suma del vector Notas

SUMA = SUMA + NOTAS ( VC )

FIN-PARA
IMPRIMIR SUMA
38
A continuación se presentan ejercicios propuestos

Lámina N° 37
Ejercicios Propuestos

30. Crea el vector NOTAS de 100 casillas y llénalo con los números del 1 al 100

31. Imprime los números del vector NOTAS

32. Crea el vector NOTAS de 10 casillas y llénalo con los 10 primeros números pares

33. Crea el vector NOTAS de 20 casillas y llénalo con números ingresados por teclado

34. Dado el vector VENTAS de 350 casillas correspondiente a las ventas del día de la
empresa “ACME” crea un algoritmo que imprima el total de ventas

35. Crea el vector NOTAS de 20 casillas y llénalo con valores ingresados por teclado
para luego imprimir
 Promedio de las notas
 La nota mas alta
 La nota mas baja

36. Dado el vector NUMEROS de 80 casillas. Crea un algoritmo que imprima


 Cantidad de números pares
 Cantidad de números impares
 Cantidad de números positivos
 Cantidad de números negativos

37. Dado el vector NUM1 de 50 casillas poblado con números. Crea un algoritmo que
imprima sus números en el orden inverso.

38. Dado el vector NUM1 de 50 casillas poblado con números. Crea un nuevo vector
vacío llamado NUM2 y llénalo con los valores del primer vector pero en el orden
inverso

39. Dado el vector VENTAS de 50 casillas correspondientes a las ventas del día de un
vendedor. Crea un algoritmo que imprima su comisión del día sabiendo que si una
venta es igual o menor a $100.000. su comisión es del 5% y si la venta es mayor a
$100.000 su comisión es del 7%.

40. Dado el vector EDADES de 800 casilla. Crea un algoritmo que muestre la cantidad
de personas mayores de edad

41. Dados dos vectores ALUMNOS y NOTA de 30 casillas. Uno conteniendo los
nombres de los alumnos y otro sus notas de forma paralela. Crea un algoritmo en
pseudocódigo que muestre los nombres de los alumnos con notas bajo 4

42. Dado el vector NUMEROS de 100 casillas poblado. Crea un algoritmo que
determine si existe en él un valor ingresado por teclado
39
METODO BURBUJA (BUBBLE SORT) DE ORDENAMIENTO DE VECTOR

La idea de esta forma de ordenar es comparar una casilla con la siguiente, si la casilla siguiente es menor que la
actual, se cambian los valores.

Valor de la casilla

12 10 32

1 2 3 Vector NUM

N° de casilla

Si asignamos directamente el valor de la siguiente casilla a la actual ( en el primer caso la N° 1), se perdería el
dato de la primera al ser sobreescrita.

10 10 32

NUM(1) = NUM(2)

Para evitar esto previamente pasamos el valor de la casilla actual a una variable auxiliar y luego a la siguiente
posición

Primer paso: AUX = NUM(1)

12 10 32

12

AUX

Segundo paso: NUM(1) = NUM(2)

10 10 32

Tercer Paso: NUM(2) = AUX

10 12 32

12
40
Este proceso se debe realizar N – 1 veces, donde N corresponde al largo del vector. Se realiza N-1 veces pues
no se podría comparar la ultima casilla del vector con la siguiente N+1 pues dicha casilla no existe.

El algoritmo resultante sería:

PARA I = 1 HASTA N - 1

SI NUM( I + 1 ) < NUM ( I )

AUX = NUM ( I )

NUM( I ) =NUM( I + 1 )

NUM(I + 1 ) = AUX

FIN-SI

FIN-PARA

Esta acción la denominaremos barrido. Para los datos del ejemplo basto un solo barrido para dejar el vector
ordenado, pero no siempre sucede así. Considera el siguiente vector:

5 4 3 2 1

Con un sólo barrido quedaría:

4 3 2 1 5

Si se observa bien nos daremos cuenta que necesitaremos 5 barridos para ordenar este vector, lo que
corresponde a su largo. Por lo tanto el método Burbuja completo queda como sigue:
41

Lámina N° 38

METODO BURBUJA (BUBBLE SORT) DE ORDENAMIENTO DE VECTOR

PARA B = 1 HASTA N

PARA I = 1 HASTA N - 1

SI NUM( I + 1 ) < NUM ( I )

AUX = NUM ( I )

NUM( I ) =NUM( I + 1 )

NUM( I + 1 ) = AUX

FIN-SI

FIN-PARA

FIN-PARA
42
Arrays de dos dimensiones.

Se puede considerar como un vector de vectores. Es un conjunto de elementos del mismo tipo en el cual el
orden de los componentes es significativo y en el que se necesita especificar dos subíndices (que identifican
cada elemento). También de se denominan Matrices.

Lámina N° 39

Creación de una Matriz

DIM ( nombre de la matriz ) ( filas , columnas )

Ejemplo

DIM MAT ( 3 , 5 )

2 FILAS

1 2 3 4 5

COLUMNAS
43
Como accesar una matriz.

Para poder leer o imprimir el valor de cada casilla de la matriz debemos definir una variable índice o puntero
para las filas y otra para las columnas. Según el valor de ambas variables es la casilla que podremos accesar.
También se puede hacer en forma literal como se indica a continuación tomando el ejemplo anterior

Lámina N° 40

Acceso a una Matriz

 LEER MAT ( 2 , 1) // El dato ingresado se almacena en la casilla de la fila 2 columna 1

 IMPRIMIR MAT( 3 , 5 ) // Se muestra el contenido de la casilla de la fila 3 columna 5

 F= 1
C=4
LEER MAT ( F , C ) // El dato ingresado se almacena en la casilla de la fila 1 columna 4
IMPRIMIR MAT ( F , C ) // Se muestra el contenido de la casilla de la fila 1 columna 4

 A=3
B=1
VALOR = 0
LEER VALOR
MAT ( A , B ) = VALOR // El dato ingresado se almacena en la fila 3 columna 1

 PARA FILA = 1 HASTA 3 // Rutina para llenar la matriz MAT


PARA COLUMNA = 1 HASTA 5
LEER MAT ( FILA , COLUMNA )
FIN-PARA
FIN-PARA

 PARA F = 1 HASTA 3 // Rutina para mostrar la matriz MAT


PARA C = 1 HASTA 5
IMPRIMIR MAT ( F , C )
FIN-PARA
FIN-PARA

 SUMA = 0
PARA A = 1 HASTA 3 // Rutina para calcular la suma de la matriz MAT
PARA B = 1 HASTA 3
SUMA = SUMA + MAT ( A , B )
FIN-PARA
FIN-PARA
IMPRIMIR SUMA
44
A continuación se presentan ejercicios propuestos

Lámina N° 41

Ejercicios Propuestos

43. Crea la matriz MAT de 10 x 10 llénala con los números del 100 al 200

44. Imprime los números de la matriz MAT

45. Crea la matriz IMPAR de 5 x 3 y llénala con los 15 primeros números impares

46. Crea la matriz NUM de 5 x 5 y llénala con números ingresados por teclado

47. Dada la matriz anterior, muestra los datos de la columna 3

48. Dada la matriz AUX de 2 x 40 correspondiente a las ventas del día, crea un
algoritmo que imprima el total de ventas

49. Crea la matriz NOTAS de 5 x 6 y llénala con valores ingresados por teclado para
luego imprimir
 Promedio de las notas
 La nota mas alta
 La nota mas baja

50. Dado la matriz NUMEROS de 80 x 80. Crea un algoritmo que imprima el número
mayor y el menor

51. Dada la matriz MISCHILE de 60 x 4, donde la primera columna almacena el


nombre de la concursante y las tres restantes sus medidas anatómicas. Crea un
algoritmo que muestre el nombre de las concursantes que tienen las medidas
perfectas

52. Dada la matriz VENTAS de 120 x 2, donde la primera columna almacena el monto
de una venta y la segunda el nombre del vendedor. Crea un algoritmo que
muestre el nombre del vendedor que realizó la venta mas alta

53. Dado la matriz DATOS de 800 x 3, donde la primera casilla almacena el nombre de
la persona, la segunda su edad y la tercera su sexo (1=Masculino y 2 = Femenino).
Crea un algoritmo que muestre los nombres de las mujeres menores de edad

54. Dada la matriz NUM2 de 35 x 23. Crea un algoritmo que lea un numero por teclado
y determine la fila y columna en que se encuentra, de lo contrario muestre el
mensaje “Dato no se encuentra”
45
PILAS.

Los arreglos compuestos o dinámicos son estructuras que crecen a medida que se ejecuta un programa. Es una
colección de elementos (nodos) que son normalmente registros. Se pueden dividir en dos grandes grupos:
Estructuras lineales como ser pilas, colas y listas enlazadas y Estructuras no lineales como ser Árboles y
Grafos.

Una Pila (Stack) es una lista lineal en la que la inserción y borrado de elementos se realiza sólo por un extremo
denominado Cima o Top (Top)

Creación.
Se necesita un puntero que apunte a la Cima o Top. Para crearse, es posible utilizar un arreglo unidimensional
de tipo FIFO.

Inserción.
Dado que las operaciones de insertar y eliminar se realizan por un solo extremo, los elementos solo pueden
eliminarse en orden inverso al que se insertan en la pila. El último elemento que se pone en la pila es el primero
que se puede sacar. Estas estructuras se conocen con el nombre de LIFO (Last In First Out). Las operaciones
más usuales son Push (insertar un elemento en la pila) y Pop (eliminar un elemento).

Figura N° 42
46

LISTAS ENLAZADAS.

Es un conjunto de elementos en los que cada elemento contiene la posición (dirección) del siguiente elemento
de la lista. Cada elemento debe tener al menos dos campos. Un campo que tiene el valor del elemento y un
campo de enlace (link) que contiene la posición del siguiente elemento.

Creación.
Los valores se almacenan en un nodo, cada nodo contiene al menos un campo dato o valor y un enlace
(indicador o puntero) con el siguiente campo. El campo enlace apunta al siguiente nodo de la lista. El último
nodo de la lista suele terminarse con un nulo para indicar el fin de la lista. No es necesario que los elementos de
la lista sean almacenados en posiciones físicas adyacentes, ya que el puntero indica donde se encuentra el
siguiente elemento.

Recorrido y búsqueda.
Las operaciones que normalmente se ejecutan son:
1. Recuperar información de un nodo específico
2. Encontrar el nodo que contiene la información específica.
3. Borrar un nodo existente que contiene información específica.
Inserción.
1. Insertar un nuevo nodo en un lugar específico.
2. Insertar un nuevo nodo en relación a una información particular.
Listas doblemente enlazadas.
Pueden recorrerse en ambas direcciones. En estas listas cada nodo consta de un campo de información de datos
y dos campos de enlace al nodo anterior y al nodo posterior. Ocupa más espacio en memoria.

COLAS.

Las colas se utilizan para almacenar datos que necesitan ser procesados según el orden de llegada. Es una
estructura lineal de datos. La eliminación se realiza al principio de la lista (Frente/Front). El primer elemento
que entró es el primero que saldrá (FIFO, First In First Out).

Creación.
Se pueden representar por listas enlazadas o por arreglos. Se necesitan dos punteros Frente y Final, y la lista o
arreglo de n elementos. También puede crearse una lista enlazada circular que sólo necesitará un puntero.

Inserción.
La inserción de un elemento se realiza en el último extremo (Final/Rear).

ARBOLES
Se usan para representar datos con una relación jerárquica entre sus elementos (Árboles Genealógicos, Tablas,
etc.). Existen 2 tipos de árboles: Binario, Binario completo y No binario. Es una estructura recursiva que
contiene un nodo llamado Padre o Raíz y subnodos llamados Hijos u Hojas.

Representación de árboles.
 Raíz.- Todos los árboles que no estén vacíos tienen un nodo llamado Raíz. Todos los demás elementos o
nodos se derivan o descienden de él. Este nodo no tiene Padre, es decir, no es hijo de ningún elemento.
 Nodo.- Son los vértices o elementos del árbol.
 Nodo Terminal u Hoja (Leaf Node).- Es aquel nodo que no contiene ningún subárbol, o sea que no tiene
hijos.
 Hijo.- A cada nodo que no es Hoja se le asocia uno o vario subárboles llamados descendiente o Hijos. De
igual forma, cada nodo tiene asociado un antecesor o ascendiente llamado Padre.
47
Los nodos de un mismo Padre se llaman Hermanos.
Recorrido de árboles binarios.
 Prefijo. Se compone de tres pasos: Raíz, Hijo Izquierdo, Hijo Derecho.
 Infijo: Se compone de tres pasos: Hijo Izquierdo, Raíz, Hijo Derecho.
 Postfijo: Se compone de tres pasos: Hijo Izquierdo, Hijo Derecho, Raíz.

Búsqueda e inserción.
El árbol de búsqueda se construirá teniendo en cuenta las siguientes premisas:
1. El primer elemento se utiliza para crear el nodo Raíz.
2. Los valores del árbol deben ser tales que pueda existir un orden (entero, real, lógico o carácter e incluso
definido por el usuario).
3. En cualquier nodo todos los valores del subárbol izquierdo del nodo son menor o igual al valor del nodo.
De modo similar todos los valores del subárbol derecho deben ser mayores que los valores del nodo.

GRAFOS.

Es una estructura de datos no lineal. Los árboles representan estructuras jerárquicas con limitaciones. Si se
eliminan las restricciones de que cada nodo puede apuntar a otros nodos y que cada nodo puede estar apuntado
por otro nodo nos encontraremos con un grafo.
Es un conjunto de puntos y líneas cada uno de los cuales une a un punto con otro.

Representación de grafos en la computadora.


Existen dos técnicas para representar un grafo:
1. Matriz de Adyacencia.- Es una arreglo de dos dimensiones que representan las conexiones entre pares de
verticales.
2. Lista de Adyacencia.- Se utiliza cuando un grafo tiene muchos vértices y pocas aristas. Esta representación
se lleva a cabo con una lista enlazada por cada vértice del grafo que contenga vértices adyacentes desde él.
48
Ejerciciop
Algoritmos Propuestos:

1. Calcular el salario neto de un trabajador. Es necesario conocer horas


trabajadas, pago por hora al trabajador y descuentos fijos al trabajo bruto
con impuesto (20%).

2. Sumar una serie de número. Solo se sumarán aquellos que sean enteros
positivos.

3. Suma de los números pares. La suma se realizará usando todos los números
entre el 2 y el 1000.

4. Leer una secuencia de números. Encontrar e imprimir todos aquellos números


cuyo valor sea cero (0).

5. Sumar los primeros "n" números enteros.

6. Desplegar (imprimir) la lista de números del 1 al 100.

7. Calcular la suma de los números 1 al 1000.

8. Leer todas las fichas de un archivo e imprimir el número (cantidad) total


de fichas existentes.

9. Escribir algoritmo para calcular el área de un triángulo. Es necesario


conocer la base y la altura.

10. Un corredor de maratón ha recorrido la carrera en un tiempo de 2:25:00. Se


desea calcular el tiempo medio en minutos por kilómetro. Distancia del maratón
= 42,195 Km.

11. Calcular la media de las estaturas de un grupo de personas. Mencione


cuantas de esas personas son más altas que la media de estaturas y cuantas son
más bajas.

12. Calcular el producto de "n" números naturales y desplegar el resultado.

13. Contar los números enteros positivos introducidos desde el teclado.

14. Sea un archivo de datos que contiene "n" valores, determine cual es el
mayor de ellos y en que posición se localiza.

SALARIOS.

Cálculo de los salarios mensuales de los empleados de una


empresa, sabiendo que se calculan en base a las horas semanales
trabajadas y de acuerdo con una cantidad especificada por cada
hora. Si se pasan de 40 semanales, las horas extraordinarias se
pagarán a razón de 1.5 veces la hora ordinaria.

Ejercicios

Problema:
Calcular la media aritmética de una serie determinada de números positivos.
49

Análisis:
La media de una serie de números X1, X2,... Xn está basado en la fórmula

MediaAritmética = (X1 + X2 + .. + Xn ) / n

Las variables utilizadas en estos casos son X (valores de entrada, de tipo


real), MediaAritmética (resultado a obtener al realizar la operación
matemática, de tipo real) y n (número total de datos de entrada, tipo
entero). También es posible seccionar la operación matemática en dos partes,
una para la obtención de la suma, y otra para el resultado de la división
entre la suma total y el total de datos.

Pseudocódigo:
Algoritmo Obtener_Media
{se realizará una operación matemática basada en los valores de entrada}
Inicio
{inicialización de variables}
N = 0
Suma = 0
{lectura de datos}
{los datos pueden ser leídos desde un archivo u obteniendo una entrada
desde el teclado del usuario}
Leer TotalDatos
MIENTRAS TotalDatos < = N HACER
{Es necesario tener un contador que permita llevar el control del
número de datos leídos}
N = N + 1
{realizar la lectura de cada uno de los datos (por archivo o
teclado)}
Leer X
{Hay que almacenar la suma de los números leídos hasta el momento}
Suma = Suma + X
FIN_MIENTRAS {Fin del ciclo}
MediaAritmetica = Suma / N
Escribir ( ´ La Media Aritmética obtenida es : ´ , MediaAritmetica )
Fin

BASIC:
100 'programa MEDIA
110 'cálculo de la media aritmética de N números, leídos desde el
teclado
120 'variables enteras = N; variables reales = X, MEDIA, SUMA
130 DEFINT N
140 DEFSNG X, MEDIA, SUMA
150 N = 0
160 SUMA = 0
170 INPUT X
180 WHILE X < > -99
190 N = N + 1
200 SUMA = SUMA + X
210 INPUT X
220 WEND
230 MEDIA = SUMA / N
240 PRINT "el total de números es ",N
250 PRINT "la media es = ", MEDIA
50
260 END

Pascal:
Program Media (input, output);
{cálculo de la media aritmética de N números leídos desde el teclado}
Var X, SUMA, MEDIA, NUM: Real; {Declaración de variables}
N: Integer;
Begin {Inicio del programa principal}
N := 0; {Inicialización de variables}
SUMA:= 0;
Write (´ Escribe el número total de datos a utilizar ´ ); {Mensaje
en pantalla}
Read(X); {Lectura del total de datos por leer}
While N < = X Do {Inicio del ciclo}
Begin
N:= N + 1; {Contador para número de datos leídos}
Write (´escribe dato ´ , N ); {Mensaje en pantalla}
Read ( NUM ); {Lectura cada número}
SUMA:= SUMA + NUM; {Sumatoria de los datos}
End; {Fin del ciclo While}
MEDIA:= SUMA / X; {Cálculo de la media}
Write ( ´ La media aritmética obtenida es: ´ , MEDIA);
End. {Fin del programa principal}

FORTRAN:
PROGRAM MEDIA
C Cálculo de la media aritmética de N números leídos del teclado
INTEGER N
REAL X, SUMA, MEDIA
N = 0
SUMA = 0
100 READ ( 5, *, END = 200) X
N = N + 1
SUMA = SUMA + X
GO TO 100
200 MEDIA = SUMA/N
PRINT *, 'el total de números es ' , N
PRINT *, 'la media es ', MEDIA
END

MODULA-2:
MODULE Media
FROM RealInOut IMPORT ReadReal, Flag, WriteReal;
FROM InOut IMPORT WriteInt, WriteString, Writeln;
(*Cálculo de la media aritmética de N números positivos
leídos del teclado *)
VAR X, SUMA, MEDIA: REAL; n: INTEGER;

BEGIN
n:= 0;
SUMA:=0 ;
WriteString ("Leer una serie de números"); Writeln;
ReadReal (X);Writeln;
WHILE Flag DO
n:= M + 1
51
Suma:= Suma + X;
ReadReal(X); Writeln;
END;
Media:= Suma/FLOAT (n8);
Writeln; WriteString (' el total de número es '); WriteInt (n, 8);
Writeln; WriteString (' la media es = '); WriteReal (media, 10);
END Media.

También podría gustarte