Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Algoritmos Introduccion Secuencias Ejemplos Seudocodigo PDF
Algoritmos Introduccion Secuencias Ejemplos Seudocodigo PDF
1.1 Algoritmo
Un algoritmo es un conjunto ordenado y finit o de instrucciones que conducen a la solución de un
problema.
En la vida cotidiana ejecutamos constant emente algoritmos. Por ejemplo, al instalar un equipo de
sonido ejecutamos las instrucciones contenidas en el manual del equipo, este conjunto de
instrucciones constituyen un algoritmo.
Otro caso de algoritmo es el algoritmo matemático de Euclides para la obtención del máximo
común divisor de dos números.
Si un algoritmo puede ser ejec utado por un computador, se dice que es un algoritmo
computacional; en caso contrario, se dice que es un algoritmo no computacional. Según esto,
el algoritmo de Euclides es un algoritmo computacional; pero el algoritmo para instalar el e quipo de
sonido es un algoritmo no computacional.
Para que un algoritmo pueda ser ejecutado por un computador se necesita expresar el algoritmo en
instrucciones comprensibles por el computador, para esto se requiere de un det erminado lenguaje
de programación.
Debe ser preciso, es decir, cada instrucción debe indic ar de forma inequívoc a
que se tiene que hacer.
Debe ser finito, es decir, debe tener un número limitado de pasos.
Debe ser definido, es decir, debe producir los mismos resultados para las
mismas condiciones de entrada.
Entrada de datos.
Proceso.
Salida de resultados.
Entradas :
- 1 kilo de bonito
- 3 camotes sancochados
- 1 rocoto en rodajas
- sal y pimienta
Proceso :
Salida :
El ceviche
E videntemente este es un algoritmo no computacional, no podrá ser ejecut ado por un c omputador,
pero sí por una persona. Por si acaso el ceviche es peruano.
Ejemplo 1.2:- Algoritmo para expresar en centímetros y pulgadas una cantidad dada en metros.
Entrada:
La cantidad M de metros
Proceso:
Cálculo de centímetros : C = M*100
Salida :
1.2 El Pseudocódigo
El pseudoc ódigo es un lenguaje de pseudoprogramación utilizado para escribir algoritmos
computacionales. Como lenguaje de pseudoprogramación, el pseudocódigo es una imitación de
uno o más lenguajes de programación. De esta manera podemos encontrar pseudocódigos
orientados a lenguajes de programación como Pascal, Java, C, C++, etc .
El objetivo del pseudocódigo es permitir que el programador se cent re en los aspectos l ógicos de la
solución, evitando las reglas de sintáxis de los lenguajes de programación. No siendo el
pseudocódigo un lenguaje formal, los pseudocódigos varían de un programador a otro, es decir, no
hay un pseudocódigo estándar.
1.3 Variables
Una variable es una localización o casillero en la memoria principal que almacena un valor que
puede cambiar en el transcurso de la ejecución del programa. Cuando un programa necesita
almacenar un dato, necesita una variable. Toda variable tiene un nombre, un tipo de dato y un
valor. Antes de poder utilizar una variable es necesario declararla especificando su nombre y su
tipo de dato. Para declarar declarar variables usaremos los siguientes formatos:
tipo nombre
Donde:
nombre1, nombre2, ..., Nombres de las variables . El nombre de una variable debe
nombren comenzar con una letra, un símbolo de subrayado o un s ímbolo
de dólar. Los demás caractéres del nombre puede ser letras,
símbolos de subrayado o símbolo de dólar. Debe considerarse
también que una letra mayúscula se considera diferente de una
letra minúscula.
REAL descuento
Esto crea los casilleros de memoria edad y descuento. Luego de la creación, las variables están
indefinidas ( ? ).
edad ?
descuento ?
Esto crea los casilleros de memoria nota1, nota2 y nota3. Luego de la creación, las variables
están indefinidas ( ? ).
nota1 ?
nota2 ?
nota3 ?
1.4 Literales
Se denominan literales a todos aquellos valores que figuran en el pseudocódigo y pueden ser:
Literales enteros
12, 20300, 15, etc.
Literales reales
3.1416, 2345.456, etc.
Literales de carácter
'a', 'B', ';', '<', '+', etc.
Lieterales de cadena
"Hola", "Algoritmos Computacionales", etc.
Literales lógicos
verdadero, falso
1.5.1 Entrada
Consiste en obtener un dat o de un dispositivo de entrada, como el teclado, y almacenarlo en una
variable. En general, la acción de ingresar un dato a una variable se expresa en el pseudocódigo
mediante la palabra LEER, de la siguiente forma:
LEER variable
LEER estatura
Solicita el ingreso de un valor, desde algún dispositivo de entrada (como el teclado), para la
variable estatura.
1.5.2 Salida
IMPRIMIR variable
IMPRIMIR importeCompra
1.5.3 Asignación
Consiste en asignar a una variable el valor de una expresión. La expresión puede ser una simple
variable, un simple literal o una c ombinación de variables, literales y operadores. La asignación se
expresa en el pseudocódigo de la siguient e forma:
variable = expresión
Cuando se asigna un valor ENTERO a una variable REAL, entonces el valor ENTERO se
convertirá en REAL ant es de almacenarse. Así, al asignar el valor E NTERO 25 a una variable
REAL, se almacenará 25.0.
Ejemplo 1.4:- Algoritmo para expresar en centímetros y pulgadas una cantidad dada en metros.
Esta es una solución en pseudoc ódigo del ejemplo 1.2 utilizando conceptos computacionales de
variable, entrada de datos y salida de res ultados. La solución c onsidera que 1 met ro = 100
centímet ros y que 1 pulgada = 2.54 centímetros.
INICIO
// Declara las variables M, C y P
REAL M, C, P
// Solicita el ingreso de la cantidad en metros
LEER M
// Calcula la cantidad en centímetros y lo asigna a la variable C
C = M*100
// Calcula la cantidad en pulgadas y lo asigna a la variable P
P = C/2.54
// Muestra los valores de las variables C y P
IMPRIMIR C, P
FIN
En la tabla que sigue se muestran los operadores aritméticos que vamos a utilizar.
Los operadores aritméticos pueden utilizarse con tipos enteros y reales. Si en una operación con
dos operandos, ambos operandos son enteros, el resultado es un entero; si alguno de ellos es real,
el resultado es real. Así, 15/4 es 3 y no 3.75; en cambio, 15. 0/4 es 3.75.
Cuando una expresión aritmética tiene más de un operador aritmético, el orden de aplicación de los
operadores sigue un orden preciso determinado por las reglas de jerarquía de los operadore s
aritméticos, que se muestran en la siguiente tabla:
Si existen paréntesis anidados, se evalúa primero la expr esión en el par más int erno. Si varios
operadores o parént esis tienen la misma jerarquía, la evaluación será de izquierda a derecha.
e = a/b/c
Como todos los operadores tienen la misma jerarquía, la evaluación será de izquierda a derecha:
Note que el orden de ejecución esta de acuerdo con la expresión algebraic a, por lo que no se
requiere ninguna pareja de paréntesis.
Solución
e = a*b*c/d/e
Como todos los operadores tienen la misma jerarquía, la evaluación será de izqui erda a derecha:
.
Segundo, el resultado ya obtenido de a*b se multiplicará por c.
Note que el orden de ejecución esta de acuerdo con la expresión algebraica, por lo que no se
requiere ninguna pareja de paréntesis.
Tercero, el result ado ya obtenido de a+b se dividirá entre el res ultado ya obtenido de c/d.
Décimo, se sumará el resultado ya obtenido de 4/ ((a+ b)/(c/d)) más el res ultado y a obt enido de
v/ w/p.
Note que usando correctament e las reglas de jerarquía, es posible usar menos parejas de
paréntesis.
Inicio
.
.
acción 1
acción 2
acción 3
.
.
Fin
2.2 Ejercicios
Ejercicio 1:- Diseñe un pseudocódigo que halle el área y el perímetro de un rectángulo. Considere
que: area = base x altura y perimetro = 2 x (base+ altura).
Algoritmo
INICIO
// Declaración de variables
// Entrada de datos
// Proceso de cálculo
area = base*altura
perimetro = 2*(base+altura)
// Salida de resultados
FIN
Ejemplo 2:- Diseñe un pseudocódigo para convertir una longitud dada en met ros a sus
equivalentes en centímetros, pies, pulgadas y yardas. Considere que: 1 metro = 100 cent ímet ros, 1
pulgada = 2.54 centimetros, 1 pie = 12 pulgadas, 1 yarda = 3 pies.
Algoritmo
INICIO
// Declaración de variables
// Entrada de datos
LEER cmetr
// Proceso de cálculo
ccent = cmetr*100
cpulg = ccent/2.54
cpies = cpulg/12
cyard = cpies/3
// Salida de resultados
FIN
Ejercicio 3:- Una institución benéfica europea ha recibido t res donaciones en soles, dolares y
marcos. La donación será repartida en tres rubros: 60% para la implementación de un centro de
salud, 40% para un comedor de niños y el resto para gastos administrativos. Diseñe un algori tmo
que determine el mont o en euros que le corresponde a cada rubro. Considere que: 1 dólar = 3.52
soles, 1 dólar = 2.08 marcos, 1 dólar = 1.07 euros.
Algoritmo
INICIO
// Declaración de variables
// Entrada de datos
// Proceso de cálculo
rubro1 = ceuros*0.60
rubro2 = ceuros*0.40
rubro3 = ceuros*0.20
// Salida de resultados
FIN
Ejercicio 4:- En una competencia atlética de velocidad el tiempo se mide en minutos, segundos y
centésimas de segundo y, el espacio rec orrido se mide en metros. Diseñe un algoritmo para
determinar la velocidad promedio de un atleta en km/hr. Considere que: 1 hora = 60 minutos, 1
minuto = 60 segundos, 1 segundo = 100 centésimas de segundo, 1 kilómetro = 1000 metros.
Algoritmo
INICIO
// Declaración de variables
ENTERO tmin, tseg, tcen
REAL thor, velkmhr, espmt, espkm
// Entrada de datos
LEER tmin, tseg, tcen, espmt
// Salida de resultados
IMPRIMIR velkmhr
FIN
Ejercicio 5:- Diseñe un algoritmo que det ermine la cifra de las unidades de un número natural.
Solución 1
Análisi s
Puede comprobarse que la cifra de las unidades de un número es igual al resto de la división del
número entre 10. Observe para ello las siguientes divisiones:
3245 10
5 324
768 10
8 76
9 10
9 0
unidades = numero % 10
Siendo % el operador residuo. Este operador permite obtener el residuo de una división, as í como /
permite obtener el cociente.
Algoritmo
INICIO
// Declaración de variables
// Entrada de datos
LEER numero
// Proceso de cálculo
unidades = numero % 10
// Salida de resultados
IMPRIMIR unidades
FIN
Solución 2
Análisi s
El residuo de una división entera puede obtenerse t ambién sin recurrir al operador %, de la
siguiente forma:
observe para esto que en la división (numero/10) los operandos son enteros por lo que el cocient e
será un entero. Así por ejemplo, si numero es igual a 3245, la división (numero/10) produce 324,
aunque matemáticamente sea 324. 5; es decir, se descarta la parte decimal.
Algoritmo
INICIO
// Declaración de variables
LEER numero
// Proceso de cálculo
// Salida de resultados
IMPRIMIR unidades
FIN
Ejercicio 6:- Diseñe un algoritmo que determine la suma de las cifras de un número entero positivo
de 4 cifras.
Solución 1
Análisi s
Las cifras pueden ser obtenidas mediante divisiones sucesivas entre 10. Para el efecto, considere
el caso de un número N igual a 3245:
3245 10
5 324
unidades = N%10
cociente = N/10
324 10
4 32
decenas = cociente%10
cociente = cociente/10
32 10
2 3
centenas = cociente%10
millares = cociente/10
Algoritmo
INICIO
// Declaración de variables
// Entrada de datos
LEER N
// Proceso de cálculo
unidades = N%10
cociente = N/10
decenas = cociente%10
cociente = cociente/10
centenas = cociente%10
millares = cociente/10
// Salida de resultados
IMPRIMIR suma
FIN
Solución 2
Análisi s 2
Considerando que el número tiene 4 cifras, las cifras también pueden ser obtenidas mediant e
divisiones sucesivas entre 1000, 100 y 10. Para el efecto, considere el caso de un número N igual
a 3245:
3245 1000
245 3
millares = N/1000
resto = N%1000
245 100
45 2
centenas = resto/100
resto = resto%100
45 10
3 4
decenas = resto/10
unidades = resto%10
Algoritmo
INICIO
// Declaración de variables
// Entrada de datos
LEER N
// Proceso de cálculo
millares = N/1000
resto = N%1000
centenas = resto/100
resto = resto%100
decenas = resto/10
unidades = resto%10
// Salida de resultados
IMPRIMIR suma
FIN
Ejercicio 7:- Diseñe un algoritmo que lea la hora actual del día HH:MM:SS y determine cuantas
horas, minutos y segundos restan para culminar el día.
Algoritmo
INICIO
// Declaración de variables
ENTERO hor1, min1, seg1, hor2, min2, seg2, segres, resto
// Entrada de datos
hor2 = segres/3600
resto = segres%3600
min2 = resto/60
seg2 = resto%60
// Salida de resultados
FIN
Ejercicio 8:- Diseñe un algoritmo para sumar dos tiempos dados en horas, minutos y segundos.
Algoritmo
INICIO
// Declaración de variables
ENTERO hor1, min1, seg1, hor2, min2, seg2, hor3, min3, s eg3, totseg,
resto
// Entrada de datos
hor3 = totseg/3600
resto = totseg%3600
min3 = resto/60
seg3 = resto%60
// Salida de resultados
FIN
Ejercicio 9:- El sueldo neto de un vendedor se calcula como la suma de un sueldo básico de
S/.250 más el 12% del monto total vendido. Dis eñe un algoritmo que determine el sueldo neto de
un vendedor sabiendo que hizo tres ventas en el mes.
Algoritmo
INICIO
// Declaración de variables
// Entrada de datos
// Proceso de cálculo
comision = 0.12*ventatot
// Salida de resultados
IMPRIMIR sueldoneto
FIN
Ejercicio 10:- Diseñe un algoritmo que determine el porcentaje de varones y de mujeres que hay
en un salón de clases.
Algoritmo
INICIO
// Declaración de variables
// Proceso de cálculo
porcvar = varones*100.0/total
porcmuj = mujeres*100.0/total
// Salida de resultados
FIN
Ejercicio 11:- En países de habl a inglesa es común dar la estatura de una persona como la suma
de una cantidad entera de pies más una cantidad ent era de pulgadas. Así, la estatura de una
persona podría ser 3' 2" ( 3 pies 2 pulgadas ). Diseñe un algoritmo que determine la estatura de
una persona en metros, conociendo su estatura en el formato inglés. Considere que: 1 pie = 12 plg,
1 plg = 2.54 cm, 1 m = 100 cm.
Algoritmo
INICIO
// Declaración de variables
REAL estmt
// Entrada de datos
// Proceso de cálculo
// Salida de resultados
IMPRIMIR estmt
FIN
Ejercicio 12:- Diseñe un algoritmo que ex prese la capacidad de un disco duro en megabytes,
kilobytes y bytes, conociendo la cap acidad del disco en gigabytes. Considere que: 1 kilobyte =
1024 bytes, 1 megabyte = 1024 kilobyte, 1 gigabyte = 1024 megabytes.
Algoritmo
INICIO
// Declaración de variables
// Entrada de datos
LEER cgigabyte
// Proceso de cálculo
cmegabyte = cgigabyte*1024
ckilobyte = cmegabyte*1024
cbyte = ckilobyte*1024
// Salida de resultados
FIN
Ejercicio 13:- Diseñe un algoritmo que int ercambie las cifras de las unidades de dos números
naturales.
Algoritmo
INICIO
// Declaración de variables
// Entrada de datos
unidades1 = n1%10
unidades2 = n2%10
IMPRIMIR n1, n2
FIN