You are on page 1of 6

REGIONAL ATLANTICO - CENTRO NACIONAL COLOMBO ALEMAN - BARRANQUILLA

TECNICO EN PROGRAMACION DE SOFTWARE

TEORIA SOBRE ALGORITMOS

Introduccin

La computadora no solamente es una mquina que puede realizar procesos para darnos resultados, sin que
tengamos la nocin exacta de las operaciones que realiza para llegar a esos resultados. Con la computadora
tambin podemos disear soluciones a la medida, de problemas especficos que se nos presenten. Ms an,
si estos involucran operaciones matemticas complejas y/o repetitivas, o requieren del manejo de un
volumen muy grande de datos. A las soluciones creadas por computadora se les conoce como programas y
no son ms que una serie de operaciones que realiza la computadora para llegar a un resultado, con un grupo
de datos especficos. Podramos decir que un programa es el conjunto de instrucciones escritas de algn
lenguaje de programacin y que ejecutadas secuencialmente resuelven un problema especfico. Para poder
realizar programas, adems de conocer la metodologa para solucionar problemas, tambin debemos
conocer, de manera especfica las funciones que puede realizar la computadora y las formas en que se
pueden manejar los elementos que hay en la misma. El procesamiento de informacin en la computadora
puede representarse as:

Datos de entrada Proceso Datos de salida

1. Metodologa para la solucin de problemas por medio de computadora:

Definicin del Problema: Esta fase est dada por el enunciado del problema, el cual requiere una
definicin clara y precisa. Es importante que se conozca lo que se desea que realice la computadora;
mientras sto no se conozca del todo, no tiene mucho caso continuar con la siguiente etapa.
Anlisis del Problema: Una vez que se ha comprendido lo que se desea de la PC, es necesario definir:
Los datos de entrada.
La informacin que se desea producir (salida)
Los mtodos y frmulas que se necesitan para procesar los datos.
Una recomendacin muy practica es el que nos pongamos en el lugar de la computadora y analicemos que
es lo que necesitamos que nos ordenen y en qu secuencia, para producir los resultados esperados.
Diseo del Algoritmo: Consiste en disear la serie de pasos organizados que describe el proceso que se
debe seguir, para dar solucin al problema especifico. Las caractersticas de un buen algoritmo son:
Debe tener un punto particular de inicio.
Debe ser definido, no debe permitir dobles interpretaciones.
Debe ser general, soportar las variantes que se puedan presentar en la definicin del problema.
Debe ser finito en tamao y tiempo de ejecucin.
Codificacin: Es la operacin de escribir la solucin del problema (de acuerdo a la lgica del diagrama de
flujo o pseudocdigo), en una serie de instrucciones detalladas (cdigo fuente), en un lenguaje
reconocible por la computadora (lenguaje de programacin de alto nivel).
Prueba y Depuracin: Los errores humanos dentro de la programacin de computadoras son muchos y
aumentan considerablemente con la complejidad del problema. El proceso de identificar y eliminar
errores, para dar paso a una solucin sin errores se le llama depuracin.
Documentacin: Es la gua o comunicacin escrita en sus variadas formas, ya sea en enunciados,
procedimientos, dibujos o diagramas. A menudo un programa escrito por una persona, es usado por otra.
Por ello la documentacin sirve para ayudar a comprender o usar un programa o para facilitar futuras
modificaciones (mantenimiento).
Mantenimiento: Se lleva a cabo despus de terminado el programa, cuando se detecta que es necesario
hacer algn cambio, ajuste o complementacin al programa para que siga trabajando de manera correcta.
Para poder realizarlo se requiere que el programa este correctamente documentado.

PAG. 6/6 - ARCHIVO: TEORIA DE ALGORITMOS


REGIONAL ATLANTICO - CENTRO NACIONAL COLOMBO ALEMAN - BARRANQUILLA

TECNICO EN PROGRAMACION DE SOFTWARE


2. Lenguajes de programacin:

2.1. Lenguaje: Es una serie de smbolos que sirven para transmitir uno o ms mensajes (ideas) entre dos
entidades diferentes. A la transmisin de mensajes se le conoce comnmente como comunicacin. La
comunicacin es un proceso complejo que requiere una serie de reglas simples, pero indispensables para
poderse llevar a cabo. Las dos principales reglas son:
Los mensajes deben correr en un sentido a la vez.
Deben existir 4 elementos: emisor, receptor, medio de comunicacin y mensaje.

2.2. Lenguaje de Programacin: Es un conjunto de smbolos, caracteres y reglas que le permiten a las
personas comunicarse con la computadora. Los lenguajes de programacin tienen un conjunto de
instrucciones que nos permiten realizar operaciones de entrada/salida, clculo, manipulacin de textos,
lgica/comparacin y almacenamiento/recuperacin. Los lenguajes de programacin se clasifican en:
Lenguaje de Mquina: Sus instrucciones son directamente entendibles por la computadora y no necesitan
traduccin para que la CPU pueda comprenderlas y ejecutarlas. Las instrucciones se expresan en
trminos de la unidad de memoria ms pequea: el bit (dgito binario 0 o 1).
Lenguaje de Bajo Nivel: Ensamblador. Las instrucciones se escriben en cdigos alfabticos conocidos como
mnemotcnicos para las operaciones y direcciones simblicas.
Lenguaje de Alto Nivel: Visual Basic, C++, Cobol, etc. Las instrucciones son escritas con palabras
similares a los lenguajes humanos (en general en ingls), lo que facilita la escritura y comprensin del
programa.

3. Traductores de lenguaje:

Los traductores de lenguajes son programas que traducen a su vez los programas fuente escritos en
lenguajes de alto nivel a cdigo mquina. Los traductores se dividen en Compiladores e Intrpretes.

3.1. Intrpretes: Un intrprete es un traductor que toma un programa fuente


escrito en un lenguaje de alto nivel, lo traduce y lo ejecuta a medida que lo
traduce. Es decir, el interpretador toma cada lnea del programa, la traduce, la
ejecuta y contina con la siguiente hasta terminar. Un lenguaje que soporta un
traductor de tipo intrprete se denomina lenguaje interpretado. BASIC es el
modelo por excelencia interpretado; los programas fuente en BASIC se escriben
con ayuda de un programa denominado editor que suele venir incorporado al
intrprete.

3.2. Compiladores: Un compilador es un programa que traduce un programa fuente escrito en lenguaje de
alto nivel a lenguaje de mquina. El programa escrito en lenguaje de alto nivel se llama programa fuente y
el programa traducido se llama programa objeto o cdigo objeto. El compilador traduce todo el programa
fuente sin ejecutarlo; luego de la traduccin la ejecucin puede realizarse. Lenguajes compilados tpicos
son: PASCAL, COBOL y C.

Fases de la compilacin: El programa objeto obtenido de la compilacin no ha sido traducido a cdigo


mquina sino a ensamblador. Para conseguir el programa de mquina real se debe utilizar un
programa llamado montador o enlazador (linker). El proceso de montaje conduce a un programa en
lenguaje mquina directamente ejecutable. Por ejemplo, la compilacin y ejecucin de un
Programa en C++ tiene los siguientes pasos:
1. Escritura del programa fuente con un editor (programa que permite a una computadora actuar como una
mquina de escribir electrnica) y guardarlo en un dispositivo de almacenamiento (un disco).
2. Introducir el programa fuente en memoria.
3. Compilar el programa con el compilador C++.
4. Verificar y corregir errores de compilacin (listado de errores).
5. Obtencin del programa objeto.
6. El montador obtiene el programa ejecutable.
7. Se ejecuta el programa y si no existen errores, se tendrn las salidas.

PAG. 6/6 - ARCHIVO: TEORIA DE ALGORITMOS


REGIONAL ATLANTICO - CENTRO NACIONAL COLOMBO ALEMAN - BARRANQUILLA

TECNICO EN PROGRAMACION DE SOFTWARE

4. Programas y algoritmos:

4.1. Programa: Un programa de computadora es un conjunto de instrucciones (rdenes dadas a la mquina)


que producirn la ejecucin de una determinada tarea. En esencia, un programa es un medio para conseguir
un fin. El fin ser definido como la informacin necesaria para solucionar un problema.

4.2. Algoritmo: La palabra algoritmo se deriva de la traduccin al latn de la palabra rabe alkhowarizmi,
nombre de un matemtico y astrnomo rabe que escribi un tratado sobre manipulacin de nmeros y
ecuaciones en el siglo IX. Un algoritmo es una serie de pasos organizados que describe el proceso que se
debe seguir, para dar solucin a un problema especfico. Los algoritmos pueden ser de dos tipos:
Cualitativos: Se describen los pasos utilizando palabras.
Cuantitativos: Se utilizan clculos numricos para definir los pasos del proceso.

4.3. Lenguajes Algortmicos: estn conformados por una serie de smbolos y reglas usadas para describir
los procesos.

Los lenguajes algortmicos pueden ser:


INICIO
LEA N
No grficos: Pseudocdigo. Representan en forma descriptiva los pasos que
debe realizar un algoritmo para solucionar el problema. El pseudocdigo es SI N>5 ENTONCES
una mezcla de lenguaje de programacin y espaol (o cualquier otro idioma) que ESCRIBA MAYOR
se emplea, en programacin estructurada, para realizar el pre-diseo de un FSI
programa. El pseudocdigo usa palabras que indican cada paso del proceso a FIN
realizar.

Grficos: Diagrama de flujo. Representan grficamente los pasos que debe INICIO
realizar un algoritmo para solucionar el problema. Esta representacin
grfica se d cuando varios smbolos (que indican diferentes procesos en la LEA N
computadora), se relacionan entre s mediante lneas que indican el rden en
que se deben ejecutar los procesos. Los smbolos que se pueden utilizar han V ESCRIBA
sido normalizados por el ANSI - Instituto Norteamericano de N>5
MAYOR
Normalizacin. F

FIN
Ventajas de utilizar pseudocdigo en lugar de diagrama de flujo :
Ocupa menos espacio en una hoja de papel
Permite representar en forma fcil operaciones repetitivas complejas
Es muy fcil pasar pseudocdigo a un programa en algn lenguaje de programacin.
Se pueden observar claramente los niveles que tiene cada operacin.

5. Expresiones:
PAG. 6/6 - ARCHIVO: TEORIA DE ALGORITMOS
REGIONAL ATLANTICO - CENTRO NACIONAL COLOMBO ALEMAN - BARRANQUILLA

TECNICO EN PROGRAMACION DE SOFTWARE

Las expresiones son combinaciones de operandos (datos), operadores (signos de operaciones) y smbolos de
agrupacin (parntesis). Ejemplo: a + (b + 3) / c. Cada expresin toma un valor que se determina tomando
los valores de los datos implicados y ejecutando sobre ellos las operaciones indicadas, de acuerdo con los
smbolos de agrupacin y la prioridad que las operaciones tengan entre s. Segn el tipo de operadores que
contienen, las expresiones se clasifican en: aritmticas, lgicas y relacionales.

5.1. Operandos: Los datos pueden ser clasificados segn la clase de valor que tengan o segn la
estabilidad de su valor en el tiempo:

Segn la clase de valor: Todos los datos tienen un tipo asociado con ellos, de acuerdo con su valor. Un
dato puede ser un simple carcter, tal como b o un valor entero tal como 35. Su clasificacin es:

Numricos (enteros y reales)


Simples Lgicos
Alfanumricos (carcter y cadenas)

Tipos de Arreglos (vectores y matrices)


datos Estructurados Apuntadores
Registros
Archivos

Def. por el usuario (enumerados)

Datos Numricos: Permiten representar valores escalares de forma numrica, esto incluye a los
nmeros enteros y los reales. Este tipo de datos permiten realizar operaciones aritmticas comunes.
Datos Lgicos: Son aquellos que solo pueden tener dos valores (cierto o falso) ya que representan el
resultado de una comparacin entre otros datos (numricos o alfanumricos).
Datos Alfanumricos: Es una secuencia de caracteres alfanumricos que permiten representar valores
identificables de forma descriptiva, esto incluye nombres de personas, direcciones, etc. Es posible
representar nmeros como alfanumricos, pero estos pierden su propiedad matemtica, es decir no es
posible hacer operaciones con ellos. Este tipo de datos se representa encerrados entre comillas.
Ejemplo: 1997

Segn la estabilidad de su valor en el tiempo: Un dato puede conservar su valor o pueden ir adquiriendo
valores diferentes a lo largo del tiempo. Segn esto, los datos pueden ser:

Constantes Numricas
Por su Contenido Lgicas
Tipos de Alfanumricas
datos Variables De Trabajo
Por su Uso Contadores
Acumuladores

Constante: dato que no cambia su valor durante la ejecucin del programa. Ejemplo: a = 3.14
Variable: espacio en la memoria del computador que permite almacenar un dato; su contenido puede
cambiar durante la ejecucin del programa. Para identificar una variable en memoria, es necesario
darle un nombre con el cual podamos mencionarla en un algoritmo.
Ejemplo: rea = pi * radio ^ 2 (variables: radio y rea, constante: pi)
Variable Numrica: almacena valores numricos, positivos o negativos. Ejemplo: a=0.15
Variable Lgica: solo puede tener dos valores (cierto o falso). Ejemplo: sw=F, res=V
Variable Alfanumrica: contiene carcteres alfanumricos (letras, nmeros y carcteres especiales).
Ejemplo: letra=a, apellido=Lopez, direccion=Av. Libertad #190
Variable de Trabajo: recibe el resultado de una operacin matemtica. Ejemplo: suma=a+b

PAG. 6/6 - ARCHIVO: TEORIA DE ALGORITMOS


REGIONAL ATLANTICO - CENTRO NACIONAL COLOMBO ALEMAN - BARRANQUILLA

TECNICO EN PROGRAMACION DE SOFTWARE


Variable Contador: controla el nmero de ocasiones en que se realiza una operacin o se cumple una
condicin; se incrementa generalmente de uno en uno. Ejemplo: cuenta=cuenta+1
Variable Acumulador: sirve para llevar la suma acumulativa de una serie de valores que se van leyendo o
calculando progresivamente. Ejemplo: suma=suma+c

5.2. Operadores: son elementos que relacionan de forma diferente los valores de uno o ms operandos
(variables y/o constantes). Es decir, los operadores nos permiten manipular valores. Los operadores deben
resolverse o evaluarse siguiendo un rden, precedencia o prioridad. Los tipos de operadores que existen
son: aritmticos, lgicos y relacionales.

5.2.1. Operadores Aritmticos: +, - , *, /, ^ (exponenciacin), mod (mdulo, residuo de divisin entera) y


div (cociente de divisin entera). Los operadores aritmticos permiten la realizacin de operaciones
matemticas sobre los operandos. Pueden ser utilizados con tipos de datos enteros o reales. Si ambos son
enteros, el resultado es entero; si alguno de ellos es real, el resultado es real. La prioridad de los
operadores aritmticos es:

( )

*, /, mod, div
+, -

Los parntesis anidados se evalan de dentro a fuera, el ms interno se evala primero. Los operadores
con igual nivel de prioridad se evalan de izquierda a derecha en el rden en que aparecen en la expresin.

Ejemplos: 3 + 5 * (10 - (2 + 4)) = 23


4 + 2 * 5 = 14 3 + 5 * (10 - 6) = 3 + 5 * 4 = 3 + 20 = 23
23 * 2 / 5 = 9.2 (1.5 + 3.0 * 4.1) = 28.98

5.2.2. Operadores Lgicos: (y, and, conjuncin), V (o, or, disjuncin), ~ (, no, not, negacin). Establecen
relaciones entre valores lgicos, que pueden ser resultado de una expresin relacional. La prioridad de los
operadores lgicos es:

~ (, no, not, negacin)


(y, and, conjuncin)
V (o, or, disjuncin)

Las expresiones con operadores lgicos (proposiciones) se evalan usando tablas de verdad, que muestran
los valores de verdad que puede tener una proposicin y las condiciones que los determinan. Una proposicin
tiene valor verdadero (V) o falso (F), pero no ambos a la vez.

p q pq p q pq p p p q pq p q pq
V V V V V V V F V V V V V V
V F F V F V F V V F F V F F
F V F F V V F V V F V F
F F F F F F F F V F F V

Ejemplos para a = V, b = V y c = F:
aVc Verdadero
a~b Falso

5.2.3. Operadores Relacionales: >, <, >=, <=, =, < > (diferente). Los operadores relacionales se utilizan
para establecer una relacin entre dos valores del mismo tipo, comparndolos entre s para producir un
resultado de certeza o falsedad. Los operadores relacionales tienen el mismo nivel de prioridad en su
evaluacin y tienen menor prioridad que los aritmticos.

Ejemplos para a = 10, b = 20 y c = 30:


PAG. 6/6 - ARCHIVO: TEORIA DE ALGORITMOS
REGIONAL ATLANTICO - CENTRO NACIONAL COLOMBO ALEMAN - BARRANQUILLA

TECNICO EN PROGRAMACION DE SOFTWARE


a+b>c Falso a - b = c Falso
a-b<c Verdadero a * b < > c Verdadero

5.2.4. Evaluacin de operadores de tipos diferentes: La prioridad a usar es la siguiente:

()

(exponenciacin)
~ (, no, not, negacin)
*, /, mod, div, (y, and, conjuncin)
+, -, V (o, or, disjuncin)
>, <, > =, < =, < >, =

Ejemplos para a = 10, b = 12, c = 13 y d =10:

1) ((a > b) or (a < c)) and ((a = c) or (a > = b))


F V F F
V F
F

2) ((a > = b) or (a < d)) and (( a > = d) and (c > d))


F F V V
F V
F

3) not (a = c) and (c > b)


F V
V
V

FUENTES DE INFORMACION:

1. CONCEPTOS BASICOS Y EJEMPLOS:


Luis Joyanes Aguilar, Problemas de Metodologa de la Programacin
Astrid Cabrera Garca, Material preparado para clases de algoritmos

PAG. 6/6 - ARCHIVO: TEORIA DE ALGORITMOS

You might also like