Unidad 3

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 8

1

Unidad 3

Técnicas de Diseño detallado

3.1.- Diseño algorítmico


3.2.- Diseño algorítmico de las funciones

Realizado por:
Ing. Jorge Eloy Toledo Coronel
2

3.1.- Diseño Algorítmico

Definición de Algoritmo
La palabra algoritmo se deriva de la traducción al latín de la palabra árabe alkhowarizmi,
nombre de un matemático y astrónomo árabe que escribió un tratado sobre manipulación de
números y ecuaciones en el siglo IX.
Un algoritmo es una serie de pasos organizados que describe el proceso que se debe seguir,
para dar solución a un problema especifico.

Tipos de Algoritmos:

Ø Cualitativos: Son aquellos en los que se describen los pasos utilizando palabras.
Ø Cuantitativos: Son aquellos en los que se utilizan cálculos numéricos para definir los
pasos del proceso.

Características de los Algoritmos


a.- Un algoritmo debe ser finito. Esta característica nos dice que si aplicamos o seguimos un
algoritmo, éste debe terminar en algún momento, es decir, tiene un numero finito de pasos.

b.- Un algoritmo debe estar definido. Esta característica nos dice que si seguimos un algoritmo
una vez debemos llegar a una solución y si lo seguimos otra vez, debemos llegar a la misma
solución.

c.- Un algoritmo debe ser preciso. Esto es , se debe indicar el orden de ejecución de cada
paso.

3.1.1.- FORMAS DE REPRESENTAR LOS ALGORITMOS.


Existen Diferentes formas de representar los algoritmos, ya sea en forma grafica o utilizando
una forma narrativa; entre estas tenemos:

Ø Gráficos: Es la representación gráfica de las operaciones que realiza un algoritmo


(diagrama de flujo).
Ø No Gráficos: Representa en forma descriptiva las operaciones que debe realizar un
algoritmo. (Pseudo código).

Diagramas de Flujo.
Pseudo Códigos
Diagramas de Nassi – Shneiderman.
Diagramas de Warnier – Or

Diagramas de Flujo: Los diagramas de flujo que se realizan para resolver un


problema especifico deben ser claros y concisos. Por lo general estos diagramas deben ser
independientes del lenguaje de programación que se vaya a utilizar para codificar el
algoritmo.
También se recomienda que no sea muy complejos y que sean entendibles por otras
personas relacionadas con el area de la programación.
Se han diseñado un conjunto de símbolos y signos estándar por el Instituto de
Normalización Americano (ANSI) que prácticamente ha sido adoptado internacionalmente.
Podemos considerar dos diagramasde flujo:

Realizado por:
Ing. Jorge Eloy Toledo Coronel
3

Diagrama de Flujo de Sistema: En este tipo de diagrama se describe el flujo de


información entre los diferentes periféricos y el CPU que conforman un sistema de
computo, no referido como una Pc; sino como un sistema completo que incluya, por
ejemplo Lectoras de Cintas Magnéticas, Lectora de Documentos Ópticos, Lectora de
discos magnéticos, Impresoras, Graficadores, etc.

Los símbolos utilizados en este tipo de diagramas son diferentes a los usados en el
diagrama de flujo de detalle, no los describiremos aquí ya que no es el alcance de este
curso; para mayor información se recomienda ver cualquier bibliografía al respecto.

Diagrama de flujo de Detalle: En este curso centraremos nuestra atención en este tipo de
diagramas, ya que con este representaremos en forma grafica el algoritmo que
desarrollaremos para resolver un problema especifico.

Por lo tanto podemos decir que “ un diagrama de flujo es la representación grafica de un


algoritmo en el que se utilizan símbolos especiales que indican las operaciones especificas
que deberá realizar la computadora para llegar a la solución de cierto problema ”

Los principales símbolos de un diagrama de flujo que utilizaremos, se muestran a


continuación:

Ovalo: Se utiliza para indicar el inicio o el final del Diagrama de Flujo.

Paralelogramo o tarjeta perforada: Indica la entrada de datos o


Información a la Computadora

Rectángulo: Indica el proceso o Procesamiento de Información.

Circulo Pequeño: Sirve como conector entre partes de un diagrama de


flujo, pero en la Misma pagina.

Flechas: Indican la dirección del flujo o sentido de ejecución de las


Operaciones.

Hoja para Impresora: Indica únicamente la salida de la Información.

Hexágono: Indica un Proceso Iterativo.

Rombo: se utiliza para la toma de decisiones y cada una de los vértices


puede
contener un si o un no

Realizado por:
Ing. Jorge Eloy Toledo Coronel
4

Pseudo Códigos: Es otra de las maneras para representar algoritmos usando la forma narrada o
descriptiva para cada uno de los pasos del algoritmo.

La palabra Pseudocodigo significa falso código porque realmente no es un código, o sea no


son instrucciones escritas en un lenguaje de programación, sino que es una forma sencilla
de describir la solución de un problema utilizando el lenguaje natural; el español o el ingles
de tal forma que su trascripción a un lenguaje de programación de alto nivel sea lo mas
sencillo para quien esta aprendiendo a programar.

El Pseudocodigo utiliza palabras reservadas tales como leer(Read), escribir(Write),


imprimir(print), si – entonces – si no(if then else) , repite mientras(while - do), repite –
hasta(repeat - until), etc.

Un ejemplo de Pseudocodigo para calcular el area de un triangulo.

INICIO
Leer el valor de la base
Leer el valor de la altura
Calcular el area que es igual a la base por la altura dividida entre dos
Imprimir el area
FIN

Diagramas de Nassi – Shneiderman.: Otra forma grafica de representar un algoritmo es


el Diagrama de Nassi – Shneiderman o Diagrama de N/S, es como un Diagrama de flujo pero
con las flechas omitidas y las cojas y bloques continuos. Las acciones sucesivas se escriben
en cajas sucesivas, como en el diagrama de flujo, acciones diferentes pueden escribirse en una
sola caja.
El sistema de representación permite tener una visión mucho mas estructurada de los
algoritmos y por consiguiente mayor facilidad al introducirlos al lenguaje de computadora.

El diagrama se lee de arriba hacia abajo. Cada bloque ejecuta una acción especifica que se
puede documentar o describir con la precisión que sedesee.

Ejemplo:

Diagrama de flujo del ejemplo anteriormente visto.

INICIO
LEER EL VALOR DE LA BASE
LEER EL VALOR DE LA ALTURA
CALCULAR EL AREA = (BASE * ALTURA)/2
IMPRIMIR EL AREA
FIN

Diagramas de Warnier – Or: Es la forma de representar un algoritmo, utilizando llaves


abiertas en la cual sus extremos tendrá cualquiera de las dos opciones si o no.

Realizado por:
Ing. Jorge Eloy Toledo Coronel
5

Ejemplo: Elaborar el algoritmo que al proporcionar 2 números diferentes, nos imprima el


mayor de ellos

Inicio si Imprimir el mayor es n1


Leer n1, n2

Si n1>n2 entonces

no imprimir el mayor es n2

fin

3.1.2.- Implementación de algoritmos secuenciales.

Ejemplo 1.- Se desea calcular e imprimir la suma de dos números positivos, diseñar el
algoritmo y programa en c++

Pseudocodigo Diagrama de Flujo

Inicio
Leer el valor de A y de B
Calcular el valor de C = A + B
Imprimir el valor de la suma C
Fin

Programa en C++

·#include <iostream.h>
#include <stdio.h>
#include <conio.h>
#include <math.h>
float a,b,c;
void main()
{ //* Inicio del programa*//
clrscr();
cout<<”Valor de a=”; cin>>a;//* variables de entrada*//
cout<<”Valor de a=”; cin>>b;
c= a +b;
cout<<”El valor de la suma = “<<c<<” \n”;
getch();
}

Realizado por:
Ing. Jorge Eloy Toledo Coronel
6

Ejemplo 2.- Se desea realizar un sistema para elcanje de dolares americanos a pesos
mexicanos diseñar el algoritmo y el programa en C++ al proporcionar como dato de entrada la
cantidad de dolares, sabiendo que un dólar americano = $ 10.11

Pseudocodigo Diagrama de Flujo

Inicio
Hacer dl=10.00
Leer cd
Hacer pm= cd * dl
Imprimir cd
Fin

Programa en C++

·#include <iostream.h>
#include <stdio.h>
#include <conio.h>
#include <math.h>
#define dl 10.11
void main()
{
float cd,pm;
clrscr();
cout<<”Cantidad de dolares = “;
cin>>cd;
pm= cd * dl;
cout<<”En pesos Mexicanos = “<<pm<<”\n”;
getch();
}

3.2.- Diseño algorítmico de funciones

Nosotros podemos realizar cualquier algoritmo y representarlo en cualquiera de las formas


anteriormente dichas pero a si vez dividiéndolos en módulos, funciones, procedimientos,
subalgoritmos etc.

Por ejemplo

Se tienen dos valores enteros, positivos mayores que cero de los cuales debemos saber quien
de los dos es el mayor en caso contrario que nos imprima que son numero iguales

Normalmente así quedaría el Pseudodigo

Inicio
Leer a1,a2
Si a1>0 y a2>0 entonces
Si a1 > a2 entonces
Imprimir el mayor es a1
Si no
Si a1<a2 entonces
Imprimir el mayor es a2
Si no
Imprimir los numeros son iguales
Fin si
Fin si
Fin si
Fin

Realizado por:
Ing. Jorge Eloy Toledo Coronel
7

Programa en C++

·#include <iostream.h>
#include <stdio.h>
#include <conio.h>
#include <math.h>
Int a1,a2;
void main()
{clrscr();
cout<<”A1 = “; cin>>a1;
cout<<”A2 = “; cin>>a2;
If ((a1 > 0) && (a2>0))
{
If (a1>a2)
{
cout<<”El numero mayor es a1 \n”;
getch();
}
else
If (a2>a1)
{
cout<<”El numero mayor es a2 \n”;
getch();
}
else
{
cout<<”Los numeros son iguales \n”;
getch();
}
}
}

Ahora lo resolveremos por módulos

pseudodigos

Función leer Función Imprimir

Inicio Inicio
Leer a1,a2 si a1>0 y a2>0 entonces
Fin si a1>o entonces
Imprimir el mayor es a1
Si no
Si a1<a2 entonces
Imprimir el mayor es a2
Si no
Imprimir los numeros son iguales
Fin si
Fin si
Fin si
Fin

Realizado por:
Ing. Jorge Eloy Toledo Coronel
8

Diagramas de flujo
Función leer Función Imprimir

Programa en C++

·#include <iostream.h>
#include <stdio.h>
#include <conio.h>
#include <math.h>
Int a1,a2;
Void leer()
Void imprimir()
void main()
{
Leer();
Imprimir();
}
Void leer()
{clrscr();

cout<<”A1 = “; cin>>a1;
cout<<”A2 = “; cin>>a2;
}
Void imprimir()
{
Clrscr();
If ((a1 > 0) && (a2>0))
{
If (a1>a2)
{
cout<<”El numero mayor es a1 \n”;
getch();
}
else
If (a2>a1)
{
cout<<”El numero mayor es a2 \n”;
getch();
}
else
{
cout<<”Los numeros son iguales \n”;
getch();
}
}
}

Realizado por:
Ing. Jorge Eloy Toledo Coronel

También podría gustarte