Está en la página 1de 33

UNIDAD I Introduccin a la Programacin

Conceptos Bsicos
Programacin:

1. Establecer una secuencia de acciones que: puedan ser ejecutadas por el procesador realicen una determinada tarea 2. Fases: Resolucin del problema propuesto => determinacin de un algoritmo. Adaptacin del algoritmo al computador => codificar el algoritmo en un lenguaje que el computador pueda comprender.

1. Accin: Etapa en la realizacin de un trabajo 2. Accin primitiva: Accin que el procesador puede ejecutar sin necesidad de informacin adicional. 3. Algoritmo: Secuencia ordenada de acciones primitivas que realizan un trabajo. Ejemplos:

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
4

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

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


5

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
Salida
Proceso
Informes Datos para otro programa Datos grabados en dispositivos externos de almacenamiento

Entrada
Datos Externos Datos auto generados Lectura de dispositivo 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 Asignaturas

Estudia

Plan de Estudios

Carrera
8

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
9

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
10

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

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

Diagrama de Flujo y Pseudo-Cdigo


DIAGRAMA DE FLUJO NOMENCLATURA

PSEUDO-CDIGO

Inicio

Inicio de Algoritmo

Inicio

Entero var1, x , y Real a, b

Definicin de variables

Variables Entero var1, x, y Real a, b

Escribir Mensaje 1

Impresin de mensajes

Escribir (Mensaje 1)

Leer var1,x, y

Lectura de mensajes

Leer (var1, x, y)

a=3*x+ y b = a / var1

Transformacin de datos Operaciones sobre los datos

a=3*x+ y b = a / var1

F Si a > b

Bifurcacin en la ejecucin de instrucciones

Conector

Si a > b Entonces Inicio Instrucciones Fin Sino Inicio Instrucciones Fin

Fin

Fin de algoritmo

Fin

Diagrama de Fujo para el algoritmo que suma dos valores


Inicio var1,var,var3

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

Ingrese el primer valor

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

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

si Edad>=18 Usted es mayor de edad

No Usted es menor de edad

Fin

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
Ejercicio. Crear un algoritmo que muestre en forma ordenada tres nmero enteros ingresados desde teclado.

Inicio

si var1,var,var3 var1>var2 && var1>var3 var2>var3

si El orden es var1,var2, var3

No Ingrese el primer valor

No

El orden es var1,var3 var2

var1 si var2>var3 Ingrese el segundo valor var1>var3 si El orden es var2,var1, var3

No

No

Fin var2 El orden es var2,var3 var1 si Ingrese el tercer valor var2>var1 El orden es var3,var2 var1

No El orden es v3,var1 var2

var3

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
Ejercicio. Crear un algoritmo que muestre en forma ordenada tres nmero enteros ingresados desde teclado

Inicio

si var1,var,var3 var1>var2 && var1>var3 var2>var3

si El orden es var1,var2, var3

No Ingrese el primer valor

No

El orden es var1,var3 var2

var1 si var2>var3 Ingrese el segundo valor var1>var3 si El orden es var2,var1, var3

No

No

Fin var2 El orden es var2,var3 var1 si Ingrese el tercer valor var2>var1 El orden es var3,var2 var1

No El orden es v3,var1 var2

var3