Ing. Erick Nez Tarrillo Correo Electrnico c11196@utp.edu.pe Horario Mircoles 8:45 p.m. a 11:00 p.m.
Objetivos Generales:
1. Introducir al alumno en el anlisis de los algoritmos, as como en el diseo e implementacin de stos con un leguaje de programacin. 2. Desarrollar habilidades en el uso de las tcnicas de anlisis y diseo de algoritmos.
Temas a Tratar
1.- INTRODUCCION Y CONCEPTOS GENERALES 2.- REPRESENTACION DE UN ALGORITMO 3.- LENGUAJE C 4.- INSTRUCCIONES BASICAS 5.- ESTRUCTURAS DE CONTROL
INTRODUCCION
QUE ES UN ALGORITMO
1. Conjunto ordenado y finito de operaciones que
permite hallar la solucin de un problema. 2. Mtodo y notacin en las distintas formas del clculo. Real Academia Espaola
Muhammad Musa Al-khawarizmi
Definicin de algoritmo
Secuencia ordenada de pasos exentos de ambigedad tal que, al llevarse a cabo con fidelidad, dar como resultado que se realice la tarea para la que se ha diseado en un tiempo finito.
Un algoritmo nos permite obtener la solucin del problema para el que est diseado.
Describa los pasos para cambiar la llanta pinchada de una bicicleta. Describa los pasos para llevar a una amiga a cine.
Propiedades de un algoritmo
Finitud La ejecucin de un algoritmo ha de terminar despus de un nmero finito de etapas. Precisin Cada etapa ha de estar especificado rigurosamente. La ejecucin de un algoritmo no ha de dejar espacio para la interpretacin, la intuicin o la creatividad
Caractersticas de un algoritmo
Entradas Un algoritmo tiene cero o ms entradas (cantidades que se le dan inicialmente antes de que comience su ejecucin). Salidas Un algoritmo tiene una o ms salidas (cantidades que tienen una relacin especfica con las entradas)
El trmino estructura de datos se refiere a la forma en que la informacin esta organizada dentro de un programa.
Datos:
Segn sus caractersticas, los datos pueden ser:
Programa 1
Programa 2
Ejm. DOS, Windows, Linux, etc. - Aplicaciones de uso general Ejm. Word, Excel, Power Point, etc. - Aplicaciones de uso especfico Ejm. sistema de notas, sistema de facturacin, etc)
MEMORIA RAM
Programa 3
int main() {
float r,s,x; cout<<"Ingrese 2 numeros enteros"<<endl; cin>>x>>s; r=x+s; cout<<"La suma es "<<r<<endl; return 0; }
;Lenguaje ensamblador, sintaxis Intel para procesadores x86 mov eax,1 ;mueve a al registro eax el valor 1 xor ebx, ebx ;pone en 0 el registro ebx int 80h ;llama a la interrupcin 80h (80h = 128 sistema decimal)
Traductores de lenguaje
Si el computador solo entiende binario como es que puede ejecutar los programas que nosotros escribimos?
???????
Traductores de lenguaje
Son los programas que traducen a su vez los programas fuente escritos en lenguajes de alto nivel a cdigo de maquina. Clasificacin:
Compiladores: Lenguaje de alto nivel --> Lenguaje de maquina. Interprete: Un traductor que toma un programa fuente, lo traduce y a continuacin lo ejecuta.
Una vez realizadas estas dos etapas se puede pasar a la resolucin del problema con la computadora.
ETAPAS EN LA RESOLUCION DE PROBLEMAS CODIFICACION DEL PROBLEMA: es la conversin del algoritmo y/o diagrama de flujo a un lenguaje de programacin. EJECUCION DEL PROGRAMA: permite ver en la computadora el programa en funcionamiento. COMPROBACION DEL PROGRAMA: permite verificar la correcta ejecucin del mismo, teniendo en cuenta los diferentes tipos de errores (lgicos y de sintaxis). Una comprobacin sucesiva del programa permitir localizar , verificar y corregir los posibles errores, con lo que se conforma la puesta a punto del programa.
Representacin de algoritmos.
Descripcin Narrada Pseudocdigo Diagramas de Flujo Diagramas N- S (Nassi-Schneiderman o de Chapin)
Pseudocdigo
Pseudo = falso. Es una tcnica para diseo de programas que permite definir las estructuras de datos, las operaciones que se aplicarn a los datos y la lgica que tendr el programa de computadora para solucionar un determinado problema
Ejemplo 1 Disear un algoritmo que lea cuatro variables y calcule e imprima su producto, suma y media aritmtica.
Inicio Leer (a, b, c, d) producto (a * b * c * d) suma (a + b + c + d) media (a + b + c + d) / 4 escribir (producto, suma, media) Fin
Inicio Leer (a, b) Si ((a<>0) y (b<>0)) entonces producto (a * b) Sino media (a + b) / 2 Fin si escribir (producto, media) Fin
Diagramas de Flujo.
Son la representacin grfica de la solucin algortmica de un problema.
Simbologa bsica para disear flujogramas.
Inicio/Fin Decisin Proceso Salida por impresora Entrada/ Salida
Diagrama de flujos
Para su elaboracin se siguen ciertas reglas:
Se escribe de arriba hacia abajo y de izquierda a derecha Siempre se usan flechas verticales u horizontales, jams curvas Evitar cruce de flujos En cada paso expresar una accin concreta
a,b
Si
Producto a*b
Producto
Media
Fin
DIAGRAMA DE FLUJO
NOMENCLATURA
PSEUDO-CDIGO
Inicio
Inicio de Algoritmo
Inicio
Definicin de variables
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
a=3*x+ y b = a / var1
F Si a > b
Conector
Fin
Fin de algoritmo
Fin
Ejercicio de Programacin
Realizar un Algoritmo en pseudo cdigo y diagrama de flujo que permita calcular el rea de un triangulo, dada su base y su altura
Diagrama de flujo
Inicio A 0
Inicio
A0;
B, h
A (B*h)/2
Leer(B,h); A (B*h)/2; Escribir (El rea del triangulo es, A); Fin Fin El rea es: A
Un Operador:
Tipo De asignacin Operador Significado Asignacin Suma Resta Multiplicacin Divisin Potencia Divisin entera (cociente) Mdulo Menor que Mayor que Menor o igual que Mayor o igual que Igual a Distinto a, diferente de Y lgico O lgico Negacin lgica
+ * / ^ Div Mod
es un smbolo o palabra que significa que se ha de realizar cierta accin entre uno o dos valores que son llamados operandos.
Matemticos
Relacionales
Lgicos
Y O No
Ejemplo:
X A+B X2 X a^2 +d
()
signo Potencia Producto y divisin Division entera
Mod
+y+o& >,<,>=,<=, <>,= Not Y O
Residuo
Suma y resta Concatenacin Relacionales Negacin And Or