You are on page 1of 12

UNIVERSIDAD PRIVADA ANTENOR ORREGO

INGENIERA DE COMPUTACIN Y SISTEMAS


FUNDAMENTOS DE PROGRAMACIN 1

WALTER LAZO AGUIRRE


ALGORITMOS

ALGORITMOS
Las etapas en la resolucin de problemas usando como herramienta la computadora son:
1) Anlisis del Problema.
2) Diseo de un algoritmo.
3) Implementacin de un programa para computadora.

1.- Anlisis del Problema:


Exige la lectura previa del problema, las veces que sean necesarias, a fin de tener una idea
clara de lo que se solicita.
El problema debe ser definido y comprendido claramente. Se debe definir cules son las
entradas que se requieren y las salidas que se desean obtener.
El anlisis debe permitir saber:
Qu informacin debe proporcionar la resolucin del problema?.
Qu datos se necesitan para resolver el problema?.
Con qu datos se cuenta?
Como resultado del anlisis del problema, se tiene el Esquema de Flujo de Datos (EFD),
que nos muestra cuales son los datos que ingresan y cules son los datos que se producen.
Adems sirve como evidencia de haber realizado el anlisis.
Representacin del EFD:
Datos de
Entrada

PROCESO

Datos de
Salida

Luego del anlisis se puede pasar a la siguiente etapa : Diseo de un Algoritmo.

2.- Diseo de un Algoritmo:


Un algoritmo es un conjunto de reglas (sin ambigedades) que se aplican paso a paso en
forma ordenada para solucionar un problema.
De manera general, en un algoritmo se deben definir claramente las siguientes partes:
Inicializacin de variables.
Entrada de datos.
Procesos a seguir.
Salida de resultados.
Al expresar un algoritmo hay que realizar una descripcin de los pasos a seguir para
resolver un problema y recordar que las reglas del algoritmo deben seguir una secuencia
bien definida de pasos hasta que se obtenga un resultado y que slo pueda ejecutarse una
operacin a la vez.
Caractersticas de un Algoritmo
Debe ser preciso: es decir debe indicar el orden exacto de realizacin de cada etapa,
evitando acciones innecesarias.

UNIVERSIDAD PRIVADA ANTENOR ORREGO


INGENIERA DE COMPUTACIN Y SISTEMAS
FUNDAMENTOS DE PROGRAMACIN 1

WALTER LAZO AGUIRRE


ALGORITMOS

Debe estar definido: significa que si se ejecuta un algoritmo 2 o ms veces, con los

mismos valores iniciales, se debe obtener el mismo resultado todas las veces.
Debe ser finito: esto significa que si se sigue un algoritmo, se debe terminar en algn

momento, es decir, debe tener un nmero finito de pasos.


Debe tener un nico punto de entrada o inicio y uno de salida o fin.
Todas las etapas o pasos a seguir son ejecutables.
Deben ser NO AMBIGUOS.
Herramientas para representar algoritmos
Un algoritmo se puede representar utilizando las siguientes herramientas:
Lenguaje Natural
Diagramas de Flujo
Pseudocdigo
Diagrama Estructurado (N-S).

3.-Implementacin de un Programa para Computadora:


Despus que el algoritmo se ha diseado y representado mediante alguno de las
herramientas indicadas anteriormente, se debe elaborar un programa para computadora,
utilizando algn lenguaje de programacin.
Esta fase se denomina Programacin y consta de las siguientes partes:
a)

Codificacin
Es el proceso de convertir un algoritmo a un programa, escrito en un lenguaje de
programacin. La codificacin requiere el uso de un programa editor que permita
crear los programas a las que se denomina Programas Fuente.

b)

Compilacin y Ejecucin
Una vez que se ha escrito el programa fuente, se debe traducir a lenguaje mquina,
para obtener el correspondiente programa objeto, que es el que ejecuta la
computadora.
Si durante la traduccin se detectan errores de sintaxis, el compilador informa al
usuario cules son y cul es su posible ubicacin.
Depuracin
Es el proceso de localizar y corregir errores.
Existen 3 posibles tipos de errores cuando se ejecuta un programa:

c)

1. Errores de Sintaxis: Se generan por el uso incorrecto de las reglas de sintaxis del
lenguaje de programacin. El compilador informa al programador acerca de la
existencia de estos errores. Se detectan en tiempo de compilacin.
2. Errores de Ejecucin: Se producen por instrucciones que el computador entiende
pero que no puede ejecutar. Por ejemplo una divisin por cero, sacar la raz
cuadrada de un nmero negativo, almacenar un dato en una zona prohibida de
memoria, etc. Se detectan al momento de ejecutar el programa.
3. Errores Lgicos: Ocurren cuando se le da a la computadora una secuencia
incorrecta de instrucciones, aunque cada instruccin pueda ejecutarse sin ningn
problema. Estos errores son los ms difciles de ubicar.

UNIVERSIDAD PRIVADA ANTENOR ORREGO


INGENIERA DE COMPUTACIN Y SISTEMAS
FUNDAMENTOS DE PROGRAMACIN 1

WALTER LAZO AGUIRRE


ALGORITMOS

d)

Verificacin
Consiste examinar lo que hace un programa, cmo lo hace. Constatar si
efectivamente hace lo que se desea, y si no lo hace, entonces determinar las causas
por las que falta.

e)

Optimizacin
Cuando se consigue hace funcionar correctamente un programa, el paso siguiente es
perfeccionarlo para que funcione mejor.
La optimizacin es una etapa de refinamiento, que puede incluir: eliminar
instrucciones innecesarias, hacer mejores presentaciones de reportes, etc.

f)

Documentacin
La documentacin sirve para describir lo que hace un programa, como fue
construido, para qu sirven determinadas variables o bloques de instrucciones y
como tiene que ser utilizado.
Una buena documentacin ayuda a comprender, mejorar y modificar los programas.
Puede ser interna, mediante la inclusin de comentarios en el programa o puede ser
externa.

ESTRUCTURAS DE CONTROL BSICAS UTILIZADAS EN PROGRAMACIN


Todo problema se puede plantear en base a 3 tipos de instrucciones, independientemente
del tipo de problema. Estos tipos de instrucciones se denominan Estructuras Bsicas de
Control y son las siguientes:
a) Proceso o Secuencia
Es una operacin sencilla. Indica un solo paso o accin a realizar.
Cuando se encuentra en el programa siempre se realiza.
Algunos ejemplos de procesos o secuencias son: Inicializar Variables, Entrada o Salida
de Datos, Operaciones Algebraicas, Incrementar Contadores , Llamadas a
Subprogramas, etc.
b) Decisin o Seleccin
Ocurre cuando una o ms acciones se pueden llevar a cabo, dependiendo del valor de
una condicin especfica.
Cuando se tiene que tomar una decisin se admiten slo dos posibles respuestas: SI o
NO o sus equivalentes VERDADERO o FALSO (V/F).
c) Iteracin o Repeticin
Se utiliza cuando ciertas acciones se Repiten mientras se cumpla una condicin o hasta
que se cumpla una condicin.

UNIVERSIDAD PRIVADA ANTENOR ORREGO


INGENIERA DE COMPUTACIN Y SISTEMAS
FUNDAMENTOS DE PROGRAMACIN 1

WALTER LAZO AGUIRRE


ALGORITMOS

HERRAMIENTAS PARA REPRESENTACIN DE ALGORITMOS


Son herramientas que permiten que la descripcin de un algoritmo pueda servir ms
fcilmente para su codificacin en algn lenguaje de programacin.
Las herramientas ms utilizadas son:
Lenguaje Natural
Diagramas de Flujo
Pseudocdigo
Diagramas Estructurado (N-S).
Lenguaje Natural
Consiste en expresar el algoritmo, realizando una descripcin paso a paso del
procedimiento a seguir, en nuestro propio lenguaje, utilizando nuestras propias palabras.
Caracterstica:
Se pueden utilizar todas las palabras que se crean necesarias y convenientes.
Esto puede ser una ventaja pues permite explicar detalladamente los pasos a seguir.
Tambin puede ser una desventaja, pues al usar demasiadas palabras puede causar
confusin, inducir a error e incluso ser tedioso de leer.
1) Calcular el rea de un crculo de Radio R.
Anlisis: EFD
R

PROCESO

Aci

Diseo de Algoritmo
1.-Primero debo conocer el valor del radio del crculo.
2.-Luego conociendo el valor del radio del crculo, calcular el rea del crculo
utilizando la siguiente frmula: Aci = R2
3.-Finalmente escribir el rea calculada.
2) Calcular el rea y permetro de un cuadrado de lado L.
Anlisis: EFD
L

PROCESO

Ac, Pe

Diseo de Algoritmo
1.-Primero se debe conocer el valor del lado del cuadrado.
2.-Luego conociendo el valor del lado del cuadrado, calcular el rea del cuadrado
utilizando la siguiente frmula: Ac =
L*L y luego calcular el permetro del
cuadrado aplicando la frmula Pe= 4L.
3.-Finalmente escribir el rea y permetro calculado.

UNIVERSIDAD PRIVADA ANTENOR ORREGO


INGENIERA DE COMPUTACIN Y SISTEMAS
FUNDAMENTOS DE PROGRAMACIN 1

WALTER LAZO AGUIRRE


ALGORITMOS

Diagrama de Flujo
Es un diagrama que representa en forma grfica los pasos que se siguen para resolver un
problema. Consiste de un conjunto de smbolos que representan distintas clases de
operaciones, los cuales se encuentran unidos por flechas, las que indican cual es el flujo del
algoritmo.
Entre los principales smbolos se tiene:
SMBOLO

SIGNIFICADO
Sirve para indicar el Inicio o Fin del
algoritmo

Representa la entrada de datos o salida


de resultados. (Salida por pantalla).
Representa un proceso o secuencia. Una
de las 3 estructuras bsicas de control.

Representa una toma de Decisin o


Seleccin. Admite slo dos posibles
respuestas SI / NO (V / F).

Representa un proceso predefinido o


Subprograma.

El crculo se usa como conector de


flujo.

Este smbolo representa salida de


resultados por Impresora.

La unin de todos estos smbolos por flechas nos indican cmo se ejecuta el algoritmo
desde el inicio hasta el final.
5

UNIVERSIDAD PRIVADA ANTENOR ORREGO


INGENIERA DE COMPUTACIN Y SISTEMAS
FUNDAMENTOS DE PROGRAMACIN 1

WALTER LAZO AGUIRRE


ALGORITMOS

Ejemplos:
1) Calcular el rea de un crculo de Radio R.
Anlisis: EFD
R

PROCESO

Aci

Diseo de Algoritmo
Inicio

Variables: R, Aci

Leer R

Aci= *R*R

Escribir Aci

Fin

2) Calcular el rea y permetro de un cuadrado de lado L.


Anlisis: EFD
L

PROCESO

Ac, Pe

Diseo de Algoritmo
Inicio

Variables: L, Ac, Pe

Leer L

Ac = L*L

Pe = 4L

Escribir Ac, Pe

Fin

UNIVERSIDAD PRIVADA ANTENOR ORREGO


INGENIERA DE COMPUTACIN Y SISTEMAS
FUNDAMENTOS DE PROGRAMACIN 1

WALTER LAZO AGUIRRE


ALGORITMOS

Pseudocdigo
Es un lenguaje de especificacin de algoritmos, que permite representar un algoritmo en
forma independiente de los lenguajes de programacin.
Se utiliza palabras que son comunes en los lenguajes de programacin.
Su uso permite concentrarse en la lgica del programa y en las estructuras de control sin
preocuparse por las reglas de un determinado lenguaje de programacin.
Tambin usa las 3 estructuras Bsicas de Control: Secuencia o Proceso, Decisin o
Seleccin e Iteracin o Repeticin, las cuales las representa mediante un conjunto de
palabras Reservadas. As se tiene:
1) PROCESOS:
No tiene palabras especiales.
2) DECISIN o SELECCIN:
Se representa mediante las palabras reservadas
Sintaxis:
IF

condicin

IF THEN ELSE
Significado:

THEN instruccin 1
instruccin 2
....................
END _ THEN

ELSE
instruccin 3
instruccin 4
....................
END_ ELSE

El uso ELSE es opcional


IF condicin THEN instruccin 1
instruccin 2
....................
END _ THEN

SI CONDICION
SE CUMPLE

ENTONCES
REALIZAR
instruccin 1
instruccin 2
....................

FIN _ ENTONCES
EN_CASO_CONTRARIO
REALIZAR
instruccin 3
instruccin 4
...................

FIN _ CASO _ CONTRARIO

El uso de EN CASO CONTRARIO, es opcional

SI condicion
Se cumple

ENTONCES

REALIZAR
instruccin 1
Instruccin 2

FIN _ ENTONCES

NOTA: Si se va a ejecutar una sola instruccin entonces no es necesario el uso de END _


THEN ni de END _ ELSE.

UNIVERSIDAD PRIVADA ANTENOR ORREGO


INGENIERA DE COMPUTACIN Y SISTEMAS
FUNDAMENTOS DE PROGRAMACIN 1

WALTER LAZO AGUIRRE


ALGORITMOS

3) ITERACIN o REPETICIN:
Utiliza las palabras reservadas: DO/WHILE, WHILE/DO Y FOR

Sintaxis:

DO/WHILE

DO
accin 1
accin 2
.............
WHILE condicin

Sintaxis: WHILE/DO
WHILE condicin DO
accin 1
accin 2
.............
.............
END _ DO

Sintaxis: FOR
FOR Expr1; Expr2; Expr3
accin1
accin2
accin3
.
END_FOR

Significado
HACER
accin 1
accin 2
.............
MIENTRAS se
cumpla una
condicin

Significado:
MIENTRAS se cumpla HACER
condicin

accin 1
accin 2
.............
.............
FIN _ HACER

Significado:
PARA Expr1; Expr2; Expr3
accin1
accin2
accin3
.
FIN_PARA

Expr1: Inicializar o asignar el valor inicial de una variable.


Expr2: valor final de la variable o una condicin de trmino.
Expr3: Incremento de una variable

UNIVERSIDAD PRIVADA ANTENOR ORREGO


INGENIERA DE COMPUTACIN Y SISTEMAS
FUNDAMENTOS DE PROGRAMACIN 1

WALTER LAZO AGUIRRE


ALGORITMOS

Ejemplos:
1) Calcular el rea de un crculo de Radio R.
Anlisis: EFD
R

PROCESO

Aci

Diseo de Algoritmo
Inicio
1,.Leer R
2.-Calcular Aci = R2
3.-Escribir: Aci
Fin

2) Calcular el rea y permetro de un cuadrado de lado L.


Anlisis: EFD
L

PROCESO

Ac, Pe

Diseo de Algoritmo
Inicio
1.-Leer L
2.-Calcular Ac = L*L
3.-Calcular Pe = 4L
3.-Escribir: Ac, Pe
Fin

3) Calcular el rea de un tringulo de Base B y altura H.


Anlisis: EFD
B,H

PROCESO

At

Diseo de Algoritmo
Inicio
1.-Leer B,H
2.-Calcular At = (B*H)/2
3.-Escribir: At
Fin

UNIVERSIDAD PRIVADA ANTENOR ORREGO


INGENIERA DE COMPUTACIN Y SISTEMAS
FUNDAMENTOS DE PROGRAMACIN 1

WALTER LAZO AGUIRRE


ALGORITMOS

Diagrama Estructurado (NASSI-SCHNEIDERMAN o N-S )


Es otra forma de representar los algoritmos grficamente.
Es un diagrama algo similar a los diagramas de flujo en el que se omiten las flechas y las
figuras que se usan son rectngulos contiguos.
Las estructuras Bsicas de Control las representa de la siguiente forma:
1)PROCESOS o SECUENCIAS:
Se representa mediante un rectngulo.

2)DECISIN o SELECCIN:

Se representa mediante la siguiente figura:


condicin
V
accin 1

F
accin 3

accin 2

accin 4

...........

............

...........

...........

Es equivalente a: IF/THEN/ELSE
IF condicin THEN accin 1
se cumple
accin 2
............
END_THEN
ELSE accin 3
accin 4
.............
END_ELSE

3)ITERACIN o REPETICIN:
Se representa mediante las siguientes figuras:
a)DO/WHILE
accin 1
accin 2

Similar a DO/WHILE de Pseudocdigo.


DO

accin 1
accin 2
accin.3
............

accin 3
............

WHILE se cumple
condicin

condicin

10

UNIVERSIDAD PRIVADA ANTENOR ORREGO


INGENIERA DE COMPUTACIN Y SISTEMAS
FUNDAMENTOS DE PROGRAMACIN 1

b)WHILE
condicin

WALTER LAZO AGUIRRE


ALGORITMOS

Similar a: WHILE/DO de Pseudocdigo.


WHILE se cumpla DO
condicin

accin 1
accin 1
accin 2
accin 2
accin 3
accin 3
............
............

c)FOR

END-DO

Similar a: FOR de Pseudocdigo.

V= ValorInicio; Condicin ; Incremento

PARA V=ValorInicio, ValorFin, Incremento

accin 1

accin1

accin 2

accin2

accin 3
............

accin3
.
FIN_PARA

NOTAS
Las acciones sucesivas se representan en rectngulos sucesivos.
Utilizando cualquiera de las herramientas: Diagramas de flujo, Pseudocdigo o
Diagramas N-S, se puede:
o Utilizar una seleccin dentro de otra seleccin (selecciones anidadas).
o Utilizar iteraciones dentro de otra iteracin (iteraciones anidadas)
o Combinar selecciones, iteraciones y /o secuencias en cualquier orden.

Cuando se desarrolla un algoritmo expresado de cualquier forma, es conveniente


colocar una ligera explicacin de lo que significa cada variable que se usa, para que sea
fcil de entender a cualquier persona (documentar el algoritmo).

11

UNIVERSIDAD PRIVADA ANTENOR ORREGO


INGENIERA DE COMPUTACIN Y SISTEMAS
FUNDAMENTOS DE PROGRAMACIN 1

WALTER LAZO AGUIRRE


ALGORITMOS

Ejemplos:
1) Calcular el rea de un crculo de Radio R.
Anlisis: EFD
R

PROCESO

Aci

Diseo de Algoritmo
Inicio
Variables R, Aci
Leer: R
Aci = R2
Escribir: Aci
Fin

2)

Calcular el rea y permetro de un cuadrado de lado L.


Anlisis: EFD
L

PROCESO

Ac, Pe

Diseo de Algoritmo
Inicio
Variables L, Ac, Pe
Leer: L
Ac = L*L
Pe = 4*L
Escribir: Ac, Pe
Fin

3)

Calcular el rea de un tringulo de Base B y altura H.


Anlisis: EFD
B, H

PROCESO

At

Diseo de Algoritmo
Inicio
Variables B, H, At
Leer B, H
Calcular At = (B*H)/2
Escribir: At
Fin

12

You might also like