Vous êtes sur la page 1sur 55

SEMESTRE ACADMICO 2013-I

ALGORITMOS
MG. JOSE LUIS HERRERA SALAZAR

SESIN 1
Adaptacin a la Vida Universitaria Conceptos Fundamentales
Agosto 2010

CARRERA DE INGENIERA DE SISTEMAS

OBJETIVO
Aprender las diferentes tcnicas para resolucin de problemas mediante algoritmos, para luego tener la capacidad de plasmarlos mediante el uso de algn lenguaje de programacin.

CARRERA DE INGENIERA DE SISTEMAS

CONCEPTOS PRELIMINARES
Que es una computadora.
Organizacin fsica de una computadora (hardware). Los programas (software).

Los lenguajes de programacin.

CARRERA DE INGENIERA DE SISTEMAS

QU ES LA COMPUTADORA?
Es una maquina electrnica digital capaz de procesar datos a partir de un grupo de instrucciones denominado programa, proporcionando una informacin resultante.
CARRERA DE INGENIERA DE SISTEMAS

Entradas

Datos de entradas e instrucciones

Computador a

Salidas
Datos de Salida, informacin

CARRERA DE INGENIERA DE SISTEMAS

QU ES UN DATO?
Es un conjunto de smbolos utilizados para expresar: un valor numrico, un hecho, un objeto o una idea, para ser objeto de tratamiento.
CARRERA DE INGENIERA DE SISTEMAS

QU ES INFORMACIN?

Es la transformacin de
los elementos procesados.

Los datos de entrada


se convierten en informacin significativa.

CARRERA DE INGENIERA DE SISTEMAS

Organizacin Fsica de la Computadora - HARDWARE


Una computadora necesita:
Aceptar la entrada y visualizar la salida. Almacenar la informacin en un formato consistente. Ejecutar las operaciones aritmticas o lgicas. Monitorizar, controlar y dirigir las operaciones del sistema.
CARRERA DE INGENIERA DE SISTEMAS

Memoria Central

Dispositivos de Entrada/Salid a E/S (perifricos)

Unidad Aritmtica Lgica

Unidad de Control

Almacenamiento Secundario (memoria auxiliar)

Unidad Central de Proceso (CPU)

CARRERA DE INGENIERA DE SISTEMAS

Unidad Central de Proceso (Procesador)


Ejecuta instrucciones de programa. La potencia de una computadora depende completamente de la velocidad y fiabilidad de la CPU. Dirige y controla el proceso de informacin realizado por la computadora. En el se encuentra: La Unidad Aritmtica Lgica (ALU) La Unidad de Control
CARRERA DE INGENIERA DE SISTEMAS

Perifrico o Dispositivos de Entrada/Salida


Estos dispositivos permiten al usuario comunicarse con la computadora. Algunos dispositivos tpicos de E/S son el teclado, la impresora, monitor, etc.

CARRERA DE INGENIERA DE SISTEMAS

Memoria Central
La informacin procesada por la UCP se almacena normalmente en la memoria central hasta que se terminan los clculos.

CARRERA DE INGENIERA DE SISTEMAS

Dispositivos de Almacenamiento Secundario


Usados para almacenar grandes cantidades de informacin. Los datos se guardan en dispositivos de almacenamiento auxiliar y luego para ser procesados por la CPU, tienen que llevarse a la memoria central.
CARRERA DE INGENIERA DE SISTEMAS

CLASIFICACIONES DEL SW
1. Sistemas Operativos 2. Lenguajes de Programacin 3. Sw de Uso General 4. Sw de Aplicaciones

CARRERA DE INGENIERA DE SISTEMAS

1. Sistemas Operativos:
Conjunto de programas que se emplean para operar una computadora. Estos programas debern encontrarse grabados en un diskdrive o como es frecuente en el disco duro.

Si el S.O. no se encuentra presente, ningn otro programa puede ejecutarse. El S.O. Es el vinculo entre el usuario y la computadora.
CARRERA DE INGENIERA DE SISTEMAS

1.1 Tareas del Sistema Operativo:


Da inicio a la sesin del computador proporcionado una interfaz de lnea de comando o una interfaz grfica.
Administra los dispositivos de Hw. Administra y mantiene los sistemas de archivo. Apoyo a otros programas.
CARRERA DE INGENIERA DE SISTEMAS

1.2. Categoras del Sistema Operativo


A) MULTITAREA: Correr ms de un programa al mismo tiempo. B) MULTIUSUARIO: Accesar ms de un usuario a una computadora.
C) MULTIPROCESO: Computadoras con ms de un CPU.
CARRERA DE INGENIERA DE SISTEMAS

Usuario 1

Usuario 2

2. Lenguajes de Programacin:
Sirve para escribir programas que permiten la comunicacin usuario/mquina.

3. Sw de Uso General:
Ofrecen su estructura para un gran numero de aplicaciones empresariales, cientficas y personales.

4. Sw de Aplicaciones:
Diseado para realizar tareas especificas.
CARRERA DE INGENIERA DE SISTEMAS

LENGUAJE DE PROGRAMACION
Es una tcnica estndar de comunicacin que permite expresar las instrucciones que han de ser ejecutadas en una computadora. Consiste en un conjunto de reglas sintcticas y semnticas que definen un programa informtico.

CARRERA DE INGENIERA DE SISTEMAS

Tipos de Lenguajes
LENGUAJES DE MAQUINA
LENGUAJE DE BAJO NIVEL (ENSAMBLADOR) LENGUAJE DE ALTO NIVEL.

CARRERA DE INGENIERA DE SISTEMAS

LENGUAJE DE MAQUINA:
Son aquellos que estn escritos en lenguajes directamente inteligibles por la maquina (computadora). Sus instrucciones son cadenas binarias (cadenas o series de caracteres dgitos 0 y 1) que especifican una operacin.
CARRERA DE INGENIERA DE SISTEMAS

HOLA

0000110 0100100 1000101 0011001

LENGUAJE DE BAJO NIVEL:


Por excelencia es el ensamblador (assembly language). Las instrucciones en lenguaje ensamblador son instrucciones conocidas como nemotcnicos.
Por ejemplo, nemotcnicos tpicos de operaciones aritmticas son: en ingles add, sub, div, etc. En espaol, sum, res, div, etc. Una instruccin tpica de suma seria: ADD M, N,P 0110 1001 1010
CARRERA DE INGENIERA DE SISTEMAS

1011

LENGUAJE DE ALTO NIVEL:


Son los mas utilizados por los programadores. Es independiente de la maquina, es decir, no dependen del diseo del Hw o de la computadora.

Son portables o transportables. Lo que significa que pueden ser ejecutados con poca o ninguna modificacin en diferentes tipos de computadora.
Instrucciones tales como: READ, WRITE, PRINT, OPEN,ETC.
CARRERA DE INGENIERA DE SISTEMAS

PROGRAMA
Es un conjunto de instrucciones sencillas escritas en un lenguaje de programacin, que al ser recogidas por un interprete son traducidas para poder ser ejecutadas. Conjunto de instrucciones que el computador debe ejecutar para solucionar un problema determinado.
CARRERA DE INGENIERA DE SISTEMAS

PROG. FUENTE: Programa escrito en lenguaje de alto nivel que no a sido traducido a lenguaje mquina.
PROG. OBJETO: Programa en lenguaje de mquina, que puede ser ejecutado.

COMPILADOR: Traductor que convierte sentencias de cdigo fuente a cdigo objeto.


INTERPRETE: Traductor que ejecuta un programa lnea por lnea no modificando la forma original.
PROGRAMA FUENTE PROGRAMA OBJETO ENLACE PROGRAMA EJECUTABLE

COMPILACION

CARRERA DE INGENIERA DE SISTEMAS

COMPILADOR
Un compilador es un programa que lee el programa escrito en un lenguaje fuente y lo traduce a otro programa equivalente llamado lenguaje objeto. Es un traductor que convierte un texto escrito en un lenguaje fuente de alto nivel en un programa objeto en cdigo mquina.
Lenguaje de Programa Fuente

Compilador

Programa en Lenguaje Objeto

ERROR Y DIAGNOSTICO
CARRERA DE INGENIERA DE SISTEMAS

INTRPRETE
Analiza una instruccin fuente y la ejecuta directamente sin generar cdigo objeto. Es un traductor que realiza la operacin de compilacin paso a paso.
Intrprete
Lenguaje de Programa Fuente

Salida

DATOS

CARRERA DE INGENIERA DE SISTEMAS

COMPILADOR vs. INTERPRETE


La principal ventaja del proceso de compilacin frente al de interpretacin es que los programas se ejecutan mucho ms rpido una vez compilados.

CARRERA DE INGENIERA DE SISTEMAS

SEMESTRE ACADMICO 2011-I

ALGORITMOS
ING. JOSE LUIS HERRERA SALAZAR

SESIN 2
Algoritmos Etapas para la solucin

Agosto 2010

CARRERA DE INGENIERA DE SISTEMAS

RESOLUCIN DE PROBLEMAS
Anlisis del problema. Diseo del algoritmo. Codificacin. Compilacin y ejecucin. Verificacin y Depuracin. Documentacin.
CARRERA DE INGENIERA DE SISTEMAS

ANALISIS DEL PROBLEMA

o Se determina QUE har el programa y cual ser la solucin deseada.


o Se precisan las entradas y salidas a obtenerse.

CARRERA DE INGENIERA DE SISTEMAS

DISEO DEL ALGORITMO o Se determina COMO hace el programa la tarea solicitada.


o Se emplea el mtodo de Diseo Descendente o Modular, el cual permite dividir un problema complejo en subproblemas y estos en otros de nivel mas bajo.
CARRERA DE INGENIERA DE SISTEMAS

CODIFICACION DE UN PROGRAMA

o Es la representacin de un algoritmo en un lenguaje de programacin. o Debido a que el algoritmo es independiente al lenguaje de programacin, el cdigo puede ser escrito con igual facilidad en un lenguaje u otro.
CARRERA DE INGENIERA DE SISTEMAS

COMPILACION Y EJECUCION DE UN PROGRAMA o Operacin de convertir un programa fuente en programa objeto. o Cuando no existe errores en un programa fuente se instruye al sistema operativo para que realice una fase de montaje o enlace del programa objeto con las libreras del programa del compilador produciendo un programa ejecutable.
CARRERA DE INGENIERA DE SISTEMAS

VERIFICACION Y DEPURACION DE UN PROGRAMA o Proceso de encontrar errores corregirlos o eliminarlos.


o Implica la ejecucin de un programa con una amplia variedad de datos de entrada. oErrores de compilacin oErrores de ejecucin oErrores lgicos
CARRERA DE INGENIERA DE SISTEMAS

DOCUMENTACION o Descripcin de los pasos para la solucin de un problema. o La documentacin de un programa puede ser interna o externa.
o Es importante para corregir posibles errores o realizar cambios al programa.

CARRERA DE INGENIERA DE SISTEMAS

ALGORITMO
Mtodo para resolver un problema, mediante una serie de pasos precisos, definidos y finitos. Produce un resultado en un tiempo finito. Existe diferentes formas de dar solucin a un mismo problema.
CARRERA DE INGENIERA DE SISTEMAS

La palabra algoritmo se deriva de la traduccin al latn de la palabra Alkhowariz-mi (algorismus), nombre de un matemtico y astrnomo rabe que escribi un tratado sobre manipulacin de nmeros y ecuaciones en el siglo IX. Euclides, matemtico griego, es considerado tambin el otro gran padre de la algoritmia.

En las ciencias de la computacin, los algoritmos son mas importantes que los lenguajes de programacin o las computadoras.
CARRERA DE INGENIERA DE SISTEMAS

CARACTERISTICAS DE UN ALGORITMO
Preciso: indica un orden de realizacin de cada paso a realizar. Definido: Si se sigue un algoritmo mas de una vez se obtiene el mismo resultado. Finito: todo algoritmo tiene un inicio y un fin, es decir debe tener un nmero finito de pasos.

CARRERA DE INGENIERA DE SISTEMAS

PASOS A SEGUIR EN LA CONSTRUCCION DE UN ALGORITMO

La definicin de un algoritmo debe describir tres partes: Entrada Proceso Salida

CARRERA DE INGENIERA DE SISTEMAS

DISEO DESCENDENTE DEL ALGORITMO


Un problema se puede qresolver mas eficazmente cuando se rompe el problema original en subproblemas. Este mtodo se conoce como Divide y Vencers, es decir dividir un problema complejo en otros mas simples.

Ejemplo: Hallar el rea de un tringulo.

CARRERA DE INGENIERA DE SISTEMAS

rea de un triangulo

Entrada De Datos

Clculo de rea

Salida Resultados

Entrada B

Entrada H

B*H 2

Salida B

Salida H

Salida A

CARRERA DE INGENIERA DE SISTEMAS

VENTAJAS DEL DISEO DESCENDENTE

El problema se comprende mas fcilmente al dividirse en partes mas simples denominadas mdulos. Las modificaciones en los mdulos son ms fciles. La comprobacin del problema se puede verificar fcilmente.

CARRERA DE INGENIERA DE SISTEMAS

HERRAMIENTAS PARA EL DISEO DE ALGORITMOS Diagrama de flujo (flowchart). Diagrama N- S (Nassi-Schneiderman). Pseudocdigo.

CARRERA DE INGENIERA DE SISTEMAS

Diagrama de Flujo
Es la representacin de algoritmos utilizando smbolos grficos unidos por flechas, denominadas lneas de flujo, que indican la secuencia de ejecucin. Los smbolos utilizados han sido normalizados por el Instituto Norteamericano de Normalizacin (ANSI).

CARRERA DE INGENIERA DE SISTEMAS

Inicio
Leer B, H

B*H 2

Escribir A

Fin

CARRERA DE INGENIERA DE SISTEMAS

Smbolos de diagrama de flujo


Terminal: Indica comienzo y final de todo programa. Entrada / Salida: Operaciones que tienen relacin con los dispositivos de entrada/salida.

Proceso: Operaciones aritmticas a realizarse.


CARRERA DE INGENIERA DE SISTEMAS

No Si

Decisin: Indica operaciones lgicas o de comparacin, en funcin al resultado determina cual de los caminos debe seguir Decisin Mltiple: En funcin al resultado de la comparacin seguir uno de los diferentes caminos. Direccin del flujo o lnea de flujo. Lnea Conectora: sirve de unin entres dos smbolos

CARRERA DE INGENIERA DE SISTEMAS

Conector: Continuacin del flujo dentro de la misma pgina


Conector: Continuacin del flujo en pginas diferentes. Subrutina: Modulo independiente del programa, que recibe una entrada, realiza una tarea y regresa al programa Principal.

Comentarios: permite aadir comentarios en cualquier smbolo del diagrama de flujo.


CARRERA DE INGENIERA DE SISTEMAS

Pantalla: se utiliza en ocasiones en lugar del smbolo de Entrada/Salida Impresora: se utiliza en ocasiones en lugar del smbolo de Entrada/Salida Teclado: se utiliza en ocasiones en lugar del smbolo de Entrada/Salida

CARRERA DE INGENIERA DE SISTEMAS

Nassi-Schneiderman
Es como un diagrama de flujo en el que se omiten las flechas de unin y las cajas son continuas. Un algoritmo se representa con un rectngulo en el que cada banda es una accin a realizar.

CARRERA DE INGENIERA DE SISTEMAS

Leer Base, Altura Calcular


Base * Altura Area 2

Escribir Area

CARRERA DE INGENIERA DE SISTEMAS

Pseudocodigo
Es un lenguaje de especificacin de algoritmos. Representa el algoritmo en secuencias lgicas de actividades utilizando verbos expresivos. Utiliza un lenguaje de comunicacin propio como el ingls, espaol entre otros. La ventaja del pseudocdigo es que en la planificacin del programa, el programador se concentra en la lgica sin preocuparse en la reglas de un lenguaje de programacin especfico.
CARRERA DE INGENIERA DE SISTEMAS

Inicio Leer (Base, Altura)


Base * Altura Calcular Area 2

Escribir Area
Fin

CARRERA DE INGENIERA DE SISTEMAS

EJEMPLOS

CARRERA DE INGENIERA DE SISTEMAS

Vous aimerez peut-être aussi