Programación Lineal
Enviado por shalomrain • 6 de Diciembre de 2012 • 9.225 Palabras (37 Páginas) • 335 Visitas
INTRODUCCIÓN
Supongamos que nos enfrentamos a un problema como este: Una empresa que cuenta con 150 empleados, desea establecer una estadística sobre los salarios de sus empleados, y quiere saber cual es el salario promedio, y también cuantos de sus empleados gana entre $1250.00 y $2500.00.
Si tomamos la decisión de tratar este tipo de problemas con datos simples, pronto nos percataríamos del enorme desperdicio de tiempo, almacenamiento y velocidad. Es por eso que para situaciones de este tipo la mejor solución son los datos estructurados.
Un arreglo puede definirse como un grupo o una colección finita, homogénea y ordenada de elementos. Los arreglos pueden ser de los siguientes tipos:De una dimensión.De dos dimensiones.De tres o más dimensiones.
Pascal es un lenguaje de Alto Nivel y propósito general desarrollado por el Prof. suizo Niklaus WIRTH en 1968. Turbo Pascal Lanzado en 1983 por BORLAND International. Un procedimiento es un programa que realiza una tarea específica. Este está compuesto de un grupo de sentencias a las que se asigna un nombre (identificador) y constituye una unidad de programa y es obligatorio declararlos, se deben declarar antes de que puedan ser referenciados en el cuerpo del programa, se declaran igual que los identificadores dentro del cuerpo del programa. Existen dos tipos de variables las locales y las globales las locales se encuentran dentro del procedimiento mientras que las globales deben de estar fuera del procedimiento y se ubican en el cuerpo principal. El procedimiento consta de tres partes que son cabecera, sección de declaración y sección ejecutable; la cabecera nos proporciona el nombre y la lista de los parámetros formales(los parámetros son métodos para pasar información (valores a variables) del programa principal a un procedimiento y viceversa), si existen, la sección de declaración contiene las constantes, variables e incluso otros procedimientos y la ejecutable contiene el cuerpo del procedimiento. Una función es un subprograma que recibe como argumento o parámetros datos de un tipo numérico o no numérico y devuelven un resultado. Los argumentos es lo que se conoce en pascal como parámetros.
El área de la programación es muy amplia y con muchos detalles. Los programadores necesitan ser capaces de resolver todos los problemas que se les presente a través del computador aun cuando en el lenguaje que utilizan no haya una manera directa de resolver los problemas. En el lenguaje de programación C, así como en otros lenguajes de programación, se puede aplicar una técnica que se le dio el nombre de recursividad por su funcionalidad. Esta técnica es utilizada en la programación estructurada para resolver problemas que tengan que ver con el factorial de un número, o juegos de lógica. Las asignaciones de memoria pueden ser dinámicas o estáticas y hay diferencias entre estas dos y se pueden aplicar las dos en un programa cualquiera.
ARREGLO UNIDIMENSIONALES, ARREGLO MULTIDIMENSIONALES Y MANEJO DE ARREGLOS.
ARREGLOS UNIDIMENSIONALES
Un arreglo unidimensional es un tipo de datos estructurado que está formado por una colección finita y ordenada de datos del mismo tipo. Es la estructura natural para modelar listas de elementos iguales. Los datos que se guarden en los arreglos todos deben ser del mismo tipo.
El tipo de acceso a los arreglos unidimensionales es el acceso directo, es decir, podemos acceder a cualquier elemento del arreglo sin tener que consultar a elementos anteriores o posteriores, esto mediante el uso de un índice para cada elemento del arreglo que nos da su posición relativa.
Para implementar arreglos unidimensionales se debe reservar espacio en memoria.
Los arreglos nos permiten hacer un conjunto de operaciones para manipular los datos guardados en ellos, estas operaciones son: ordenar, buscar, insertar, eliminar, modificar entre otras.
Representación en memoria
Los arreglos guardan en memoria la cantidad de espacios que se le indican en la declaración.
Ejemplo: sea el siguente arreglo unidimensional donde se va a guardar 5 datos de tipo entero (integer)
x : array[1..5] of integer
En memoria el computador guarda 5 espacios: esto quiere decir en el arreglo X en la posición 1 guarda 34, en el arreglo X en la posición 2 guarda 22, asi hasta la última posición del arreglo X posicion 5 guarda 72.
X [1]
34
X [2]
22
X [3]
39
X [4]
63
X [5]
Declaracion de los arreglos unidimensionales:
Se declara el tipo del arreglo, con la palabra reservada TYPE, luego se declara la variable de tipo arreglo, esto se hace en el bloque de declaracion de variables palabra reservada VAR.
Type
nombre_arreglo= array[x..y]of tipo_dato;
Ejemplos: salarios= array [1…x] of real;
nombre_trabajador=array[1..x] of string;
Nota: El tipo de dato del arreglo puede ser: integer,real, boolean, string etc.
Variables tipo array
Var
sueldo: salarios;
nombre:nombre_trabajador;
Una vez declarados los arreglos procedemos a cargar información en ellos, para esto usamos estructuras repetitivas la mas recomendable por su facilidad es el for, una vez cargada la información se puede hacer cualquier operación de calculo y por último mostramos la información de los arreglos usando de igual manera la estructura repetitiva for. carga de un arreglo, la letra i es el indice o subindice del arreglo e indica la posición del arreglo:
for i:=1 to num do
begin
readln(notas[i]);
end;
Mostrar la información de un arreglo, la letra i es el indice o subindice del arreglo e indica la posición del arreglo:
for i:=1 to num do
begin
writeln(notas[i]:3:1);
end;
Se han hechos programas que suman una cantidad de números usando dos variables, una para leer cada número y otra para acumular la suma. Este enfoque tiene la desventaja de que se pierden los valores de los sumandos. El uso de arreglos permite calcular la suma de los números con una cantidad mínima de código y a la vez conservar cada valor, como muestra el siguiente programa completo:
Program SumaN;
Uses
Crt;
Const
n = 5;
Var
nums: Array[1..n] Of Integer;
s, i: Integer;
Begin
For i:=1 To n Do
Begin
Write('Escriba el número: ');
ReadLn(nums[i]);
s := s + nums[i];
End;
WriteLn('La suma es: ', s);
End.
Nótese el uso de una constante para marcar el tamaño del arreglo; dicha constante,
...