Вы находитесь на странице: 1из 62

LOGICA DE PROGRAMACIÓN

Algoritmo: Es un conjunto de pasos, instrucciones o decisiones que se


deben seguir para llegar a un fin.

Conjunto de pasos, instrucciones o decisiones que se deben seguir y


realizar coordinadamente para resolver un problema.

Tipos de Algoritmos:
1. Cualitativos.
2. Cuantitativo.
3. Directo.
4. Indirecto.

Algoritmos Cualitativos: Son todos aquellos pasos o instrucciones


descritos por medio de palabras que sirven para llegar a la solución de un
problema.
Ejemplos:
 Elaboración de una receta de cocina.

Algoritmos Cuantitativos: Son todos aquellos pasos o instrucciones que


involucran cálculos numéricos para llegar a un resultado satisfactorio.
Ejemplo:
 Los pasos a seguir en la Solución de una Ecuación de Segundo
Grado.

Algoritmo Directo: Es Aquel en donde se alcanza la solución en un número


conocido de pasos.

Algoritmo Indirecto: Es aquel en donde no cocemos el número necesario


de pasos para alcanzar la solución.

CARACTERÍSTICAS DE UN ALGORITMO.

Definido: Cada paso debe ser preciso, es decir, sin dejar posibilidades de
interpretaciones equivocadas.

Finito: Todo Algoritmo debe tener un comienzo y llegar a un final, es decir,


un número determinado de pasos.

Elaborado por ING. Elvis Vanegas. 1


Explicito: Todo Algoritmo a elaborar debe ser capaz de resolver todos los
problemas que se presentan.

Algoritmos Cualitativos:

1.- Como Hacer una Llamada Telefónica. Condición: De un teléfono público.


El algoritmo Finaliza cuando se realice la llamada.

1. Inicio
2. Buscar el número
3. ¿Encontró el Número?: SI: Ir Paso 4
NO: Ir Paso 2
4. Ubicar el Teléfono
5. ¿Hay Teléfono?: SI: Ir Paso 6
NO: Ir Paso 4
6. Levantar el auricular.
7. ¿Esta Bueno el teléfono?: SI: Ir Paso 8
NO: Ir Paso 15
8. Marcar el Número Telefónico.
9. ¿Esta desocupada la Línea?: SI: Ir Paso 10
NO: Ir Paso 8
10. Esperar a que levanten la bocina del Teléfono.
11. ¿Tomaron el teléfono?: SI: Ir Paso 12
NO: Ir Paso 15
12. Preguntar por la Persona con quien desea hablar.
13. ¿Está la Persona?: SI: Ir Paso 14
NO: Ir Paso 15
14. Hablar con la Persona
15. Fin.

CONCEPTO DE PROGRAMA:
Es un conjunto de instrucciones, ordenes dadas a la máquina que
producirán la ejecución de una determinada tarea. En consecuencia un
programa es un medio para conseguir un fin.
El proceso de la programación es por consiguiente un proceso que
permite resolver un problema.

CARÁCTER: Es un espacio en blanco, una letra, un número, un signo, etc.

Elaborado por ING. Elvis Vanegas. 2


DATOS:
Son medidas, valores o características que pueden ser manipulados y
constituyen la materia prima para producir la información, en otras palabras
son el material sin procesar del que se extrae la información.
Se denomina dato a cualquier objeto manipulable por la computadora.
Un dato puede ser un carácter leído de un teclado, información almacenada
en disco, un número que se encuentre en memoria principal.

TIPO DE DATOS:
Los datos pueden ser: Numéricos, alfanuméricos y booleano.
Numéricos: Son los datos con los cuales se pueden realizar operaciones
aritméticas o matemáticas tales como: suma , resta, multiplicación y división;
cuyo origen son los dígitos del sistema decimal.
Estos tipos de datos se clasifican en:
Numérico Entero: Son aquellos números positivos o negativos sin
parte decimal.
Ejemplo: Edad, Número de Hijos.
Numérico Reales: Son aquellos números positivos o negativos con
una parte decimal.
Ejemplo: Sueldo, Notas, Comisiones.

Alfanuméricos: Son datos formados por combinaciones de números, letras


y caracteres especiales. Con ellos no se puede realizar ninguna operación de
tipo aritmética o matemática. Estos tipos de Datos se clasifican en:
Alfanuméricos: Compuestos por un cadena de caracteres bien sea la
combinación de letras y números.
Ejemplo: Nombre, Apellidos, direcciones, , Código de Artículos, Placa de
Automóviles, Descripciones.

Elaborado por ING. Elvis Vanegas. 3


Carácter: Esta representado por un solo carácter que puede se
numérico o Alfanumérico.
Ejemplo: Respuesta, Opciones.

ORIGEN:
Los datos pueden ser de origen externo o interno.
Externo: Los datos que maneja un algoritmo son de origen externo, si
se obtienen al ejecutarse una acción de entrada (lectura). Los únicos datos
que se pueden leer son los numéricos o alfanuméricos.
Ejemplo: El Nombre de “X” Persona.
Interno: Los datos que maneja el algoritmo son de origen interno, si
se obtienen al ejecutarse una acción de asignación.
Con los datos numéricos, alfanuméricos y boléanos pueden realizarse
operaciones de asignación.
Ejemplo: El Calculo del Sueldo Neto de “X” Persona.
La forma general de una acción de asignación es:
Variable:= Expresión;
Donde la Expresión puede ser una Constante, una Variable, una
expresión aritmética o matemática más complicada, etc;. Cuando en un
algoritmo se encuentra un enunciado de asignación se evalúa la Expresión
que esta a la derecha del símbolo de asignación y asigna el resultado a la
variable que esta a la izquierda del símbolo de asignación.
Ejemplo:
A:=3; Transfiere el número a la variable; es decir “A” toma el Valor de 3.
B:= A; Copia el dato de A a B; es decir lo que contiene la Variable “A” se la
da a la Variable “B”
A:= B*3+2; Multiplica B por 3, le suma 2 al resultado y lo obtenido se lo
asigna a la Variable “A”

Elaborado por ING. Elvis Vanegas. 4


El Calculo del Sueldo Neto de “X” Persona.
Sueldo_Neto:= Total_de_Asignaciones – Total_de_Deducciones; es
decir resta el total de Asignaciones menos el total de deducciones y se lo
asigna a la Variable Sueldo_Neto.

CONSTANTES:
Como su nombre lo indica, son datos que no varían durante la
ejecución o vida de un algoritmo o programa. Toda constante se compone de
dos partes esenciales: Un Nombre y su Valor que no cambia.
Ejemplo: PI = 3.1416

Nombre de Valor
la Constante

VARIABLES:
Son áreas de memoria cuyo contenido cambia durante la ejecución de
un algoritmo o programa.
Son Lugares donde se almacenará la información. Esta Información es
la que manejará el algoritmo para producir resultados.
Las variables son objetos de un algoritmo cuyo valor puede cambiar
cuando este se sigue paso a paso. Toda variable se compone de dos partes
esenciales: Un Nombre y su Valor.
El nombre de una variable debe se único y esta conformado por un
conjunto de caracteres, letras y números, con los cuales se identifica un valor
en un momento determinado. Este debe ser corto y con solo leerlo se debe
determinar con facilidad lo que la variable significa o contiene.
El valor de una variable es el contenido de la misma, es decir, lo ella
representa o tiene en un momento determinado. Es importante decir que una
variable puede tener asociado un valor lógico como verdadero o falso,
entero, real, carácter o alfanumérico.

Elaborado por ING. Elvis Vanegas. 5


Ejemplo:

Apellidos: Rodríguez Álvarez

Nombre de Valor o Contenido


la Variable de la Variable

CONTADOR
Es un tipo de variable numérica que cuenta determinados procesos en
la resolución de un problema.
También se puede decir, que un contador es una variable numérica
entera cuyo contenido va modificándose de uno en uno, a través de una
instrucción de asignación. Ejemplo: Variable:= Variable + 1
Nota: El contador se debe inicializar al principio de la resolución del
problema con un valor cero (0) o uno (1).
Ejemplo de cómo funciona un contador:
Contar el número de alumnos donde “c” es el contador.
c := 0 c
c:= c + 1; 1
2
3
-
-
n

ACUMULADOR
Es un tipo de variable numérica cuya función es la de almacenar el
resultado de un proceso matemático.
También se puede decir, que un acumulador es una variable numérica
de tipo entera o real, cuyo contenido va modificándose a través de otra
variable numérica, por medio de una instrucción de asignación. Ejemplo:
Variable:= Variable + Variable_que_Modificara

Elaborado por ING. Elvis Vanegas. 6


Nota: El acumulador se debe inicializar con un valor de cero (0).
Ejemplo:
Hallar el total a pagar de 4 empleados.
SB A:= 0; A
5000 A:= A + SB; 0
9000 5000
7000 14000
8000 21000
29000
TIPOS DE OPERADORES

OPERADORES LÓGICOS:
1. NOT (Negación): Invierte el valor lógico de un operando tipo Bolean. La
negación de una expresión Cierta es Falsa, y la Negación de una
expresión Falsa es Cierta.

Exp. NOT(Exp)

F V
V F

2. AND (Y): La conjunción, AND permite unir dos expresiones. Quedara un


valor Verdadero solamente si ambas expresiones es cierta.
Exp1 Epx2 Epx1 AND Exp2
V V V
V F F
F V F
F F F

3. OR (O): La disyunción o unión lógica permite unir dos expresiones de tal

Exp1 Epx2 Epx1 OR Exp2


V V V
V F V
F V V
F F F

Elaborado por ING. Elvis Vanegas. 7


forma que se obtendrá un Valor verdadero si al menos una de las dos
expresiones es cierta.

Ejemplo de NOT

NOT(2>5) = F V No es (2>5)
NOT(5>2) = V F No es (5>2)
Nota: El primer operador que se evalúa es el AND y luego el OR (Por orden
de prioridades).
Ejemplo:
(15>2) OR (17<> 18) AND (9<1)
V V F

V
OPERADORES ARITMETICOS:
( ), [ ], { } , Expresiones entre Paréntesis, corchetes y llaves.
** o && Potencia
/ División (Numero Real)
* Multiplicación
\ o Div Toma la parte entera de A por B.
Mod Toma el Resto de A por B.
+ Suma
- Resta

Ejemplo:
1. (2+3*2) = 8
2. (3*5/2) = 7.5
3. (89/40) = 2.225
4. (9\2) = 4

Elaborado por ING. Elvis Vanegas. 8


5. (9 MOD 2) = 1
6. (3+7+(-12))  (3+7-12) = -2
7. (17-60) = -43

OPERADORES RELACIONALES:
> Mayor que.
>= Mayor o igual que.
< Menor que.
< = Menor o igual que.
<> Diferente.
= Igual.

Ejemplo: (19>=19) = V
(19>19) OR (19=19)
F V
V

Algoritmos Cuantitativos:

Ejercicio # 1: Hacer un algoritmo que lea dos números, los Sume e imprima
el Resultado.

ALGORITMO SUMAR;
DECLARACIÓN DE VARIABLES
N1,N2,RESUL: NUMERICO REAL;
INICIO
IMPRIMIR(“INTRODUZCA 1ER. NUMERO: “);
LEER(N1);
IMPRIMIR(“INTRODUZCA 2DO. NUMERO: “);
LEER(N2);
RESUL:=(N1+N2);
IMPRIMIR(“EL RESULTADO DE LA SUMA = “,RESUL);
FIN.

Elaborado por ING. Elvis Vanegas. 9


Ejercicio # 2: Hacer un algoritmo que lea tres (3) números y calcule su
promedio e Imprima el resultado.

ALGORITMO PROMEDIO;
DECLARACIÓN DE VARIABLES
N1,N2,N3,PROMED: NUMERICO REAL;
INICIO
IMPRIMIR(“INTRODUZCA 1ER. NUMERO: “);
LEER(N1);
IMPRIMIR(“INTRODUZCA 2DO. NUMERO: “);
LEER(N2);
IMPRIMIR(“INTRODUZCA 3ER. NUMERO: “);
LEER(N3);
PROMED:=(N1+N2+N3)/3;
IMPRIMIR(“EL PROMEDIO OBTENIDO ES = “,PROMED);
FIN.

Ejercicio # 3: Elaborar un algoritmo que calcule e imprima la edad de una


persona.

ALGORITMO CALCULO_EDAD;
DECLARACIÓN DE VARIABLES
AACT,ANAC,EDAD: NUMERICO ENTERO;
INICIO
IMPRIMIR(“INTRODUZCA AÑO ACTUAL:”);
LEER(AACT);
IMPRIMIR(“INTRODUZCA AÑO DE NACIMIENTO:”);
LEER(ANAC);
EDAD:=(AACT-ANAC);
IMPRIMIR(“LA EDAD DE LA PERSONA ES: “, EDAD, “ AÑOS”);
FIN.

Ejercicio # 4: Elaborar un algoritmo que calcule e imprima el Área de un


Triángulo. Donde el Área se determina mediante la siguiente formula:
Area = (Base * Altura)/2.

ALGORITMO TRIANGULO;
DECLARACIÓN DE VARIABLES
BASE,ALTU,AREA: NUMERICO REAL;
INICIO
IMPRIMIR(“INTRODUZCA LA BASE:”);
LEER(BASE);
IMPRIMIR(“INTRODUZCA LA ALTURA:”)

Elaborado por ING. Elvis Vanegas. 10


LEER(ALTU)
AREA:=(BASE*ALTU)/2;
IMPRIMIR(“EL AREA DEL TRIANGULO ES: “, AREA);
FIN.

Ejercicio # 5: Elaborar un algoritmo que calcule e imprima el total a cancelar


por IVA al comprar un producto. Conociendo que el Iva se determina en base
a la siguiente fórmula: (CostoP*12%).

ALGORITMO CALCULO_IVA;
DECLARACIÓN DE VARIABLES
COSTOP,IVA: NUMERICO REAL;
INICIO
IMPRIMIR(“INTRODUCA PRECIO DEL PRODUCTO: “);
LEER(COSTOP);
IVA:=(COSTOP*12/100);
IMPRIMIR(“IVA A PAGAR ES: “,IVA);
FIN.

Ejercicio # 6: Elaborar algoritmo que calcule e imprima el Sueldo de un


empleado, dado el números de horas trabajadas y el Precio de la Hora. El
Sueldo se determina en base a la siguiente formula: (NHT*Precio*4.33).

ALGORITMO CALCULO_SUELDO;
DECLARACIÓN DE VARIABLES
NHT; NUMERICO ENTERO;
PRECIO, SUELDO: NUMERICO REAL;
INICIO
IMPRIMIR(“NUMEROS DE HORAS TRABAJADAS: “);
LEER(NHT);
IMPRIMIR(“PRECIO POR HORA: “);
LEER(PRECIO);
SUELDO:=(NHT*PRECIO*4.33);
IMPRIMIR(“EL SUELDO NETO ES: “, SUELDO);
FIN.

Elaborado por ING. Elvis Vanegas. 11


Ejercicio # 7: Elaborar algoritmo que calcule e imprima el Sueldo Neto a
Cobrar de una persona conociendo, el sueldo bruto, el Monto Total de las
Asignaciones y el Monto Total de las Deducciones. Muestre como resultado
el Sueldo Neto a Cobrar y el nombre del empleado.

ALGORITMO CALCULO_SUELDONETO;
DECLARACIÓN DE VARIABLES
SB,ASIG,DEDUC,SUELDONC: NUMERICO REAL;
NOMEMP:ALFANUMEROCO CADENA;
INICIO
IMPRIMIR(“INTRODUZCA EL NOMBRE DEL EMPLEADO:”);
LEER(NOMEMP);
IMPRIMIR(“INTRODUZCA SUELDO BRUTO:”);
LEER(SB);
IMPRIMIR(“INTRODUZCA MONTO TOTAL DE ASIGNACIONES: “);
LEER(ASIG);
IMPRIMIR(“INTRODUZCA MONTO TOTAL DE DEDUCCIONES: “);
LEER(DEDUC);
SUELDONC:=((SB+ASIG)-DEDUC);
IMPRIMIR(“EL NOMBRE DEL EMPLEADO ES: “, NOMEMP );
IMPRIMIR(“EL SALARIO DEL EMPLEADO ES: “, SUELDONC );
FIN.

Ejercicio # 8: Elaborar algoritmo que lea un número cualquiera, calcule su


cuadrado y muestre el resultado.

ALGORITMO CALCULO_CUADRADO;
DECLARACIÓN DE VARIABLES
N,CUADRADO: NUMERICO REAL;
INICIO
IMPRIMIR(“INTRODUZCA UN NUMERO:”)
LEER(N)
CUADRADO:=(N*N)
IMPRIMIR(“EL CUADRADO ES: “, CUADRADO )
FIN.

Elaborado por ING. Elvis Vanegas. 12


ESTRUCTURAS DE DECISION O SELECTIVAS:

SENTENCIA SI - ENTONCES ---- SI - ENTONCE - SINO (O EN CASO


CONTRARIO)

SELECCIÓN SIMPLE (SI – ENTONCES):

Se usa cuando se quiere que la computadora efectúe una acción


condicionalmente, es decir, solo cuando cierta condición es verdadera. La
forma general de la selección simple es:

SINTAXIS:

SI (CONDICION) ENTONCES
(ENUNCIADO DE ACCION)
FINSI

Se efectúa una prueba:


Si la condición es verdadera la computadora ejecuta el enunciado de
acción y continua después con la siguiente instrucción que se encuentra en
el algoritmo.
Si la condición es falsa continua directamente con la siguiente
instrucción del algoritmo.
Por ejemplo: Se permiten los siguientes enunciados:

SI (Edad>=18) ENTONCES
IMPRIMIR(“USTED ES MAYOR”);
FINSI

SELECCIÓN DOBLE (SI – ENTONCES – SINO(O EN CASO


CONTRARIO)):

En la selección simple la computadora hace algo o no hace nada,


dependiendo del resultado de la prueba. En la selección doble efectúa una
prueba y después realiza algo en cualquier caso.
Si la condición es verdadera la computadora ejecuta la alternativa
Entonces.
Si la condición es falsa ejecuta la alternativa Sino o en caso contrario.
La forma general de la Selección doble es la siguiente:

Elaborado por ING. Elvis Vanegas. 13


SINTAXIS:

SI (CONDICION) ENTONCES
(BLOQUE1)
SINO
(BLOQUE2)
FINSI

Ejemplo:

SI (Edad>=18) ENTONCES
IMPRIMIR(“UD. ES MAYOR”)
SINO
IMPRIMIR(“UD. ES MENOR”)
FINSI

Condiciones iguales para evaluar:

(Edad>17), Not(Edad<=17), Not(Edad<18)

Nota: Si una alternativa ENTONCES o SINO (O EN CASO CONTRARIO)


contiene más de una instrucción deben ir encerradas entre los delimitadores
Comienzo y Fin.

En este caso como sigue:

SINTAXIS #1:

SI (CONDICION) ENTONCES
COMIENZO
ENUNCIADO DE ACCION
ENUNCIADO DE ACCION
FINSI

Elaborado por ING. Elvis Vanegas. 14


SINTAXIS #2:

SI (CONDICION) ENTONCES
COMIENZO
ENUNCIADO DE ACCION
ENUNCIADO DE ACCION
FINSI
SINO
COMIENZO
ENUNCIADO DE ACCION
ENUNCIADO DE ACCION
FINSINO

Ejemplo:

SI (CONDICION) ENTONCES
COMIENZO
IMPRIMIR(“CUAL ES TU NOMBRE: “);
LEER(NOMBRE);
FINSI

Ejercicio # 1: En una tienda por departamento se venden las camisas a Bs.


1500 cada una, si usted compra 3 o más camisas; en caso contrario se
venden a Bs. 2000 cada una. Elabore un algoritmo que una vez leído el
numero de camisas compradas despliegue el monto a pagar por compras.
ALGORITMO DEPARTAMENTO;
DECLARACIÓN DE VARIABLES
NC: NUMERICO ENTERO;
PRECIO: NUMERICO REAL;
INICIO
IMPRIMIR(“INTRODUZCA NUMERO DE CAMISAS A COMPAR: “)
LEER(NC);
SI(NC>=3)ENTONCES
COMIENZO
PRECIO:=(NC*1500);
IMPRIMIR(“PRECIO A PAGAR: “,PRECIO);
FINSI
SINO
COMIENZO
PRECIO:=(NC*2000);
IMPRIMIR(“PRECIO A PAGAR: “,PRECIO);
FINSINO
FIN.

Elaborado por ING. Elvis Vanegas. 15


Ejercicio #2: Elabore un algoritmo que permita calcular la nota final de un
alumno sabiendo que tiene tres (3) evaluaciones e imprima un mensaje que
diga: Alumno Aprobado en caso de serlo, en caso contrario Alumno
Reprobado, a mismo tiempo imprimir la nota final.

ALGORITMO NOTA_FINAL;
DECLARACIÓN DE VARIABLES
N1,N2,N3: NUMERICO ENTERO;
NOTAF: NUMERICO REAL;
INICIO
IMPRIMIR(“INTRODUZCA 1ERA NOTA: “:);
LEER(N1);
IMPRIMIR(“INTRODUZCA 2DA NOTA: “);
LEER(N2);
IMPRIMIR(“INTRODUZCA 3ERA NOTA: “);
LEER(N3);
NOTAF:=(N1+N2+N3)/3;
SI(NOTAF>=10)ENTONCES
COMIENZO
IMPRIMIR(“ALUMNO APROBADO”)
IMPRIMIR(“LA NOTA FINAL ES:”,NOTAF)
FINSI
SINO
COMIENZO
IMPRIMIR(“ALUMNO REPROBADO”)
IMPRIMIR(“LA NOTA FINAL ES:”,NOTAF)
FINSINO
FIN.

Ejercicio #3: Elabora un algoritmo que lea dos valores, calcular su suma y
en caso de que la misma sea mayor o igual a 20 la muestre.

ALGORITMO CALCULO_SUMA;
DECLARACIÓN DE VARIABLES
V1,V2,SUMA: NUMERICO REAL;
INICIO
IMPRIMIR(“INTRODUZCA PRIMER VALOR: “);
LEER(V1);
IMPRIMIR(“INTRODUZCA SEGUNDO VALOR: “);
LEER(V2);
SUMA:=(V1+V2);
SI(SUMA>=20)ENTONCES
IMPRIMIR(“LA SUMA ES:”, SUMA);
FIN SI;
FIN.

Elaborado por ING. Elvis Vanegas. 16


Ejercicio #4: Elaborar un algoritmo que lea tres valores. Si el primero es
mayor a 10 se multiplicaran el primer valor por el segundo valor y si esta
multiplicación es menor a 50 se le sumará el tercer valor y se mostrarán
ambos resultados.

ALGORITMO CALCULO;
DECLARACIÓN DE VARIABLES
V1,V2,V3,SUMA, MULTI: NUMERICO REAL;
INICIO
IMPRIMIR(“INTRODUZCA PRIMER VALOR: “);
LEER(V1);
IMPRIMIR(“INTRODUZCA SEGUNDO VALOR: “);
LEER(V2);
IMPRIMIR(“INTRODUZCA TERCER VALOR: “);
LEER(V3);
SI(V1>10)ENTONCES
COMIENZO
MULTI:= (V1*V2);
FINSI
SI (MULTI<50) ENTONCES
COMIENZO
SUMA:= (V3+MULTI);
FINSI
IMPRIMIR(“LA SUMA ES:”, MULTI);
IMPRIMIR(“LA SUMA ES:”, SUMA);
FIN.

Elaborado por ING. Elvis Vanegas. 17


CONDICIONES ANIDADAS:

Pueden existir dentro de una instrucción SI – ENTONCES otra


instrucción SI- ENTONCES – SINO (O EN CASO CONTRARIO) y se llaman
condiciones anidadas, porque se encuentran unas dentro de otras.

SINTAXIS:

SI (CONDICION) ENTONCES
COMIENZO
SI (CONDICION) ENTONCES
COMIENZO
ENUNCIADO DE ACCION
ENUNCIADO DE ACCION
FINSI
FINSI

SI (CONDICION) ENTONCES
COMIENZO
SI (CONDICION) ENTONCES
COMIENZO
ENUNCIADO DE ACCION
FINSI
SINO
COMIENZO
ENUNCIADO DE ACCION
FINSINO
FINSI
SINO
COMIENZO
ENUNCIADO DE ACCION;
FINSINO

Elaborado por ING. Elvis Vanegas. 18


Ejercicio #5: Elabore un algoritmo que permita leer tres (3) números,
determinar cual es el mayor e imprimir el mismo.

ALGORITMO NUMERO_MAYOR;
DECLARACIÓN DE VARIABLES
N1,N2,N3,MAYOR: NUMERICO REAL;
INICIO
IMPRIMIR(“INTRODUZCA 1ER.NUMERO: “);
LEER(N1);
IMPRIMIR(“INTRODUZCA 2DO.NUMERO: “);
LEER(N2);
IMPRIMIR(“INTRODUZCA 3ER.NUMERO: “);
LEER(N3);
SI (N1>N2) ENTONCES
MAYOR:=N1;
SINO
MAYOR:=N2;
FIN SI;
SI (MAYOR>N3) ENTONCES
MAYOR:=MAYOR;
SINO
MAYOR:=N3;
FIN SI;
IMPRIMIR(“NUMERO MAYOR ES:”,MAYOR);
FIN.

Elaborado por ING. Elvis Vanegas. 19


Ejercicio #6: Un empleado desea conocer la comisión que ha ganado de
acuerdo a la venta que realizó según las siguientes condiciones:

a) Si las ventas fueron menores de 10.000 Bs. Se le otorga al vendedor 5%


de Comisión.
b) Si la venta esta entre 10.000 y 30.000 Bs. Se le otorga al vendedor 10%
de comisión.
c) Si la venta es mayor a 30.000 se le otorga 15% de comisión.

El algoritmo debe leer el monto de las ventas y desplegar (imprimir) la


comisión.

ALGORITMO CALCULO_COMISION;
DECLARACIÓN DE VARIABLES
MVT,COMI: NUMERICO REAL;
INICIO
IMPRIMIR(“INTRODUZCA MONTO DE LA VENTA: “);
LEER(MVT);
SI (MVT<10000) ENTONCES
COMIENZO
COMI:=(MVT*0.05);
IMPRIMIR(“LA COMISION ES: “,COMI);
FINSI
SINO
COMIENZO
SI (MVT>=10000) AND (MVT<=30000) ENTONCES
COMIENZO
COMI:=(MVT*0.10);
IMPRIMIR(“LA COMISION ES: “,COMI);
FINSI
SINO
COMIENZO
COMI:=(MVT*0.15);
IMPRIMIR(“LA COMISION ES: “,COMI);
FINSINO
FINSINO
FIN.

Elaborado por ING. Elvis Vanegas. 20


Ejercicio #7: Elabore un Algoritmo que permita leer el número del Día de la
Semana y de cómo resultado el día de la semana en letras (es decir, imprimir
un mensaje que día esta leyendo en Letras). Utilizando el condicional SI –
ENTONCES

ALGORITMO DIA_SEMANA;
DECLARACIÓN DE VARIABLES
DIA:NUMERICO ENTERO;
INICIO
IMPRIMIR(“INTRODUZCA NRO. DEL DIA: “);
LEER(DIA);
SI (DIA=0) OR (DIA>7) ENTONCES
COMIENZO
IMPRIMIR(“DIA DE LA SEMANA NO EXISTE”);
FINSI
SINO
COMIENZO
SI (DIA=1) ENTONCES
COMIENZO
IMPRIMIR(“DIA DE LA SEMANA ES DOMINGO”);
FINSI
SI (DIA=2) ENTONCES
COMIENZO
IMPRIMIR(“DIA DE LA SEMANA ES LUNES”);
FINSI
SI (DIA=3) ENTONCES
COMIENZO
IMPRIMIR(“DIA DE LA SEMANA ES MARTES”);
FINSI
SI (DIA=4) ENTONCES
COMIENZO
IMPRIMIR(“DIA DE LA SEMANA ES MIERCOLES”);
FINSI
SI (DIA=5) ENTONCES
COMIENZO
IMPRIMIR(“DIA DE LA SEMANA ES JUEVES”);
FINSI
SI (DIA=6) ENTONCES
COMIENZO
IMPRIMIR(“DIA DE LA SEMANA ES VIERNES”);
FINSI
SI (DIA=7) ENTONCES
COMIENZO
IMPRIMIR(“DIA DE LA SEMANA ES SABADO”);
FINSI
FINSINO
FIN.

Elaborado por ING. Elvis Vanegas. 21


Ejercicio #8: Elabore un Algoritmo que permita calcular el aumento a un
empleado en base su antigüedad, el aumento se hará de acuerdo a las
siguientes tablas:
a) Entre 5 a 9 años 8% sobre el sueldo del empleado.
b) Con 10 a 14 años 12% sobre el sueldo del empleado.
c) Entre 15 y 25 años 15% sobre el sueldo del empleado.
d) Con más de 25 años 20% sobre el sueldo del empleado.

El programa debe imprimir el sueldo y el aumento del empleado.

ALGORITMO CALCULO_AUMENTO;
DECLARACIÓN DE VARIABLES
AA:NUMERICO ENTERO;
SUELDO,AUMENT: NUMERICO REAL;
INICIO
IMPRIMIR(“INTRODUZCA AÑOS DE ANTIGUEDAD: “);
LEER(AA);
IMPRIMIR(“INTRODUZCA EL SUELDO: “);
LEER(SUELDO)
SI (AA>=5) AND (AA<=9) ENTONCES
AUMENT:=(SUELDO*0.08)
FIN SI
SINO
COMIENZO
SI (AA>=10) AND (AA<=14) ENTONCES
AUMENT:=(SUELDO*0.12)
FIN SI
SINO
COMIENZO
SI (AA>=15) AND (AA<=25) ENTONCES
AUMENT:=(SUELDO*0.15)
FIN SI
SINO
AUMENT:=(SUELDO*0.20)
FIN SINO
FIN SINO
IMPRIMIR(“EL SUELDO DEL EMPLEADO ES: “, SUELDO)
IMPRIMIR(“EL AUMENTO DEL EMPLEADO ES: “, AUMENT)
FIN.

Elaborado por ING. Elvis Vanegas. 22


Ejercicio #9: En un Kiosco de Revista existen tres (3) tipos de Revistas:
Científica, Humor, y de Farándula. Elabore un Algoritmo aplicando la
sentencia SI -ENTONCES que permita calcular e imprimir el Costo de la
Revista sobre las siguientes condiciones:
a) Revista cuyo número de páginas sea menor de 51, tendrá un valor de 3
Bs. por página.
b) De 51 a 180 Páginas tendrá un valor de 10 Bs. por página.
c) Revista superior de 180 páginas 15 Bs. por página.

ALGORITMO CALCULO_AUMENTO;
DECLARACIÓN DE VARIABLES
TP:ALFANUMERICO CARACTER;
NP:NUMERICO ENTERO;
COSTO: NUMERICO REAL;
INICIO
IMPRIMIR(“INTRODUZCA TIPO DE REVISTA: “)
LEER(TP)
SI (TP= “C”) OR (TP=”H”) OR (TP=”F”)ENTONCES
COMIENZO
IMPRIMIR(“INTRODUZCA NRO. DE PAGINAS: “);
LEER(NP);
SI (NP<51) ENTONCES
COMIENZO
COSTO:=(NP*3);
IMPRIMIR(“EL COSTO DE LA REVISTA ES: “, COSTO);
FINSI
SINO
COMIENZO
SI (NP>=51) AND (NP<=180) ENTONCES
COMIENZO
COSTO:=(NP*10);
IMPRIMIR(“EL COSTO DE LA REVISTA ES: “, COSTO);
FINSI
SINO
COMIENZO
COSTO:=(NP*15);
IMPRIMIR(“EL COSTO DE LA REVISTA ES: “, COSTO);
FINSINO
FINSINO
FINSI
SINO
COMIENZO
IMPRIMIR(“TIPO DE REVISTA NO EXISTE”);
FINSINO
FIN.

Elaborado por ING. Elvis Vanegas. 23


SENTENCIA CASO:
La sentencia CASO es usada para situaciones en las cuales el
número de alternativas disponibles es mayor que dos. La Sintaxis es la
siguiente:

CASO <EXPRESION> DE
<LISTA DE ETIQUETAS>: SENTENCIA1;
*
*
<LISTA DE ETIQUETAS>: SENTENCIAN
SINO
SENTENCIA+1;
FIN
La expresión que sigue a CASO es conocida como el selector, y
deberá producir un valor de un tipo ordinal. Las constantes que prefijan la
sentencia en cada “LISTAS DE ETIQUETAS” son conocidas como etiquetas
de casos y deben ser del mismo tipo (no estructurado) que el selector.
La acción de una instrucción CASO es evaluar la expresión selectora
y luego ejecutar la instrucción etiquetada por el valor resultante. Después de
esto, la ejecución prosigue con la instrucción que sigue a la instrucción
CASO.

Ejemplo 1: Tenemos una variable P que tiene los valores 1,2,3,4 y queremos
escribir una mensaje para cada valor distinto de P:

CASO P DE
1: IMPRIMIR (“COLOR ROJO”);
2: IMPRIMIR (“COLOR VERDE”);
3: IMPRIMIR (“NO HAY COLORES”);
4: IMPRIMIR (“SE AGOTO EL COLOR”);
SINO
IMPRIMIR (“NO EXISTE ESA OPCION”);
FIN;

Nota: Si la instrucción a realizar en cada etiqueta es compuesta, es decir,


que tiene más de una instrucción, debe ir encerrada entre la instrucción
COMIENZO – FIN.

Elaborado por ING. Elvis Vanegas. 24


Por Ejemplo2:

CASO ALA DE
1: IMPRIMIR(“COLOR ROJO”);
4: COMIENZO
IMPRIMIR (“SE AGOTO EL COLOR”);
IMPRIMIR (“YA MANDE A COMPRAR”);
FIN;
FIN;

Ejemplo3:

CASO para las expresiones Booleanas:

CASO X>5 DE
TRUE: IMPRIMIR (“EL NUMERO ‘, X, ‘ES MAYOR QUE 5”);
FALSE: IMPRIMIR (“EL NUMERO ‘, X, ‘ES MENOR QUE 5”);
FIN;

Ejemplo4: Tenemos el siguiente fragmento de un programa.

DECLARACIÓN DE VARIABLES
carácter: Alfanumérico Carácter;
numeroA, numeroB: Numerico Entero;
COMIENZO
LEER(carácter);
numeroA:=0; numeroB:= 0;
CASO carácter DE
‘A’: numeroA:= numeroA + 1;
‘B’: numeroA:= numeroA + 1;
‘C’: numeroB:= numeroB + 1;
FIN;
*
*
FIN.

Se podría hacer de la siguiente forma:

CASO CARÁCTER DE
‘A’,’B’:NUMEROA +1;
‘C’: NUMEROB +1;
FIN;

Elaborado por ING. Elvis Vanegas. 25


Condiciones de la instrucción CASE:

1 Expresión puede ser un valor Numérico Entero, Carácter, Boolean, tipo


enumerado o tipo subrango.
2 Expresión puede ser el nombre de una variable, una función, una
constante o una expresión;
3 Si hay varias listas de casos deben ser separadas por coma (,).
4 Si la instrucción a realizar es compuesta la encerramos entre
COMIENZO – FIN.
5 Es ilegal que la misma constante aparezca en dos listas de casos. En el
momento de la compilación se emite un mensaje de error.
6 En las etiquetas no podemos escribir variables, funciones, ni
expresiones.

ESTRUCTURAS REPETITIVAS:
Generalmente, para la resolución de un problema, se necesita que
una acción o secuencias de acciones se realicen varias veces. La repetición
de un grupo de pasos de un algoritmo puede tomar diferentes formas:
1. La repetición se efectúa un numero conocidos de veces
2. La repetición se efectúa mientras se mantenga cierta condición
3. La repetición se efectúa hasta que se alcance cierta condición.

Una estructura repetitiva o ciclo consta de componentes. Primero se


tienen los pasos reales que se desea se ejecuten en forma repetitiva, a esto
se le da el nombre de cuerpo del ciclo.
El segundo componente es el control del ciclo. Siempre que se escriba
una estructura repetitiva en un algoritmo se deben incorporar los pasos que
le pondrán fin, es decir, que permitan salir de ella.

Elaborado por ING. Elvis Vanegas. 26


1 CICLO HAGA MIENTRAS:
La ejecución de una o más acciones se repetirán MIENTRAS el
resultado de la evaluación de una expresión lógica o condición sea
verdadero. (Repetición MIENTRAS la condición sea VERDADERA).
Es decir, esta estructura se ejecuta mientras se cumpla la condición y
resultado de la condición evaluada sea verdadera.

Su Sintaxis es la siguiente:

HAGA MIENTRAS (Condición)


COMIENZO
(Instrucciones);
FIN;

Otra forma general del ciclo MIENTRAS:

HAGA MIENTRAS expresión lógica (o condición)


COMIENZO
Acción 1
Acción 2
-
-
Acción n
FIN HAGA MIENTRAS.

En la instrucción HAGA MIENTRAS, primero se evalúa la condición y si


se cumple entonces se realizarán las instrucciones que se encuentren entre
el COMIENZO – FIN. La condición se evalúa cada vez que termina el HAGA
MIENTRAS y el lazo se repetirá mientras se cumpla la condición, en caso
contrario se terminara la repetición y continua con las siguientes
instrucciones después del HAGA MIENTRAS o fuera de la estructura.

La frase FIN HAGA MIENTRAS determina el fin de la secuencia de


acciones que se repetirán MIENTRAS el resultado de la expresión lógica (o
condición) sea verdadero.
Si inicialmente el resultado de la expresión lógica (o condición) es
falso la secuencia de acciones comprendidas hasta el FIN HAGA MIENTRAS
no se ejecutaran.

Elaborado por ING. Elvis Vanegas. 27


Nota: Si el HAGA MIENTRAS solo tiene una instrucción de repetición no
es necesario colocarla entre COMIENZO – FIN.

Quedando de la siguiente forma:


HAGA MIENTRAS (Condición)
(Instrucción);

Ejemplo:
Supongamos que el operador de la ** (potencia) no existe y se quiere
evaluar cualquier número a la n. La solución es multiplicar ese número por si
mismo n veces.
Para resolver el problema se necesita una variable que contendrá la
solución. El nombre de la variable será potencia y en ella se van a realizar
multiplicaciones sucesivas del numero (num) que se va a elevar a la n; como
se muestra a continuación potencia:= potencia * num. Esta variable debe
ser inicializada en 1.
Además se necesita otra variable contador, en donde se van a
realizar sumas sucesivas del valor 1. Esta permitirá saber hasta cuando se
deben realizar las multiplicaciones sucesivas sobre la variable potencia. La
variable contador debe ser inicializada en 0.

contador:= 0;
potencia:= 1;
HAGA MIENTRAS contador < n
COMIENZO
Potencia:= potencia * num;
Contador:= contador + 1;
FIN HAGA MIENTRAS

Ejemplo: Escriba las instrucciones necesarias para que la variable contador


se incremente de uno en uno hasta 20, tomando como valor inicial 1.

Usando la Instrucción HAGA MIENTRAS:


Contador:=1;
HAGA MIENTRAS (Contador<=20)
Contador:=Contador + 1;

Ejemplo: Escribir las instrucciones que verifiquen una entrada de dato


(validar). El usuario solo debe introducir S o N.

IMPRIMIR (“DESEA SEGUIR?”);

Elaborado por ING. Elvis Vanegas. 28


LEER (respuesta);
HAGA MIENTRAS (respuesta<> ‘S’) AND (respuesta<>’N’)
COMIENZO
IMPRIMIR (“POR FAVOR ESCRIBA S o N”);
LEER (respuesta);
respuesta:=UPCASE(respuesta);
FIN.

Otro Concepto: (Estructura Repetitiva Haga Mientras)


La estructura repetitiva se ejecuta cero o más veces. La condición se
evalúa al principio y si la evaluación da como resultado VERDADERO se
ejecuta las instrucciones o acciones encerradas entre la palabra COMIENZO
y FIN DEL HAGA MIENTRAS, en caso contrario o si la condición es FALSA
se terminará la repetición.

Ejemplo:
A:=0;
I:=1;
HAGA MIENTRAS (I< = 4)
COMIENZO
A:=A+1,
A:=A+I;
I:=I+1;
FIN;

Observe que el valor inicial de i es 1, al entrar al ciclo i <= 4 chequea la


condición, como resultado es VERDADERO se entra a ejecutar la instrucción
dentro del HAGA MIENTRAS, tomando la variable “a” los siguientes valores:
a:= a + 1; = 0 +1 = 1
a:= a + i; = 1 +1 = 2

Observe que el valor de “i” se incrementa en una unidad, tomando el


valor de 2 ( i:= i +1 = 1 + 1 = 2). Luego se chequea nuevamente la condición
¿ i <= 4?, es decir; ¿2 <= 4? Como el resultado es VERDADERO se entra de
nuevo al ciclo. Esta estructura repetitiva va a realizarse mientras i<= 4.
Cuando “i” tome el valor de 5 la estructura repetitiva deja de ejecutarse.

Elaborado por ING. Elvis Vanegas. 29


Ejercicio # 10: Realizar un algoritmo que permita calcular la suma de los N
primero numero primos naturales utilizado el ciclo Haga Mientras.

ALGORITMO SUMANUMEROSPRIMOS;
DECLARACIÓN DE VARIABLES
NUM, I, SUMA: NUMERICO ENTERO;
INICIO
IMPRIMIR(“INTRODUZCA CUANTOS NUMERO DESEA SUMAR: “);
LEER(NUM);
I=1;
SUMA= 0;
HAGA MIENTRAS (I<=NUM)
COMIENZO
SUMA=(SUMA + I);
I=I+1;
FIN HAGA MIENTRA
IMPRIMIR(“LA SUMA ES:”, SUMA);
FIN.

Ejercicio # 11: Realizar un algoritmo que permita al usuario solicitar 10


números enteros e imprima su promedio.

ALGORITMO PROMEDIONUMEROS;
DECLARACIÓN DE VARIABLES
NUM, I, SUMA: NUMERICO ENTERO;
PROMED: NUMERICO REAL;
INICIO
I=1;
SUMA= 0;
HAGA MIENTRAS (I<=10)
COMIENZO
IMPRIMIR(“INTRODUZCA UN NUMERO ENTERO: “);
LEER(NUM);
SUMA=(SUMA + NUM);
I=I+1;
FIN HAGA MIENTRA
PROMED=SUMA/10;
IMPRIMIR(“EL PROMEDIO ES:”, PROMED);
FIN.

Elaborado por ING. Elvis Vanegas. 30


Ejercicio # 12: Realizar un algoritmo que calcule el salario de “N”
trabajadores dado el numero el número de horas trabajadas y el costo por
hora. El algoritmo de mostrar por pantalla el salario de cada trabajador y la
suma total de todos los salarios.

ALGORITMO NOMINA;
DECLARACIÓN DE VARIABLES
NHT, NUM, I: NUMERICO ENTERO;
COSTOH, SUELDO, SUELDOT: NUMERICO REAL;
INICIO
IMPRIMIR(“INTRODUZCA EL NUMERO DE TRABAJADORES A LOS QUE
DESEA CALCULAR SUELDO: “);
LEER(NUM);
I=1;
SUELDOT= 0;
HAGA MIENTRAS (I<=NUM)
COMIENZO
IMPRIMIR(“INTRODUZCA EL NUMERO DE HORAS TRABAJADAS: “);
LEER(NHT);
IMPRIMIR(“INTRODUZCA EL COSTO DE HORA: “);
LEER(COSTOH);
SUELDO= (NHT * COSTOH);
IMPRIMIR(“EL SUELDO ES:”, SUELDO);
SUELDOT= (SUELDOT + SUELDO);
I=I+1;
FIN HAGA MIENTRA
IMPRIMIR(“EL MONTO TOTAL DE LA NOMINA ES:”, SUELDOT);
FIN.

Elaborado por ING. Elvis Vanegas. 31


Ejercicio # 13: Realizar un algoritmo que dado “N” notas de un estudiante
permita calcular: a) Cuantas notas tiene reprobadas; b) Cuantas notas tiene
aprobadas; c) El promedio de total notas y d) El promedio de las notas
aprobadas y reprobadas.

ALGORITMO NOTAS;
DECLARACIÓN DE VARIABLES
NUM, I, CNA,CNR, ANA, ANR: NUMERICO ENTERO;
NOTA, PROMEDA, PROMEDR, PROMEDT: NUMERICO REAL;
INICIO
IMPRIMIR(“INTRODUZCA EL NUMERO: “);
LEER(NUM);
I=1;
CNA=0; CNR=0;
ANA=0; ANR=0;
HAGA MIENTRAS (I<=NUM)
COMIENZO
IMPRIMIR(“INTRODUZCA LA NOTA: “);
LEER(NOTA);
SI (NOTA>=10)ENTONCES
COMIENZO
CNA=(CNA + 1);
ANA=(ANA+NOTA);
FINSI
ELSE
COMIENZO
CNR=(CNR + 1);
ANR=(ANR+NOTA);
FINSINO
I=I+1;
FIN HAGA MIENTRA
PROMEDA= (ANA/CNA);
PROMEDR= (ANR/CNR);
PROMEDT = (ANA + ANR)/NUM;
IMPRIMIR(“NOTAS APROBADAS:“, ANA);
IMPRIMIR(“NOTAS REPROBADAS:”, ANR);
IMPRIMIR(“PROMEDIO TOTAL DE NOTAS APROBADAS:”, PROMEDA);
IMPRIMIR(“PROMEDIO TOTAL DE NOTAS REPROBADAS:”, PROMEDR);
IMPRIMIR(“PROMEDIO TOTAL DE NOTAS APRBADAS Y
REPROBADAS:”, PROMEDT);
FIN.

Elaborado por ING. Elvis Vanegas. 32


2 CICLO REPITA:
La ejecución de una o más acciones se repetirán HASTA que el
resultado de la evaluación de una expresión lógica o condición sea
verdadera. (Repetición HASTA que la condición sea VERDADERA)
Esta estructura se ejecuta por lo menos una vez, debido a que la
condición se evalúa al final, si el resultado de la condición evaluada es
falso se regresa al principio de la repetición y se vuelve a ejecutar. Si la
condición da como resultado verdadero, se ejecuta el siguiente paso
fuera de la estructura.

Su Sintaxis es la siguiente:

REPITA
(Instrucciones)

HASTA QUE (condición)

Otra forma general del ciclo REPITA:

REPITA
Acción 1
Acción 2
-
-
Acción n
HASTA QUE CONDICION.

La estructura se realiza por lo menos una vez. Porque la CONDICION


se chequea al final, si ésta resulta FALSA se regresa al principio de la
REPETICIÓN y se vuelve a ejecutar. Si la CONDICION es VERDADERA, se
ejecuta el siguiente paso fuera de la estructura. ( Esto quiere decir, que
finaliza el ciclo REPITA cuando la CONDICION es VERDADERA).

Ejemplo:

a:= 0;
REPITA
a:= a + 1;
w:= a + 10;
z:= w + 9;
HASTA QUE a > 5

Elaborado por ING. Elvis Vanegas. 33


La estructura se repite HASTA que la variable “a” sea mayor que 5.
Podemos observar que “a” se incrementa en una unidad cada vez que el
ciclo se repite.

Ejemplo: Escribir las instrucciones que verifiquen una entrada de dato


(validar). El usuario solo debe introducir S o N.

IMPRIMIR (“DESEA SEGUIR?:”);


REPITA
IMPRIMIR (“POR FAVOR ESCRIBA S o N”);
LEER (respuesta);
respuesta:=UPCASE(respuesta);
HASTA QUE ((respuesta = ‘S’) OR (respuesta = ’N’));

Ejemplo: Escriba las instrucciones necesarias para que la variable contador


se incremente de uno en uno hasta 20, tomando como valor inicial 1.

Usando la Instrucción REPITA:


Contador:=1;
REPITA
Contador:=Contador + 1;
HASTA QUE (Contador>20);

Diferencias entre las instrucciones HAGA MIENTRAS y REPITA –


HASTA QUE:

En la instrucción REPITA, el cuerpo del bucle es ejecutado al menos


una vez, antes de la primera evaluación de la condición de terminación;
mientras que la instrucción HAGA MIENTRAS la condición de terminación es
evaluada primero y por tanto el cuerpo del bucle puede no ser ejecutado.

En la instrucción HAGA MIENTRAS, el grupo de instrucciones se


encuentra encerrados entre COMIENZO – FIN (si la sentencia es
compuesta), mientras que en el REPITA no es necesario.

Elaborado por ING. Elvis Vanegas. 34


Ejercicio # 14: Realizar un algoritmo que permita calcular la suma de los N
primero numero primos naturales utilizado el ciclo Repita.

ALGORITMO SUMANUMEROSPRIMOS;
DECLARACIÓN DE VARIABLES
NUM, I, SUMA: NUMERICO ENTERO;
INICIO
IMPRIMIR(“INTRODUZCA CUANTOS NUMERO DESEA SUMAR: “);
LEER(NUM);
I=1;
SUMA= 0;
REPITA
SUMA=(SUMA + I);
I=I+1;
HASTA QUE (I>NUM)
IMPRIMIR(“LA SUMA ES:”, SUMA);
FIN.

Ejercicio # 15: Realizar un algoritmo que permita al usuario solicitar 10


números enteros e imprima su promedio.

ALGORITMO PROMEDIONUMEROS;
DECLARACIÓN DE VARIABLES
NUM, I, SUMA: NUMERICO ENTERO;
PROMED: NUMERICO REAL;
INICIO
I=1;
SUMA= 0;
REPITA
IMPRIMIR(“INTRODUZCA UN NUMERO ENTERO: “);
LEER(NUM);
SUMA=(SUMA + NUM);
I=I+1;
HASTA QUE (I>10)
PROMED=SUMA/10;
IMPRIMIR(“EL PROMEDIO ES:”, PROMED);
FIN.

Elaborado por ING. Elvis Vanegas. 35


Ejercicio # 16: Realizar un algoritmo que calcule el salario de “N”
trabajadores dado el numero el número de horas trabajadas y el costo por
hora. El algoritmo de mostrar por pantalla el salario de cada trabajador y la
suma total de todos los salarios.

ALGORITMO NOMINA;
DECLARACIÓN DE VARIABLES
NHT, NUM, I: NUMERICO ENTERO;
COSTOH, SUELDO, SUELDOT: NUMERICO REAL;
INICIO
IMPRIMIR(“INTRODUZCA EL NUMERO DE TRABAJADORES A LOS QUE
DESEA CALCULAR SUELDO: “);
LEER(NUM);
I=1;
SUELDOT= 0;
REPITA
IMPRIMIR(“INTRODUZCA EL NUMERO DE HORAS TRABAJADAS: “);
LEER(NHT);
IMPRIMIR(“INTRODUZCA EL COSTO DE HORA: “);
LEER(COSTOH);
SUELDO= (NHT * COSTOH);
IMPRIMIR(“EL SUELDO ES:”, SUELDO);
SUELDOT= (SUELDOT + SUELDO);
I=I+1;
HASTA QUE (I>NUM)
IMPRIMIR(“EL MONTO TOTAL DE LA NOMINA ES:”, SUELDOT);
FIN.

Elaborado por ING. Elvis Vanegas. 36


Ejercicio # 17: Realizar un algoritmo que dado “N” notas de un estudiante
permita calcular: a) Cuantas notas tiene reprobadas; b) Cuantas notas tiene
aprobadas; c) El promedio de total notas y d) El promedio de las notas
aprobadas y reprobadas.

ALGORITMO NOTAS;
DECLARACIÓN DE VARIABLES
NUM, I, CNA,CNR, ANA, ANR: NUMERICO ENTERO;
NOTA, PROMEDA, PROMEDR, PROMEDT: NUMERICO REAL;
INICIO
IMPRIMIR(“INTRODUZCA EL NUMERO: “);
LEER(NUM);
I=1;
CNA=0; CNR=0;
ANA=0; ANR=0;
REPITA
IMPRIMIR(“INTRODUZCA LA NOTA: “);
LEER(NOTA);
SI (NOTA>=10)ENTONCES
COMIENZO
CNA=(CNA + 1);
ANA=(ANA+NOTA);
FINSI
ELSE
COMIENZO
CNR=(CNR + 1);
ANR=(ANR+NOTA);
FINSINO
I=I+1;
HASTA QUE(I>NUM)
PROMEDA= (ANA/CNA);
PROMEDR= (ANR/CNR);
PROMEDT = (ANA + ANR)/NUM;
IMPRIMIR(“NOTAS APROBADAS:“, ANA);
IMPRIMIR(“NOTAS REPROBADAS:”, ANR);
IMPRIMIR(“PROMEDIO TOTAL DE NOTAS APROBADAS:”, PROMEDA);
IMPRIMIR(“PROMEDIO TOTAL DE NOTAS REPROBADAS:”, PROMEDR);
IMPRIMIR(“PROMEDIO TOTAL DE NOTAS APRBADAS Y
REPROBADAS:”, PROMEDT);
FIN.

Elaborado por ING. Elvis Vanegas. 37


CICLO HAGA PARA O HAGA DESDE:
El lazo HAGA PARA permitirá ejecutar unas series de instrucciones
repetitivamente. Como condición necesaria debe conocer el número de
veces que desea repetir las instrucciones. (La ejecución de una o más
acciones se repetirán un número determinado de veces).

Su Sintaxis es la siguiente:

HAGA DESDE VARB1:= VARB2 HASTA VARB3


COMIENZO
(INSTRUCCIONES);
FIN;

Donde:
VARB1 es una variable de control
VARB 2 y VARB3 pueden ser un valor o una variable, además definen
el valor Inicial y final de VARB1.

Es condición imprescindible que VARB3 sea mayor o igual que


VARB2. Una ventaja del HAGA DESDE es que puede usar la variable
VARB1 dentro del bloque (COMIENZO –FIN). Además VARB1 cambiará de
valor automáticamente cada vez que entre al bloque.

Otra forma general del ciclo HAGA DESDE:

HAGA DESDE variable = valor_inicial HASTA valor_final


COMIENZO
Acción 1
Acción 2
-
-
Acción n
FIN DEL HAGA DESDE.

La estructura se realiza desde el valor inicial HASTA el valor final.

Elaborado por ING. Elvis Vanegas. 38


Ejemplo:

a1:= 10;
HAGA DESDE i = 1 HASTA 10
COMIENZO
a1:= a1 + 1;
b1:= a1 + 1;
FIN DEL HAGA DESDE

La estructura se realiza 10 veces la variable “i” controla el ciclo.


Podemos observar que en esta estructura el valor “i” se incrementa
automáticamente en una unidad hasta llegar a 10.

Ejemplo: Realizar un Programa que calcule el cuadrado de los 10 primeros


números enteros.

Algoritmo ELEVAR;
Declaración de Variables
Contador, cuadrado: Numérico Entero;
Inicio
Haga Desde contador:=1 hasta 10
Comienzo
Cuadrado:=SQR(contador);
IMPRIMIR(contador);
IMPRIMIR(cuadrado);
FIN Haga Desde;

FIN.

Elaborado por ING. Elvis Vanegas. 39


Ejemplo: En una tienda por departamentos, cada vez que se vende un
artículo se llena una ficha con el precio del artículo, unidades vendidas y el
número de identificación, según los siguientes códigos:
1.- Juguete
2.- Artefactos Eléctricos.
3.- Artículos de Lencería.
Se pide elaborar un algoritmo que:
a.) Calcule las ventas totales.
b.) Determine el promedio de los precios de los artefactos eléctricos.

Solución:
Descripción de las Variables que se van a utilizar:
pv = precio de artículo.
uv = unidades vendidas.
n = número de identificación del artículo.
c = cantidad de artefactos eléctricos vendidos.
p = suma de los precios de los artefactos eléctricos.
vtotal = ventas totales.
prom = promedio de los precios de los artefactos eléctricos.
resp = variable que controla el ciclo HAGA MIENTRAS
v = ventas.

ALGORITMO Artículo;
DECLARAR VARIABLES
uv, c, p: Numérico Entero;
pv, v, vtotal, prom: Numérico Real;
resp: Alfanumérico;
INICIO
c:=0; p:=0; vtotal:=0;
resp:= ‘S’;
HAGA MIENTRAS (resp = ‘S’) or (resp = ‘s’)
COMIENZO
IMPRIMIR (‘Introduzca Precio del Artículo: ‘);
LEER (pv);
IMPRIMIR (‘Introduzca Unidades Vendidas: ‘);
LEER (uv);
IMPRIMIR (‘Introduzca el Numero que Identifica el Artículo: ‘);
LEER (n);

Elaborado por ING. Elvis Vanegas. 40


v:= (pv * uv);
vtotal:= (vtotal + v);
SI ( n= 2) ENTONCES
COMIENZO
c:= c +1;
p:= p + pv;
FIN DE SI
IMPRIMIR (‘Hay más Ficha: (S/N): ‘ );
LEER (resp);
FIN HAGA MIENTRAS
Prom:=( p/c);
IMPRIMIR (‘Ventas Totales: ‘, vtotal:8:2);
IMPRIMIR(‘Promedio de los Precios de los Artefactos Eléctricos: ‘, prom:8:2);
FIN.

Nota:
1. Este ejemplo también pudo resolverse usando la forma de la
Estructura repetitiva REPITA ....... HASTA CONDICION.
2. La forma HAGA DESDE....., de la estructura de repetición no se
puede utilizar en este ejemplo ya que no se conoce el número de
veces que se debe ejecutar el bloque.

Elaborado por ING. Elvis Vanegas. 41


Ejercicio # 18: Realizar un algoritmo que permita calcular la suma de los N
primero numero primos naturales utilizado el ciclo Haga Mientras.

ALGORITMO SUMANUMEROSPRIMOS;
DECLARACIÓN DE VARIABLES
NUM, I, SUMA: NUMERICO ENTERO;
INICIO
IMPRIMIR(“INTRODUZCA CUANTOS NUMERO DESEA SUMAR: “);
LEER(NUM);
I=1;
SUMA= 0;
HAGA DESDE (I =1 HASTA NUM)
COMIENZO
SUMA=(SUMA + I);
FIN HAGA DESDE
IMPRIMIR(“LA SUMA ES:”, SUMA);
FIN.

Ejercicio # 19: Realizar un algoritmo que permita al usuario solicitar 10


números enteros e imprima su promedio.

ALGORITMO PROMEDIONUMEROS;
DECLARACIÓN DE VARIABLES
NUM, I, SUMA: NUMERICO ENTERO;
PROMED: NUMERICO REAL;
INICIO
I=1;
SUMA= 0;
HAGA (DESDE I =1 HASTA 10)
COMIENZO
IMPRIMIR(“INTRODUZCA UN NUMERO ENTERO: “);
LEER(NUM);
SUMA=(SUMA + NUM);
I=I+1;
FIN HAGA DESDE
PROMED=SUMA/10;
IMPRIMIR(“EL PROMEDIO ES:”, PROMED);
FIN.

Elaborado por ING. Elvis Vanegas. 42


Ejercicio # 20: Realizar un algoritmo que calcule el salario de “N”
trabajadores dado el numero el número de horas trabajadas y el costo por
hora. El algoritmo de mostrar por pantalla el salario de cada trabajador y la
suma total de todos los salarios.

ALGORITMO NOMINA;
DECLARACIÓN DE VARIABLES
NHT, NUM, I: NUMERICO ENTERO;
COSTOH, SUELDO, SUELDOT: NUMERICO REAL;
INICIO
IMPRIMIR(“INTRODUZCA EL NUMERO DE TRABAJADORES A LOS QUE
DESEA CALCULAR SUELDO: “);
LEER(NUM);
I=1;
SUELDOT= 0;
HAGA DESDE (I= 1 HASTA NUM)
COMIENZO
IMPRIMIR(“INTRODUZCA EL NUMERO DE HORAS TRABAJADAS: “);
LEER(NHT);
IMPRIMIR(“INTRODUZCA EL COSTO DE HORA: “);
LEER(COSTOH);
SUELDO= (NHT * COSTOH);
IMPRIMIR(“EL SUELDO ES:”, SUELDO);
SUELDOT= (SUELDOT + SUELDO);
I=I+1;
FIN HAGA DESDE
IMPRIMIR(“EL MONTO TOTAL DE LA NOMINA ES:”, SUELDOT);
FIN.

Elaborado por ING. Elvis Vanegas. 43


Ejercicio # 21: Realizar un algoritmo que dado “N” notas de un estudiante
permita calcular: a) Cuantas notas tiene reprobadas; b) Cuantas notas tiene
aprobadas; c) El promedio de total notas y d) El promedio de las notas
aprobadas y reprobadas.

ALGORITMO NOTAS;
DECLARACIÓN DE VARIABLES
NUM, I, CNA,CNR, ANA, ANR: NUMERICO ENTERO;
NOTA, PROMEDA, PROMEDR, PROMEDT: NUMERICO REAL;
INICIO
IMPRIMIR(“INTRODUZCA EL NUMERO: “);
LEER(NUM);
I=1;
CNA=0; CNR=0;
ANA=0; ANR=0;
HAGA DESDE (I=1 HASTA NUM)
COMIENZO
IMPRIMIR(“INTRODUZCA LA NOTA: “);
LEER(NOTA);
SI (NOTA>=10)ENTONCES
COMIENZO
CNA=(CNA + 1);
ANA=(ANA+NOTA);
FINSI
ELSE
COMIENZO
CNR=(CNR + 1);
ANR=(ANR+NOTA);
FINSINO
I=I+1;
FIN HAGA DESDE
PROMEDA= (ANA/CNA);
PROMEDR= (ANR/CNR);
PROMEDT = (ANA + ANR)/NUM;
IMPRIMIR(“NOTAS APROBADAS:“, ANA);
IMPRIMIR(“NOTAS REPROBADAS:”, ANR);
IMPRIMIR(“PROMEDIO TOTAL DE NOTAS APROBADAS:”, PROMEDA);
IMPRIMIR(“PROMEDIO TOTAL DE NOTAS REPROBADAS:”, PROMEDR);
IMPRIMIR(“PROMEDIO TOTAL DE NOTAS APRBADAS Y
REPROBADAS:”, PROMEDT);
FIN.

Elaborado por ING. Elvis Vanegas. 44


VECTORES Y MATRICES
QUE ES UN ARRAY (Arreglo)
Es una estructura de datos en la que se almacena una colección de
datos del mismo tipo (por ejemplo, los salarios de los Empleados de una
Empresa). Dicho de otro modo, un array (arreglo) es una lista de un número
finito n de elementos del mismo tipo que se caracteriza por:
1. Almacenar los elementos del array (arreglo) en posiciones de
memoria continua.
2. Tener Un único nombre de variable (por ejemplo Salarios), que
representa todos los elementos y estos a su vez se diferencia por un
índice o subíndice.
3. Acceso directo aleatorio a los elementos individuales del array.

Salario nombre del array


Salario [ 1 ] elemento del array
Salario [ 2 ] 1,2, .....,n subíndice del array

Salario [ n ]

Los Array se clasifican en:


Unidimensionales (Vectores o Listas)
Multidimensionales o Bidimensionales (Tablas o Matrices).

Elaborado por ING. Elvis Vanegas. 45


ARRAY UNIDIMENSIONALES (VECTORES):
Un array de una dimensión (Unidimensional) - Vector o Lista – Es un
tipo de datos estructurado compuesto de un número de elementos finito,
tamaño fijo y elementos homogéneos. Finito indica que hay un último
elemento, tamaño fijo significa que el tamaño del array debe ser conocido,
homogéneo significa que todos los elementos son del mismo tipo. Los
elementos del array se almacenan en posiciones continuas de memoria, a
cada una de las cuales se puede hacer directamente.
Ejemplo: Supongamos que se desean conservar las puntuaciones de
los 40 estudiantes de un examen de Algorítmica. Para almacenar estas
puntuaciones o calificaciones se necesita: reservar 40 posiciones en
memoria, dar un nombre al array (Vector), y cada uno de los 40 estudiantes
asignarles su calificación correspondiente, es decir, dar el índice o subíndice
del array (vector).

Calificaciones Calificaciones [ 1 ] 7.50


Calificaciones [ 2 ] 4.75
Calificaciones [ 3 ] 5.25
- -
-
-

Calificaciones [ 40 ] 6

Nombre del vector Calificaciones


Subíndice [ 5 ], [ 4 ]....
Contenido Calificaciones [ 2 ] 4.75

Elaborado por ING. Elvis Vanegas. 46


Ejemplo: Cantidades en Stocks de diferentes artículos.

Artículo [ 1 ] 40 Contenido (Valor)

Artículo [ 2 ] 52

Artículo [ 3 ] 7
-
-
Artículo [ 20 ] 15

Índice o
Nombre Subíndice
del Vector

Ejemplo: Vector de edades de Diferentes Personas:

Edad [ 1 ] 18 Contenido (Valor)


Edad [ 2 ] 20
Edad [ 3 ] 07
-
-
Edad [ 5 ] 15

Índice o
Nombre Subíndice
del Vector

Elaborado por ING. Elvis Vanegas. 47


DECLARACIÓN DE UN TIPO ARRAY UNIDIMENSIONAL (VECTOR O
TABLA)

Normalmente, la estructura de un Array (Vector) se describe por la


declaración del tipo de Array. A continuación se asigna almacenamiento para
uno o más array de ese tipo.

FORMA DE DECLARACIÓN

Nombre-array : Array [ tipo subíndice ] de tipo;

Nombre-array Nombre de Variable que Identifica el Array.


Tipo subíndice Puede de ser números o letras, un tipo enumerado.
Tipo Describe el tipo de cada elemento del vector.

Ejemplo: Array Nota de ocho elementos numéricos reales.

Nota[1] Nota[2] Nota[3] Nota[4] Nota[5] Nota[6] Nota[7] Nota[8]


16.4 3.45 2.43 0.04 20.00 13.25 7.14 18.25

Nota [ 1 ] Subíndice

Nombre del Array (Vector)

Declaración:
Declaración de Variables
Nota : Array [1 . . 8 ] de Numérico Real;

Elaborado por ING. Elvis Vanegas. 48


Como Llenar el Vector Nota:

HAGA DESDE X:= 1 HASTA 8


COMIENZO
IMPRIMIR (‘ INTRODUZCA LA NOTA: ‘);
LEER (NOTA[X]);
FIN;

Elaborado por ING. Elvis Vanegas. 49


Ejercicio: Elabore un algoritmo que permita llenar un vector de 12
posiciones con las temperaturas ambientales. El algoritmo debe determinar e
imprimir la temperatura media y cuantas son superiores o iguales a la media.

Algoritmo Tempera;
Declaración de Variables
temperatura:array [1..12] de numérico real;
tempmedia,Acum: numérico real;
cant, I: integer;
resp: ALFANUMERICO;
INICIO
resp:=’S’;
HAGA MIENTRAS (resp=’S’) or (resp=’s’)
COMIENZO
Limpiar Pantalla;
IMPRIMIR ('PROGRAMA DE TEMPERATURAS');
HAGA DESDE I:= 1 HASTA 12
COMIENZO
IMPRIMIR ('Introduzca Temperatura: ' );
LEER (temperatura[I] );
FIN Haga Desde;

Acum:=0;
HAGA DESDE I:= 1 HASTA 12
COMIENZO
Acum:=( Acum+temperatura[I]);
FIN Haga Desde;

tempmedia:=(Acum / 12);
cant:=0;
HAGA DESDE I:= 1 HASTA 12
COMIENZO
SI (temperatura[I]>=tempmedia) ENTONCES
cant:= (cant+1);
FIN Haga Desde;

IMPRIMIR ('La temperatura media es: ',tempmedia:3:2);


IMPRIMIR ('Cantidad de Temperaturas mayor o igual a la media son:', cant);
IMPRIMIR(‘Desea Realizar otro proceso (S/N): ‘);
LEER(resp);
FIN Haga Mientras;
FIN.

Elaborado por ING. Elvis Vanegas. 50


Ejercicio: Realizar un algoritmo que lea e imprima una lista de nombres con
sus respectivos promedios.

ALGORITMO LEEIMP;
DECLARACIÓN DE CONSTANTE
N=50;
DECLARACIÓN DE VARIABLE
NOTA:ARRAY[1..N] de numérico real;
ALUMNO:ARRAY[1..N] de alfanumérico Cadena;
NUMERO,POSI: numérico entero;
RESP:Alfanumerico Carácter;
INICIO
REPITA
Limpiar Pantalla;
IMPRIMIR('INTRODUZCA EL NUMERO DE ALUMNOS: ');
LEER(NUMERO);
HAGA DESDE POSI:=1 HASTA NUMERO
COMIENZO
IMPRIMIR('INTRODUZCA EL NOMBRE DEL ALUMNO # ', POSI, ' : ' );
LEER(ALUMNO[POSI]);
IMPRIMIR('INTRODUZCA EL PROMEDIO: ');
LEER(NOTA[POSI]);
FIN Haga Desde;
IMPRIMIR('LISTADO');
IMPRIMIR('NOMBRE');
IMPRIMIR('PROMEDIO');

HAGA DESDE POSI:=1 HASTA NUMERO


COMIENZO
IMPRIMIR(ALUMNO[POSI]);
IMPRIMIR(NOTA[POSI]:12:2);
FIN Haga Desde;
IMPRIMIR(‘Desea realizar otro listado (S/N): ‘);
LEER(RESP);
HASTA QUE (RESP=’N’) or (RESP=’n’);
FIN.

Elaborado por ING. Elvis Vanegas. 51


ARRAY BIDIMENSIONALES (MATRICES O TABLAS):
Un array bidimensional (tabla o matriz) es un array con dos (2) índices.
Se puede considerar a una matriz un vector de vectores, este es por
consiguiente un conjunto de elementos del mismo tipo en el cual el orden de
los componentes es significativo y que se necesita especificar dos (2)
subíndices para poder especificar cada elemento de la matriz.
Para localizar o almacenar un valor en array bidimensional se deben
especificar dos posiciones (2 subíndices); uno para la fila y otro para la
columna. Los elementos se referencia con el formato:

T [ 3,4] elemento de la fila 3 y columna 4

Declaración de los Array bidimensionales:

Al igual que los array de una dimensión (los vectores), los array
multidimensionales (tablas) se crean con declaraciones de variables.
Se debe indicar:
1. Nombre del array.
2. Tipo del array (todos los elementos de un array deben de ser del
mismo tipo).
3. el rango permitido (es decir, el primero y último valores posible) por
cada subíndice.

Elaborado por ING. Elvis Vanegas. 52


Ejemplo: Array bidimensional de Nota de 4 x 4 de elementos numéricos
reales.

Columnas
1 2 3 4
16.4 3.45 2.43 0.04 1
18.5 14.6 17.0 02.5 2
filas
14.9 2.5 1.0 0.9 3

19.9 20 22 30 4

Nota[1,1] = 16.4
Nota[1,2] = 3.45
Nota[1,3] = 2.43
Nota[1,4] = 2.04
Nota[2,1] = 18.5
Nota[2.2] = 14.16
Nota[2,3] = 17.0
Nota[2,4] = 02.5
Nota[3,1] = 14.9
Nota[3,2] = 2.5
Nota[3,3] = 1.0
Nota[3,4] = 0.9
Nota[4,1] = 19.9
Nota[4.2] = 20
Nota[4,3] = 22
Nota[4,4] = 30

Elaborado por ING. Elvis Vanegas. 53


Declaración:
Declaración de Variables
Nota : Array [1 . . 4, 1. . 4 ] de Numérico Real;

OJO: reserva 16 posiciones de memoria para datos reales: 4 filas por 4


columnas.

Como Llenar el Vector Nota:


HAGA DESDE F:= 1 HASTA 4
HAGA DESDE C:=1 HASTA 4
COMIENZO
IMPRIMIR (‘ INTRODUZCA LA NOTA: ‘);
LEER (NOTA[F,C]);
FIN;

Elaborado por ING. Elvis Vanegas. 54


Ejercicio: Elaborar un algoritmo que determine la sumatoria de la diagonal
principal y secundaria de una matriz cuadrática (3 x 3)

Algoritmo DIAGONALPRINCIAPAL;
DEFINIR VARIABLE
NUM: ARRAY[1..3,1..3] DE Numérico Entero;
F,C,DP,DS: Numérico Entero;
R: Alfanumérico Carácter;
INICIO
REPITA
LIMPIAR PANTALLA;
IMPRIMIR ('ALGORITMO QUE CALCULA LA DIAGONAL PRINCIPAL Y
SECUNDARIA DE UNA MATRIZ');
HAGA DESDE F:=1 HASTA 3
COMIENZO
HAGA DESDE C:=1 HASTA 3
COMIENZO
IMPRIMIR('INTRODUZCA NUMERO[',F,C,']:');
LEER(NUM[F,C]);
FIN Haga Desde;
FIN Haga Desde;
DP:=0; DS:=0;
HAGA DESDE F:=1 HASTA 3
COMIENZO
DP:=(DP+NUM[F,F]);
DS:=(DS+NUM[F,4-F]);
FIN Haga Desde;
IMPRIMIR(‘LA DIAGONAL PRINCIPAL ES: ', DP);
IMPRIMIR('LA DIAGONAL SECUNDARIA ES: ', DS);
IMPRIMIR('DESEA LLENAR OTRA MATRIZ (S/N): ');
LEER(R);
HASTA QUE (R='N') OR (R='n');
FIN.

Elaborado por ING. Elvis Vanegas. 55


Funciones: Permite trabajar la programación de forma modular,
simplificando el diseño, disminuyendo la complejidad de los algoritmos y el
total del programa, así como ahorrar tiempo de programación, fortaleciendo
el trabajo en equipo facilitando la depuración, prueba y el mantenimiento de
los programas.
Desde el punto de vista matemático, una función es una operación
que toma uno o varios operando (parámetros) y devuelve un resultado.
Desde el punto de vista de la algorítmica, una función es un subprograma
que toma uno o varios parámetros como entrada y devuelve un único
resultado.
Este único resultado va asociado al nombre de la función, por ello es común
el hecho de que al invocar una función, su valor de retorno se le asigna a una
variable u expresión adecuada.
Por lo que existen dos tipos de funciones:
• Internas o incorporadas: Son las que vienen definidas por
defecto en el lenguaje de programación.
• Externas o del usuario: Son las que define el usuario y tienen un
nombre o identificador.
Para llamar a una función se escribe el nombre de la misma y entre
paréntesis los argumentos o parámetros que se requieren pasar a la función.

Declaración de una Función


La estructura de una función tiene una cabecera con el nombre y los
parámetros y un cuerpo con la declaración de los parámetros de la función y
las instrucciones.

Sintaxis:
Esta depende del lenguaje de programación que se use. El esquema
que utilizaremos tendrá la palabra “Función” que indica el inicio de la función,
seguido del identificador o nombre, la lista de parámetros, el tipo de dato de
retorno de la función y el cuerpo de la función que estarán encerrado entre
Inicio o comienzo y fin de la función.

Función <nombre_función> (nom_parametros: tipo): tipo_retorno


Declaración de Variables <Variables locales de la función>
Comienzo
<Acciones o instrucciones>
Retorno <valor>
Fin <nombre_función>

La lista de parámetros es la información que se tiene que pasar a la


función. Los parámetros dentro del cuerpo de la función, se utilizan como

Elaborado por ING. Elvis Vanegas. 56


variable locales definidas en la función. Se necesita definir a cada parámetro
con su nombre y tipo de dato al momento de declarar la función. El nombre
de la función se la da el programador y debe tener relación con lo que se
quiere realizar.
En las variables locales se declaran las variables que se van a utilizar
dentro de la función.
Dentro del cuerpo de la función, se escriben todas las acciones o
sentencias de la función. Como se dijo anteriormente, es necesario para las
funciones que entre las acciones o sentencias escritas en su cuerpo, se
incluya una del tipo “retorno <valor>”. Esta pondrá fin a la ejecución de la
función y devolverá el valor de la función al programa que la invocó. El valor
de retorno tiene que ser del mismo tipo, que el tipo de dato que se ha
indicado al declarar la función en la parte final de la cabecera.

Por definición, una función siempre debe devolver algún valor.


Algunos lenguajes de programación declaran un tipo de dato nulo para
permitir así que las funciones “no retornen” valores, aunque en realidad
retornen un tipo no utilizado.

Los parámetros que aparecen en la declaración de la función se


denominan parámetros formales. Los parámetros que se utilizan cuando la
función es invocada se denominan parámetros actuales o reales. Estos
últimos son las constantes, valores de retorno, expresiones, variables u otro
elemento de contexto de la llamada que es necesario pasar a la función.

Invocación de una Función


Para llamar una función, se coloca el nombre de la función y entre
paréntesis se añaden los parámetros reales que necesita la función. Los
parámetros reales pueden ser variables, expresiones e incluso constantes,
pero siempre deben corresponder al mismo tipo de dato que los parámetros
formales asociados con la función.

Por ejemplo:

Función sumarEnteros(num1: Numérico Entero, num2: Numérico


Entero): Numérico Entero
Declaración de Variables
Resultado: Numérico Entero;
Comienzo
Resultado = num1 + num2;
Retornar Resultado;
Fin sumarEnteros;

Elaborado por ING. Elvis Vanegas. 57


La función puede ser llamada desde el programa principal o desde
cualquier otro subprograma mediante sentencias tales como:

Declaración de Variables
Resultado: Numérico Entero;
numero: Numérico Entero;
Inicio
Resultado = sumarEnteros(8, 9);
Imprimir (“ La suma de 8 más 9 es:”, Resultado);
Numero=12;
Resultado = sumarEnteros(numero, 5);
Imprimir (“ La suma de 12 más 5 es:”, Resultado);
Imprimir (“ La suma de 2 más 2 es:”, sumarEnteros(2, 2));
Fin.

Nota: Para que una función pueda ser invocada desde cualquier parte de un
programa, es necesario que la definición de dicha función ya sea del
conocimiento previo del compilador antes de usarla. Esto es así porque la
mayoría de los lenguajes de programación requieren que la función,
procedimiento o subrutina, esté definida antes de permitir su uso. Es decir, el
nombre de la función, tipo y números de argumentos deben estar presentes
en alguna parte valida de programa antes de ser invocada.

Pasos para hacer la llamada a una función


Cuando de efectúa la llamada de la función se le cede el control a la
misma y se asocia, es decir, se le asigna el valor de cada parámetro real al
parámetro formal, siempre por orden de aparición de izquierda a derecha.
Existiendo un error cuando los tipos y el numero de parámetros reales no
coinciden con los formales.
Si la llamada a la función es válida entonces se ejecutan las instrucciones de
la función hasta que se encuentra la instrucción del tipo “Retorno <valor>”.
Esta instrucción podrá fin a la ejecución de la función y el control se pasa al
punto siguiente de donde se efectuó la llamada. Pueden existir varias
sentencias de retorno en la misma función, colocadas en diferentes partes
del código de programación y dependen de sentencias condicionales para su
ejecución.

En conclusión, se asocia el valor retornado con el nombre de la


función y se devuelve el control al subprograma que hizo la llamada,
sustituyendo así el nombre de la función por el valor devuelto.

Elaborado por ING. Elvis Vanegas. 58


Ejemplo:

Función mitad (n: Numérico Entero): Numérico real


Declaración de Variables
Med: Numérico real;
Comienzo
Med = n/2;
Retorno Med;
Fin mitad;

Algoritmo Calcular_mitad;
Declaración de Variables
Num: Numérico Entero;
Inicio
Imprimir (“Introduzca un Número Entero para hallar su mitad:”);
Leer(Num);
Imprimir (“La mitad de “, num, ”es:”, mitad(Num));
Fin.

En este ejemplo la función mitad() se llama desde una expresión.

Elaborado por ING. Elvis Vanegas. 59


Ejercicio 1: Escribir un programa que determine el mayor de tres cantidades
enteras, utilizando una función que determine el mayor de dos cantidades
enteras.

Función máximo ( x: Numérico Entero, y: Numérico Entero): Numérico


Entero
Declaración de Variables
Max : Numérico Entero;
Comienzo
Si (x>y) entonces
Max = x
Sino
Max = y
Retorno Max
Fin máximo

Algoritmo Calcular_Mayor_tres_numeros;
Declaración de Variables
A,b,c,d: Numérico Entero;
Inicio
Imprimir(“Introduzca el primer Numero:”);
Leer(a);
Imprimir(“Introduzca el segundo Numero:”);
Leer(b);
Imprimir(“Introduzca el tercer Numero:”);
Leer(c);
d=máximo(a,b);
d=máximo(c,d);
Imprimir(“El Numero Mayor es:”, d);
Fin.

Procedimientos: Es un subprograma que realiza una determinada tarea,


que al ejecutarse no tiene ningún valor asociado a su nombre, como ocurre
con las funciones. Un procedimiento devuelve información, pero lo hace a
través de parámetros de entra-salida o de salida.

Al invocar un procedimiento, se le cede el control, comienza a ejecutarse y


cuando termina devuelve el control a la instrucción siguiente, al punto de
donde fue llamado.

Elaborado por ING. Elvis Vanegas. 60


Diferencias entre Funciones y Procedimientos
• Las funciones están diseñadas para devolver un único valor y un
procedimiento puede devolver puede devolver nongún o muchos
valores por medio de sus argumentos o parámetros.
• Ninguno de los resultados devueltos por el procedimiento se asocia a
su nombre como ocurre con la función.
• Mientras que la llamada a una función siempre puede formar parte de
una expresión, la llamada a un procedimiento e una instrucción
aislada, que por sí sola no puede formar parte de una expresión.

Sintaxis
La sintaxis para declarar un procedimiento casi es la misma que para
definir una función, sólo que no se coloca un tipo de retorno asociado. La
cabecera va a estar formada por el nombre del procedimiento que será un
identificador valido con significado. Después entre paréntesis se colocan los
parámetros o argumentos formales que requiere el procedimiento. Por cada
parámetro es necesario indicar el tipo de paso de parámetro.

En el cuerpo del procedimiento se colocan todas las sentencias que se


necesitan para ejecutar la tarea y no existirá ninguna sentencia de tipo
“retorno<valor>”. Si el procedimiento devuelve resultados a través de sus
parámetros, cosa que sólo podrá hacer a través de los parámetros que se
pasan por referencia, tendrán que existir sentencias de asignación de valores
a estos parámetros pasados por referencia para devolver los resultados.

Pasos para hacer la llamada a un procedimiento


Este se puede realizar desde el programa principal o subrutina, se
coloca el nombre del procedimiento con su lista de parámetros reales entre
paréntesis como una sentencia única. Por lo que da el control al
procedimiento que se llama y después se sustituye cada parámetro formal de
la definición, por el parámetro actual o real asociado a él en la llamada. Esta
asociación entre parámetros formales y reales se realiza de izquierda a
derecha por orden de ubicación. Para que se produzca la asociación tiene
que existir el mismo número de parámetros formales que reales, al mismo
tiempo que el tipo de dato debe de coincidir con el del parámetro formal
asociado. Se produce un error en la llamada al procedimiento si no se
cumple algunas de estas condiciones.

Elaborado por ING. Elvis Vanegas. 61


Ejemplo:
Procedimiento mitad (num: Numérico entero, ent-sal med: real)
Comienzo
med = num /2 ;
Fin mitad

Algoritmo calcular_mitad
Declaración de Variables
N: Numérico Entero; Nota: Este ejemplo ent-sal med: real,
Mit: Numérico real; se usa para indicar que el parámetro
Inicio del tipo real med es de entrada y salida
Imprimir (“Introduzca un Número:”); o que es un parámetro por referencia.
Leer(N);
mitad(N,Mit);
Imprimir(“La mitad es:”, Mit);
Fin.

Elaborado por ING. Elvis Vanegas. 62