Está en la página 1de 14

RESUMEN 2.

Introducción

El objetivo principal de la materia es el de enseñar a resolver problemas mediante una


computadora. Un programador de computadoras antes de nada es un resolvedor de
problemas. Por lo que para llegar a ser un programador eficaz se necesita aprender a
resolver problemas de un modo riguroso y sistemático. Por esto la materia tiene como
nombre Metodología de la programación.

Tecnicas Para La Formulacion De Algoritmos

Para representar una algoritmo se debe utilizar algún método que permita independizar
dicho algoritmo del lenguaje de programación elegido. Ello permitirá que un algoritmo
pueda ser codificado inmediatamente en cualquier lenguaje. Las herramientas utilizadas
comúnmente para diseñar algoritmos son:

• Pseudocodigo

• Diagrama de Flujo.

• Diagramas Nassi/Shneiderman-S (Chapin)

• Método Warnier

• Método Jackson

• Método Bertini

• Método Tabourier

3°METODOLOGIA

Diseño: "El proceso de preparar programas para una computadora digital tiene un atractivo
especial, no sólo porque puede ser recompensado económica y científicamente, sino
también porque puede ser una experiencia estética como la poesía y la música." Haciendo
uso de alternativas de solución como lo son diagramas de flujo y pseudocódigo se indican
los pasos que deberá seguir el algoritmo para obtener la solución del problema.

Introducción a la programación lineal

RESUMEN 2.2 MAMANI GONALES MAYRA DAYANA


RESUMEN 2.2

El objetivo de un modelo matemático es reproducir la realidad de la forma más fiel posible


a fin de entender cómo se comporta y poder obtener respuestas a determinadas acciones. La
programación lineal es un tipo de modelo matemático que se desarrolló a partir de la
Segunda Guerra Mundial para resolver cierto tipo de problemas de asignación de recursos
entre distintas actividades. Después de la guerra las aplicaciones de la programación lineal
se extendieron a una amplia variedad de problemas, de manera que hoy se utiliza en
campos como la ingeniería, la economía, la gestión, y muchas otras áreas de la ciencia, la
técnica y la industria. La programación lineal fue formulada por George B. Dantsig
alrededor de 1947, cuando trabajaba como consejero matemático para la Fuerza Aérea de
Estados Unidos en el desarrollo de un sistema automático de planificación temporal de
despliegue, entrenamiento y abastecimiento logístico. Debido a que la Fuerza Aérea
denomina programas a sus diversos planes y proyectos a implementar, en el primer artículo
publicado por Dantzig se refiere a este problema como programación en una estructura
lineal. El término programación lineal fue acuñado por el economista y matemático T.C.
Koopmans en el verano de 1948 cuando colaboraba con el propio Dantzig. En 1949,
Dantzig publicó el método del simplex para resolver programas lineales, método que fue
ampliamente aceptado por su capacidad de producir soluciones en un tiempo razonable.

Diseño estructural

La optimización de estructuras se refiere al diseño de un sistema estructural

de manera que éste resista con las demandas impuestas con el mínimo costo posible

sin sacrificar seguridad, economía y funcionalidad. En la práctica profesional hacerlo

no es una labor sencilla, debido a que las variables que se relacionan con el diseño

generan un sin número de combinaciones. Algunas de las variables en la estructura

son: la geometría, la topología, los perfiles comerciales para las barras y las

demandas del problema. Ya existen métodos de optimización eficientes que generan

diseños cercanos a óptimos, sin embargo, el usuario de dichos métodos tiene que

tratar con metodologías complejas y que necesitan de una gran cantidad de ajustes

RESUMEN 2.2 MAMANI GONALES MAYRA DAYANA


RESUMEN 2.2

para su aplicación. Lo que aquí se propone es disminuir la cantidad de ajustes sin

sacrificar capacidad de convergencia, aplicando una metodología que tiende a

automatizar el diseño de una estructura

Lenguaje

Medio de comunicación entre los seres humanos a través de signos orales y escritos que
poseen un significado. También podría decirse que es cualquier procedimiento que sirve
para comunicarse, representado mediante símbolos y caracteres específicos

Desde El Punto De Vista Informático El Lenguaje Es:

La representación por medio de signos, símbolos y caracteres que existe entre la


comunicación de la PC.

Lenguajes De Programación

Son los lenguajes utilizados para escribir programas de computadoras que puedan ser
entendidos por ellas.

Los lenguajes de programación se clasifican en tres grandes categorías:

- Máquina

- Bajo nivel (ensamblador) y

- Alto nivel

Lenguaje Máquina

Es el lenguaje propio de la computadora, basado en la lógica binaria, de ceros y unos


(00010111). Este lenguaje resulta difícil de utilizar para las personas; ya que el
programador debe introducir todos y cada uno de los comandos y datos en forma binaria, y
una operación sencilla como comparar el contenido de un registro con los datos situados en

RESUMEN 2.2 MAMANI GONALES MAYRA DAYANA


RESUMEN 2.2

una ubicación del chip de memoria puede tener el siguiente formato: 11001010 00010111
11110101 00101011.

La programación en lenguaje máquina es una tarea tan tediosa y consume tanto tiempo que
muy raras veces lo que se ahorra en la ejecución del programa justifica los días o semanas
que se han necesitado para escribir el mismo.

Lenguaje De Bajo Nivel

(Ensamblador)

Como vimos anteriormente la programación en lenguaje máquina es difícil por ello se


necesitan lenguajes que faciliten este proceso. Por este motivo han sido diseñados los
lenguajes de bajo nivel.

Estos lenguajes dan a cada instrucción un mnemónico, como por ejemplo STORE, ADD o
JUMP. Los lenguajes de bajo nivel permiten crear programas muy rápidos, pero que son a
menudo difíciles de aprender. Esta abstracción da como resultado un lenguaje de muy bajo
nivel que es específico de cada microprocesador:

El Lenguaje Ensamblador

.Al asignar un código mnemotécnico (por lo general de tres letras) a cada comando en
lenguaje máquina, es posible escribir y depurar o eliminar los errores lógicos y de datos en
los programas escritos en lenguaje ensamblador, empleando para ello sólo una fracción del
tiempo necesario para programar en lenguaje máquina.

En el lenguaje ensamblador, cada comando mnemotécnico y sus operadores simbólicos


equivalen a una instrucción de máquina. Un programa ensamblador traduce el código
fuente, (una lista de códigos de operación mnemotécnicos y de operadores simbólicos), a
código objeto (es decir, a lenguaje máquina) y, a continuación ejecuta el programa, todo
esto gracias a un intérprete o a un compilador, los cuáles veremos más adelante

RESUMEN 2.2 MAMANI GONALES MAYRA DAYANA


RESUMEN 2.2

Sin embargo, el lenguaje ensamblador puede utilizarse con un solo tipo de chip de CPU o
microprocesador, por lo que los programas escritos en un bajo nivel son prácticamente
específicos para cada procesador.

Si se quiere ejecutar el programa en otra máquina con otra tecnología, será necesario
rescribir el programa desde el principio.

Así que los programadores necesitaban un método abreviado en el que un enunciado


simbólico pudiera representar una secuencia de numerosas instrucciones en lenguaje
máquina, y un método que permitiera que el mismo programa pudiera ejecutarse en varios
tipos de máquinas. Estas necesidades llevaron al desarrollo de lenguajes de alto nivel.

Lenguaje De Alto Nivel

Los llamados lenguajes de alto nivel son los que se emplean con mayor frecuencia como
lenguajes de programación, porque permiten expresar los algoritmos de una manera y con
un estilo fácilmente reconocible por parte de diversos programadores y usuarios; debido a
que están formados por elementos de lenguajes naturales, como el inglés utilizando
términos del tipo LIST, PRINT u OPEN como comandos.

En Basic, el lenguaje de alto nivel más conocido, los comandos se introducen desde el
teclado, desde un programa residente en la memoria o desde un dispositivo de
almacenamiento, y son interceptados por un programa que los traduce a instrucciones en
lenguaje máquina.

Asimismo, presentan una ventaja fundamental: la facilidad de poder ser transportados de


una máquina a otra sin necesidad de realizar grandes cambios en ellos, por lo que se dice
que son independientes de la máquina empleada.

A este grupo pertenecen los lenguajes más conocidos, tales como el APL, FORTRAN,
PASCAL, COBOL, LISP, PROLOG, C, ADA, PL/I.

Sin embargo, tanto los lenguajes de alto nivel como los de bajo nivel, no son entendibles
directamente por la máquina, sino que necesitan ser traducidos a instrucciones en lenguaje

RESUMEN 2.2 MAMANI GONALES MAYRA DAYANA


RESUMEN 2.2

máquina que entiendan las computadoras por lo que es necesario disponer de una interfase
con el lenguaje máquina para que el programa sea ejecutable. Al respecto existen dos tipos
fundamentales de interfase, que son:

a) Compiladores

b) Intérpretes

Un compilador es:

Un traductor que facilita la comunicación entre el programador y la máquina, por medio de


un proceso de transformación llamado compilación.

De esta manera traduce un programa íntegro a lenguaje máquina antes de su ejecución, por
lo cual se ejecutan con tanta rapidez como si hubiesen sido escritos directamente en
lenguaje máquina.

El compilador es el más eficaz para la mayor parte de las máquinas, puesto que presenta la
ventaja de de que cada una de las sentencias del programa es interpretada y traducida al
lenguaje máquina solo una vez.

Un compilador crea una lista de instrucciones de código máquina, el código objeto,


basándose en un código fuente.

El código objeto resultante es un programa rápido y listo para funcionar, pero que puede
hacer que falle el ordenador si no está bien diseñado.

Un intérprete es:

Es un programa que se traduce línea por línea bajo la misma plataforma.

Es Un traductor pero más lento que los compiladores ya que no producen un código objeto,
sino que recorren el código fuente una línea cada vez. Cada línea se traduce a código

RESUMEN 2.2 MAMANI GONALES MAYRA DAYANA


RESUMEN 2.2

máquina y se ejecuta. Cuando la línea se lee por segunda vez, como en el caso de los
programas en que se reutilizan partes del código, debe compilarse de nuevo. Aunque este
proceso es más lento, es menos susceptible de provocar fallos en la computadora

1.2 Definición De Algoritmo

ALGORITMO

Un algoritmo es una serie de pasos lógicos para realizar una acción, programa o tarea ya
que es el primer paso para realizar un programa.

Y tiene ciertas características que son:

 Preciso

Esto quiere decir que debe indicar el orden en cada paso.

 Definido

Es decir, si se sigue dos veces, obtiene el mismo resultado cada vez.

 Finito

Que tiene fin, o sea un número definido de pasos.

Ejemplos de algoritmos son:

 Instrucciones para montar una bicicleta

 Hacer una receta de cocina

 Obtener el máximo común divisor de dos números, etc.

Los algoritmos se pueden expresar por fórmulas, diagramas de flujo, y pseudocódigos. Ésta
última representación es la más utilizada en lenguajes estructurados como Turbo Pascal.

RESUMEN 2.2 MAMANI GONALES MAYRA DAYANA


RESUMEN 2.2

1.3 Algoritmo Cotidiano

Un algoritmo cotidiano es:

La serie de pasos que realizamos en nuestra vida diaria para realizar las diferentes tareas y
actividades comunes, desde los pasos al levantarnos, así como ir de compras, etc.

Definición De Lenguaje Algorítmico

Para definir el lenguaje algorítmico:

Cabe recordar que el conjunto de todas las operaciones a realizar, y el orden en el que
deben efectuarse, se le denomina algoritmo.

Así que el lenguaje algorítmico es aquel por medio del cual se realiza un análisis previo del
problema a resolver y encontrar un método que permita resolverlo.

aplicaciones individuales. Los lenguajes de programación actuales son los conocidos como
Lenguajes visuales, como por ejemplo Visual Fox, Visual Basic, Visual C.

Definición De Problemas

Con el fin de resolver un problema utilizando un sistema de cómputo, debe seguirse una
serie de pasos que permiten avanzar por etapas bien definidas hacia la solución y ejecución
de la misma

Esta serie de fases o pasos deben seguirlas todos los programadores.

Estas etapas son las siguientes

Definición del problema

RESUMEN 2.2 MAMANI GONALES MAYRA DAYANA


RESUMEN 2.2

La primera fase en la resolución de un problema por computadora es la definición o análisis


del problema. En donde lo más importante es que conozcamos exactamente lo que debe
hacer el programa y "que se desea obtener al final del proceso”

Para poder definir con precisión el problema se requiere que las especificaciones de entrada
y salida sean descritas con detalle ya que esto es un requisito para lograr una solución
eficaz; por lo que es conveniente hacerse las siguientes preguntas:

1.- ¿Qué entradas se requieren? (Tipo Y Cantidad)

2.- ¿Cuál es la salida deseada? (Tipo Y Cantidad)

3.- ¿Qué método produce la salida desea

Análisis De Los Datos

Una vez que el problema ha sido definido y comprendido, deben analizarse los siguientes
aspectos:

1.- Los resultados esperados.

2.- Los datos disponibles.

3.- Herramientas a nuestro alcance para manipular los datos y alcanzar un resultado.

Esta sería un diagrama de la resolución de un problema en su más mínima expresión.

Y mientras esto no se comprenda no puede pasarse a la siguiente etapa.

Diseño De La Solución

Para realizar el diseño de la solución:

Como todos sabemos, una computadora no tiene capacidad para solucionar problemas más
que cuando se le proporcionan los sucesivos pasos a realizar, esto se refiere a la obtención
de un algoritmo que resuelva adecuadamente el problema.

RESUMEN 2.2 MAMANI GONALES MAYRA DAYANA


RESUMEN 2.2

En caso de que obtengamos varios algoritmos, seleccionaremos uno de ellos utilizando


criterios ya conocidos.

Esta etapa incluye:

La descripción del algoritmo resultante en un lenguaje natural, en un diagrama de flujo o


natural de programación.

De esta manera, solo se establece la metodología para alcanzar la solución en forma


conceptual, es decir; sin alcanzar la implementación en el sistema de cómputo.

Así tenemos que la información proporcionada constituye su entrada y la información


producida por el algoritmo constituye su salida.

Los problemas complejos se pueden resolver más eficazmente por la computadora cuando
se dividen en subproblemas que sean más fáciles de solucionar.

Codificación

Codificación es la escritura en un lenguaje de programación de la representación del


algoritmo desarrollada en etapas precedentes. Esto se refiere a la obtención de un programa
definitivo que pueda ser comprensible para la máquina.

Cabe destacar que si la codificación original se realizó en papel, previo a la compilación


deberá existir un paso conocido como trascripción.

Y posteriormente, una vez que el algoritmo se ha convertido en un programa fuente. Este


programa fuente debe ser traducido a lenguaje máquina, este proceso se realiza con el
compilador, y se obtiene el programa objeto, (siempre y cuando el programa fuente sea
correcto) que posteriormente se vuelve un programa ejecutable.

Estos pasos a continuación se describen de una forma esquematizada:

Prueba y Depuración

RESUMEN 2.2 MAMANI GONALES MAYRA DAYANA


RESUMEN 2.2

La Prueba se realiza tras la compilación.

Si tras la compilación se presentan errores (errores de compilación) en el programa fuente,


es preciso volver a editar el programa, corregir los errores y compilar de nuevo, este
proceso se repite hasta que no se producen errores.

De esta manera se obtiene el programa objeto, que todavía no es ejecutable directamente,


pero si no contiene errores se debe instruir al sistema para que realice la fase de montaje o
enlace del programa objeto con las librerías del programa del compilador; este proceso de
montaje produce un programa ejecutable.

La Depuración es el proceso de encontrar los errores del programa y corregir o eliminar


dichos errores.

Cuando se ejecuta un programa, se pueden producir tres tipos de errores:

1.- Errores de compilación. Se producen normalmente por un uso incorrecto de las reglas
del lenguaje de programación y suelen ser errores de sintaxis, por lo tanto la computadora
no puede comprender la instrucción, y obviamente no se obtendrá el programa objeto, y el
compilador imprimirá una lista de todos los errores encontrados durante la compilación.

2.- Errores de ejecución. Estos errores se producen por instrucciones que las
computadoras pueden comprender, pero no ejecutar. Ejemplos de éstos son: una división
por cero, y raíces cuadradas de números negativos; por lo que en este caso se detiene la
ejecución del programa y se imprime un mensaje de error.

3.- Errores lógicos. Se producen en la lógica del programa y la fuente del error suele ser el
diseño del algoritmo. Estos errores son los más difíciles de detectar, ya que el programa
puede funcionar y no producir errores de compilación ni ejecución, y solo puede detectarse
cuando se advierte un error por la obtención de resultados incorrectos.

En este caso se debe volver a la fase del diseño del algoritmo, modificarlo, cambiar el
programa fuente, compilar y ejecutar una vez más.

RESUMEN 2.2 MAMANI GONALES MAYRA DAYANA


RESUMEN 2.2

Documentación

La documentación de un problema consta de las descripciones de los pasos a dar en el


proceso de resolución de un problema. La importancia de la documentación es por su
decisiva influencia en el producto final.

Programas pobremente documentados son difíciles de leer, más difíciles de depurar y casi
imposibles de mantener y modificar. Por ello la importancia de la documentación, sin la
documentación es imposible corregir errores futuros o bien cambiar el programa

Mantenimiento

El mantenimiento se define como la modificación del programa por medio de


actualizaciones, que mejoran al programa, corrigiendo errores o bien actualizándolos para
un mejor funcionamiento.

Por ello la documentación es sin duda muy importante para poder llevar a cabo el
mantenimiento.

Instituto Tecnológico Superior De Coatzacoalcos Diseño Estructural de algoritmos I

Unidad I

COMPILACIÓN

Código

Fuente

Programa

Ejecutable

Código objeto

Codificación

RESUMEN 2.2 MAMANI GONALES MAYRA DAYANA


RESUMEN 2.2

Diseño de la solución

Análisis de los datos

Definición del problema

Prueba y depuración

Mantenimiento

Definición de un problema

Diseño

Del

Algoritmo

Resolución del problema con la computadora

Resolución de un problema

ALGORITMO RESULTANTE EN LENGUAJE NATURAL

ALGORITMO QUE RESUELVA EL PROBLEMA

TRANSCRIPCION

Si la codificación se escribió en papel

Se realiza la:

Algoritmo realizado en etapas anteriores

Para realizar la conversión del algoritmo en programa, se deben sustituir las palabras
reservadas en español por sus homónimos en inglés, (hablando de un lenguaje de alto nivel)
y las operaciones, instrucciones indicadas en lenguaje natural.

RESUMEN 2.2 MAMANI GONALES MAYRA DAYANA


RESUMEN 2.2

CODIFICACIÓN

COMPILACIÓN

PROGRAMA FUENTE

PROGRAMA OBJETO

PROGRAMA EJECUTABLE

INTERNA

Esta documentación son los comentarios o mensajes que facilitan el entendimiento del
proceso.

EXTERNA

Incluye análisis, diagramas de flujo, y/o pseudocódigos, manuales de usuario, con


instrucciones para ejecutar el programa y para interpretar los resultados.

La documentación de un programa puede ser de dos tipos

RESUMEN 2.2 MAMANI GONALES MAYRA DAYANA

También podría gustarte