You are on page 1of 32

.

1
Ao de la Inversin para el Desarrollo Rural y la
Seguridad alimentaria


CARRERA DE ADMINISTRACION FINANZAS Y
NEGOCIOS GLOBALES
Estrategia del precio

SEMESTRE- V

CURSO: Investigacin Operativa

ALUMNA: MERLO OR SUELEM MAGALY


2014

.


2
INDICE
ALGORITMOS
1.-METODOLOGA PARA LA RESOLUCIN DE PROBLEMAS
Definicin del sistema:
Diseo del sistema:
Codificacin
Prueba y depuracin
Documentacin y Mantenimiento:
2.-TCNICAS DE DISEO
TOP DOWN
BOTTON UP:
WARNIER ORR
Tcnicas para la formulacin de algoritmos
Diagramas de Flujo >
Pseudo cdigo
2.-ESTRUCTURAS DE DATOS
Simples
.


3
Compuestas:
4.-DINMICAS
5.-OPERADORES
6.-ASIGNACIN
7.-ENTRADA/SALIDA DE INFORMACIN (E/S)
8.-ESTRUCTURA
9.-AMBIENTE
9.-ALGORITMO
Teorema de la Programacin Estructurada
Estructuras de Control
Secuencial
Condicional
10-TIPOS :
10.1. Anlisis del problema:
10.2.Diseo del algoritmo.
11.-MANDATOS E INSTRUCCIONES:
12.-VARIABLES VECTORES Y MATRICES:

.


4


INTRODUCION
Conjunto de acciones o secuencias de operaciones ejecutadas en un determinado
orden para resolver un problema.
Accin
Acontecimiento producido por un actor en un tiempo finito que produce un
resultado definido y preciso y adems genera cierta transformacin.
Analizaremos la accin
Existen diferentes tipos de acciones:
Accin simple: Realizadas directamente
Accin compleja: No se pueden realizar directamente sino a travs de una
descomposicin de acciones ms simples (diseo Top-down).
Transformacin Generada en los elementos intervinientes. Para determinar la
transformacin debo conocer el ESTADO.
.


5
ESTADO
Es la observacin de los elementos del sistema en un instante de tiempo dado.
Hay tres tipos de estado
Estado inicial Instante donde comienza la accin.(Ei)
Estado intermedio Instante observado en cualquier momento entre el comienzo y
la finalizacin de la accin.
Estado Final Instante observado donde finaliza la accin (Ef)
Caractersticas de los algoritmos
Definido (confiable)
Debe indicar un orden a seguir
Debe ser finito, terminar en un nmero finito de pasos.
*Nota: Algoritmo Se trata de una herramienta capaz de resolver un problema.
Todas las situaciones problemticas pueden ser resueltas a travs de algoritmos.

Pasos:
.


6
Pasos Etapa Descripcin
1 Anlisis del problema Conducen al diseo detallado por medio
un cdigo escrito en forma de un algoritmo
2 Diseo de algoritmo
3 Codificacin Se implementa el algoritmo en un cdigo escrito
en un lenguaje de programacin. Refleja las
ideas desarrolladas en las etapas de anlisis y
diseo
4 Compilacin y ejecucin Traduce el programa fuente a programa en
cdigo de maquina y lo ejecuta.
5 Verificacin Busca errores en las etapas anteriores y los
elimina.
6 Depuracin
7 Documentacin Son comentarios, etiquetas de texto, que
facilitan la comprensin del programa

Concepto
Algoritmo: es un mtodo para
resolver un problema mediante una
Preciso: implica el orden de realizacin
de cada uno de los pasos
.


7
serie de pasos definidos, precisos y
finitos.
Definido: si se sigue dos veces, se
obtiene el mismo resultado.
Finito: Tiene un numero determinado de
pasos, implica que tiene un fin,

ALGORITMOS
Lenguaje algortmico: Se realiza anlisis y se elige el mtodo a utilizar, el conjunto
de operaciones y orden conforman el algoritmo.
PROGRAMAS:
Lenguaje informtico: Es aquel por el cual dicho algoritmo se codifica a la
computadora.
Programa > algoritmo destinado a gobernar una computadora.
Lenguaje de programacin:
Pueden haber diferentes "lenguajes" tales como: visual Basic, delphi, c++, java,
etc.
.


8
Pueden tener diferente metodologa de programacin tales como: Modular,
estructurada, orientada a objetos, etc.
Cubren necesidades especficas como ser: el visual Fox Pro, es para programar
bases de datos.
1.-METODOLOGA PARA LA RESOLUCIN DE PROBLEMAS
Hay cinco etapas para resolver problemas algortmicos, estas son:
1. Definicin del sistema: definir que va a hacer el programa y que solucin
obtendremos.
2. Diseo del sistema: Establecer que tipo de metodologa usaremos para
solucionar el problema (Ej. Top down o Botton up).
Cuando se compila el algoritmo, hay un "antes" y un "despus"
o Antes > Programa Fuente (lenguaje de programacin).
o Despus > Programa ejecutable (lenguaje de maquina).
3. Codificacin: Es la etapa en donde se escribe el algoritmo en un lenguaje de
programacin.
4. Prueba y depuracin: Se realizan pruebas para verificar el funcionamiento del
programa, se prueba con valores vlidos y con no vlidos para ver como se
comporta y corregir si es necesario.
.


9
5. Documentacin y Mantenimiento: Se basa en la instalacin, funcionamiento
y caractersticas del programa. Permite corregir errores o modificar el programa
(estos cambios son el mantenimiento del programa).
Hay dos tipos de documentacin, estas son:
Interna > viene dentro del programa (Ej. Readme, caractersticas operativas)
Externa > Viene fuera del programa, diagramas de flujo, manuales de usuario,
consejos de uso, etc.

2.-TCNICAS DE DISEO
Hay tres tipos de tcnicas, estas son:
1. TOP DOWN (Diseo descendente): Consiste en tomar el problema inicial y
descomponerlo en problemas ms pequeos, de solucin sencilla.
2. BOTTON UP: Consiste en partir de los detalles ms precisos del algoritmo
completando mdulos de mayor complejidad es inverso al anterior - .
3. WARNIER ORR: Utiliza una representacin semejante a cuadros sinpticos
para Mostar el funcionamiento y organizacin del algoritmo.
Tcnicas para la formulacin de algoritmos
.


10
Hay dos tipos, estas son:
*Estos no pueden ser ejecutados por una computadora

1. Diagramas de Flujo > se basan en la utilizacin de smbolos para representar
las acciones.
2. Pseudo cdigo > Es un 1er borrador al igual que el diagrama de flujo.
El pseudo cdigo siempre utiliza "programacin estructurada"(conjunto de
tcnicas y mtodos para disear y escribir programas)
La programacin estructurada se basa en el teorema de la programacin
estructurada, propuesto por Bohny y Jacopini, ellos dicen que "todo algoritmo
puede ser escrito usando tres tipos de estructuras: Secuencial, Condicional
o Repetitiva".
Las especificaciones de la programacin estructurada son tres:
Un solo punto de Entrada y Salida (E/S).
Todas las acciones deben ser accesibles.
No posee ciclos o bucles infinitos.
.


11
Para disear un algoritmo utilizando pseudo cdigo se emplean instrucciones en
nuestro idioma.
Adems para escribir este programa en pseudo cdigo se deben conocer un
conjunto de instrucciones reglas que DEFINEN como COMBINAR las
instrucciones.
Algunas sentencias tienen equivalencia directa con los smbolos de los diagramas
de flujo.
Todo algoritmo necesita de un DATO (Expresin general que describe objetos con
los cuales opera una computadora)
Hay diferentes Tipos de Datos, estos son:
Numrico > Representan una cantidad un valor determinado, pueden ser
enteros o reales.
Alfanumrico > Representan informacin textual ( no tiene valor) , pueden ser
caracteres de tipo
*Numrico (0, 1, 2,3...)
*Alfabticos (A, B, C, a, b, c)
*Especiales (+,-,*, /, < >, $)
.


12
Lgicos Booleano > pueden tomar dos valores, Verdadero o Falso, Sirve para
representar alternativas a determinadas condiciones.
2.-ESTRUCTURAS DE DATOS
Es una coleccin de datos organizados particularmente que se utilizan para la
resolucin de problemas.
Hay dos tipos de estructuras de datos:
1. Se divide en dos tipos:
o Simples
*Constantes: Representa una zona de memoria en la cual se almacena un
dato. El dato no puede ser modificado. Su forma:
Definicin: nombre/tipo de dato. Estas simplifican la programacin.
*Variables: Representa una zona de memoria en donde podemos hacer que el
contenido "vare". Su forma:
Definicin: nombre/tipo de dato
o Compuestas: se utilizan en
*Registros
*Arreglos
*Estructuras de Archivos
.


13
4.-DINMICAS
Utilizan una cantidad variable de memoria, esta puede aumentar o disminuir
mientras se ejecute el algoritmo. Se utilizan en
*Punteros
*Variable de Cadena de caracteres de longitud variable
5.-OPERADORES
Smbolo que determina qu tipo de operacin se va a realizar entre los "operandos"
Se clasifican en:
o Aritmticos > Permiten clculos aritmticos, utilizan operandos y resultados
numricos {+,-,*, /, DIV, MOD, ^, ABS ( ), TRUNC ( ), REDOND ( )}.
o Relacionales > Permiten realizar comparaciones de valores de tipo numrico
carcter. Los resultados son lgicos {<, >, =, <=, >=, < >}.
o Lgicos > Permiten la combinacin de condiciones para formar una sola
expresin lgica. Utilizan operandos y resultados lgicos {-, ^, v}.
6.-ASIGNACIN Permite darle valores a una variable.
Se representa por el smbolo :=
*No podemos usar variables/constantes que no estn definidas
.


14
El formato de la Asignacin es: VARIABLE:=EXPRESIN
Donde Expresin es la Combinacin de variables, constantes y operadores
que representan una o un conjunto de operaciones que devuelven un
resultado.
EJ. Z:= X*Pi + 2*(X-Y)
7.-ENTRADA/SALIDA DE INFORMACIN (E/S)
La mayora de los programas requiere de un cierto grado de interaccin con los
usuarios. Si un algoritmo no interacta con el usuario (no permite que ingrese o
vea datos), su utilidad es muy poca.
Operaciones de E/S > Nos permiten ingresar o leer datos.
o Datos de Entrada: Dispositivos de entrada. Teclado, unidades de disco, etc.
o Datos de Salida: Dispositivos de Salida. Pantalla, impresora, etc.
Hay dos tipos de sentencias, una nos permite la entrada de datos y la otra es la
salida de datos. Estas son:
o Sentencia Leer ( ) Entrada de Datos > Dentro del ( ) se coloca el nombre de
las variables que almacenaran los datos de entrada. Tambin se la conoce
como "Asignacin Externa" ya que modifica el valor de las variables
involucradas.
.


15
o Sentencia Escribir ( ) Salida de Datos > Dentro de ( ) se escriben los datos de
salida, pueden ser
*Cadenas de Texto (T)
*Nombres de Variables (V)
*Nombres de Constantes (C)
Cada elemento de salida debe estar separado por comas
Ej. ("T", V, C)
8.-ESTRUCTURA
La Estructura del algoritmo es la siguiente:
Accin (nombre de la accin) es
- Ambiente
(Declaracin de variables)
(Declaracin de constantes)
- Algoritmo
(Sentencias del programa)
Fin Accin
Dentro del algoritmo hay dos secciones, estas son:
9.-AMBIENTE
.


16
Seccin declarativa. Se declaran todas las estructuras de datos que utilizaremos
en el algoritmo.
9.-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
o 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.
o 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.
.


17
*Mltiples (SEGN) > Permite ejecutar una sentencia segn el valor de una
variable.
o Repetitivas > Repiten una secuencia un Nmero de veces (Bucles) y al hecho
de repetir la ejecucin de una secuencia de acciones (Iteracin).
Estas son:
*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.
10-TIPOS :

Mtodo Descripcin Ejemplos
Algortmico Utiliza un algoritmo y puede ser Instrucciones para manejar
.


18
implementado en una computadora un vehculo
Instrucciones para secar
grano a granel
Instrucciones para resolver
ecuacin de segundo grado
Heurstica: Se apoya en el resultado obtenido en
un anlisis de alternativas de
experiencias anteriores similares. De
las mismas, a se deducen una serie
de reglas empricas o heursticas que
de ser seguidas, conducen a
la seleccin de la mejor alternativa en
todas o la mayora de las veces.



Ejemplos
Los algoritmos se
pueden
Formulas

Diagramas de flujo
.


19
expresar por: Norte-Sur,Top-Down




Pseudo cdigo inicio
leer a,b,c
calcular
escribir permetro
fin
Quick Basic es un lenguaje de programacin estructurado y el algoritmo se
representara en seudo cdigo y/o diagrama de flujo.
10.1. Anlisis del problema:
Requiere la clara definicin del problema donde se indique que va hacer el
programa y cual ve a ser el resultado.
Debe detallarse las especificaciones de entrada y salida,
Los requisitos que definen el anlisis son :
Para ver el grfico seleccione la opcin "Descargar"
.


20
La ecuacin de segundo grado se define algebraicamente como :

La solucin general viene dada por la expresin algebraica : (Algoritmo)


perifrico
1 Anlisis del problema
2 Def. del problema Hallar races ecua. 2do grdo
3 Especif. de entrada coeficientes a, b, c Teclado
4 Especif. de salida X1, X2 Pantalla
Impresora

Entrada: por teclado

coef Descripcin Codificacin en QBasic
A team. cuadrtico INPUT "Coef a =";A
.


21
B term. Lineal INPUT "Coef b =";B
C term. independiente INPUT "Coef c =";C





Calculo Expresin algebraica Codificacin en QBasic
X1=((-B+SQR(B^2-4*A*C))
X2=((-B-SQR(B^2-4*A*C))





Proceso:

.


22
Salida: Visualizacin de :Datos de entrada: A,B,C
Datos procesados: Raices: X1, X2
Variable Significado Codificacin en QBasic
A,B,C Coef PRINT"A=";A; "B=";"C=";C
X1 primera raz PRINT"X1=";x1
X2 primera raz PRINT"X2=";X2

10.2.Diseo del algoritmo.
Anlisis de proceso implica que hace el programa.
Diseo implica como se hace o realiza la tarea (problema) solicitado
En el diseo:
El todo es la sumatoria de las partes.
Divide el todo en varias partes.
En la resolucin de un problema complejo, se divide en varios sub problemas y
seguidamente se vuelven a dividir los sub problemas en otros mas sencillos, hasta
que puedan implementarse en el computador.
Esta caracterstica define lo que se entiende como diseo descendente( Top-
Down / Norte-Sur ) o diseo modular.
.


23
El proceso de ruptura del problema en cada etapa se llama refinamiento sucesivo.
Cada problema se resuelve mediante un modulo (subprograma) y tiene un solo
punto de entrada y un solo punto de salida.
Un programa bien diseado consta de un programa principal (modulo de nivel mas
alto) que llama a subprogramas (mdulos de nivel mas bajo), que a su vez pueden
llamar otros sub programas.
Los programas que se estructuran de esta forma, se dicen que tienen diseo
modular y el mtodo de romper el programa en modos pequeos se
llama programacin modular.
Los mdulos pueden ser planificados, codificados, compilados y depurados
independientemente pueden ser intercambiados entre si.
Este proceso implica la ejecucin de los siguientes pasos:
1 programar un modulo
2 comprobar un modulo
3 depurar el modulo
4 combinar el modulo con mdulos anteriores
.


24
este proceso convierte el resultado del anlisis del problema en un diseo modular
con refinamientos sucesivos que permiten una traduccin a un lenguaje que se
denomina diseo del algoritmo.
El algoritmo se puede representar por medio de dos formas :
Pseudo cdigo
Diagrama de flujo:
Pseudo cdigo: es el lenguaje de especificacin de algoritmos y tiene
una estructura: Las instrucciones se escriben en ingles o en palabras similares al
ingles o espaol que facilitan la escritura de programacin
Para la resolucin de una ecuacin de segundo grado se escribira
inicio
Introducir coeficientes a, b y c
Imprimir ttulos primera raz, segunda raz, no tiene solucin,
Calcular raz 1 y raz 2
Imprimir raz 1 y raz 2
Fin
Diagramas de flujo (flows charts): Es la representacin grafica del algoritmo;
segn la ANSI consta de una simbologia , que tiene los siguientes significados:
Para ver el grfico seleccione la opcin "Descargar" del men superior
.


25
Smbolos del Diagrama de flujo
Codificacin :
Programacin:
Windows/Dos/
Quick Basic = Editor de texto.
Programa: definicin:
conjunto de datos y sentencias:
Un programa tiene la forma
Para ver el grfico seleccione la opcin "Descargar"
En el editor de Quick Basic se escribira codificado el seudo cdigo
que tendra la forma:
REM Programa para calcular las soluciones
REM de una ecuacion de segundo grado
PRINT "Escriba los valores de A, B y C"
C$="Calculos"
INPUT " A,B,C", A, B, C
R = (B ^ 2 - 4 * A * C) ^ .5
LET X1 = (-B + R) / (2 * A)
LET X2 = (-B + R) / (2 * A)
.


26
PRINT
PRINT " A="; A, " B="; B, "C="; C
PRINT "X1="; X1, "X2="; X2
PRINT
END
En el Men
Ejecutar
En la pantalla veramos:
11.-MANDATOS E INSTRUCCIONES:
Mandato (command): es una orden aislada de efecto inmediato.
Ejemplo:
Mandato Descripcin
RUN Ordena la ejecucin de un programa.
LIST Escribe En la pantalla el listado del programa
SAVE. Guarda, graba el programa como un archivo de extensin BAS en el
disco


.


27


Instruccin: es una orden contenida en un programa.
Ejemplo:
Instruccin Descripcin
PRINT Escribe en pantalla.
INPUT Introduce (entra datos)
Edicin de un programa: un programa esta formado por lneas secuenciales que
se ejecutan en forma descendente (Up Down)
Para dar por terminada una lnea se pulsa la tecla Enter (Return) en cualquier
parte de la misma. Para cambiar una lnea basta volver a teclearla.
Se puede corregir una lnea (borrar, rescribir ) en pantalla o bien con el mandato
EDIT.
Se pueden incluir varias instrucciones en una misma lnea, separndolos por dos
puntos.
Una lnea de pantalla (cuarenta u ochenta posiciones) es diferente de una lnea de
programa (doscientos cincuenta y seis posiciones).
Modo Directo:
.


28
Modo Programa
Run
Ventana activa
Ventana inmediata
mandato Descripcin
CLS borra la pantalla
Recomendaciones:
Todo programa debe estar documentado con comentarios; la primera lnea debe
contener el titulo del programa. Los comentarios deben de ir precedidos de la
palabra clave REM o de un apostrofo ( )
Si una lnea ya tiene otras instrucciones, el comentario debe ir al final de la lnea.
Los comentarios solo aparecen en el listado del programa y no aparecen escritos
en la pantalla durante la ejecucin.
Constantes:
QBasic, trabaja con dos tipos de datos:
Datos Tipos
numricos: Enteros (INT)
.


29
Enteros largos (LNG)
de simple precisin (SGL)
de doble precisin (DBL)
alfanumricos hileras o cadenas (STR)
fila de caracteres en ASCII ( en parte del teclado )
Las constantes alfanumricas pueden ser enteras o fraccionarias, se representan
en forma decimal; se puede emitir el cero a la izquierda del punto decimal.
Ejemplo
3452 -12.67 .23 +12345
Estos son ejemplos de valores numricos de punto fijo; se puede emplear una
notacin de punto flotante.
Mantisa letra exponente
1,23456E+15
123456.0000000000
1.234567890789456D10 0.000000000123456789012456
El numero mximo de cifras significativas con que se trabaja es:
6 para la precisin simple (SNG)
.


30
16 para la precisin doble (DLB)
En las constantes de punto fijo hay que aadir el carcter #
Las constantes alfanumricas son hileras de caracteres; se escriben entre
comillas, Ej. "Hola " ; " A47EC
12.-VARIABLES VECTORES Y MATRICES:
Una variable es una zona de memoria que almacena un dato
X R
A
M

DIA $
Peso
-23.5
lunes
80

Una variable se identifica mediante un nombre. El nombre de una variable
numrica debe empezar por una letra y puede ir sucedido de otras letras y / o
otros dgitos (X, A, B1, peso, T341)

.


31
Una variable alfanumrica debe terminar con el carcter $ (x$, a23$, dias$,)
Estn terminantemente prohibidas los nombres de variables que contengan
palabras claves de Basic (PRUN, LIST, NIF$,)
Las variables de precisin doble y enteros se identifican aadiendo el carcter # o
el carcter % , tambin se pueden declarar como


En el trabajo se estableci que los logaritmos sons una variable fundamental
ya que este genera beneficios, afecta a la marca y a la percepcin misma del
producto, siendo este el resultado de una estrategia. Las empresas tienden a
comercializar amplias gamas de productos, por ello, es normal encontrar que
un mismo producto tenga diferente precio en funcin del pblico objetivo al
que se dirige, del lugar donde se compra o de diferentes situaciones que hacen
variar el precio.
Los comentarios que se incluyan deben ser significativos
Documentacin interna:
Va incluida dentro del cdigo del programa fuente, por medio de comentarios que
ayudan a la comprensin del cdigo.
Todas las sentencias comienzan con la sentencia REM o su equivalente el
carcter apostrofe ( ).
.


32
El programa en si no los necesita y los ignora. Hace que los programas sean
comprensibles.
Leer
ms: http://www.monografias.com/trabajos15/algoritmos/algoritmos.shtml#ix
zz3Fu1pjaeK

You might also like