You are on page 1of 50

Introduccin a la

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

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

#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

Variables: no hace referencia a un


objeto explcito
Ejemplos: velocidad del mvil, factor de
crecimiento

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).

Ya conocemos el primer valor


almacenado en nuestro cerebro.

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:

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

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 del algoritmo


Trmino del algoritmo
Impresin de mensajes
Receptor de datos
Operacin de datos
Bifurcacin (Decisin)
Definicin de variables
Conector

Inicio
Termino

Diagrama de Flujo y Pseudo-Cdigo


DIAGRAMA DE FLUJO

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

Diagrama de Fujo para el


algoritmo que suma dos valores
Inicio
var1,var,var3
Ingrese el primer valor

var 1
Ingrese el segundo valor
var 2
var3=var1+var2

El resultado es : var3
Termino

Se definen las variables var1, var2, var3


Se pide ingresar el primer valor
Se asocia el nmero ingresado a var1
Se pide ingresar el segundo valor
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

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

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, &&

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

!(var1 && (var4>=var1))


Cualquier proposicin distinta de cero
Es VERDADERO
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

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

Algoritmos
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
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