Sunteți pe pagina 1din 27

REPÚBLICA BOLIVARIANA DE VENEZUELA

MINISTERIO DEL PODER POPULAR PARA LA DEFENSA


UNIVERSIDAD NACIONAL EXPERIMENTAL
DE LA FUERZA ARMADA NACIONAL
U.N.E.F.A.
NÚCLEO – VARGAS
INGENIERÍA MECÁNICA
Sección 2 / Nocturno

Materia: Programación

Unidad 2, Unidad 3, Unidad 4


Tabla de contenido
Unidad 2: ....................................................................................................................................................................5
Algoritmos ..............................................................................................................................................................5
Algoritmo Expresado En Pseudocódigo ..............................................................................................................6
Diagrama De Flujo ..............................................................................................................................................8
Simbología De Los Diagramas De Flujo ..............................................................................................................9
Tipos De Diagramas De Flujo ........................................................................................................................... 11
Flujograma de segundo nivel o detallado ....................................................................................................... 11
Flujograma de ejecución o matriz ................................................................................................................... 12
Reglas Para Estructurar Un Diagrama De Flujo ............................................................................................... 13
El diagrama N-S................................................................................................................................................ 13
Definición de Programa. .................................................................................................................................. 14
Estructuras De Datos ........................................................................................................................................... 14
Tipos De Datos Abstractos............................................................................................................................... 15
Unidad 3: ................................................................................................................................................................. 18
Técnicas De Programación .................................................................................................................................. 18
Unidad 4: ................................................................................................................................................................. 21
Estructura de Datos ............................................................................................................................................. 21
Fases para la creación de un programa ............................................................................................................... 21
Definición del Problema .................................................................................................................................. 21
Análisis del Problema ...................................................................................................................................... 21
Diseño del Algoritmo ....................................................................................................................................... 22
Codificación ..................................................................................................................................................... 22
Prueba y Depuración ....................................................................................................................................... 22
Documentación ............................................................................................................................................... 22
Mantenimiento ................................................................................................................................................ 22
Estructura de un programa ................................................................................................................................. 22
Cabecera .......................................................................................................................................................... 23
Sección o zona de declaraciones ..................................................................................................................... 23
Declaración de utilización de unidades ........................................................................................................... 23
Declaración de etiquetas ................................................................................................................................. 23
Declaración de constantes .............................................................................................................................. 24
Declaración de tipos de dato ........................................................................................................................... 24
Declaración de variables.................................................................................................................................. 24
Declaración de funciones y procedimientos ................................................................................................... 24
Cuerpo principal del programa........................................................................................................................ 24
Comentarios .................................................................................................................................................... 25
Metacomandos o directivas del compilador ................................................................................................... 25
Programas............................................................................................................................................................ 25
Procedimiento ..................................................................................................................................................... 26
Referencias Bibliográficas ..................................................................................................................................... 27
Unidad 2:
Algoritmos
¿Qué es un algoritmo?
Es la secuencia de pasos (método) que nos permite resolver un problema determinado.

Además, debe cumplir estas condiciones:


 Finitud: el algoritmo debe acabar tras un número finito de pasos. Es más, es casi
fundamental que sea en un número razonable de pasos.
 Definibilidad: el algoritmo debe definirse de forma precisa para cada paso, esdecir, hay
que evitar toda ambigüedad al definir cada paso. Puesto que el lenguaje humano es
impreciso, los algoritmos se expresan mediante unlenguaje formal, ya sea matemático o de
programación para un computador.
 Entrada: el algoritmo tendrá cero o más entradas, es decir, cantidades dadasantes de
empezar el algoritmo. Estas cantidades pertenecen además a conjuntos especificados de
objetos. Por ejemplo, pueden ser cadenas decaracteres, enteros, naturales, fraccionarios,
etc. Se trata siempre decantidades representativas del mundo real expresadas de tal forma
que sean aptas para su interpretación por el computador.
 Salida: el algoritmo tiene una o más salidas, en relación con las entradas.
 Efectividad: se entiende por esto que una persona sea capaz de realizar elalgoritmo de
modo exacto y sin ayuda de una máquina en un lapso de tiempofinito.

A menudo los algoritmos requieren una organización bastante compleja de los datos, y es por
tanto necesario un estudio previo de las estructuras de datosfundamentales. Dichas estructuras
pueden implementarse de diferentes maneras,yesmás, existen algoritmos para implementar dichas
estructuras. El uso de estructuras de datos adecuadas puede hacer trivial el diseño de un algoritmo, o
un algoritmo muy complejo puede usar estructuras de datos muy simples.

Clasificación de algoritmos
1. Algoritmo determinista: en cada paso del algoritmo se determina de forma única el siguiente
paso.
2. Algoritmo no determinista: deben decidir en cada paso de la ejecución entrevarias
alternativas y agotarlas todas antes de encontrar la solución.
Todo algoritmo tiene una serie de características, entre otras que requiere unaserie de recursos,
algo que es fundamental considerar a la hora de implementarlosen una máquina. Estos recursos son
p r in c i p a l m e n t e :
1. El tiempo: período transcurrido entre el inicio y la finalización del algoritmo.
2. La memoria: la cantidad (la medida varía según la máquina) que necesita el algoritmo para su
ejecución.

Representación de un algoritmo
Los algoritmos pueden ser expresados de muchas maneras, incluyendo al lenguaje natural,
pseudocódigo, diagramas de flujo y lenguajes de programación entre otros. Las descripciones en
lenguaje natural tienden a ser ambiguas y extensas. El usar pseudocódigo y diagramas de flujo evita
muchas ambigüedades del lenguaje natural. Dichas expresiones son formas más estructuradas para
representar algoritmos; no obstante, se mantienen independientes de un lenguaje de programación
específico.
La descripción de un algoritmo usualmente se hace en tres niveles:

5
1. Descripción de alto nivel. Se establece el problema, se selecciona un modelo matemático
y se explica el algoritmo de manera verbal, posiblemente con ilustraciones y omitiendo
detalles.
2. Descripción formal. Se usa pseudocódigo para describir la secuencia de pasos que
encuentran la solución.
3. Implementación. Se muestra el algoritmo expresado en un lenguaje de programación
específico o algún objeto capaz de llevar a cabo instrucciones.
También es posible incluir un teorema que demuestre que el algoritmo es correcto, un
análisis de complejidad o ambos.

Los algoritmos pueden ser creados de dos formas:


1. Seudocódigo: Es un conjunto pequeño y claro de instrucciones; en secuencia, que permite
llevar a cabo una tarea.
2. 2)Diagrama de flujo: Es la representación de la secuencia, a través de símbolos, de la tarea
que se va a realizar.
3.
Un ejemplo de algoritmo es el que realizamos para cambiar una llanta a un automóvil:
Inicio
Aflojar tornillos de las llantas
levantar el coche con el gato
Sacar los tornillos de las llantas
Quitar la llanta
Poner la llanta de repuesto
Poner los tornillos
Bajar el gato
Apretar los tornillos
fin

Algoritmo Expresado En Pseudocódigo


Definición: Mucho se habla del pseudocódigo en las carreras de Analista de Sistemas y
Programación. Pero no existe mucha bibliografía al respecto.
Comencemos aclarando que no es una forma de programación. Se trata de una herramienta que
los analistas de sistemas utilizan para comunicar a los programadores la estructura del programa que
van a realizar, de forma de tener una idea bien clara de lo que se necesita programar.
Digamos que el pseudo código es una forma de diagramar un algoritmo para resolver un determinado
problema, sin atenerse a ningún lenguaje de programación en especial.
Un algoritmo es un conjunto de procedimientos que permiten resolver un problema.
En vez de escribir el programa directamente en un lenguaje de programación determinado (C,
Basic, etc.), crearemos un borrador entendible para todos, para luego de tener bien en claro lo que
se debe hacer, pasar a la programación propiamente dicha.

El pseudo código se refiere a crear un código para orientar a los programadores, pero sin la

6
sintaxis ni la estructura propia de ningún lenguaje.

Utilización en la práctica
En el trabajo de un analista de sistemas, una de las partes más trabajosas es la de determinar que
es lo que necesitan de un sistema los usuarios finales. Se dedican muchas horas a hacer un
relevamiento de los datos que serán necesarios, los tipos de procesamientos, las salidas, etc. Y debe
existir una realimentación entre el diseño y el usuario, para garantizar que el sistema cumpla con los
requisitos del usuario.

Supongamos que tenemos un sistema para una empresa que utiliza una interfaz gráfica en Visual
Basic, algunas aplicaciones específicas en C, y páginas PHP para trabajo vía Internet. Seguramente
que crear un diagrama específico para cada lenguaje sería una tarea tediosa.
Gracias a esta herramienta, podemos reunir a todos los programadores, dar las pautas de trabajo, y
mediante el pseudo código, cada programador sabrá lo que hace el sistema, y podrá escribir el código
correspondiente.
Incluso dos programadores que dominen el mismo lenguaje pueden tener metodologías de trabajo
distintas. Un problema puede ser resuelto de muchas maneras, cada una más o menos eficiente que
la otra, pero todas cumplen con el objetivo.

El pseudo código elimina estas diferencias, dando libertad a los programadores para que puedan
ajustarse a su metodología de trabajo.
Generalmente, este código se escribe con la participación de todos los programadores. Esto
representa la ventaja de que muchas opiniones ayudan a elegir la mejor entre todas, logrando una
solución efectiva y eficaz al problema planteado.

7
Ejemplo

Diagrama De Flujo
Es un gráfico lógico del plan de trabajo que se ejecutara para la solución de un determinado
problema. A través de él, se planifica la solución del problema independiente
del lenguaje de computación a usar.
Las capacidades humanas necesarias para elaborar un diagrama de flujo correcto son: Lógico,
Prácticas, y Atención.
El empleo de la maquina en las funciones del procediendo de datos han hecho necesario un flujo
ordenado de la información. La secuencia en que deberán ejecutarse las operaciones tendrá que
definirse claramente, y cuando se combine con los datos a los que debe aplicarse, esa secuencia
creara el flujo de información.
No puede hacerse mucho hincapié en documentación, ósea el registro de Información .Sin
Instrucciones escritas y sin representación gráfica del flujo de trabajo sería muy difícil de llevar una
tarea de procediendo de datos en forma apropiada. Hay varios métodos más eficientes organizados
y normalizados, es el de los diagramas de Flujo que el Futuro programador comprenda la necesidad
de los diagrama de flujo.

 Características de los flujogramas


 De uso, permite facilitar su empleo.
 De destino, permite la correcta identificación de actividades.
 De comprensión e interpretación, permite simplificar su comprensión.

8
 De interacción, permite el acercamiento y coordinación.
 De simbología, disminuye la complejidad y accesibilidad.
 De diagramación, se elabora con rapidez y no requiere de recursos sofisticados.

Simbología De Los Diagramas De Flujo


Las diversas organizaciones usan distintos símbolos, pero el comité
sobre computadoras y procesadores de información de la Asociación Norteamericana de Normas ha
hecho un gran esfuerzo para normalizar los símbolos de los diagramas de flujo.
Esa normalización permite comprender cualquier diagrama de flujo que use los símbolos
recomendados.

Cada símbolo normal de diagrama de flujo tiene un significado especial.

Expresa Inicio o Fin de un Programa.

Expresa operación algebraica o de Asignación.

Expresa condiciones y asociaciones alternativas de una decisión lógica.

Expresa condición y acciones alternativas de una decisión numérica.

Entrada / Salida: Representa cualquier tipo de Fuente de entrada y salida

Entrada: Lectura de datos por tarjeta perforadas.

9
Conector dentro de página.

Representa resultado mediante un reporte impreso

Conector fuera de página.

Expresa operación cíclica repetitiva.

Expresa proceso de llamada a una subalterna.

Representa datos grabados en una cinta magnética.

Almacenamiento en línea Disco Magnético.

10
Tipos De Diagramas De Flujo

Hay varios tipos distintos de flujogramas que pueden usarse. Flujograma de primer nivel o
de dirección descendente.
Un flujograma de primer nivel muestra los pasos principales de un proceso y puede incluir
también los resultados intermedios de cada paso (el producto o servicio que se produce) y los
subpasos correspondientes. Este tipo de flujograma se usa por lo general para obtener un panorama
básico del proceso e identificar los cambios que se producen en el proceso. Es sumamente útil para
identificar los miembros correctos para el equipo (aquellas personas que participan en el proceso) y
para elaborar indicadores para observar y seguir el proceso por su concentración en los resultados
intermedios.

La mayoría de los procesos pueden graficarse en 4 ó 5 recuadros que representan los principales
pasos o actividades del proceso. En realidad, es buena idea usar solamente 4 ó 5 recuadros, porque
no obliga a tener en cuenta los pasos más importantes. Los demás pasos son normalmente subpasos
de los más importantes.

Flujograma de segundo nivel o detallado


Un flujograma detallado indica los pasos o actividades de un proceso e incluye, por ejemplo,
puntos de decisión, períodos de espera, tareas que se tienen que volver a hacer con frecuencia
(repetición de tareas o tareas duplicadas) y ciclos de retroalimentación. Este tipo de diagrama de
flujo es útil para examinar áreas del proceso en forma detallada y para buscar problemas o aspectos
ineficientes.

11
Flujograma de ejecución o matriz
Un flujograma de ejecución representa en forma gráfica el proceso en términos de quién se ocupa
de realizar los pasos. Tiene forma de matriz e ilustra los diversos participantes y el flujo de pasos
entre esos participantes. Es muy útil para identificar quién proporciona los insumos o servicios a
quién, así como aquellas áreas en las que algunas personas pueden estar ocupándose de las mismas
tareas.

12
Reglas Para Estructurar Un Diagrama De Flujo
El sentido de un diagrama de flujo generalmente es de arriba hacia abajo.
Es un símbolo solo puede entrar una flecha de flujo si varias líneas se dirigen al mismo símbolo,
se deben unir en una sola flecha.

Las líneas de flujo no deben cruzarse, para evitar los cruces se utilizan los conectores.
De un símbolo excepto el de decisión, solo puede salir una línea de flujo.
Los símbolos Terminal, Conector dentro de página y conector fuera de página solo pueden estar
conectados al diagrama por una sola flecha, ya que por su naturaleza es imposible que tenga una
entrada y una de salida.
Los émbolos de decisión tendrán siempre una sola flecha de entrada y dos o tres flechas de salida
según la cantidad de alternativas que se presentan.
Un diagrama de flujo debe estar complemente cerrado, teniendo una continuidad de principio a
fin, no pueden quedar flechas en el aire ni símbolos sin conexión al diagrama pues el flujo seria
interrumpido.

El diagrama N-S
El diagrama N-S o también conocido como diagrama de Chapin es una técnica de especificación de
algoritmos que combina la descripción textual, propia del pseudocódigo, con la representación
gráfica del diagrama de flujo.
El diagrama N-S cuenta con un conjunto limitado de símbolos para representar los pasos del
algoritmo, por ello se apoya en expresiones del lenguaje natural; sin embargo, dado que el lenguaje
natural es muy extenso y se presta para la ambigüedad, solo se utiliza un conjunto de palabras, a las
que se denomina palabras reservadas.

13
Definición de Programa.
Un programa informático o programa de computadora es una secuencia de instrucciones, escritas
para realizar una tarea específica en una computadora. Este dispositivo requiere programas para
funcionar, por lo general, ejecutando las instrucciones del programa en un procesador central. El
programa tiene un formato ejecutable que la computadora puede utilizar directamente para ejecutar
las instrucciones. El mismo programa en su formato de código fuente legible para humanos, del cual
se derivan los programas ejecutables (por ejemplo, compilados), le permite a un programador
estudiar y desarrollar sus algoritmos. Una colección de programas de computadora y datos
relacionados se conoce como software.

Generalmente, el código fuente lo escriben profesionales conocidos como programadores de


computadora. Este código se escribe en un lenguaje de programación que sigue uno de los siguientes
dos paradigmas: imperativo o declarativo, y que posteriormente puede ser convertido en un archivo
ejecutable (usualmente llamado un programa ejecutable o un binario) por un compilador y más tarde
ejecutado por una unidad central de procesamiento. Por otra parte, los programas de computadora
se pueden ejecutar con la ayuda de un intérprete, o pueden ser empotrados directamente en
hardware.

Estructuras De Datos

La Estructura de Datos: Es una colección de datos que pueden ser caracterizados por su organización
y las operaciones que se definen de ella. Lo que se pretende con las estructuras de datos es facilitar
un esquema lógico para manipular los datos en función del problema que haya que tratar y el
algoritmo para resolverlo. En algunos casos la dificultad para resolver un problema radica en escoger
la estructura de datos adecuada. Y, en general, la elección del algoritmo y de las estructuras de datos
que manipulará estará muy relacionada.
Según su comportamiento durante la ejecución del programa distinguimos estructuras de datos:
 Estáticas: su tamaño en memoria es fijo. Ejemplo: arrays, conjuntos, cadenas.
 Dinámicas: su tamaño en memoria es variable. Ejemplo: listas (Pilas, colas),listas enlazadas con
punteros, árboles, grafos, etc.
A su vez este tipo de estructura se subdivide en
 Lineales.- son aquellas estructuras donde los datos se almacenan en zonas contiguas (sucesivas o
adyacentes), una detrás de otras. Ejemplo: Listas enlazadas, Pilas, Colas.

14
 No lineales.- Aquí cada elemento puede tener diferentes “siguientes” elementos, se introduce el
concepto de bifurcación, ya no hay linealidad. Ejemplo: Árboles, grafos.
Las estructuras de datos que trataremos aquí son los arrays, las pilas y las colas, los árboles, los grafos
y algunas variantes de estas estructuras.

Tipos De Datos Abstractos

Abstracción
La abstracción es la separación de las propiedades esenciales de aquellas que no lo son. Para resolver
un problema real usualmente identificamos las características más relevantes del problema y a partir
de ellas construimos una abstracción -un modelo- del problema, que sea manejable y nos permita
obtener una solución.
En el contexto del diseño de programas también podemos utilizar la abstracción. Esto significa
especificar la funcionalidad del programa en términos de “alto nivel”. Una vez que se demuestra
que esta especificación es correcta se pueden añadir más detalles en pasos o niveles sucesivos hasta
el punto en que se obtiene una descripción detallada de “bajo nivel“ del programa. Dicha descripción
se puede implementar directamente empleando algún lenguaje de programación. El diseñador solo
ve los detalles relevantes a un nivel particular del diseño.
Conforme avanza el proceso de diseño va surgiendo la necesidad de distintos tipos de datos así como
de las operaciones que deben ser ejecutadas sobre ellos. Para tal fin, se emplea un tipo especial de
abstracción conocido como abstracción de datos.

Ventajas de la abstracción en el diseño de programas:


 Limita la complejidad en cada paso del diseño de un programa
 Permite que el diseñador se concentre en los aspectos esenciales del diseño sin preocuparse de
los detalles de la implementación.

a. Abstracción de datos y tipo abstracto de datos.


La abstracción de datos es una descripción de los datos requeridos por laaplicación y
de las operaciones que deben ejecutarse sobre ellos, sin tomar encuenta los detalles de
representación de los datos ni de la implementación de las operaciones.
Por ejemplo, si un programa requiere el empleo de variables enteras, elprogramador no
necesita saber cómo están almacenadas las variables enteras ni tampoco la manera en que
están implementadas las operaciones sobrevalores enteros.
Es claro entonces que en el proceso de diseño de los programas se debe emplear la
abstracción de los tipos de datos o sea los tipos abstractos de datos.
Un tipo abstracto de datos (TAD) es un modelo matemático de los objetos de datos que
constituyen un tipo de datos, así como de las operaciones que se ejecutan sobre dichos
objetos.

Ventajas de la abstracción de datos:


 Permite al diseñador concentrarse en el uso de los datos en su aplicación sin
preocuparse de los detalles de la representación en memoria de esos datos.
 Permite un diseño del programa que es independiente de cualquier representación
específica de los datos que requiere la aplicación, de talmodo que cualquiera sea
la representación escogida de los datos ésta pueda ser fácilmente modificada.

15
Ejemplos de TAD:
a. TAD conjunto: colección de elementos que son manipulados por operaciones como la
unión, intersección y la diferencia de conjuntos.
b. TAD entero: es el conjunto de los enteros o sea {-1, -2, -3,…,-¥} È {1, 2, 3, …, ¥} y las
operaciones de suma, resta , multiplicación y división sobre los números enteros.
c. TAD complejo: es la colección formada por todos los números complejos sea elementos
de la forma a + ib, donde a y b son reales, i es la constante imaginaria O-1. Las
operaciones permitidas son: la suma, resta, multiplicación, división y conjugado de
números complejos.

Notas: El TAD que incluye además a la operación producto cartesiano es diferente al TAD
conjunto arriba especificado. El TAD que incluya a la operación que calcula el resto de la división
entera es un TAD diferente al especificado en b).

b. Tipo de datos
Un tipo de datos es la implementación de un TAD. En un tipo de datos el modelo matemático
que define a algún TAD es implementado de acuerdo a la sintaxis de algún lenguaje de
programación. Esta implementación o traducción del TAD consta de las declaraciones de las
variables apropiadas y un procedimiento o función de acceso que implemente cada
operación requerida por el T AD .

Ejemplos de tipos de datos:


 Tipo de datos integer en el lenguaje de programación Pascal es unaimplementación
del TAD entero.
 Los tipos de datos int y long son dos implementaciones diferentes del TAD entero
en C++.
Los tipos de datos anteriores son ejemplos de tipos de datos predefinidos osuministrados
por el lenguaje de programación. Por lo general, el diseño de un programa necesitará de
tipos de datos diferentes a los predefinidos, a los cuales llamaremos tipos de datos definidos
por el usuario.

16
c. Encapsulamiento de datos
El programa de aplicación debe referirse a las propiedades esenciales de los datos y no a su
representación en memoria. Es decir, la comunicación entre el programa de aplicación y la
implementación de un TAD solo debe producirse a través de una interfaz, la cual está
constituida por las funciones de acceso del TAD. Este agrupamiento de los datos y de las
operaciones definidas sobre ellos formando una sola unidad y el ocultamiento de los detalles
de la implementación se llama encapsulamiento de datos.

Ventajas del encapsulamiento de datos:


 Un tipo de datos debidamente encapsulado puede ser modificado sinafectar las
aplicaciones que lo utilicen.
 Un tipo de datos correctamente encapsulado permite su reutilización enotras
aplicaciones que la requieran sin necesidad de conocer los detalles de
implementación del tipo de datos.

17
Unidad 3:

Técnicas De Programación

La técnica de programación es el medio a través del cual se escoge de qué forma se creará la
secuencia de ordenes lógicas que desarrollará un determinado programa que se creará. Es la forma
como se desarrollará la ejecución de un determinado software y el conjunto de datos que entraran
y los resultados que se mostraran. Los tipos o técnicas de programación son bastante variados,
aunque puede que muchos de los lectores sólo conozcan una metodología para realizar programas.
En la mayoría de los casos, las técnicas se centran en programación modular, programación
estructurada y programación orientada a objetos, pero existen otros tipos de programación.

Programación modular: Consiste en dividir un programa en módulos (partes independientes) cada


una de las cuales ejecuta una única actividad o tarea y se codifica independientemente de otros
módulos. Cada uno de los módulos se analizan, codifican y ponen a punto por separado.

Algunos lineamientos para la programación modular son:


1. Mantener cada módulo de un tamaño manejable (de manera ideal incluyendo sólo una
función).
2. Prestar atención particular en las interfaces criticas (esto es, a los datos y a las variables de
control que pasan entre los módulos).
3. Minimizar el número de módulos que el usuario necesite modificar cuando haga cambios.
4. Mantener las relaciones jerárquicas establecidas en las etapas de descenso.

Ejemplo:
Se desea diseñar un algoritmo que realice las siguientes tareas:
 Impresión de cabeceras de un informe,
 Lectura de datos,
 Ejecutar cálculos,
 Imprimir líneas detalladas de información,
 Imprimir totales.
Este programa se puede descomponer en módulos, de modo que exista un módulo principal o de
control y diferentes submódulos.

Módulo principal:
 Llamada a submódulo (impresión de cabeceras)
 Llamada a submódulo (proceso de datos)
 Llamada a submódulo (impresión de totales)

Programación estructurada: Es una técnica en la cual la estructura de un programa, realiza tan


claramente como sea posible mediante el uso de tres estructuras lógicas de control:
 Estructura Secuencial: Indica que las instrucciones de un programa se ejecutan una después
de la otra, en el mismo orden en el cual aparecen en el programa. Se representa gráficamente
como una caja después de otra, ambas con una sola entrada y una única salida.

18
Las cajas A y B pueden ser definidas para ejecutar desde una simple instrucción
hasta un módulo o programa completo, siempre y cuando éstos también sean
programas apropiados.

 Estructura Selectiva: También conocida como la estructura SI-VERDADERO-FALSO, plantea la


selección entre dos alternativas con base en el resultado de la evaluación de una condición;
equivale a la instrucción IF de todos los lenguajes de programación y se representa
gráficamente de la siguiente manera:

En el diagrama de flujo anterior, C es una condición que se evalúa; A es la acción que se


ejecuta cuando la evaluación de esta condición resulta verdadera y B es la acción ejecutada
cuando el resultado de la evaluación indica falso. La estructura también tiene una sola
entrada y una sola salida; y las funciones A y B también pueden ser cualquier estructura básica
o conjunto de estructuras.

 Estructura Repetitiva (Iterativa): También llamada la estructura HACER-MIENTRAS-QUE,


corresponde a la ejecución repetida de una instrucción mientras que se cumple una
determinada condición. El diagrama de flujo para esta estructura es el siguiente:

Aquí el bloque A se ejecuta repetidamente mientras que la condición C se cumpla o sea cierta.
También tiene una sola entrada y una sola salida; igualmente A puede ser cualquier estructura
básica o conjunto de estructuras.

Programación orientada a objetos: Es una metodología de diseño de software y un paradigma de


programación que define los programas en términos de “clases de objetos”, objetos que son
entidades que combinan estado (es decir, datos) y comportamiento (esto es, procedimientos o
métodos).
La programación orientada a objetos expresa un programa como un conjunto de estos objetos, que
se comunican entre ellos para realizar tareas.

19
Elementos de la programación orientada a objetos:
 Objeto: es una unidad que contiene datos y las funciones que operan sobre esos datos.
 Atributo: contenedor de un tipo de datos asociados a un objeto (o a una clase de objetos).
 Herencia: La herencia es la propiedad que permite a los objetos construirse a partir de otros
objetos.
 Clase: Es una colección de objetos similares y un objeto es una instancia de una definición de
una clase.
 Polimorfismo: Se refiere al hecho de que una misma operación puede tener diferente
comportamiento en diferentes objetos.
 Encapsulamiento: Significa reunir a todos los elementos que pueden considerarse
pertenecientes a una misma entidad, al mismo nivel de abstracción. Esto permite aumentar
la cohesión de los componentes del sistema.

20
Unidad 4:

Estructura de Datos

IDENTIFICADOR: Un identificador es una serie de caracteres formados por letras, dígitos y el carácter
subrayado ( _ ) que no inicie con dígito, así mismo es el nombre que damos a todo lo que
manipulamos dentro de un programa (variable, constantes, funciones, etc). Por ejemplo variables,
constantes, funciones, tipos definidos por el usuario etc.

TIPOS DE DATOS: Todos los datos tienen un tipo asociado con ellos.

VARIABLES: Una variable es un identificador que puede tomar diferentes valores dependiendo del
tipo que esta se declare.

INICIALIZACIÓN DE VARIABLES: Inicializar una variable es el darle un valor después que se ha


declarado, pero antes de que se ejecuten las sentencias en las que se emplea.

CONSTANTES: Constantes son los valores que no pueden ser modificados. En C, pueden ser de
cualquier tipo de datos. Además de los ejemplificados anteriormente, Podemos crear constantes de
caracteres con barra invertida. Estos corresponden a los caracteres que son imposibles introducir
desde el teclado.

PALABRAS RESERVADAS: Son palabras que tienen un significado especial para el lenguaje y no se
pueden utilizar como identificadores.

COMENTARIOS: Los comentarios pueden aparecer en cualquier parte del programa, mientras estén
situados entre los delimitadores /* comentario */. Los comentarios son útiles para identificar los
elementos principales de un programa o para explicar la lógica subyacente de estos.

Fases para la creación de un programa

Definición del Problema


Esta fase está dada por el enunciado del problema, el cual requiere una definición clara y precisa. Es
importante que se conozca lo que se desea que realice la computadora; mientras esto no se conozca
del todo no tiene mucho caso continuar con la siguiente etapa.

Análisis del Problema


Una vez que se ha comprendido lo que se desea de la computadora, es necesario definir:

21
 Los datos de entrada.
 Cuál es la información que se desea producir (salida)
 Los métodos y fórmulas que se necesitan para procesar los datos.
 Una recomendación muy práctica es el que nos pongamos en el lugar de la computadora y
analicemos que es lo que necesitamos que nos ordenen y en que secuencia para producir
los resultados esperados.

Diseño del Algoritmo


Las características de un buen algoritmo son:
 Debe tener un punto particular de inicio.
 Debe ser definido, no debe permitir dobles interpretaciones.
 Debe ser general, es decir, soportar la mayoría de las variantes que se puedan presentar en
la definición del problema.
 Debe ser finito en tamaño y tiempo de ejecución.

Codificación
Es la operación de escribir la solución del problema (de acuerdo a la lógica del diagrama de flujo o
pseudocódigo), en una serie de instrucciones detalladas, en un código reconocible por la
computadora, la serie de instrucciones detalladas se le conoce como código fuente, el cual se escribe
en un lenguaje de programación o lenguaje de alto nivel.

Prueba y Depuración
Los errores humanos dentro de la programación de computadora son muchos y aumentan
considerablemente con la complejidad del problema. El Proceso de identificar y eliminar errores,
para dar paso a una solución sin errores se le llama depuración.
La prueba consiste en la captura de datos hasta que el programa no presente errores (los más
comunes son los sintácticos y lógicos).

Documentación
Es la guía o comunicación escrita es sus variadas formas, ya sea en enunciados, procedimientos,
dibujos o diagramas. La documentación se divide en tres partes: Documentación Interna,
Documentación Externa Y Manual del Usuario.

Mantenimiento
Se lleva acabo después de terminado el programa, cuando se detecta que es necesario hacer algún
cambio, ajuste o complementación al programa para que siga trabajando de manera correcta. Para
poder realizar este trabajo se requiere que el programa este correctamente documentado.

Estructura de un programa
Un programa desarrollado en TurboPascal consta en general de una cabecera, una sección o zona de
declaraciones y un cuerpo principal.

22
Esquema de la estructura de un programa en TurboPascal 7.0

Cabecera
La cabecera de un programa es opcional y puramente informativa. Si existe se compone de una única
sentencia que sirve para asociar un nombre o identificador al programa.

Sección o zona de declaraciones


En todo programa de TurboPascal es necesario declarar o definir previamente todo lo que se vaya a
utilizar y que no tenga un significado específico o a priori para este lenguaje de programación. En
esta sección se realizan estas definiciones o declaraciones del programa.
Exceptuando la declaración de utilización de unidades que, si existe, es única y deberá incluirse al
principio, el número y orden de las demás declaraciones no es rígido. A este respecto, la única norma
general que es necesario respetar es que cualquier elemento que se utilice en un punto determinado
del programa deberá haber sido declarado previamente.

Declaración de utilización de unidades


La sentencia de declaración de unidades especifica el nombre o identificador de las unidades que se
van a utilizar en el programa. Como se verá más adelante detenidamente, una unidad es una
colección de declaraciones de constantes, tipos de datos, variables, funciones y procedimientos que
pueden emplearse en un programa de TurboPascal. Si son varias unidades se podrán declarar en la
misma sentencia separándolas por comas.
Sintaxis: USES Unidad1, Unidad2, Unidad_n;

Si existe una sentencia de declaración de unidades en un programa deberá colocarse al principio de


la sección de declaraciones de dicho programa, es decir, antes de cualquier otra declaración. En el
siguiente ejemplo se declara el uso en el programa de dos unidades denominadas Crt y Dos:
Ej.: Uses Crt, Dos;

Declaración de etiquetas
Permiten realizar saltos incondicionales en la secuencia de instrucciones de un programa. Su
utilización va unida a la sentencia goto y, aunque es un elemento incluido en la sintaxis de Pascal
estándar, no se recomienda por la filosofía de la programación estructurada (que evita los saltos
incondicionales).

23
Sintaxis: LABEL Etiqueta1, Etiqueta2, Etiqueta_n;

Una etiqueta es un identificador o una secuencia de cuatro dígitos decimales (entre 0 y 9999). Si las
etiquetas son varias se podrán declarar en la misma sentencia separándolas por comas.
Ej.: Label 100, 200;

Declaración de constantes
Las constantes son datos que no cambian durante la ejecución del programa y que se definen durante
el tiempo de compilación.
Sintaxis: CONST Nombre_Constante = Expresion_1;
Nombre_Constante_2 = Expresión_2;

Declaración de tipos de dato


Un tipo de dato es un conjunto de valores de datos. En el lenguaje de programación TurboPascal
todo dato ha de pertenecer a algún tipo determinado. Esta especificación determinará cómo se
almacenará el dato correspondiente y qué operaciones se podrán realizar con dicho dato durante la
ejecución del programa. En TurboPascal hay tipos predefinidos que no es necesario declarar (tipos
de datos numéricos enteros, numéricos reales, lógicos o booleanos, caracteres...) y otros que no lo
están y que el programador deberá declarar.
La declaración de un tipo de dato consta del nombre o identificador del tipo de dato seguido de los
valores que pueden tomar los datos de ese tipo. Por otro lado, existe la posibilidad de que algunos
tipos puedan ser subconjuntos o subrangos de otros tipos. También es necesario declarar estos tipos
de datos.
Sintaxis: TYPE Nombre_Tipo_1 = Definicion_1;
Nombre_Tipo_2 = Definicion_2;
Nombre_Tipo_3 = Definicion_3;...

Declaración de variables
Una variable es un espacio de la memoria reservado durante la ejecución del programa a la que se le
asocia un nombre o identificador y en la que se puede almacenar un valor que puede cambiar
durante dicha ejecución. La declaración consta de la palabra VAR seguida del identificador de cada
variable y su tipo, que puede ser predefinido o estar definido previamente en la sección anterior.
Sintaxis: VAR Variable: Tipo;

Declaración de funciones y procedimientos


Las funciones y procedimientos son las rutinas, subrutinas o subprogramas de Pascal. Una rutina es
un conjunto de instrucciones que pueden ejecutarse en cualquier lugar del programa principal o,
dentro de otras subrutinas, sólo referenciando su nombre o identificador.

Cuerpo principal del programa


Es la parte final del archivo fuente, situado a continuación de la sección de declaraciones y delimitado
por la pareja de palabras BEGIN y END. Incluye la secuencia de sentencias que se van llevando a cabo
cuando se ejecuta el programa. En TurboPascal, cada sentencia se separa de la siguiente con un
carácter de punto y coma. Después del END del cuerpo principal del programa siempre hay que poner
un punto que indica al compilador que ha llegado el final del programa.

24
Comentarios
Los comentarios son sentencias que pueden incluirse en, prácticamente, cualquier parte del
programa y que son ignorados por el compilador (¡el traductor del código del programa fuente!).
Sólo sirven para dar información o explicaciones sobre el conjunto o alguna parte del programa a la
persona que lea el código fuente. Esto cobra especial importancia cuando se trata de un código más
o menos complejo o desarrollado por un equipo de programadores. Los comentarios suelen ir
delimitados entre caracteres de llaves: { y } o entre las parejas de caracteres (* y *).
Ej.: { Esto es un comentario }
(* Esto tambien es un comentario *)

Metacomandos o directivas del compilador


Los metacomandos son órdenes para el compilador insertadas en el código fuente de un programa.
Estas órdenes para el compilador también llamadas, en general, directivas del compilador, pueden
darse a su vez, a través del menú Options del entorno de TurboPascal.
Los metacomandos se insertan como los comentarios: entre llaves { } o paréntesis (* *) y comienzan
con el signo $. Hay directivas globales que afectan a toda la compilación y que se insertan antes de
las declaraciones y directivas locales que pueden aparecer en "casi" cualquier sitio y que afectan sólo
a parte de la compilación. Algunas directivas pueden llevar parámetros o argumentos. Por ejemplo,
existe una directiva de compilación que controla la generación de errores en las operaciones de
Entrada y Salida de datos (por ejemplo, en la escritura de datos en un archivo) en tiempo de
ejecución. Por defecto, su estado es activa {$I+}.

Programas
En programación modular el programa se divide en módulos (subprograma), cada uno de los cuales
resuelve una actividad o tarea y se codifican independientemente de otros módulos. Cada uno de
estos módulos se analizan, codifican y ponen a punto por separado.
Podemos decir que los términos siguientes son sinónimos:
Subprograma, Módulo, Acción Compuesta, Proceso o Subalgoritmo: Es un conjunto de acciones
(sentencias), agrupadas bajo un nombre, que resuelven una tarea o subproblema.

Cada programa contiene un módulo denominado programa principal que controla todo lo que
sucede. Este programa principal es el que transfiere el control a los otros módulos (subprogramas),
de modo que ellos pueden ejecutar sus funciones.

Cuando el módulo ejecuta su tarea devuelve el control al módulo principal o al módulo que lo llamó.
Lo más interesante del Diseño Descendente, que incluye a la Programación Modular, es que trata en
forma separada lo global de los detalles, un subprograma oculta el detalle sobre la resolución global.
Resulta más sencillo resolver al problema subdividiéndolo en subproblemas siendo así más fácil llegar
a la solución. Además, es conveniente aplicar este método ya que habitualmente se trabaja en equipo
y cada grupo del equipo, entonces, puede encargarse de resolver una parte, ensamblando luego
todas las soluciones de estos subproblemas. Otra de las ventajas es la reutilización de código, es
decir, que si una misma tarea se debe realizar en distintas partes de un programa, se escribe (se
programa) una vez y se la invoca todas las veces que sea necesario.
Entre el módulo llamante y el módulo llamado se debe transmitir información, ya sea porque el
módulo llamado necesita datos para poder trabajar o porque devuelve los resultados obtenidos.
Parámetros o Argumentos: Información que se transmite entre módulos.

25
Existen dos tipos de subprogramas:
 Procedimientos
 Funciones

Procedimiento
El procedimiento es un subprograma, que devuelve uno, varios o ningún resultado y devuelve estos
resultados a través de parámetros.
El procedimiento es creado para resolver una tarea. Para trabajar puede necesitar recibir información
del módulo llamante, esta información la recibe a través de los parámetros de entrada. El
procedimiento luego trabaja, es decir realiza la tarea para la cual fue creado. Si obtiene resultados
para devolver al módulo llamante, los devuelve a través de los parámetros de salida.

¿Cómo se invoca a un procedimiento?


El procedimiento tiene la misma forma que un programa. Para invocar (o llamar) a un procedimiento
solamente se lo nombra, indicando los parámetros entre paréntesis.

NombreProcedimiento (Lista de parámetros)

Si el subprograma no devuelve resultados al módulo que lo invocó es porque muestra los resultados
en el mismo subprograma.

26
Referencias Bibliográficas

1. Joyanes Aguilar, Luis. FUNDAMENTOS DE PROGRAMACIÓN: ALGORITMOS, ESTRUCTURAS


DE DATOS Y OBJETOS. Madrid , McGraw-Hill , 2003. Código Biblioteca UNS: 005.1 J79.

2. Jaime Sisa, Alberto. ESTRUCTURA DE DATOS Y ALGORITMOS: CON ÉNFASIS EN


PROGRAMACIÓN ORIENTADA A OBJETOS. Bogotá , Pearson ,2002. Código Biblioteca UNS:
005.1 S59

3. Hernández, Roberto; Lázaro, Juan Carlos; Dormido, Raquel; Ro. ESTRUCTURAS DE DATOS Y
ALGORITMOS. Madrid , Pearson Educación ,2001. Código Biblioteca UNS: 005.73 E92.

4. Catedraprogramacion. http://catedraprogramacion.forosactivos.net/t117-que-es-tecnica-
de-programacion

5. Wikiversidad. Técnicas de programación.


https://es.wikiversity.org/wiki/T%C3%A9cnicas_de_programaci%C3%B3n/Programaci%C3
%B3n_estructurada

6. Universidad Politécnica de Madrid. OpenCourseWare. Fundamentos de la Programación.


http://ocw.upm.es/ciencia-de-la-computacion-e-inteligencia-artificial/fundamentos-
programacion/contenidosteoricos/ocwfundamentosprogramaciontema2.pdf

27

S-ar putea să vă placă și