Вы находитесь на странице: 1из 50

Introduccin a los algoritmos

Profesores:
Pedro Campos
Manuel Crisosto
Tatiana Gutirrez
Claudio Gutirrez
Introduccin a la Programacin
Motivacin
2
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.
Programa de Aplicacin
Programa que permite resolver la ecuacin de primer grado
3
Programa
que permite
resolver la
ecuacin de
primer grado
a x + b = 0
?
a

b
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);
}
Algoritmo EC 1er Grado
Variables
a,b,x de tipo entero
Inicio
Escribir(Ingrese valores de EC)
Leer (a,b)
Si a = 0 entonces
escribir (Error)
sino
Inicio
x=-b/a
Escribir (La solucin es:,x)
Fin
Escribir(Fin programa)
Fin
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
5
Proceso
Entrada
Salida
Datos Externos
Datos auto generados
Lectura de dispositivo
de almacenamiento
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
Variables: no hace referencia a un objeto
explcito
Ejemplos: velocidad del mvil, factor de
crecimiento
6
Qu es un Modelo?
Estructura para dar razn y abstraer una
realidad
Ejemplo:
7
Asignaturas
Carrera
Estudiantes
Estudia
Plan de Estudios
Inscrita
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).
Ya conocemos el primer valor y est almacenado en
nuestro cerebro.

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:
Definimos tres neuronas
Pedimos el primer valor
Almacenamos ese valor en la neurona 1.
Pedimos el segundo valor
Almacenamos ese valor en la neurona 2.
Almacenamos la suma de las neuronas 1 y 2 en la neurona
3
Entregamos el resultado que se encuentra en la neurona 3.
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:
Definimos cuatro variables
Pedimos el primer valor
Almacenamos ese valor en var 1.
Pedimos el segundo valor
Almacenamos ese valor en var 2.
Pedimos el tercer valor
Almacenamos ese valor en var 3.
Almacenamos la multiplicacin de las variables en var 4
Entregamos el resultado que se encuentra en var 4.
Conceptos Bsicos de Algoritmos
La manera en que hemos detallado nuestros dos
algoritmos se llama PSEUDO-CDIGO. 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 del algoritmo
Trmino del algoritmo
Impresin de mensajes
Receptor de datos
Operacin de datos
Bifurcacin (Decisin)
Definicin de variables
Conector
Inicio
Termino
?
F V
Diagrama de Flujo y Pseudo-Cdigo
Inicio
Escribir
Mensaje 1
Fin
Leer
var1,x, y
a = 3 * x + y
b = a / var1
Entero var1, x , y
Real a, b
Si a > b
V F
Inicio de Algoritmo
Definicin de variables
Impresin de mensajes
Lectura de mensajes
Transformacin de datos
Operaciones sobre los datos
Bifurcacin en la ejecucin de
instrucciones
Conector
Fin de algoritmo
DIAGRAMA DE FLUJO NOMENCLATURA PSEUDO-CDIGO
Inicio
Variables
Entero var1, x, y
Real a, b
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
Diagrama de Fujo para el algoritmo que
suma dos valores
Inicio
Termino
var1,var,var3
Ingrese el primer valor
var 1
Ingrese el segundo valor
var 2
var3=var1+var2
El resultado es : var3


Se pide ingresar el segundo valor
Se pide ingresar el primer valor
Se asocia el nmero ingresado a var1
Se definen las variables var1, var2, var3
Se asocia el nmero ingresado a var1
Se asigna el resultado de la suma entre var1 y var2 a var3
Se muestra el resultado
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
Inicio
Edad
Ingrese su
edad
Edad
Edad>=18
Usted es
mayor de
edad
Usted es
menor de
edad
Fin
si
No
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 que existan bifurcaciones
contiguas.
En las bifurcaciones o estructura de control, se
evalan proposiciones utilizando:
Operadores lgicos
Operadores aritmticos
Operadores Relacionales
Algoritmos
Operadores Aritmticos:
* multiplicacin
/ Divisin
+ Suma
- Resta
% Mdulo
Ejemplo de mdulo (o residuo de la divisin):
5%2 es 1
4%2 es 0
Algoritmos
Operadores Lgicos:
Y, And, &&
Y V F
V V F
F F F
Algoritmos
Operadores Lgicos:
O, Or, ||
O V F
V V V
F V F
Algoritmos
Operadores Lgicos:
No, Not, !
No V F
F V
Algoritmos
Analicemos los siguientes casos
var1=2, var2=0,var3=4
var4=(var1*var1)/var3
var4>=1 && var1!=0
Si
No
var4=1
Si
Algoritmos
Analicemos los siguientes casos
var1=2, var2=0,var3=4
var4=(var3%var1)
(var4!=0 || var2>0)
&& (var3==4)
Si
No
var4=0
No
Algoritmos
Analicemos los siguientes casos
var1=2, var4=1,var3=4
var4=(var4+var1)
!(var1 && (var4>=var1))
Si
No
var4=3
No
Cualquier proposicin distinta de cero
Es VERDADERO
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.
Inicio
var1,var,var3
Ingrese el
primer valor
var1
Ingrese el
segundo
valor
var2
Ingrese el
tercer valor
var3
1
1
var1>var2 &&
var1>var3
var2>var3
El orden es
var1,var2,
var3
El orden es
var1,var3
var2
Fin
var2>var3 var1>var3
El orden es
var2,var1,
var3
El orden es
var2,var3
var1
var2>var1
El orden es
var3,var2
var1
El orden es
v3,var1
var2
si
No
si
si si
si
No
No No
No
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
Ejercicio: Cree el diagrama de flujo para que resuelva la ecuacin de
primer grado y muestre el resultado
Ejercicio: Cree el diagrama de flujo para que resuelva la ecuacin de
segundo grado, para valores reales e imaginarios, y muestre el
resultado
Ejercicio: Cree el diagrama de flujo permita sumar tres nmeros
ingresados por teclado y muestre el resultado
Ejercicio: Cree el diagrama de flujo que permita sumar n nmeros y
muestre el resultado. El valor de n debe ser ingresado por teclado al
igual que los nmeros que se sumarn.

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
Inicio
var1,var,var3
Ingrese el
primer valor
var1
Ingrese el
segundo
valor
var2
Ingrese el
tercer valor
var3
1
1
var1>var2 &&
var1>var3
var2>var3
El orden es
var1,var2,
var3
El orden es
var1,var3
var2
Fin
var2>var3 var1>var3
El orden es
var2,var1,
var3
El orden es
var2,var3
var1
var2>var1
El orden es
var3,var2
var1
El orden es
v3,var1
var2
si
No
si
si si
si
No
No No
No
Concepto de Ciclo
Un ciclo es la repeticin de un conjunto de
instrucciones. Dicho ciclo culmina cuando se
cumple una condicin de termino.

Cundo se aplican los Ciclos
Se aplican cuando queremos ejecutar un conjunto
de instrucciones varias veces.
Algoritmos
Algoritmos
Estructura de un ciclo
Inicializacin
Condicin de
Termino
Instruccin 1
Instruccin 2
Instruccin N
Incremento/
Decremento
V
F
Algoritmos
Ejemplo: Crear un algoritmo que sume N
elementos y muestre el resultado
N var cont suma
0 2
1 1
1 2 2
3
3
Inicio
N,var,cont,
Suma=0
Ingrese
cuantos
nmeros va
a sumar
N
cont=1
cont<=N
Ingrese el
cont valor
var
suma=suma+var
cont=cont+1
V
El resultado
es suma
Fin
Algoritmos
Ejemplo: Crear un algoritmo que encuentre el
nmero mayor de N nmeros enteros
positivos ingresados por teclado.
= -1
Inicio
N,var,cont,
mayor
Ingrese
cuantos
nmeros va
a sumar
N
cont=1
cont<=N
Ingrese el
cont valor
var
cont=cont+1
V
El resultado
es mayor
Fin
cont==1 ||
var>mayor
mayor=var
V
F
Algoritmos
Ejemplo: Crear un algoritmo que calcule

n
i
1
Inicio
N,var,cont,
suma=0
Ingrese
cuantos
nmeros va
a sumar
N
cont=1
cont<=N suma=suma+cont
cont=cont+1
V
El resultado
es suma
Fin

Вам также может понравиться