FUNDAMENTOS
DE
PROGRAMACIÓN
Análisis de algoritmos
Universidad Iberoamericana
Antonio Cardeña
Agenda
1. Objetivos principales.
2. Importancia de la programación.
3. Definición de conceptos.
4. Sesión de preguntas.
2
Objetivos principales
Objetivos principales
• Comprender la importancia de la programación y su evolución.
• Conocer los diferentes conceptos relacionados con el análisis de
algoritmos.
4
Importancia de la
programación
P r o g ra m a c i ó n
Secuencia
Lógica
de pasos
Para resolver un
problema.
6
P r o g ra m a c i ó n
Tiene como objetivo que la computadora obtenga la
solución a un problema o requerimiento.
Para ello hace uso de una secuencia de instrucciones
claras y detalladas, es decir, un programa.
7
¿Cómo comunicarnos?
• Para comunicarnos con una computadora es necesario utilizar un lenguaje
en particular que pueda interpretar y seguir las instrucciones.
• El único lenguaje que la computadora entiende se denomina binario o
lenguaje máquina pero este es difícil de leer y escribir para un humano, por
lo cual se utiliza un lenjuage intermedio que será traducido a binario.
8
Intérprete o compilador
Es como cuando dos personas con idiomas diferentes no se
pueden comunicar por sí msmas y requieren de un
traductor.
Lo que traduce nuestro lenguaje intermedio a binario
también se denomina intérprete.
9
Entonces…
Para facilitar el proceso de programación, se emplea un lenguaje con
sintáxis y reglas definidas que facilitan la interacción con la computadora ya
que esta sólo entiende el código binario.
10
Ensamblador
Los primeros El siguiente paso fue crear un traductor que convertía
programadores tenían que palabras en inglés equivalentes a los códigos binarios. De esta
ingresar los códigos
manera para indicar por ejemplo que se realice la operación
binarios, lo cual se conoce
5+4, el programador lo indica mediante ADD 5 4.
como código máquina.
Se le conoce como lenguaje ensamblador y se utiliza todavía
para algunas tareas de programación específicas como por
ejemplo la programación de circuitos integrados,
microcontroladores.
11
L e n g u a j e d e p r o g ra m a c i ó n
• Es un lenguaje artificial que puede ser usado para controlar el comportamiento de
una máquina, especialmente una computadora.
• Los lenguajes de programación se componen de un conjunto de reglas que
permiten expresar instrucciones que luego serán interpretadas.
• El programador es el encargado de utilizar un lenguaje de
programación para crear un conjunto de instrucciones, que
al final, constituirán un programa.
12
Lenguaje de alto nivel
• Un lenguaje de programación puede acercarse a la forma humana de expresarse,
a este tipo de lenguajes se les llama de alto nivel, cuyas instrucciones son más
compatibles con los lenguajes y forma de pensar humanos.
• Utilizan palabras y formas en sus estructuras que se asemejan al lenguaje natural
(especialmente al inglés).
• El lenguaje de alto nivel ofrece tres ventajas importantes respecto al lenguaje
máquina:
Sencillez Uniformidad Portabilidad
13
Lenguajes de bajo nivel vs alto nivel
14
P r o g ra m a c i ó n e s t r u c t u ra d a
• El desarrollo de software debe ser de alta calidad y diseñado en forma
estructurada, con el fin de facilitar su modificación.
• Programar en forma estructurada debe respetar los siguientes aspectos:
• Programa principal
• Secuencias de instrucciones
• Estructuras de control
• Módulos o procedimientos
15
Definición de conceptos
Algoritmo
• Es fundamental entender el concepto de algoritmo, así como saber
diseñar dicho algoritmo.
• Un algoritmo es una secuencia de pasos que permite llegar a la
solución de un problema. Es el diseño previo al programa.
• Es el trabajo en el escritorio, antes que el trabajo con la
computadora.
17
Algoritmo
Programa
Algoritmo
Problema
El algoritmo es más importante que el programa, pues el programa sólo
implica la traducción de un algoritmo a un lenguaje de programación.
18
Algoritmo
19
C a ra c t e r í s t i c a s
Definido Lenguaje
Preciso cotidiano
Instrucciones
Finito Orden
20
E n t ra d a s p r o c e s o s s a l i d a s
• Estas instrucciones indican cómo resolver un problema o ejecutar una
acción por medio del razonamiento lógico.
• Hay que definir: entradas, proceso y salida.
• Entradas .- Elementos necesarios para realizar la acción.
• Proceso .- Acciones en el orden que se llevan a cabo.
• Salida .- ¿A qué resultado queremos llegar?
21
¿Qué es un algoritmo?
22
¿Cómo podemos diseñar un algoritmo?
1. Definir el inicio del proceso.
2. Establecer los datos de entrada necesarios para solucionar el problema.
3. Plantear el proceso que se debe llevar a cabo, es decir, condiciones y
acciones que se tomarán en cuenta.
4. Concretar la salida de información. Los datos que se deben obtener, o
bien el resultado al que se espera llegar.
5. Definir el fin de los pasos.
23
Algoritmo cualitativo
• Varias de las actividades que realizamos día a día pueden ser vistas como algoritmos ya que
realizamos las mismas acciones una y otra vez. Estos los podemos clasificar como cualitativos.
Por ejemplo, un algoritmo para preparar limonada:
Inicio
Se debe tener limones, agua, azúcar y hielo Entradas
Se exprimen los limones y el jugo se coloca en una jarra
Se vacía agua en la jarra
Se coloca azúcar al gusto y hielo
Se sirve la limonada en un vaso
Lista para beber Salida Proceso
Fin
24
Dinámica
Lavarse los dientes. Preparar una malteada
de fresa.
Bañarse. Preparar hot cakes.
25
Algoritmo cuantitativo
• Por otro lado tenemos los cuantitativos que involucran cálculos, por ejemplo calcular la raíz cuadrada de
un número.
Por ejemplo: Problema
Supongamos que vamos a una tienda de ropa porque necesitamos comprar
una playera, al llegar vemos que todas cuestan $400 y nuestro presupuesto es
de $350. Sin embargo, cada modelo de playera tiene un porcentaje distinto de
descuento; debemos encontrar la playera que se ajuste al presupuesto.
Programa
Para ello utilizaremos un programa que calcule, evalúe e imprima los
siguientes mensajes:
• Si el precio final ya con descuento es menor o igual a nuestro presupuesto,
entonces “Puedes adquirir el producto”
• Si el precio final ya con descuento es mayor al presupuesto, entonces “El
producto sobrepasa el presupuesto” 26
Desarrollo de algoritmo
Entonces nuestro algoritmo podría quedar así:
Inicio
• Dar un valor a las variables de entrada: presupuesto, costo y porcentaje.
• Realizar las operaciones para calcular el descuento: (costo*porcentaje) /
100 y guardarlo en cantidadDescuento.
• Calcular el costo del producto ya con descuento: costo –
cantidadDescuento y guardarlo en costoFinal.
• Si (costoFinal <= presupuesto) entonces imprimir (“Puedes adquirir el
producto”).
• Si (costoFinal > presupuesto) entonces imprimir (“El producto sobrepasa el
presupuesto”).
Fin
27
P r o g ra m a
El primero es percibido por el Existen dos El segundo es desde la perspectiva
usuario: un archivo ejecutable conceptos de lo que del programador: un archivo de
que se instala en la máquina y es un programa texto con instrucciones escritas en
puede ser ejecutado repetidas un determinado lenguaje de
veces para realizar una tarea programación.
determinada. La computadora es
capaz de entender
este archivo.
28
¿Preguntas?