Anda di halaman 1dari 35

ALGORITMOS Y ESTRUCTURA DE DATOS I

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

SECUENCIAL SELECTIVAS REPETITIVAS

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.

GENERALIDADES SOBRE LOS ALGORITMOS


Describir los pasos para cruzar la calle.
Describa los pasos para cambiar un bombillo quemado.

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)

Definicin de Estructura de Datos.

El trmino estructura de datos se refiere a la forma en que la informacin esta organizada dentro de un programa.

La correcta organizacin de datos puede conducir a algoritmos ms simples y ms eficientes.


Estructura de datos: Conjunto de variables agrupadas y organizadas de cierta forma para representar un comportamiento.

Algoritmos + Estructuras de datos = Programas


El profesor Niklaus Wirth

Datos:
Segn sus caractersticas, los datos pueden ser:

Elementos del Computador


SOFTWARE (programa) HARDWARE (elem.fsicos)

SOFTWARE (Conjunto de Programas)

TIPOS DE SOFTWARE: - Sistemas operativos

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)

Alto Nivel Bajo Nivel Maquina

Traductores de lenguaje

Si el computador solo entiende binario como es que puede ejecutar los programas que nosotros escribimos?
???????

Computadora mata a Flanders

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.

ETAPAS EN LA RESOLUCION DE PROBLEMAS


RESOLUCION DE UN PROBLEMA RESOLUCION DEL PROBLEMA EN COMPUTADORA

ANALISIS DEL PROBLEMA

DISEO DEL ALGORITMO

CODIFICACION DEL PROGRAMA EJECUCION DEL PROGRAMA COMPROBACION DEL PROGRAMA

ETAPAS EN LA RESOLUCION DE PROBLEMAS

ANALISIS DEL PROBLEMA


Determinacin de objetivos del programa. Determinacin de la salida deseada. Determinacin de los datos de entrada. Determinacin de los requerimientos de procesamiento. Documentacin de las especificaciones del programa. Variables

DISEO DEL ALGORITMO


Escritura inicial del algoritmo
Debern seguir una secuencia definida por pasos hasta obtener un resultado distinto. Podrn ejecutarse cada vez que se requiera para distintos datos.

Verificacin Manual del Algoritmo (Corrida en Fro)

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

Reglas para crear los pseudocdigos:


Cada instruccin debe ir en una lnea Debe comenzar con la palabra Inicio y terminar con la palabra Fin Utiliza los operadores aritmticos, lgicos, bolanos Debe escribirse de manera indentada (tabulada) para apreciar las dependencias de las instrucciones. Utiliza palabras reservadas como: INICIO, FIN, LEER, ESCRIBIR, MIENTRAS, SI, SINO, ENTONCES, PARA, REPETIR, etc.
Ejemplo 2 Disear un algoritmo que lea dos numeros enteros y si son diferentes de cero calcule e imprima su producto, en caso contrario calcule y muestre el promedio de los dos. Analisis Diseo del Algoritmo

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

Conector pginas diferentes

Conector misma pgina

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

Diagrama de flujos. Ejemplo


Inicio

a,b

Si

No a<>0 y b<>0 Media (a+b)/2

Producto a*b

Producto

Media

Fin

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

Diagrama de Flujo y Pseudo-Cdigo

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

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

Anlisis del problema


Objetivo del problema:

Obtener o calcular el rea del triangulo


Datos de entrada: Las medidas de la base y de la altura del triangulo Datos de salida: EL rea del triangulo Procesamiento: Aplicar formula: Multiplicar base * altura y dividirlo entre 2 o

Multiplicar base* altura * 0.5


Documentacin de variables: B = base del triangulo h = altura del triangulo A= rea del triangulo

Diagrama de flujo

Inicio A 0

Pseudocodigo Triangulo Variables

Introduzca base y altura


B, h, A

Inicio
A0;

B, h

Escribir(Introduzca la base y la altura del


triangulo);

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 con Operadores


Asignacin ()
sintaxis Variable valor o expresin

Ejemplo:
X A+B X2 X a^2 +d

Ejemplo con Operadores


Residuo (mod)
sintaxis Variable valor mod valor Ejemplo: X 15 mod 2 Esto da como resultado 1, ya que es el residuo de la division

Divisin entera (div)


sintaxis Variable valor div valor Ejemplo: X 15 div 2 Esto da como resultado 7, ya que es la parte entera del cociente de la divisin

Prioridad de los Operadores


Jerarqua de Operadores
Parntesis
+/^ *y/ Div

()
signo Potencia Producto y divisin Division entera

Mod
+y+o& >,<,>=,<=, <>,= Not Y O

Residuo
Suma y resta Concatenacin Relacionales Negacin And Or

Anda mungkin juga menyukai