ALGORITMOS
Un algoritmo es como un conjunto de
pasos, procedimientos o acciones que
permiten alcanzar un resultado o resolver
un problema.
Llamamos «problema» a una situación
que se nos presenta y que, mediante la
aplicación de un algoritmo, pretendemos
resolver.
EJEMPLO: IMAGINA QUE ESTAS DANDO UN PASEO POR LA CIUDAD Y
QUE AL LLEGAR A UNA ESQUINA, TIENES QUE CRUZAR LA CALLE.
Esperar a que la luz del semáforo peatonal este en rojo(esperarSemaforo).
Cruzar la calle (cruzarCalle).
Acciones: esperarSemaforo y cruzarCalle
La acción esperaSemaforo implica:
• Observar la luz del semaforo(observarLuz).;
• Si la luz esta en «rojo» o en «verde intermitente» entonces
• esperar un momento (esperar);
• ir a observarLuz;
Por otro lado, la acción cruzarCalle implica:
• Bajar la calzada (bajarCalzada);
• Avanzar un paso (avanzarPaso);
• Si la distancia hacia la otra calzada es mayor que la distancia que podemos
avanzar dando un nuevo paso entonces
• Ir a: avanzaPaso;
• Subir la calzada de la vereda de enfrente(subirCalzada);
Cada acción puede descomponerse en acciones más puntuales y específicas,
Por lo tanto, cada una de las acciones del algoritmo se resuelve con su propio
algoritmo o secuencia finita y ordenada de acciones.
Cuando una acción se descompone en acciones más puntuales y específicas
decimos que es un «modulo».
Por ejemplo analicemos la acción (bajarCalzada): esta acción se resuelve;
• levantando un pie.
• adelantándolo,
• inclinando el cuerpo hacia adelante,
• y apoyando el pie en la calle,
• luego levantando el otro pie,
• adelantándolo y
• apoyándolo en la calle.
Claro que «levantar un pie» implica tensionar un conjunto de músculos, etc.
ETAPAS Q U E SE DEB E S E G U I R PARA LA
SOLUCIÓN DE UN PROBLEMA.
Metodología para la descomposición de un algoritmo
Definición del problema. En esta etapa se deben establecer
los resultados y objetivos que se desea para poder saber si
los datos que se tienen son suficientes para lograr los fines
propuestos.
Análisis. Una vez definido el problema se deberán organizar
los datos de tal manera que sean susceptibles de usar en los
cálculos siguientes.
Diseño. En esta etapa se proponen soluciones a los
problemas a resolver, por lo que se realiza una toma de
decisiones aplicando los conocimientos adquiridos y
utilizando los datos existentes.
Verificación o prueba de escritorio. Se consideran resultados
previstos para datos conocidos a fin de que al probar cada
una de sus partes podamos ir comprobando que el
algoritmo sirve o requiere modificarse.
LAS CARACTERÍSTICAS QUE LOS ALGORITMOS
DEBEN REUNIR SON LAS SIGUIENTES:
Precisión: Los pasos a seguir en el algoritmo deben ser
precisados claramente.
Determinismo: El algoritmo, dado un conjunto de datos
idénticos de entrada, siempre debe arrojar los mismos
resultados.
Finitud: El algoritmo, independientemente de la
complejidad del mismo, siempre debe ser de longitud
finita.
U N ALGORITMO CONSTA DE TRES SECCIONES O
MÓDULOS PRINCIPALES.
Representa la Representa
Representa la operación una operación
operación o conjunto de conjunto de
acción que operaciones operaciones
permite el secuenciales que permite
ingreso de cuyo objetivo comunicar al
los datos del es obtener la exterior el o
problema solución al los
problema resultados
alcanzados.
Leer las calificaciones de 5 alumnos, así como el nombre de cada uno de
ellos, cada alumno tiene asociadas 5 materias. Obtener el promedio de
cada uno de ellos desplegando nombre y promedio. Desplegar los
resultados siempre y cuando el promedio del alumno sea mayor de 7. Por
último mostrar el promedio grupal.
Datos de Entrada Datos Salidas
5 calificaciones Nombre de cada alumno
5 nombres de alumnos Promedio del cada alumno
5 materias por alumno Promedio grupal
Proceso
1. Sumar las 5 calificaciones y dividir entre 5 para obtener el promedio
por materia.
2. Sumar los promedios por materia y dividir entre 5 para obtener el
promedio del alumno.
3. Mostrar el nombre del alumno y su promedio.
4. Si el promedio del alumno es mayor a 7 entonces
5. Sumar el promedio de ese alumnos al promedio grupal.
6. Mostrar el promedio grupal
7. sino no muestra nada.
Un algoritmo puede ser expresado mediante.
Lenguaje natural es una descripción ya sea narrada o
escrita, por ejemplo, una receta de cocina que nos pueden
proporcionar, esta puede ser platicada o escrita, quizá de un
recetario.
Pseudocódigo es una descripción de un algoritmo que
emplea una mezcla de lenguaje natural con algunas convenciones
sintácticas propias de lenguajes de programación, como
asignaciones, ciclos y condicionales. El pseudocódigo facilita el
entendimiento de un algoritmo y puede omitir detalles de
implementación.
Diagramas de flujo. es una representación tanto gráfica
como lingüística de un algoritmo.
Lenguajes de programación. es un lenguaje diseñado
para expresar un algoritmo de modo que sea entendido y ejecutado
por una computadora .
EJEMPLO: CONSTRUYA UN ALGORITMO PARA PREPARAR “PECHUGAS DE
POLLO EN SALSA DE ELOTE Y CHILE POBLANO”.
Ingredientes (para 6 personas):
3 pechugas deshuesadas, sin piel y partidas a la mitad.
1 diente de ajo.
4 gramos de pimienta negra,
sal.
6 cucharadas de aceite.
5 chiles poblanos asados y limpios.
½ taza de leche.
¼ taza de crema ligera.
1 lata de crema de elote.
Algoritmo (Preparación):
1. Muela el ajo, la pimienta y un poco de sal y únteselo a las pechugas.
2. Caliente el aceite y dore las pechugas.
3. Licué los chiles con la leche y la crema, y mézclelos con la crema de elote.
4 . En una fuente coloque las pechugas y báñelas con la mezcla anterior.
5. Cubra el platón con papel aluminio y hornee a 200°C, durante 15
minutos.
IDENTIFICADORES
Un identificador es el nombre que se le asigna a
los datos de un programa (constantes,
variables, tipos de datos), y que permiten el
acceso a su contenido.
Ejemplo:
Calif1
Valor_1
Num_hrs
TIPOS DE DATOS
Es el valor que puede tomar una constante o variable .
Por ejemplo, para representar los datos de un alumno
como: Nombre, Num_cta, calf1, calf2, etc.
Los tipos de datos más utilizados son:
a) Numéricos: Representan un valor entero y real.
Ejemplo:
Entero: 250, -5 Real: 3.1416, -27.5
TIPOS DE DATOS
Los datos que procesa una computadora se
clasifican en:
➢ Simple, la principal característica de los datos
simples es que solo ocupan una casilla de
memoria
➢ Estructurados, se caracterizan por el hecho de
que con un nombre(identificador de variable
estructurada) se hace referencia a un grupo de
casillas de memoria.
Datos simples
Una variable simple hace referencia a un único
valor a la vez.
Dentro de este grupo de datos se encuentran:
enteros, reales, caracteres. booleanos,
enumerados y subrangos (los dos últimos no
existen en algunos lenguajes de programación).
identificador
Datos estructurados
Un dato estructurado tiene varios componentes. Cada
uno de los componentes puede ser a su vez un dato
simple o estructurado. Sin embargo, los componentes
básicos (los del nivel más bajo) de cualquier tipo
estructurado son datos simples. Dentro de este grupo de
datos se encuentran: arreglos, cadena de caracteres,
registros y conjuntos.
identificador
Datos alfanuméricos:
Tipocarácter (simple) y cadena.
De caracteres (estructurado).
Son datos cuyo contenido pueden ser letras del
abecedario (a,b,c,...,z), dígitos (0, 1, 2 ..... 9) o
símbolos especiales (#, $, * ,* , %, /, !, +, -,..., etc.)
Datos lógicos:
Dentro de este tipo de datos
encontramos los booleanos. Son
datos que sólo pueden tomar dos
valores: verdadero (true) o falso
(false).
Un dato estructurado tiene varios
componentes. Los arreglos, cadena
de caracteres y registros.
CONSTANTES
Son datos que no cambian durante la ejecución
de un programa.
Para dar nombre a las contantes se utiliza
identificadores.
Las constantes se definen antes de comenzar el
programa principal.
Ejemplos:
prom=(calf1+calf2+calf3)/3
PI=3.1416
Las constantes son: 3, PI.
VARIABLES
Permite almacenar de forma temporal un valor y el
cual puede cambiar durante la ejecución del
algoritmo ó programa.
Toda variable tiene un nombre que sirve para
identificarla.
Ejemplo:
prom=(calf1+calf2+calf3)/3
Las variables son: prom, calf1, calf2, calf3.
Operadores y Expresiones
Expresiones: Es un conjunto de constantes, variables,
operadores con lo que se realizan las operaciones y
permite obtener un resultado.
Ejemplo: resultado ← a*(2*b+5)/c
Operadores: Es un símbolo que permite manipular
los valores de variables y/o constantes.
Operador de asignación
1) = ó ←
Sirve para recuperar o guardar los valores obtenidos
al realizarse o ejecutarse una expresión.
Operadores Aritméticos
Operadores de relacionales o comparación.
▪ Son empleados para comparar dos ó más valores
▪ Su resultado produce valores como verdadero y falso.
▪ Tienen el mismo nivel de prioridad.
Operadores Lógicos o boolenos
•Son empleados para comparar dos valores (Falso y verdadero )
•Su resultado produce valores como verdadero y falso.
•Los tres tienen el mismo nivel de prioridad.
J e r a r q u í a de los Operadores
Las expresiones de evalúan de izquierda a derecha pero
los operadores se aplican según su prioridad.
Diseño de algoritmos
Alternativas de solución.
Es la forma de representar la secuencia lógica
de ejecución de instrucciones.
Esta puede ser a través de:
1) Diagramas de flujo
2) Pseudocódigo
DIAGRAMAS DE FLUJO
Esempleado para representar la solución de
un algoritmo empleando figuras geométricas,
donde cada una de ellas representa en
particular una tarea especifica que realizar.
Muestra los pasos o procesos a seguir para
alcanzar la solución de un problema.
Su correcta construcción es sumamente
importante porque a partir del mismo se
escribe un programa en algún lenguaje de
programación.
ETAPAS EN LACONSTRUCCIÓN DE UN
DIAGRAMA DE F L U J O
INICIO
LECTURA Estas fases se presentan en la
D E DATO S
mayoría de los diagramas de flujo,
aunque a veces en orden diferente
P R O C E S A M I E N TO o repitiendo alguna(s) de ellas.
D E DATO S También es frecuente que tener
que realizar toma de decisiones y
IMPRESIÓN repetir una serie de pasos un
DE numero determinado o no de
R E S U LTA D O S
veces.
FIN
REGLAS QUE PERMITEN LA CONSTRUCCIÓN
DE DIAGRAMAS DE FLUJO.
1. Todo diagrama de 2. Las líneas utilizadas para indicar
flujo debe tener un la dirección del flujo del diagrama
inicio y un fin. deben ser rectas, verticales y
horizontales.
3. Todas las líneas utilizadas para indicar la dirección del flujo del
diagrama deben estar conectadas. La conexión puede ser a un
símbolo que exprese lectura, proceso, decisión, impresión,
conexión o fin de diagrama.
4. El diagrama de flujo debe ser construido de arriba hacia
abajo (top-down) y de izquierda a derecha (right to left).
5. La notación utilizada en el diagrama de flujo debe ser
independiente del lenguaje de programación. La solución
presentada en el diagrama puede escribirse posteriormente y
fácilmente en diferentes lenguajes de programación.
6.Es conveniente cuando realizamos una tarea compleja poner
comentarios que expresen o ayuden a entender lo que hicimos.
7.Si el diagrama de flujo requiriera más de una hoja para su
construcción, debemos utilizar los conectores adecuados y enumerar
las páginas convenientemente.
8. No puede llegar más de una línea a un símbolo
Pseudocódigo
Es empleado para representar la solución de un
algoritmo empleando lenguaje natural escrito
estableciendo la secuencia de pasos sin
imprecisiones y de manera clara.
Ejemplo:
Proceso
Leer lista_de_variables;
variable<-expresion;
Escribir lista_de_expresiones;
FinProceso
EJERCICIOS:
Elabora en tu cuaderno:
1.- Construye algoritmo y diagrama de flujo e identifica
los datos de entrada, proceso y salida de lo siguiente: Al
recibir como datos la clave del empleado y los seis
primeros sueldos del año, calcule el ingreso total
semestral y el promedio mensual e imprima la clave del
empleado, el ingreso total y el promedio mensual.
2.- Construye algoritmo y diagrama de flujo e identifica los
datos de entrada, proceso y salida de los siguiente: Dados
los datos enteros A y B, escriba el resultado de la
siguiente expresión.
(𝐴 + 𝐵)2
3
3.- Dado la matrícula y 5 calificaciones de un alumno
obtenidas a los largo del semestre, construya un
algoritmo que imprima la matrícula del alumno y
promedio de sus calificaciones.
4.- Escribe un algoritmo que permita calcular e imprimir el
cuadrado y el cubo de un número entero positivo.
5.- Construya un algoritmo tal que dado el costo de un
articulo vendido y la cantidad de dinero entregada por el
cliente, calcule e imprima el cambio que se debe entregar
al mismo.