Está en la página 1de 6

08/02/2016

Algoritmo

Conjunto ordenado de operaciones sistemáticas que permite


hacer un cálculo y hallar la solución de un tipo de problemas

Resolución de problemas
y diseño de algoritmos
Ing. Noycar Muñoz

Pseudocódigo.
PSEUDOCODIGO
El pseudocódigo (falso lenguaje, el prefijo pseudo significa falso) es una descripción de alto
El pseudocódigo es una mezcla de lenguajes de programación y nivel de un algoritmo que emplea una mezcla de lenguaje natural con algunas
español (o ingles o cualquier otro idioma) que se emplea, dentro convenciones sintácticas propias de lenguajes de programación, como asignaciones, ciclos
y condicionales, aunque no está regido por ningún estándar.
de la programación estructurada, para realizar el diseño de un
programa.
• Programadores diferentes suelen utilizar convenciones distintas, que pueden estar
basadas en la sintaxis de lenguajes de programación concretos. Sin embargo, el
Es una representación narrativa de los pasos que debe seguir un pseudocódigo, en general, es comprensible sin necesidad de conocer o utilizar un
algoritmo para dar solución a un problema determinado. El entorno de programación específico.
pseudocodigo utiliza palabras que indican el proceso a realizar.
• Utiliza las convenciones estructurales de un lenguaje de programación real, pero está
diseñado para la lectura humana en lugar de la lectura mediante máquina

Pseudocódigo.
Recomendaciones para Hacer Algoritmos

El pseudocódigo se concibió para superar las dos principales desventajas del Un algoritmo sólo debe tener un punto de arranque y un punto final.
diagrama de flujo : el diagrama de flujo es lento de crear y difícil de modificar
sin un nuevo redibujo. Por otra parte el pseudocódigo es más fácil de utilizar No se debe ser muy extenso. Como regla práctica se debe considerar
ya que es similar a los lenguajes naturales (español, inglés, etc). que no pase de 50 pasos.

Cada paso debe estar documentado (que haya comentarios explicando


Dentro del pseudocódigo se incluyen al menos las siguientes secciones: cada uno).

* Nombre del programa Las constantes deben estar inicializadas al principio del algoritmo.

Las variables deben ser inicializadas en el paso más cercano a donde


* Sección de declaraciones
van a ser usadas.
* Algoritmo Si el algoritmo es muy extenso, es recomendable dividirlo en sub-
algoritmos (Módulos).

1
08/02/2016

Ventajas del pseudocódigo sobre los


Diagramas de flujo Técnicas de Diseño de Algoritmos

Ocupan mucho menos espacio en el desarrollo del problema.


La utilización de la técnica de diseño Top-Down tiene los
• Permite representar de forma fácil operaciones repetitivas complejas. siguientes objetivos básicos:
• Es más sencilla la tarea de pasar de pseudocódigo a un lenguaje de
programación formal. * Simplificación del problema y de los subprogramas de cada
descomposición.

* Las diferentes partes del problema pueden ser programadas


de modo independiente e incluso por diferentes personas.

* El programa final queda estructurado en forma de bloque o


módulos lo que hace mas sencilla su lectura y mantenimiento.

Técnicas de Diseño de Algoritmos Resolución de Problemas


Bottom-Up. Prueba de escritorio o corrida en frío.
El diseño ascendente se refiere a la identificación de aquellos
Codificación: Consiste en traducir el algoritmo en instrucciones de
procesos que necesitan computarizarse con forme vayan un lenguaje de Programación. Esta codificación produce lo que se
apareciendo. conoce como programa fuente.

Transcripción: Escribir el programa fuente en la Computadora.


Cuando la programación se realiza internamente y haciendo un Compilación: Traducir el programa fuente en lenguaje objeto y
enfoque ascendente, es difícil llegar a integrar los subsistemas al luego a un programa ejecutable.
grado tal de que el desempeño global, sea fluido. Los problemas
Prueba del Programa: Ejecución del programa y verificar los
de integración entre los subsistemas son sumamente costosos y resultados del programa con los resultados esperados.
muchos de ellos no se solucionan hasta que la programación
alcanza la fecha límite para la integración total del sistema.

Resolución de Problemas Recomendaciones para Definir Variables

Depuración del Programa: Corrección de ciertas fallas que A pesar de que la mayoría de los lenguajes permiten definir
fueron obviadas en la etapa del diseño de la solución. variables con claves de uno hasta cuarenta caracteres es
recomendable usar de 3 a 10 caracteres.
Documentación.
Diagramas de Proceso. El nombre de la variable debe reflejar lo que representa.
Manual del Usuario
Manual del Programador. Las variables deben agruparse de acuerdo a su tipo. Por
Ejemplo: Todas aquellas variables que empiecen por I son
Puesta en servicio. enteras.
Mantenimiento: Adaptación por cambio de requerimientos
de información por parte del usuario final.
V=D/T
Velocidad = Distancia / Tiempo

F=m*a
Fuerza = Masa * Aceleracion

2
08/02/2016

Metodología para resolución de problemas


en 4 pasos Programación Modular
• DEFINICIÓN DEL PROBLEMA (Entender): Es donde se determina qué es lo que debe
resolverse con el computador, el cual requiere una definición clara y precisa.
La Programación modular es uno de los métodos de diseño más
fléxibles y potentes para mejorar la productividad de un programa.
• ANÁLISIS DEL PROBLEMA (Estrategias):es necesario definir los datos de entrada,
cuál es la información que se desea producir (salida) y los métodos y fórmulas que se Cada programa contiene un módulo denominado programa
necesitan para procesar los datos. principal que controla todo lo que sucede; se transfiere a sub-
módulos de modo que ellos puedan ejecutar sus funciones. Cada
• CONSTRUIR EL ALGORITMO (Utilizando Pseudocódigo): es la operación de escribir sub-módulo devuelve al módulo principal cuando se haya
la solución del problema, en una serie de instrucciones detalladas. completado su tarea.

• PROBAR EL ALGORITMO: Consiste en tomar datos específicos como entrada y Para poder realizar programas modulares, es necesario basarse en
seguir la secuencia indicada en el algoritmo hasta obtener un resultado, el análisis de estrategias para Solucionar Problemas (Top-Down, Down-Top,
estos resultados indicará si el algoritmo está correcto o si por el contrario hay
Dividir y Vencer, Solución por Analogía y/o Entrada-Proceso-Salida.
necesidad de corregirlo o hacerle ajuste

Teoremas para la Programación IDENTIFICADORES


Estructurada

Solamente pueden ser usado tres tipos de estructuras de control:


secuenciales, selectivas y repetitivas.
Se denomina identificador al nombre que podemos asignar a las
Posee un solo punto de entrada y uno de salida o fin para el control variables constantes ó nombres de programa
del programa.
Reglas
Existen caminos desde la entrada hasta la salida que se pueden
seguir y que pasan por todas las partes del programa. Debe comenzar con una letra (A hasta Z,) aunque el resto del
nombre puede contener también números y no puede contener
blancos.
Todas las instrucciones son ejecutables y no existen lazos o bucles
infinitos. Se pueden usar tanto mayúsculas como minúsculas, pero ten en
cuenta que dependiendo del lenguaje de programación usado, se
El programa tiene un diseño modular. hace distinción entre ambas.

Los módulos son diseñados de modo descendente Letras, dígitos, y caracteres subrayados (-) están permitidos después
del Primer carácter.

Variables
I
IDENTIFICADORES
Selecciona identificadores simples y descriptivos.  Es un espacio de memoria en donde podemos almacenar temporalmente

 No emplees acrónimos ni abreviaturas como identificadores datos de cualquier tipo de información que necesitemos para realizar un

 Evita los identificadores mal deletreados o incompletos proceso, y tal como su nombre lo indica, las variables pueden cambiar su

 Si un nombre no es suficiente para caracterizar un objeto, utiliza dos o más valor a lo largo de la ejecución de un programa.
palabras.
 Toda variable pertenece a un tipo de dato concreto. En la declaración de una
 Al crear un identificador de dos palabras donde éstas pueden colocarse en
variable se debe indicar el tipo al que pertenece. Así tendremos variables
cualquier orden, coloca siempre la más importante de primero
enteras, reales, booleanas, etc. Por otro lado, distinguimos tres partes
 No se permiten usar nombres repetidos, ni usar palabras reservadas del
fundamentales en la vida de una variable: Declaración, Iniciación,
lenguaje (Begin, If, For, While, End, etc)
Utilización.

3
08/02/2016

Variables Variable
Declaración de variables: Esta es la primera fase en la vida de cualquier

 Declaración de variables: Esta es la primera fase en la vida de cualquier variable. La declaración se realiza en la sección que comienza con la

variable. La declaración se realiza en la sección que comienza con la palabra var

palabra var  Iniciación de variables: Esto no es más que darle un valor inicial a una

 Iniciación de variables: Esto no es más que darle un valor inicial a una variable.

variable.  Utilización de variables: Una vez declarada e iniciada una variable, es el

 Utilización de variables: Una vez declarada e iniciada una variable, es el momento de utilizarla.
Var contador: numérico , suma: númerico Proceso Ejemplo
momento de utilizarla Inicio Definir primerNumero como Entero
contador<-1; Definir segundoNumero como Entero
suma<-0;

Tipo de Datos
Datos
 Los tipos de datos hacen referencia al tipo de información que se trabaja,

donde la unidad mínima de almacenamiento es el dato, también se puede


El tipo entero (integer): son los valores que no tienen punto decimal, pueden
considerar como el rango de valores que puede tomar una variable durante
ser positivos o negativos y el cero.
la ejecución del programa.
 El tipo Real: estos caracteres almacenan números muy grandes que poseen
 Los tipos char: Con el tipo carácter puedes tener objetos que representen
parte entera y parte decimal.
una letra, un número, etc. Es decir, puedes usar variables que representen
Boolean: este tipo de dato se emplea para valores lógicos, los podemos definir
un valor alfanumérico. Pero ojo, cada variable sólo podrá almacenar un como datos comparativos dicha comparación devuelve resultados lógicos.

carácter.

 Los tipos string: puedes contener en una sóla variable más de un carácter

Constante ejemplo

Una constante es un dato cuyo valor no puede cambiar durante la ejecución

del programa. Recibe un valor en el momento de la compilación y este const


Min = 0;
permanece inalterado durante todo el programa. Max = 100;
Sep = 10;
 Las constantes se declaran en una sección que comienza con la palabra var
i : integer;
reservada const. Después de declarar una constante ya puedes usarla en

el cuerpo principal del programa. Tienen varios usos: ser miembro en

una expresión, en una comparación, asignar su valor a una variable

4
08/02/2016

Variables y Constantes
Recomendaciones para Definir Variables

A pesar de que la mayoría de los lenguajes permiten definir


 Las constantes ya reciben un valor inicial en su declaración variables con claves de uno hasta cuarenta caracteres es
recomendable usar de 3 a 10 caracteres.
 Las variables primero se declaran, luego se inician, y luego se usan
El nombre de la variable debe reflejar lo que representa.
 Las constantes, una vez declaradas mantienen su valor durante toda la
ejecución del programa, en cambio, las variables pueden cambiar su valor Las variables deben agruparse de acuerdo a su tipo. Por
tantas veces como deseen Ejemplo: Todas aquellas variables que empiecen por I son
enteras.
V=D/T
Velocidad = Distancia / Tiempo

F=m*a
Fuerza = Masa * Aceleracion

Operadores Operadores
Prioridades:
Son elementos que relacionan de forma diferente los valores de una o más
variables y/o constantes. Es decir, los operadores nos permiten manipular valores. Todas las expresiones entre paréntesis se evalúan primero. Las expresiones
con paréntesis anidados se evalúan de dentro a fuera, el paréntesis más
Aritméticos:
interno se evalúa primero.
 ^ Exponente Dentro de una misma expresión los operadores se evalúan en el siguiente
orden.
 + Suma
1. ^
 - Resta 2. *, /, mod

 * Multiplicación 3. +, -
Las operaciones en una misma expresión con igual nivel de prioridad se
 / División evalúan de izquierda a derecha.
 Mod Modul

Operadores Tabla de la verdad


Operadores relacionales: Operadores lógicos

 > Mayor que  and Y Tabla de la verdad

 < Menor que  or O  Con AND el resultado será Verdadero sólo si ambos lo son, mientras que

 >= Mayor o igual que  not Negación con OR será Verdadero si uno de ellos o ambos lo son.

 <= Menor o igual que

 <> Diferente

 = Igual

5
08/02/2016

Estructuras de Control
Estructuras Selectivas

• En la redacción del pseudocódigo se utiliza tres tipos de estructuras de control: • Estructuras selectivas: Las instrucciones selectivas representan instrucciones que
las secuenciales, las selectivas y las iterativas. pueden o no ejecutarse, según el cumplimiento de una condición.
• Estructuras secuenciales: Las instrucciones se siguen en una secuencia fija que Si <condicion> entonces
normalmente viene dada por el número de renglón. Es decir que las instrucciones instrucciones;
se ejecutan de arriba hacia abajo. Fin Si
• Selectiva doble (alternativa) :La instrucción alternativa realiza una instrucción de
dos posibles, según el cumplimiento de una condición.
Instruccion1;
Instruccion2; Si <condicion> entonces
Instruccion3; instrucciones;
. Si no entonces
. instrucciones;
. Fin Si

Estructura selectiva Estructuras de Control

• Selectiva múltiple: También es común el uso de una selección múltiple que • Selectiva múltiple-Casos: En este caso hay un Indicador es una variable o
equivaldría a anidar varias funciones de selección. En este caso hay una serie de una función cuyo valor es comparado en cada caso con los valores "Valor", si
condiciones que tienen que ser mutuamente excluyentes, si una de ellas se cumple en algún caso coinciden ambos valores, entonces se ejecutarán las
las demás tienen que ser falsas necesariamente Instrucciones.
Si <condicion> entonces
instrucciones1; Según <variable> hacer
Si no si <condicion> entonces caso valor1;
instrucciones2; instrucciones1;
Si no si <condicion> entonces caso valor2;
instrucciones3; instrucciones2;
Fin Si caso valor3;
instrucciones1;
Fin Segun

También podría gustarte