Está en la página 1de 32

INTRODUCCIÓN EN PROGRAMACIÓN:

ALGORITMOS

Programación en C++
Carlos Fernando Arenas
2018
Agenda
• Ejercicio preliminar
• Conceptos básicos de algoritmos
Ejercicio preliminar
Pasos para preparar unos huevos revueltos con
cebolla y tomate para 2 personas
• Ingredientes: • Utensilios:
– Cuatro huevos – Estufa eléctrica
– 100 ml Aceite de (funcionando)
cocina – Una cacerola grande
– 100 grms de Cebolla – Un plato hondo
– 100 grms de tomate – Dos platos pequeños
– Sal
Tiempo límite: 15 minutos
Pasos para preparar unos huevos revueltos con
cebolla y tomate para 2 personas
1. Aplicar aceite de cocina al sartén (debe estar limpio)
2. Encender estufa (entre 60°C y 260°C)
3. Colocar el sartén sobre la estufa
4. Picar finamente la cebolla
5. Picar finamente el tomate
6. Cuando el aceite esté lo suficientemente caliente aplicar cebolla y tomate en el sartén
7. Colocar el contenido de los 4 huevos en el plato hondo
8. Batir los 4 huevos hasta que alcancen su punto
9. Verter los huevos batidos en la sartén cuando la cebolla y tomate estén fritos al gusto
10. Cocinar los huevos hasta que se obtenga la consistencia deseada
11. Servir proporcionalmente en los dos platos pequeños
Pasos para preparar unos huevos revueltos con
cebolla y tomate para 2 personas
COCINERO(A)

ENTRADAS
SALIDAS
4 huevos
Huevos revueltos para
100 ml aceite cocina
2 personas
100 grms de Cebolla
100 grms de tomate PROCESO
Sal Preparación huevos
revueltos para 2
personas
Conceptos básicos de algoritmos
Funcionamiento general de una computadora

SALIDAS
ENTRADAS PROGRAMAS Datos
Datos (SERIE DE Archivos
USUARIO Elementos INSTRUCCIONES) Periféricos
Condiciones Entrada/Salida

HARDWARE
(COMPUTADOR)
Organización física de una computadora

Tomado de: Fundamentos de programación. Luis Joyanes


Representación de la información en las
• Representación de textos
computadoras
– Caracteres alfabéticos
– Caracteres numéricos
– Caracteres especiales
– Caracteres geométricos
– Caracteres de control
• Representación de valores numéricos
– Enteros
– Reales
• Representación de imágenes
– Mapas de bits (JPEG, BMP, GIF, etc)
– Mapas de vectores (Autocad, Adobe)
• Representación de sonidos (MP3, MP4, WAV, MIDI, etc )
Concepto de algoritmo Diseño del
algoritmo

• “Un algoritmo es un método para resolver un problema


determinado” Mohanned Al-Khowarizmi – Matemático Siglo IX
Expresar el algoritmo
• Al-Khowarizmi manifestó que la resolución de un problema exige el en términos comunes
diseño de un algoritmo que resuelva el problema concreto. Para
esto se deben desarrollar los siguientes pasos
– El diseño del algoritmo describe la secuencia ordenada de pasos Evaluar y validar la
que conducen a la solución de un problema dado solución del problema
– Expresar el algoritmo en terminología común que pueda
desarrollar cualquier persona
– Ejecutar y validar los pasos del algoritmo para identificar la Resolución del
resolución del problema problema
Características de los algoritmos

• Un algoritmo debe ser preciso e indicar el orden de


realización de cada paso.
• Un algoritmo debe estar definido. Si se sigue un algoritmo
dos veces, se debe obtener el mismo resultado cada vez.
• Un algoritmo debe ser finito. Si se sigue un algoritmo, se
debe terminar en algún momento; o sea, debe tener un
número finito de pasos.
Pasos para la resolución de un problema en
informática

Validación del Programación del


algoritmo algoritmo
Análisis del problema

• Definir el problema con total precisión


• Especificar los datos de partida requeridos
par la resolución del mismo
(Especificaciones de entrada)
• Especificar la información que debe
proporcionarse al resolverse
(Especificaciones de salida)
Ejemplo Análisis del problema
• Problema: Obtener el área y longitud de una
circunferencia
• Pasos del análisis
1. Utilizar las fórmulas de área y circunferencia
en función del radio
2. Las especificaciones de entradas corresponden
al radio del círculo.
3. Las especificaciones de salidas serían el área y
la circunferencia
Diseño del algoritmo

• Diseñar un algoritmo puede ser complejo


inicialmente ya que requiere una dosis de
experiencia y creatividad.
• Para diseñar algoritmos hay que tener
presente los siguientes requisitos:
– Indicar el orden de realización de cada paso a
realizar.
– Estar definido sin ambigüedad
– Ser finito
Validación de un algoritmo
• Un algoritmo es correcto si el resultado que produce
siempre resuelve un determinado problema a partir de
una entrada válida
• Demostrar en forma rigurosa o intuitiva que un algoritmo
es correcto es el primer paso indispensable en el diseño
del algoritmo
• Los algoritmos que no son correctos a veces pueden ser
útiles si por ejemplo producen una respuesta aproximada
a un problema difícil en forma eficiente
Estructura de un algoritmo
• Inicio: Determina la instrucción inicial de un algoritmo
• Fin: Determina el fin del algoritmo 1. Inicio.
• Establecer: Permite definir variables. Adicionalmente puede 2. Establecer A a 0.
asignarle un valor. 3. Establecer B.
• Leer: Permite obtener un valor del usuario y asignarlo a la variable 4. Leer A.
• Imprimir: Permite mostrar en pantalla una serie de caracteres. 5. Si (Condición_Booleana) entonces
• Si (Condicion_Booleana): Evalua la condición y si esta es verdadera 6. …
se realizan las instrucciones siguientes. 7. Imprimir …
• Si no: En caso que la condición del Si sea falsa se ejecutan las 8. Si no …
instrucciones siguientes. 9. …
• Fin_Si: Determina el fin del bloque de instrucciones del si 10. Bifurcar al paso X
• Bifurcar: Retorna a una de las sentencias del algoritmo 11. Fin_Si
• Operadores aritméticos (+, - * / ): Se utilizan para realizar las 12. Fin.
operaciones aritméticas a desarrollar en el algoritmo
Ejemplos de algoritmos
Ejemplo N° 1
Calcular la suma
entre dos números
y mostrar el
resultado.
Redactar el
algoritmo
correspondiente.
Ejemplos de algoritmos
Ejemplo N° 1 1. Inicio.
Calcular la suma 2. Establecer A a 0.
3. Establecer B a 0.
entre dos números
4. Establecer SUMA a 0.
y mostrar el 5. Leer A.
resultado. 6. Leer B.
Redactar el 7. SUMA = A+B
algoritmo 8. Imprimir “La suma de: ”A” y”B”es: “SUMA
9. Fin.
correspondiente.
Ejemplos de algoritmos
Ejemplo N° 2
Realizar la suma de
todos los números
pares entre 2 y 1.000.
Redactar el algoritmo
correspondiente.
Ejemplos de algoritmos
1. Inicio.
Ejemplo N° 2 2. establecer SUMA a 0.
Realizar la suma de 3. establecer NUMERO a 2.
todos los números 4. Sumar NUMERO a SUMA. El resultado será el nuevo valor de la
suma (SUMA).
pares entre 2 y 1.000.
5. Incrementar NUMERO en 2 unidades.
Redactar el algoritmo 6. Si NUMERO =< 1.000 bifurcar al paso 4;
correspondiente. 7. en caso contrario, escribir el último valor de SUMA y terminar el
proceso.
8. Fin.
Ejemplos de algoritmos
Ejemplo N° 2
Calcular el sueldo de
un empleado dados
como datos de
entrada: el nombre,
horas de trabajo y el
pago en horas.
Redactar el algoritmo
correspondiente.
Ejemplos de algoritmos
Ejemplo N° 2
1. Inicio.
Calcular el sueldo de 2. Establecer SUELDO a 0.
un empleado dados 3. Establecer NOMBRE.
como datos de 4. Establecer HORASTRABAJO a 0
entrada: el nombre, 5. Establecer PAGOHRS a 0.
horas de trabajo y el 6. Leer NOMBRE, PAGOHRS, HORASTRABAJO.
pago en horas. 7. SUELDO=(HORASTRABAJO * PAGOHRS)
8. Imprimir “El sueldo del empleado ”NOMBRE” es”SUELDO
Redactar el algoritmo
9. Fin.
correspondiente.
Ejemplos de algoritmos
Ejemplo N° 3
Leer 3 números y
decidir cual tiene el
menor y el mayor valor.
Redactar el algoritmo
correspondiente.
Ejemplos de algoritmos
1. Inicio.
2. establecer X a 0.
3. establecer Y a 0.
4. establecer Z a 0.
Ejemplo N° 3 5. Leer X, Y y Z.
6. Si (X<Y) y (Y<Z) entonces Imprimir “El menor es: ”X” y el mayor es ”Z
Leer 3 números y decidir 7. Fin_si
cual tiene el menor y el 8. Si no Si (X<Z) y (Z<Y) entonces Imprimir “El menor es: ”X” y el mayor es ”Y
mayor valor. 9. Fin_si
10. Si no Si (Y<X) y (X<Z) entonces Imprimir “El menor es: ”Y” y el mayor es ”Z
Redactar el algoritmo 11. Fin_si
correspondiente. 12. Si no Si (Y<Z) y (Z<X) entonces Imprimir “El menor es: ”Y” y el mayor es ”X
13. Fin_si
14. Si no Si (Z<X) y (X<Y) entonces Imprimir “El menor es: ”Z” y el mayor es ”Y
15. Fin_si
16. Si no Si (Z<Y) y (Y<X) entonces Imprimir “El menor es: ”Z” y el mayor es ”X
17. Fin_si
18. Fin.
Ejemplos de algoritmos
Ejemplo N° 3
Un cliente ejecuta un pedido a una fábrica. La fábrica
examina en su banco de datos la información del
cliente; si el cliente es solvente entonces la empresa
acepta el pedido; en caso contrario, rechazará el
pedido.
Redactar el algoritmo correspondiente.
Ejemplos de algoritmos
Ejemplo N° 3 1. Inicio.
Un cliente ejecuta un pedido a una fábrica. 2. Leer el pedido
La fábrica examina en su banco de datos la 3. Examinar la ficha del cliente
ficha del cliente; si el cliente es solvente 4. Si (cliente = solvente) entonces
entonces la empresa imprime que acepta el 5. Imprimir “El pedido ha sido aceptado”
pedido; en caso contrario, imprime que 6. Si no
rechazará el pedido. 7. Imprimir “El pedido ha sido rechazado”
Redactar el algoritmo correspondiente. 8. Fin_Si
9. Fin.
Taller en Clase
Desarrolle en grupos de 3 personas los algoritmos a los siguientes problemas a
resolver:

Problema N° 1: Dada la calificación de un alumno imprimir aprobado siempre y


cuando tenga una calificación superior a 3,5 y además tenga al menos un porcentaje
de asistencia mayor a 80
Problema N° 2: Leer un número de 1 a 10 e imprimir su equivalente en números
romanos
Problema N° 3: Realice el algoritmo para desarrollar cualquier problema relacionado
con Velocidad-Tiempo-Distancia
Referencias bibliográficas
• [1] Curso Introducción a la programación en C++. Recuperado de: https://programacionfusa.wordpress.com/contenido/2-2-funcion-main/
• [2] Benjumea, Vicente (2017). Fundamentos de programación con lenguaje C++. Universidad de Malaga.
• [3] Joyanes Aguilar, L. (2008). Fundamentos de programación en C++: Algoritmos, estructura de datos y objetos. (4a. ed.). McGrawHill.
Madrid
• [4] Villalobos, Ricardo (2017). Fundamentos de programación en C++. Más de 100 algortimos codificados. Editorial Macro
• [5] Deitel, Harvey (2014). Cómo programar en C++. (9a.ed.). Editorial Pearson
• [6]Sanchez García, Lucas (2006). Programación en C++. Un enfoque práctico. Serie Schaum. McGrawHill. Madrid
• [7] Zahonero, Ignacio (2007). Estructura de datos en C++. McGrawHill. Madrid
Taller en Clase - Respuestas
Desarrolle en grupos de 3 personas los 1. Inicio.
algoritmos a los siguientes problemas a 2. establecer ASISTENCIA, CALIFICACION a 0.
3. Leer ASISTENCIA y CALIFICACION.
resolver:
4. Si (ASISTENCIA >= 80) entonces
5. Si (CALIFICACION >= 3,5) entonces
Problema N° 2 6. Imprimir “Aprobado”
7. Si no
8. Imprimir “No Aprobado”
Dada la calificación de un alumno
9. Fin_Si
imprimir aprobado siempre y cuando
10. Si no
tenga una calificación superior a 3,5 y
11. Imprimir “No Aprobado”
además tenga al menos un porcentaje 12. Fin_Si
de asistencia mayor a 80 13. Fin.
Taller en Clase - Respuestas
Desarrolle en grupos de 3 personas los 1. Inicio.
algoritmos a los siguientes problemas a 2. establecer ASISTENCIA, CALIFICACION a 0.
resolver: 3. Leer ASISTENCIA y CALIFICACION.
4. Si (ASISTENCIA >= 80) entonces
5. Si (CALIFICACION >= 3,5) entonces
Problema N° 2
6. Imprimir “Aprobado”
7. De lo contrario
Leer 3 números y decir cual de ellos 8. Imprimir “No Aprobado”
tiene el valor intermedio 9. De lo contrario
10. Imprimir “No Aprobado”
11. Fin.

También podría gustarte