Professional Documents
Culture Documents
Programacin
Introduccin a los
algoritmos
Profesores:
Pedro Campos
Manuel Crisosto
Tatiana Gutirrez
Claudio Gutirrez
Motivacin
OBJETIVO GENERAL DE LA ASIGNATURA
Resolver problemas bsicos a travs de la construccin de programas
basados en algoritmos y un lenguaje de programacin, generando acciones
hacia la bsqueda de propuestas pertinentes.
APRENDIZAJES ESPERADOS (COMPETENCIAS)
Descompone un problema en sub-problemas para darle una solucin
ms sencilla.
Interpreta algoritmos y programas para la solucin de problemas
bsicos de programacin relativos a la matemtica.
Construye algoritmos y programas para la solucin de
problemas bsicos de programacin relativos a la matemtica.
Trabaja colaborativamente, cumpliendo un rol y responsabilizndose
de l.
Comprende el entorno de las situaciones problemticas que tienen un
componente informtico.
2
Programa de Aplicacin
Programa que permite resolver la ecuacin de primer grado
Programa
que permite
resolver la
ecuacin de
primer grado
ax+b=0
a
?
b
3
x = -b / a
#include <stdio.h>
int a,b,x;
main()
{
printf(Ingrese valores de EC);
scanf(%d %d,&a,&b);
if a ==0 printf (error);
else
{
x = -b / a;
printf(La solucin es %d:,x);
}
printf(Fin programa);
}
Pasos en la resolucin de un
problema
Entender el problema
Conceptualizacin
Objetivo
Contexto
Buscar soluciones
Elegir solucin
Disear solucin
Descomposicin
Especificar tareas
Modelar solucin
Implementar solucin
Validar solucin
4
Qu es un problema?
Es una situacin concreta sobre la cual se quiere
implementar una solucin (ejemplos)
Solucin: procedimiento que nos lleva a satisfacer
ciertos requerimientos
Esquema bsico para la resolucin de un problema
a travs de un programa con un enfoque sistmico
Entrada
Datos Externos
Datos auto generados
Lectura de dispositivo de
almacenamiento
Salida
Proceso
Informes
Datos para otro programa
Datos grabados en
dispositivos externos de
almacenamiento
Datos y Variables
Datos: objetos simblicos que
representan objetos del mundo real.
Ejemplos: 10 de Marzo de 2003, 3.14
Qu es un Modelo?
Estructura para dar razn y abstraer una
realidad
Ejemplo:
Estudiantes
Inscrita
Estudia
Plan de Estudios
Carrera
Asignaturas
Qu es un algoritmo?
Procedimiento detallado para resolver
un problema en pasos y en un tiempo
finito.
Se especifican en base a operaciones
bsicas que controlan las variables y el
flujo del algoritmo
El algoritmo lleva desde un estado
inicial a un estado final
El algoritmo recibe Entradas y entrega
Salidas
8
Cmo desarrollar un
algoritmo?
Imaginacin
No reinventar la rueda
Dividir para conquistar
Para ser efectivo se requiere
practicar constantemente
El diseo de algoritmos es una rama
de la Ciencia de la Computacin
9
Cmo se describe un
algoritmo?
Lenguaje natural
Pseudo cdigo
Lenguaje de programacin
La precisin es importante
Un algoritmo no puede ser descrito de
forma ambigua:
Todos tienen que entender lo mismo
(incluido el computador!)
10
Llamada telefnica
Se desea conceptualizar el
problema de efectuar una
llamada telefnica en un
telfono pblico que recibe
monedas de $10, $50 y
$100. El costo mnimo de
la llamada es de $100 por
5 minutos. El proceso se
inicia desde que se levanta
el auricular y finaliza
cuando se cuelga.
11
rboles de decisin
Herramienta
til para
describir
algoritmos
que
involucran
gran cantidad
de decisiones
12
Conceptos Bsicos de
Algoritmos
La forma en que se ejecutan las operaciones
bsicas en un computador, es similar a lo que
ocurre en nuestro cerebro.
Por ejemplo, para sumar dos valores:
Primero debemos pedirle a alguien que nos diga el
primer valor.
Luego de que conocemos este valor, debemos
almacenarlo (para recordarlo despus) en una
neurona (Suponemos que un valor se puede
almacenar en una neurona).
est
Conceptos Bsicos de
Algoritmos
Ahora debemos pedir el segundo valor.
Una vez conocido, lo almacenamos en otra
neurona distinta de la anterior. Por qu?
Ahora
que
conocemos
los
dos
valores
procedemos a sumarlos, y dicho resultado lo
almacenamos en otra neurona distinta de las
anteriores.
Por ltimo, le decimos el resultado a la persona
que nos entrego los nmeros.
Conceptos Bsicos de
Algoritmos
De lo anterior, al menos necesitamos 3
neuronas para sumar dos nmeros.
Le pedimos explcitamente que nos dijeran
dichos valores.
Le asignamos dichos valores a las neuronas
La suma la realiz nuestro cerebro de forma
mecnica. Note que no existen detalles de
la operaciones bsicas (*,/,+, -).
Finalmente se da el resultado
Conceptos Bsicos de
Algoritmos
Algoritmo para sumar dos nmeros:
Conceptos Bsicos de
Algoritmos
Sin embargo, en los lenguajes no se pueden
usar neuronas, pero podemos definir
variables (Recuerde que las variables pueden
tomar cualquier valor)
En lugar de usar neurona 1 y neurona 2, se
utilizan espacios de memoria que llamaremos
var 1 y var 2, y as sucesivamente.
Tambin las podemos llamar x1 y x2
x e y .
Conceptos Bsicos de
Algoritmos
Ejercicio: Cree un algoritmo que multiplique tres nmeros.
Algoritmo para multiplicar tres
nmeros:
Conceptos Bsicos de
Algoritmos
La manera en que hemos detallado
nuestros dos algoritmos se llama PSEUDOCDIGO. Y este pseudo-cdigo fue escrito
en lenguaje natural.
Otra manera de poder detallar nuestros
algoritmos es a travs de los diagrama de
flujo. Un diagrama de flujo es una
representacin simblica de la lgica del
algoritmo.
Diagrama de Fujo
Nomenclatura:
Inicio
Termino
NOMENCLATURA
Inicio
Entero var1, x , y
Real a, b
Escribir
Mensaje 1
Definicin de variables
Variables
Entero var1, x, y
Real a, b
Transformacin de datos
Operaciones sobre los datos
V
Si a > b
Inicio
Lectura de mensajes
a=3*x+ y
b = a / var1
Inicio de Algoritmo
Impresin de mensajes
Leer
var1,x, y
Bifurcacin en la ejecucin de
instrucciones
Conector
Fin
PSEUDO-CDIGO
Fin de algoritmo
Escribir (Mensaje 1)
Leer (var1, x, y)
a=3*x+ y
b = a / var1
Si a > b Entonces
Inicio
Instrucciones
Fin
Sino
Inicio
Instrucciones
Fin
Fin
var 1
Ingrese el segundo valor
var 2
var3=var1+var2
El resultado es : var3
Termino
Diagrama de Flujo
Ejercicio: Cree el diagrama de flujo
para el algoritmo que multiplica tres
nmeros y muestre el resultado
Ejercicio: Cree el diagrama de flujo
para que divida dos nmeros y
muestre el resultado
Preguntas?
Algoritmos
Ejercicio. Usando diagrama de Flujo.
Cree un algoritmos donde una
persona ingrese su edad y muestre
por pantalla si es mayor de edad.
Algoritmos
Algoritmos
Del ejemplo anterior podemos observar
que la bifurcacin permite seguir el flujo
adecuado dada una condicin.
Las condiciones que se evalan en las
bifurcaciones son siempre verdaderas o
falsas.
Por ende, hay que colocar las
instrucciones adecuadas a los valores
que se evaluan en las bifurcaciones.
Algoritmos
Tambin es posible
bifurcaciones contiguas.
que
existan
Algoritmos
Operadores Aritmticos:
*
/
+
%
multiplicacin
Divisin
Suma
Resta
Mdulo
Algoritmos
Operadores
Lgicos:
Y, And, &&
Algoritmos
Operadores
Lgicos:
O, Or, ||
Algoritmos
Operadores
Lgicos:
No, Not, !
No
Algoritmos
Analicemos los siguientes casos
var1=2, var2=0,var3=4
var4=(var1*var1)/var3
var4=1
Si
var4>=1 && var1!=0
No
Si
Algoritmos
Analicemos los siguientes casos
var1=2, var2=0,var3=4
var4=(var3%var1)
var4=0
Si
(var4!=0 || var2>0)
&& (var3==4)
No
No
Algoritmos
Analicemos los siguientes casos
var1=2, var4=1,var3=4
var4=(var4+var1)
var4=3
Si
No
Algoritmos
Es importante notar que existen
prioridades entre los operadores. Por
lo tanto deben utilizarse parntesis
en los casos que correspondan
Algoritmos
Ejercicio. Crear un algoritmo que
muestre en forma ordenada tres
nmero enteros ingresados desde
teclado.
Diagrama de Flujo
Algoritmos
Repaso de Bifurcaciones
Aprendizajes Esperados
Conceptos de Ciclos
Cundo se aplican los ciclos
Algoritmos
Ejercicio. Crear un algoritmo que
muestre en forma ordenada tres
nmero enteros ingresados desde
teclado
Algoritmos
Concepto de Ciclo
Un ciclo es la repeticin de un conjunto
de instrucciones. Dicho ciclo culmina
cuando se cumple una condicin de
termino.
Algoritmos
Estructura de un
ciclo
Algoritmos
Ejemplo: Crear un algoritmo que
sume N elementos y muestre el
resultado
var
cont
suma
Algoritmos
Ejemplo: Crear un algoritmo que
encuentre el nmero mayor de N
nmeros
enteros
positivos
ingresados por teclado.
= -1
Algoritmos
Ejemplo: Crear un algoritmo que
calcule
n
i
1