You are on page 1of 12

Introduccin a la Informtica 2009 Tema

Resolucin de problemas con computadoras. Algoritmos

1. Resolucin de problemas
La Informtica tambin puede definirse como la ciencia que estudia el anlisis y resolucin
de problemas utilizando computadoras. En esta definicin la palabra ciencia se relaciona con
una metodologa fundamentada y racional para el estudio y resolucin de los problemas. En
este sentido la Informtica se vincula especialmente con la Matemtica y la Ingeniera.
Como se mencion anteriormente, la computadora es una mquina digital con capacidad de
clculo numrico y lgico, que opera controlada por un programa almacenado. Esto quiere
decir que internamente tiene rdenes o instrucciones que la computadora podr leer,
interpretar y ejecutar ordenadamente.
En este sentido, un programa es un conjunto de instrucciones ejecutables en una
computadora, que permite cumplir una funcin especfica o requerimiento que debe
satisfacer.
Normalmente los programas alcanzan su objetivo en un tiempo finito, aunque algunas
aplicaciones, como por ejemplo un sistema de monitoreo de alarma, se ejecutan
indefinidamente, porque poseen un requerimiento de tiempo infinito.
Un programa sin errores ejecutado por una computadora, que comienza y termina
normalmente puede ser incorrecto si no cumple con los requerimientos definidos. Por
ejemplo: un programa de prediccin de clima debera estimar la temperatura mxima y
mnima prevista para cada da. Si en lugar de ello devuelve un promedio diario, o
temperaturas mxima y mnima esperadas en la semana, ser un programa que devuelve
un resultado en un tiempo finito pero no es correcto pues no son los resultados que se
requieren.
Para resolver problemas los programas operan con datos. Los datos representan objetos
del mundo real que permiten modelar aspectos de un problema que se desea resolver. Por
ejemplo, un sistema de administracin de alumnos de una universidad automatiza los
procesos de ingreso y seguimiento de las actividades acadmicas de los alumnos, tales
como inscripcin, cursado, exmenes, etc., qu datos representarn a las entidades que
intervienen en estos procesos: el alumno, la carrera, las materias, etc.?
Los datos reales son difciles de representar en una computadora, dado que es una mquina
digital binaria con capacidad de operar solo unos y ceros. Por lo tanto, la representacin de
los datos, aun los ms simples, como los nmeros, las letras, un nombre o un color,
requiere una transformacin desde el mundo real a alguna forma de representacin binaria
que pueda ser interpretada por la computadora.
Datos ms complejos como una imagen, una cancin o la trayectoria de un misil, tambin
son representados en forma binaria. Sin embargo, la forma de modelarlo e interpretarlo
requerir de un anlisis cuidadoso por parte de quien escribe el programa.
Por lo tanto, las dos cuestiones ms importantes que debe enfrentar quien debe escribir un
programa para resolver un problema mediante una computadora son:
- Definir el conjunto de instrucciones cuya ejecucin ordenada conduce a la solucin.
- Elegir la representacin adecuada de los datos del problema.
En sntesis, las computadoras son una poderosa herramienta para la resolucin de
problemas, pero su potencialidad est en funcin de la capacidad de programacin de
soluciones adecuadas a cada problema particular.
La funcin esencial del especialista informtico es explotar la potencialidad de las
computadoras (velocidad, exactitud, confiabilidad) para resolver problemas del mundo real.

Licenciatura en Sistemas de Informacin FACENA-UNNE Pg. 1


Introduccin a la Informtica 2009 Tema
3

Para lograr esto debe analizar el problema, ser capaz de sintetizar sus aspectos esenciales y
poder especificar la solucin que se desea. Posteriormente, debe expresar la solucin en
forma de programa, operando los datos del mundo real mediante una representacin vlida
en una computadora.

2. Etapas en la resolucin de problemas: el ciclo de vida del software


Desde el planteo inicial de un problema hasta que se obtiene el correspondiente programa
o aplicacin, su instalacin y funcionamiento en una computadora, se sigue una serie de
pasos que en conjunto constituyen lo que en Ingeniera de Software se denomina ciclo de
vida del software.
Si bien se reconoce que el proceso de disear programas es esencialmente creativo, los
pasos o etapas comunes que generalmente deben seguir los programadores son:
- Anlisis: Estudio detallado del problema con el fin de obtener una serie de
documentos (especificaciones o requerimientos) en los que quede totalmente
definido el proceso de la automatizacin.
- Diseo: Determinacin de una solucin o algoritmo para el problema planteado.
- Codificacin: La solucin se escribe en la sintaxis de un lenguaje de programacin,
obtenindose as el programa o cdigo fuente.
- Compilacin, ejecucin, verificacin y depuracin: El programa fuente se
convierte a cdigo binario ejecutable, se corre en la computadora, se comprueba
rigurosamente y se eliminan todos los errores que puedan detectarse.
- Mantenimiento. El programa se actualiza y modifica cada vez que sea necesario en
funcin de los requerimientos de los usuarios. Esta es la etapa ms larga del ciclo de
vida de desarrollo de software y puede durar muchos aos.
- Documentacin: Se documentan las distintas etapas del ciclo de vida del software,
fundamentalmente el anlisis, diseo y codificacin, a los que se agrega manuales de
usuario y de referencia, as como tambin normas para el mantenimiento.
Las dos primeras etapas conducen a un diseo detallado escrito en forma de algoritmo,
que permitir resolver el problema.
En la tercera etapa se implementa el algoritmo en un cdigo escrito en un lenguaje de
programacin, reflejando las ideas generadas en las etapas anteriores.
En la etapa de compilacin y ejecucin el cdigo se traduce a un lenguaje que la mquina
pueda entender y se ejecuta el programa, esto es, la computadora realiza una a una las
instrucciones dadas en el programa.
La verificacin y depuracin consiste en la bsqueda y eliminacin de los errores. Cuanto
mejor detallado y especfico sea el resultado de las etapas de anlisis y diseo, menor ser
la posibilidad de encontrar en la etapa de depuracin errores serios que requieran repetir
etapas previas, o sean difciles de identificar y corregir.
La documentacin es un elemento importante que hace a las buenas prcticas de
programacin, ayuda a la comprensin del cdigo y facilita su mantenimiento. No se trata
de una etapa independiente, sino que se desarrolla a medida que se avanza en cada una de
las otras etapas vistas.
Se describen a continuacin con ms detalle las tareas involucradas en cada etapa.

2.1. Anlisis del problema


Esta etapa requiere una clara definicin donde se contemple exactamente lo que debe hacer
el programa y el resultado o solucin deseada.

Licenciatura en Sistemas de Informacin FACENA-UNNE Pg. 2


Introduccin a la Informtica 2009 Tema
3

Para definir correctamente un problema es conveniente responder a las siguientes


preguntas:
- Qu entradas se requieren? (tipo y cantidad)
- Cul es la salida deseada? (tipo y cantidad)
- Qu mtodo produce la salida deseada?

2.2. Diseo del algoritmo


En la etapa de anlisis del proceso de programacin se determina qu deber hacer el
programa y en la etapa de diseo se especifica cmo har el programa la tarea solicitada.
Los mtodos ms eficaces para el proceso de diseo se basan la estrategia divide y
vencers. Esto quiere decir que la resolucin de un problema complejo se realiza dividiendo
el problema en subproblemas menos complejos, hasta llegar a un nivel cuya solucin pueda
ser implementada en una computadora. Este mtodo se conoce tcnicamente como diseo
descendente (top-down) o diseo modular, que se tratar ms detalladamente en las
materias de la carrera.

2.3. Codificacin de un programa


Codificacin es la escritura en un lenguaje de programacin de la representacin de un
algoritmo desarrollado en las etapas precedentes. Dado que el algoritmo es independiente
del lenguaje de programacin que ser utilizado para su implementacin, el cdigo se puede
escribir con igual facilidad en un lenguaje u otro.
Para realizar la conversin de un algoritmo en un programa, las operaciones indicadas en el
algoritmo se expresan en el lenguaje de programacin correspondiente, respetando sus
reglas y sintaxis. Esta operacin se realiza con un programa editor propio del lenguaje de
programacin o un editor de texto de uso general. Como resultado se obtiene un archivo
que se almacena en la computadora y se conoce como programa fuente.
El objetivo del programador debe ser escribir programas sencillos y claros, que sean fciles
de actualizar, ya sea por quien los escribi o por otros programadores.

2.4. Compilacin y ejecucin de un programa


La compilacin consiste en la traduccin del programa fuente a lenguaje de mquina. De
esta tarea se encarga el programa compilador del lenguaje de programacin. Si luego de la
compilacin se presentan errores (errores de compilacin), es necesario editar nuevamente
el programa, corregir los errores y compilar otra vez. Este proceso se repite hasta que no se
presenten ms errores, obtenindose el programa objeto, que todava no es ejecutable
directamente. A continuacin, se realiza la fase de montaje o enlace (link), que completa el
programa objeto con bibliotecas existentes (tambin conocidas como libreras) o rutinas
propias del compilador, para generar el programa ejecutable.
Cuando el programa ejecutable se ha creado (generalmente la extensin del archivo ser
.exe .com), se puede ejecutar el programa desde el sistema operativo con solo teclear su
nombre o hacer doble clic sobre el nombre (estas acciones dependen del entorno operativo
particular que se est manejando).
Ejemplos de programas ejecutables son: WINWORD.EXE (ejecutable del procesador de
textos Word), msnmsgr.exe (ejecutable del programa de mensajera instantnea Windows
Messenger), acroread.exe (ejecutable del visor de archivos PDF Acrobat Reader),
nod32krn.exe (programa ejecutable del antivirus NOD32).

2.5. Verificacin y depuracin de un programa


La verificacin de un programa es el proceso de comprobacin de la correccin de un
programa. Se realiza mediante la ejecucin del mismo con un conjunto de datos de pruebas

Licenciatura en Sistemas de Informacin FACENA-UNNE Pg. 3


Introduccin a la Informtica 2009 Tema
3

para determinar si el programa tiene errores. Este conjunto de datos de prueba o test debe
contener valores de datos de entrada normales, valores extremos de los datos para
comprobar los lmites, valores errneos y valores de entrada que comprueben casos
especiales del programa.
La depuracin es el proceso de encontrar los errores y corregir o eliminar dichos errores. En
general, existen tres tipos de errores:
- Errores de compilacin: Se producen normalmente por un uso incorrecto de las
reglas del lenguaje de programacin y suelen ser errores de sintaxis. Si hay errores
de sintaxis, la computadora no puede entender la instruccin, no se genera el
programa objeto y el compilador emite una lista con todos los errores encontrados
durante la compilacin. Por ejemplo: uso incorrecto de palabras reservadas, de
smbolos de separacin de instrucciones, etc.
- Errores de ejecucin: Se producen por instrucciones que la computadora puede
comprender pero no ejecutar. Ejemplos tpicos son operaciones en las que se
pretende dividir por cero y races cuadradas de nmeros negativos. En estos casos,
se detiene la ejecucin del programa y se imprime un mensaje de error. El programa
cancela, que es el trmino usual en la jerga informtica.
- Errores lgicos: Se producen en la lgica del programa y la fuente del error suele ser
el diseo del algoritmo. Estos errores son los ms difciles de detectar porque el
programa funciona sin producir mensajes de error, el error solo se advierte por la
obtencin de resultados incorrectos. En este caso se debe volver a la etapa de diseo
del algoritmo, modificar el algoritmo, cambiar el programa fuente y compilar y
ejecutar de nuevo.

2.6. Documentacin y mantenimiento


La documentacin de un programa consiste en la descripcin de los distintos pasos en el
proceso de resolucin de un problema. La importancia de la documentacin debe ser
destacada por su decisiva influencia en el producto final: programas pobremente
documentados son difciles de leer, ms difciles de depurar y casi imposibles de mantener y
modificar.
La documentacin de un programa puede ser: interna o externa. La interna es la contenida
en los comentarios del programa fuente, que son explicaciones intercaladas con el cdigo
para ayudar a comprender pasos especficos. Se identifican con una sintaxis especfica para
que el compilador las ignore, es decir, para que entienda que no es una instruccin que
debe ejecutar. Esta sintaxis depende del lenguaje de programacin utilizado (generalmente
es un smbolo especial al inicio del comentario).
La externa incluye anlisis, diagramas de flujo y/o pseudocdigos, y manuales del usuario
con instrucciones para ejecutar el programa y para interpretar los resultados.
La documentacin es especialmente importante cuando deben introducirse cambios en los
programas. Despus de cada cambio la documentacin debe ser actualizada.

3. Algoritmos: concepto y caractersticas


Un algoritmo es un mtodo para resolver problemas. Ms especficamente, es un conjunto
finito de reglas que dan una secuencia de operaciones para resolver un problema especfico.
El trmino proviene del matemtico persa Mohammed Al-khowarizmi que alcanz gran
repercusin por el enunciado de reglas paso a paso para sumar, restar, multiplicar y dividir
nmeros decimales.
Para llegar a la realizacin de un programa es necesario el diseo previo de un algoritmo,
de modo que sin algoritmo no puede existir un programa.

Licenciatura en Sistemas de Informacin FACENA-UNNE Pg. 4


Introduccin a la Informtica 2009 Tema
3

Los algoritmos son independientes tanto del lenguaje de programacin en que se expresan
como de la computadora que los ejecuta. En cada problema el algoritmo se puede expresar
en un lenguaje diferente de programacin o ejecutarse en una computadora distinta, sin
embargo el algoritmo ser siempre el mismo. As, por ejemplo, en una analoga con la vida
diaria, una receta de un plato de cocina se puede expresar en espaol, ingls o francs,
pero cualquiera sea el idioma, los pasos para la elaboracin del plato se realizarn sin
importar el idioma del cocinero.
En la ciencia de la computacin y en la programacin, los algoritmos son ms importantes
que los lenguajes de programacin o las computadoras. Un lenguaje de programacin es
tan solo un medio para expresar un algoritmo y una computadora es solo un procesador
para ejecutarlo. Tanto el lenguaje de programacin como la computadora son los medios
para obtener un fin: conseguir que el algoritmo se ejecute y se efecte el proceso
correspondiente.
Dada la importancia del algoritmo en la ciencia de la computacin, un aspecto muy
importante ser el diseo de algoritmos. El diseo de la mayora de los algoritmos requiere
creatividad y conocimientos profundos de la tcnica de la programacin.

3.1. Caractersticas de los algoritmos


Un algoritmo debe cumplir con las siguientes condiciones fundamentales:
1. Ser finito: Un algoritmo siempre debe terminar luego de un nmero determinado de
pasos.
2. Ser preciso (no ambiguo): Cada paso de un algoritmo debe estar precisamente
definido, las acciones a realizar deben especificarse de manera rigurosa y sin
ambigedades.

Ejemplo de algoritmo
Se requiere calcular la media de tres nmeros que ingresan por teclado.
Los pasos del algoritmo son:
1. Ingresar primer nmero
2. Ingresar segundo nmero
3. Ingresar tercer nmero
4. Sumar los tres nmeros
5. Dividir el resultado obtenido en el paso anterior por 3
6. Mostrar el cociente obtenido
La definicin de un algoritmo debe describir tres partes: Entrada, Proceso y Salida. La
informacin proporcionada al algoritmo constituye su entrada y la informacin producida por
el algoritmo constituye su salida.
En el algoritmo del ejemplo citado anteriormente se tendr:
Entrada: los nmeros.
Proceso: suma de todos los nmeros y divisin del resultado por tres.
Salida: media de los tres nmeros ingresados.

4. Mtodos de representacin de algoritmos


Una computadora solo es capaz de resolver un problema si se le indica paso a paso las
acciones que debe realizar. Estos pasos sucesivos constituyen, como ya se vio, el algoritmo.

Licenciatura en Sistemas de Informacin FACENA-UNNE Pg. 5


Introduccin a la Informtica 2009 Tema
3

Escribir un algoritmo consiste en realizar una descripcin del mtodo o conjunto de reglas
que se propone para resolver un problema. Estas reglas tienen las siguientes propiedades:
- Debe seguirse una secuencia definida de pasos hasta que se obtenga el resultado.
- Slo puede ejecutarse una operacin a la vez.
Adems, en todo algoritmo los datos manipulados son de importancia fundamental: se
busca obtener una determinada informacin a partir de datos bsicos del problema, por lo
que no es de extraar que en la escritura de algoritmos adquieran una identidad propia.
Como generalmente se querr aplicar el mismo algoritmo a conjuntos de datos de entrada
diferentes, estos datos se identifican en cada paso con un nombre, que ser reemplazado
en tiempo de ejecucin por los datos particulares que sea necesario tratar (por ejemplo, por
los datos ingresados a travs teclado u obtenidos de un archivo). En el ejemplo del clculo
de la media, visto anteriormente, los nmeros de entrada se identificarn con las variables
n1, n2, n3, o cualquier nombre que se desee.
El hecho de que un algoritmo deba especificar un conjunto finito y ordenado de pasos a
seguir, no es contradictorio con la posibilidad de realizar algunas de las operaciones solo
bajo ciertas condiciones (por ejemplo, calcular el recargo de una factura solo si est
vencida), indicar la repeticin de algunas de las instrucciones un nmero de veces conocido
de antemano (por ejemplo 10 veces) o aun un nmero no conocido de veces que se
determinar a partir de los datos de entrada recibidos (por ejemplo, mientras el operador
ingrese valores mayores que 0).
Estas acciones se conocen como alteraciones en el flujo de control, es decir en el orden de
ejecucin de las instrucciones del algoritmo, y permiten expresar las soluciones de
problemas complejos como la repeticin selectiva de operaciones sencillas.

Para escribir algoritmos se utilizan diversas tcnicas que buscan eliminar la ambigedad del
lenguaje coloquial en la especificacin de sus pasos. Los mtodos usuales para representar
un algoritmo son:
a) Diagrama de flujo
b) Lenguaje de especificacin de algoritmo: seudocdigo
c) Lenguaje natural: espaol, ingls,
d) Frmulas matemticas
Los mtodos c) y d) no son fciles de transformar en programas. Una descripcin en
espaol narrativo no es satisfactoria porque puede presentar ambigedades. Una frmula
sin embargo es un buen sistema de representacin. Una frmula permite obtener valores
desconocidos (salida) a partir de valores conocidos (datos) relacionados en una expresin
matemtica que indica las operaciones que se deben aplicar (algoritmo). Por ejemplo, las
frmulas para la solucin de una ecuacin cuadrtica (de segundo grado) son un medio
apropiado para expresar el procedimiento algortmico que se debe ejecutar para obtener las
races de la ecuacin.
Ejemplo:

Calcular las soluciones de ecuaciones de segundo grado: ax 2 + bx + c = 0


Las soluciones son dos y se obtienen como:
b + b2 4ac
x1 =
2a
b b2 4ac
x2 =
2a

Licenciatura en Sistemas de Informacin FACENA-UNNE Pg. 6


Introduccin a la Informtica 2009 Tema
3

En este caso los datos de entrada son los coeficientes a, b y c, y los resultados son los
valores de x1 y x2 que se obtienen aplicando las operaciones indicadas en la frmula.
Como se puede notar, las frmulas son especialmente tiles cuando los pasos a seguir se
pueden expresar como operaciones aritmticas y funciones matemticas.
Otra manera de representar un algoritmo es con diagramas de flujo. Constituyen un
recurso grfico, que facilita especialmente la visualizacin de alteraciones en el flujo de
control, pues utilizan flechas para indicar qu instruccin se debe ejecutar a continuacin.
Utiliza distintos smbolos que determinan la forma de interpretar el
INICIO
contenido de los mismos: como instrucciones a ejecutar, como
condiciones para determinar el siguiente paso del algoritmo, como
datos de entrada a obtener, como resultados a emitir, etc.
LEER
Ejemplo: n1, n2, n3

El diagrama de flujo que representa el algoritmo para calcular de


la media aritmtica de tres valores numricos es el siguiente:
media = (n1 + n2 + n3)/3

La media es: ,
media

FIN

Otra notacin para expresar algoritmos es el pseudocdigo.


Los datos y operaciones se expresan de la misma manera que en los diagramas de flujo,
pero las alteraciones en el flujo de control y las operaciones de entrada/salida se indican
mediante palabras clave. Esta forma de escribir algoritmos guarda semejanzas con las
sentencias disponibles en cualquier lenguaje de programacin, por lo que constituye una
prctica valiosa para la futura tarea de escribir y mantener programas, pero sus reglas son
ms flexibles, permitiendo as concentrarse en la estructura lgica del algoritmo, sin
preocuparse por las limitaciones que impondra trabajar con un lenguaje de programacin
en particular.
Si bien el pseudocdigo presenta muchas variantes, se convendr utilizar la sintaxis que se
presenta en los apartados siguientes, para facilitar el entendimiento durante el curso e
incorporar algunas prcticas de gran utilidad en la elaboracin de algoritmos y programas.
Ejemplo:
El mismo algoritmo representado en el diagrama de flujo, en un pseudocdigo se
representar de la siguiente manera:
VARIABLES
REAL: media
ENTERO: n1, n2, n3
INICIO
LEER n1, n2, n3
media = (n1 + n2 +n3)/3
ESCRIBIR media
FIN

A continuacin, profundizaremos en las tcnicas que se utilizarn en esta materia:

Licenciatura en Sistemas de Informacin FACENA-UNNE Pg. 7


Introduccin a la Informtica 2009 Tema
3

4.1.1. Diagrama de flujo


Un diagrama de flujo (flowchart) es una de las tcnicas de representacin de algoritmos
ms antiguas y a la vez ms utilizada, aunque su utilizacin ha disminuido desde la
aparicin de los lenguajes de programacin estructurados.
Un diagrama de flujo es un mtodo de representacin grfica que utiliza un conjunto de
smbolos, de forma que cada paso del algoritmo se visualiza dentro del smbolo adecuado y
el orden en que se realizan los pasos se representa por medio de flechas que indican el flujo
lgico del algoritmo.
Smbolos utilizados en diagramacin:
Smbolos
Funcin
principales
Terminal: representa el comienzo INICIO o el final FIN de un programa. Puede
representar tambin una parada o interrupcin programada que sea necesario
realizar.
Entrada/Salida: Cualquier tipo de introduccin de datos en la memoria desde los
perifricos entrada o salida de la informacin procesada en un perifrico
salida.
Proceso: Cualquier tipo de operacin que pueda significar cambio de valor,
formato o posicin de la informacin almacenada en la memoria, operaciones
aritmticas, de transferencias, etc.)

Decisin: Indica operaciones lgicas o de comparacin entre datos


(normalmente dos) y en funcin del resultado de la misma determina cul de las
distintas alternativas debe seguir; normalmente tiene dos salidas- respuestas SI
o NO- pero puede tener 3 o ms, segn los casos.

Conector en la misma pgina: sirve para enlazar dos partes cualquiera de un


diagrama indicando un conector en la salida y otro en la entrada.

Secuencia: El sentido de la flecha indica el flujo o secuencia de las operaciones


del diagrama.
Conector fuera de pgina: Conexin entre dos puntos del diagrama situados en
pginas diferentes.

Llamada a subrutina o subprograma: Un subrutina es un mdulo independiente


del programa principal que recibe una entrada procedente de dicho programa,
realiza una tarea determinada y regresa, al terminar, al programa principal.

Pantalla: se utiliza en ocasiones en lugar del smbolo de E/S.

Impresora: se utiliza en ocasiones en lugar del smbolo de E/S.

Teclado: se utiliza en ocasiones en lugar del smbolo de E/S.

Almacenamiento secundario en disco

Comentarios: Permite agregar comentarios en cualquier parte del diagrama

Ventajas de los diagramas:


- Rpida comprensin de las relaciones.
- Anlisis efectivo: Puede dividirse en secciones detalladas para su estudio.
- Comunicacin: es ms visual, "una imagen dice ms que mil palabras".
- Documentacin.
- Codificacin eficiente.

Licenciatura en Sistemas de Informacin FACENA-UNNE Pg. 8


Introduccin a la Informtica 2009 Tema
3

Limitaciones:
- Los diagramas complejos y detallados pueden ser muy laboriosos de realizar y de
consultar.
- No existen normas que indiquen el nivel de detalles que debe incluirse en un
diagrama.

Un ejemplo de diagramacin:

Problema: Obtener el promedio de notas de alumnos de Introduccin a la Informtica:

En el diagrama A, se utiliza el lenguaje natural para la especificacin de las instrucciones


(Leer nota de un alumno), la idea principal es mostrar el tipo de instruccin que se
especifica en cada smbolo y el orden en que deben realizarse las rdenes para llegar al
resultado.
En el diagrama B, las especificaciones se formalizan utilizando variables. Las variables
representan a los datos que se procesan. Ms adelante veremos que estas variables
representan la posicin de memoria RAM en la que estn ubicados los datos. Esta referencia
a una ubicacin obliga a que se respete el nombre asignado cada vez que hacemos
referencia a ese dato.
En el ejemplo, la variable ContAlum es una posicin de memoria que al principio del
programa se pone en 0 para ir incrementando el valor que contiene por cada alumno que
se procese. Si, en lugar del nombre asignado al inicio, hacemos referencia a ella con el
nombre CuentaAlum, la computadora no entender que nos referimos al mismo dato.
El nombre de una variable debe ser nemotcnico, es decir, representativo de su contenido.
Este nombre debe respetarse en todo el diagrama.

Licenciatura en Sistemas de Informacin FACENA-UNNE Pg. 9


Introduccin a la Informtica 2009 Tema
3

Las constantes alfanumricas se utilizan en un diagrama como caracteres encerrados


entre comillas. En el ejercicio ejemplo, el valor del promedio calculado se mostrar en papel
impreso con la leyenda Promedio de notas.
El sentido de las flechas indica la secuencia de ejecucin de las instrucciones. Observe en el
ejercicio que la instruccin de poner en 0 las variables se realiza una sola vez, mientras que
la instruccin leer nota del alumno se realiza tantas veces como alumnos se procesen.
En la representacin de algoritmos, se suelen utilizar los siguientes trminos para
representar las operaciones ms usuales:
Acumulador:
Un acumulador es una variable, definida por el programador, que hace referencia a una
direccin de memoria que almacenar un "total mvil" de valores individuales a medida
que vayan apareciendo en el proceso. Por ejemplo, las notas de los alumnos. Esta direccin
o posicin de memoria debe ser inicializada en cero.
Contador:
Es una variable que se incrementa en un valor constante y se utiliza para registrar el
nmero de veces que se presenta un evento. Ejemplo: para contar los alumnos procesados,
se incrementa en 1 por cada lectura de datos de alumnos.

Iteracin o bucle (loop):


Es un conjunto de instrucciones que se procesa repetidamente hasta que se cumpla la
condicin de salida. En el ejemplo, las instrucciones de contar alumnos y acumular notas se
realizan tantas veces como alumnos se procesen.

Otros ejemplos de diagramas de flujo:

b) Programa que deduce el salario neto de un


trabajador a partir de la lectura del nombre, a) Suma de los nmero pares
horas trabajadas, precio de la hora. Se sabe comprendidos entre 2 y 100.
tambin, que los impuestos aplicados

Inicio Inicio

LEER suma = 2
nombre, nmero = 4
horas, precio

suma = suma + nmero


bruto = horas * precio

nmero = nmero + 2
impuesto = 0.25 * bruto SI

neto = bruto - impuesto nmero <=100

NO

nombre, bruto,
impuesto, neto suma

Fin Fin

Licenciatura en Sistemas de Informacin FACENA-UNNE Pg. 10


Introduccin a la Informtica 2009 Tema
3

c) Clculo de los salarios mensuales de los empleados de una empresa, sabiendo que
estos se calculan en base a las horas semanales trabajadas y de acuerdo a un
precio especificado por horas. Si se pasan de 40 hs semanales, las horas extras se
pagarn a razn de 1,5 veces la hora ordinaria.

Inicio

LEER nombre.
horas,
precio_hora

Horas <= 40

salario = 40 * precio_hora
salario = horas *
+ 1,5 * precio_hora *
precio_horas
(horas 40)
SI

nombre, salario

Hay ms
datos?

No

Fin

4.1.2. Seudocdigo
El pseudocdigo es un lenguaje de especificacin (descripcin) de algoritmos, que facilita
el paso a la codificacin o traduccin a un lenguaje de programacin.
El pseudocdigo naci como un lenguaje similar al ingls y era un medio de representar las
estructuras de control de la programacin estructurada, que veremos ms adelante.
Se considera un primer borrador del programa, dado que necesariamente tiene que ser
traducido a un lenguaje de programacin. Un pseudocdigo no puede ser ejecutado por una
computadora directamente.
Ventajas:
- El programador puede concentrarse en la lgica y en las estructuras de control del
programa sin preocuparse por las reglas de un lenguaje de programacin especfico.
- Facilita la modificacin del algoritmo si se descubren errores.
- Puede ser traducido fcilmente a lenguajes de programacin estructurados tales
como Pascal, Fortran, C, C#, etc.
Todo seudocdigo debe posibilitar la descripcin de:
- Instrucciones de entrada/salida.
- Instrucciones de proceso.
- Sentencias de control del flujo de ejecucin.
- Acciones compuestas, que se refinan posteriormente (subprogramas o rutinas).
Asimismo, tendr la posibilidad de describir datos, tipos de datos, variables, expresiones,
archivos y cualquier otro objeto que sea manipulado por el programa.

Licenciatura en Sistemas de Informacin FACENA-UNNE Pg. 11


Introduccin a la Informtica 2009 Tema
3

El pseudocdigo original utiliza para representar las acciones sucesivas palabras reservadas
en ingls - similares a sus homnimas en los lenguajes de programacin -, tales como
start, end, stop, if-then-else, while-end, repeat-until, etc. Sin embargo, las palabras
reservadas pueden ser escritas tambin en castellano.
La escritura de pseudocdigo exige normalmente la indentacin (sangra en el margen
izquierdo) para describir las acciones en sus estructuras de control correspondientes.
La representacin en pseudocdigo del diagrama ejemplo mostrado en a) del punto 5.1.1,
sera:
VARIABLES
REAL: horas, precio_hora, salario_bruto, impuesto, salario_neto
CHAR: nombre
// clculo del salario neto
INICIO
LEER nombre, horas, precio_hora
salario_bruto = horas * precio_hora
impuesto = 0,25 * salario_bruto
salario_neto = salario_neto impuesto
ESCRIBIR nombre, salario_bruto, impuesto, salario_neto
FIN
El algoritmo empieza con la palabra INICIO y finaliza con la FIN (START, END en ingls).
La lnea precedida por // se denomina comentario. Es informacin al lector del programa y
no realiza ninguna accin ejecutable, slo tiene efecto de documentacin interna.

En esta materia se utilizar, como convencin propia, escribir las palabras reservadas en
maysculas y los trminos en espaol, y adems en ingls, con el objeto de familiarizar a
los alumnos en las dos nomenclaturas. En los temas siguientes, se detallar el formato de
pseudocdigo de cada estructura de control en el contexto de la programacin estructurada.

Licenciatura en Sistemas de Informacin FACENA-UNNE Pg. 12