Sie sind auf Seite 1von 47

Mdulo: Fundamentos de Algoritmos

Institucin de Educacin para el Trabajo y Desarrollo Humano

FUNDAMENTOS DE ALGORITMOS E INTRODUCCION A LA


PROGRAMACION

PROGRAMA:
ANALISIS Y DISEO DE SISTEMAS DE INFORMACION

OSWALDO CONTRERAS SIERRA


(Ing. Sistemas)

SINCELEJO
2017

Ing. Oswaldo Contreras Sierra - 321 759 57 76 1


Mdulo: Fundamentos de Algoritmos

Contenido

CAPITULO I: CONCEPTOS BSICOS Y METODOLOGA PARA LA SOLUCIN DE PROBLEMAS POR


MEDIO DE COMPUTADORAS ..............................................................................................................4
Introduccin .......................................................................................................................................4
Definicin De Lenguaje.......................................................................................................................6
Definicin De Algoritmo .....................................................................................................................7
Tipos De Algoritmos ...........................................................................................................................8
Lenguajes Algortmicos ......................................................................................................................8
Tipos De Lenguajes Algortmicos ........................................................................................................8
CAPITULO II: TIPOS DE DATOS Y OPERADORES ..................................................................................9
Tipos De Datos: ..................................................................................................................................9
Variables Y Contantes ......................................................................................................................10
Variable ............................................................................................................................................10
Tipos De Variables: ...........................................................................................................................10
Reglas Para La Definicin De Variables.............................................................................................11
Constantes: ......................................................................................................................................11
Operadores: .....................................................................................................................................11
Operadores Aritmticos. ..................................................................................................................12
Prioridad De Los Operadores Aritmticos ........................................................................................12
Operadores: Relacionales.................................................................................................................13
Operadores: Lgicos.........................................................................................................................13
Prioridad En La Evaluacin De Operadores ......................................................................................14
CAPITULO III: TECNICAS PARA LA FORMULACION Y REPRESENTACION DE ALGORITMOS ...............15
Diagrama De Flujo ............................................................................................................................15
Recomendaciones Para El Diseo De Diagramas De Flujo................................................................16
Pseudocdigo ...................................................................................................................................16
Herramientas Para Representacin De Algoritmos Con Diagramas De Flujo ...................................17
Qu Es FreeDFD? ............................................................................................................................17
Herramientas Que Conforman La Aplicacin De Freedfd .................................................................18
Ejemplos Algortmicos ......................................................................................................................20

Ing. Oswaldo Contreras Sierra - 321 759 57 76 2


Mdulo: Fundamentos de Algoritmos
Creacin De Diagramas De Flujo En Dfd ...........................................................................................21
Herramientas Para Representacin De Algoritmos Con Pseudocdigo ............................................27
Qu es Pseint? ................................................................................................................................27
Instalacin de Pseint ........................................................................................................................27
Herramientas Que Conforman La Aplicacin De Pseint ...................................................................32
Creacin De Algoritmos por pseudocdigo En Pseint .....................................................................34
CAPITULO 4: ESTRUCTURAS ALGORITMICAS ....................................................................................38
Estructura Secuenciales: ..................................................................................................................38
Estructuras Condicionales: ...............................................................................................................39
Estructuras Cclicas ...........................................................................................................................40
CAPITULO 5: REPRESENTACION DE ESTRUCTURAS SECUENCIALES ..................................................42
Algoritmos secuenciales Representados por Pseint y FreeDFD ........................................................42

Ing. Oswaldo Contreras Sierra - 321 759 57 76 3


Mdulo: Fundamentos de Algoritmos

CAPITULO I: CONCEPTOS BSICOS Y METODOLOGA PARA LA


SOLUCIN DE PROBLEMAS POR MEDIO DE COMPUTADORAS

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. Sino que tambin podemos disear
soluciones a la medida, de problemas especficos que se nos presenten. Aun, si
en estos se involucran operaciones matemticas complejas y/o repetitivas, o
un volumen muy grande De datos.

El diseo de soluciones a la medida de nuestros problemas, requiere como en


otras disciplinas una metodologa que nos ensee de manera gradual, la forma
de llegar a estas soluciones. 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. Lo anterior nos lleva al razonamiento de que un programa nos
sirve para solucionar un problema especfico.

Para poder realizar programas, adems de conocer la metodologa


mencionada, tambin debemos conocer, de manera especfica las funciones
que pueden realizar la computadora y las formas en que se pueden manejar
los elementos que hay en la misma.

Computadora: Es un dispositivo electrnico utilizado para procesar


informacin y obtener resultados. Los datos y la informacin se pueden
introducir en la computadora como entrada (input) y producir posteriormente
una salida (output).

Dispositivos de Entrada: Como su nombre lo indica, sirven para introducir


datos (informacin) en la computadora para su proceso. Los datos se leen de
los dispositivos de entrada (teclado, scanners (digitalizadores de rastreo),

Ing. Oswaldo Contreras Sierra - 321 759 57 76 4


Mdulo: Fundamentos de Algoritmos
mouse (ratn), trackball (bola de ratn estacionario), joystick (palancas de
juego), lpiz ptico) y se almacenan en la memoria central o interna.

Dispositivos de Salida: Muestran los datos procesados que se convierte en


informacin para el usuario a travs de monitores, impresoras.

La Unidad Central de Procesamiento (C.P.U) se divide en dos:


Unidad de control
Unidad Aritmtico Lgica

Unidad de Control: Coordina las actividades de la computadora y determina


que operaciones se deben realizar y en qu orden; as mismo controla todo el
proceso de la computadora.

Unidad Aritmtico - Lgica: Realiza operaciones aritmticas y lgicas, tales


como suma, resta, multiplicacin, divisin y comparaciones.

La Memoria de la computadora se divide en dos:


Memoria Central o Interna
Memoria Auxiliar o Externa

Memoria Central (interna): La CPU utiliza la memoria de la computadora


para guardar informacin mientras trabaja con ella; mientras esta informacin
permanezca en memoria, la computadora puede tener acceso a ella en forma
directa. Esta memoria construida internamente se llama memoria de acceso
aleatorio (RAM).

La memoria interna consta de dos reas de memoria:

La memoria RAM (Randon Access Memory): Recibe el nombre de memoria


principal o memoria del usuario, en ella se almacena informacin solo mientras
la computadora est encendida. Cuando se apaga o arranca nuevamente la
Computadora, la informacin se pierde, por lo que se dice que la memoria RAM
es una memoria voltil.

La memoria ROM (Read Only Memory): Es una memoria esttica que no


puede cambiar, la computadora puede leer los datos almacenados en la
memoria ROM, pero no se pueden introducir datos en ella, o cambiar los datos
que ah se encuentran; por lo que se dice que esta memoria es de solo lectura.
Los datos de la memoria ROM estn grabados en forma permanente y son
introducidos por el fabricante de la computadora.

Memoria Auxiliar (Externa): Es donde se almacenan todos los programas o


datos que el usuario desee. Los dispositivos de almacenamiento o memorias
auxiliares (externas o secundarias) ms comnmente utilizados son: cintas
magnticas y discos magnticos.

Ing. Oswaldo Contreras Sierra - 321 759 57 76 5


Mdulo: Fundamentos de Algoritmos

Definicin De Lenguaje

Lenguaje: Es una serie de smbolos que sirven para transmitir uno o ms


mensajes 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
son las siguientes:

Los mensajes deben correr en un sentido a la vez.


Debe forzosamente existir 4 elementos: Emisor, Receptor, Medio de
Comunicacin y Mensaje.

Lenguajes de Programacin: Es un conjunto de smbolos, caracteres y


reglas (programas) 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, calculo,
manipulacin de textos, lgica/ comparacin y almacenamiento/recuperacin.

Los lenguajes de programacin se clasifican en:

Lenguaje Maquina: Son aquellos cuyas instrucciones son directamente


entendibles por la computadora y no necesitan traduccin posterior para
que la CPU pueda comprender y ejecutar el programa. Las instrucciones
en lenguaje maquina se expresan en trminos de la unidad de memoria
ms pequea el bit (dgito binario 0 o 1).

Como ejemplo, observe la siguiente instruccin escrita en lenguaje


mquina: 10011111 1011 1101

Lenguaje de Bajo Nivel (Ensamblador): En este lenguaje las


instrucciones se escriben en cdigos alfabticos conocidos como
mnemotcnicos para las operaciones y direcciones simblicas.
Como ejemplo, observe las siguientes instrucciones escritas en el
lenguaje ensamblador:

MOV AX, A
ADD AX, B
MOV C, AX

Lenguaje de Alto Nivel: Los lenguajes de programacin de alto nivel son


aquellos en los que las instrucciones o sentencias a la computadora son

Ing. Oswaldo Contreras Sierra - 321 759 57 76 6


Mdulo: Fundamentos de Algoritmos
escritas con palabras (en general en ingles), lo que facilita la escritura y
comprensin del programa.

Existen muchos lenguajes de alto nivel entre los que se pueden mencionar
los siguientes: C, C++, Java, Pascal, Eiffel, Clipper, Ada, Smalltalk,
Visual Basic, etc.

Al programa escrito en un lenguaje de programacin de alto nivel se conoce


como cdigo fuente o programa fuente. Por ejemplo, aqu est el cdigo
fuente completo de un programa simple escrito en Java:

import java.io.*;
public class Bienvenida{
public static void main( String args[] ) throws IOException
{
System.print.out( Bienvenido a Java );
}
}

Definicin De 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.

Cuando nos enfrentamos a un problema en la vida cotidiana, su resolucin


requiere que sigamos una serie de pasos; para tal fin. El conjunto ordenado de
pasos seguidos con el fin de resolver un problema o lograr un objetivo es
conocido como algoritmo.

Un algoritmo es una serie de pasos organizados que describe el


proceso que se debe seguir, para dar solucin a un problema
especfico. En otras palabras, un algoritmo es una frmula para la
resolucin de un problema.

La definicin de un algoritmo debe describir tres partes: Entrada,


Proceso y Salida, as:

Entrada: Informacin dada al algoritmo, o conjunto de


instrucciones que generen los valores con que ha de trabajar.
Proceso: Clculos necesarios para que a partir de un dato de
entrada se llegue a los resultados.
Salida: Resultados finales o transformacin que ha sufrido la
informacin de entrada a travs del proceso

Ing. Oswaldo Contreras Sierra - 321 759 57 76 7


Mdulo: Fundamentos de Algoritmos

Cuando se formula un algoritmo el objetivo es ejecutar este en un computador,


sin embargo, para que este entienda los pasos para llevar a cabo nuestro
algoritmo debemos indicrselo siguiendo un conjunto de instrucciones y reglas
que este entienda, y estas instrucciones son abstradas en lo que conocemos
como lenguaje de programacin.

Tipos De Algoritmos

Cualitativos: Son aquellos en los que se describen los pasos utilizando


palabras.
Cuantitativos: Son aquellos en los que se utilizan clculos numricos
para definir los pasos del proceso.

Lenguajes Algortmicos
Son una serie de smbolos y reglas que se utilizan para describir de
manera explcita un proceso.

Tipos De Lenguajes Algortmicos


Grficos: Son las representaciones grficas de las operaciones que
realiza un algoritmo (diagrama de flujo).
No Grficos: Representa en forma descriptiva las operaciones que debe
realizar un algoritmo (pseudocdigo).

Ing. Oswaldo Contreras Sierra - 321 759 57 76 8


Mdulo: Fundamentos de Algoritmos

CAPITULO II: TIPOS DE DATOS Y OPERADORES

Como se ha podido ver a lo largo de las lecturas, para que una computadora
tenga una razn de ser, se hace necesario la programacin de las mismas, es
decir realizar software que permita el ingreso de datos (estos datos se
representan a nivel de maquina como una secuencia de dgitos binarios (0 o 1)
denominados bits) para ser transformada en informacin. Los datos que se
ingresan a una computadora pueden ser de diferente tipo.

Tipos De Datos:
En la actualidad la mayora de los lenguajes de programacin y por lo tanto des la
construccin de los algoritmos es indispensable definir con claridad qu tipo de
dato tendr una determina variable, los tipos de datos que se emplean son:

Numricos (enteros y reales)


Lgicos (bolanos verdadero / falso)
Carcter (Char y cadena de caracteres)

Existen lenguajes de programacin que admiten una serie de datos


complejos, pero para nuestro caso estos van a ser los tipos principales.

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.

Enteros: Representan los nmeros que no posee componente fraccionaria


y pueden ser tanto positivos como negativos, Ejemplo 2345, 4567, -3451.

Reales: Representan todos los nmeros que poseen componente


fraccionaria y tambin pueden positivo o negativo, ejemplo: 2345.20,
4567.10, -3451.01.

Datos Lgicos (booleano): Este tipo de dato solo puede tomar uno de dos
valores verdadero o falso (true o false). Este tipo de datos se utiliza para
representar las opciones (si/no) a determinadas preguntas, es el caso:
cuando se pide si un valor entero es positivo, la respuesta ser verdadera o
falsa, segn sea positivo o negativo.

Datos tipo Carcter: Representan datos alfanumricos que pueden ser


reconocidos por la computadora y estos pueden ser:

Ing. Oswaldo Contreras Sierra - 321 759 57 76 9


Mdulo: Fundamentos de Algoritmos

Cadena de caracteres (string), Que es una sucesin de caracteres


numricos, letras, smbolos, etc. Esta cadena inicia y termina con
apostrofes o comillas, dependiendo del lenguaje que se est utilizando,
para este caso la representaremos con comillas

Ejemplo:
Instituto Tecnolgico de Sistemas
1997

Carcter: (char): Contiene solo un carcter y tambin se incluye las


comillas para su asignacin I.

Variables Y Contantes

Variable
Es un espacio reservado en el computador para contener valores que pueden
cambiar durante el desarrollo del algoritmo. Los tipos de variables (Numricas,
carcter, lgicas) determinan cmo se manipular la informacin contenida en
esas. Una variable que se ha definido de un cierto tipo solo puede tomar
valores de ese tipo, es el caso de la variable entera x, solo podr recibir
nmero enteros.

Tipos De Variables:
Variables locales:

Es aquella que afecta nicamente el subprograma, es decir solo un bloque de


programa bien definido, un ejemplo de la vida cotidiana puede ser aquellas
cosas que afectan nicamente lo que se encuentra en la casa, por es el caso si
no pago el recibo de energa la suspenden, pero esto no afecta a las casas de
los vecinos dado que ellos no se afectan directamente de la suspensin de la
energa en mi casa.

Variable Global:

Variable que afecta a un programa en todo su contexto, programa principal y


modulo, lo cual se entender mejor cuando se mire el concepto de funciones,
sin embargo y para continuar con el ejemplo anterior, si es el municipio quien
no cancela los recibos de alumbrado pblico y este es suspendido, mire que
afecta a muchas personas y entidades incluida la seguridad publica etc.

Ing. Oswaldo Contreras Sierra - 321 759 57 76 10


Mdulo: Fundamentos de Algoritmos

Reglas Para La Definicin De Variables

Deben iniciar con una letra (az), excepto la


No deben contener smbolos ni signos de puntuacin como estos: # $ % & /
( ) = ? +.
No deben contener espacios en blanco, esto es en caso de una palabra
esta no debe ser compuesta.

Ejemplo:

Variable Estado
Contador correcto (cumple con las reglas)
44444 incorrecto (no debe iniciar con un nmero)
Mi contador incorrecto (contiene espacio en blanco)
Pedro correcto (cumple con las reglas)
#k incorrecto (Inicia con un carcter diferente a una letra)
K Correcto (cumple con las reglas)
Kkk1 Correcto (cumple con las reglas)

Constantes:

Es un espacio reservado para contener valores que no cambian a lo largo de la


ejecucin de un algoritmo, Es necesario distinguir que existen variables locales
y variables globales: Como podemos observar las variables o constantes se
declaran utilizando nombres o letras Las operaciones que se realicen sobre
estas variables y/o constantes, estn definidas por una serie de operadores.

Operadores:

Son elementos que relacionan de forma diferente, los valores de una o ms


variables y/o constantes. Es decir, los operadores nos permiten manipular
valores. Los operadores se dividen en operadores Aritmticos, lgicos y
relacionales.

Ing. Oswaldo Contreras Sierra - 321 759 57 76 11


Mdulo: Fundamentos de Algoritmos

Operadores Aritmticos.
Los operadores aritmticos nos permiten realizar cualquier operacin
aritmtica bsica que necesitemos como: suma, resta, multiplicacin, divisin
y otras que las revisaremos a lo largo del mdulo. En la siguiente tabla se
muestran los operadores ms comunes y que se emplean en la mayora de los
lenguajes con algunas variaciones.

Operador Accin Ejemplo


^ o ** Potencia X = 2^3 // X = 8
* Multiplicacin X=2*3 // X=6
/ Divisin X=12/3 // X=4
+ Suma X=2+3 // X=5
- Resta X=6-3 // X=3
Div Divisin Entera X=7 div 3 // X=2
Mod Modulo (Residuo) X=9 Mod 2 // X=1

Prioridad De Los Operadores Aritmticos

Todas las expresiones entre parntesis se evalan primero. Las expresiones


con parntesis anidados se evalan de dentro a fuera, el parntesis ms
interno se evala primero.
Dentro de una misma expresin los operadores se evalan en el siguiente
orden.

1. ^ (Exponenciacin)
2. *, /, Mod (Multiplicacin, divisin, modulo).
3. +, - (Suma y resta).

Los operadores en una misma expresin con igual nivel de prioridad se evalan
de izquierda a derecha.

Ejemplos:

Ing. Oswaldo Contreras Sierra - 321 759 57 76 12


Mdulo: Fundamentos de Algoritmos

Operadores: Relacionales.

Tambin denominados operadores binarios lgicos y de comparacin, se utilizan para


comprobar la veracidad o falsedad de determinadas propuestas de relacin. Las
expresiones que los contienen se denominan expresiones relacionales. Se utilizan
para establecer una relacin entre dos valores. Compara estos valores entre si
y esta comparacin produce un resultado de certeza o falsedad (verdadero o
falso). Los operadores relacinales comparan valores del mismo tipo
(numricos o cadenas). Tienen el mismo nivel de prioridad en su evaluacin.

Los operadores relacinales tiene menor prioridad que los aritmticos

Denominacin Smbolo
Igual a =
Menor que <
Menor e Igual que <=
Mayor que >
Mayor e igual que >=
Distinto o diferente de <> O tambin !=

Ejemplos:
Si a = 10 b = 20 c = 30
a + b > c Falso
a - b < c Verdadero
a - b = c Falso
a * b < > c Verdadero

Operadores: Lgicos.
Como operadores lgicos designamos a aquellos operadores que nos permiten
conectar ms de una propiedades. Estos operadores se utilizan para
establecer relaciones entre valores lgicos. Estos valores pueden ser resultado
de una expresin relacional.

Denominacin Ingles Espaol


Negacin Not No
Conjuncin /Producto And Y
Disyuncin /Suma Or O

Ing. Oswaldo Contreras Sierra - 321 759 57 76 13


Mdulo: Fundamentos de Algoritmos

Prioridad En La Evaluacin De Operadores

En la programacin de computadoras es indispensable tener en cuenta el


orden como se escriben las operaciones aritmticas con sus operadores, dado
que la operacin no se evala de izquierda a derecha como lo hace una

Prioridad Nombre Signo


1 Parntesis ()
2 Cambio de Signo +-
3 Potencias
4 Productos y Divisiones */
5 Divisin Entera Div
6 Modulo Mod
7 Sumas y Restas +
calculadora, si no como un todo y por tano analiza la regla de prioridad.

El operador MOD, permite obtener el residuo de una divisin El operador DIV,


Permite obtener la parte entera de una divisin

Ejemplo:

X= 2 + 3 * 5 + (2*3)

X=2+3*5+6

X=2+15+6

X=23

Ing. Oswaldo Contreras Sierra - 321 759 57 76 14


Mdulo: Fundamentos de Algoritmos

CAPITULO III: TECNICAS PARA LA FORMULACION Y


REPRESENTACION DE ALGORITMOS

Las dos herramientas utilizadas comnmente para disear algoritmos son:


Diagrama de Flujo
seudocdigo

Diagrama De Flujo

Un diagrama de flujo es la representacin grfica de un algoritmo. Tambin se


puede decir que es la representacin detallada en forma grfica de cmo
deben realizarse los pasos en la computadora para producir resultados.
Esta representacin grfica se da cuando varios smbolos (que indican
diferentes procesos en la computadora), se relacionan entre s mediante lneas
que indican el orden en que se deben ejecutar los procesos.

Los smbolos utilizados han sido normalizados por el instituto norteamericano


de normalizacin (ANSI).

Ing. Oswaldo Contreras Sierra - 321 759 57 76 15


Mdulo: Fundamentos de Algoritmos

Recomendaciones Para El Diseo De Diagramas De Flujo

Usar solamente lneas de flujos horizontales y/o verticales.


Evitar el cruce de lneas utilizando los conectores.
Usar conectores solo cuando sea necesario.
No dejar lneas de flujo sin conectar.
Trazar los smbolos de manera que se puedan leer de arriba hacia abajo
y de izquierda a derecha.
Todo texto escrito dentro de un smbolo deber ser escrito claramente,
evitando el uso de muchas palabras.

Pseudocdigo

Mezcla de programacin y lenguaje (espaol, ingls o cualquier otro idioma)


que se emplea dentro de la programacin estructurada, para realizar el diseo
de un programa. En esencia, el pseudocdigo se puede definir como un
lenguaje de especificaciones de algoritmos.
Es la representacin de los pasos que debe seguir un algoritmo para dar
solucin a un problema determinado. El pseudocdigo utiliza palabras que
indican el proceso a realizar.

Ing. Oswaldo Contreras Sierra - 321 759 57 76 16


Mdulo: Fundamentos de Algoritmos

Herramientas Para Representacin De Algoritmos Con Diagramas


De Flujo

Antes de iniciar en el anlisis y la construccin de algoritmos es importante


apoyarnos en una herramienta til en la programacin de computadoras como
lo es el diagrama de flujo, cuyas caractersticas, hace que se aplique no solo
en la informtica si no en todos los procesos que llevan una secuencia lgica.
Una herramienta fundamental para representar los diagramas de Flujos es
DFD, de la cual hablaremos a continuacin.

Qu Es FreeDFD?

Los diagramas de flujo forman parte de la vida diaria de los programadores y


desarrolladores de software plasman en esta representacin esquemtica los
pasos que seguir un proceso determinado dentro del programa.

FreeDFD es un editor e intrprete de diagramas de flujo para los sistemas


operativos Windows y Linux que permite trabajar tanto con algoritmos sencillos
como complejos.

El programa puede ser descargado desde el siguiente enlace:


http://freedfd.uptodown.com/

Ing. Oswaldo Contreras Sierra - 321 759 57 76 17


Mdulo: Fundamentos de Algoritmos
En este sitio tambin encontraras documentacin acerca del manejo de la
herramienta.

Herramientas Que Conforman La Aplicacin De Freedfd

Al abrir el FreeDFD se ve en la pantalla la ventana de edicin la cual consta de inicio y fin ya que
todo algoritmo debe ser finito

Barra de Herramientas

Ing. Oswaldo Contreras Sierra - 321 759 57 76 18


Mdulo: Fundamentos de Algoritmos

Herramientas de la Aplicacin
Botn Comando Funcin
Nuevo Crear un nuevo diagrama DFD.
Abrir Abrir un diagrama DFD existente.
Guardar Guardar el diagrama DFD que se est trabajando
Imprimir Imprimir el diagrama DFD que se est trabajando

Cortar Quitar un bloque del diagrama y guardarlo en el portapapeles


Copiar el bloque marcado en el diagrama y guardarlo en el
Copiar
portapapeles
Pegar Pegar en el diagrama el bloque guardado en el portapapeles
Eliminar Borrar el bloque marcado en el diagrama
Ejecutar Iniciar la ejecucin del diagrama
Detener Interrumpir la ejecucin del diagrama
Pausar Pausar la ejecucin del diagrama
Evala cada instruccin y bloque paso a paso e indica por
Paso Simple
que camino va el control sobre el diagrama
Realizar la ejecucin del diagrama solo hasta el bloque
Ejecutar Hasta
marcado
Depurador Activa el depurador del diagrama
Alejar Reducir la vista del diagrama
Acercar Ampliar la vista del diagrama
Activar el puntero del mouse para desplazarse dentro del
Cursor
diagrama y marcar bloques
Asignacin Insertar un bloque de asignacin en el diagrama
Ciclo Mientras Insertar una estructura repetitiva MIENTRAS en el diagrama
Ciclo Para Insertar una estructura repetitiva PARA en el diagrama
Decisin Insertar una estructura CONDICIONAL en el diagrama
Insertar una instruccin de lectura de datos por teclado en el
Lectura
diagrama
Salida Insertar la presentacin de datos en la pantalla
Insertar la llamada a un subprograma o subrutina dentro del
Llamada
diagrama
Anterior
Ver el diagrama del anterior subprograma cuando estos existan.
Subprograma
Siguiente Ver el diagrama del siguiente subprograma cuando estos
Subprogramas existan
Nuevo Abrir una nueva ventana de edicin para la elaboracin del
Subprograma diagrama de un subprograma o subrutina
Eliminar
Borrar el diagrama correspondiente a un subprograma
Subprograma

Ing. Oswaldo Contreras Sierra - 321 759 57 76 19


Mdulo: Fundamentos de Algoritmos

Ejemplos Algortmicos

Supongamos el siguiente problema, viajamos en nuestro auto y este se


pincha. Lo primero que debemos hacer es preguntarnos qu hacer? en
nuestro caso la respuesta seria, cambiar la rueda. Luego nos tenemos que
preguntar y Cmo lo hago?

Aqu se establecen los pasos a seguir, podemos optar por la resolucin


mediante diagrama de flujo:

Ing. Oswaldo Contreras Sierra - 321 759 57 76 20


Mdulo: Fundamentos de Algoritmos

Creacin De Diagramas De Flujo En Dfd

Una vez que hemos conocido las herramientas del programa FreeDFD, vamos a
intentar explicar paso a paso como crear un diagrama de flujo, para lo cual
partiremos del siguiente ejercicio propuesto:

Planteamiento: Desarrolla en FreeDFD un diagrama de Flujo que permita


sumar Dos Nmeros:

Para solucionar el algoritmo propuesto en DFD, se debe primero tener


muy claro que nos estn solicitando, Como nos estn solicitando sumar
esos dos nmeros, de los cuales no conocemos sus valores entonces se
pueden expresar dos Variable que almacenen el valor de cada nmero:

N1 Permite almacenar el primer valor o numero


N2 Permite Almacenar el segundo Valor o Numero

Como segundo Procedimiento se debe solicitar por cada nmero el


valor que no conocemos para luego sumarlos. Por lo tanto en las
herramientas de FreeDFD Hacemos un Clic en el icono de Salida
el cual nos permite mostrar mensajes y lo arrastramos hasta ubicarlo
entre Inicio y Fin. Veamos la Imagen:

Ing. Oswaldo Contreras Sierra - 321 759 57 76 21


Mdulo: Fundamentos de Algoritmos
Nota: cabe aclarar que al momento de escribir el mensaje, se debe incluir este
entre comilla doble; sin embargo algunas versiones del programa son caracteres
que no son reconocidos, por lo cual se sugiere usar comillas simples:

Ingrese el Primer Numero

Una vez que se ha solicitado el primer nmero, ese valor debe ser
almacenado; es por ello que hacemos uso de una variable. Para poder
agregar esta variable en el programa FreeDFD se debe agregar el
elemento de lectura

Nota: Se ha declarado una Variable, para este caso no se debe incluir en


comillas.

Para el siguiente paso se debe seguir el mismo procedimiento: Se solicita


un valor y se almacena en una variable. No olvidemos utilizar el elemento
de Salida y el de Lectura. En la Siguiente imagen se muestra como nos
debera quedar hasta ahora nuestro Diagrama de Flujo.

Ing. Oswaldo Contreras Sierra - 321 759 57 76 22


Mdulo: Fundamentos de Algoritmos
Diagrama de Flujo

Salida: Mostrar mensaje para solicitar un Valor:


Ingresa un Numero

Lectura: Se almacena el valor Solicitado en una


Variable, en nuestro caso N1

Salida: Mostrar mensaje para solicitar segundo valor:


Ingresa segundo Numero

Lectura: Se almacena el valor Solicitado en una


Variable, en nuestro caso N2

Hasta este momento se han solicitado los dos nmeros y se han


almacenado en variables; sin embargo segn el planeamiento del
ejercicio nos solicitan sumar esos valores que se solicitan. Por ello
haremos uso de un nuevo elemento de la herramienta FreeDFD, el cual
es Asignacin.

En el elemento asignacin realizaremos todo tipo de Operacin


matemtica que se requieran para cumplir con el planteamiento del
algoritmo; Para nuestro caso se debe sumar dos nmeros, pero esta
suma tambin debe guardarse en una nueva variable, es decir

SUMA= N1 + N2

Ing. Oswaldo Contreras Sierra - 321 759 57 76 23


Mdulo: Fundamentos de Algoritmos

Veamos desde la siguiente imagen como quedara este procedimiento.

Ya casi hemos terminado nuestro Diagrama de Flujo, ahora solo nos


queda mostrar el resultado que se encuentra almacenado en la variable
SUMA, para lo cual volvemos a hacer uso del elemento de salida que
nos permitir mostrar un mensaje.

Ing. Oswaldo Contreras Sierra - 321 759 57 76 24


Mdulo: Fundamentos de Algoritmos

Nota: Para que pueda mostrarse el resultado de la operacin se debe escribir


una coma despus del mensaje y luego escribir la variable que tiene
almacenada dicha operacin (Concatenar). En nuestro caso SUMA; teniendo
presente tambin que si al declarar la variable esta se digito en Maysculas o
Minsculas.

La Suma de los Nmeros es, SUMA

Ing. Oswaldo Contreras Sierra - 321 759 57 76 25


Mdulo: Fundamentos de Algoritmos

Una vez que hemos terminado nuestro algoritmo representado por


Diagrama de Flujo, procedemos a ejecutarlo, con el propsito de
determinar posible errores. Para ejecutar el Algoritmo se debe pulsar
un clic en el icono Ejecutar del Programa FreeDFD, el cual se encuentra
en la barra de herramienta de la zona superior:

Al ejecutar el procedimiento o indicaciones que se muestran en cada


una de las ventanas, se debe mostrar al final el resultado deseado
segn los nmeros digitados; tal y como se muestra en la imagen:

Ing. Oswaldo Contreras Sierra - 321 759 57 76 26


Mdulo: Fundamentos de Algoritmos

Herramientas Para Representacin De Algoritmos Con


Pseudocdigo

Hemos conocido como representar los algoritmos por medio de Diagramas de


Flujo a travs de la herramienta FreeDFD, en esta oportunidad conoceremos
una nueva herramienta o aplicacin que nos permite representar los
Algoritmos por Pseudocdigo: Pseint, el cual servir para poner en practica la
creacin de soluciones estructuradas para diferentes problemas dentro de este
paradigma de programacin.

Qu es Pseint?

PSeInt es un Software Libre, principalmente un intrprete de pseudocdigo. El


proyecto naci como trabajo final para la ctedra de Programacin I de la
carrera Ingeniera en Informtica de la Universidad nacional del Litoral, razn
por la cual el tipo de pseudocdigo que interpreta est basado en el
pseudocdigo presentado en la ctedra de Fundamentos de Programacin de
dicha carrera. Actualmente incluye otras funcionalidades como editor y ayuda
integrada, generacin de diagramas de flujo o exportacin a cdigo C++ (en
etapa experimental).

Instalacin de Pseint

Para instalar la ltima versin de pseint debe ir a la siguiente URL:

http://pseint.sourceforge.net/

Ing. Oswaldo Contreras Sierra - 321 759 57 76 27


Mdulo: Fundamentos de Algoritmos
Al presionar sobre la opcin Descargar el programa, nos vincula con
una nueva ventana en la cual debemos elegir el sistema el sistema
operativo de acuerdo con el que se tenga instalado en nuestra
computadora, para nuestro caso sera Windows. Ver Siguiente imagen

Despus de dar clic en el instalador que acabamos de descargar se


muestra en pantalla un asistente de instalacin:

Ing. Oswaldo Contreras Sierra - 321 759 57 76 28


Mdulo: Fundamentos de Algoritmos

Seguidos el procedimiento dando clic en siguiente y aceptando los trminos de


licencia, tal y como se muestra en las siguientes imgenes:

Ing. Oswaldo Contreras Sierra - 321 759 57 76 29


Mdulo: Fundamentos de Algoritmos

Ing. Oswaldo Contreras Sierra - 321 759 57 76 30


Mdulo: Fundamentos de Algoritmos

Cuando abrimos por primera vez PSeInt aparece un cartel


preguntndonos que perfil deseamos utilizar, para evitar confusiones
con el lenguaje.

Finalmente seleccionamos el tipo de perfil, que para nuestro caso es


Estricto y Se presiona clic en aceptar, para lo cual se abre por primera
vez el programa Pseint.

Ing. Oswaldo Contreras Sierra - 321 759 57 76 31


Mdulo: Fundamentos de Algoritmos

Herramientas Que Conforman La Aplicacin De Pseint

Herramientas o Comandos de la Aplicacin


Botn Comando
Abre un nuevo documento

Busca un fichero (archivo)

Guardar y guardar como

Deshacer y Rehacer respectivamente

Cortar

Copiar y pegar

Corregir indentado

Buscar Buscar Anterior Buscar Siguiente

Ejecutar el algoritmo

Ejecutar paso a paso

Dibujar diagrama de flujo

Ayuda/contiene algunos ejemplos

Ing. Oswaldo Contreras Sierra - 321 759 57 76 32


Mdulo: Fundamentos de Algoritmos
Plantilla de Comandos

Este Comando Permite establecer la estructura


para Mostrar Mensajes o Solicitar Informacin
Requerida

Este Comando Permite realizar capturas de


Variables para almacenar Informacin

Este Comando Permite establecer la estructura


para Realizar Operaciones (Sumar, restar)

Estos comandos, evalan la condicin y se ejecutan las


instrucciones que correspondan: las instrucciones que
le siguen al Entonces si la condicin es verdadera, o las
instrucciones que le siguen al Sino si la condicin es
falsa. La condicin debe ser una expresin lgica, que al
ser evaluada retorna Verdadero o Falso

Estos Comandos Permite establecer las


estructuras Repetitivas o Ciclos, las cuales se
abordaran en la ltima parte de la gua

Este Comando Permite establecer la estructura


para Guardar Procesos y luego ser llamados o
utilizados

Ing. Oswaldo Contreras Sierra - 321 759 57 76 33


Mdulo: Fundamentos de Algoritmos

Creacin De Algoritmos por pseudocdigo En Pseint

Planteamiento del Problema: Suponga que un individuo desea invertir su


capital en un banco y desea saber cunto dinero ganara despus de un mes
si el banco paga a razn de 2% mensual.

informacin
Datos Conocidos Datos desconocidos
solicitada
Cunto dinero
2% mensual,
ganara?
equivalente a la tasa
Inters generado,
de inters que genera Monto o Capital, que es
que es el valor que
el banco por el capital aquel que invierte el
resulta de
ahorrado Cliente
Multiplicar el
Capital Invertido *
la tasa de Inters.

Paso 1: el Dato desconocido para este caso es el Monto o Capital


Solicitado, por lo tanto debemos solicitar esa informacin, para lo cual
desde la plantilla de Comando damos un Clic en Escribir,
recordemos que desde este comando se pueden mostrar mensajes por
pantalla. La imagen siguiente muestra el procedimiento:

Paso 2: Reemplazamos la Lista de expresiones que se genera al

Ing. Oswaldo Contreras Sierra - 321 759 57 76 34


Mdulo: Fundamentos de Algoritmos
agregar el comando Escribir por el mensaje deseado, en nuestro caso
se debe solicitar el capital o Monto a invertir, Tal y como se muestra en
la Imagen:

Paso 3: Para almacenar el capital ingresado se debe almacenar en una


variable, para lo cual utilizamos el comando leer, teniendo presente las
reglas para declarar una variable vista en el captulo 2. Veamos la
siguiente imagen en la cual se aprecia el procedimiento:

Al cambiar Lista de Variables por el Nombre de la variable (Capital)


nos debe quedar as:

Paso 4: Recordemos cual es la informacin que nos solicita el


algoritmo: Cunto dinero ganara el Cliente por el Capital

Ing. Oswaldo Contreras Sierra - 321 759 57 76 35


Mdulo: Fundamentos de Algoritmos
Invertido? para realizar estos clculos se debe multiplicar el capital
invertido por la tasa de inters, de la cual conocemos el porcentaje
mensual (2%). La operacin nos quedara as:

Inters Generado=Capital * 2% o Inters Generado= Capital * 0.02

Para realizar la operacin en Pseint se debe agregar el Comando


Asignar; para lo cual se tiene que realizar una Multiplicacin y esta
debe ser guardad en una en una nueva variable, la cual declararemos
como: Inters_Generado.

El lado izquierdo de la expresin (Variable) debe ser cambiado por el nombre


de la nueva variable (Interes_Generado) y en lado derecho asignaremos la
operacin respectiva de acuerdo con nuestro algoritmo.

Paso 5: Ya casi hemos terminado nuestro Algoritmo, solo nos queda


mostrar el resultado de la operacin, para ello utilizamos el comando
Escribir que nos permite mostrar un mensaje, teniendo presente que

Ing. Oswaldo Contreras Sierra - 321 759 57 76 36


Mdulo: Fundamentos de Algoritmos
despus de las comilla se debe colocar una coma seguida del
nombre de la variable en donde se almacena el resultado, que en
nuestro caso es Interes_Generado.

Paso 6: Una vez que hemos terminado el desarrollo del algoritmo


debemos realizar pruebas, para lo cual se debe pulsar clic en el
comando ejecutar

Al presionar Enter, se debe generar el resultado con el mensaje que


se ha incorporado. Veamos:

Ing. Oswaldo Contreras Sierra - 321 759 57 76 37


Mdulo: Fundamentos de Algoritmos

CAPITULO 4: ESTRUCTURAS ALGORITMICAS

Las estructuras de operacin de programas son un grupo de formas de trabajo,


que permiten, mediante la manipulacin de variables, realizar ciertos procesos
especficos que nos lleven a la solucin de problemas. Estas estructuras se
clasifican de acuerdo con su complejidad en:

Estructura Secuenciales:

La estructura secuencial es aquella en la que una accin (instruccin) sigue a


otra en secuencia. Las tareas se suceden de tal modo que la salida de una es
la entrada de la siguiente y as sucesivamente hasta el fin del proceso. Una
estructura secuencial se representa de la siguiente forma:

Inicio
Accin 1
Accin 2
.
.
Accin N
Fin

Ing. Oswaldo Contreras Sierra - 321 759 57 76 38


Mdulo: Fundamentos de Algoritmos

Estructuras Condicionales:

Las estructuras condicionales comparan una variable contra otro(s) valor(es),


para que en base al resultado de esta comparacin, se siga un curso de accin
dentro del programa. Cabe mencionar que la comparacin se puede hacer
contra otra variable o contra una constante, segn se necesite. Existen dos
tipos bsicos, las simples y las mltiples.

Simples: Las estructuras condicionales simples se les conoce como


Tomas de decisin. Estas tomas de decisin tienen la siguiente forma:

Si <condicin> entonces
Accin(es)
Fin-si

Dobles: Las estructuras condicionales dobles permiten elegir entre dos


opciones o alternativas posibles en funcin del cumplimiento o no de
una determinada condicin. Se representa de la siguiente forma:

Si <condicin> entonces
Accin(es)
Si no
Accin(es)
Fin-si

Dnde:

Si................. Indica el comando de comparacin


Condicin...... Indica la condicin a evaluar
Entonces....... Precede a las acciones a realizar cuando se cumple la Condicin
Accin(es)..... Son las acciones a realizar cuando se cumple o no la condicin
Si no............. Precede a las acciones a realizar cuando no se cumple la
condicin

Dependiendo de si la comparacin es cierta o falsa, se pueden realizar una o


ms acciones.

Mltiples: Las estructuras de comparacin mltiples, son tomas de


decisin especializada que permiten comparar una variable contra
distintos posibles resultados, ejecutando para cada caso una serie de
instrucciones especficas. La forma comn es la siguiente:

Ing. Oswaldo Contreras Sierra - 321 759 57 76 39


Mdulo: Fundamentos de Algoritmos

Si <condicin> entonces
Accin(es)
Si no
Si <condicin> entonces
Accin(es)
Si no

Varias condiciones
fin-si
Fin-si

Estructuras Cclicas

Se llaman problemas repetitivos o cclicos a aquellos en cuya solucin es


necesario utilizar un mismo conjunto de acciones que se puedan ejecutar una
cantidad especfica de veces. Esta cantidad puede ser fija (previamente
determinada por el programador) o puede ser variable.

Los ciclos se clasifican en:

Ciclos con un Nmero Determinado de Iteraciones (Hacer-


Para): Son aquellos en que el nmero de iteraciones se conoce antes
de ejecutarse el ciclo. La forma de esta estructura es la siguiente:

Hacer para V.C = L.I a L.S


Accion1
Accion2
.
.
.
Accin N
Fin-para

Ciclos con un Nmero Indeterminado de Iteraciones ( Hacer-


Mientras, Repetir-Hasta): Son aquellos en que el nmero de
iteraciones no se conoce con exactitud, ya que esta dado en funcin de
un dato dentro del programa.

Ing. Oswaldo Contreras Sierra - 321 759 57 76 40


Mdulo: Fundamentos de Algoritmos

Hacer-Mientras: Esta es una estructura que repetir un proceso


durante N veces, donde N puede ser fijo o variable. Para
esto, la instruccin se vale de una condicin que es la que debe
cumplirse para que se siga ejecutando. Cuando la condicin ya
no se cumple, entonces ya no se ejecuta el proceso. La forma de
esta estructura es la siguiente:

Hacer mientras <condicin>


Accion1
Accion2
.
.
AccionN
Fin-mientras

Repetir-Hasta: Esta es una estructura similar en algunas


caractersticas, a la anterior. Repite un proceso una cantidad de
veces, pero a diferencia del Hacer-Mientras, el Repetir-Hasta lo
hace hasta que la condicin se cumple y no mientras, como en el
Hacer-Mientras. Por otra parte, esta estructura permite realizar
el proceso cuando menos una vez, ya que la condicin se evala
al final del proceso, mientras que en el Hacer-Mientras puede ser
que nunca llegue a entrar si la condicin no se cumple desde un
principio. La forma de esta estructura es la siguiente:

Repetir
Accion1
Accion2
.
.
AccionN
Hasta <condicin>

Ing. Oswaldo Contreras Sierra - 321 759 57 76 41


Mdulo: Fundamentos de Algoritmos

CAPITULO 5: REPRESENTACION DE ESTRUCTURAS SECUENCIALES

El presente capitulo incluye una recopilacin de Ejercicios resueltos que nos


permitirn desarrollar habilidades para solucionar algoritmos, los cuales
representan en FreeDFD Y Pseint.

Cabe recordar que Cuando en un problema slo participan operaciones,


entradas y salidas se la denomina estructura secuencial.

Algoritmos secuenciales Representados por Pseint y FreeDFD

Algoritmo 1: Una tienda ofrece un descuento del 15% sobre el total de la


compra y un cliente desea saber cunto deber pagar finalmente por su
compra?

informacin
Datos Conocidos Datos desconocidos
solicitada
15% descuento (0.15) Valor_total_Compra Dinero_Pagado

Ing. Oswaldo Contreras Sierra - 321 759 57 76 42


Mdulo: Fundamentos de Algoritmos

Algoritmo 2: Un maestro desea saber qu porcentaje de hombres y qu


porcentaje de mujeres hay en un grupo de estudiantes.

Datos informacin
Datos Conocidos
desconocidos solicitada

Total Grupo=Cantidad de Hombres +


Cantidad de Mujeres

Para Calcular Porcentaje de Hombre o Cantidad de


Porcentaje de Hombres
Mujeres Usamos la Formula: Hombres


_ =
Cantidad de
Porcentaje de Mueres
Mujeres

_ =

Ing. Oswaldo Contreras Sierra - 321 759 57 76 43


Mdulo: Fundamentos de Algoritmos

Algoritmo 3: Calcular el nuevo salario de un obrero si obtuvo un


incremento del 25% sobre su salario anterior.

informacin
Datos Conocidos Datos desconocidos
solicitada
Incremento del 25% Salario Anterior Nuevo Salario

Ing. Oswaldo Contreras Sierra - 321 759 57 76 44


Mdulo: Fundamentos de Algoritmos

Veamos ahora como quedara representado el algoritmo por Diagrama de Flujo


a travs de la herramienta FreeDFD, para este caso se han utilizado las
mismas variables que se han definido para Pseint

Ing. Oswaldo Contreras Sierra - 321 759 57 76 45


Mdulo: Fundamentos de Algoritmos

Algoritmo 4: Tres personas deciden invertir su dinero para fundar una


empresa. Cada una de ellas invierte una cantidad distinta. Obtener el
porcentaje que cada quien invierte con respecto a la cantidad total
invertida.

informacin
Datos Conocidos Datos desconocidos
solicitada
Porcentaje que
Cantidad que Invierte
Tres personas cada persona
cada persona
invierte

Ing. Oswaldo Contreras Sierra - 321 759 57 76 46


Mdulo: Fundamentos de Algoritmos

Solucin del Algoritmo:

Ing. Oswaldo Contreras Sierra - 321 759 57 76 47

Das könnte Ihnen auch gefallen