TECNOLÓGICO NACIONAL DE MÉXICO
Ingeniería en Sistemas Computacionales
Fundamentos de Programación
Unidad I: Diseño Algorítmico
Retícula ISIC-2010-224: Programa: AED-1285
SOLIDOS DE REVOLUCION, aplicaciones de integrales definidas
Fundamentos de Programación - Unidad I: Diseño Algorítmico
1. TECNOLÓGICO NACIONAL DE MÉXICO
Instituto Tecnológico Superior de Guasave
Ingeniería en Sistemas Computacionales
Unidad I: Diseño Algorítmico
Mtro. José Antonio Sandoval Acosta
Retícula ISIC-2010-224: Programa: AED-1285/2016
FUNDAMENTOS DE PROGRAMACIÓN
2. FUNDAMENTOS DE PROGRAMACION
Competencia:
• Comprende y aplica los conceptos básicos, nomenclatura y herramientas
para el diseño de algoritmos orientado a la resolución de problemas.
Temario
3. • Algoritmo: Conjunto de pasos, procedimientos, o acciones que
nos permiten alcanzar un resultado o resolver un problema.
• Muchas veces aplicamos los algoritmos de manera inadvertida,
inconsciente, sobre todo cuando hemos aplicado la solución de
un mismo problema muchas veces
FUNDAMENTOS DE PROGRAMACIÓN
4. Etapas de la solución de un problema
FUNDAMENTOS DE PROGRAMACIÓN
5. Características de los algoritmos
• Precisión
• Determinismo (definido)
• Finito
FUNDAMENTOS DE PROGRAMACIÓN
7. Pseudocódigo
• Mezcla de lenguaje de programación y español (o ingles o
cualquier otro idioma) que se emplea, dentro de la
programación estructurada, para realizar el diseño de un
programa. En esencial, el pseudocódigo se puede definir como
un lenguaje de especificaciones de algoritmos.
• Es la representación narrativa de los pasos que debe seguir un
algoritmo para dar solución a un problema determinado. El
pseudocódigo utiliza palabras que indican el proceso a realizar.
FUNDAMENTOS DE PROGRAMACIÓN
8. Diagramas de Flujo
• Es un esquema gráfico de un algoritmo. Muestra los pasos para
alcanzar la solución del problema. Su correcta construcción
permite que la programación sea fácil y rápido.
FUNDAMENTOS DE PROGRAMACIÓN
9. Símbolos para la construcción de un diagrama
Inicio y fin del diagrama
Entrada de datos (lectura)
Proceso de información
FUNDAMENTOS DE PROGRAMACIÓN
10. Despliegue de información (impresora o
pantalla)
Flechas utilizadas para marcar el flujo del
diagrama
Decisión
FUNDAMENTOS DE PROGRAMACIÓN
11. Estructura general de un diagrama de flujo
Inicio
Leer datos
Definir Variables
Procesar Datos
Desplegar Resultados
Fin
FUNDAMENTOS DE PROGRAMACIÓN
12. Ejercicio inicial
• Diseñe el algoritmo para obtener el área de un circulo, hacer
pseudocódigo y diagrama de flujo.
a = π * r2
FUNDAMENTOS DE PROGRAMACIÓN
13. Ejercicio inicial
• Realice el algoritmo y diagrama de flujo que determine el valor
absoluto de un número. No es posible en este caso utilizar
condiciones.
FUNDAMENTOS DE PROGRAMACIÓN
14. Ejercicio
• Diseñe el algoritmo para obtener el área de un triangulo
(Hacer pseudocódigo y diagrama)
a=(b*h)/2
FUNDAMENTOS DE PROGRAMACIÓN
15. Ejercicio
• Suponga que un individuo desea invertir su capital en un banco
y desea saber cuanto dinero ganará después de un mes si el
banco paga a razón de 2% mensual.
• Hacer pseudocódigo y diagrama de flujo
FUNDAMENTOS DE PROGRAMACIÓN
16. Ejercicio
• Una tienda ofrece un descuento del 15% sobre el total de la
compra y un cliente desea saber cuanto deberá pagar finalmente
por su compra.
• Hacer pseudocódigo y diagrama de flujo
FUNDAMENTOS DE PROGRAMACIÓN
17. Ejercicio
• Un maestro desea saber que porcentaje de hombres y que
porcentaje de mujeres hay en un grupo de estudiantes.
• Hacer pseudocódigo y diagrama de flujo que determine total
de estudiantes y calcule los porcentajes correspondientes
FUNDAMENTOS DE PROGRAMACIÓN
18. Ejercicio
• Calcular el nuevo salario de un obrero si obtuvo un incremento
del 25% sobre su salario anterior.
• Hacer pseudocódigo y diagrama de flujo utilizando fórmulas
adecuadas que no requieran sumatorias.
FUNDAMENTOS DE PROGRAMACIÓN
19. Ejercicio
• Dada una cantidad en pesos, obtener la equivalencia en
dólares, asumiendo que la unidad cambiaría es un dato
desconocido.
FUNDAMENTOS DE PROGRAMACIÓN
20. Ejercicio
• Tres personas deciden invertir su dinero para fundar una
empresa. Cada una de ellas invierte una cantidad distinta.
Obtener el porcentaje que cada quien invierte con respecto a
la cantidad total invertida.
FUNDAMENTOS DE PROGRAMACIÓN
22. Tipos de Asignaciones
• Simples: Consiste en pasar un valor constate a una variable:
(a=15)
• Contador: Consiste en usarla como un verificador del numero de
veces que se realiza un proceso: (a=a+1)
• Acumulador: Consiste en usarla como un sumador en un proceso:
(total=a1+a2+a3… )
• De trabajo: Donde puede recibir el resultado de una operación
matemática que involucre muchas variables: (a=c+b*2/4)
FUNDAMENTOS DE PROGRAMACIÓN
23. Estructuras de Condicionales
• Las estructuras condicionales comparan una variable o un valor
contra otras variables o valores, para que en base al resultado de
esta comparación, se siga un curso de acción dentro del programa.
• La comparación se puede hacer contra otra variable o contra una
constante, según se necesite. Existen dos tipos básicos, las
condiciones simples y las condiciones múltiples:
FUNDAMENTOS DE PROGRAMACIÓN
24. • Coniciones Simples: Las estructuras condicionales simples se
les conoce como “Tomas de decisión”. Estas tomas de decisión
tienen la siguiente forma:
Si <condición> entonces
Acción(es)
Fin-si
FUNDAMENTOS DE PROGRAMACIÓN
25. • Condiciones Dobles: Las estructuras condicionales dobles permiten
elegir entre dos opciones o alternativas posibles en función del
cumplimiento o no de una determinada condición. Se representa
de la siguiente forma:
Si <condición> entonces
Acción(es)
si no
Acción(es)
Fin-si
FUNDAMENTOS DE PROGRAMACIÓN
26. Operadores Relacionales:
• Se utilizan para establecer una relación entre dos valores.
• Compara estos valores entre si y esta comparación produce un resultado de
certeza o falsedad (verdadero o falso).
• Los operadores relacionales comparan valores del mismo tipo (numéricos o
cadenas)
• Tienen el mismo nivel de prioridad en su evaluación.
• Los operadores relacionales tiene menor prioridad que los aritméticos.
FUNDAMENTOS DE PROGRAMACIÓN
27. Operadores Relacionales:
> Mayor que
< Menor que
> = Mayor o igual que
< = Menor o igual que
< > Diferente
= Igual
FUNDAMENTOS DE PROGRAMACIÓN
28. Ejercicio:
1: Utilizando estructuras condicionales realice el algoritmo y
diagrama de flujo que determine el valor absoluto de un número
FUNDAMENTOS DE PROGRAMACIÓN
29. Ejercicio
2: Realizar algoritmo y diagrama de flujo que lea dos números y
los imprima en forma ascendente
FUNDAMENTOS DE PROGRAMACIÓN
30. Ejercicio:
3: Realizar algoritmo y diagrama de flujo que determine si un
alumno aprueba o reprueba un curso, sabiendo que aprobará sí
su promedio de tres calificaciones es mayor o igual a 70;
reprueba en caso contrario.
FUNDAMENTOS DE PROGRAMACIÓN
31. Ejercicio
4: En un almacén se hace un 20% de descuento a los clientes cuya
compra es superior a $1000.00
¿ Cuál será la cantidad que pagara una persona por su compra?
FUNDAMENTOS DE PROGRAMACIÓN
32. Ejercicio
5: Un hombre desea saber cuanto dinero se genera por concepto
de intereses sobre la cantidad que tiene en inversión en el
banco. El decidirá reinvertir los intereses siempre y cuando
estos excedan a $7000, y en ese caso desea saber cuanto
dinero tendrá finalmente en su cuenta.
FUNDAMENTOS DE PROGRAMACIÓN
33. Operadores Lógicos:
• Estos operadores se utilizan para establecer relaciones entre valores
lógicos.
• Estos valores pueden ser resultado de una expresión relacional.
Operadores Lógicos
And - Y
Or - O
Not - Negación
FUNDAMENTOS DE PROGRAMACIÓN
34. Operador AND
Operando 1 Operador Operando 2 Resultado
V AND V V
V AND F F
F AND V F
F AND F F
FUNDAMENTOS DE PROGRAMACIÓN
35. Operador OR
Operando 1 Operador Operando 2 Resultado
T OR T T
T OR F T
F OR T T
F OR F F
FUNDAMENTOS DE PROGRAMACIÓN
37. Ejemplos
• Una persona recibe un bono de $200 en su trabajo si es casado y tiene
hijos.
• La mercancía de temporada navideña entra en descuento del 40% siempre
y cuando la venta se haga en el mes de diciembre y el inventario tenga
menos de 10 piezas del producto vendido.
• El dispensador de agua de una veterinaria coloca un medio de agua si en la
jaula se encuentra un perro o un gato, de lo contrario coloca un cuarto de
litro de agua.
• Un paquete de correo no se entrega en el domicilio si este se encuentra
vacío.
FUNDAMENTOS DE PROGRAMACIÓN
38. Ejercicio
6: Hacer algoritmo y diagrama de flujo que resuelva lo siguiente: una empresa
de importaciones importa productos de diferentes países y debe pagar
impuestos dependiendo del país de origen de cada producto:
Si el producto es originario de USA o Canadá no paga impuestos
Si el producto es originario de otra parte del mundo paga un 20% de
impuestos
FUNDAMENTOS DE PROGRAMACIÓN
39. Ejercicio
7: Una empresa de bienes raíces ofrece casas de interés social, bajo
las siguientes condiciones:
• Si los ingresos mensuales del comprador son menores o iguales a
$8000 el enganche será del 15% del costo de la casa y el resto se
distribuirá en pagos mensuales, a pagar en 15 años.
• Si los ingresos del comprador son mayores de $8000 el enganche
será del 30% del costo de la casa y el resto se distribuirá en pagos
mensuales a pagar en 10 años.
La empresa quiere obtener cuanto debe pagar un comprador por
concepto de enganche y cuanto por cada pago mensual aplicando a
cada pago mensual un interés del 14%.
FUNDAMENTOS DE PROGRAMACIÓN
40. Ejercicio
8: Hacer un programa que indique la denominación en cuanto a su edad de
una persona según los siguientes criterios:
Cuando la edad es menor a 14, es un niño.
Cuando la edad es de 14 a 22, es un adolecente.
Cuando la edad es de 23 a 43, es un joven.
Cuando la edad es de 44 a 64, es un adulto joven.
Cuando la edad es de 65 a más es un adulto mayor.
FUNDAMENTOS DE PROGRAMACIÓN
41. 9: Un obrero necesita calcular su salario semanal, el cual se obtiene
de la sig. manera:
• Si trabaja 40 horas o menos se le paga $16.00 por hora.
• Si trabaja mas de 40 horas se le paga $16.00 por cada una de las
primeras 40 horas y $20.00 por cada hora extra.
• Además si el obrero tiene una antigüedad de 5 años o mayor y es
casado se le paga un bono del 5% sobre el sueldo semanal
calculado.
FUNDAMENTOS DE PROGRAMACIÓN
42. Diseño de Funciones
Cuando la solución a un problema es muy compleja se requiere utilizar el
diseño descendiente (divide y vencerás), esto implica que el problema se
divide en subprocesos más pequeños y sencillos que al unirlos tenemos una
solución completa, a estos subprocesos se les llama módulos o funciones.
Una función esta constituida por un nombre (identificador de función), un
conjunto de parámetros que va de 1 a n, y un valor de retorno
FUNDAMENTOS DE PROGRAMACIÓN
43. Diseño de FuncionesFUNDAMENTOSDEPROGRAMACIÓN
• nomFun es el nombre de la función,
• Si la función recibe parámetros se
inicializan en el recuadro que apunta al
inicio del a función,
• Todas las funciones pueden regresar un
valor final, para esto se debe definir el
tipo de dato a regresar en el recuadro
final.
44. EjemploFUNDAMENTOSDEPROGRAMACIÓN
• En este caso, se
pretende calcular la
suma de dos números,
para ello creamos una
función llamada sumar,
que recibe dos
parámetros, los suma y
regresa un valor entero
en la variable
enteroTres.
45. Ejercicio: Se requiere realizar la venta de un producto el cual debe pagar IVA,
y desplegar el total a pagar. Desarrolle el diagrama correspondiente, el IVA
debe ser calculado en una función.
FUNDAMENTOS DE PROGRAMACIÓN
46. Ejercicio: Diseñe algoritmo que permita leer el valor correspondiente a una
distancia en millas y las visualice expresadas en kilómetros. Sabiendo que 1
milla marina equivale a 1852 metros. El cálculo del total de kilómetros debe
realizarse en una función.
FUNDAMENTOS DE PROGRAMACIÓN
47. Ejercicio: Diseñe algoritmo que calcule el área y el perímetro de un
rectángulo dada la base y la altura. El área y el perímetro deben realizarse en
funciones separadas.
FUNDAMENTOS DE PROGRAMACIÓN
48. Tarea: Diseñe el diagrama de flujo para un rectángulo, añada las
funciones necesarias (una función por fórmula) para obtener:
El área del rectángulo:
A = a * b
El perímetro del rectángulo :
P = 2(a + b)
El radio de la circunferencia circunscrita:
R = √(a2 - b2)/2
El área de la circunferencia circunscrita:
A = pi * R2
FUNDAMENTOS DE PROGRAMACIÓN