Você está na página 1de 22

REPUBLICA BOLIVARIANA DE VENEZUELA MINISTERIO DEL PODER POPULAR PARA LAEDUCACION SUPERIOR MISION SUCRE-EXTENSION MUNICIPIO PEDERNALES ESTADO

DELTA AMACURO

FACILITADORA: PROF. JIMNEZ LETICIA. I TRAYECTO III PERODO

INTEGRANTES: * FERMIN SORALLA. * ZABALA TAHIMA

MAYO 2009

Pgs. Introduccin .3 Desarrollo. ..4,12 Algoritmo ..4 Metodologa para disear algoritmo..4,6 Qu son programas de computadoras?.........................6,9 Qu es lenguaje de mquinas?...................................9,10 Lenguaje de bajo nivel10,11 Lenguaje de alto nivel.11,12

Conclusin ..13 Bibliografa ....14

La importancia de un algoritmo radica en mostrar la manera de llevar a cabo procesos y resolver mecnicamente problemas matemticos o de otro tipo, al igual que las funciones matemticas, los algoritmos reciben una entrada y la transforman en una salida. Para que un algoritmo pueda ser considerado como tal, debe ser una secuencia ordenada, finita y definida de instrucciones. De este modo se puede seguir y predecir el comportamiento del algoritmo para cualquier entrada posible, a partir del seguimiento de esa secuencia de instrucciones, que como es ordenada y definida, no da lugar a ambigedades y puede seguirse su traza. Un algoritmo, no puede ejecutarse hasta que se implementa, ya sea en un lenguaje de programacin, en un circuito elctrico, en un aparato mecnico, usando papel y lpiz, o en algn otro modelo de computacin.

: Un algoritmo es el conjunto de operaciones y procedimientos que deben seguirse para resolver un problema. Los algoritmos se pueden expresar por frmulas, diagramas de flujo, y pseudocdigo. sta ltima representacin es la ms utilizada en lenguajes estructurados como Turbo Pascal.

El algoritmo sigue el principio bsico de un sistema, est compuesto por tres elementos o componentes bsicos que son: - Entrada: La entrada de los datos corresponde a los insumos o datos necesarios para ofrecer los resultados esperados. - Proceso: Son los pasos necesarios para obtener la solucin al problema o a situacin planteada. - Salida: Son los resultados arrojados por el proceso como la solucin.

Las caractersticas que debe poseer una secuencia de tareas para considerarse algoritmo son: precisin, definitud y finitud. Preciso: El algoritmo debe indicar el orden exacto de ejecucin de cada tarea. Definido. Si se sigue el algoritmo dos o ms veces con los mismos datos de entrada, se deben obtener los mismos datos de salida. Finito. El algoritmo debe terminar en algn momento y debe usar una cantidad de recursos finita.

Las dos herramientas utilizadas comnmente para disear algoritmos son: a) Diagrama de Flujo. b) Pseudocdigo. a) Diagrama de Flujo: Un diagrama de flujo es la representacin grfica de un algoritmo. Tambin se puede decir que es la representacin detallada en forma grfica de como deben realizarse los pasos en computadora para producir resultados. Esta representacin grfica se da cuando varios smbolos (que indican diferentes procesos en la computadora), se

relacionan entre si mediante lneas que indican el orden se deben Los ejecutar los procesos.

en

que

smbolos utilizados han sido normalizados por el instituto de normalizacin (ANSI).

norteamericano

Recomendaciones para el diseo de Diagramas de Flujo: Se deben se usar solamente lneas de flujos horizontales y/o verticales. leer palabras. b) Pseudocdigo: Mezcla de lenguaje de programacin y espaol (o ingles o cualquier otro idioma) que se emplea, dentro de la programacin estructurada, para realizar el diseo de un programa. En esencial, el pseudocdigo se puede definir como un lenguaje especificacionesde de algoritmos. Es la representacin narrativa de Se debe evitar el cruce de lneas utilizando los conectores. Se deben usar conectores solo cuando sea necesario. No deben quedar lneas de flujo son conectar. Se deben trazar los smbolos de manera que se puedan arriba hacia abajo y de izquierda a derecha. Todo texto escrito dentro de un smbolo deber ser escrito claramente, evitando el usode muchas

los pasos que debe seguir un algoritmo para dar solucin a un problema determinado. El pseudocdigo utiliza palabras que indican el proceso a realizar.

Las

sentencias

instrucciones

se

pueden

dividir

principalmente en tres grandes grupos: a) Sentencias Simples. b) Sentencias Compuestas. c) Sentencias de control del flujo del algoritmo.

a) Sentencias Simples: Una sentencia de seleccin simple, es parte de un algoritmo que permite decidir bajo una cierta condicin si una instruccin o sentencia se va a ejecutar. Las Sentencias Simples son del tipo de: - Asignacin de Variables y Constantes. - Llamadas a Procedimientos y Funciones, dentro de estas ltimas englobamos todas las funciones y procedimientos que conforman la librera general de sentencias que veremos posteriormente. b) Las Sentencias Compuestas: Son aquellas que estn dentro de procedimientos o funciones. Las Sentencias de Control de Flujo: limitas

- Sentencias Reiterativas: Mientras, Repetir, Para. - Sentencias Condicionales: Si, Case... of 3.1 Aritmticas y varias funciones. Dentro de la asignaciones de variables juega un gran papel los operadores y funciones matemticas, tales como: +-------------+-----------------------------------------------+ |+ ||* |/ | div | mod | log | ln | exp | pow | random | abs | sqr | sqrt | Suma | Resta | Producto | Divisin (devuelve un valor real) | Divisin (devuelve un valor entero) | Clculo del mdulo aritmtico. | Logaritmo en base 10 | Logaritmo neperiano | Exponencial de un nmero | Potencia de un nmero | Obtencin de un nmero aleatorio | Obtenemos el valor absoluto de un nmero | Obtencin del cuadrado de un nmero | Obtencin de la raz cuadrada | | | | | | | | | | | | | | |

| sin,cos,tan | Funciones trigonomtricas | ord |

| chr/toascii | Obtenemos un carcter a partir de un nmero | | Obtenemos el nmero correspondiente al cdigo | | ASCII |

+-------------+-----------------------------------------------+

Lgicamente, existen ms funciones aritmticas que veremos ms adelante. 3.2 Sentencias de Control. Como ya dijimos en la introduccin del tema 3, las sentencias de control son aquellas que interrumpen la ejecucin secuencial de las instrucciones de un algoritmo, permitiendo la generacin de reiteraciones. 3.2.1 Condicionales (Si y Case). La funcin SI, viene acompaada por una serie de elementos que son los operadores relacionales y operadores booleanos. Los operadores relacionales son los siguientes: +----+-----------------+ | = | Igual a | < | menor que | > | mayor que | | |

| <= | menor o igual a | | >= | mayor o igual a | | <> | distinto de +----+-----------------+ Estos operadores nos van a servir generalmente para comparar |

y comprobar los valores que toman las variables a lo largo del algoritmo, y dependiendo de los resultados, realizar una cosa u otra. Operadores booleanos: Los operadores booleanos nos permiten generar condiciones compuestas. (AND, OR, XOR, NOT) Ejemplo: Es la variable b mayor que 12 y la variable d igual a cierto? Operador AND: (debe cumplirse las dos condiciones) +--------------------------+ | true AND true -> true | | true AND false -> false | | false AND true -> false | | false AND false -> false | +--------------------------+ Operador OR: (debe cumplirse una de las dos condiciones) +-------------------------+ | true OR true -> true | | true OR false -> true | | false OR true -> true | | false OR false -> false |

10

+-------------------------+ Operador XOR: (se cumple cuando las dos condiciones son distintas) +--------------------------+ | true XOR true -> false | | true XOR false -> true | | false XOR true -> true | | false XOR false -> false | +--------------------------+ Operador NOT: (niega el resultado de una condicion) +--------------------+ | NOT true -> false | | NOT false -> true | +--------------------+ - La sentencias SI puede tener las siguientes estructuras: +-Si (condicin) entonces | | ... ... +-Sino +-Finsi Tambin puede aparecer en estructuras ms complejas:

11

+-Si (condicin1) entonces | +-Si (condicin2) entonces || +-Sino | || || +-Finsi A este tipo de estructuras se le denomina "anidamiento o encadenamiento de sentencias SI". - En cuanto a la sentencia EN CASO hay que decir, que se trata de una simplificacin de sentencias SI anidadas. De esta forma, sea una variable A tenemos la siguiente estructura de Si encadenados. +-Si (condicin1) entonces | accin1 +-Sino Si (condicin2) entonces | accin2 +-Sino Si (condicin3) entonces | accin3 +-Sino | accin4 ... ... ... | +-Si (condicin3) entonces | +-Sino | +-Finsi ... | +-Finsi

12

+-Finsi Con una estructura del tipo EN CASO, tendramos el problema resuelto de la siguiente forma: +-En Caso de Variable | condicin1: | condicin2: | condicin3: +-En Otro Caso | Accin4 +-Fincaso 3.2.2 Bucles Mientras, Repetir y Para. Las iteraciones son otro tipo de sentencias de control. Las que veremos son las siguientes: Mientras, Repetir y Para. Siendo este ltimo uno de los ms usados. La utilizacin de un bucle en un programa permite la posibilidad de realizar iteraciones de secciones de cdigo, evitando as andar con condiciones, etiquetas y la sentencia GOTO. Esta ltima sentencia GOTO, hay que evitarla en por todos los medios. Cualquier programa puede ser realizado sin tener que utilizar dicha sentencia; ya que su uso crea confusin a la hora de seguir la ejecucin secuencial de las sentencias de un algoritmo. 3.2.2.1 Bucle Mientras. El bucle Mientras se caracteriza por ser utilizado cuando no Accin1 Accin2 Accin3

13

conocemos el nmero de iteraciones con antelacin. Es por ello que nos ayudamos de una comprobacin o condicin para la entrada/salida del mismo antes de realizar la ejecucin de la seccin del cdigo a repetir; esto ltimo nos posibilita el caso de no efectuar ninguna iteracin (iteracin=0). +-Algoritmo Multiplicar (mult1,mult2,resul) | Parmetros reales mult1,mult2,resul | | resul=0 | +-Mientras mult2>0 hacer | | resul=resul+mult1 | | mult2=mult2-1 | +-Finmientras +-Final 3.2.2.2 Bucle Repetir. El bucle Repetir se caracteriza porque al igual que el anterior no sabemos el nmero de iteraciones que debemos realizar, es por ello que se apoya en condiciones para salir del mismo. Al contrario que el anterior, la comprobacin va al final del bucle, de esta forma, como mnimo siempre se produce una iteracin. Veamos el algoritmo anterior utilizando el bucle repetir. +-Algoritmo Multiplicar (mult1,mult2,resul)

14

| Parmetros reales mult1,mult2,resul | | resul=0 | +-Repetir | | resul=resul+mult1 | | mult2=mult2-1 | +-Hasta que mult2<=0 +-Final Una forma muy sencilla para pasar un bucle Mientras a Repetir, es hallando la condicin opuesta, o bien poniendo un not en la comprobacin, negando as la condicin del mientras. Tambin se puede hallar teniendo en cuenta el significado de los operadores relacionales y booleanos. +----------+----+ | NOT (<) | >= | | NOT (<=) | > | | NOT (>) | <= | * Negacin de lo operadores ralacionales. | NOT (>=) | < | | NOT (=) | <> | | NOT (<>) | = | +----------+----+ 3.2.2.3 Bucle Para Lo que caracteriza al bucle Para es que ya sabemos con antelacin el nmero de iteraciones a realizar. Es por ello que no (o tambin hasta que not (mult2 >0) )

15

nos hace falta una comprobacin de salida y/o entrada. Tambin existe la posibilidad de realizar 0 iteraciones, cuando la variable secundaria es menor que la primaria. Otra caracterstica, es la posibilidad de realizar incrementos de n en n en el contador del bucle. Pasemos a ver el algoritmo anterior mediante un bucle Para. +-Algoritmo Multiplicar (mult1,mult2,resul) | Parmetros reales mult1,mult2,resul | Variable Local loop | resul=0 | +-Para loop=1 hasta mult2 de incremento 1 hacer | | resul=resul+mult1 | | mult2=mult2-1 | +-Finpara +-Final En este caso, la variable primaria es "loop" y la secundaria es "mult2". Si esta ltima toma un valor inferior a la primaria, entonces el bucle no se realiza. Obsrvese que hemos puesto el incremento= 1, este es el valor que posee el bucle Para por defecto, es por ello que cuando el incremento es de 1 en 1, no se debe especificar.

4) Lenguaje de Mquinas: Consiste en un conjunto de instrucciones en binario, es decir, con ceros y unos, con los cuales se indica al ordenador qu hacer. Este

16

lenguaje es muy complicado y la posibilidad de cometer errores es muy alta, por lo que ya no se utiliza.

Est formado por instrucciones sencillas, que dependiendo de la estructura del procesador pueden especificar:

Registros

especficos

para

operaciones

aritmticas,

direccionamiento o control de funciones.


Posiciones de memoria especficas (Offset). Modos de direccionamiento usados para interpretar operandos.

Las operaciones ms complejas se realizan combinando estas instrucciones sencillas, que pueden ser ejecutadas secuencialmente o mediante instrucciones de control de flujo. Las operaciones disponibles en la mayora de los conjuntos de instrucciones incluyen:

Mover
o o

llenar un registro con un valor constante mover datos de una posicin de memoria a un registro o viceversa escribir y leer datos de dispositivos. sumar, restar, multiplicar o dividir los valores de dos registros, colocando el resultado en uno de ellos o en otro registro realizar operaciones binarias, incluyendo operaciones

Computar
o

lgicas (AND/OR/XOR/NOT)
o

comparar valores entre registros (mayor, menor, igual)

17

Afectar el flujo del programa


o

saltar

otra

posicin

en

el

programa

ejecutar

instrucciones all
o o

saltar si se cumplen ciertas condiciones (IF) saltar a otra posicin, pero guardar el punto de salida para retornar (CALL, llamada a subrutinas)

Algunas computadoras incluyen instrucciones complejas dentro de sus capacidades. Una sola instruccin compleja hace lo mismo que en otras computadoras puede requerir una larga serie de instrucciones, por ejemplo:

salvar varios registros en la pila de una sola vez mover grandes bloques de memoria operaciones aritmticas complejas o de punto flotante (seno, coseno, raz cuadrada)

5) Lenguaje de Bajo Nivel: Es el que proporciona poca o ninguna abstraccin del

microprocesador de un ordenador. Consecuentemente es fcilmente trasladado a lenguaje de mquina. La palabra "bajo" no implica que el lenguaje sea inferior a un lenguaje de alto nivel; se refiere a la reducida abstraccin entre el lenguaje y el hardware. En general se utiliza este tipo de lenguaje para programar controladores (drivers). La programacin en un lenguaje de bajo nivel como el lenguaje de la mquina o el lenguaje simblico tiene ciertas ventajas:

Mayor adaptacin al equipo.

18

Posibilidad de obtener la mxima velocidad con mnimo uso de memoria.

Pero tambin tiene importantes inconvenientes:


Imposibilidad de escribir cdigo independiente de la mquina. Mayor dificultad en la programacin y en la comprensin de los programas. El programador debe conocer ms de un centenar de

instrucciones.

Es necesario conocer en detalle la arquitectura de la mquina.

Caracterstica

Se trabaja a nivel de instrucciones, es decir, su programacin es al ms fino detalle. Est orientado a la mquina.

6) Lenguaje de Alto Nivel: Son aquellos que se encuentran ms cercanos al lenguaje natural que al lenguaje mquina. Estn dirigidos a solucionar problemas mediante el uso de EDD's (ESTRUCTURA DINMICA DE DATOS): Son estructuras que pueden cambiar de tamao durante la ejecucin del programa. Nos permiten crear estructuras de datos que se adapten a las necesidades reales de un programa. Un lenguaje de alto nivel permite al programador escribir las instrucciones de un programa utilizando palabras o expresiones sintcticas muy similares al ingls. Por ejemplo, en C se

19

pueden usar palabras tales como: case, if, for, while, etc. para construir con ellas instrucciones como: if printf ("El nmero (numero > 0)

es positivo); que traducido al castellano viene

a decir que: Si numero es mayor que cero, entonces, escribir por pantalla el mensaje: "El nmero es positivo".

sta es la razn por la que a estos lenguajes se les considera de alto nivel, porque se pueden utilizar palabras de muy fcil comprensin para el programador. En contraposicin, los lenguajes de bajo nivel son aquellos que estn ms cerca del "entendimiento" de la mquina. Otros lenguajes de alto nivel son: BASIC, COBOL, FORTRAN, PASCAL, ADA, etc.

Otra caracterstica importante de los lenguajes de alto nivel es que, para la mayora de las instrucciones de estos lenguajes, se necesitaran varias instrucciones en un lenguaje ensamblador para indicar lo mismo. De igual forma que, la mayora de las instrucciones de un lenguaje ensamblador, tambin agrupa a varias instrucciones de un lenguaje mquina.

CONCLUSIN

20

Como conclusin final podra decirse que el trmino algoritmo no esta exclusivamente relacionado con las matemticas, ciencias de la computacin o informtica, puesto que en la vida cotidiana se emplean los algoritmos para resolver diversos problemas o situaciones. Los equipos informticos han abierto una nueva era en la fabricacin gracias a las tcnicas de automatizacin, y han permitido mejorar los sistemas modernos de comunicacin. Son herramientas esenciales prcticamente en todos los campos de investigacin y en tecnologa aplicada.

21

BIBLIOGRAFIA Microsoft Encarta 2007. http://es.wikipedia.org/wiki/Computadora. http://www.icarito..html. http:/www.monografas.com. Wikipedia. Algoritmo. Wikipedia.

22

Você também pode gostar