Está en la página 1de 11

ALGORITMOS

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. CONCEPTOS PRELIMINARES A) Que es una computadora. B) Organizacin fsica de una computadora (hardware). C) Los programas (software). D) Los lenguajes de programacin. A) Que es una computadora? Es una maquina electrnica digital capaz de procesar datos a partir de un grupo de instrucciones denominado programa, proporcionando una informacin resultante.

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. Ejemplo: 25, soltero, cuaderno, grande, etc. Qu es informacin? Es la transformacin de los elementos procesados. Los datos de entrada se convierten en informacin significativa. B) 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.

Unidad Central de Proceso (Procesador) Ejecuta instrucciones de programa. La potencia de una computadora 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

depende

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. Memoria Central La informacin procesada por la UCP se almacena normalmente en la memoria central, hasta que se terminan los clculos. 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. C) Los programas - SOFTWARE Clasificaciones del SW 1. Sistemas Operativos 2. Lenguajes de programacin 3. Software de uso general. 4. Software de aplicaciones. 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. 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.

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. 2. Lenguajes de Programacin: Son SW que sirven 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.

D) Los Lenguaje de Programacin 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. Tipos de Lenguajes o LENGUAJES DE MAQUINA o LENGUAJE DE BAJO NIVEL (ENSAMBLADOR) o LENGUAJE DE ALTO NIVEL. 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. 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 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. 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.

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 PROGRAMA EJECUTABLE

COMPILACION

ENLACE

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 Programa en Lenguaje Objeto

Compilador Compilador

ERROR Y DIAGNOSTICO

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 Intrprete

Salida

Lenguaje de Programa Fuente

DATOS

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. Estructura del proceso de compilacin

ANLISIS LEXICOGRFICO O LXICO

Supongamos que un compilador Preposicin: A = B + C * 10

tiene

que

analizar

la

siguiente

preposicin:

Anlisis lxico El analizador lxico lee los caracteres del programa fuente, y verifica que correspondan a una secuencia lgica (identificador, palabra reservada, etc.). A = B + C * 10 id1 = id2 + id3 * 10 ANLISIS SINTCTICO El analizador sintctico impone una estructura jerrquica a la cadena de componentes lxicos, generada por el analizador lxico, que es representada en forma de un rbol sintctico. id1 = id2 + id3 * 10 = / \ id1 + / \ id2 * / \ id3 10 ANLISIS SEMNTICO El analizador semntico verificara en este caso que cada operador tenga los operandos permitidos. = / \ id1 + / \ id2 * / \ id3 tipo_ent | 10 GENERADOR DE CDIGO INTERMEDIO En esta etapa se lleva la preposicin a una representacin intermedia como un programa para una maquina abstracta. temp1 = tipo_ent (10) temp2 = id3 * temp1 temp3 = id2 + temp2 id1 = temp3

OPTIMIZACIN DE CDIGO El cdigo intermedio obtenido es representado de una forma mas optima y eficiente. temp1 = id3 * 10

id1 = id2 + temp1

GENERADOR DE CDIGO Finalmente lleva el cdigo intermedio a un cdigo objeto que en este caso es un cdigo relocalizable o cdigo ensamblador (tambin llamado cdigo no enlazado). MOVF id3, R2 MULT #10, R2 MOVF id2, R1 ADDF R2, R1 MOVF R1, id1

RESOLUCIN DE PROBLEMAS

Anlisis del problema. Diseo del algoritmo. Codificacin. Compilacin y ejecucin. Verificacin y Depuracin. Documentacin.

Anlisis del problema Se determina QUE har el programa y cual ser la solucin deseada. oSe precisan las entradas y salidas a obtenerse. Diseo del algoritmo
-

Se determina COMO hace el programa la tarea solicitada. 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. Codificacin de un programa Es la representacin de un algoritmo en un lenguaje de programacin. Debido a que el algoritmo es independiente al lenguaje de programacin, el cdigo puede ser escrito con igual facilidad en un lenguaje u otro. Compilacin y ejecucin de un programa Operacin de convertir un programa fuente en programa objeto. 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. Verificacin y depuracin de un programa Proceso de encontrar errores corregirlos o eliminarlos. Implica la ejecucin de un programa con una amplia variedad de datos de entrada. o Errores de compilacin o Errores de ejecucin o Errores lgicos

Documentacin
-

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

programa. 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. La palabra algoritmo se deriva de la traduccin al latn de la palabra Al-khowariz-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.

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. PASOS A SEGUIR EN LA CONSTRUCCION DE UN ALGORITMO La definicin de un algoritmo debe describir tres partes: Entrada Proceso Salida

Ejemplo: Hallar el rea de un tringulo. Calculando el rea de un tringulo 1. Lo que voy a obtener es el rea del tringulo, a ello le llamamos salida. 2. Lo que necesito conocer para calcular el rea del tringulo es mnimo la base y la altura, a ello le llamamos entrada. 3. Para obtener la salida que buscamos (el rea) gracias a los datos de entrada (base y altura) lo podemos calcular con la frmula: A=(b*h)/2, a ello le llamamos proceso.

HERRAMIENTAS PARA EL DISEO DE ALGORITMOS

Es

Diagrama de flujo (flowchart). Diagrama N- S (Nassi-Schneiderman). Pseudocdigo.

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

Los

Leer B, H

A=

B*H 2

Escribir A

Smbolos de diagrama de flujo


Fin

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.


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

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. 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

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.
Inicio
Leer Base, Altura Calcular

Area =
Escribir Area

Base * Altura 2

Fin

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. Inicio Leer (Base, Altura) Calcular Area = Base * Altura 2

Escribir Area Fin

También podría gustarte