Você está na página 1de 15

INSTITUTO TECNOLOGICODE ORIZABA

ALGORITMOS Y LENGUAJES DE PROGRAMACIN 1



FASE DE RESOLUCIN DEL FASE DE IMPLEMENTACIN EN UN
PROBLEMA LENG. DE PROG.



UNIDAD II
DESARROLLO DE LOGICA ALGORITMICA


2.1 METODOLOGA PARA SOLUCIN DE PROBLEMAS

RESOLUCIN DE PROBLEMAS:

La principal razn para que las personas aprendan Lenguajes de programacin, es utilizar
la computadora como una herramienta para la solucin de problemas.

- FASE DE RESOLUCIN DEL PROBLEMA
FASES IDENTIFICADAS
EN EL PROCESO DE
SOLUCIN DE PROBLEMAS
- FASE DE IMPLEMENTACION EN UN LENGUAJE
DE PROGRAMACION.


FASE DE RESOLUCIN DEL PROBLEMA:

El resultado de esta fase es el diseo de un algoritmo para resolver un problema consta a
su vez de:
1. Anlisis del Problema
2. Diseo del algoritmo
3. Verificacin del algoritmo.

ALGORITMO: Secuencia ordenada de pasos, sin ambigedades que conduce a la
solucin de un problema.
























Anlisis del
problema
Diseo del
algoritmo
Verificacin del
algoritmo
Codificacin del
algoritmo
Ejecucin del
programa
Verificacin del
programa
Programa de
trabajo

INSTITUTO TECNOLOGICODE ORIZABA

ALGORITMOS Y LENGUAJES DE PROGRAMACIN 2
ANLISIS DEL PROBLEMA
Es el primer paso para encontrar la solucin de un problema, hay que examinar
cuidadosamente el problema para encontrar la solucin.
Consiste en establecer una serie de preguntas acerca de lo que establece el problema,
para poder determinar si se cuenta con los elementos suficientes para llevar a cabo la
solucin del mismo, algunas preguntas son:
Con qu cuento?
Cules son los datos con los que se va a iniciar el proceso, qu tenemos que
proporcionarle a la computadora y si los datos con los que cuento son suficientes para dar
solucin al problema.
Qu hago con esos datos?
Una vez que tenemos todos los datos que necesitamos, debemos determinar que hacer
con ellos, es decir que frmula, clculos, que proceso o transformacin deben seguir los
datos para convertirse en resultados.
Qu se espera obtener?
Que informacin deseamos obtener con el proceso de datos y de que forma presentarla;
en caso de la informacin obtenida no sea la deseada replantear nuevamente un anlisis
en los puntos anteriores.

DISEO DEL ALGORITMO: Identificar las tareas y disponer el orden en el que han de
ser ejecutadas.
Una vez definido y analizado el problema, se procede a la creacin del algoritmo
(Diagrama de flujo pseudocdigo), en el cual se da la serie de pasos ordenados que nos
proporcione un mtodo explcito para la solucin del problema.

VERIFICACIN DEL ALGORITMO: Una vez que se termine de escribir el algoritmo, es
necesario comprobar que realiza las tareas para las que ha sido diseado.
Es recomendable la realizacin de pruebas de escritorio al algoritmo diseado, para
determinar su confiabilidad y detectar los errores que se pueden presentar en ciertas
situaciones. stas pruebas consisten en dar valores a la variable e ir probando el
algoritmo paso a paso para obtener una solucin y si sta es satisfactoria continuar con el
siguiente paso de la metodologa; de no ser as y de existir errores deben corregirse y
volver a hacer las pruebas de escritorio al algoritmo.

CODIFICACIN DEL ALGORITMO Consiste en escribir la solucin del problema (de
acuerdo al pseudocdigo); en una serie de instrucciones detalladas en un cdigo
reconocible por la computadora; es decir en un lenguaje de programacin (ya sea de bajo
o alto nivel), a esta serie de instrucciones se le conoce como PROGRAMA.
INSTITUTO TECNOLOGICODE ORIZABA

ALGORITMOS Y LENGUAJES DE PROGRAMACIN 3
EJECUCIN DE PROGRAMA Y VERIFICACIN DEL PROGRAMA
Prueba es el proceso de identificar los errores que se presenten durante la ejecucin del
programa.
La Depuracin consiste en eliminar los errores que se hayan detectado durante la prueba,
para dar paso a una solucin adecuada y sin errores.
PROGRAMA DE TRABAJO
Es la gua o comunicacin escrita que sirve como ayuda para usar un programa, o facilitar
futuras modificaciones.
A menudo un programa escrito por una persona es usado por muchas otras, por ello la
documentacin es muy importante.

ELABORACIN DE ALGORITMOS

Supongamos que se necesita calcular e imprimir el rea de un tringulo cuya base y
altura se suministrarn de un disco.

Procedimiento:
a).- Enunciado del problema: Calcular e imprimir el rea de un tringulo cuya base y
altura se suministrarn de un disco.
b).- Analizar la solucin general del problema:
1.- Entender concretamente la solucin que se desea obtener del problema.
2.- Buscar las variables a utilizar.

Anlisis:
1.- Qu se quiere?
-Calcular el rea de un tringulo

Cmo se quiere?
-Se desea calcular a travs de una frmula.
AREA = BASE * ALTURA
2
Qu deseo obtener?
-Imprimir el rea del tringulo y suministrar los resultados en un disco.

SOLUCION:
1.- Inicio.
2.-Leer base, altura.
3.-Calcular rea= (Base*Altura)/2.
4.-Imprimir resultado (rea).
5.- Fin.


2.2 METODOLOGA PARA EL DISEO DE SOFTWARE:

Top Down
Bottom up
Modular
INSTITUTO TECNOLOGICODE ORIZABA

ALGORITMOS Y LENGUAJES DE PROGRAMACIN 4

La tecnica Botton up consiste en realizar la declaracin de variables, funciones y
procedimientos al final del cdigo fuente; Y los procesos, funciones, etc... deben ir al
principio del documento.
Bottom-Up
Esta tcnica consiste en partir de los detalles ms precisos del algoritmo completando
sucesivamente mdulos de mayor complejidad, se recomienda cuando ya se cuenta con
experiencia y ya se sabe lo que se va a hacer.

Por el contrario, la tecnica TopDown consiste en hacer las declaraciones al principio del
cdigo fuente y el resto de la programacin se hace despus de la declaracin.
La programacin descendente o "Top - Down" es el proceso mediante el cual un problema
se descompone en una serie de niveles o pasos sucesivos de refinamiento (stepwise). La
metodologa descendente consiste en efectuar una relacin entre las sucesivas etapas de
estructuracin de modo que exista una relacin entre ellas mediante entradas y salidas de
informacin.
Las estructuras desde los dos puntos de vista se representan de la siguiente forma:

El diseo descendente se representa as:


La programacin modular hace referencia a mdulos, su utilidad es simplificar y
optimizar cada una de las funciones y/o procedimientos de tal forma que resulte un cdigo
fuente preciso y entendible.
La programacin modular es uno de los mtodos de diseo ms flexibles y potentes para
mejorar la productividad de un programa. En programacin modular el programa se divide
en mdulos (partes independientes), cada una de las cuales ejecuta una nica funcin o
actividad y se codifican independientemente de otros mdulos. Cada uno de estos
mdulos se analiza, codifica y pone a punto por separado.
INSTITUTO TECNOLOGICODE ORIZABA

ALGORITMOS Y LENGUAJES DE PROGRAMACIN 5

La programacin estructurada es una forma de escribir programas de ordenador
(programacin de computadora) de forma clara. Para ello utiliza nicamente tres
estructuras: secuencia, seleccin e iteracin;
Hoy en da las aplicaciones informticas son mucho ms ambiciosas que las necesidades
de programacin existentes en los aos 1960, principalmente debido a las aplicaciones
grficas, por lo que las tcnicas de programacin estructurada no son suficientes. Ello ha
llevado al desarrollo de nuevas tcnicas, tales como la programacin orientada a objetos y
el desarrollo de entornos de programacin que facilitan la programacin de grandes
aplicaciones.
2.3 IMPLEMENTACIN DE ALGORITMOS SECUENCIALES
Algoritmo.- Secuencia ordenada de pasos, sin ambigedades que conduce a la solucin
de un problema.

Caractersticas que debe cumplir un Algoritmo:

Preciso.- E identificar el orden de cada paso
Definido.- Si se sigue el algoritmo 2 veces, se debe obtener el mismo resultado
cada vez.
Finito.- Si se sigue un algoritmo, se debe terminar en algn momento.
"Un algoritmo se define como un mtodo que se realiza paso a paso para solucionar un
problema que termina en un nmero finito de pasos".
Partes de un Algoritmo:

Entrada.- Informacin dada al algoritmo
Proceso.- Operaciones o clculos
Salida.- Resultados finales de los clculos
Algunos ejemplos son:
Un cliente ejecuta un pedido a una fbrica. La fbrica examina en su banco de datos la
ficha del cliente, si el cliente es solvente entonces la empresa acepta el pedido, en caso
contrario rechazar el pedido.
Pasos del algoritmo:
1. Inicio.
2. Leer el pedido.
3. Examinar ficha del cliente.
4. Si el cliente es solvente aceptar pedido, en caso contrario rechazar pedido.
5. Fin.
INSTITUTO TECNOLOGICODE ORIZABA

ALGORITMOS Y LENGUAJES DE PROGRAMACIN 6
Determinar el mayor de tres nmeros enteros.
1. Inicio.
2.- Obtener el primer nmero (entrada), denominado NUM1.
3.- Obtener el segundo nmero (entrada), denominado NUM2.
4.- Compara NUM1 con NUM2 y seleccionar el mayor ; si los dos enteros son iguales,
seleccionar NUM1. Llamar a este nmero MAYOR.
5.- Obtener el tercer nmero (entrada), y se denomina NUM3.
6.- Compara MAYOR con NUM3 y seleccionar el mayor ; si los dos enteros son iguales,
seleccionar el MAYOR. Denominar a este nmero MAYOR.
7.- Presentar el valor MAYOR (salida).
8.- Fin.

DIAGRAMA DE FLUJO
Diagrama de flujo: Conjunto de smbolos; los cuales se utilizan para representar a los
algoritmos. Cada smbolo tiene una funcin especial, los cuales estn unidos por flechas,
las cuales se denominan Lneas de flujo, que indican el orden en que los pasos deben ser
ejecutados.
SIMBOLOS

Inicio y Fin del Diagrama

Proceso.- En su interior se colocan operaciones aritmticas,
asignaciones, cambios de valor, etc.

Lectura.- Se utiliza para introducir los datos de Entrada,
expresa lectura.

Decisin.- En su interior se almacena una condicin y
dependiendo del resultado de la Evaluacin , se sigue por
uno de los caminos o ramas alternativas.
INSTITUTO TECNOLOGICODE ORIZABA

ALGORITMOS Y LENGUAJES DE PROGRAMACIN 7

Flechas de Direccionamiento.- Se utilizan para expresar la
direccin del flujo del Diagrama.

Salida por Impresora.- Expresa escritura, representa la
impresin de un resultado.

Salida por Pantalla.- Para representar un resultado por
pantalla.

Conectores de la misma pgina.- Para representar conexin
dentro de una misma pgina.

Conector de diferente pgina.- Para representar la conexin
entre diferentes pginas.

Reglas para el diseo de Diagramas de flujo:

Se debe evitar el cruce de lneas utilizando los conectores.
Se deben usar los conectores solo cuando sea necesario.
No debe quedar lneas de flujo sin conectar.
Se leen de arriba hacia abajo.
Todo diagrama de flujo debe tener un Inicio y un Fin.

Etapas en la Construccin de un Diagrama de Flujo:

Estas fases se presentan en la mayora de los diagramas de flujo, aunque a veces en
orden diferente o repitiendo algunas de ellas. Tambin es frecuente tener que realizar
toma de decisiones y repetir una serie de pasos un nmero determinado o no de veces.

















INICIO
Lectura de
datos
Proc. de los datos
Imp. de
Resultados
FIN
INSTITUTO TECNOLOGICODE ORIZABA

ALGORITMOS Y LENGUAJES DE PROGRAMACIN 8


Ejemplo:


Diagrama de flujo sencillo con los pasos a seguir si una lmpara no funciona.
Un diagrama de flujo es una forma ms tradicional de especificar los detalles
algortmicos de un proceso y constituye la representacin grfica de un proceso
multifactorial. Se utiliza principalmente en programacin, economa y procesos
industriales, pasando tambin a partir de estas disciplinas a formar parte fundamental de
otras, como la psicologa cognitiva; estos diagramas utilizan una serie de smbolos con
significados especiales. Son la representacin grfica de los pasos de un proceso, que se
realiza para entenderlo mejor. Son modelos tecnolgicos utilizados para comprender los
rudimentos de la programacin lineal.
Un Diagrama de Flujo representa la esquematizacin grfica de un algoritmo , el cual
muestra grficamente los pasos o procesos a seguir para alcanzar la solucin de un
problema . Su correcta construccin es sumamente importante porque , a partir del mismo
se escribe un programa en algn Lenguaje de Programacin. Si el Diagrama de Flujo est
completo y correcto ,el paso del mismo a un Lenguaje de Programacin es relativamente
simple y directo.
DIAGRAMAS DE NASSI - SCHNEIDERMAN
Definicin.
El diagrama N-S o tambin conocido como diagrama de Chapin es una tcnica de
especificacin de algoritmos que combina la descripcin textual, propia del pseudocdigo,
con la representacin grfica del diagrama de flujo.
INSTITUTO TECNOLOGICODE ORIZABA

ALGORITMOS Y LENGUAJES DE PROGRAMACIN 9
El diagrama N-S cuenta con un conjunto limitado de smbolos para representar los pasos
del algoritmo, por ello se apoya en expresiones del lenguaje natural; sin embargo, dado
que el lenguaje natural es muy extenso y se presta para la ambigedad, solo se utiliza un
conjunto de palabras, a las que se denomina palabras reservadas. Las palabras
reservadas ms utilizadas son:

Inicio Fin Leer Escribir
Mientras Repita Hasta Para
Incrementar Decrementar Hacer Funcin
Entero Real Caracter Cadena
Lgico Retornar
Los smbolos utilizados en el diagrama de Chapin son corresponden a cada tipo de
estructura. Dado que se tienen tres tipos de estructuras, se utilizan tres smbolos. Esto
hace que los procesos del algoritmo sean ms fciles de representar y de interpretar.
El diagrama estructurado N-S es como un diagrama de flujo en el que se omiten las
flechas de unin y las cajas son contiguas.
Un enfoque mas estructurado, pero tal vez menos visual, para el diseo y la
documentacin en el diagrama Nassi Schneiderman.
Los diagramas NS tienen tres smbolos principales : el primero es un cuadro que sirve
para representar cualquier proceso en el programa ; el segundo smbolo es una decisin ;
y el tercero es un cuadro dentro de otro cuadro que se utiliza para indicar que se lleva a
cabo una iteracin.


INSTITUTO TECNOLOGICODE ORIZABA

ALGORITMOS Y LENGUAJES DE PROGRAMACIN 10
Ventajas
Adopta la filosofa de la programacin estructurada, que utiliza un enfoque descendente,
utiliza un nmero limitado de smbolos de tal forma que el diagrama de flujo ocupa menos
espacio y puede leerse con cierta finalidad.
Desventajas
Deben estar completos y ser muy claros, con el fin de que se entiendan.
Pseudocdigo es la descripcin de un algoritmo que asemeja a un lenguaje de
programacin pero con algunas convenciones del lenguaje natural. Tiene varias ventajas
con respecto a los diagramas de flujo, entre las que se destaca el poco espacio que se
requiere para representar instrucciones complejas. El pseudocdigo no est regido por
ningn estndar. pseudo viene de falso y por ende es un cdigo al que aunque es
entendible no se aplica al proceso que debe realizar la maquina.
El pseudocdigo describe un algoritmo utilizando una mezcla de frases en lenguaje
comn, instrucciones de programacin y palabras clave que definen las estructuras
bsicas. Su objetivo es permitir que el programador se centre en los aspectos lgicos de
la solucin a un problema.
No siendo el pseudocdigo un lenguaje formal, varan de un programador a otro, es decir,
no hay una estructura semntica ni arquitectura estndar. Es una herramienta gil para el
estudio y diseo de aplicaciones.
El principal objetivo del pseudocdigo es el de representar la solucin a un algoritmo de la
forma ms detallada posible, y a su vez lo ms parecida posible al lenguaje que
posteriormente se utilizara para la codificacin del mismo.
Las principales caractersticas de este lenguaje son:
Se puede ejecutar en un ordenador
Es una forma de representacin sencilla de utilizar y de manipular.
Facilita el paso del programa al lenguaje de programacin.
Es independiente del lenguaje de programacin que se vaya a utilizar.
Es un mtodo que facilita la programacin y solucin al algoritmo del programa.
DIAGRAMA ESTRUCTURADO
La Estructura del algoritmo es la siguiente:
Accin (nombre de la accin) es
- Ambiente
(Declaracin de variables)
(Declaracin de constantes)
- Algoritmo
(Sentencias del programa)
INSTITUTO TECNOLOGICODE ORIZABA

ALGORITMOS Y LENGUAJES DE PROGRAMACIN 11
Fin Accin
Dentro del algoritmo hay dos secciones, estas son:

1. Ambiente > Seccin declarativa. Se declaran todas las estructuras de datos que
utilizaremos en el algoritmo.
2. Algoritmo > Incluiremos aqu todas las acciones tendientes a resolver problemas.
Solamente se usaran aqu las estructuras de datos DECLARADAS en el ambiente.
TEOREMA DE LA PROGRAMACIN ESTRUCTURADA
Todo algoritmo estructurado puede ser escrito por tres tipos de estructuras de
control
ESTRUCTURAS DE CONTROL .-
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:

Secuencial .- Las acciones se suceden una a continuacin de la siguiente. Tiene una
entrada y una salida. Nunca se ejecuta ms de una accin por vez.
Condicional .- Se evala una condicin y en funcin del resultado de la misma se
realiza una operacin u otra
Simples (SI-Entonces).- Ejecuta una accin cuando se cumple la condicin.
Alternativas (Si- Entonces-sino) .- Ejecuta una/s accin/es cuando se cumple la
condicin. Caso contrario (condicin falsa) ejecuta otra/s accin/es.
Mltiples (SEGN) .- Permite ejecutar una sentencia segn el valor de una
variable.
INSTITUTO TECNOLOGICODE ORIZABA

ALGORITMOS Y LENGUAJES DE PROGRAMACIN 12
Repetitivas .- Repiten una secuencia un Nmero de veces (Bucles) y al hecho de repetir
la ejecucin de una secuencia de acciones se le llama Iteracin.
Estructura MIENTRAS.- Permite ejecutar una sentencia mientras se cumpla la
condicin (booleana o lgica). Es importante que la condicin sea falsa en algn
momento para que no se genere un ciclo infinito.
Estructura REPETIR .- Permite ejecutar la sentencia hasta que cumpla la
condicin (booleana o lgica). Es importante que la condicin sea verdadera en
algn momento para que no se genere un ciclo infinito.
Estructura PARA .- Permite ejecutar una sentencia un nmero especifico de
veces. Las sentencias se ejecutan dentro del bucle. Comienza con un Valor
inicial hasta llegar a un valor final.
2.3.2 IMPLEMENTACION DE ALGORITMOS 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.
En Pseudocdigo una Estructura Secuencial se representa de la siguiente forma:


Observe el siguiente problema de tipo cotidiano y sus respectivos algoritmos
representados en Pseudocdigo y en diagramas de flujos:

Tengo un telfono y necesito llamar a alguien pero no s como hacerlo.
INSTITUTO TECNOLOGICODE ORIZABA

ALGORITMOS Y LENGUAJES DE PROGRAMACIN 13


El anterior ejemplo es un sencillo algoritmo de un problema cotidiano dado como muestra
de una estructura secuencial Ahora veremos los componentes que pertenecen a ella:

Asignacin.-

La asignacin consiste, en el paso de valores o resultados a una zona de la memoria.
Dicha zona ser reconocida con el nombre de la variable que recibe el valor. La
asignacin se puede clasificar de la siguiente forma:
Simples: Consiste en pasar un valor constante a una variable (a =15)
Contador: Consiste en usarla como un verificador del numero de veces que se
realiza un proceso (a =a + 1)
Acumulador: Consiste en usarla como un sumador en un proceso (a =a + b)
De trabajo: Donde puede recibir el resultado de una operacin matemtica que
involucre muchas variables (a =c + b*2/4).
En general el formato a utilizar es el siguiente:
< Variable > = <valor o expresin >
El smbolo = debe leerse asigne.
Escritura o salida de datos

Consiste en mandar por un dispositivo de salida (p.ej. monitor o impresora) un resultado o
mensaje. Esta instruccin presenta en pantalla el mensaje escrito entre comillas o el
contenido de la variable. Este proceso se representa as como sigue:



INSTITUTO TECNOLOGICODE ORIZABA

ALGORITMOS Y LENGUAJES DE PROGRAMACIN 14
Lectura o entrada de datos

La lectura o entrada de datos consiste en recibir desde un dispositivo de entrada (p.ej. el
teclado) un valor o dato. Este dato va a ser almacenado en la variable que aparece a
continuacin de la instruccin. Esta operacin se representa as:


DECLARACION DE VARIABLES Y CONSTANTES

La declaracin de variables es un proceso que consiste en listar al principio del algoritmo
todas las variables que se usarn, adems de colocar el nombre de la variable se debe
decir qu tipo de variable es.
Contador: ENTERO
Edad, I: ENTERO
Direccion : CADENA_DE_CARACTERES
Salario_Basico : REAL
Opcion : CARACTER

En la anterior declaracin de variables Contador, Edad e I son declaradas de tipo entero;
Salario_Basico es una variable de tipo real, Opcion es de tipo carcter y la variable
Direccion est declarada como una variable alfanumrica de cadena de caracteres.

En el momento de declarar constantes debe indicarse que lo es y colocarse su respectivo
valor.

CONSTANTE Pi 3.14159
CONSTANTE Msg Presione una tecla y continue
CONSTANTE ALTURA 40

Cuando se trabaja con algoritmos por lo general no se acostumbra a declarar las variables
ni tampoco constantes debido a razones de simplicidad, es decir, no es camisa de fuerza
declarar las variables. Sin embargo en este curso lo haremos para todos los algoritmos
que realicemos, con esto logramos hacerlos ms entendibles y organizados y de paso
permite acostumbrarnos a declararlas ya que la mayora de los lenguajes de
programacin (entre ellos el C++) requieren que necesariamente se declaren las variables
que se van a usar en los programas.
Veamos algunos ejemplos donde se aplique todo lo que hemos visto hasta el momento
sobre algoritmos:

Ejemplo 1: Escriba un algoritmo que pregunte por dos nmeros y muestre como resultado
la suma de estos. Use Pseudocdigo y diagrama de flujos.

INSTITUTO TECNOLOGICODE ORIZABA

ALGORITMOS Y LENGUAJES DE PROGRAMACIN 15



Ejemplo 2: Escriba un algoritmo que permita conocer el rea de un tringulo a partir de la
base y la altura. Exprese el algoritmo usando Pseudocdigo y diagrama de flujos.


El Algoritmo Lineal o Secuencial tiene la caracterstica de que todos los pasos que
forman el Algoritmo siguen una determinada Secuencia, de ah que se le llame
Secuencial.

PRUEBA DE ESCRITORIO.- Consiste en dar diferentes datos de entrada al diagrama y
seguir la lgica del programa hasta tener un resultado verdico o si es necesario hacer
ajustes al programa y volver a realizar la prueba.

Você também pode gostar