Vous êtes sur la page 1sur 27

Unidad lll Flujos de entrada y salida (E/S)

1. Flujos.
Introduccin:
Todos los programas realizados a lo largo de esta unidad de aprendizaje, obtienen la informacin
(datos) necesaria para su ejecucin de la entrada estndar de la computadora (teclado) y muestran
el o los resultados de dicha ejecucin en la salida estndar de la computadora (pantalla). No
obstante, hay situaciones en las que es necesario que el programa reciba o envi informacin desde
o hacia un archivo, el cual puede ser almacenado en el disco duro de la computadora. Para hacer
esta tarea posible, el Lenguaje de programacin C++ prove al programador una herramienta eficaz
y sencilla de utilizar llamada Flujos.
Nota: Antes de empezar este apartado es importante que se te recuerde que tienes que realizar,
editar y compilara todos los cdigos fuente que se te vayan explicando.
La comunicacin entre un programa escrito en Lenguaje C++ y el origen o el destino de la
informacin con que este programa realiza su trabajo se realiza mediante un flujo de informacin.
Se le llama flujo de informacin (stream) a un objeto cuyo trabajo es servir como intermediario entre
el programa y el origen o el destino de la informacin es por medio de este objeto que el programa
puede leer o escribir informacin sin importar hacia donde se dirige o el lugar de donde proviene
El Lenguaje de programacin C++ define, en su espacio de nombres std ofrece -varias clases de
objetos, mismas que poseen atributos y mtodos que permiten escribir en un archivo o leer desde un
archivo. Enseguida se muestran los nombres y una breve descripcin de dos de estas clases de
objetos con que cuenta el Lenguaje de programacin C++.
a) Clase ofstream
La clase de objetos ofstream es una clase derivada a partir de la clase de objetos llamada ostream.
ofstream se especializa en crear y abrir un archivo y escribir dentro de l, esta clase de objetos
posee varios mtodos, uno de los ms importantes es el siguiente:
Nombre
Sintxis
Descripcin
voidopen(constchar*,int=ios::out,
Open
Permite crear y abrir un
int=filebuf::openprot);
archivo, para escritura.

Para poder utilizar el mtodo Open es necesario declarar un objeto que pertenezca a la clase de
objetos ofstream, como se muestra enseguida:
ofstream objeto;

Un objeto perteneciente a la clase de objetos ofstream acta como intermediario entre el programa y
el destino de la informacin, en el caso de un objeto creado a partir de la clase ofstream el destino de
la informacin es un archivo que se almacenar en el mismo directorio que el archivo con extincin
.cpp que contiene el cdigo fuente del programa.
Para crear un flujo de informacin hacia un archivo por medio de un objeto de la clase ostream se
deben escribir las siguientes lneas de cdigo:
objeto.open("ARCHIVO.doc",ios::app);
objeto<<" Tu primer archivo"<<endl;
Como puedes observar por medio del operador punto (.) se invoca al mtodo llamado open(),
perteneciente a un objeto, como argumento de este mtodo se escribe el nombre del archivo y su
extensin en medio del operador comilla doble (), separado por medio del operador coma (,) se
accedi al objeto llamado app de la clase de objetos llamada ios, por medio del operador resolucin
de mbito (::), es muy importante acceder a dicho objeto ya que de esta forma se crear un archivo
llamado ARCHIVO con extensin .doc (este archivo se abrir con la aplicacin Microsoft Word), y
abrir el archivo creado, el programa buscar el final del archivo y enseguida por medio de objeto y
el operador de insercin se escribir la cadena de texto: Tu primer archivo (sin la comilla doble).
Observa que para escribir dentro del archivo con extensin .doc creado no se utiliz al objeto cout
pero si al operador de insercin (<<).
Depus de escribir dentro del archivo creado es necesario cerrar el archivo, para realizar esta accin
se utiliza al mtodo close() de esta forma:
objeto.close();
El mtodo close() es invocado por medio del operador punto (.) y su trabajo es cerrar el archivo
llamado ARCHIVO con extensin .doc
El cdigo fuente del programa descrito anteriormente es el siguiente:

Se te invita a observar el siguiente video, el cual contiene imgenes de la compilacin y ejecucin


del cdigo fuente mostrado anteriormente, puedes verlo las veces que desees, as como pausarlo o
adelantarlo a tu gusto, da clic en el siguiente vnculo para que se te muestre:

Video 1
Como puedes observar, es muy sencillo crear archivos y almacenar informacin dentro de los
mismos utilizando el Lenguaje de programacin C++.
b) Clase fstream
La clase de objetos fstream es una clase derivada a partir de la clase de objetos llamada iostream,
esta clase de objetos se especializa en leer dentro de un archivo abierto para este propsito. Esta
clase de objetos posee varios mtodos, uno de los ms importantes es el siguiente:
Nombre Sintais

Descripcin

Open

Permite
abrir
un
archivo, para lectura.

void open(const char *, int, int = filebuf::openprot);

Para poder utilizar el mtodo Open , es necesario declarar un objeto que pertenezca a la clase de
objetos fstream, como se muestra a continuacin:
fstream objeto2;
Recuerda que la clase de objetos fstream permite implementar un flujo (stream) para abrir un archivo
y leer dentro el contenido del mimo. Un objeto perteneciente a la clase de objetos fstream acta
como intermediario entre el programa y el origen de la informacin, en el caso de un objeto creado a
partir de esta clase fstream el origen de la informacin es un archivo almacenado en el mismo
directorio que el archivo con extensin .cpp que contiene el cdigo fuente del programa.
Para crear, abrir y leer un archivo por medio de un objeto de la clase fstream se deben escribir las
siguientes lneas de cdigo:
char cadena[81];
objeto2.open("ARCHIVO.doc",ios::in);
while(objeto2.getline(cadena, 81) != NULL)
{ cout << cadena << endl; }

Explicacion:
La primera lnea e cdigo declara un arreglo de caracteres de tamao igual a ochenta y uno llamado
cadena, este arreglo de caracteres recibir y almacenar la informacin (caracteres) proveniente de
un archivo ya existente.
En la segunda lnea de cdigo puedes observar que por medio del operador punto ( .) se invoca al
mtodo llamado open(), perteneciente a objeto2, como argumento de este mtodo se escribe el
nombre del archivo y su extensin en medio del operador comilla doble (), este es el archivo que se

abrir con el objetivo de que el programa escrito en Lenguaje C++ lea su contenido, separado por
medio del operador coma (,) se accedi al objeto llamado in de la clase de objetos llamada ios, por
medio del operador resolucin de mbito (::), es muy importante acceder a dicho objeto ya que de
esta forma el archivo llamado ARCHIVO con extensin .doc se abrir en modo de solo lectura.
Hasta este momento el programa nicamente ha abierto el archivo llamado ARCHIVO.doc, las lneas
de cdigo implementadas para leer el contenido de este archivo son las escritas en la tercera y
cuarta lnea de cdigo, estas son implementadas por medio de la sentencia de control while, misma
que invoca al mtodo llamado getline() de objeto2 a travs del operador punto (.), este mtodo leer
el contenido de ARCHIVO.doc y lo almacenar dentro del arreglo de caracteres llamado cadena,
mientras el mtodo getline() no encuentre el final del archivo se estar imprimiendo en la salida
estndar de la computadora el contenido de ARHIVO.doc.
Despus de que el programa escrito en Lenguaje C++ lea el archivo es necesario cerrar el archivo,
para realizar esta accin se utiliza al mtodo close() de la siguiente forma:

objeto2.close();
El mtodo close() es invocado por medio del operador punto (.) y su trabajo es cerrar el archivo
llamado ARCHIVO con extensin .doc
El cdigo fuente del programa descrito anteriormente es el siguiente:

Se te invita a observar el siguiente video, el cual contiene el resultado de la compilacin y ejecucin


del cdigo fuente que se te acaba de explicar, puedes verlo las veces que desees, as como pausarlo
o adelantarlo a tu gusto, da clic en el siguiente vnculo para que puedas verlo:

Video 2
Como puedes observar, es muy sencillo crear archivos y almacenar informacin dentro de estos y
posteriormente leer esta informacin en el Lenguaje de programacin C++, con lo cual los programas
escritos en este lenguaje pueden tener otra fuente de de entrada de informacin diferente al teclado
de la computadora.
Si deseas saber ms acerca de todos los mtodos de la clase de objetos ofsream, puedes revisar el
siguiente material, da clic en el siguiente hipervnculo para lo puedas ver: Biblioteca de c++

Ejercicio: AGENDA:

Para ejemplificar lo anteriormente explicado se har el programa de una agenda personal, dicha
agenda guardar en un archivo (que a su vez se almacenar en el disco duro de la computadora con
extensin .doc) la siguiente informacin indicada en pasos:
Nota: La realizacin de esta agenda ser compartida, es decir, una parte se explicar y otra la
tendrs que elaborar t, por lo que es necesario que sigas realizando, editando y compilando cada
cdigo que se vaya mostrando, revisa y toma en cuenta los 8 pasos que se te presentan ya que
estos van a servir de base para realizar el cdigo fuente, cabe mencionar que la realizacin de estos
pasos no va a ser consecutiva, es decir, no tendr la continuidad que se muestra a continuacin,
ahora s, estos son los pasos:.
Paso 1. Datos personales:
Son los datos que se van a necesitar para hacer el programa, y son:

Nombre.
Apellido paterno.
Apellido materno.
Telfono.

Fecha de nacimiento:

Da.
Mes.
Ao.

Enseguida se te explicar brevemente el funcionamiento y las caractersticas que debe tener el


programa:
Paso 2. La apariencia del men de inicio que se desplegar en la pantalla de la computadora es el
siguiente:

Como puedes observar el programa debe desplegar en la pantalla de la computadora un men de


opciones, con el objetivo de que el usuario del programa escoja la accin que el programa debe
realizar.
Paso 3. Si el usuario del programa escoge la opcin A, entonces se desplegar en pantalla la
siguiente interface, la cual solicitar la informacin que se desea almacenar en la agenda personal,
el usuario debe ingresar desde la entrada estndar de la computadora la informacin que el
programa le solicite:

Paso 4. Despus de que el usuario del programa ingrese el ao de nacimiento, el programa volver
a mostrar el men de opciones, es decir la primera interface, de esta forma:

Paso 5. En caso de que el usuario del programa escoja la opcin B, el programa debe desplegar la
interface que se muestra enseguida. Esta pantalla mostrar el contenido del archivo llamado
AGENDA.doc. el programa leer el contenido del archivo antes mencionado, este archivo debe ser
generado por el programa, toda vez que se ejecut la opcin A del men de opciones.

Paso 6. Despus de mostrar la informacin antes mencionada y presionar cualquier tecla en la


entrada estndar, se volver a mostrar la primer interface, en donde se despliega el men de
opciones, de esta forma:

Paso 7. En el caso de que el usuario del programa escoja la opcin C. El programa desplegara la
siguiente interface:

Esta interface indicar que el usuario decidi salir de la aplicacin. Y despus de presionar cualquier
tecla desde la entrada estndar de la computadora, el programa terminara.
Paso 8. En el caso de que el usuario del programa introduzca una opcin que no est disponible en
el men de opciones, el programa desplegara el siguiente mensaje en la pantalla de la computadora:

En este caso el usuario del programa deber presionar cualquier tecla en la entrada estndar de la
computadora y enseguida el programa volver a desplegar la primer interface, as el usuario tendr
la posibilidad de escoger una opcin nuevamente.
Nota: Recuerda que el programa, al ejecutar la opcin A debe generar un archivo con extensin .doc
llamado AGENDA, este archivo se almacenar en el disco duro de la computadora, dentro de este
archivo el programa escribir toda la informacin que el usuario del programa introduzca desde la
entrada estndar de la computadora tantas veces como se ejecute la opcin A del men de
opciones. Enseguida se muestra una imagen que ejemplifica esto:

Realizando la AgEnDa

Una alternativa realizar la captura de los datos personales y la fecha de nacimiento (paso 1) es
declarar dos estructuras, una que almacene los datos personales, y la otra para almacenar los datos
referentes a la fecha de nacimiento. Enseguida se muestra el cdigo fuente necesario para que se
pueda declarar y definir estas dos estructuras y posteriormente se dar la explicacin del mismo:

Explicacin:
Declarar dos estructuras permitir almacenar en sus miembros (recuerda que estos son pblicos por
default) la informacin requerida. La primer estructura que se declar se llama fecha, posee tres
miembros de tipo int, dia, mes y anyo respectivamente, estos tres miembros almacenarn la
informacin referente a la fecha de nacimiento solicitada. Esta estructura tambin desempear el
trabajo de ser miembro de la segunda estructura declarada.
La segunda estructura que se declar se llama ficha, esta posee tres miembros de tipo string,
llamados nombre, apellido1 y apellido2 respectivamente, dichos miembros almacenarn la
informacin referente a: nombre, apellido paterno y apellido materno requeridos. Adems posee un
miembros de tipo unsigned long llamado telfono, el cual almacenar la informacin referente al
telfono, adems posee un miembro llamado fecha_nacimiento de tipo fecha (la estructura fecha es
a su vez miembro de ficha) evidentemente este miembro almacenara la informacin referente a la
fecha de nacimiento.

Posteriormente, dentro de la funcin principal del programa se deber declarar un objeto


perteneciente a la estructura llamada ficha, este objeto deber tener la capacidad de almacenar los
datos personales y la fecha de nacimiento necesarios para la agenda personal que se est
realizando (indicados en el paso 1).

Muy bien, ahora es tu turno para continuar realizando la Agenda personal, por favor realiza la
siguiente actividad, no olvides que se va a retomar el cdigo fuente explicado hasta este momento
de la agenda.

Actividad de aprendizaje 9. FlUjOs


Ahora que conoces la forma en que el Lenguaje de programacin C++
permite al programador utilizar las clases de objetos ofstream y fstream
para manipular flujos de entrada y salida de informacin, realiza la
siguiente actividad de aprendizaje, la cual tiene por objetivo que practiques
la declaracin de objetos pertenecientes a las clases ofstream y fstream,
mismos que servirn como intermediarios entre un programa escrito en
Lenguaje C++ y un archivo creado y almacenado en el disco duro de la
computadora.
Instrucciones:
1. Retoma el cdigo fuente de la agenda personal que se te explic
y aade las lneas de cdigo necesarias para realizar lo que se
indica en los pasos 2, 3 y 4 de la elaboracin de la agenda
(observa las imgenes respectivas para que sepas de que se est
hablando).
2

Depura y compila el cdigo fuente completo resultante y explica

detalladamente en cada una de las lneas de cdigo el funcionamiento de las mismas.

3 Debes enviar tu archivo hasta que haya sido compilado, es decir

que Dev C++ no te haya marcado error, de lo contrario no se


tomar esta actividad como vlida. El archivo que debes subir a la
plataforma es el cdigo fuente, es decir el archivo con extensin .cpp que se realiz.
4 Si tienes problemas para la realizacin de esta actividad ingresa al Foro 1. AgEnDa. y
comparte con tus compaeros tus dudas para que te ayuden a resolverlas o si puedes
apyalos para que ellos resuelvan los problemas que se les presentan, recuerda que
trabajar en equipo puede ayudarte para aprender mejor, tambin puedes acudir con tu
asesor(a), el(ella) te apoyar con mucho gusto.

5 Cuando tengas listo tu archivo gurdalo en tu PC y envalo con tus


datos
en
el
siguiente
formato:
apellidopaterno_materno_nombre_actividadnumero
Esta actividad tiene un valor de 0 puntos

Foro 1. AgEnDa.
Este foro es para que dialogues con tus compaeros y se apoyen en la
solucin de los problemas que surjan a lo largo del desarrollo de las
actividades de aprendizaje 9 y 10.
Instrucciones:
1. Si tienes alguna duda o problema plantala en este foro para que los
compaeros que puedan y sepan la respuesta te ayuden en su
solucin.
2. Por otro lado, si t conoces la forma de apoyar a alguno de tus
compaeros para resolver algn problema que presente en la
realizacin de su actividad, apyalo para que pueda seguir avanzando
en la construccin de su conocimiento, recuerda que las respuestas y
ayuda que des deben ser siempre de manera respetuosa.
3. Si hay alguna cuestin que nadie sepa, puedes acudir a tu asesor, l te
va a orientar para lograr tu cometido.
4. Es muy importante mencionarte que debes esperar a que tu asesor
abra el foro, despus de que l lo haga puedes empezar la actividad, si

alguien participa fuera de la apertura del asesor no se tomar en


cuenta la participacin.
5. La participacin en este foro ser evaluada por tu asesor.
Esta actividad tiene un valor de 4 puntos

Seguramente al realizar la Actividad de aprendizaje 9. FlUjOs decidiste


que para mostrar la interface solicitada en paso 2 la forma ms conveniente
es implementando la sentencia de control switch, con la cual fcilmente el
usuario del programa puede escoger una opcin de un men de opciones.
Continuando con la realizacin de la agenda personal, a continuacin se te
explicarn las lneas de cdigo necesarias para realizar las acciones
indicadas en los pasos 7 y 8 , posteriormente se dar la explicacin de las
mismas, recuerda e integrarlas al cdigo fuente que has estado elaborando,
posteriormente volvers a realizar una parte del cdigo fuente:

Explicacin:
Para dar solucin a las necesidades planteadas en
los pasos 7 y 8 se propone declarar el caso C (case
'C':) y el caso default (default:). En el primero caso (case C:) se invoca a la funcin system(cls)
cuyo trabajo es limpiar la pantalla de la computadora, es decir borrar el texto que previamente se
imprimi en la salida estndar. Enseguida se muestra en la pantalla de la computadora la cadena de
caracteres Decidiste salir, por medio del objeto cout y su operador de incisin (cour <<). Por ltimo
se escribi la sentencia de control break; cuyo trabajo es romper la ejecucin de la sentencia de
control switch y terminar as la ejecucin del programa.
En el segundo caso (default:) se muestra en la pantalla de la computadora la cadena de caracteres
Es una opcin no valida, por medio del objeto cout y su operador de incisin (cour <<). En seguida
se invoca a la funcin system (PAUSE) cuyo trabajo es realizar una pausa en la ejecucin del
programa, hasta que se presione cualquier tecla en la entrada estndar de la computadora.
Enseguida se escribi la sentencia de control goto INICIO; cuyo trabajo es el de redireccionar el flujo
de ejecucin del programa hacia el comienzo del programa donde se debi escribir la etiqueta

INICIO:, Enseguida se muestra una sugerencia del lugar en donde se debe escribir la etiqueta
INICIO y la forma de escribirla.:

Actividad de aprendizaje 10. Ms FlUjOs


Ahora que conoces la forma en que el Lenguaje de programacin C++
permite al programador utilizar las clases de objetos ofstream y fstream
para manipular flujos de entrada y salida de informacin, realiza la
siguiente actividad de aprendizaje, la cual tiene por objetivo que practiques
la declaracin de objetos pertenecientes a las clases ofstream y fstream,
mismos que servirn como intermediarios entre un programa escrito en
Lenguaje C++ y un archivo creado y almacenado en el disco duro de la
computadora.
Instrucciones:
1 Contina escribiendo el cdigo fuente del programa propuesto en el
ejercicio anterior llamado AGENDA, y aade las lneas de cdigo
necesarias para realizar lo que se te pide En el paso 5 de la Agenda
personal.
2

Depura y compila el cdigo fuente completo resultante y explica

detalladamente en cada una de las lneas de cdigo el funcionamiento de las mismas.


6 Debes enviar tu archivo hasta que haya sido compilado, es decir

que Dev C++ no te haya marcado error, de lo contrario no se


tomar esta actividad como vlida. El archivo que debes subir a la
plataforma es el cdigo fuente, es decir el archivo con extensin .cpp que se realiz.
7 Recuerda que si tienes dudas puedes ingresar al Foro 1. AgEnDa. Dnde tus
compaeros te apoyaran en la construccin de tu aprendizaje para la realizacin de

esta actividad, tambin puedes acudir con tu asesor(a), el(ella) te apoyar con mucho
gusto y aclarar tus dudas.

8 Para apoyarte en la realizacin de esta actividad revisa el archivo

ejecutable AGENDA.EXE en el cual se muestra el programa


completo funcionando, da clic en el siguiente vnculo para que lo
puedas ver:
AGENDA.EXE
9 Cuando tengas listo tu archivo gurdalo en tu PC y envalo con tus
datos
en
el
siguiente
formato:
apellidopaterno_materno_nombre_actividadnumero
Esta actividad tiene un valor de 1 puntos

Conclusin.
Se le llama flujo de informacin a un objeto cuyo trabajo es servir como intermediario entre el
programa y el origen o el destino de la informacin, es decir, por medio de este objeto es que el
programa puede leer o escribir informacin desde o hacia un archivo.
Las clases de objetos ofstream y fstream, poseen atributos y mtodos que permiten escribir en un
archivo o leer desde un archivo.

2. Liberia winbgim.h

Introduccin
Hasta este momento la apariencia de todas las aplicaciones que has desarrollado a lo largo de esta
unidad de aprendizaje, es muy austera, nicamente muestran instrucciones o informacin en forma
de texto, en la pantalla de la computadora, pero es posible crear grficos que hagan ms interactiva
y atractiva la apariencia de un programa escrito en Lenguaje C++, para hacer esto posible es
necesario instalarle una nueva librera al IDE Dev C++, el nombre de esta librera es winbgim.h.

Aqu termina la introduccin.


La librera winbgim.h fue creada originalmente por Konstantin Knizhnik's winbgi shareware y
posteriormente modificada por Mark Richardson y Michael Main, esta librera emula (imita) el
funcionamiento de la librera llamada graphics.h de Borland C++, la cual tiene un costo monetario.
Una de las ventajas de utilizar la librera winbgim.h en lugar de grapics.h es implementar de forma
ms sencilla las funciones del mouse, por ejemplo las funcioners: mousex() y mousey(), las cuales

devuelven la coordenada de la posicin en x o en y del mouse, otra ventaja de la utilizacin de esta


librera es que permite al programador crear aplicaciones grficas en compiladores GNU tales como
el Entorno de desarrollo Integrado Dev C++ de la misma manera como se crean en el compilador
comercial Borland C++.
Como se mencion anteriormente, para trabajar con la librera winbgim.h es necesario instalarla en
el IDE Dev C++, para realizar esta accin es necesario que descargues el archivo ejecutable llamado
Install Winbgim for Dev C++ (lo encuentras en el apartado recursos de la pgina principal de esta
unidad de aprendizaje), este archivo se encargara de instalar y configurar la librera winbgim.h, una
vez que hayas descargado el archivo Install Winbgim for Dev C++ observa el video tutorial que se
presenta enseguida, el cual te mostrar la forma de instalar y configurar la librera winbgim.h, y la
forma en que se debe generar un proyecto para crear una aplicacin grafica en el Dev C++. Pon
mucha atencin a la forma en que se debe crear un proyecto para generar una aplicacin grafica, ya
que este mismo procedimiento lo realizars al momento de realizar los programas expuestos en
esta unidad temtica.
Da clic sobre el siguiente vnculo para que veas el video tutorial: Tutorial
Como pudiste observar, el video tutorial muestra que para crear un proyecto que realice una
aplicacin grfica lo primero que se debe hacer es guardar el archivo con extensin .dev que es el
archivo que almacenar la informacin referente al proyecto de la aplicacin grafica, as mismo,
tambin observaste que despus de dar clic sobre el botn Guardar se abre un archivo con
extensin .cpp ste es el archivo que contendr el cdigo fuente de la aplicacin grafica, el cual ya
tiene un programa escrito en Lenguaje C++, que es el Demo de una aplicacin grafica, para observar
este programa en ejecucin es necesario compilar este cdigo fuente. El resultado de realizar esta
tarea es el siguiente:

En la imagen anterior puedes observar que se desplegaron dos ventanas, la correspondiente a la


esquina superior izquierda, es la ventana en modo grafico que produce la librera instalada
anteriormente, la otra ventana es la ya conocida ventana generada por el Lenguaje C++.
Se te recomienda explorar el cdigo fuente de la aplicacin demo provista por la librera
winbgim.h (el cual es muy sencillo), para que puedas deducir el funcionamiento del mismo. Si
despus de explorar el cdigo fuente demo no lo entiendes, no te preocupes enseguida se
explicar a detalle la forma de utilizar las funciones declaradas y definidas dentro de la librera
winbgim.h.
Para comenzar a explicarte la forma de utilizar la librera winbgim.h se te invita a realizar la siguiente
aplicacin grafica, que es muy sencilla, la cual muestra en una ventana grafica una lnea, este
programa terminar al presionar cualquier tecla desde la entrada estndar de la computadora.
El siguiente es el progrma:

Explicacin:

En la primer lnea de cdigo se incluye la librera winbgim.h a travs de la directiva del preprocesador
#include<>. Con esta accin se logra que las funciones declaradas y definidas dentro de esta librera
se incluyan en el cdigo fuente, antes de que este sea compilado.
Enseguida se encuentra la declaracin y definicin de la funcin principal del programa, es decir la
funcin main(), la cual define el trabajo que realizara la aplicacin grfica.
Despus de la llave de apertura que delimita las lneas de cdigo que pertenecen a la funcin main()
se invoc a la funcin initwindow() (recuerda que esta funcin fue declarada y definida dentro de la
librera winbgim.h,), que se encarga de abrir (desplegar) una ventana grfica.
initwindow() acepta dos argumentos de tipo entero, los cuales indican el tamao en pixeles de la
ventana grfica, en este ejemplo se indico que se abrir una ventana de 400 x 300 pixeles.
En la siguiente lnea, en el cdigo fuente se invoco a la funcin moveto() (a la cual se le dieron los
parmetros 0,0), esta funcin se encarga de mover el cursor de la ventana grfica, es decir,
posicionar el cursos en los parmetros indicados, los cuales indicarn la coordenada a donde se
mover el cursos de la ventana grfica.
Nota: El origen del eje coordenado de la ventana grafica se encuentra en la esquina superior
izquierda de la misma.
En este ejemplo se indic que el cursor de la pantalla grafica se movi a la coordenada (0,0), es
decir a la esquina superior izquierda de la ventana grafica.
En la siguiente lnea de cdigo, se invoc a la funcin lineto(), la cual se encarga de dibujar una lnea
recta, desde la posicin actual del cursor hasta la coordenada que se le indique por medio de los dos
argumentos que posee, estos argumentos son de tipo entero.
En este ejemplo se indic que se dibujara una lnea recta desde la posicin (0,0) que es la posicin
actual del cursor de la ventana grfica, hasta la coordenada (50,50).
La sentencia de control while escrita en la siguiente lnea de cdigo, se ejecutar continuamente
mientras no se presiona una tecla desde la entrada estndar de la computadora, si en algn
momento se presiona cualquier tecla dejar de ejecutarse y enseguida se invocara la ltima funcin
escrita en este cdigo fuente.
closegraph(), se encarga de cerrar la ventana grfica y al no existir ninguna otra instruccin escrita
antes de la llave de cierre de la funcin main() el programa termina.
El resultado de editar, depurar y compilar este cdigo fuente es el siguiente:

Estas son algunas de las funciones con que cuenta la librera winbgim.h:
Niombre de la funcin

Trabajo desarrollado

void circle (int x, int y, int radius);

Dibuja un circulo con centro en x,y y de radio radius

void cleardevice (void);

Borra la pantalla

void line (int x1, int y1, int x2, int y2);

Traza una lnea desde la coordenada (x1,y2) hasta la coordenada (x2,y2).

void lineto (int x, int y)

Traza una lnea desde la posicin actual de cursor hasta la coordenada (x,y)

void putpixel (int x, int y, int color);

Dibuja un pixel en la coordenada (x,y) de color dado por elnombre en ingles del
color.

void rectangle (int left, int top, int right, int bottom);

Dibuja un rectangulo de esquenas top,left y right,bottom

void setcolor (int color);

Establece el color actual.

int mousex(void)

Retorna la coordenada x del Mouse relativa a la esquina superior izquierda

int mousey(void)

Retorna la coordenada y del Mouse relativa a la esquina superior izquierda

Actividad de aprendizaje 11. Crculo y cuadrado


Ahora que conoces la forma en que el Lenguaje de programacin C++ permite al programador
implementar funciones que manipulan grficos a travs de la librera grafica winbgim.h, realiza la
siguiente actividad de aprendizaje, la cual tiene por objetivo que practiques y analices las funciones
circle(), moveto(), lineto() y rectangle() initwindow() y closegraph().

Instrucciones:
1.
Edita, depura y compila el cdigo fuente que a continuacin se te
muestra:

2.

Explica el funcionamiento del cdigo fuente completo a travs


de comentarios escritos en el cdigo fuente.

Como una forma de ayuda se te presenta el resultado de editar, depurar y compilar este cdigo
fuente es el siguiente:

3.

3.

Debes enviar tu archivo hasta que


haya sido compilado, es decir que Dev C++ no te haya marcado error,
4. Si tienes alguna duda comuncate con tu asesor para que te ayude a aclararla
5. El archivo que debes subir a la plataforma es el que tu asesor te indicara,
6. Cuando tengas listo tu archivo gurdalo en tu PC y envalo con tus datos en el siguiente
formato: apellidopaterno_materno_nombre_actividadnumero
Esta actividad tiene un valor de 4 puntos

Para continuar con la explicacin acerca de la forma de


implementar la librera grafica winbgim.h
se utilizar otra aplicacin grafica, la cual dibujar lneas
rectas a travs del mouse. Enseguida se te muestra el
cdigo fuente del programa que realiza la accin
mencionada anteriormente, y posteriormente se explicar
el mismo:

Explicacion:
En el cdigo fuente se incluy la librera grafica llamada winbghim.h, a travs de la directiva del
preprocesador #include<> enseguida se encuentra la declaracin y definicin de la funcin principal
del programa (main()), la cual define la accin que realizara este programa.
Despus de la llave que delimita las lneas de cdigo que pertenecen a la funcin principal del
programa se declararon cuatro variables de tipo entero llamadas x.y.b y c, a la variable llamada b se
le asigno el valor inicial de 400 y a la variable llamada c se le asigno el valor inicial de b es decir
cuatrocientos. Las variables: x e y no fueron iniciadas con ningn valor.
En la siguiente lnea de cdigo se invoc a la funcin initwindow(), cuya explicacin ya se menciono
anteriormente, a esta funcin se le pasan como argumento las dos variables de tipo entero llamadas
b y c respectivamente, por lo anterior, despus de compilar el cdigo fuente se abrir una ventana
grafica de 400x400 pixeles.
Enseguida se encuentra escrita la sentencia de control while(), la cual permitir que se ejecuten las
siguientes lneas de cdigo, siempre y cuando no se presione ninguna tecla en la entrada estndar
de la computadora:

La primera lnea de cdigo de la imagen anterior invoca a


la funcin mousex(), la cual devuelve la coordenada en x
del puntero del mouse (este valor siempre ser de tipo int), el valor es almacenado en la variable
llamada x.
Enseguida se invoca a la funcin llamada delay() la cual realiza un retardo o pausa en la ejecucin
del programa, el valor de la misma se indica dentro de los parntesis de la funcin y se expresa en
milisegundos, en el ejemplo se realizar un retardo de un milisegundo.
La tercera lnea de cdigo de la imagen anterior invoca a la funcin mousey(), la cual devuelve la
coordenada en y del puntero del mouse(este valor siempre ser de tipo int) el valor se almacenar
en la variable llamada y.
Enseguida se invoca nuevamente a la funcin delay(), explicada anteriormente.
Una vez que en las variables de tipo entero llamadas x e y se tiene almacenado el valor
correspondiente a la coordenada actual del puntero del mouse, se invoca, en el siguiente rengln, a
la funcin llamada lineto(), a la cual se le pasan como argumento las variables x e y, por lo anterior,
esta funcin se encargar de dibujar una lnea recta desde la posicin actual del cursor, en la
ventana grafica (no confundir con el puntero del mouse).
El resultado de editar, depurar y compilar el cdigo fuente completo es el siguiente:

Como puedes observar se dibujo una lnea recta en la ventana grafica (por default siempre
comenzar una aplicacin por primera vez en las coordenadas (0,0), es decir, desde la esquina
superior izquierda de la ventana grafica), hasta la coordenada actual del puntero del mouse, (esto
depende de la posicin del puntero), si llegaras a mover el puntero del mouse mientras se est
ejecutando la aplicacin, podrs ver que se dibujar una lnea siguiendo la trayectoria que realices,
un ejemplo se muestra a continuacin:

Antes de continuar, contesta las siguientes preguntas relacionadas a la explicacin anterior, si tienes
alguna duda, interacta con tus compaeros y tu asesor en el chat 1 para resolverla:
1.- Por qu se dibuja una lnea recta desde la coordenada (0,0), hasta la posicin actual que tenga
el puntero del mouse?.
2.- qu pasa con la posicin del cursor de la ventana grafica si despus de que se realiz una lnea
tu mueves el puntero del mouse.
3.- Cmo se modificara el funcionamiento del programa anterior si se aumenta el retardo o pausa
realizado por la funcin delay(): de la siguiente forma:
delay(50);

Chat 1. Dibujando lneas rectas.


Este chat es para que dialogues en tiempo real con tus compaeros y con tu
asesor, en l puedes compartir las dudas que te hayan surgido al respecto
del programa para hacer lneas, as como en la solucin de las tres
preguntas planteadas anteriormente, el objetivo del mismo es que
socialices el conocimiento para crear aprendizaje colaborativo:
Instrucciones:
1. Tu asesor indicar el da y hora para la realizacin de este chat, l
estar moderando y compartiendo contigo y con tus compaeros este
espacio sincrnico.
2. Si tienes alguna duda con respecto al funcionamiento del programa
para dibujar lneas rectas con el mouse o con alguna de las tres
preguntas arriba planteadas, proponla en este chat para que los

compaeros que puedan y sepan la respuesta te ayuden en su


solucin.
3. Por otro lado, si t conoces la forma de apoyar a alguno de tus
compaeros para resolver algn problema de los antes mencionados,
apyalo para que pueda seguir avanzando en la construccin de su
conocimiento, recuerda que las respuestas que des deben ser siempre
de manera respetuosa.
4. La participacin en este chat ser evaluada por el asesor.
Calificacin por participar en el chat: 5 puntos
Aqu termin la actividad:
Como te habrs dado cuenta es muy sencillo realizar un programa escrito en Lenguaje C++ con una
ventana grafica, ahora muy probablemente puedes crear un programa que calcule y grafique los
resultados de un problema de ingeniera.
Si deseas saber ms acerca de la librera grafica winbgim.h se te recomienda leer la siguiente nota
informativa, esta contiene la explicacin acerca de todas las funciones con que cuenta esta librera y
suficientes ejemplos para ayudarte y profundizar an ms en este tema.
Da clic sobre el siguiente vnculo para que puedas ver la nota: Librera winbgim

Actividad de aprendizaje 12 Analizando y describiendo.


Es momento de que reafirmes conocimientos, por favor realiza la siguiente actividad, la cual tiene
como objetivo que practiques el uso y la implementacin de las funciones con que cuenta la librera
grfica winbgim.h que ya estudiaste.
Instrucciones:
1. A continuacin se te presenta un cdigo fuente, el resultado en pantalla del mismo y un
archivo ejecutable, analiza cuidadosamente cada uno de ellos y despus realiza lo que se te
indica:

El resultado de editar, depurar y compilar este cdigo fuente es el siguiente:

Descarga el archivo ejecutable de este programa dando clic sobre


el siguiente vnculo: Clic
3 Ya que hayas hecho el anlisis de estas tres fases en el diseo del programa retoma el
cdigo fuente anterior, edtalo, compilado, depralo y explica detalladamente en cada una
de las lneas de cdigo el funcionamiento de las mismas, a travs de comentarios. Si no
haces la explicacin de las lneas de cdigo no se te tomar esta actividad como vlida.
4 Debes enviar tu archivo hasta que haya sido compilado, es decir que Dev C++ no te haya
marcado error, de lo contrario no se tomar esta actividad como vlida.
5 El archivo que debes subir a la plataforma es el cdigo fuente, es decir el archivo con
extensin .cpp que se realiz.
6 Cuando tengas listo tu archivo gurdalo en tu PC y envalo con tus datos en el siguiente
formato: apellidopaterno_materno_nombre_actividadnumero

Esta actividad tiene un valor de 4 puntos

Actividad integradora 2. Calculando y graficando


Ha llegado el momento de poner en prctica los conocimientos que has aprendido en esta unidad
temtica, realiza la siguiente actividad, la cual tiene por objetivo que desarrolles aplicaciones grficas
a travs de los mtodos declarados y definidos dentro de la librera grfica winbgim.h, para la
solucin de problemas de ingeniera.
Instrucciones:
1. Realiza un programa escrito en Lenguaje C++ a travs del paradigma de la Programacin
Orientada a Objetos, capaz de calcular la trayectoria de un proyectil lanzado en tiro
parablico.
2. Las especificaciones para el programa son las siguientes:
a) Debe solicitar al usuario, los valores para la velocidad inicial y el ngulo de lanzamiento,
que se utilizaran para realizar los clculos.
b) Debe calcular por lo menos 30 puntos de la trayectoria del proyectil en tiro parablico y
mostrar los resultados en la pantalla de la computadora.
c) Debe graficar en una ventana grfica los resultados obtenidos en el inciso b
3. Depura y compila el cdigo fuente completo resultante y explica
detalladamente en cada una de las lneas de cdigo el funcionamiento de las mismas a
travs de comentarios.
4. Debes enviar tu archivo hasta que haya sido compilado, es decir que

Dev C++ no te haya marcado error, de lo contrario no se tomar esta


actividad como vlida.
5.

El archivo que debes subir a la plataforma es el cdigo fuente, es decir el archivo con
extensin .cpp que se realiz.
6. Como una ayuda para la realizacin de este cdigo fuente se te presentan las frmulas
para calcular las coordenadas de un mvil en tiro parablico:

Donde
proyectil,
del
la gravedad.

Vi es la velocidad inicial del


es el ngulo de lanzamiento
proyectil, t es el tiempo y g es

7. Si tienes problemas para la realizacin de esta actividad ingresa al foro Tiro parablico,
comparte con tus compaeros tus dudas y si puedes, aydalos a resolver las preguntas que
tengan, recuerda que trabajar en equipo puede ayudarte para aprender mejor, tambin
puedes acudir con tu asesor(a), el(ella) te apoyar con mucho gusto.

8. Cuando tengas listo el archivo gurdalo en tu PC y envalo con tus datos en el siguiente
formato: aellidopaterno_materno_nombre_actividadnumero

Esta actividad tiene un valor de 9 puntos

Foro 2. Tiro parablico


Este foro es para que dialogues con tus compaeros y se apoyen a resolver
las dudas que surjan en la realizacin de la actividad integradora 2, el
objetivo de esta actividad es que realices aprendizaje colaborativo con tus
compaeros.
Instrucciones:
1. Si tienes alguna duda o problema plantala en este foro para que los
compaeros que puedan y sepan la respuesta te ayuden en su
solucin.
2. Por otro lado, si t conoces la forma de apoyar a alguno de tus
compaeros para resolver algn problema que presente en la
realizacin de su actividad, apyalo para que pueda seguir avanzando
en la construccin de su conocimiento, recuerda que las respuestas
que des deben ser siempre de manera respetuosa.
3. Si hay alguna cuestin que nadie sepa, puedes acudir a tu asesor, l
adems de moderar este espacio te va a orientar para lograr tu
cometido.
4. Tu asesor evaluar las participaciones en las que apoyes a alguno de
tus compaeros.
Esta actividad tiene un valor de 4 puntos

Conclusiones:
En esta unidad de aprendizaje aprendiste, entre otras cosas que:

C++ es un lenguaje de programacin orientado a objetos, diseado en el ao 1980 por Bjarne


Stroustrup, es una extensin del lenguaje de programacin C, donde la Programacin
Orientada a Objetos o POO se usa, para disear aplicaciones y programas informticos, este
lenguaje est basado en varias tcnicas, incluyendo herencia, abstraccin, polimorfismo y
encapsulamiento. En la Programacin Orientada a Objetos (POO), un objeto se define como
la unidad que representa y realiza las acciones de un objeto de la vida real.

Una clase de objetos se conceptualiza como una plantilla que sirve para crear mltiples
objetos con caractersticas similares.

Una estructura al igual que una clase de objetos representa una plantilla, a partir de la cual se
pueden generar objetos, a las variables que definen las caractersticas de los objetos se les
llama miembros en lugar de atributos y estos son pblicos por default, por lo anterior cualquier
mtodo o funcin puede acceder al contenido que almacenan las estructuras e incluso
modificarlo, como consecuencia de esto ya no es necesario declarar y definir mtodos para
acceder o modificar a los miembros de una estructura.

Un operador es un smbolo que le indica al compilador la realizacin de una determinada


operacin sobre variables u objetos. Cuando un operador es capaz de desarrollar su funcin
en varios contextos (situaciones) diferentes sin necesidad de otras operaciones adicionales,
se dice que este operador est sobrecargado.

El mecanismo de la herencia permite al programador crear una clase, modificando una o ms


clases ya existentes, estas modificaciones generalmente consisten en aadir nuevos atributos
y mtodos a la clase que se est creand. La clase de la que se parte, recibe el nombre de
clase base, y la nueva clase que se obtiene se denomina clase derivada, est ltima a su vez
puede ser clase base en un nuevo proceso de herencia.

En el proceso de la herencia en el Lenguaje de programacin C++ las clases derivadas


heredan todos los atributos y mtodos de su clase base, excepto el constructor de la clase
base.

Del mismo modo el mecanismo de la herencia mltiple provisto por el Lenguaje de


programacin C++ permite al programador derivar una clase, modificando una o ms clases
ya existentes

La amistad (friend) es un mecanismo que prob el Lenguaje C++ por medio del cual el
programador puede otorgar un permiso o privilegio a un mtodo (funcin) que no pertenezca a
una clase de objetos, con esto, el mtodo tendr la capacidad de acceder (leer y modificar) a
los atributos de la clase de objetos, aun cuando los atributos de la clase de objetos hayan sido
declarados como privados.

La librera winbgim.h emula (imita) el funcionamiento de la librera llamada graphics.h, una de


las ventajas de utilizar la librera winbgim.h en lugar de grapics.h es que hace posible que el
programador crear aplicaciones grficas en compiladores -GNU tales como Dev C++ de la
misma manera como se crean en el compilador comercial Borland C++.

Has llegado al final de esta unidad de aprendizaje, en la que adems de reconocer tu esfuerzo,
dedicacin y compromiso, es muy grato comentarte que muy seguramente ahora eres capaz de
desarrollar aplicaciones y programas informticos a travs del paradigma de la programacin

orientada a objetos y sus interacciones, incluyendo herencia, abstraccin y polimorfismo, en lenguaje


de programacin C++ para solucionar problemas de ingeniera.
Para finalizar no resta ms que Felicitarte por concluir esta unidad de aprendizaje, muchas gracias
por tu esfuerzo y dedicacin.
Recuerda que la suerte favorece a las mentes preparadas.

Vous aimerez peut-être aussi