You are on page 1of 69

LÓGICA COMPUTACIONAL

Y PROGRAMACIÓN

C u a d ernillo d e p ro cedim ien to s pa ra el a pren d iza je

(V er sió n par a fase in icial)

C ON L A C O LA B ORA CIÓ N DE L uis G abriel M ondragón To rre s

1
LÓGICA COMPUTACIONAL Y PROGRAMACIÓN
Cuadernillo de procedimientos para el aprendizaje
1999. Secretaría de Educación Pública/ Dirección General del Bachillerato
COSTO DE RECUPERACIÓN $ 12.00

2
ÍNDICE

Presentación............................................................................................................................................................ 5

UNIDAD I. Lógica computacional................................................................................................................. 8


1. Conceptos generales........................................................................................................................................... 12
2. Programación lineal........................................................................................................................................... 14
3. Programación estructurada.............................................................................................................................. 16
4. Programación orientada a objetos.................................................................................................................. 18
¿Qué he aprendido?................................................................................................................................................ 20
Quiero saber más..................................................................................................................................................... 23

UNIDAD II. Estructura de datos.................................................................................................................... 24


1. Datos...................................................................................................................................................................... 26
2. Conjuntos.............................................................................................................................................................. 27
3. Registros................................................................................................................................................................ 28
4. Arreglos................................................................................................................................................................. 29
¿Qué he aprendido?................................................................................................................................................. 32
Quiero saber más..................................................................................................................................................... 33

UNIDAD III. Programación estructurada básica..................................................................................... 34


1. Declaración de las estructuras de datos......................................................................................................... 36
2. Operaciones básicas............................................................................................................................................ 38
3. Archivos................................................................................................................................................................. 40
4. Operaciones con archivos.................................................................................................................................. 43
¿Qué he aprendido?................................................................................................................................................ 45
Quiero saber más..................................................................................................................................................... 47

UNIDAD IV. Programación estructurada intermedia............................................................................. 48


1. Procedimientos y funciones............................................................................................................................... 50
2. Impresión de reportes........................................................................................................................................ 55
3. Lenguajes de programación estructurada..................................................................................................... 57
¿Qué he aprendido?................................................................................................................................................. 59
Quiero saber más..................................................................................................................................................... 60

UNIDAD V. Programación orientada a objetos......................................................................................... 61


1. Especificaciones para el pseudocódigo........................................................................................................... 63
2. Proceso para el desarrollo de soluciones....................................................................................................... 64
3. Lenguajes de programación orientada a objetos......................................................................................... 67
¿Qué he aprendido?................................................................................................................................................. 68
Quiero saber más..................................................................................................................................................... 69

3
4
PRESENTACIÓN

En el marco del Bachillerato General, la Capacitación en Informática tiene como


LÓGICA COMPUTACIONAL
finalidad brindarte un acercamiento al campo laboral, a través de desarrollar
procesos de trabajo tales como uso de aplicaciones de tipo general o específico,
diseño de sistemas y bases de datos, así como el manejo de redes y la lógica
computacional para plantear soluciones a problemas relacionados con la informática.

Al egresar de esta capacitación podrás operar como el enlace entre usuarios de


Y PROGRAMACIÓN

sistemas de información y computadoras personales o conectadas en red, utilizando


programas de aplicación general o específica. De igual modo, podrás implementar
sistemas elementales de información utilizando técnicas de análisis y diseño de
sistemas, bases de datos relacionales y herramientas de programación.

La Informática ha avanzado a pasos gigantescos en la última década, de tal forma


que los grandes equipos de cómputo que consumían enormes cantidades de energía,
ahora se han convertido en computadoras portátiles con baterías recargables de
larga duración. A la par de esta evolución del hardware ha evolucionado también
el software, definiéndose aplicaciones con interfaces cada vez más amigables con el
usuario. Esta evolución se ha dado al tratar de acercarnos cada vez más a los procesos
que se realizan en nuestra vida cotidiana para resolver problemas de cualquier
índole.

La asignatura de Lógica Computacional y Programación es vital para entender


que la elaboración del software requiere que el programador tenga un pensamiento
lógico, razonado y sistemático, para plasmar dichos procesos de uso cotidiano en
sentencias entendibles por la computadora y, por ende, la utilización de ésta como
un medio electrónico para realizar tareas. Conforme vayas avanzando en el estudio
de esta asignatura, te darás cuenta que no es fácil desarrollar soluciones prácticas
en el primer intento, ya que para lograrlo necesitarás aplicar las metodologías
para la solución de problemas presentadas en este curso, encontrando así, cada vez
que resuelvas un problema, mayor facilidad para planear buenas soluciones.

Esta asignatura no sólo te ayudará a resolver problemas de informática, también


te dará elementos para resolver problemas escolares o de tu vida cotidiana,
permitiéndote lograr una mejor organización en tus actividades diarias. La
asignatura de Lógica Computacional y Programación pretende brindarte los
elementos teóricos-prácticos de la metodología estructurada, para desarrollar
formas de pensamiento lógicas que requiere esta disciplina, por lo cual se considera
una de las asignaturas básicas de la Capacitación.

En esta asignatura revisaremos temas relacionados con metodologías para resolver


problemas simples y complejos, de tal forma que desarrolles habilidades que te
permitan planear soluciones alternativas a las propuestas en las prácticas. La
informática nace como una solución para resolver problemas que requieran realizar
muchas operaciones, de tal forma que se definen ciertos lenguajes de programación
para escribir instrucciones que la computadora entienda, es decir, un lenguaje
máquina. En un principio los lenguajes de programación llamados de «bajo nivel»
se acercaban mucho al lenguaje máquina, tal es el caso del lenguaje ensamblador;
posteriormente fueron evolucionando dichos lenguajes a un lenguaje más coloquial,

5
por lo cual se requirió de un traductor a lenguaje máquina, dichos lenguajes se conocen como lenguajes
de programación de «alto nivel».

A partir de esta evolución es como surgen las diferentes metodologías de programación, empezando
por la programación lineal, la cual resuelve problemas simples de una forma secuencial. Con el paso
del tiempo se ha visto que esta metodología no siempre permite generar programas grandes o complejos
de una forma organizada, ya que el programador puede perder la secuencia lógica del programa al
revisar los códigos generados para resolver dichos problemas. Es así como surge la propuesta de una
nueva metodología orientada a resolver problemas grandes de una forma estructurada, al segmentar
un problema en problemas más simples, programando soluciones específicas para cada segmento o
módulo. Es así como la programación estructurada permitió por primera vez realizar grandes
programas de cómputo organizados y estructurados, fáciles de leer y corregir, esta metodología sigue
vigente hasta nuestros días.

Al empezar a implementarse aplicaciones de tipo gráfico diseñadas en un lenguaje de programación


lineal o estructurado, se ve la necesidad inminente de evolucionar nuestras metodologías de
programación a un lenguaje de programación que permita generar objetos gráficos, los cuales realicen
tareas específicas al operarlos de formas diferentes, pero sin perder de vista la modularidad de los
procesos. Es así como surge la programación orientada a objetos, la cual se fundamenta en una
metodología de programación estructurada.

Actualmente, la tendencia es a una metodología de programación orientada a eventos, ya que en ésta


únicamente definimos los procesos para los objetos ya definidos por el lenguaje de programación y no
en sí al objeto, facilitando enormemente la tarea de diseñar objetos.

Las unidades están constituidas por las siguientes secciones:

¿Qué voy aprender? En este apartado encontraremos los propósitos y los objetivos de cada una de
las unidades didácticas. Es muy importante que tengas en mente lo que vas a lograr con el estudio de
los temas del programa, tener claridad de la meta es fundamental para poder utilizar las herramientas
de que disponemos para llegar a ella. Con la intención de presentarte un proceso de trabajo, en la
primera unidad se describe el planteamiento de una situación laboral “real”, la cual llamaremos situación
de aprendizaje. Durante el desarrollo de toda la guía se harán referencias al Manual de Ejercicios y
Prácticas, en donde se presentará la solución parcial de dicha situación; la parte faltante te corresponderá
desarrollarla. También debes desarrollar las prácticas, ya que ellas te darán los elementos de modelaje
en la solución de la situación de aprendizaje.

¿Cómo aprendo? En esta sección encontrarás las actividades de aprendizaje, mismas que te irán
llevando paso a paso a través de estrategias de solución, pero siéntete con la libertad de probar otros
caminos después de que hayas dominado el que se te propone. Para que puedas realizar las actividades,
es conveniente que entiendas la manera particular en la que se estructura el Cuadernillo de
procedimientos para el aprendizaje con respecto a un tema determinado. Te presentamos en todos
los temas una tabla con tres columnas: en la primera de ellas, titulada actividades de aprendizaje se
incluye una secuencia de acciones que debes realizar para acercarte con mayor facilidad al estudio de
la Lógica Computacional y Programación, haciéndose referencias al manual de ejercicios y prácticas
para reforzar los contenidos revisados y resolver la situación de aprendizaje; en la segunda recursos, se
proporcionan algunas sugerencias para que encuentres fácilmente la información que requieres;
finalmente, en la tercera columna, llamada productos, se anotan los resultados concretos que debes
obtener al terminar la secuencia de actividades correspondiente a cada tema, tales productos deben
servirte como un control de tu propio avance. Te servirán también para ir formando un glosario con
los términos más usuales y sus definiciones; es decir, un diccionario personal que te ayudará, en caso
de dudas, al utilizar alguna de las herramientas que estás estudiando.

6
¿Qué he aprendido? Al concluir el estudio de cada unidad, te convendrá detenerte a pensar acerca de
tus logros y descubrir qué tan firme y precisa se está llevando a cabo tu formación en esta asignatura.
Se te plantea una serie de preguntas que te ayudarán a valorar tu esfuerzo. No es un examen sino una
evaluación, se trata de que ejerzas tu capacidad de reflexión acerca de ti mismo y que, en caso de ser
necesario, revises aquellos puntos del programa de estudio que consideres que todavía no dominas
por completo. Será el momento de revisar también tus actitudes con respecto a la manera en que
estudias. Te sugerimos que elabores una tabla de logros para que lleves tu registro personal,
seguramente al ir anotándolos, te darás cuenta con satisfacción que el esfuerzo ha valido la pena.

Quiero saber más. En esta sección se te presentan artículos interesantes relacionados con la unidad
para que puedas extender tu horizonte de conocimiento. Es muy conveniente que asumas que no todo
lo que necesitas saber se te proporcionará en un curso, por el contrario, deberás estar siempre alerta,
a enfrentar nuevos retos para que tu aprendizaje sea realmente el que necesitas para resolver tus
propios problemas.

Ubicación de la asignatura

La asignatura de Lógica Computacional y Programación, se ubica en el eje básico de la Capacitación


en Informática. La importancia de esta asignatura es que contribuye en tu formación dentro de la
capacitación y te brinda elementos necesarios para la implantación de sistemas de información de una
organización. Su ubicación gráfica se representa del siguiente modo:

Sistemas de Sistemas de
Información I Información II
EJE
BÁSICO
Lógica
Computacional y
Programación

Bases de Datos I Bases de Datos II

EJE DE
APLICACIÓN Aplicaciones gráficas Aplicaciones
con programas específicas con
integrados programas integrados

EJE Introducción a las


COMPLEMENTARIO Redes

Relacióndirecta

Relación indirect

Objetivo de la asignatura

Comprender los conceptos y principios generales de la programación estructurada y la orientada a


objetos, a partir de revisar los elementos de la lógica computacional, la estructuración de los datos y
las características técnicas de ambos tipos de programación, para el desarrollo de programas
elementales.

7
¿QUÉ VOY A APRENDER?

UNIDAD I
LÓGICA COMPUTACIONAL

Objetivo de la Unidad:

Construir algoritmos elementales, utilizando los principios de la


programación lineal, la programación estructurada y la programación
orientada a objetos, para propiciar en el estudiante la habilidad de
proponer soluciones sistemáticas a problemas sencillos.

En esta primera unidad aprenderás a desarrollar habilidades para realizar modelos lógicos,
mismos que te ayudarán a resolver diferentes tipos de problemas y procesar información de
una manera sistemática y razonada, y algoritmos elementales a través del uso de diferentes
metodologías para el desarrollo de soluciones relacionadas con el campo de la informática.

Para ello, deberás primero aprender el uso de los algoritmos como un proceso descriptivo de la
solución de un problema y la representación gráfica de los datos de entrada y salida de un
proceso, para proponer soluciones factibles de realizar.

Conforme ha pasado el tiempo y dada las experiencias de los diferentes programadores, las
formas de programación han variado de tal forma que las metodologías han sufrido una
evolución constante, por lo que en esta unidad explicaremos tres de estas metodologías según
fueron apareciendo.

Al revisar las diferentes metodologías (lineal, estructurada y orientada a objetos) para resolver
problemas, te darás cuenta que cada una de ellas utiliza diferentes representaciones gráficas,
éstas te permitirán visualizar de una forma más clara el proceso necesario para elaborar dichas
metodologías.

Para desarrollar un programa primeramente debes identificar cual es su finalidad y que procesos
intervienen en su solución, posteriormente tendrás que definir las acciones que realiza cada
proceso y por último, podrás codificar todos los procesos en un lenguaje de programación, el
cual al ser traducido al lenguaje máquina (conjunto de sentencias o instrucciones específicas
entendibles por la computadora) nos permitirá lograr nuestro objetivo, que podría ser la
sistematización del proceso de entrada y salida de un estacionamiento, la administración de un
hotel, el registro de mensajería, etc.

En el desarrollo de la situación y las actividades de aprendizaje que se te proponen y aquellas


que realices por cuenta propia, podrás identificar las diferentes técnicas que existen para resolver
cualquier tipo de problema, ya sea simple o complejo.

8
Los temas que forman el contenido de esta unidad se presentan a continuación:

Unidad I. Lógica computacional

Lógica computacional

utiliza

representado
por el Diagrama de entrada
Algoritmo
proceso salida

utiliza técnicas
de

Programación Programación Programación


lineal estructurada orientada a objetos

utiliza el tiene
utiliza la tiene
utiliza al

Técnica de Objetos
Diagrama de flujo Estructuras lógicas Pseudocódigo Clases Métodos Pseudocódigo
segmentación

Debes notar que los conceptos más importantes están sombreados. Préstales especial
atención puesto que forman parte del conjunto de conceptos fundamentales en tus estudios
de informática.

9
A continuación te presentamos la situación de aprendizaje, la cual te presenta un proceso real
de trabajo, muy similar a los que puedes encontrar en el campo laboral.

SITUACIÓN DE APRENDIZAJE

Una empresa distribuidora al mayoreo de aparatos eléctricos para el hogar, en su área de


ventas, registra y controla su información de manera manual. En un sentido de modernizar
sus procesos, solicita el apoyo técnico para que se adquiera y programe una computadora que
se utilizará como parte del proceso de registro y control de ventas.

El personal encargado de proporcionar el apoyo técnico, realiza una investigación detallada de


las operaciones y movimientos manuales que se realizan para llevar a cabo el trabajo cotidiano.
Como resultado de la investigación, se obtiene una descripción de los procesos que se resumen
en los siguientes puntos:

1. La Sra. Mercedes Suárez es quien recibe las solicitudes de compra. El origen de la solicitud
puede ser de cualquiera de las siguientes tres formas:

• Vía telefónica: El cliente, mediante el uso del teléfono solicita los artículos y las
cantidades que requiere.
• Por correo: La empresa recibe constantemente los pedidos por escrito, mismos
que llegan por el servicio del correo.
• Personal: Los clientes acuden personalmente y realizan su pedido de manera
verbal.

2. La Sra. Mercedes S. al recibir la solicitud de compra, la registra en la Libreta de Pedidos,


anotando los datos del cliente, los artículos que solicita, así como el número secuencial que
identifica de manera unívoca al pedido (Clave del pedido). Sin embargo, antes de registrar
la solicitud, verifica la seriedad de la misma de la siguiente forma:

• Si el cliente es conocido y se encuentra registrado en la Libreta de Clientes, se procede a


asentar el pedido correspondiente. Si el pedido se recibió por vía telefónica o por correo y,
si el caso lo amerita, se ratifica el pedido telefónicamente, como una manera de checar los
datos y descartar la posibilidad de error o de un falso pedido.

• Si el cliente es nuevo, es decir, no está registrado en la Libreta de Clientes, procede a darlo de


alta en la libreta, anotando los siguientes datos: Nombre de la empresa, razón social, giro,
teléfonos, fax, nombre de la persona de enlace, domicilio, fecha de registro en la libreta, así
como la clave de cliente que lo identificará en la empresa y que corresponde a un número
secuencial precedido por la letra “C” (C1234). Posteriormente se registra la solicitud y
como en el caso anterior, se verifica por teléfono la seriedad del pedido.
3. La Sra. Mercedes S. dispone de varias Libretas y Tarjetas para registrar la información,
mismas que se describen a continuación:
• Libreta de clientes: Es una relación consecutiva de los clientes que han adquirido productos
en la empresa, ordenada por la clave del cliente. En ésta se registran el nombre de la
empresa, sus teléfonos, domicilio, nombre de la persona con quien se realizó el contacto,
fecha del primer pedido y su número de cliente.

10
• Tarjeta de clientes: Cada uno de los clientes tiene asociada una tarjeta de registro detallada
con los datos incluidos en la Libreta de Clientes, además de los artículos que ha adquirido. Se
anota para cada uno de ellos las fechas, cantidades, precios y referencia de las facturas con
que se remitieron a los clientes. Las tarjetas están ordenadas alfabéticamente por el nombre
de la empresa para su fácil ubicación.

• Catálogo de artículos: Aquí se incluyen los artículos que dispone la empresa para su venta,
el catálogo es actualizado semestralmente en dos versiones por el área de mercadotecnia:
a) Catálogo de artículos por orden alfabético
b) Catálogo de artículos ordenados por Clave de artículo.

Cada artículo se identifica con una clave similar a las anteriores (A9999). La información
que se incluye en el catálogo es: Clave del artículo y descripción detallada del mismo, nombre,
domicilio y teléfonos del fabricante, costo unitario y de venta, descuentos y una o varias
fotografías del artículo.

4. En otro momento, la Sra. Mercedes S. y con la ayuda de una secretaria, elabora las facturas,
tomando como base la Libreta de pedidos. Las facturas se identifican mediante un número
(F99999) e incluyen la información del cliente, destino, fecha de elaboración y se detalla la
información relacionada con los artículos solicitados por el cliente: Clave del artículo,
descripción genérica, cantidad de artículos, costo unitario de venta e importe por el número
de artículos. En cada factura es posible registrar hasta cinco artículos distintos, en caso de
requerirse, se utilizarán tantas facturas como sean necesarias. En la parte inferior de cada
factura se incluyen además el subtotal por la totalidad de los artículos, I.V.A. y total a
cobrar.

5. Las facturas se llenan en original y tres copias (Cliente, Ventas, Contabilidad y Almacén).
El original y la copia del Almacén se envían a éste último para que proceda a surtir y enviar
los artículos a los clientes. La copia para el área de Contabilidad se remite a esa área y la de
Ventas se utiliza como comprobante del área emisora.

6. El paso siguiente consiste en registrar el número de factura en que se remitieron los artículos,
en la Libreta de Pedidos y las Tarjetas de Clientes, y de esta forma se cierra el ciclo de registro
de la información.

7. Finalmente, cada dos semanas se elabora un listado con los artículos solicitados y vendidos
durante este periodo, mismo que se turna a los directivos de la empresa. El listado contiene
información detallada y global como son: Clave de los artículos vendidos, su descripción
genérica, cantidades, fechas, importes, los clientes a quienes se les vendió con sus
correspondientes subtotales y totales.

El grupo técnico tendrá que desarrollar varios programas y definir los archivos que almacenarán
la información del registro y control de ventas. La interacción de los programas y archivos
sustituirán el proceso manual que se utiliza. Se agilizará el registro de la información así como
la posibilidad de considerar procesos de la información adicionales a los ya establecidos.

11
¿CÓMO APRENDO?

1. CONCEPTOS GENERALES

Objetivo:

Identificar los elementos de la programación moderna, mediante la revisión del concepto de algoritmo y
las generalidades de las metodologías actuales, para la construcción de programas.

Para empezar a estudiar el tema de Lógica Computacional es necesario conocer previamente


su utilidad, la cual es que adquieras habilidades para resolver problemas informáticos utilizando
la computadora, a través de desarrollar un pensamiento lógico, sistemático y razonado que te
permita proponer soluciones al elaborar algoritmos elementales, utilizando las diferentes
metodologías que existen para su desarrollo.

En nuestra vida cotidiana, cualquier actividad que realizamos la podemos describir con una
serie de acciones o tareas. Igualmente, siempre estamos valorando si dicha actividad va a
lograr lo que nosotros queremos, a partir de ir tomando decisiones durante el desarrollo de la
misma, sin perder de vista qué es lo que queremos lograr y qué requerimos para lograrla.

De esta misma forma podemos ver un proceso informático, el cual nace a partir de un problema
que requiera del uso de la computadora. Para resolverlo se deberá desarrollar un algoritmo,
el cual no es más que un conjunto de actividades o procesos formados por una serie de
instrucciones o tareas organizadas de forma lógica, que nos permiten alcanzar un resultado o
resolver un problema.

Muchas veces aplicamos el algorimo de manera inadvertida, inconsciente o automatica, ya que


son tantas las veces que se ha resuelto, que dificilmente nos ponemos a enumerar los pasos
para alcanzar el objetivo, y por lo tanto lo hacemos en forma automática.

Por otra parte, existe una gran cantidad de problemas que requieren de un análisis profundo y
de un pensamiento flexible y estructurado para su solución, como es el caso de la programación,
donde convergen técnicas y herramientas metodológicas que permiten llevar a cabo la
construcción de algoritmos eficientes y por consiguiente la resolución del problema.

Para poder llegar a la solución de un problema deben considerarse las siguientes etapas1:

Problema

Análisis profundo Construcción del Verificación del


del problema algoritmo algoritmo
Etapa 1 Etapa 2 Etapa 3

1
Tomado de Osvaldo Cairó. Metodología de la Programación. Tomo 1, México, Alfaomega, p. 5.

12
Las características que los algoritmos deben reunir son:
a) Precisión. Los pasos a seguir deben ser claros y correctos.
b) Determinismo. El algoritmo, dado un conjunto de datos de entrada idénticos, debe arrojar
siempre los mismos resultados.
c) Finitud. El algoritmo, independiente de la complejidad del mismo, siempre debe ser de
longitud finita.

Es importante considerar los datos de entrada para la verificación de nuestro algoritmo.

A continuación se presentan las actividades que deberás realizar; en caso de cualquier duda o
problema consulta a tu asesor.
Actividades de aprendizaje Recursos Productos

Realiza la lectura de la páginas Joyanes Aguilar, Luis. Preguntas resueltas.


sugeridas y contesta las Fundamentos de programación.
siguientes preguntas: pp. 2-6, 40-46.
1. ¿Qué es un algoritmo?
2. ¿Cuáles son las
características que poseen los
algoritmos?
3. ¿Para qué sirven los
lenguajes de programación y
cuál es su relación?

Consulta en la enciclopedia Enciclopedia Encarta. Ficha con los conceptos.


Encarta lo referente a
programación y lenguajes de
programación y elabora una
ficha.

Realiza la lectura de las paginas Joyanes Aquilar, Luis. Preguntas resueltas.


sugeridas y contesta las Fundamentos de
siguientes preguntas: Programación. pp. 95-97.
1. ¿Cuáles son los
inconvenientes de la
programación convencional o
lineal (secuencias de Joyanes Aguilar, Luis.
instruciones maquina)? Programación orientada a
2. ¿Cuál es el objetivo de la objetos.
programación estructurada España McGraw-Hill,
utilizando la programación Osborne, 1998.
modular? p.p. 4-18.
3. ¿Cuál es la ventaja de la
programación orientada a
objetos sobre la estructurada?

Realiza los ejercicios 1-4. Ejercicios 1-4 resueltos.

Manual de ejercicios y prácticas.

13
De tu entorno, consulta con una Algoritmo.
o más personas las actividades
que realizan en su trabajo y
represéntalas en un algoritmo.

2. PROGRAMACIÓN LINEAL

Objetivo:

Comprender las bases y principios de la programación lineal, mediante la revisión general de los diagramas
de flujo y su aplicación, para la solución de problemas y su descripción gráfica.

La programación lineal permite escribir algoritmos de una forma secuencial, es decir, cada
instrucción se ejecuta hasta que la anterior se haya realizado, no obstante, podemos referenciar
a una línea desde nuestra secuencia que no sea la siguiente, de tal forma que al terminar una
secuencia de instrucciones podremos referenciar a la línea que continuaba en nuestra ejecución.

Visto gráficamente su representación sería la siguiente:

Instrucción 1 Instrucción 2 Instrucción 3 Instrucción 4 ... Instrucción n

La herramienta más común para representar este tipo de algoritmo basado en una metodología
lineal es el diagrama de flujo, que no es más que la representación gráfica del algoritmo por
medio de símbolos. Si el diagrama de flujo está completo y correcto, el paso del mismo a un
lenguaje de programación es relativamente simple y directo.

En el tema anterior mencionábamos que siempre que se incorpore un dato correcto en un


proceso, el dato de resultado tendrá que ser correcto. Lo que haremos en la prueba de escritorio
será valorar si nuestro proceso contiene y toma las decisiones correctas al seguir la lógica de
sus tareas definidas.

La intención de una prueba de escritorio es identificar los posibles errores de lógica, sintaxis y
de entrada que existen en un proceso, éste puede estar descrito a través de un algoritmo,
diagrama de flujo, pseudocódigo, diagrama de Top-Down, etc. La forma de verificarlo será
introduciendo al proceso un dato de entrada, del cual conocemos su salida, de tal forma que
sigamos toda la lógica del proceso para ir identificando como se va procesando la información
y, en dado caso, ajustar nuestro proceso o validarlo. Un ejemplo simple de una prueba de
escritorio es el siguiente.

Realizar la prueba de escritorio del siguiente algoritmo:

1. Solicitar dato A.
2. Solicitar dato B.
3. Multiplicar dato A con dato B y el resultado asignarlo en C.
4. Despliega el mensaje “El resultado es:”,C

14
Se sabe que si A = 1 y B = 2, el resultado de la multiplicación será 2.
Ahora iremos introduciendo la información conforme se la vaya solicitando el algoritmo.
Paso 1: Asignar A=1
Paso 2: Asignar B=2
Paso 3: Multiplicar 1•2 y el resultado asignarlo en C, es decir, C=2
Paso 4: Escribir “El resultado es: 2”

Dado que el resultado obtenido es el esperado en la prueba de escritorio, podemos validar


dicho algoritmo, es decir, el algoritmo es correcto.

A continuación te presentamos las actividades que deberás realizar; en caso de dudas o problemas
consulta a tu asesor.

Actividades de aprendizaje Recursos Productos


Realiza una consulta bibliográfica Joyanes Aguilar, Luis. Ficha de contenido sobre
referente a las reglas de Fundamentos de programación. las reglas de construcción y
construcción y simbología básica pp. 46-56 simbología básica para el
para el desarrollo de diagramas desarrollo de diagramas de
de flujo. flujo.

A partir de la consulta anterior Importancia del uso de los


explica la importancia del uso de diagramas de flujo.
diagramas para representar
algoritmos.

Realiza los ejercicios 5-7. Manual de ejercicios y prácticas. Ejercicios 5-7 resuletos.

De los algoritmos de los Manual de ejercicios y prácticas. Pruebas de escritorio.


ejercicios 1 y 2 realiza sus
pruebas de escritorio.

Con relación a la situación de Resolución de la Práctica 1.


aprendizaje, desarrolla la Práctica
1, donde realizarás el diagrama de
flujo correspondiente.

De las actividades de Joyanes Aguilar, Luis. Op. cit., Interpretación de los


programación resueltas (2.1 a la pp. 59-64. diagramas de flujo.
2.5), interpreta los diagramas de
flujo presentados.

15
3. PROGRAMACIÓN ESTRUCTURADA

Objetivo:

Comprender las bases y principios de la programación estructurada, mediante la revisión general de la


técnica Top-Down, las estructuras lógicas y el pseudocódigo, para la solución de problemas y su
representación.

La metodología de programación estructurada se fundamenta en técnicas de segmentación, la


cual plantea que un problema se puede dividir en problemas más pequeños (módulos) y más
simples de resolver, de tal forma que la suma de las soluciones de cada problema sea el resultado
de la solución total de éste.

Problema 8 Problema 7
Solución 8 Solución 7

Problema 1 Problema 6
Solución 1 Solución 6 Solución Total = Solución1 + Solución 2 +
Solución 3 + Solución 4 + Solución 5 +
Solución 6 + Solución 7 + Solución 8
Problema 2
Solución 2 Problema 5
Solución 5
Problema 3
Problema 4
Solución 3
Solución 4

Esta metodología permite desarrollar algoritmos a través de módulos, los cuales realizan tareas
bien definidas. De esta forma, el módulo se define una sola vez y se llama tantas veces como
sea necesario, mediante el nombre que lo identifica.

La forma gráfica que lo representa sería la siguiente:

Módulo Principal

Módulo 1 Módulo 2 Módulo 3

La técnica Top-Down (Arriba-Abajo) es la que se utiliza frecuentemente en la programación


estructurada, la cual no es más que la representación gráfica de la división del problema en
subproblemas más simples, estableciendo un orden jerárquico y relaciones entre ellos, puede
ser vista de la siguiente manera:

16
Módulo Raíz

Módulo 1 Módulo 2

Módulo 1.1 Módulo 1.2 Módulo 2.1 Módulo 2.2

Módulo 2.1.1

El diagrama de Top-Down, se lee de arriba hacia abajo y de izquierda a derecha, la relación de


los módulos es jerárquica, es decir, el módulo padre puede hacer uso de los módulos hijos pero
no viceversa.

Entenderemos por módulo padre al módulo inmediato superior al módulo actual y por módulo
hijo al módulo inmediato inferior del módulo actual.

Cuando hablemos de programación estructurada vamos a hacer referencia al pseudocódigo,


que es la descripción de la solución de un problema por bloques o módulos, donde dicha
descripción de la solución se apoya en las estructuras lógicas (se revisarán a detalle en la unidad
III), las cuales son una serie de sentencias que permiten evaluar expresiones según los criterios
establecidos para la solución.

Si consideramos la figura anterior, podemos afirmar que cada módulo ejecuta una tarea específica,
la cual se describe con el pseudocódigo que a su vez utiliza a las estructuras lógicas para dar
solución al problema planteado.

La metodología estructurada se apoya en la metodología modular para conseguir elaborar


programas eficaces y es la base para la metodología orientada a objetos y la metodología
orientada a eventos.

A continuación se te presentan las actividades que deberás realizar para cubrir con este tema.

Actividades de aprendizaje Recursos Productos


Elabora un cuadro sinóptico de Joyanes Aguilar, Luis. Cuadro sinóptico con las
las características de la Fundamentos de programación. características de la
programación estructurada y pp. 95-100. programación estructurada
modular. y modular.

Realiza una consulta bibliográfica Joyanes Aguilar, Luis. Op. cit., Ficha de contenido sobre la
referente a la técnica Top-Down pp. 41-32, 99 y 100. técnica Top-Down.
o de segmentación.

17
Consulta el texto y elabora un Joyanes Aguilar, Luis. Op. cit., Cuadro gráfico-descriptivo
cuadro donde se visualicen pp. 100-121. de las estructuras lógicas.
gráficamente las estructuras
lógicas, describiendo sus
características.

Investiga la definición de Joyanes Aguilar, Luis. Op. cit., Ficha de contenido sobre el
pseudocódigo y su utilidad para pp. 58-59. pseudocódigo.
describir tareas. Elabora una ficha
de contenido.

Realiza los ejercicios 8 -10. Manual de ejercicios y prácticas. Ejercicios 8–10 resueltos.

Desarrolla la Práctica 2, donde Manual de ejercicios y prácticas. Resolución de la Práctica 2.


aplicarás los conceptos
relacionados con la metodología
de programación estructurada.

De las actividades de Joyanes Aguilar, Luis. Op. cit., Análisis de pseudocódigos,


programación resueltas (4.18 a la pp. 154-160. que valide la lógica del
4.24), verifica que el pseudocódigo y el uso de las
pseudocódigo responda a la estructuras lógicas.
solución planteada en el análisis.

4. PROGRAMACIÓN ORIENTADA A OBJETOS

Objetivo:

Comprender las bases y principios de la programación orientada a objetos, mediante la revisión de sus
conceptos básicos y el proceso de construcción de programas, para la solución de problemas y su
representación.

La programación orientada a objetos se apoya en la programación estructurada y utiliza sus


técnicas para diseñar programas, se caracteriza por definir objetos con un determinado conjunto
de atributos, como pueden ser: las clases, herencias, métodos, poliformismos, entre otros. Por
ejemplo, revisemos el siguiente objeto:

Clase: botón.
Herencia: Abrir barras para buscar programas o aplicaciones.
Método: Dar un clic sobre el botón.

La programación orientada a objetos permite lograr una mejor interface o interacción con el
usuario, ya que éste únicamente hace uso del objeto y el programa se encarga de realizar todas
las actividades asignadas.

18
A continuación se te presentan las actividades que deberás realizar para desarrollar este tema.

Actividades de aprendizaje Recursos Productos


Realiza la lectura de las paginas Joyanes Aguilar, Luis. Preguntas resueltas.
sugeridas y contesta las Programacion orientada a
siguientes preguntas: objetos.
1. ¿Qué es un objeto? España .McGraw-Hill,
2. ¿Qué es la programación Osborne, 1998.
orientada a objetos? p.p. 13, 14, 17, 23, 74, 75, 83,
3. ¿Qué es poliformismo, herencia 87, ,91-44 y184-185
y encapsulado?
4. ¿Cuál es la estructura de un
programa?
5. ¿Cómo se comunican los
objetos y qué son los métodos?
6. ¿Cuál es la importancia de la
programación orientada a
objetos?

Realiza los ejercicios 11 y 12. Ejercicios 11 y 12 resueltos.

Define los datos y procedimientos Definición de datos y


que requerirán los objetos libreta procedimientos de la
y tarjeta, planteados en la situación de aprendizaje.
situación de aprendizaje. Manual de ejercicios y prácticas.

Situación de aprendizaje.

19
¿QUÉ HE APRENDIDO?

A continuación te presentamos una pequeña evaluación de esta unidad para que valores tus
avances logrados hasta el momento.

1. Lee con atención cada uno de los siguientes conceptos y coloca dentro del paréntesis la letra
de la definición que le corresponda.

Concepto Definición

( ) Diagrama de flujo. a) Serie de instrucciones o pasos a seguir para lograr una


tarea o la resolución de un problema.

( ) Dato de entrada. b) Al término del proceso se obtendrá la información


procesada, la cual nos dará la solución del problema
planteado.

( ) Módulo. c) Representación gráfica del algoritmo, por medio de


símbolos.

( ) Dato de salida. d) Realiza tareas definidas, de tal forma que si un proceso se


requiere varias veces se hará referencia a éste varias veces.

( ) Procedimiento. e) Información necesaria para iniciar un proceso o tarea y


resolver un problema definido.

2. Lee con atención cada una de las siguientes proposiciones y coloca dentro del paréntesis una
V si es verdadera o una F si es falsa.

( ) La programación lineal dio la pausa para establecer la programación orientada a objetos.

( ) La representación gráfica de la programación estructurada es el diagrama de Top-Down.

( ) Objetos, mensajes y herencias son conceptos utilizados en la programación orientada a


objetos.

( ) El pseudocódigo es el paso anterior a la codificación de un programa estructurado.

20
3. Identifica los siguientes símbolos utilizados en los diagramas de flujo y escribe lo que
significa cada uno, según su enumeración.

4
1 2 3 5 6

7 8 9 10
11 12

14 16
15
13

1.-_______________________________ 2.- ______________________________


3.-_______________________________ 4.- ______________________________
5.-_______________________________ 6.-______________________________
7.-_______________________________ 8.-______________________________
9.-_______________________________ 10.-_____________________________
11.-______________________________ 12.-_____________________________
13.-______________________________ 14.-_____________________________
15.-______________________________ 16.-_____________________________

4. Lee cuidadosamente las siguientes preguntas y contéstalas correctamente.

a) ¿Qué es un algoritmo?
b) ¿Qué es la programación lineal?
c) ¿Qué es la programación estructurada?
d) ¿Qué es la programación orientada a objetos?

5. Lee cuidadosamente los siguientes casos y desarrolla los algoritmos, diagramas de flujo y
diagramas de Top-Down que los describan.

A) La Unidad de Registro y Control Escolar decide sistematizar la expedición de Certificados


parciales, ya que actualmente se realizan de la siguiente forma:
• El auxiliar solicita al alumno su credencial y tira de materias del último semestre; si no
debe materias procede a registrarlo para elaborar su certificado parcial, solicitándole al
estudiante que regrese en una semana.
• El auxiliar consulta el expediente del estudiante buscando datos personales y calificaciones,
para llenar el certificado parcial.
• Una vez capturado el certificado parcial el auxiliar solicita al responsable que lo firme y
éste lo registra en la libreta de certificados parciales emitidos.
• Por último, entrega el certificado parcial al estudiante.

B) El estacionamiento “El coche veloz” ofrece sus servicios de estacionamiento a todos los
particulares que deseen dejar su vehículo en un lugar seguro.

Dicho estacionamiento cuenta con tres niveles, donde en cada nivel tiene 70 cajones de
estacionamiento enumerados de la siguiente forma: P1-01, donde el P1 nos indica el piso y los

21
dos últimos números el cajón, asimismo cuenta con 20 choferes los cuales tienen una clave de
registro única (Ch01).

El dueño del estacionamiento propone que el control de entradas de los vehículos y pagos del
servicio sea de la siguiente forma:

• Se recibe al vehículo particular entregándole a cambio un boleto de estacionamiento, el cual


tiene un número de folio.
• Se le asigna a dicho vehículo un cajón que se encuentre disponible y se registra la hora de
entrada y la clave del chofer que lo recibió en una computadora.
• Posteriormente, a la hora de recoger un vehículo se le solicita el boleto al dueño y se registra
la hora de salida del vehículo correspondiente, según el folio.
• El sistema indica el piso, el número de cajón donde se encuentra el vehículo y el importe a
pagar; en caso de que el vehículo no se encuentre en las mismas condiciones que cuando
entró, se podrá ver en el sistema el nombre del chofer que lo recibió.
• En el momento de pagar el importe de estacionamiento, el sistema asignará dicho cajón
como disponible para otro vehículo.

El dueño desea contar con dos reportes semanales:


a) Ganancias obtenidas.
b) Nombre, clave, antigüedad y edad de los choferes ordenados por el numero de vehículos
estacionados.

22
QUIERO SABER MÁS

Artículos tomados de Curso IBM de programación. Introducción a la programación en 32 bits. (México, D.F.), núm. 1, pp. 2 y 5.

23
¿QUÉ VOY A APRENDER?

UNIDAD II
ESTRUCTURA DE DATOS

Objetivo de la Unidad:

Identificar las estructuras de datos, mediante el reconocimiento


de la información y la forma de estructurarla para su procesamiento.

Hasta el momento hemos revisado de forma muy genérica las metodologías de programación
lineal y estructurada para resolver diferentes tipos de problemas, sin embargo, el definir
algoritmos o pseudocódigos que planteen la descripción de la solución de un problema es sólo
el 50% del camino, el otro 50% lo constituye la información que va a ser procesada.

Entenderemos por información al conjunto de datos que hacen referencia o describen las
características o atributos de algo, por lo cual tendremos que definir perfectamente los datos
involucrados en la resolución del problema. Esto lo podemos resumir en la siguiente ecuación:

Pseudocódigo = Instrucciones + Datos

Los datos los podemos clasificar en constantes (datos que no cambian durante la ejecución del
pseudocódigo) y variables (datos que pueden ir adoptando diferentes valores durante la ejecución
del pseudocódigo).

La ventaja de generar un pseudocódigo es que podemos codificarlo en cualquier lenguaje de


programación, esto implica que utilizaremos los recursos de la computadora para resolver el
problema, siendo aquí donde tendremos que utilizar las estructuras de datos (espacio en memoria
de la PC para manipular los datos) definidas en el pseudocódigo, para resolver nuestro problema.

Los datos variables según el tipo de datos que almacene pueden ser simple o agrupado, es
decisión del programador definir el tipo de datos a utilizar, tomado como base el problema a
resolver. Ten mucho cuidado al definir un tipo de dato u otro, ya que de esto depende que la
solución planteada funcione adecuadamente, evitando fallas en el manejo de información.

Un dato es un atributo o característica de un objeto o individuo; por ejemplo, los atributos de


una persona son:

Edad
Color del cabello
Estatura
Sexo

24
Sin embargo los valores o datos varían de una persona a otra (17 años, negro, 1.70 m, masculino),
sin embargo las estructuras de datos (edad, color del cabello, estatura, sexo) siguen siendo las
mismas para todos.

Entenderemos por estructuras de datos a los espacios asignados en memoria para almacenar
datos. Las estructuras de datos pueden almacenar valores variables y constantes, los cuales
definiremos como tipos de datos: variables y constantes.

Los datos constantes son objetos que contienen valores que no cambian durante la ejecución
de un programa, son valores fijos.

Ejemplo: Los meses del año = 12 meses


Estaciones del año = 4

Los datos variables son objetos que contienen valores que pueden cambiar a medida que se
ejecuta un programa; la forma de escribirlos en el pseudocódigo es asignando un identificador
o nombre al tipo de dato variable, indicando que va a almacenar datos cuyos valores sean de
una naturaleza determinada.

Entenderemos por naturaleza de un dato al valor que se almacena en la estructura de datos, de


tal forma que podemos definir datos de tipo numérico, cuando el valor hace referencia a
cantidades; de tipo carácter, cuando el dato contiene valores que hacen referencia a un nombre
y dirección; de tipo lógico cuando el valor que se almacena puede ser verdadero o falso; de tipo
gráfico cuando el valor almacenado hace referencia a una fotografía; entre otros.

En esta unidad revisaremos los datos constantes y variables y la naturaleza de los últimos. Los
contenidos que conforman esta unidad son los siguientes:

Unidad II. Estructura de datos

Tienen
una
Datos Estructura de datos

Pueden ser
Constantes Variables

Simples Agrupados

De tipo
Como los

Numéricos Alfanuméricos Ordinales Lógicos Gráficos Conjuntos Registros Arreglos

25
¿CÓMO APRENDO?

1. DATOS

Objetivo:

Describir la estructura de datos simples con pseudocódigo, a través de identificar el tipo y naturaleza de
los datos e indicaciones técnicas, para su correcta especificación en el contexto de la solución de un
problema.

Los datos a procesar por una computadora pueden clasificarse en simples y agrupados. La
principal característica de los datos simples es que ocupan sólo una casilla de memoria, por lo
que hacen referencia a un único valor a la vez. Dentro de este tipo de datos se encuentran:
numéricos; alfanuméricos, ordinales, lógicos y gráficos.

Numéricos: Son valores enteros y reales. Por ejemplo: Total = Entero


Pi = 3.1416

Alfanuméricos: Son valores de tipo carácter o cadena de caracteres, números y caracteres


especiales. Por ejemplo: Nombre = Cadena de caracteres
Sexo = Carácter

Ordinales: Son valores que son definidos por el usuario en forma enumerada, estos pueden ser
enteros, lógicos y caracteres. Por ejemplo:
Días = (Domingo, Lunes, Martes, Miércoles, Jueves, Viernes, Sabado)
Objetos =(Silla, Mesa, Banca, Pizarrón, Gis, Puerta, ventana)

Lógicos: Son valores que sólo pueden ser verdadero o falso. Por ejemplo:
Casado : Lógico
Acreditado: Lógico

Gráficos: Son valores que contiene una imagen o dibujo asignado a este tipo de dato.
Por ejemplo: Dibujo: Gráfico
Bandera: Gráfico

Es muy importante que aprendas a definir los tipos datos que vas a utilizar en la resolución de
un problema, indicando su naturaleza si son datos variables, ya que estos son parte esencial
para la generación del pseudocódigo.

A continuación se presentan las actividades que deberás realizar; en caso de cualquier duda o
problema consulta a tu asesor.

26
Actividades de aprendizaje Recursos Productos
Realiza una consulta bibliográfica Joyanes Aguilar, Luis. Ficha de contenido sobre los
sobre tipos de datos constantes y Fundamentos de programación. tipos de datos constantes y
variables. Elabora una ficha de pp. 16-17. variables.
contenido.

Investiga acerca de la naturaleza Joyanes Aguilar, Luis. Op. cit., Fichas de contenido sobre la
de los datos simples (numéricos, pp. 13-15, 203, 204, 261-263. naturaleza de los datos
alfanuméricos, ordinales, lógicos Eduardo Alcalde y Miguel simples y agrupados.
y gráficos) y agrupados o García. Informática básica.
estructurados (conjuntos, pp. 219-221.
registros y arreglos).

Elabora un cuadro comparativo Ficha de contenido sobre Cuadro comparativo entre


entre los tipos de datos simples y datos simples y agrupados. datos simples y agrupados.
agrupados o estructurados.

Realiza el ejercicio 13. Manual de ejercicios y prácticas. Ejercicio 13 resuelto.

Realiza el ejercicio 14. Manual de ejercicios y prácticas. Ejercicio 14 resuelto.

2. CONJUNTOS

Objetivo:

Identificar la utilidad de los datos agrupados como conjuntos, mediante la revisión de sus características
y operaciones, para su aplicación en la solución de problemas.

Un conjunto es un grupo de datos que tiene como característica principal pertenecer al mismo
tipo de dato simple.

Cada objeto que está en el conjunto recibe el nombre de miembro o elemento del conjunto.

Miembro o elemento
Conjunto de números enteros: 1
53
19

Las operaciones que podemos hacer con los conjuntos son las siguientes:
Pertenencia. Ver si un elemento o conjunto está incluido en otro conjunto.
Igualdad. Dos conjuntos son iguales si tienen exactamente los mismos elementos.
Unión. Se crea un nuevo conjunto con los elementos de los dos conjuntos a unir.
Intersección. Se crea un nuevo conjunto con los elementos comunes de interceptar dos
conjuntos.

27
Diferencia. Definiendo A y B como dos conjuntos, el resultado de A - B son los elementos de
A que no estan en B, de igual forma B – A son los elementos de B que no están en A.
A continuación te presentamos las actividades que deberás realizar; en caso de dudas o problemas
consulta a tu asesor.

Actividades de aprendizaje Recursos Productos

Realiza una consulta bibliográfica Enciclopedia Encarta u otra Ficha de contenido sobre la
sobre la definición de conjuntos bibliografía a tu alcance. definición de conjuntos.

Elabora un cuadro sinóptico Enciclopedia Encarta u otra Cuadro sinóptico sobre


sobre las posibles operaciones con bibliografía a tu alcance. operaciones de conjuntos.
conjuntos y presenta algunos
ejemplos.

Realiza el ejercicio 15. Manual de ejercicios y prácticas. Ejercicio 15 resuelto.

3. REGISTROS

Objetivo:

Identificar la utilidad de los datos agrupados como registros, mediante la revisión de sus características
técnicas, para su aplicación en la solución de problemas.

Los registros son considerados una herramienta poderosa para estructurar datos y organizar
información de diferentes tipos bajo el nombre de una sola variable. En la práctica a veces se
necesitan estructuras que permitan almacenar distintos tipos de datos según su naturaleza, a
los cuales introduciremos en una nueva estructura llamada registro.

REGISTRO Es un dato estructurado, donde cada uno de sus


componentes se denomina campo.

Tipo de dato que puede ser simple o agrupado (arreglo o


CAMPO registro).

Como un registro es un dato estructurado, no puede accesarse directamente como un todo,


sino que debe especificarse qué elemento (campo) del registro interesa. Para ello existe la
siguiente sintaxis.

Variable_Registro . Nombre_del_campo

Nota. No confundas la estructura de datos (medio de almacenamiento de los datos) con los
datos estructurados o agrupados (arreglos, registros y archivos).

28
Ejemplo:
Registro_Alumno =REGISTRO
Nombre : Cadena[20]
Calle : Cadena[9]
Numero : Entero
Telefono : Cadena[9]
Edad : Entero
TERMINA REGISTRO
A continuación se te presentan las actividades que deberás realizar para cubrir con este tema.
Actividades de aprendizaje Recursos Productos
Realiza una consulta bibliográfica Ficha de contenido sobre la
acerca de la definición de registro definición de registro y sus
y sus componentes. componentes.
Joyanes Aguilar, Luis.
Fundamentos de programación.
pp. 260-265.

Realiza los ejercicios 16 y 17. Manual de ejercicios y prácticas. Ejercicios 16 y 17 resueltos.

4. ARREGLOS

Objetivo:

Identificar la utilidad de los datos agrupados como arreglos, mediante la revisión de sus características
técnicas y la posibilidad de crear estructuras más complejas, para su aplicación en la solución de problemas.

Los arreglos nos permiten organizar un número considerable de elementos relacionados y del
mismo tipo, simple o estructurado. A continuación se describen varios de los términos utilizados
en los arreglos.

ARREGLO Colección finita, homogénea y ordenada de elementos.

COMPONENTES O Hacen referencia a los elementos que forman el arreglo, es


ELEMENTOS decir, a los valores que almacenan en cada una de las casillas
del mismo.

Apunta, direcciona o selecciona un elemento o componente


ÍNDICES de un arreglo. Se requiere de n índices para n dimensiones.
Se pueden manejar arreglos de tipo unidimensional,
bidimensional, tridimensional, n-dimensional.

Observaciones:

1. El índice puede ser de tipo carácter, entero o enumerado.


2. Los datos de los componentes del arreglo pueden ser de cualquier tipo.
3. Se utiliza corchetes para indicar el tamaño de un arreglo.

29
Ejemplo: Letras = Arreglo [1..13] de caracter
Entenderemos por localidad a la dirección o ubicación de un componente dentro del registro.

Existen también arreglos multidimensionales, hasta ahora sólo hemos definido arreglos en
una sola dimensión, es decir, que requieren de un solo índice para ubicar al elemento deseado.

Si hablamos de un arreglo bidimensional implica que requiere de dos índices, la forma de


escribirlo es la siguiente:
Artículos_y_Precios = Arreglo[1..4,A..B] de cadenadecaracteres

Su representación gráfica sería la siguiente:

A Comida Telas Pastelería Discos


B 123 98 71 150
1 2 3 4

La ventaja de utilizar arreglos multidimensionales es que podemos manipular datos


direccionados por: uno, dos, tres o más índices. Anteriormente se mencionó que un arreglo
puede ser de cualquier tipo, por lo tanto, un arreglo puede estar formado por componentes de
tipo registro, esto se escribiría de la siguiente manera:
Datos_alumno = REGISTRO
Nombre : Cadena
Edad : Entero
TERMINA REGISTRO

Alumnos: Array [1..5] de Datos_alumno

Este ejemplo marca que existe un arreglo llamado Alumnos con cinco elementos de tipo registro
“Datos_alumno” con dos campos. Gráficamente se vería de la siguiente forma:

Campo Nombre Campo Edad Registro 5

Juan Pérez Pedro López Luis Durán Margarita Irra Rebeca Cruz
14 21 16 24 45

1 2 3 4 5
Componente Índice
A continuación se te presentan algunas formas de accesar la información del arreglo anterior:
Referencia al campo nombre de la localidad 2. (Pedro López)
Alumnos[2].Nombre
Referencia al campo edad de la localidad 5. (45)
Alumnos[5].Edad

30
Para desarrollar este tema, realiza las siguientes actividades.
Actividades de aprendizaje Recursos Productos

Realiza una consulta bibliográfica Joyanes Aguilar, Luis. Ficha de contenido sobre la
sobre la definición de arreglos Fundamentos de programación. definición de arreglo y sus
(tablas o arrays) y sus pp. 203-215. componentes.
componentes.

Elabora un cuadro sinóptico Joyanes Aguilar, Luis. Op. cit., Cuadro sinóptico sobre
sobre los arreglos pp. 215-2224. arreglos bidimensionales
bidimensionales y multidimensionales.
multidimensionales.

Realiza los ejercicios 18 y 19. Manual de ejercicios y prácticas. Ejercicios 18 y 19 resueltos.

Realiza la Práctica 3, que te Manual de ejercicios y prácticas. Resolución de la Práctica 3.


introducirá a la aplicación de las
estructuras de datos requeridas
para la situación de aprendizaje.

Realiza del ejercicio 6.6 al 6.24. Joyanes Aguilar, Luis. Op. cit., Ejercicios resueltos.
pp. 235 y 236.

31
¿QUÉ HE APRENDIDO?

A continuación te presentamos una pequeña evaluación de esta unidad para que valores tus
avances logrados hasta el momento.
1. Lee con atención cada uno de los siguientes conceptos y coloca dentro del paréntesis la letra
de la definición que le corresponda.
Concepto Definición
( ) Conjunto. a) Atributo o característica de un objeto o individuo.
( ) Arreglo. b) Grupo de datos que tiene como característica pertenecer al mismo
tipo de dato simple.

( ) Dato. c) Dato estructurado, donde cada uno de sus componentes se


denomina campo.

( ) Registro. d) Colección finita, homogénea y ordenada de elementos.

2. Identifica en los siguientes esquemas el nombre de lo que se señala y escríbelo en las líneas
correspondientes.
Registro
A B

L uis
6 5 1 7 9 0 5 6 7 8
A v. de lo s M ila g ro s
118
876-12- 29 876-12- 30
20

A.________________________________ B.________________________________

Arreglo

H A J I N M K O P S E T V
1 2 3 4 5 6 7 8 9 10 11 12 13

C D

C.________________________________ D.________________________________

3. Lee cuidadosamente las siguientes preguntas y contéstalas correctamente.


a) ¿Qué son los datos simples?
b) ¿Qué son los datos agrupados o estructurados?

4. Del problema 5 de la primera unidad ubicado en la sección qué he aprendido, define las
estructuras de datos más adecuadas.

32
QUIERO SABER MÁS

Tomados de Curso de IBM de programación. Introducción a la programación en 32 bits. (México, D.F.), núm. 1, pp. 10 y 14.

33
¿QUÉ VOY A APRENDER?

UNIDAD III
PROGRAMACIÓN ESTRUCTURADA BÁSICA

Objetivo de la Unidad:
Aplicar los principios básicos de la programación estructurada
en la solución de problemas elementales, mediante la
especificación de la estructura de datos y las operaciones a
realizar, para desarrollar el pseudocódigo requerido.

Como comentábamos en la unidad anterior, el pseudocódigo generado para la solución de un


problema puede ser codificado en cualquier lenguaje de programación, de tal forma que en
esta unidad nos dedicaremos a explicar las estructuras lógicas, la forma de definir la estructura
de datos y las posibles operaciones que se pueden realizar con los datos definidos, como parte
del pseudocódigo.

Por lo anterior, podemos decir que la programación estructurada permite generar pseudocódigos
más entendibles, ya que la finalidad de utilizar estructuras lógicas es la de permitir al
pseudocódigo tomar una serie de decisiones a partir de los datos de entrada, permitiendo
llevar el flujo correcto de las instrucciones o sentencias para obtener las salidas deseadas.
(información procesada).

Dentro de este procedimiento de información que envuelven la ejecución o realización de


sentencias y la toma de decisiones, iremos realizando asignaciones, lecturas, escrituras,
evaluación de expresiones y operaciones básicas, para que en su totalidad obtengamos una
solución mediante la metodología de programación estructurada.

Es importante señalar que muchas veces requerimos que esta información procesada se almacene
en algún dispositivo de almacenamiento secundario, por lo cual definiremos a los archivos
como la estructura de datos que permite almacenar información de una manera permanente y
las posibles operaciones que se pueden realizar con ellos para leerlos, modificarlos o eliminarlos.

A continuación te presentamos los conceptos de la unidad y las posibles relaciones que existen
entre ellos.

34
Unidad III. Programación estructurada básica

Programación
estructurada básica

Utiliza

Que tiene
Pseudocódigo Especificaciones

Utiliza
Realiza Utiliza
Estructuras
Operaciones Archivos
lógicas
De Tiene

Asignación Lectura Escritura Evaluación de Elementos Organización Tipos de Tipos de Operaciones


expresiones acceso archivos
Como De

De tipo Campo Registro

Aritméticas De relación Lógicas Creación Eliminación Lectura Escritura Procesamiento

35
¿CÓMO APRENDO?

1. DECLARACIÓN DE LAS ESTRUCTURAS DE DATOS

Objetivo:

Declarar la estructura de los datos, mediante las especificaciones correspondientes en pseudocódigo, para
la referencia apropiada de los datos.

A partir de definir un problema y solicitar que desarrolles el pseudocódigo que lo resuelva,


identificaremos los datos que intervienen para establecer las estructuras de datos necesarias.

Ya hemos revisado los tipos de datos y su naturaleza en la unidad anterior, sin embargo no se
ha establecido la forma de declararlos con precisión en el pseudocódigo, según las
especificaciones correspondientes. Para esto, estableceremos que las estructuras de datos y los
nombres de los diferentes datos se escribirán en español y sin acento (precisiones de idioma).
A continuación te presentamos la estructura técnica para un pseudocódigo:

PROGRAMA: Descripción breve del programa.

TIPOS
Lista de tipos requeridos en el programa
CONSTANTES
Lista de constantes Estructura de
VARIABLES datos
Lista de variables

INICIO DE PROGRAMA
{Especificaciones técnicas, pseudocódigo del programa}
FIN DEL PROGRAMA

Como podrás observar se requiere identificar a nuestro programa con un nombre significativo,
definir las estructuras de datos a utilizar y dar las especificaciones de pseudocódigo necesarias
para realizar la tarea planteada.

Al momento de generar el pseudocódigo de algún problema, agruparemos en un bloque de


declaración de tipos, constantes y variables, donde se definirán los datos simples y agrupados
o estructurados, de tal forma que un ejemplo simple sería el siguiente:

Ejemplo: Declaración de estructuras de datos en el pseudocódigo

Se desea generar las estructuras de datos que requiere un sistema que nos informe cuántas
horas de clase tiene diarias un alumno, su nombre, grupo, calificaciones de sus cinco asignaturas,
las cuales son: matemáticas, física, química, historia e informática, así como su promedio.

36
ESTRUCTURA DE DATOS

TIPOS
Asignaturas =(Matematicas, Fisica, Quimica, Historia, Informatica)
Dias_de_la_semana = (Lunes, Martes, Miercoles, Jueves, Viernes)
Calificacion = (NA, S, B, MB)
Calificaciones_de_asignaturas = Arreglo [Asignaturas] de Calificacion

CONSTANTES
Total_Asignaturas = 5 Identificadores

VARIABLES
Registro_alumno = REGISTRO
Horario_alumno : Arreglo [Dias_De_la_Semana] de entero
Nombre : Cadena
Grupo : Cadena[5]
Calificaciones : Calificaciones_de_asignaturas
Promedio : Real;
TERMINA REGISTRO

En la sección de tipos se define cualquier tipo de dato que almacene valores simples o agrupados;
en la sección de constantes se definen tipos de datos que almacenen valores constantes y en la
sección de variables se definen tipos de datos que almacenen valores variables.

A continuación se presentan las actividades que deberás realizar; en caso de cualquier duda o
problema consulta a tu asesor.

Actividades de aprendizaje Recursos Productos


Realiza la lectura de las paginas Joyanes Aguilar, Luis. Preguntas resueltas
sugeridas y contesta las Fundamentos de programación.
siguientes preguntas: pp. 84-87.
1. ¿Qué es la cabecera de un
programa o algoritmo?
2. ¿Cuáles son los bloques de
declaración de variables y
constantes?
3. ¿Qué es un comentario?

Realiza los ejercicios 20 y 21. Manual de ejercicios y prácticas. Ejercicios 20 y 21 resueltos.

37
2. OPERACIONES BÁSICAS

Objetivo:

Especificar en pseudocódigo las operaciones básicas factibles de realizar, mediante la revisión de cada
una de ellas, para ser aplicadas en el contexto de la solución.

La metodología de programación estructurada se basa en el uso de las estructuras lógicas y en


el uso de operaciones básicas tales como la asignación de datos, la evaluación de expresiones y
la lectura y escritura de datos.

Cuando hablamos de asignaciones nos referimos a relacionar un valor con el identificador de


un dato, es decir, le asignamos un dato o valor al nombre de una estructura de datos. Sólo
puedes asignar valores equivalentes al tipo de dato que tiene la estructura de datos, es
decir, tanto la variable como el valor asignado deben ser del mismo tipo.

El valor que se le asigna a una variable puede ser tomado de: una constante, un valor definido,
el resultado de una operación aritmética o el de otra variable.

A los valores constantes se les asigna una sola vez un valor durante todo el pseudocódigo y se
definen en el área de constantes, en cambio en los datos variables, las asignaciones pueden ser
en diferentes momentos del pseudocódigo.

Símbolo u operador para asignación =

Ejemplo: Asignaciones en constantes y variables

Constantes: Variables:
Mayor_de_edad = 18 Sueldo_Total = Sueldo_Bruto - Descuento
Meses_del_año = 12 Raiz_cuadrada = Raiz(Numero)
I.V.A. = Total*0.15

Generalmente las lecturas son datos capturados del teclado y las escrituras son mensajes
enviados al monitor; sin embargo, se pueden realizar lecturas desde el mismo pseudocódigo al
asignarse un valor o leer de un archivo (los revisaremos más adelante), asimismo se pueden
escribir los datos en la impresora o en un archivo, entre otros.

Para procesar información muchas veces lo que hacemos es evaluar expresiones en forma de
sentencias o instrucciones. Podemos catalogar estas expresiones en tres tipos, las cuales son:

Aritméticas. Son operaciones de tipo matemático, que permiten procesar la información de


tal forma que se obtenga un valor. Por ejemplo:

Suma = A + B

Lógicas. Se utiliza para evaluar expresiones que sólo pueden devolver un valor de verdadero
o falso. Por ejemplo:

Edad >18

38
La expresión es verdadera si la variable edad tiene un valor mayor a 18, de lo contrario será
falsa.

De relación. Permite realizar una serie de operaciones anidadas, a partir de una expresión que
utilice los conectores and, not y or (y, no y o respectivamente), generalmente se utilizan en las
estructuras lógicas condicionales (las revisaremos más adelante). Por ejemplo:

Si ( A < B) y (J + H = C) entonces D = A

Varios autores coinciden en que, para hablar de programación estructurada hay que hablar de
estructuras lógicas, ya que son la base para poder escribir el pseudocódigo requerido para
solucionar problemas con esta metodología.

Una estructura lógica es una sentencia que permite evaluar una expresión a partir de ciertas
condicionantes, variando la secuencia del proceso según el resultado obtenido durante el
desarrollo del pseudocódigo.

Es importante señalar que cuando hablamos de pseudocódigo nos referimos al desarrollo de


una solución con una tendencia estructurada en forma algorítmica; sin embargo, cuando
hablamos de un programa nos referimos al resultado de la ejecución de un pseudocódigo
codificado en un lenguaje de programación.

Existen tres tipos de estructuras lógicas:

Secuencial. Se ejecuta instrucción tras instrucción o bien, módulo tras módulo.

Condicionales o alternativas. Existen dos tipos: la condicional Si-Entonces-De lo contrario


y la condicional Caso-Fincaso. Dependiendo del problema se seleccionará entre un tipo y el
otro. La diferencia consiste en que el primer tipo de estructura lógica condicional solo puede
evaluar un valor, dando dos posibles secuencias de acción; mientras que el segundo tipo puede
evaluar varios valores al mismo tiempo y por ende, dar varias secuencias de acción.

Repetitivas o iterativas. En algunas ocasiones deseamos que un conjunto de instrucciones o


sentencias se repitan un número determinado de veces o hasta que se cumpla una condición
(comúnmente se le llama bucle), para esto usamos las estructuras lógicas repetitivas.

a) La sentencia MIENTRAS-HAZ-FIN MIENTRAS, repite el bucle hasta que la expresión


lógica de la que depende se cumple, es decir, mientras sea verdadera.

b) Otra estructura lógica repetitiva es la sentencia REPITE-HASTA, la cual ejecutará sus


sentencias internas hasta que se cumpla una condición.

c) Por último la sentencia PARA-FIN PARA, es una estructura lógica en la que utilizando una
variable que se identifica como índice se repiten las sentencias de un módulo hasta que el
índice alcance un valor determinado. Existen dos tipos: el creciente y el decreciente.

Nota. Las estructuras lógicas establecen uno de los principios básicos de la programación
estructurada.

39
A continuación te presentamos las actividades que deberás realizar; en caso de dudas o problemas
consulta a tu asesor.
Actividades de aprendizaje Recursos Productos
Realiza una consulta bibliográfica Joyanes Aguilar, Luis. Fichas de contenido sobre
sobre cómo es una instrucción de Fundamentos de programación. las asignaciones de valores a
asignación de un valor a una pp. 27-29. datos variables.
variable. Elabora fichas de
contenido sobre este tema.

Investiga sobre la evaluación de Joyanes Aguilar, Luis. Op. cit., Fichas de contenido sobre la
expresiones y el uso de las pp. 17-29, 100-144. evaluación de expresiones y
estructuras lógicas, elabora fichas las estructuras lógicas.
de contenido.

Realiza los ejercicios 22, 23 y 24. Manual de ejercicios y prácticas. Ejercicios 22, 23 y 24
resueltos.

Desarrolla la Práctica 4, que te Manual de ejercicios y prácticas. Resolución de la Práctica 4.


mostrará la aplicación de los
temas vistos hasta este momento,
en el problema propuesto en la
situación de aprendizaje.

Realiza del ejercicio 1.2 al 1.11. Joyanes Aguilar, Luis. Op. cit., Ejercicios resueltos.
pp. 37 y 38.

De las actividades de Joyanes Aguilar, Luis. Op. cit., Identificación de las


programación resueltas (4.1 a la pp. 145-160. estructuras lógicas.
4.24), identifica el uso de las
estructuras lógicas.

Realiza del ejercicio 4.2 al 4.10. Joyanes Aguilar, Luis. Op. cit., Ejercicios resueltos.
p. 160.

3. ARCHIVOS
Objetivo:
Identificar a los archivos como elementos de almacenamiento permanente de datos, mediante la revisión
de sus especificaciones y características técnicas, para el desarrollo de soluciones que requieran esta
herramienta.
Un archivo se define como una estructura de datos que reside en memoria secundaria o
dispositivo de almacenamiento, tales como disquetes, cd’s, discos duros y cintas magnéticas,
entre otros.
Los archivos están compuestos por registros y a su vez por un conjunto de datos, los cuales se
pueden manipular de forma conjunta, en otras palabras, los registros se encuentran conformados
por campos, que son datos específicos sobre algún conjunto de individuos u objetos.

40
Archivo de datos alumnos

Registro 6

Registro 5

Registro 4

Registro 3

Registro 2

Registro 1

Nombre: Margarita Irra.


Campos
Matrícula: 993211-A
Grupo: 501 T.M.
Capacitación: Informática

Cuando se diseña la estructura de datos de un archivo se puede elegir diferentes formas para
organizarlo, dependiendo del uso que se le va a dar y del soporte utilizado (cinta o disco). A
continuación te presentamos las tres formas de organizar los registros de un archivo.

Organización secuencial. Los registros se encuentran organizados en posiciones consecutivas,


y sólo se puede acceder a ellos de uno en uno a partir del primero.

Organización relativa. También conocida como organización directa o aleatoria. Los registros
se colocan y se acceden al indicar el lugar que ocupan dentro del archivo.

Organización indexada. Para definir esta organización es importante considerar tres


conceptos:

a) Área primaria: Contiene los registros.

b) Campo clave: Es un campo con un valor que identifica de forma única un registro, por lo que
su valor no puede aparecer repetido en otro registro.

c) Área de índices: Es un archivo secuencial en el que cada registro establece la clave de un


registro del área primaria y su ubicación (dirección). De esta manera el sistema accede de
forma directa a una dirección del área primaria a partir del índice. Para comprender mejor este
tipo de organización, consideremos el ejemplo clásico en el que buscamos un tema en un libro,
primero localizamos en el índice la página del tema y posteriormente abrimos el libro en esa
página.

Una vez definida la organización de los registros del archivo, el siguiente paso es hablar sobre
el acceso a los registros almacenados, esto es, la forma en que accesaremos los registros
almacenados en el dispositivo que maneja el soporte. Existen dos modos de acceso:

a) El acceso secuencial a un registro se realiza desde el primero y los sucesivos hasta llegar
al registro seleccionado. Este método de acceso se puede utilizar con cualquier soporte y
organización.

41
b) El acceso aleatorio sólo se puede realizar en los denominados soportes direccionables,
como los discos magnéticos; éste consiste en accesar a un registro directamente, es decir, sin
accesar los registros anteriores.

Ejemplo:

A continuación te presentamos la comparación de los modos de acceso entre dos diferentes


soportes de almacenamiento:

En cambio los CD´s tienen un tipo de


Las cintas o casetes de música tienen acceso aleatorio, dado que para escuchar
un tipo de acceso secuencial , ya que la canción No. 5 bastará con direccionar
para escuchar la canción No. 5 debes esa canción. El acceso es más rápido en
recorrer la cinta a través de las este tipo de soporte, ya que no se
canciones 1, 2, 3 y 4. requiere accesar canción por canción.

Hasta el momento hemos visto como se organizan y se accesan los archivos, ahora definiremos
los tipos de archivos:

Archivos tipo binario. Son archivos que no tienen una estructura definida, sólo procesan la
información; generalmente se usan para copiar o mover archivos de estructura desconocida y
se requiere de protocolos o lenguajes especiales para codificar el contenido de éstos.

Archivos tipo texto. Contienen datos de tipo carácter; este tipo de archivo consiste en varias
líneas que constan de un número variable de caracteres. El archivo puede leerse o escribirse,
ya sea línea por línea o carácter por carácter. También puede ser accesado desde cualquier
editor de texto y programa de aplicación específica, como procesadores de palabras, etc.

Archivos tipo estructurado. Son Archivos que utilizan estructuras de datos simples y/o
agrupadas, donde todos los elementos se encuentran relacionados entre sí. El programa no
necesita traducir el contenido del archivo para entenderlo, ya que debe disponer de la estructura
definida.

A partir de conocer qué tipos de archivos existen y la forma de accesarlos, podrás definir de
una forma más simple el dispositivo de almacenamiento a utilizar y la estructura de datos en el
pseudocódigo.

42
A continuación se te presentan las actividades que deberás realizar para cubrir con este tema.

Actividades de aprendizaje Recursos Productos


Consulta acerca de los archivos y Joyanes Aguilar, Luis. Ficha de contenido sobre
elabora una ficha de contenido. Fundamentos de programación. archivos.
pp. 259-265.

Elabora un cuadro sinóptico Joyanes Aguilar, Luis. Op. cit., Cuadro sinóptico sobre la
sobre la lógica que se sigue en la pp. 265-270. organización y acceso a los
organización y acceso a los registros de un archivo.
registros de un archivo.

Realiza un cuadro comparativo Joyanes Aguilar, Luis. Op. cit., Cuadro comparativo sobre
que considere los diferentes tipos p. 287. los diferentes tipos de
de archivos, marcando sus archivos.
características primordiales.

Realiza los ejercicios 25 y 26. Manual de ejercicios y prácticas. Ejercicios 25 y 26 resueltos.

A partir de revisar y analizar la Situación de aprendizaje. Ficha de contenido con la


situación de aprendizaje, explica justificación del uso de la
por qué es conveniente utilizar metodología estructurada.
una metodología de
programación estructurada.
Genera una ficha de contenido.

Realiza del ejercicio 8.1 al 8.3. Joyanes Aguilar, Luis. Op. cit . Ejercicios resueltos.
p. 304.

4. OPERACIONES CON ARCHIVOS

Objetivo:

Identificar el uso y aplicación de los archivos, mediante la revisión general de las operaciones que se
pueden llevar a cabo con ellos, para ser utilizados en soluciones que así lo requieran.

Una vez almacenada la información en archivos, podrás manipularla al desarrollar habilidades


para crear, borrar, leer, escribir y procesar archivos. Mediante el uso y aplicación de los archivos
podrás plantear soluciones en términos de la programación estructurada, manipulando los
datos procesados en el pseudocódigo de una forma más rápida y confiable.

A continuación se te presentan las actividades que deberás realizar para desarrollar este tema.

43
Actividades de aprendizaje Recursos Productos
Investiga sobre las operaciones Joyanes Aguilar, Luis. Ficha de contenido sobre las
básicas que pueden realizarse con Fundamentos de programación. operaciones básicas de los
los archivos, como son: creación y pp. 270-278. archivos.
eliminación, lectura y escritura.
Elabora una ficha de contenido.

Elabora un cuadro sinóptico con Joyanes Aguilar, Luis. Op. cit., Cuadro sinóptico con las
las características técnicas para el pp. 265-270, 280-296. características técnicas para
acceso a la información de los el acceso a la información de
archivos, que pueden ser: los archivos.
secuencial, relativa e indexada.

Realiza los ejercicios 27, 28 y 29. Manual de ejercicios y prácticas. Ejercicios 27, 28 y 29
resueltos.

Realiza la Práctica 5, que incluye Manual de ejercicios y prácticas. Resolución de la Práctica 5.


el manejo de los archivos en el
problema propuesto en la
situación de aprendizaje.

Realiza del ejercicio 8.4 al 8.8. Joyanes Aguilar, Luis. Op. cit., Ejercicios resueltos.
p. 304.

44
¿QUÉ HE APRENDIDO?

A continuación te presentamos una pequeña evaluación de esta unidad para que valores tus
avances logrados hasta el momento.

1. Lee con atención cada uno de las siguientes expresiones y coloca dentro del paréntesis la
letra de la definición que le corresponda.

Expresiones Definición

( ) Aritméticas. a) Permite realizar una serie de operaciones anidadas, a partir de


una expresión que utilice los conectores and, not y or.

( ) De relación. b) Son operaciones de tipo matemático, que permiten procesar la


información de tal forma que se obtenga un valor.

( ) Lógicas. c) Se utiliza para evaluar expresiones que sólo pueden devolver


un valor de cierto o falso.

2. Lee con atención cada una de las siguientes proposiciones y coloca dentro del paréntesis
una V si es verdadera o una F si es falsa.

( ) Se pueden asignar valores equivalentes al tipo de dato que tiene la estructura de datos, es
decir, tanto la variable como el valor asignado deben ser del mismo tipo.

( ) Un registro puede tener varios campos clave, cuyos valores sirven para identificar a un
registro.

( ) La organización relativa de un archivo también es conocida como organización indirecta.

( ) La concatenación establece que dado dos archivos con registros de igual estructura, se
trata de obtener uno solo en que configuren todos los registros del primero y a
continuación todos los registros del segundo.

3. Identifica a qué tipo de estructura lógica pertenece cada esquema y escríbelo en las líneas
según su enumeración.

I. II.
Evalua
Falsa Ejecuta
Expresión Identificador = Valor inicial Identificador = Valor final
Bloque de
instrucciones
Verdadera
Incremento o decremento en
el identificador
Ejecuta Módulo

45
III. Entonces IV.
Ejecuta Evalua
Ejecuta Verdadero
Verdadera módulo 1 Bloque de
Expresión
instrucciones
Si Expresión
Otro
Falsa
Falsa Ejecuta
módulo 2

V.

Instrucción 1 Instrucción 2 Instrucción 3 Instrucción 4 ... Instrucción n

VI. Ejecuta
En Valor 1 Módulo 1

Ejecuta
En Valor 2 Módulo 2

En Ejecuta
Caso Valor 3 Módulo 3

En Ejecuta
Expresión Valor 4 Módulo 4

. .
. .
. .
Ejecuta
En Valor n Módulo n

Diferente a todos los Ejecuta En otro caso


En
anteriores Otro Módulo

I.-________________________________ II.-_______________________________
III.-_______________________________ IV.-_______________________________
V.-________________________________ VI.-_______________________________

4. Lee cuidadosamente las siguientes preguntas y contéstalas correctamente.

a) ¿Qué es un archivo de texto?


b) ¿Qué es un archivo binario?
c) ¿Qué es un archivo estructurado?
d) ¿Qué tipos de organización para archivos conoces?

5. Del problema 5 de la primera unidad ubicado en la sección Qué he aprendido, define a nivel
de pseudocódigo: los tipos de datos, las constantes y variables que requiere la solución.

46
QUIERO SABER MÁS

Tomado de Curso de IBM de programación. Introducción a la programación en 32 bits. (México, D.F.), núm. 1, p. 19.

47
¿QUÉ VOY A APRENDER?

UNIDAD IV
PROGRAMACIÓN ESTRUCTURADA INTERMEDIA

Objetivo de la Unidad:
Construir los módulos requeridos para la solución de problemas,
mediante el uso de procedimientos y funciones, para hacer más
eficiente el desarrollo de las soluciones.

Este es el momento de aplicar todo lo que has aprendido acerca de la metodología de


programación estructurada para la solución de la situación de aprendizaje, generando el
pseudocódigo necesario, al construir módulos que realiza tareas específicas.

Es importante notar que para sistematizar proceso(s) de trabajo se requiere de varios elementos,
tales como:

• Computadora.
• Impresora.
• Sistema operativo.
• Programas de aplicación general.
• Programas de aplicación específica.
• Lenguaje de programación.

Para la generación de programas puedes apoyarte en la siguiente serie de tareas:

• Visualizar el problema a resolver.


• Mediante una técnica de segmentación, elaborar el diagrama de Top-Down.
• A partir del diagrama de top-Down, define las tareas por módulos.
• Realiza la codificación del pseudocódigo.
• Codifica en un lenguaje de programación.
• Compila o interpreta el código generado en el lenguaje de programación.
• Genera el programa ejecutable.

Entenderemos por compilación e interpretación a la traducción de un lenguaje de alto nivel a


un lenguaje máquina, siendo éste entendible por la computadora.

Primeramente definiremos a los módulos como procedimientos o funciones, su ámbito puede


ser global o local, así como el uso de parámetros de valor o variable, según las necesidades del
problema, definiendo las especificaciones de pseudocódigo.

Analizaremos las librerías o unidades que pueden ser utilizadas para facilitar un proceso, ya
que contienen ciertos procedimientos y/o funciones predefinidos por el lenguaje de
programación o definidos por el usuario. Veremos las ventajas de realizar impresiones de

48
reportes, a partir de definir su estructura y las especificaciones de pseudocódigo para el proceso
de impresión y por último, revisaremos brevemente la historia de los lenguajes de programación
estructurados, para que ubiques que existe una variedad de lenguajes para codificar tu
pseudocódigo. A continuación te presentamos el esquema de la unidad:

Unidad IV. Programación estructurada intermedia

Programación
estructurada

Pseudocódigo
Tiene
especificaciones de

Utiliza Crea

Unidades Reportes

Con una Que se pueden


Que tienen

Procedimientos Funciones Estructura Imprimir

Utiliza
Lenjuajes de
programación

Predefinidos Definidos por Predefinidos Definidas por


el usuario el usuario Como

Quick Pascal C
De tipo
Global Utiliza
Módulos

Local
De tipo
Predefinidas
Predefinidos
Como
Procedimientos Funciones
Definidos por Definidas por
el usuario el usuario

Con Con
Parámetros Variables Parámetros Variables
De De tipo De tipo
De

Valor Variables Globales Locales Valor Globales Locales

49
¿CÓMO APRENDO?

1. PROCEDIMIENTOS Y FUNCIONES

Objetivo:

Identificar el proceso de construcción de módulos, mediante la aplicación de los procedimientos y funciones,


para facilitar el desarrollo de las soluciones.

Un módulo permite realizar una tarea específica, formando parte de la solución total del
problema. Dependiendo de donde se vea un módulo puede verse como submódulo, ya que
puede estar incluido en un módulo principal o dependiendo de otros módulos, por lo cual en
ocasiones se usará el término módulo y submódulo como sinónimos.

Un pseudocódigo puede constar de varios módulos. El módulo principal siempre se encuentra


presente, pero puede o no haber submódulos.

Entenderemos lo mismo al hablar de programa, programa principal y módulo principal, donde


este puede invocar (llamar) a cualquier submódulo.

Existen dos tipos de módulos:

Procedimientos

La utilidad de un procedimiento es que realiza una tarea específica dentro del programa, descrita
por un algoritmo; asimismo, un procedimiento se invoca utilizando su nombre como instrucción
en el pseudocódigo.

Parámetros. Los procedimientos pueden llevar parámetros, que no son más que datos de
entrada al procedimiento, cuyas operaciones internas pueden repercutir o no sobre la variable
que se use como parámetro de entrada.

Existen dos tipos de parámetro: de valor y variable, el primero únicamente se utiliza como
dato de referencia, es decir, puede cambiar de valor durante la ejecución del procedimiento,
pero al término de éste el parámetro regresa a su valor original, mientras que el segundo tipo
se considera variable, ya que durante la ejecución del procedimiento éste cambia su valor y al
finalizar el procedimiento, el parámetro permanecerá con el nuevo valor.

Parámetros de entrada: Son valores en los que se basa la respuesta del procedimiento.
La información fluye al submódulo desde el módulo que hace la
llamada. Estos parámetros siempre son de valor.
Parámetros de Son las respuestas determinadas por el procedimiento, es decir,
entrada-salida: representa la información que se regresa al módulo que hace la
llamada. Estos deben ser parámetros variables, de uso exclusivo
para los procedimientos.

Se declaran de la siguiente forma:

PROCEDIMIENTO Nombre (Parametro: tipo)


PROCEDIMIENTO Nombre (VAR Parametro: tipo)

50
Los parámetros son el medio de comunicación entre un módulo que hace una llamada a uno
que es llamado. Los valores que emplea el submódulo se pasan a dicho submódulo por medio
de un parámetro, y las respuestas se regresan en un parámetro variable que puede ser el
mismo.

Ejemplo:

Procedimiento CocRes (Dividendo, Divisor: Integer; Var Cociente, Residuo: Integer)


COMIENZA
Cociente := Dividendo div Divisor
Residuo := Dividendo mod Divisor
TERMINA

Los parámetros dividendo y divisor se utilizan para pasar valores al procedimiento; los parámetros
cociente y residuo regresan respuestas.

En este ejemplo, dividendo y divisor son parámetros por valor, cociente y residuo son parámetros
variables.

Funciones

Existen diversas funciones predefinidas, de tal forma que el usuario solamente las invoca,
marcando los parámetros necesarios para su ejecución.

También se permite que el usuario defina sus funciones según las necesidades de su problema,
por lo general usamos una función para realizar una tarea cuya finalidad es la de calcular un
valor; una función se invoca incluyéndola como parte de la expresión, a menudo en una
instrucción de asignación.

Las funciones se definen de la siguiente forma:

FUNCION Nombre: tipo

Donde “Nombre” será el identificador que le asignemos a una función y “tipo” será el valor
devuelto por la función. Otro formato es:

FUNCION Nombre (Parametros): Tipo

Donde “Parámetros” serán los valores introducidos en esta función.

Nota. No olvides que los parámetros de las funciones únicamente pueden ser de valor.

Cuando se llama a una función desde el módulo principal, los valores se calculan y se coloca
dicho valor en el nombre de la función, mediante una asignación.

51
PASOS PARA ESCRIBIR UN MÓDULO

1. Identificar la tarea que realizará. Determinar si se utilizará una función o un procedimiento.


Elegir un nombre del módulo y determinar el tipo (real, carácter, lógico, etc.) si va a ser una
función.

2. Decidir qué parámetros se emplearán. Determinar si se usarán parámetros de valor o


variables.

3. Idear un plan para el módulo. Esto puede implicar la identificación de otras subtareas. Se
deberán generar un algoritmo para ejecutar las acciones que se requieran y una lista de
variables locales (el algoritmo de una función debe incluir la asignación de un valor al
nombre de la función).

4. Escribir el módulo. El primero y segundo pasos que se citaron antes proporcionan


información para la línea del encabezado. El tercer paso proporciona las declaraciones de
variables locales y el cuerpo del módulo.

Razones para escribir módulos

Existen varias razones para utilizar módulos, sin embargo solo te explicaremos las más
representativas:

Repetición. Cuando se requiere que una tarea se ejecute varias veces dentro del mismo
pseudocódigo, el uso de un procedimiento o función evita que se tengan que escribir estos
pasos varias veces en él y si se usan los parámetros correctos, hasta se podrían unificar varias
tareas casi idénticas en un solo módulo.

Uso Universal. Algunas tareas son idénticas para varios problemas, por lo que se pueden
escribir procedimientos o funciones que podrían ser ocupados en varios programas, al
homogeneizar las soluciones, utilizando los parámetros correctos.

Trabajo en equipo. Dado que la programación estructurada utiliza técnicas de segmentación,


permite que el programa se divida en módulos, de tal forma que un equipo de trabajo de
programación se pueda dividir estos para generar los algoritmos correspondientes.

Modularidad. El uso de módulos permite dividir un problema en partes más pequeñas y


manejables. Esto facilita la elaboración y mantenimiento del sistema generado. La modularidad
permite enfocar la atención en la tarea específica a realizar, permitiendo tener una interpretación
más sencilla del programa.

Una técnica que nos apoya a modular un programa es la técnica de Top-Down, la cual permite
que una tarea compleja sea descompuesta en subtareas más simples y, por ende, más fáciles de
resolver. Es importante marcar que un módulo puede invocar a su vez a otros submódulos,
siempre y cuando los primeros sean de mayor jerarquía y en relación directa con el módulo
llamado.

52
Generalidades de los módulos

1. Los módulos pueden declarar variables propias, pero no se puede tener acceso a éstas fuera
del módulo (variables locales), a menos que sea un módulo hijo el que las use.
2. Los módulos deben tener funciones específicas.
3. Utilizan parámetros como el medio de comunicación primario con el pseudocódigo. No
utilices variables globales sin meditar su alcance, ya que esto provocaría un desperdicio de
memoria en la ejecución del programa.
4. Analiza si el procedimiento requiere parámetros de valor o variables.
5. Una función no puede emplearse para calcular una respuesta de tipo arreglo, en lugar de
esto, el arreglo deberá ser un parámetro variable de un procedimiento.
6. Asigna un valor al nombre de la función en el código de la función. Nunca asignes un valor
a un nombre de un procedimiento.
7. El valor de una variable local calculado en una función debe ser asignado al nombre de la
función.

Unidades

Una unidad es un conjunto de módulos que pueden ser utilizados para diferentes programas,
son independientes de los pseudocódigos que las utilizan, y forman una entidad independiente
con sus propias reglas de implementación.

Las unidades tienen gran importancia, ya que gracias a ellas podemos ahorrar pseudocódigos
que sean de considerable tamaño; teniendo la particularidad de que las unidades son
independientes del pseudocódigo que las use, y pueden ser compiladas y modificadas sin
modificar los pseudocódigos que hacen la llamada.

Cada módulo de una unidad puede referenciarse dentro de un programa tantas veces como sea
necesario, aunque desconozcamos el pseudocódigo de dicho módulo.

Para generar una unidad utilizable, tendremos que compilarla o generar la traducción a lenguaje
máquina en un medio de almacenamiento, después de codificarla en un lenguaje de
programación.

Antes de empezar a hablar sobre reportes y lenguajes de programación estructurada, considera


los siguientes conceptos generales sobre la programación:

Conceptos Generales de programación:

Conceptos generales de programación


Lenguajes de Son los ambientes utilizados para escribir programas de
programación computadoras que puedan ser entendidos por ellas.
Se dividen en tres categorías: máquina, bajo nivel y alto nivel.
Lenguaje máquina Es aquel cuyas instrucciones son directamente entendibles
por la computadora y no necesitan traducción posterior para
que la computadora pueda comprender y ejecutar el
programa.
Lenguaje de alto nivel En éste las instrucciones o sentencias para la computadora
son escritas con palabras similares al lenguaje cotidiano.

53
Lenguaje de bajo nivel Este lenguaje depende de un conjunto de instrucciones
(Ensamblador) específicas de la computadora. Las instrucciones se escriben en
códigos alfabéticos conocidos como mnemotécnicos.
Compilador Traduce de un lenguaje de alto nivel a lenguaje máquina,
mediante un traductor llamado compilador, el cual verifica que
todo el código fuente esté correcto y posteriormente traduce,
permite que la ejecución del programa sea más rápida.
Intérprete Traduce de lenguaje de alto nivel a lenguaje máquina, mediante
un traductor llamado intérprete, el cual traduce línea por línea
y al mismo tiempo la ejecuta, si en algún momento encuentra
algún error, la ejecución del programa se detiene; por la forma
de ejecución este tipo de traductor es más lento.
Programa Conjunto de instrucciones que tienen una secuencia lógica para
realizar un propósito y que están escritas en algún lenguaje de
programación; es la codificación del pseudocódigo en un
lenguaje de programación.
Algoritmo Se deriva de la traducción al latín de la palabra árabe
Alkhowarizmi, nombre de un matemático y astrónomo árabe que
escribió un tratado sobre manipulación de números y
ecuaciones en el siglo IX.
Un algoritmo es un método para resolver un problema
mediante una serie de pasos precisos, definidos, lógicos y
finitos.

A continuación se presentan las actividades que deberás realizar; en caso de cualquier duda o
problema consulta a tu asesor.

Actividades de aprendizaje Recursos Productos


Realiza una consulta bibliográfica Joyanes Aguilar, Luis. Ficha de contenido sobre
sobre subprogramas Fundamentos de programación. subprogramas.
(procedimientos y funciones), pp. 163-177.
describiendo el proceso de
construcción y aplicación.

Realiza los ejercicios 30 y 31. Manual de ejercicios y prácticas. Ejercicios 30 y 31 resueltos.

Investiga la utilidad de utilizar Joyanes Aguilar, Luis. Op. cit., Ficha de contenido sobre los
variables y constantes en un pp. 178-181. ámbitos global y local.
ámbito local (objetos locales) y
global (objetos globales) en los
procedimientos y funciones.

Genera un cuadro comparativo Ficha sobre procedimientos y Cuadro comparativo entre


entre procedimientos y funciones. funciones. procedimientos y funciones.

54
Realiza un resumen sobre los Joyanes Aguilar, Luis. Op. cit., Ficha de contenido acerca de
parámetros, indicando su pp. 181-197. parámetros.
definición, clasificación,
codificación y el paso de
parámetros.

Elabora un cuadro comparativo Ficha de contenido sobre los Cuadro comparativo sobre
entre los parámetros de valor y parámetros. parámetros de valor y
los parámetros variables o de variable.
referencia.

Realiza los ejercicios 32, 33 y 34. Manual de ejercicios y prácticas. Ejercicios 32, 33 y 34
resueltos.

Realiza la lectura de la página Joyanes Aguilar, Luis. Op. cit., Preguntas resueltas.
sugerida y contesta las siguientes p. 185.
preguntas:
¿Cuál es la sintaxis para crear una
unidad en Turbo Pascal?
¿Qué tipo de unidades estándar
maneja Turbo Pascal?

Realiza del ejercicio 5.1 al 5.10. Joyanes Aguilar, Luis. Op. cit., Ejercicios resueltos.
p. 202.

Realiza el ejercicio 35. Manual de ejercicios y prácticas. Ejercicio 35 resuelto.

Realiza la Práctica 6, que incluye Manual de ejercicios y prácticas. Resolución de la Práctica 6.


el manejo de las funciones y
procedimientos en el problema
propuesto en la situación de
aprendizaje de esta asignatura.

2. IMPRESIÓN DE REPORTES

Objetivo:
Identificar el pseudocódigo asociado a la impresión general de un reporte, mediante la revisión del
proceso de impresión, para ejemplificar una aplicación con procedimientos y funciones.

Reportes
En algunos casos no es suficiente tener la información almacenada en disco o presentada en
pantalla, ya que para poder consultarla requeriremos forzosamente de la computadora, sin
embargo, si generamos un documento impreso con dicha información nos facilitará la tarea.

Es por esto que identificaremos a los reportes como la visualización impresa de la información
procesada. Todo reporte comprende una serie de apartados o regiones, que se extienden
horizontalmente a través de la página y abarcan una o más líneas impresas. Explicaremos a
continuación siete tipos de apartados, cada uno de los cuales se utiliza para imprimir la
información en una secuencia determinada en el reporte.

55
Introducción del reporte. Información que va al inicio del reporte, como: título, portada de
página o un texto introductorio.

Encabezado de página. Información impresa al principio de cada página como número de


página, fecha, título de la página y los encabezados de las columnas. No se incluye en la
introducción del reporte.
Grupo. Si la información se puede catalogar con base a un campo clave, entonces podemos
crear grupos que contengan ciertos criterios.
Cuerpo. Es la impresión de la información del archivo bajo ciertos criterios, presentada en
columnas según el campo indicado en los encabezados de página.
Línea de subtotales. Información impresa al final de cada grupo, tal como subtotales y datos
estadísticos que podrían contener algún texto explicativo.

Pie de página. Información impresa al final de cada página, como fecha o número de página.

Línea de totales. Información impresa al final del reporte, tal como totales, datos estadísticos
de resumen o la conclusión del reporte.

En un lenguaje de programación se necesita forzosamente definir la salida de los datos en las


posiciones de la hoja, de tal forma que tendremos que direccionar la salida en la impresora.
Dado que cada hoja tiene un cierto número de filas o líneas, tendremos que definir un módulo
que lleve el conteo de líneas para detectar el final de la hoja y realizar el salto de página.

A continuación se te presentan las actividades que deberás realizar para cubrir con este tema.

Actividades de aprendizaje Recursos Productos


Investiga sobre los reportes y su Enciclopedia Encarta. Ficha de contenido sobre
estructura. reportes.

Realiza una consulta bibliográfica Joyanes Aguilar, Luis. Ficha de contenido sobre
sobre contadores y acumuladores, Fundamentos de programación. contadores y acumuladores.
para apoyar el salto de página. pp. 73-83.

Realiza el ejercicio 36. Manual de ejercicios y prácticas. Ejercicio 36 resuelto.

Realiza la Práctica 7, que incluye Manual de ejercicios y prácticas. Resolución de la Práctica 7.


el módulo de impresión en el
problema propuesto en la
situación de aprendizaje de esta
asignatura.

56
3. LENGUAJES DE PROGRAMACIÓN ESTRUCTURADA

Objetivo:

Identificar los lenguajes de programación estructurada que existen actualmente, mediante la revisión
general de sus características, para familiarizar al estudiante con el nombre de varios lenguajes de
programación.

Es importante que conozcas que existen una gran variedad de lenguajes de programación, es
función del programador seleccionar el lenguaje que utilizará para condificar su pseudocódigo
valorando las necesidades y características de la solución.

A continuación te presentamos la historia de algunos lenguajes de programación estructurada:

Una historia breve de Pascal y Turbo Pascal

A principios de los años 70 y tras los estudios efectuados en la década anterior en la realización
del lenguaje ALGOL-68, Niklaus Wirth, un profesor del Eidgenossische Technische Hochschule
(Instituto Tecnológico) de Zurich (Suiza), diseño Pascal, un lenguaje concebido para la
enseñanza de técnicas de programación a estudiantes universitarios, que con el correr de los
tiempos se ha convertido en estándar del mundo de la programación.
El objetivo fundamental de su creador fue desarrollar un lenguaje que permitiera “enseñar
programación como una disciplina sistemática basada en determinados conceptos
fundamentales”. Estos conceptos se reflejan de modo claro y natural en el lenguaje.
En 1983 aparece en el mercado norteamericano -comercializado por Borland international,
Inc.- un compilador de Pascal denominado Turbo Pascal; la característica más notable, su
precio reducido: $49.95 (dólares). Los programadores profesionales lo compraron masivamente,
pues no sólo funcionaba, sino que compilaba y corría -ejecutaba- programas más rápidamente
que cualquier otro compilador del mercado. En años sucesivos aparecieron las versiones 2.0,
3.0, 3.1 y 3.2. Su éxito se debía a la facilidad de edición, compilación y ejecución: constituía por
sí mismo un entorno de programación: editor, compilador y depurador integrados; tenía una
limitación de 64 Kbytes en el tamaño de los programas.

La versión 4.0 superó con creces a las versiones anteriores y eliminó la barrera de los 64K
incorporando a su vez los menús desplegables, además ofrecía un gran número de mejoras y
novedades en lo que concierne al confort y al entorno de programación:

• Compilador con editor incorporado similar a las versiones anteriores, pero renovado (menús
desplegables, funciones especiales, etc.).
• Facilidad para construcción de librerías.
• Compilador de tipo clásico que puede ser utilizado en batch (proceso por lotes).

La posibilidad de romper la barrera de 64K para la creación de programas, se consiguió mediante


la creación de módulos que se diseñaban con unidades (unit). Cada unidad puede ser compilada
separadamente.

A finales de 1988 aparece en Estados Unidos la versión 5.0 que, entre otras novedades, ofrecía
un entorno de desarrollo. Entrado el año 1989 aparece la versión 5.5, idéntica a la 5.0, con una
importante excepción: incorpora facilidades para realizar programación orientada a objetos

57
(OOP, Object-Oriented Programming), metodología de programación clásica pero poco
utilizada, que, sin duda, es la clave en el desarrollo de la Ingeniería del Software.

Turbo Pascal corre sobre computadoras PC, AT, XT, PS/2, 286, 386, 486, Pentium e incluso
Apple; es una herramienta de programación muy potente que tiene además la virtud de su
facilidad de aprendizaje. Por esta razón, sirve indistintamente en el campo de la educación y en
el profesional. Desde Institutos y Liceos hasta Escuelas y Facultades Universitarias.

Historia de C

Comenzaremos diciendo que C no está atado a ningún sistema operativo. Este entorno de
desarrollo ha dado a C la reputación de ser un lenguaje de programación de sistemas porque
es útil para escribir compiladores y sistemas operativos.

UNIX fue desarrollado originalmente en 1969, en lo que ahora sería considerado un pequeño
DEC PDP-7; por su diseño se pretendía que este sistema operativo fuera amigable para el
programador, ofreciendo herramientas de desarrollo útiles, órdenes claras y un entorno
relativamente abierto.

Poco después del desarrollo de UNIX, Ken Thompson implemento un compilador para un
nuevo lenguaje llamado B. Thompson estaba intentando simplificar más el CPL, sin embargo,
tanto BCPL como B, se convirtieron en lenguajes limitados, útiles solamente para ciertas
clases de problemas.

Así, poco después apareció una máquina, el PDP-1. UNIX y el compilador B fueron trasladados
a está máquina, pero aún resultaba bastante pequeño comparado con los equipos actuales. En
1971 se comenzó a trabajar en un sucesor para el B, apropiadamente llamado C.

Danniss Ritchie acreditado como el creador de C, que restauró parte de la BCP1 y B. C es el


lenguaje a elegir para el diseño de software de sistemas. C es un lenguaje relativamente de bajo
nivel, que permite especificar cada detalle en la lógica de un algoritmo para lograr la máxima
eficiencia de la computadora. Pero C es también un lenguaje de alto nivel que puede ocultar los
detalles de la arquitectura de la computadora, incrementando así la eficiencia de la programación.

A continuación se presenta la actividad que deberás realizar; en caso de cualquier duda o


problema consulta a tu asesor.

Actividades de aprendizaje Recursos Productos

Investiga las características de los Joyanes Aguilar, Luis. Fichas de contenido sobre
siguientes lenguajes de Fundamentos de programación. los lenguajes de
programación: Q. Basic, Quick pp. 9-11. programación estructurada.
Basic y Visual Basic, Pascal y C,
los cuales son de alto nivel.

58
¿QUÉ HE APRENDIDO?

A continuación te presentamos una pequeña evaluación de esta unidad para que valores tus
avances logrados hasta el momento.
1. Lee con atención cada uno de los siguientes conceptos y coloca dentro del paréntesis la letra
de la definición que le corresponda.

Concepto Definición
( ) Procedimiento. a) Se definen según las necesidades del problema, utilizándose
un módulo que sirva para calcular un valor único.

( ) Función. b) Son datos de entrada al procedimiento, cuyas operaciones


internas pueden repercutir o no sobre la variable que se use
de entrada.

( ) Parámetro. c) Permite realizar una tarea específica, formando parte de la


solución total del problema.

2. Lee con atención cada una de las siguientes proposiciones y coloca dentro del paréntesis una
V si es verdadera o una F si es falsa.
( ) Un módulo debe declararse antes de que lo llamen.

( ) Los módulos no pueden declarar variables propias.

( ) Utiliza parámetros como el medio de comunicación primario con el pseudocódigo.

( ) Una función no puede emplearse para calcular una respuesta de tipo arreglo.

( ) Asigna a una variable local el valor obtenido del procedimiento.

3. Lee con atención cada una de las siguientes premisas para escribir una función y ordénalas,
colocando el número correspondiente dentro del paréntesis (inicia con el número 1).
( ) Declaración de constantes y variables locales, si las hay.
( ) Una línea de encabezado que identifica la función, su tipo y los parámetros que utiliza.
( ) Lista de instrucciones que forman el “cuerpo” de la función, contenidas entre los
delimitadores “COMIENZA” y “TERMINA”.

4. Lee cuidadosamente las siguientes preguntas y contéstalas.


a) ¿Qué es una unidad?
b) ¿Qué es un reporte y cuál es su estructura?
c) ¿Cuáles lenguajes de programación estructurada conoces?
d) ¿Cuáles son sus características?

5. Del problema 5 de la primera unidad ubicado en la sección Qué he aprendido, elabora el


pseudocódigo correspondiente a los módulos descritos en el diagrama de Top-Down que
desarrollaste.

59
QUIERO SABER MÁS

Tomados de Curso de IBM de programación. Introducción a la programación en 32 bits. (México, D.F.), núm. 1, p. 13.

60
¿QUÉ VOY A APRENDER?

UNIDAD V
PROGRAMACIÓN ORIENTADA A OBJETOS

Objetivo de la Unidad:
Aplicar los conceptos básicos de la programación orientada a
objetos en la solución de problemas elementales, mediante la
especificación de la estructura de datos y las operaciones a
realizar, para desarrollar el pseudocódigo requerido.

La programación estructurada plantea que un problema se puede dividir en problemas más


simples y la suma de la solución de cada problema resuelve el problema en general, a esto se
conoce modularización.

El criterio de modulación de un problema es identificar tareas similares o específicas, de tal


forma que un fragmento de pseudocódigo lo pueda resolver; dicho fragmento lo describiremos
en un procedimiento o una función, el cual es un módulo que realiza una tarea única y específica.

De igual forma tendremos que definir el alcance de un módulo y las variables que utiliza, ya
que un módulo que no tiene relación directa con el que realiza cierta tarea no podrá ser llamado,
esto nos lleva a la siguiente afirmación:

Una mala modularización implica una mala resolución del problema implicando un mal uso de
una metodología de programación estructurada.

La unidad o librería no es más que un módulo externo que realiza una serie de tareas bien
definidas, las cuales pueden ser referenciadas por cualquier pseudocódigo que las requiera; ya
que generalmente siempre se desea la impresión de la información procesada, explicaremos la
forma de definirlo a nivel de pseudocódigo.

En la actualidad existen varios lenguajes de programación con una tendencia estructurada,


por lo cual consideramos importante que conozcas algunos de ellos. Actualmente la metodología
de programación orientada a objetos es la más usada para generar aplicaciones gráficas, ya
que al definir una estructura de datos de tipo objeto, la podremos manipular al definir una
serie de posibles operaciones que puede realizar aparte de un evento.

Definiremos un objeto a partir de describir qué son las clases, los atributos, los datos
estructurados, las operaciones y los métodos asociados a ellos, de tal forma que al seleccionar
un objeto se realicen todas las series de instrucciones que tiene asociados.

Es importante que trates de identificar el alcance de esta metodología, ya que actualmente la


tendencia de programación es hacia objetos.

61
Identificarás la metodología de la programación orientada a objetos para desarrollar soluciones
a problemas específicos; de igual modo revisarás algunos lenguajes de programación con esta
tendencia. A continuación te presentamos el siguiente esquema de la unidad:

Unidad V. Programación orientada a objetos

Tiene
especificaciones
de
Objeto Pseudocódigo

Pertenece a una Utiliza Utiliza Realiza ciertas

Clase Datos estructurados Métodos Operaciones

Subclase

62
¿CÓMO APRENDO?

1. ESPECIFICACIONES PARA EL PSEUDOCÓDIGO

Objetivo:

Identificar el pseudocódigo requerido para describir la solución en términos de la programación orientada


a objetos, a través de revisar la forma de declarar las clases, subclases, estructura de los datos y objetos,
para la correcta especificación de los diferentes elementos.

Un objeto lo podemos definir como la abstracción de los entes o seres vivos y las cosas inertes
del mundo real.
La programación orientada a objetos es una técnica para el desarrollo de software más amigable
con el usuario, de tal forma que está más determinada por la organización estructural que por
las preposiciones de lenguaje máquina o de alto nivel, tales como estructuras de datos o módulos.
La programación orientada a objetos fue uno de los primeros sistemas de programación que
reconoció que el cambio no sólo era inevitable, sino deseable, en estricto sentido, es aquella
programación que envía mensajes entre objetos que no se conocen.
Los objetos que comparten ciertas características se pueden agrupar en colecciones, un ejemplo
de esto son los objetos que se presentan en la siguiente pantalla:

Barra
de
desplazamiento

Cajas de
chequeo

Botones
Donde cada uno de los objetos responde a los mensajes que envía el usuario en forma de teclas
oprimidas o clics de ratón y cosas distintas sucederán dependiendo de cuál es el objeto que se
apunta cuando se envía un mensaje.
Los objetos encapsulan datos y procedimientos en una sola entidad y pueden ser considerados
como tareas o procesos.
Los programas orientados a objetos con frecuencia se describen como simulaciones, debido a
que los objetos en el programa por lo general imitan el comportamiento de sus componentes
en el mundo real.
Las clases equivaldrían en la programación estructurada a la declaración de tipos de datos, un
mensaje es una llamada entre objetos y un método es la serie de instrucciones que realiza el
objeto al ser llamado.

63
Un objeto combina estructura y comportamiento en una simple entidad. El término orientado
a objetos significa que organizamos el software como una colección de objetos descritos que
incorporan tanto estructura como comportamiento.

Los lenguajes de programación orientado a objetos, son útiles al remover restricciones debido
a la inflexibilidad de los lenguajes tradicionales. El desarrollo orientado a objetos es
fundamentalmente una nueva forma de pensar y no una revisión de programación.

A continuación se presentan las actividades que deberás realizar; en caso de cualquier duda o
problema consulta a tu asesor.

Actividades de aprendizaje Recursos Productos


Elabora una ficha de contenido Joyanes Aguilar, Luis. Ficha de contenido sobre la
sobre la programación orientada Op. Cit p.p. 70-71 programación orientada a
a objetos. objetos.
Joyanes Aguilar, Luis.
Realiza una consulta bibliográfica Op. Cit p.p. 76-83, Ficha de contenido sobre las
sobre los atributos o 88-91 características de la
características de los objetos programación orientada a
(objetos, datos estructurados y objetos.
métodos). Elabora una ficha de
contenido.

Investiga sobre las operaciones Cuadro sinóptico sobre las


básicas entre objetos. Realiza un Joyanes Aguilar, Luis. operaciones básicas entre
cuadro sinóptico. Op. Cit p.p. 20-23, 91-97 objetos.

Realiza el ejercicio 37. Ejercicio 37 resuelto.

Manual de ejercicios y prácticas.

2. PROCESO PARA EL DESARROLLO DE SOLUCIONES

Objetivo:

Comprender la metodología de la programación orientada a objetos, mediante la revisión de cada una


de sus etapas, para la solución de problemas.

La metodología de modelado de objetos tiene las siguientes etapas.

Análisis. El modelo de análisis es una abstracción precisa y concisa de los requerimientos del
usuario sobre lo que realizará el sistema y no como lo hará. Un buen modelo puede ser entendido
y criticado por expertos de la aplicación que no son programadores.

Abstracción. Consiste en enfocar aspectos esenciales de una entidad e ignorar las propiedades
accidentales.

Diseño del sistema. El objetivo es organizar en subsistemas basados en la estructura del


análisis y la arquitectura propuesta.

64
Diseño de objetos. El diseñador adiciona detalles al modelo del diseño de acuerdo a la estrategia
establecida durante el diseño del sistema.

Implementación. La programación debe ser relativamente menor y una parte mecánica del
ciclo de desarrollo, porque las decisiones difíciles deben hacerse durante el diseño.

Métodos

Un método es la implementación de una operación para una clase. Sin embargo, cada método
debe ser implementado por diferentes piezas de código y dependen sólo de las clases del objeto.

Una clase está representada por una caja, la cual puede tener tres regiones: nombre de la clase,
lista de atributos y lista de operaciones. Cada nombre de atributo puede ser distinguido por
detalles opcionales. Tales como lista de argumentos y tipos resultados.

Sugerencias prácticas. No inicies la construcción de un modelo de objetos solamente juntando


clases, asociaciones y herencia. Primero debes entender el problema y resolverlo. El contenido
de un modelo de objetos se da por la relevancia de la solución. Busca hacer tu modelo simple,
evita complicaciones. Selecciona los nombres de los objetos cuidadosamente, ya que deben ser
descriptivos. Seleccionar nombres apropiados es uno de los más difíciles aspectos del modelado
de objetos.

A continuación te presentamos los objetos predefinidos de Visual Basic, así como los atributos
y los sucesos referidos a un evento u operación del objeto.
Atributos del botón

Objetos predefinidos

Botón

Botón de opción

65
Procedimiento de suceso

Suceso

Codificación de la
secuencia de
acciones que realiza
en objeto.

A continuación se te presentan las actividades que deberás realizar para cubrir con este tema.

Actividades de aprendizaje Recursos Productos

Investiga sobre la forma de Joyanes Aguilar, Luis. Ficha de contenido sobre


asignar un procedimiento de Op. Cit, p.p. 87. procedimiento de sucesos de
sucesos para objetos predefinidos. un objeto.
Joyanes Aguilar, Luis.
Realiza una consulta bibliográfica Op. Cit, p.p. 544-551 Ficha de contenido sobre las
sobre el proceso que se requiere etapas para desarrollar
para desarrollar soluciones, soluciones con una
utilizando una metodología de metodología de
programación orientada a objetos. programación orientada a
Define etapas. Realiza una ficha objetos.
de contenido. Manual de ejercicios y prácticas.

Realiza el ejercicio 38. Ejercicio 38 resuelto.

66
3. LENGUAJES DE PROGRAMACIÓN ORIENTADA A OBJETOS

Objetivo:

Identificar los lenguajes de programación orientada a objetos que existen actualmente, mediante la
revisión general de sus características, para familiarizar al estudiante con el nombre de varios lenguajes
de programación.

Existe una gran gama de lenguajes de programación que tienen esta tendencia de programación
orientada a objetos, dado que es un lenguaje donde el programador puede crear aplicaciones
con un ambiente gráfico, el cual sea 100% amigable al usuario y fácil de entender.

La evolución de todos los lenguajes de programación han tendido hacia este tipo de lenguaje,
permitiendo que un lenguaje estructurado como lo es Turbo Pascal, incorpore en este momento
herramientas para poder programar a un nivel de objetos. Algunos lenguajes de programación
estructurada que incorporan estas herramientas de programación orientada a objetos son:
Smalltalk, Turbo Pascal C++, entre otros.

A continuación se presenta la actividad que deberás realizar; en caso de cualquier duda o


problema consulta a tu asesor.

Actividades de aprendizaje Recursos Productos


Investiga sobre los principales Joyanes Aguilar, Luis. Cuadro comparativo
lenguajes de programación orientada Op. Cit pp. 5-6, 24-32. entre lenguajes de
a objetos. Elabora un cuadro programación orientada a
comparativo. objetos.

67
¿QUÉ HE APRENDIDO?

A continuación te presentamos una pequeña evaluación de esta unidad para que valores tus
avances logrados hasta el momento.
1. Lee con atención cada uno de los siguientes conceptos y coloca dentro del paréntesis la letra
de la definición que le corresponda.
Concepto Definición
( )Clase. a) Cuando en clases diferentes, la misma operación se comporta de
manera diferente.
( )Objeto. b) Es compartir los atributos y operaciones entre clases basadas en
una relación.
( )Herencia. c) Conjunto de objetos con propiedades similares, comportamiento
y semántica común.
( )Polimorfismo. d) Es la abstracción de los entes o seres vivos y las cosas inertes
del mundo real.

2. Lee con atención cada una de las siguientes proposiciones y coloca dentro del paréntesis una
V si es verdadera o una F si es falsa.
( ) La programación orientada a objetos es una técnica para el desarrollo de software más
amigable con el usuario.
( ) Smalltalk, Turbo Pascal y C++, no son lenguajes de programación orientada a objetos.
( ) Los objetos que comparten ciertas características se pueden agrupar en colecciones.
( ) Un método es la implementación de una operación para un objeto.
3. Lee con atención cada una de las siguientes etapas de la metodología para el modelado de
objetos y ordénalas colocando el número correspondiente dentro del paréntesis (inicia con
el número 1).
( ) Implementación.
( ) Análisis.
( ) Diseño de objetos.
( ) Diseño del sistema.

4. Lee cuidadosamente las siguientes preguntas y contéstalas.


a) ¿Qué es un objeto?
b) ¿Cuál es la filosofía de la programación orientada a objetos?
c) ¿Qué es un suceso?
d) ¿Cómo se asocia un objeto a un procedimiento de suceso?
e) ¿Cuáles son los atributos de un objeto?
5. Del problema 5 de la primera unidad ubicado en la sección Qué he aprendido, define qué
datos y procedimientos se requieren para tratar como objetos al estacionamiento, al chofer
y al registro de entradas.

68
QUIERO SABER MÁS

Tomados de Curso de IBM de programación. Introducción a la programación en 32 bits. (México, D.F.), núm. 1, pp. 16-20.

69

You might also like