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
OBJETO

PROGRAMA
FUENTE

PROGRAMA
EJECUTABLE

ENLACE

COMPILACION

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
Compilador

ERROR Y
DIAGNOSTICO

Programa en
Lenguaje
Objeto

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

Lenguaje de
Programa
Fuente

Salida

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

Diagrama de flujo (flowchart).


Diagrama N- S (Nassi-Schneiderman).
Pseudocdigo.

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

Leer
B, H

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

Decisin: Indica operaciones lgicas o de comparacin, en funcin al


resultado determina cual de los caminos debe seguir

Si

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

Fin

Base * Altura
2

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