Lógica y Algoritmos en Programación
Lógica y Algoritmos en Programación
En este modulo se utilizará la lógica en el área de la programación. Comenzaremos con una de las
4 herramientas de análisis estructurado: Los Diagramas de Flujo
1.2 Definición de Problema
• Un problema es un conjunto de hechos, situaciones o circunstancias que nos dificultan
la consecución de algún fin. Para encontrar la solución de un problema deben seguirse
una serie de pasos o procedimientos que nos permitan lograr la consecución de ese fin.
• El concepto problema tiene un entorno muy amplio, por eso en éste módulo
entenderemos problema como una situación matemática o lógica sobre la cual queremos
encontrar alguna solución del mismo tipo
Para resolver un problema debemos tomar en cuenta algunas etapas que para este módulo
se manejarán de la siguiente manera.
• Comprobación
• Verificar por diferentes medios o métodos si la solución propuesta en las etapas 2 y 3
Etapa 4 son correctas.
1.3 Características de los Algoritmos
• Las Características fundamentales que debe cumplir todo algoritmo son:
suma
FIN
1.4.1. Reglas para la construcción de los Diagramas de Flujo
1. Todo diagrama de flujo debe contener un inicio y un fin
Inicio
:
:
Fin
2. Las líneas utilizadas para indicar la dirección del flujo del diagrama
deben ser rectas verticales u horizontales y no deben cruzarse
entre ellas.
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 programa
: : :
: : :
Fin c= a + b c
Inicio
Inicio Fin
:
:
:
:
Fin
5. La notación debe ser de manera independiente del lenguaje de programación.
6. Al ser compleja una tarea, se solicita poner anotaciones para ayudar a entender lo que se
realizo.
1
Fases de resolución de un problema
1. Análisis del problema
2. Diseño del algoritmo
3. Codificación
4. Compilación y ejecución
5. Verificación
6. Depuración
7. Mantenimiento
8. Documentación
ARREGLOS
Un arreglo se define como un tipo de datos que almacena una secuencia de datos del
mismo tipo.
• Finito: todo arreglo tiene un límite; es decir, debe determinarse cual será el número
máximo de elementos que podrán formar parte del arreglo.
• Homogénea: todos los elementos de un arreglo son del mismo tipo (todos enteros,
todos booleanos, etcétera, pero nunca una combinación de distintos tipos).
• Ordenada: se puede determinar cuál es el primer elemento, el segundo, el tercero, …
y el enésimo elemento.
ARREGLOS
Si un arreglo tiene la característica de que puede almacenar a N elementos del mismo tipo,
deberá tener la facilidad de permitir el acceso a cada uno de ellos. Así, se distinguen dos
partes en los arreglos:
• Los índices: especifican cuántos elementos tendrá el arreglo; permiten hacer referencia a
los elementos del arreglo en forma individual.
• Los elementos: dato simple que está contenido en el índice.
ARREGLOS
MULTIDIMENSIONALES
Los arreglos presentados hasta el momento son arreglos unidimensionales o lineales,
debido a que cualquier elemento es reverenciado por un único índice. El número de
dimensiones (índices) permitidos depende del lenguaje elegido.
FILAS
1.5 Tipos de datos
Se clasifican en
• Simples: Ocupan solamente una casilla de memoria.
Dentro de ellos están los: entero, reales y caracteres.
• Estructurados: Se caracterizan por el hecho de que con un nombre, hace referencia
a un grupo de casillas de memoria.
Dentro de ellos se encuentran: arreglos, cadena de caracteres y registros.
1.5.1. Identificadores
Los datos que procesa una computadora, se deben almacenar en casillas o celdas
de memoria para utilizarlos posteriormente. A estas casillas o celdas se les asigna
un nombre que es el identificador, el cual se forma por medio de letras, dígitos y el
carácter subrayado. Siempre se debe comenzar con una letra.
1.5.2 Constantes
Las constantes son datos que no cambian durante la ejecución del programa. Para nombrar
las constantes utilizamos identificadores. Existen tipos de constantes de todos los tipos de
datos, por ejemplo, tipo entero, real, carácter, cadena de caracteres, etc. Las constantes se
deben definir antes de comenzar el programa.
1.5.3 Variables.
Son objetos que se puede modificar su valor durante la ejecución del programa. Suelen utilizarse
identificadores, de igual modo existen las variables de los tipos de datos.
Al declarar variables, reciben valor a través del bloque de asignación; que es una operación
destructiva.
Ósea que si la variable tenía un valor, éste se destruye al asignar el nuevo valor. Es el siguiente
formato:
1.5.4 – Operadores aritméticos.
Permiten realizar operaciones: números, constantes o variables. El
resultado siempre es un número. Dado que C distingue entre los
tipos de operandos (int y float) que se utilizan en una operación
aritmética
2.2 Variables y Constantes
• Una variable es un símbolo o palabra cuyo valor es universal e indefinido. En otras palabras,
una variable es un componente del DF cuyo valor se desconoce y regularmente es el usuario
quien le otorga un valor que puede ser de distintos tipos como caracteres, cadenas de
caracteres y números o bien un valor que se obtiene a través de alguna fórmula o proceso en
particular.
• Por ejemplo:
• Identifique las variables que van a intervenir en un programa cuyo objetivo es obtener el área de
un rectángulo.
Pi Pi 3.1416
Número e e 2.718
2.3 Operadores
• Un diagrama de flujo la mayoría de las veces trabaja con fórmulas y estás a su vez trabajan
con diferentes operadores.
Operador Símbolo
Suma +
• Operadores Matemáticos
Resta -
Multiplicación *
División /
Potencia ^
Operador Símbolo
• Operadores Racionales Mayor que >
Menor que <
Igual que =
Diferente de <>
2.4 Jerarquización de Operaciones.
1. Primero van a realizarse todas las operaciones que estén agrupadas entre
paréntesis ( ), sin embargo si llegasen a existir corchetes [ ], estos se realizarán
primero y luego los paréntesis.
2. Luego habrán de realizarse todas las multiplicaciones (*) y divisiones (/), sin
embargo, si dentro de la fórmula se incluye alguna potencia (^) o raíz ( ) estas
se realizarán primero.
suma
FIN
Actividades de aprendizaje
1-. Definir el proyecto a realizar durante el semestre. El catedrático orienta al grupo sobre los
proyectos a realizar. El producto final a entregar del proyecto será desarrollar el diagrama de flujo y
pseudocódigo de un sistema, por ejemplo un sistema de ventas, con sus opciones básicas (agregar
productos, nota de venta, factura).
2-. Realizar un cuadro sinóptico sobre el concepto de algoritmos, considerar cinco autores. Identificar
las similitudes y diferencias entre las definiciones. Mínimo 1 cuartilla. La entrega de la actividad será
en forma impresa. Especificar bibliografía consultada. Considerar la limpieza y ortografía.
3-. Realizar un cuadro sinóptico en donde se defina el concepto de lenguaje y sus aplicaciones.
Mínimo una cuartilla. La entrega de la actividad será impresa. Especificar bibliografía consultada.
Considerar la limpieza y ortografía.
Actividades de aprendizaje
2-. Resolver el siguiente ejercicio: se desea calcular el promedio de un estudiante que tiene 5
materias. Emplear la metodología para la definición y solución de problemas. Señalar los datos de
entrada, el proceso y los datos de salida.
3-. Resolver el siguiente ejercicio: se desea calcular el promedio general de un grupo que tiene un
total de diez estudiantes los cuales tiene 4 materias. Emplear la metodología para la definición y
solución de problemas. Señalar los datos de entrada, el proceso y los datos de salida. La entrega será
impresa. Considerar limpieza y ortografía.
4-. Resolver el siguiente ejercicio: se desea calcular el promedio de dos estudiantes cada uno tiene 10
materias. Emplear la metodología para la definición y solución de problemas. Señalar los datos de
entrada, el proceso y los datos de salida.
5-. Resolver el siguiente ejercicio: se desea calcular el promedio general de un grupo que tiene un
total de quince estudiantes los cuales tienen 7 materias. Emplear la metodología para la definición y
solución de problemas. Señalar los datos de entrada, el proceso y los datos de salida. La entrega será
impresa. Considerar la limpieza y ortografía.
3.1 Ejercicios
1. Construir el DF y pseudocódigo que calcule el área de un triángulo e imprima dicha área. Con
su respectivo algoritmo.
2. Construir el DF y pseudocódigo de un programa que encuentra el promedio de tres números e
imprima el resultado. Con su respectivo algoritmo.
3. Ayude a Juan a construir un DF y pseudocódigo que lo ayude a encontrar el total del dinero que
tienen él y su hermana para así completar el enganche de un auto nuevo. Considere que Juan
ahorro todos sus pagos correspondientes a su sueldo del mes de enero, febrero y marzo y
María, su hermana, los de octubre, noviembre y diciembre.
4. Considerando el valor de Pi como una constante, muestre el Área de un Circulo, solicitando el
radio, con su respectivo DF y pseudocódigo.
5. Un empleado de recursos humanos desea realizar un sistema que le permita calcular el sueldo
de los trabajadores de su cargo. Para eso él debe capturar el nombre del empleado, su puesto y
finalmente obtener su sueldo e imprimir un recibo con los datos antes mencionado. Diseñe un
DF y pseudocódigo considerando que el sueldo de los trabajadores se calcula por días
trabajados y el costo del día trabajado es de 80 pesos. Con su respectivo algoritmo.
6. Un meteorólogo tiene como objetivo capturar todas las temperaturas obtenidas al final del día,
para así obtener la temperatura promedio durante toda la semana, al final él debe representarle
a su jefe la temperatura promedio en grados Fahrenheit y en grados Kelvin. Si la temperatura
obtenida por el meteorólogo está en grados Centígrados, diseñe un DF y pseudocódigo que
obtenga la temperatura promedio y luego la convierta en grados Fahrenheit y en grados Kelvin.
Con su respectivo algoritmo.
7. Diseñe un DF y pseudocódigo que al recibir como entrada su nombre imprima el mensaje Hola,
“su nombre”, luego solicite que se ingresen dos valores, súmelos y obtenga el resultado.
Finalmente imprima su nombre y el resultado de la suma. Con su respectivo algoritmo.
8. Diseñe un DF y pseudocódigo que calcule el área de un trapecio, considerando que la fórmula
es: A=((B+b)*H)/2 e imprima el resultado en pantalla. Con su respectivo algoritmo.
9. Elabore un DF que calcule el discriminante de una ecuación de la forma A𝑥 2 +Bx+ C usando la
fórmula D=(𝐵2 − 4𝐴𝐶). Con su respectivo algoritmo.
10. Ayude a un profesor de matemáticas a diseñar el DF y pseudocódigo de un programa que le
ayude a encontrar el área de un triángulo rectángulo al darle como dato de entradas la
hipotenusa (h) y el cateto opuesto (co), si la fórmula original es ℎ = 𝑐𝑜2 + 𝑐𝑎2 . Con su
respectivo algoritmo
11. Diseñe el DF y pseudocódigo de un programa que al recibir como datos de entrada dos
números, imprima la suma, la resta, la multiplicación, la división de estos números, al final
imprima los resultados de las 4 operaciones y la suma total de todos los resultados
obtenidos en una sola variable. Con su respectivo algoritmo.
12. Diseñe el DF y pseudocódigo de un programa que al recibir como entrada una medida en
litros los convierta a mililitros (entre 1000), centilitros (entre 100) y decilitros (entre 10).
Con su respectivo algoritmo.
13. Diseñe el DF y pseudocódigo de un programa que al recibir como entrada una medida en
kilogramos los convierta a gramos y libras. Con su respectivo algoritmo.
4.- Estructuras Selectivas
• Una estructura selectiva se representa cuando el programa se
encuentra con un proceso de toma de una decisión en base a
alguna condición establecida.
Condición
4.1 Estructura Selectiva Simple.
Esta se representa cuando se establece una condición y en
base a ésta el programa toma una decisión basada en el criterio …
de verdadero y falso. Regularmente al tomarse como verdadera
la decisión del programa se sigue otro procedimiento o rutina y
cuando se toma una decisión como falsa el programa de
inmediato se brinca al fin del programa.
FIN
INICIO
Ejemplo:
prom=0
Construir el DF que al recibir como entrada
el promedio de un alumno, indique si
aprobó (considere que la calificación de Ingrese su promedio
pase es un 70), sino aprobó termine el
programa.
prom
prom>=70
APROBADO
FIN
4.2 Estructura Selectiva Doble
• Esta se representa cuando se establece una condición y en base a ésta el
programa toma una decisión basada en el criterio de verdadero o falso.
Regularmente al tomarse como verdadera la decisión del programa se sigue otro
procedimiento o rutina y cuando se toma una decisión como falso se sigue otro
procedimiento o rutina distinta, luego ambos llegan al final del programa.
Condición
… …
INICIO
Ejemplo
Realice un DF de un programa que nivel=0
lee el nivel de un tanque de
gasolina que al momento de llegar
a ser mayor o igual a 20 litros
¿qué nivel tiene el tanque?
indique en la pantalla
ADVERTENCIA TANQUE AL
CUARTO DE CAPACIDAD, si no
indique MUY VACIO y después nivel
termine
nivel>=20
Condición
Condición
… …
…
INICIO
Ejemplo NUM
Realice un DF que, al recibir como
dato un número entero, determine e
imprima si el mismo es par, impar o NUM = 0
nulo.
“Par” “Impar”
4.3 Estructura Selectiva Múltiple
Esta se representa cuando se establece una condición y en base a ésta el
programa toma una decisión basada en el criterio de seguir varias rutinas o
procedimiento dependiendo de la decisión tomada, es decir, el programa luego
de la condición puede seguir múltiples caminos dependiendo su resultado.
Condición
… … … …
fin
INICIO
Ejemplo
a=0,
Diseñe un DF que pida 2 números y
muestra un menú donde indique qué
se quiere hacer con estos, si ¿qué nivel tiene el tanque?
sumarlos, restarlos o multiplicarlos, y
que el usuario elija la opción que nivel
desee.
Que operación desea realizar.
1.- Suma
2.- Resta
3.- Multiplicación
op
op
FIN
4.4 Ejercicios
1.- Diseñe el DF y pseudocódigo de un programa que al recibir tres valores los sume, si la suma de los
tres números es mayor a 100 entonces réstele 20, sino termine el programa.
2.- Un instructor desea conocer el promedio de sus alumnos y conocer si éstos aprobaron o reprobaron,
si la calificación de pase es un 70 y el instructor toma como referencias las calificaciones de los dos
exámenes, tres proyectos y un cuestionario, diseñe un DF y pseudocódigo que calcule el promedio del
alumno e indique si aprobó o reprobó.
3.- Un encargado de recursos humanos desea administrar la nómina de su empresa de forma eficaz,
para eso él necesita diseñar un programa que reciba como entrada el nombre del empleado y luego
calcule su sueldo. El sueldo del empleado se calcula multiplicando la cantidad de horas trabajadas por
su costo, que es de $150.00. Sin embargo, cada uno de los trabajadores tiene como tope un total de
160 horas que corresponden a trabajar 8 horas al día de lunes a viernes en todo el mes (20 días), por lo
que si un empleado se excede en este limite de horas puede cobrar horas extras, cuyo costo es de
$165.00. Diseñe el DF y pseudocódigo del programa.
4.- Diseñe un DF y pseudocódigo que al recibir como dato de entrada las letras iniciales de las
operaciones suma, resta, multiplicación, división, potencia y raíz, realice la operación correspondiente y
luego imprima el resultado. (Use la estructura selectiva doble y también la estructura selectiva múltiple).
6.- Se busca calcular el sueldo de un empleado en base a su nivel de empleo. Si se pide
como dato de entrada el nombre del empleado, su nivel de empleo y la cantidad de horas
trabajadas. Diseñe el DF tomando como referencia lo siguiente:
*El máximo de horas que puede trabajar un empleado, independiente del nivel que
sea es de 20. Luego puede hacer cobro de horas extras dependiendo su nivel de
empleo.
7.- Diseñe un programa que al recibir como entrada la calificación del
servicio de un restaurante de comida rápida, imprima en pantalla la
evaluación correspondiente a las clasificaciones del lugar.
Clasificación Calificaciones
Excelente 91-100
Bueno 71-90
Regular 51-70
Malo Menos de 50
8.- Diseñe un programa que determine el área del triángulo,
rectángulo, trapecio, cuadrado, rombo y círculo según la opción
elegida por el usuario.
10.- Diseñe un programa que al recibir como entrada las calificaciones del servicio, comida,
instalaciones y estacionamiento saque su promedio y después usted defina la calidad del
restaurante según su calificación. Defina de forma libre los rangos correspondientes al
promedio tomando como referencia las siguientes cuatro clasificaciones Excelente, Bueno,
Regular y Malo.
5.- Estructuras Repetitivas
Una estructura For cuenta con dos tipos de variables especiales: contadores y acumuladores.
Dónde una variable contadora es aquella que permite establecer el número de repeticiones
dentro de nuestro código.
Una variable acumuladora es aquella que irá almacenando los resultados de las operaciones o
expresiones hasta que el contador deje de cumplir con la condición desde un inicio del
programa.
Ejemplo:
INICIO
nomina=0
i=1
i<=15
i=i+1
FIN
nomina= nomina + salario
5.2 Ejercicios.
1.- Construir el DF y pseudocódigo que al recibir como entrada “n” números, determine la
suma de dos números, si es suma positiva guárdala en el acumulador que establezca la suma
de los valores positivos y si es negativa guárdala en un acumulador que establezca la suma de
los números negativos.
2.- Construya el DF y pseudocódigo de un programa que calcule e imprima la suma de los
primeros 50 números de la serie del 2.
3.- Construya el DF y pseudocódigo de un programa que capture la temperatura de “n”
determinado número de días y luego imprima la suma de todas las temperaturas mayores a
25°C.
4.- Construir el DF y pseudocódigo de un programa que calcula el producto de los primeros
veinte números de la serie del 3.
5.- En un grupo de “n” alumnos, diseñe un DF y pseudocódigo que establezca la cantidad de
alumnos aprobados y reprobados luego de obtener su promedio. Para obtener el promedio
considere que el alumno ha obtenido sus calificaciones correspondientes a literatura, algebra,
biología, historia y física.