Sunteți pe pagina 1din 12

Anlisis del problema informtico

Cuando un usuario plantea a un programador un problema que resolver mediante


su ordenador, por lo general ese usuario tendr conocimientos ms o menos amplios sobre el
dominio del problema, pero no es habitual que tenga conocimientos de informtica. Por
ejemplo, un contable que necesita un programa para llevar la contabilidad de una empresa
ser un experto en contabilidad (dominio del problema), pero no tiene por qu ser experto
en programacin.
Del mismo modo, el informtico que va a resolver un determinado problema puede ser un
experto programador, pero en principio no tiene por qu conocer el dominio del problema;
siguiendo el ejemplo anterior, el informtico que hace un programa no tiene por qu ser un
experto en contabilidad.
Por ello, al abordar un problema que se quiere resolver mediante un ordenador, el
programador necesita de la experiencia del experto del dominio para entender el problema. Al
final, si se quiere llegar a una solucin satisfactoria es necesario que:

El problema est bien definido con el mximo detalle

Las especificaciones de las entradas y salidas del problema, deben ser descritas
tambin en detalle:

UNIDAD 2.- TEMA 2.2 REPRESENTACION DE ALGORITMOS:


GRAFICA Y PSEUDOCODIGO
octubre 8, 2013 de load2013

en

UNIDAD 2 ALGORITMOS.

REPRESENTACIN GRFICA
Introduccin.

Los diagramas de flujo son una manera de representar visualmente el flujo de


datos a travs de sistemas de tratamiento de informacin. Los diagramas de
flujo describen que operaciones y en que secuencia se requieren para
solucionar un problema dado.
Un diagrama de flujo u organigrama es una representacin diagramtica que
ilustra la secuencia de las operaciones que se realizarn para conseguir la
solucin de un problema. Los diagramas de flujo se dibujan generalmente
antes de comenzar a programar el cdigo frente a la computadora. Los
diagramas de flujo facilitan la comunicacin entre los programadores y la gente
del negocio. Estos diagramas de flujo desempean un papel vital en la
programacin de un problema y facilitan la comprensin de

problemas complicados y sobre todo muy largos. Una vez que se dibuja el
diagrama de flujo, llega a ser fcil escribir el programa en cualquier idioma de
alto nivel. Vemos a menudo cmo los diagramas de flujo nos dan ventaja al
momento de explicar el programa a otros. Por lo tanto, est correcto decir que
un diagrama de flujo es una necesidad para la documentacin mejor de un
programa complejo.
Reglas para dibujar un diagramas de flujo.

Los Diagramas de flujo se dibujan generalmente usando algunos smbolos


estndares; sin embargo, algunos smbolos especiales pueden tambin ser
desarrollados cuando sean requeridos. Algunos smbolos estndares, que se
requieren con frecuencia para diagramar programas de computadora se
muestran a continuacin:
Inicio o fin del programa

Pasos, procesos o lneas de instruccin


de programa de computo

Operaciones de entrada y salida

Toma de decisines y Ramificacin

Conector para unir el flujo a otra parte


del diagrama

Cinta magntica

Disco magntico

Conector de pagina

Lneas de flujo

Anotacin

Display, para mostrar datos

Enva datos a la impresora

Observacin:

Para obtener la correcta elaboracin de los smbolos, existen


plantillas. Las puedes conseguir en Papeleras.
Smbolos grficos
Dentro de los smbolos fundamentales para la creacin de diagramas de flujo,
los smbolos grficos son utilizados especficamente para para operaciones
aritmticas y relaciones condicionales. La siguiente es una lista de los smbolos
ms comnmente utilizados:
+

Sumar

Menos

Multiplicacin

Divisin

Mas o menos

Equivalente a

>

Mayor que

<

Menor que

Mayor o igual que

Menor o igual que

o <>

Diferente de

Si

No

True

False
Reglas para la creacin de Diagramas

Los Diagramas de flujo deben escribirse de arriba hacia abajo, y/o de izquierda
a derecha.

Los smbolos se unen con lneas, las cuales tienen en la punta una flecha que
indica la direccin que fluye la informacin procesos, se deben de utilizar
solamente lneas de flujo horizontal o verticales (nunca diagonales).
Se debe evitar el cruce de lneas, para lo cual se quisiera separar el flujo del
diagrama a un sitio distinto, se pudiera realizar utilizando los conectores. Se
debe tener en cuenta que solo se vana utilizar conectores cuando sea
estrictamente necesario.
No deben quedar lneas de flujo sin conectar
Todo texto escrito dentro de un smbolo debe ser legible, preciso, evitando el
uso de muchas palabras.
Todos los smbolos pueden tener ms de una lnea de entrada, a excepcin del
smbolo final.
Solo los smbolos de decisin pueden y deben tener mas de una lnea de flujo
de salida.
Ejemplos de diagramas de flujo

Diagrama de flujo que encuentra la suma de los primeros 50 nmeros


naturales

Bueno, y ahora la descripcin del diagrama anterior


Suma,

es la variable a la que se le va agregando la valor de cada nmero


natural. N, es el contador. ste recorrer lo nmeros hasta llegar al 50.
El primer bloque indica el inicio del Diagrama de flujo

El segundo bloque, es un Smbolo de procesos


En este
bloque se asume que las variables suma y N han sido declaradas previamente y
las inicializa en 0 para comenzar a el conteo y la suma de valores (Para
declararlas existe el bloque Tarjeta perforada).

El tercer bloque, es tambin un Smbolo de procesos


ste paso se incrementa en 1 la variable N (N = N + 1). Por lo que, en la
primera pasada esta N valdr 1, ya que estaba inicializada en 0.

En

El cuarto bloque es exactamente lo mismo que el

anterior
Pero en ste, ya se le agrega el valor de N a la
variable que contendr la suma (En el primer caso contendr 1, ya que N = 1).
El quinto bloque es uno Smbolo de Toma de decisiones y Ramificacin Lo que hay
dentro del bloque es una pregunta que se le hace a los valores que
actualmente influyen en el proceso (Por decir algo, no se como decirlo, soy

muy sope :D)


Es N=50?, Obviamente la respuesta es no,
ya que N todava es 1. por lo que el flujo de nuestro programa se dirigir haca
la parte en donde se observa la palabra no: Tercer Bloque, ste le sumar 1
(N=N+1) y vuelve a llegar a ste bloque, donde preguntar Es N=50? No!,
todava es 2. Ha pues, regresa al Tercer bloque y vuelve hacer lo mismo. Y as
hasta llegar a 50, obteniendo as la suma de los primeros 50 primeros nmeros
naturales.
Por ltimo indicamos que el resultado ser mostrado en la impresora (Este lo

puedes cambiarlo por el display para mostrar datos).

Fin del programa (o diagrama)

PSEUDOCODIGO

El pseudocdigo (falso lenguaje) es una descripcin de alto nivel de un


algoritmo que emplea una mezcla de lenguaje natural con algunas

convenciones sintcticas propias de lenguajes de programacin, como


asignaciones, ciclos y condicionales. Es utilizado para describir algoritmos en
libros y publicaciones cientficas, y como producto intermedio durante el
desarrollo de un algoritmo.
El pseudocdigo est pensado para facilitar a las personas el entendimiento de
un algoritmo, y por lo tanto puede omitir detalles irrelevantes que son
necesarios en una implementacin. Programadores diferentes suelen utilizar
convenciones distintas, que pueden estar basadas en la sintaxis de lenguajes
de programacin concretos. Sin embargo, el pseudocdigo en general es
comprensible sin necesidad de conocer o utilizar un entorno de programacin
especfico, y es a la vez suficientemente estructurado para que su
implementacin se pueda hacer directamente a partir de l.
Ejemplos de Pseudocdigo

Ejemplo: Realizar el pseudocdigo de un programa que permita calcular el rea


de un rectngulo. Se debe introducir la base y la altura para poder realizar el
clculo..
Programa; rea
Entorno: BASE, ALTURA, AREA son nmero enteros
Algoritmo:
escribir Introduzca la base y la altura
leer BASE, ALTURA
calcular AREA = BASE * ALTURA
escribir El rea del rectngulo es AREA
Finprograma
Ejemplo: Realizar el pseudocdigo que permita al usuario introducir por teclado
dos notas, calculando la suma y el producto de las notas.
Programa: SumaProducto
Entorno: NOTA1,NOTA2,SUMA,PRODUCTO son nmeros enteros
Algoritmo:
escribir Introduzca las notas
leer NOTA1,NOTA2

calcular SUMA = NOTA1 + NOTA2


calcular PRODUCTO = NOTA1 * NOTA2
escribir La suma de las dos notas es: SUMA
escribir El producto de las dos notas es :PRODUCTO
Finprograma

Ejemplo: Realizar el pseudocdigo de un programa que permita saber si un


nmero es mayor, menor o igual a cero.
Programa: ComparaNmeros
Entorno: NUMERO es un nmero entero
Algoritmo:
Escribir Introduzca un nmero
leer NUMERO
SI NUMERO>0 ENTONCES
escribir El nmero introducido es positivo
SI NO
SI NUMERO<0 ENTONCES
escribir El nmero introducido es negativo
SI NO
escribir El nmero es cero
FINSI
FINSI
Finprograma

Supongamos un algoritmo que lea las coordenadas de tres puntos y los mueva
tres puntos en la coordenada x y escriba el resultado en algn dispositivo de
salida:

ALGORITMO lee_tres_vertices
ENTRADA: las coordenadas (x,y) de tres puntos
SALIDA: las coordenadas (x,y) de los tres puntos movidos 3 puntos hacia la
derecha.
VARIABLES: i:entera
x,y: real
INICIO
PARA i=1 HASTA 3 CON INCREMENTO +1
ESCRIBE Abscisa del punto nmero , i
LEER x
ESCRIBE Ordenada del punto nmero , i
LEER Y
ESCRIBE El punto es ( x+3,y)
FIN_PARA
FIN
El programa equivalente a este algoritmo se muestra a continuacin. Como
podemos apreciar en un programa en Pascal es importantsimo no olvidar
detalles de sintaxis. Por ejemplo cada sentencia termina en punto y coma. De
cualquier forma es inmediato apreciar los simples cambios existentes.

program lee_tres_vertices;
var x,y:real;
i:integer;
begin
for i:=1 to 3 do
begin
write (Abscisa del punto nmero ,i); readln(x);

write (Ordenada del punto nmero ,i); readln(y);


writeln ( El punto es (,x+3,,,y,));
end;
end;

Problema: calcular y mostrar la suma de los diez primeros nmeros entre 1 y


1000 que sean divisibles por uno dado.

programa suma_divisibles
variables natural : divisor, suma, contador, nmero

inicio programa
divisor leer Introduce el divisor:
suma 0
contador 0
para nmero desde 1 hasta 1000 hacer
si divisor divide a nmero entonces
suma suma + nmero
contador contador + 1
fin si
si contador = 10 entonces
interrumpir
fin si
fin para

escribir La suma es, suma

fin programa