Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Trabajo de Programación
Tipos de Algoritmos:
1. Cualitativos.
2. Cuantitativo.
3. Directo.
4. Indirecto.
CARACTERÍSTICAS DE UN ALGORITMO.
Definido: Cada paso debe ser preciso, es decir, sin dejar posibilidades de
interpretaciones equivocadas.
Algoritmos Cualitativos:
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.
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.
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.
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.
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
123--n
c:= c + 1;
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
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
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
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.
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.
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.
10
11
Elaborado por ING. Elvis Vanegas.
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.
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.
12
Elaborado por ING. Elvis Vanegas.
ESTRUCTURAS DE DECISION O SELECTIVAS:
SINTAXIS:
SI (CONDICION) ENTONCES
(ENUNCIADO DE ACCION)
FINSI
SI (CONDICION) ENTONCES
(BLOQUE1)
SINO
(BLOQUE2)
FINSI
Ejemplo:
SI (Edad>=18) ENTONCES
IMPRIMIR(“UD. ES MAYOR”)
SINO
IMPRIMIR(“UD. ES MENOR”)
FINSI
SINTAXIS #1:
SI (CONDICION) ENTONCES
COMIENZO
ENUNCIADO DE ACCION
ENUNCIADO DE ACCION
FINSI
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
IMPRIMIR(“ALUMNO
FINSINO REPROBADO”)
IMPRIMIR(“LA NOTA FINAL
ES:”,NOTAF)
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;
16
FIN.
Elaborado por ING. Elvis Vanegas.
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 COMIENZO
(MULTI<50) ENTONCES
SUMA:= (V3+MULTI);
FINSI
IMPRIMIR(“LA SUMA ES:”,
MULTI); IMPRIMIR(“LA SUMA
ES:”, SUMA); FIN.
17
Elaborado por ING. Elvis Vanegas.
CONDICIONES ANIDADAS:
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
19
Elaborado por ING. Elvis Vanegas.
Ejercicio #6: Un empleado desea conocer la comisión que ha ganado de
acuerdo a la venta que realizó según las siguientes condiciones:
20
Elaborado por ING. Elvis Vanegas.
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.
21
Elaborado por ING. Elvis Vanegas.
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
22
Elaborado por ING. Elvis Vanegas.
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.
23
CASO <EXPRESION> DE
<LISTA DE ETIQUETAS>: SENTENCIA1;
**
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;
CASO ALA DE
1: IMPRIMIR(“COLOR ROJO”);
4: COMIENZO
IMPRIMIR (“SE AGOTO EL COLOR”);
IMPRIMIR (“YA MANDE A COMPRAR”);
FIN;
FIN;
Ejemplo3:
CASO X>5 DE
TRUE: IMPRIMIR (“EL NUMERO ‘, X, ‘ES MAYOR QUE 5”);
FALSE: IMPRIMIR (“EL NUMERO ‘, X, ‘ES MENOR QUE 5”);
FIN;
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.
CASO CARÁCTER DE
‘A’,’B’:NUMEROA +1;
‘C’: NUMEROB +1;
FIN;
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.
Su Sintaxis es la siguiente:
Acción n
FIN HAGA MIENTRAS.
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:
A:=0;
I:=1;
HAGA MIENTRAS (I< = 4)
COMIENZO
A:=A+1,
A:=A+I;
I:=I+1;
FIN;
ALGORITMO SUMANUMEROSPRIMOS;
DECLARACIÓN DE VARIABLES
NUM, I, SUMA: NUMERICO
INICIO
ENTERO;
SUMA=(SUMA + I);
FIN HAGA MIENTRA
I=I+1;
ALGORITMO PROMEDIONUMEROS;
DECLARACIÓN DE VARIABLES
NUM, I, SUMA: NUMERICO
INICIO PROMED: NUMERICO
ENTERO;
REAL;
I=1;
COMIENZO
SUMA= 0;
HAGA MIENTRAS (I<=10)
PROMED=SUMA/10;
IMPRIMIR(“EL PROMEDIO ES:”,
PROMED); FIN.
30
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.
ALGORITMO NOTAS;
DECLARACIÓN DE VARIABLES
NUM, I, CNA,CNR, ANA, ANR: NUMERICO ENTERO;
NOTA, PROMEDA, PROMEDR, PROMEDT: NUMERICO
INICIO
REAL;
CNA=(CNA + 1);
FINSIANA=(ANA+NOTA);
ELSE
COMIENZO
CNR=(CNR + 1);
FINSINO
ANR=(ANR+NOTA);
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.
32
Elaborado por ING. Elvis Vanegas.
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)
REPITA
Acción 1
Acción 2
--
Acción n
HASTA QUE CONDICION.
Ejemplo:
a:= 0;
REPITA
a:= a + 1;
w:= a + 10;
z:= w + 9;
HASTA QUE a > 5
ALGORITMO SUMANUMEROSPRIMOS;
DECLARACIÓN DE VARIABLES
NUM, I, SUMA: NUMERICO
INICIO
ENTERO;
SUMA=(SUMA + I);
I=I+1;
HASTA QUE (I>NUM)
IMPRIMIR(“LA SUMA ES:”,
SUMA); FIN.
ALGORITMO PROMEDIONUMEROS;
DECLARACIÓN DE VARIABLES
NUM, I, SUMA: NUMERICO
INICIO
ENTERO; PROMED: NUMERICO
REAL;
REPITA
I=1;
SUMA= 0;
35
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.
36
Elaborado por ING. Elvis Vanegas.
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
INICIO
REAL;
CNA=(CNA + 1);
FINSIANA=(ANA+NOTA);
ELSE
COMIENZO
CNR=(CNR + 1);
FINSINO
ANR=(ANR+NOTA);
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.
37
Elaborado por ING. Elvis Vanegas.
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:
Donde:
VARB1 es una variable de control
VARB2 y VARB3 pueden ser un valor o una variable, además definen
el valor Inicial y final de VARB1.
Acción n
FIN DEL HAGA DESDE.
a1:= 10;
HAGA DESDE i = 1 HASTA 10
COMIENZO
a1:= a1 + 1;
b1:= a1 + 1;
FIN DEL HAGA DESDE
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.
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);
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.
ALGORITMO SUMANUMEROSPRIMOS;
DECLARACIÓN DE VARIABLES
NUM, I, SUMA: NUMERICO
INICIO
ENTERO;
ALGORITMO PROMEDIONUMEROS;
DECLARACIÓN DE VARIABLES
NUM, I, SUMA: NUMERICO
INICIO PROMED: NUMERICO
ENTERO;
REAL;
I=1;
COMIENZO
SUMA= 0;
HAGA (DESDE I =1 HASTA
10)
PROMED=SUMA/10;
IMPRIMIR(“EL PROMEDIO ES:”,
PROMED); FIN.
42
Elaborado por ING. Elvis Vanegas.
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.
ALGORITMO NOTAS;
DECLARACIÓN DE VARIABLES
NUM, I, CNA,CNR, ANA, ANR: NUMERICO ENTERO;
NOTA, PROMEDA, PROMEDR, PROMEDT: NUMERICO
INICIO
REAL;
CNA=(CNA + 1);
FINSIANA=(ANA+NOTA);
ELSE
COMIENZO
CNR=(CNR + 1);
FINSINO
ANR=(ANR+NOTA);
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.
44
Elaborado por ING. Elvis Vanegas.
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:
Salario [ n ]
Artículo [ 2 ] 52
Artículo [ 3 ] 7
-
-
Artículo [ 20 ] 15
Índice o
Nombre
Subíndice
del Vector
Índice o
Nombre
Subíndice
del Vector
FORMA DE DECLARACIÓN
Nota [ 1 ] Subíndice
Declaración:
Declaración de Variables
Nota : Array [1 . . 8 ] de Numérico Real;
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;
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');
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.
Columnas
1 2 3 4
123 4
16.4 3.45 2.43 0.04
18.5 14.6 17.0 02.5 filas
14.9 2.5 1.0 0.9
19.9 20 22 30
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
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.
Por ejemplo:
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.
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.
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.
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.
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.