Vous êtes sur la page 1sur 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:

Programa 1

Programa 2

- Sistemas operativos

Ejm. DOS, Windows, Linux, etc.


- Aplicaciones de uso general
Ejm. Word, Excel, Power Point, etc.

Programa 3

- Aplicaciones de uso especfico


Ejm. sistema de notas,
sistema de facturacin,
etc)
MEMORIA RAM

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;
}

Alto Nivel
Bajo Nivel
Maquina

;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?
???????

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

ANALISIS DEL
PROBLEMA

DISEO DEL
ALGORITMO

RESOLUCION
DEL PROBLEMA EN
COMPUTADORA

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

Salida por
impresora

Decisin
Proceso

Conector pginas
diferentes

Conector misma
pgina

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

Diagrama de flujos. Ejemplo


Inicio

a,b

Si

No
a<>0 y b<>0

Producto a*b

Media (a+b)/2

Producto

Media

Fin

DIAGRAMA DE FLUJO

NOMENCLATURA

Inicio

Escribir
Mensaje 1

Definicin de variables

Variables
Entero var1, x, y
Real a, b

Lectura de mensajes

Transformacin de datos
Operaciones sobre los datos

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

V
Si a > b

Inicio

Impresin de mensajes

Leer
var1,x, y

Inicio de Algoritmo

Bifurcacin en la ejecucin de
instrucciones

Conector

Fin

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 Flujo y Pseudo-Cdigo

Entero var1, x , y
Real a, b

PSEUDO-CDIGO

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

Introduzca base y altura

Variables

B, h, A

Inicio

B, h

A0;

Escribir(Introduzca la base y la altura del


triangulo);

A (B*h)/2

Leer(B,h);
A (B*h)/2;

El rea es: A

Escribir (El rea del triangulo es, A);


Fin
Fin

Un Operador:
es un smbolo o
palabra que
significa que se ha
de realizar cierta
accin entre uno o
dos valores que son
llamados
operandos.

Tipo

Operador

De asignacin

Matemticos

Relacionales

Lgicos

+
*
/
^
Div
Mod

Significado
Asignacin
Suma
Resta
Multiplicacin
Divisin
Potencia
Divisin entera
(cociente)
Mdulo

<
>
<=
>=
=
<>

Menor que
Mayor que

Y
O
No

Y lgico
O lgico
Negacin lgica

Menor o igual que


Mayor o igual que
Igual a
Distinto a, diferente
de

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

()

+/-

signo

Potencia

*y/

Producto y divisin

Div

Division entera

Mod

Residuo

+y-

Suma y resta

+o&

Concatenacin

>,<,>=,<=, <>,=

Relacionales

Not

Negacin

And

Or

Vous aimerez peut-être aussi