Anda di halaman 1dari 7

COLEGIO JUAN LOZANO Y LOZANO

AREA DE TECNOLOGIA E INFORMATICA


ESTUDIANTE:______________________________________GRADO:__________ FECHA:_______
INTRODUCCION
La algoritmia es uno de los pilares de la programacin y su relevancia se muestra en el desarrollo de
cualquier aplicacin, ms all de la construccin de programas. Este es una gua introductoria sobre
anlisis y diseo de algoritmos que pretende exponer al estudiante las tcnicas bsicas para su diseo e
implementacin, as como presentar unas herramientas que le permitan medir su efectividad y eficiencia.
El diseo de la gua se ha realizado de manera que pueda ser utilizada como base para cualquiera de las
asignaturas introductorias de la algoritmia. De ah su estructura y organizacin, as como la didctica con
la que se desarrollan los temas.
OBJETIVOS:
Al terminar el estudio de esta gua el estudiante estar en capacidad de:

Comprender a traves de ejemplos de la vida cotidiana los algoritmos.


Diferenciar los algoritmos, diagramas de flujo y programa a traves de ejemplos.

ALGORITMO
En matemticas, ciencias de la computacin, y disciplinas relacionadas, un algoritmo es una lista bien
definida, ordenada y finita de operaciones que permite hallar la solucin a un problema. Dado un estado
inicial y una entrada, a travs de pasos sucesivos y bien definidos se llega a un estado final, obteniendo
una solucin. Los algoritmos son objeto de estudio de la algoritmia.
El concepto de algoritmo, aunque similar y obviamente relacionado, no debe confundirse con el concepto
de programa. Mientras el primero es la especificacin de un conjunto de pasos (operaciones,
instrucciones, rdenes,...) orientados a la resolucin de un problema, el segundo es ese conjunto de
operaciones especificadas en un determinado lenguaje de programacin y para un computador concreto,
susceptible de ser ejecutado (o compilado o interpretado). Un algoritmo, estrictamente hablando, 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.
En la vida cotidiana se emplean algoritmos en multitud de ocasiones para resolver diversos problemas.
En las instrucciones que recibe un trabajador por parte de su patrn. Tambin existen ejemplos de ndole
matemtico, como el algoritmo de la divisin para calcular el cociente de dos nmeros, el algoritmo de
Euclides para calcular el mximo comn divisor de dos enteros positivos, o el mtodo de Gauss para
resolver un Sistema lineal de ecuaciones.
Ejemplo:
Los algoritmos son modos de resolucin de problemas, cabe aclarar que no slo son aplicables a la
actividad intelectual, sino tambin a todo tipo de problemas relacionados con actividades cotidianas.
Para poder entender mejor el concepto de algoritmo se utilizar como ejemplo el clculo de una
multiplicacin:

WILMAR VALLEJO G.

Pgina 1

Secuencia de pasos lgicos:


1. Escribir los dgitos por multiplicar: 4 x 4
2. Se sumarn 4 + 4 = 8
3. AI resultado se le volver a sumar 4: 8 + 4 = 12.
4. A este nuevo resultado se le volver a sumar 4: 12 + 4
5. El resultado es de 16.

MEDIOS DE EXPRESIN DE UN ALGORITMO


Los algoritmos pueden ser expresados de muchas maneras, incluyendo al lenguaje natural,
pseudocdigo, diagramas de flujo y lenguajes de programacin entre otros. Las descripciones en
lenguaje natural tienden a ser ambiguas y extensas. El usar pseudocdigo y diagramas de flujo evita
muchas ambigedades del lenguaje natural. Dichas expresiones son formas ms estructuradas para
representar algoritmos; no obstante, se mantienen independientes de un lenguaje de programacin
especfico.
La descripcin de un algoritmo usualmente se hace en tres niveles:
1. Descripcin de alto nivel. Se establece el problema, se selecciona un modelo matemtico y se explica
el algoritmo de manera verbal, posiblemente con ilustraciones y omitiendo detalles.
2. Descripcin formal. Se usa pseudocdigo para describir la secuencia de pasos que encuentran la
solucin.
3. Implementacin. Se muestra el algoritmo expresado en un lenguaje de programacin especfico o
algn objeto capaz de llevar a cabo instrucciones.
Tambin es posible incluir un teorema que demuestre que el algoritmo es
correcto, un anlisis de complejidad o ambos.
Diagrama de flujo
Diagrama de flujo que expresa un algoritmo para calcular la raz cuadrada de
un nmero x.
Los diagramas de flujo son descripciones grficas de algoritmos; usan
smbolos conectados con flechas para indicar la secuencia de instrucciones.
Los diagramas de flujo son usados para representar algoritmos pequeos, ya
que abarcan mucho espacio y su construccin es laboriosa. Por su facilidad
de lectura son usados como introduccin a los algoritmos, descripcin de un
lenguaje y descripcin de procesos a personas ajenas a la computacin.

Diagrama de flujo sencillo con los pasos a seguir si una lmpara no funciona.
Smbolos utilizados
Para poder hacer comprensibles los diagramas a todas las personas, los
smbolos se someten a una normalizacin; es decir, se hicieron smbolos casi
universales, ya que, en un principio cada usuario podra tener sus propios
smbolos para representar sus procesos en forma de Diagrama de flujo. Esto
trajo como consecuencia que slo aquel que conoca sus smbolos, los poda
interpretar. La simbologa utilizada para la elaboracin de diagramas de flujo es
variable y debe ajustarse a un patrn definido previamente.

WILMAR VALLEJO G.

Pgina 2

Caractersticas que debe cumplir un diagrama de flujo


En los diagramas de flujo se presuponen los siguientes aspectos:

Existe siempre un camino que permite llegar a una solucin (finalizacin del algoritmo).
Existe un nico inicio del proceso.
Existe un nico punto de fin para el proceso de flujo (salvo del rombo que indica una comparacin
con dos caminos posibles).

Recomendaciones
A su vez, es importante que al construir diagramas de flujo, se observen las siguientes recomendaciones:

Evitar sumideros infinitos, burbujas que tienen entradas pero no salidas.


Evitar las burbujas de generacin espontnea, que tienen salidas sin tener entradas, porque son
sumamente sospechosas y generalmente incorrectas.

WILMAR VALLEJO G.

Pgina 3

Tener cuidado con los flujos y procesos no etiquetados. Esto suele ser un indicio de falta de esmero,
pero puede esconder un error an ms grave: a veces el analista no etiqueta un flujo o un proceso
porque simplemente no se le ocurre algn nombre razonable.

PSEUDOCDIGO
Pseudocdigo es la descripcin de un algoritmo que asemeja a un lenguaje de programacin pero con
algunas convenciones del lenguaje natural. Tiene varias ventajas con respecto a los diagramas de flujo,
entre las que se destaca el poco espacio que se requiere para representar instrucciones complejas. El
pseudocdigo no est regido por ningn estndar. pseudo viene de falso y por ende es un cdigo al que
aunque es entendible no se aplica al proceso que debe realizar la maquina.
LENGUAJE DE PROGRAMACION
Un lenguaje de programacin es un lenguaje que puede ser utilizado para controlar el comportamiento
de una mquina, particularmente una computadora. Consiste en un conjunto de smbolos y reglas
sintcticas y semnticas que definen su estructura y el significado de sus elementos y expresiones.
Aunque muchas veces se usa lenguaje de programacin y lenguaje informtico como si fuesen
sinnimos, no tiene por qu ser as, ya que los lenguajes informticos engloban a los lenguajes de
programacin y a otros ms, como, por ejemplo, el HTML (lenguaje para el marcado de pginas web).
Un lenguaje de programacin permite a uno o ms programadores especificar de manera precisa: sobre
qu datos una computadora debe operar, cmo deben ser estos almacenados, transmitidos y qu
acciones debe tomar bajo una variada gama de circunstancias. Todo esto, a travs de un lenguaje que
intenta estar relativamente prximo al lenguaje humano o natural, tal como sucede con el lenguaje
Lxico. Una caracterstica relevante de los lenguajes de programacin es precisamente que ms de un
programador puedan tener un conjunto comn de instrucciones que puedan ser comprendidas entre ellos
para realizar la construccin del programa de forma colaborativa.
Los procesadores usados en las computadoras son capaces de entender y actuar segn lo indican
programas escritos en un lenguaje fijo llamado lenguaje de mquina. Todo programa escrito en otro
lenguaje puede ser ejecutado de dos maneras:
Mediante un programa que va adaptando las instrucciones conforme son encontradas. A este proceso se
lo llama interpretar y a los programas que lo hacen se los conoce como intrpretes.
Traduciendo este programa al programa equivalente escrito en lenguaje de mquina. A ese proceso se lo
llama compilar y al traductor se lo conoce como un malhecho compilador.
Clasificacin de los lenguajes de programacin
Los lenguajes de programacin se determinan segn el nivel de abstraccin, Segn la forma de ejecucin
y Segn el paradigma de programacin que poseen cada uno de ellos y esos pueden ser:
Segn su nivel de abstraccin
Lenguajes de bajo nivel
Los lenguajes de bajo nivel son lenguajes de programacin que se acercan al funcionamiento de una
computadora. El lenguaje de ms bajo nivel es, por excelencia, el cdigo mquina. A ste le sigue el
lenguaje ensamblador, ya que al programar en ensamblador se trabajan con los registros de memoria de
la computadora de forma directa.

WILMAR VALLEJO G.

Pgina 4

Lenguajes de medio nivel


Hay lenguajes de programacin que son considerados por algunos expertos como lenguajes de medio
nivel (como es el caso del lenguaje C) al tener ciertas caractersticas que los acercan a los lenguajes de
bajo nivel pero teniendo, al mismo tiempo, ciertas cualidades que lo hacen un lenguaje ms cercano al
humano y, por tanto, de alto nivel.
Lenguajes de alto nivel
Los lenguajes de alto nivel son normalmente fciles de aprender porque estn formados por elementos
de lenguajes naturales, como el ingls. En BASIC, el lenguaje de alto nivel ms conocido, los comandos
como "IF CONTADOR = 10 THEN STOP" pueden utilizarse para pedir a la computadora que pare si
CONTADOR es igual a 10. Por desgracia para muchas personas esta forma de trabajar es un poco
frustrante, dado que a pesar de que las computadoras parecen comprender un lenguaje natural, lo hacen
en realidad de una forma rgida y sistemtica.
Segn la forma de ejecucin
Lenguajes compilados
Naturalmente, un programa que se escribe en un lenguaje de alto nivel tambin tiene que traducirse a un
cdigo que pueda utilizar la mquina. Los programas traductores que pueden realizar esta operacin se
llaman compiladores. stos, como los programas ensambladores avanzados, pueden generar muchas
lneas de cdigo de mquina por cada proposicin del programa fuente. Se requiere una corrida de
compilacin antes de procesar los datos de un problema.
Los compiladores son aquellos cuya funcin es traducir un programa escrito en un determinado lenguaje
a un idioma que la computadora entienda (lenguaje mquina con cdigo binario).
Al usar un lenguaje compilado (como lo son los lenguajes del popular Visual Studio de Microsoft), el
programa desarrollado nunca se ejecuta mientras haya errores, sino hasta que luego de haber compilado
el programa, ya no aparecen errores en el cdigo.

Segn el paradigma de programacin

Un paradigma de programacin representa un enfoque particular o filosofa para la construccin del


software. No es mejor uno que otro, sino que cada uno tiene ventajas y desventajas. Dependiendo de la
situacin un paradigma resulta ms apropiado que otro.
Atendiendo al paradigma de programacin, se pueden clasificar los lenguajes en:
El paradigma imperativo o por procedimientos es considerado el ms comn y est representado, por
ejemplo, por el C o por BASIC.
El paradigma funcional est representado por la familia de lenguajes LISP (en particular Scheme), ML o
Haskell.
El paradigma lgico, un ejemplo es PROLOG.
El paradigma orientado a objetos. Un lenguaje completamente orientado a objetos es Smalltalk.
Lenguajes imperativos
BASIC

C++

Del phi

Java

Perl

Lenguajes Funcionales

WILMAR VALLEJO G.

Pgina 5

Haskell

Scheme

Miranda
Hbridos:

Ocaml

ML
Scala

Standard ML

Lisp
Lenguajes Lgicos
Prolog
Lenguajes orientados a objetos
C++

Clarin

Visual

Del phi

FoxPro
Ejemplo:

Java

Escribir un algoritmo que calcule la superficie de una circunferencia


Lenguaje Natural
No sigue ninguna norma ni estructura para su representacin. No lo recomiendan debido a los problemas
de ambigedad y a la falta de precisin que presenta:
1) Inicio.
2) Leer RADIO.
3) Establecer a S el resultado de multiplicar RADIO por RADIO por la constante PI (3.14).
4) Escribir el valor contenido en S.
5) Fin.
Pseudocdigo
Su estructura es similar a la de un programa. Es un punto intermedio entre el lenguaje natural y el
lenguaje de alto nivel:
Algoritmo Superficie Circunferencia
const
PI = 3.14
var
entero: radio, s
inicio
leer (radio)
s <- PI * radio * radio
escribir (La superficie de la circunferencia de radio, r, es igual a , s )
Fin algoritmo
Diagrama de Flujo (Flowchart)
Indica el orden en que deben ejecutarse las acciones. Ofrece mucha claridad y facilidad para disear el

WILMAR VALLEJO G.

Pgina 6

algoritmo pero a la hora de realizar tareas de actualizacin dificulta el proceso.

TALLER
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.

A que se le da el nombre de algoritmo? de ejemplos.


Como se describe un algoritmo usualmente?
Que es un diagrama de flujo?
Dibuje los smbolos mas utilizados en los diagramas de flujo e indique que representa cada uno.
Que caractersticas debe cumplir un diagrama de flujo?
A que se le da el nombre de Pseudocdigo?
Que es un lenguaje de programacin? Nombre algunos.
Como se clasifican los lenguajes de programacin segn su nivel de abstraccin?
Como se clasifican los lenguajes de programacin segn su forma de ejecucin?
Como se clasifican los lenguajes de programacin segn su paradigma de programacin?
Construya cinco algoritmos con su respectivo diagrama de flujo.

WILMAR VALLEJO G.

Pgina 7

Anda mungkin juga menyukai