DEFINICIÓN
Consiste en aplicar adecuadamente una serie de pasos detallados que aseguran una solución correcta. Por lo general, cada algoritmo es específico de un dominio del conocimiento.
Mientras mas detalles podamos ver, nuestro programa sera mas preciso, te muestro dos ejemplos prácticos, situaciones comunes que hemos hecho probablemente todos.
EJEMPLO 1
Un procedimiento que realizamos varias veces al día consiste en lavarnos los dientes. Veamos la forma de expresar este procedimiento como un Algoritmo:
![]()
1. Tomar la crema dental
2. Destapar la crema dental
3. Tomar el cepillo de dientes
4. Aplicar crema dental al cepillo
5. Tapar la crema dental
6. Abrir la llave del lavamanos
7. Remojar el cepillo con la crema dental
8. Cerrar la llave del lavamanos
9. Frotar los dientes con el cepillo
10. Abrir la llave del lavamanos
11. Enjuagarse la boca
12. Enjuagar el cepillo
13. Cerrar la llave del lavamanos
14. Secarse la cara y las manos con una toalla
EJEMPLO 2
El ejemplo de cambiar una bombilla (foco) fundida es uno de los más utilizados por su sencillez para mostrar los pasos de un Algoritmo:
1. Ubicar una escalera debajo de la bombilla fundida
2. Tomar una bombilla nueva
3. Subir por la escalera
4. Girar la bombilla fundida hacia la izquierda hasta soltarla
5. Enroscar la bombilla nueva en el plafón hasta apretarla
6. Bajar de la escalera
7. Fin
Estos 2 ejercicios pueden ser aun mas precisos, has la prueba desde tu punto de vista y mejoralo.
Caracteristicas
un Algoritmo debe ser:
• Realizable: El proceso algorítmico debe terminar después de una cantidad finita de pasos. Se dice que un algoritmo es inaplicable cuando se ejecuta con un conjunto de datos iniciales y el proceso resulta infinito o durante la ejecución se encuentra con un obstáculo insuperable sin arrojar un resultado.
• Comprensible: Debe ser claro lo que hace, de forma que quien ejecute los pasos (ser humano o máquina) sepa qué, cómo y cuándo hacerlo. Debe existir un procedimiento que determine el proceso de ejecución.
• Preciso: El orden de ejecución de las instrucciones debe estar perfectamente indicado. Cuando se ejecuta varias veces, con los mismos datos iniciales, el resultado debe ser el mismo siempre. La precisión implica determinismo.
Pasos para realizar un algoritmo
1. COMPRENDER EL PROBLEMA.
• Leer el problema varias veces
• Establecer los datos del problema
• Aclarar lo que se va a resolver (¿Cuál es la pregunta?)
• Precisar el resultado que se desea lograr
• Determinar la incógnita del problema
• Organizar la información
• Agrupar los datos en categorías
• Trazar una figura o diagrama.
2. HACER EL PLAN.
• Escoger y decidir las operaciones a efectuar.
• Eliminar los datos inútiles.
• Descomponer el problema en otros más pequeños.
3. EJECUTAR EL PLAN (Resolver).
• Ejecutar en detalle cada operación.
• Simplificar antes de calcular.
• Realizar un dibujo o diagrama
4. ANALIZAR LA SOLUCIÓN (Revisar).
• Dar una respuesta completa
• Hallar el mismo resultado de otra manera.
• Verificar por apreciación que la respuesta es adecuada.
Sentencias
- sentencias simples: son una única instrucción;
- sentencias de control: están conformadas por varias otras sentencias, que a su vez pueden ser simples o compuestas.
Expresiones y variables
Asignaciones
variable = expresión
La asignación debe interpretarse así:- primero la expresión a la derecha del signo = es evaluada, utilizando los valores que tienen las variables a, b y c en ese momento;
- una vez obtenido el resultado, el valor de la variable a la izquierda del signo = es reemplazado por ese resultado.
i = i + 1
Condicionales
Ciclos
Entrada
Leer variable
Leer a
Leer b
Leer c
Salida
Escribir mensaje
Escribir 'No hay soluciones'
Escribir 'La solución única es ', xEJERCICIOS
1. A un trabajador le pagan segun sus horas y una tarifa de pago por
horas. si la cantidad de horas trabajadas es mayor a 40 horas. la
tarifa se incrementa en un 50% para las horas extras. calcular el
salario del trabajador dadas las horas trabajadas y la tarifa.
variables: horas_trabajadas,tarifa,horas_extras,salario,tarifa_e
inicio
leer: horas_trabajadas,tarifa
si: horas_trabajadas <= 40 entonces
salario <-- horas_trabajadas * tarifa
si_no
tarifa_extra <-- tarifa + 0.50 * tarifa
horas_extras <-- horas_trabajadas - 40
salario <-- horas_extras * tarifa_extra + 40 *
tarifa
fin_si
imprimir: salario.
fin
2. A un trabajador le descuentan de su sueldo el 10% si su sueldo es
menor o igual a 1000. por encima de 1000 y hasta 2000 el 5% del
adicional, y por encima de 2000 el 3% del adicional. calcular el
descuento y sueldo neto que recibe el trabajador dado su sueldo.
variables: sueldo,sueldo_neto,descuento
inicio
leer: sueldo
si: sueldo <= 1000 entonces
descuento <-- sueldo * 0.1
si_no
si: sueldo <= 2000 entonces
descuento <-- (sueldo - 1000) * 0.05 + 1000 * 0.1
si_no
descuento <-- (sueldo - 2000) * 0.03 + 1000 * 0.1
fin_si
imprimir: descuento.
fin
3. Dado un monto calcular el descuento considerando que por encima de
100 el descuento es el 10% y por debajo de 100 el descuento es el
2%.
variables: monto,descuento
inicio
leer: monto
si: monto > 100 entonces
descuento <-- monto * 10 / 100
si_no
descuento <-- monto * 2 / 100
fin_si
imprimir: monto, descuento
fin
4. Dado un tiempo en segundos, calcular los segundos restantes que le
correspondan para convertirse exactamente en minutos.
variables: tiempo_seg,minutos,segundos
inicio
leer: tiempo_seg
si minutos <-- tiempo_seg div 60 entonces
segundos <-- tiempo_seg mod 60
fin_si
imprimir: minutos,segundos.
fin
5. Dado un tiempo en minutos, calcular los dias, horas y minutos que
le corresponden.
variables: tiempo,dias,horas,minutos
inicio
leer: tiempo
si: dias <-- tiempo div 1440
x <-- tiempo mod 1440
horas <-- x div 60
minutos <-- x mod 60
imprimir: dias,minutos,horas
fin_si
fin
6. Calcular mediante un algoritmo repetitivo la suma de los N primeros números naturales.
Inicio
Leer : N
X<--1
S<--0
Mientras x<=N hacer
S<--s+1
X<--x+1
Fin _ mientras
Imprimir: s
Fin
7. Modificar el ejercicio 1 para obtener la suma de los salarios de todos los trabajadores.
Inicio
Leer: N
X<--1
S<--0
Mientras x<=N hacer
Leer:h, t
S<--h*t
Imprimir s
S<--s+s
X<--x+1
Fin _ mientras
Imprimir: s
Fin
8. Dada las horas trabajadas de una persona la tarifa de pago.
Calcular su salario e imprimirla.
Inicio
leer: h, t
S<--h * t
Imprimir: s
fin
(Para dos personas)
inicio
leer: h, t
S<--h * t
Imprimir s
Leer: h, t
S<--h * t
Imprimir: s
Fin
9. Dado N notas de un estudiante calcular:
a) Cuantas notas tiene desaprobados.
b) Cuantos aprobados.
c) El promedio de notas.
d) El promedio de notas aprobadas y desaprobadas.
Inicio
Leer: N
X<--1
Cd<--0
NA <-0
acum_desap <-0
acum_ap <- 0
acum <- 0
Mientras x<=N hacer
Leer: not
Si: not < 10.5 entonces
CD<--cd+1
acum_desap <- acum_desap + not
Sino
NA <- NA + 1
acum_ap <- acum_ap + not
fin _ si
acum <- acum + not
x<--x+1
Fin _ mientras
prom_ap <- acum_ap /NA
prom_desap <- acum_desap/CD
prom <- acum / N
Imprimir: prom, prom_ap, prom_desap, NA, CD
Fin
10. Dado un numero determinar la suma de sus dígitos.
Inicio
Leer: n
S<--0
Mientras n<>0 hacer
R<--n mod 10
S<--s + r
N<--n div 10
Fin _ mientras
Imprimir: s
Fin
11.Se trata de escribir el algoritmo que permita emitir la factura
correspondiente a una compra de un articulo determinado, del que
se adquieren una o varias unidades. El IVA es del 15% y si el precio
bruto ( precio venta mas IVA) es mayor de 50.00 pesetas se debe
realizar un descuento del 5%.
Variables: precio, numeros de articulos(Nart), precio venta(Pv), descuento(d)
Inicio
Leer precio, Nart
Pv= Precio * Nart
IVA= Pv * 0.15
Pb= Pv + IVA
Si Pb >= 50 entonces
d= (Pb * 5)/100
Sino
d= 0
Finsi
Pl= Pb - d
Escribir Pv, IVA, Pb,d, Pl
Fin
12. Realizar un algoritmo que permita pedir
50 números naturales y determine e imprima cuantos son
pares, impares, positivos y negativos.
variables:par(p), impares(im), positivos(pos), negativos(n)
Inicio
p= 2
in= 0
pos.= 0
n= 0
Para x= 1 hasta 50
Leer n
Si n mod 2= 0 entonces
p= p + 1
Sino
in= in + 1
Finsi
Si n > 0 entonces
Pos= pos + 1
Sino
n= n + 1
Finsi
Fin_para
Escribir p, in, pos, n
Fin
13. Desarrollar un algoritmo para calcular e
imprimir el factorial de un número.
variables: factorial(f). numero(n)
Inicio
f= 1
Para x= 1 hasta n
f = f * x
Fin_para
Escribir f
Fin
14. Calcular la media de 100 números e imprimir su resultado.
variables: suma(s), media
Inicio
s= 0
x= 1
Mientras x<= 100 hacer
Leer n
s = s + n
x = x + 1
Finmientras
media = s /100
Escribir media
Fin
15. Calcular y visualizar la suma y el producto de los
números pares comprendidos entre 20 y 400 ambos inclusive.
variables: suma(s), producto(p)
Inicio
s = 0
p = 1
x = 20
Mientras x<= 400 hacer
s = s +1
p = p *x
x = x +1
Finmientras
Escribir s, p
Fin
16.-Hacer un programa que al ingresar un número
de Amstrong nos escriba si es o no es un número de
amstrong, y si no es que indique que vuelva a intentar.
Variables número, número original, digito
INICIO
LEER NÚMERO
Numeró original
Suma 0
Mientras NUMERO < > 0 hacer
dijito <- digito mod 10
Suma <- suma + dijito ^ 3
Numero <- numero mod 10
Si suma = Número _ original Entonces
Escribir "es un numero de amstrong"
Sino
Escribir "no es un numero de amstrong, intente otra vez"
Finsi
Fin
17.-Hacer un programa que registre el nº de créditos de un alumno.
*El número máximo de crédito es 25
*Imprimir número de crédito y total de crédito.
Variables crédito, numero_de_crédito
Inicio
total_de_crédito <- 0
Leer crédito
Si total_de_crédito + crédito < = 25 entonces
Total_de_crédito <- total_de_crédito + crédito
Numero_de_crédito <- número_de_cedito + 1
Fin si
Imprimir Numero_de_crédito, crédito
Fin
18.-Hacer un programa para escribir la primera vocal leída del teclado.
*Se supone que se leen, uno a uno, carácter desde el teclado
Variables vocal
Carácter J
Inicio
sw = 1
Mientras sw = 1 hacer
Leer J
si (J= "a") o (J = "e") o (J = "i") o (J = "o") o (J ="u")
Escribir "LA PRIMERA VOCAL INGRESADA FUE",J
sw <- 0
fin_si
Fin_mientras
Fin
19.-Hacer un programa que no determine un numero
tiene o no parte fraccionaria.
Variables parte_fracciomaria
Real n
Inicio
Escribir "ingresa numero"
Leer n
Si n = trunc(n) entonces // trunc es una funcion
// que elimina los decimales de un numero
Escribir "numero no tiene parte fraccionaria"
Sino
Escribir" numero con parte fraccionaria"
fin si
Fin ENLACE DE INTERES
http://www.eduteka.org/pdfdir/AlgoritmosProgramacion.pdf
Archivo pdf con la informacion completa de esta entrada.


