Está en la página 1de 26

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

1. Flujos.

Introducción:

Todos los programas realizados a lo largo de esta unidad de aprendizaje, obtienen la información (datos) necesaria para su ejecución de la entrada estándar de la computadora (teclado) y muestran el o los resultados de dicha ejecución en la salida estándar de la computadora (pantalla). No obstante, hay situaciones en las que es necesario que el programa reciba o envié información 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 programación C++ proveé al programador una herramienta eficaz y sencilla de utilizar llamada Flujos.

Nota:
Nota:

Antes de empezar este apartado es importante que se te recuerde que tienes que realizar,

editar y compilara todos los códigos fuente que se te vayan explicando.

La comunicación entre un programa escrito en Lenguaje C++ y el origen o el destino de la información con que este programa realiza su trabajo se realiza mediante un flujo de información.

Se le llama flujo de información (stream) a un objeto cuyo trabajo es servir como intermediario entre el programa y el origen o el destino de la información es por medio de este objeto que el programa puede leer o escribir información sin importar hacia donde se dirige o el lugar de donde proviene

El Lenguaje de programación C++ define, en su espacio de nombres

objetos, mismas que poseen atributos y métodos que permiten escribir en un archivo o leer desde un archivo. Enseguida se muestran los nombres y una breve descripción de dos de estas clases de objetos con que cuenta el Lenguaje de programación C++.

ofrece -varias clases de

std
std

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 métodos, uno de los más importantes es el siguiente:

Nombre

Open

Sintáxis

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

Descripción

Permite crear y abrir un archivo, para escritura.

Para poder utilizar el método “Open” es necesario declarar un objeto que pertenezca a la clase de objetos ofstream, como se muestra enseguida:

ofstream objeto;

Un

el d estino de la

la in formación es un arch ivo que se almacena rá en el mi smo direct orio que el archivo c on extinció n

que contie ne el códi g o fuente d el program a. e ne el códi go fuente d el program a.

informaci ón, en el ca so de un o bjeto cread o a partir d de la clase ofstream e l destino d e

la clase d e objetos o fstream ac túa como i ntermediar io entre el programa y

objeto pert eneciente a

Par a crear un flujo de inf ormación deb en escribir las siguien tes líneas

hacia un ar chivo por de código:

obje to.open("A RCHIVO.d oc",ios::ap p);

medio de u n objeto d e la clase ostream s e

obje to<<"

Tu primer arc

ivo"<<end l;

 

Com o puedes pert eneciente exte nsión en

observar

por medio

del opera dor punto

(.) se inv oca al mé todo llam ado open() ,

a un objet o, como ar gumento d e este mét odo se es cribe el no mbre del a rchivo y s u

medio del

operador c o milla dob e (“”), sep arado por

operador c omilla dob e (“”), sep arado por

medio del

operador

coma (,) s e

acc edió al obje to llamado

app
app

de la clase de o bjetos llam ada ios, p or medio d el operado r resolució n

un archiv o

ios, p or medio d e l operado r resolució n un archiv o de á

de á mbito (::), es muy im portante a cceder a di cho objeto ya que de esta form a se crea

llam ado ARCH IVO con e xtensión . doc (este a rchivo se

abrirá con

archivo y

la aplicaci ón Microso oft Word),

y

abri rá el archiv o creado,

el program a buscará el final del

enseguida por medio de objeto

y

el o perador de

inserción

se escribir á la caden a de texto : “Tu prime er archivo”

(sin la co milla doble) .

Obs erva que p ara escrib ir dentro d el archivo

pero

) .
)
.

si al oper ador de ins erción (<<

con extens ión .doc cr eado no s e utilizó al

objeto cou t

Dep ués de esc ribir dentro

se u tiliza al mé todo close () de esta f orma:

del archiv o creado e s necesari o cerrar el archivo, pa ra realizar esta acció n

obje obj to.close(); to.close();

El m étodo clo se() es inv ocado por

llam ado ARCH IVO con e

medio del

tensión .d oc

operador

punto (.) y y su trabaj o es cerra r el archiv o

El c ódigo fuent e del progr ama descr ito anterior mente es e l siguiente :

r ama desc r ito anterior mente es e l siguiente : Se t e invita

Se t e invita a observar e l siguiente video, el

del

ade lantarlo a t u gusto, da clic en el s iguiente ví nculo para que se te

cual contie ne imágen es de la co mpilación y ejecució n

o

código fue nte mostra do anterior mente, pue des verlo l as veces q ue desees , así como

muestre:

pausarlo

Video 1

Como puedes observar, es muy sencillo crear archivos y almacenar información dentro de los mismos utilizando el Lenguaje de programación 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 propósito. Esta clase de objetos posee varios métodos, uno de los más importantes es el siguiente:

Nombre

Sintais

Descripción

Open

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

Permite abrir un archivo, para lectura.

Para poder utilizar el método “Open” , es necesario declarar un objeto que pertenezca a la clase de objetos fstream, como se muestra a continuación:

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 actúa

como intermediario entre el programa y el origen de la información, en el caso de un objeto creado a

partir de esta clase fstream el origen de la información es un archivo almacenado en el mismo directorio que el archivo con extensión .cpp que contiene el código fuente del programa.

Para crear, abrir y leer un archivo por medio de un objeto de la clase fstream se deben escribir las siguientes líneas de código:

char cadena[81];

objeto2.open("ARCHIVO.doc",ios::in);

while(objeto2.getline(cadena, 81) != NULL)

{ cout << cadena << endl; }

Explicacion:

La primera línea e código declara un arreglo de caracteres de tamaño igual a ochenta y uno llamado cadena, este arreglo de caracteres recibirá y almacenará la información (caracteres) proveniente de un archivo ya existente.

En la segunda línea de código puedes observar que por medio del operador punto (.) se invoca al método llamado open(), perteneciente a objeto2, como argumento de este método se escribe el

e a objeto2, como ar gumento de este método se escribe el nombre del archivo y

nombre del archivo y su extensión en medio del operador comilla doble (“”), este es el archivo que se

abri rá con el o bjetivo de que el pro grama esc rito en Len guaje C++

med io del ope rador coma

med io del ope rador resol ución de á mbito (::),

lea su co ntenido, se parado po r clase de ob jetos llam ada ios, po r

ya que d e

(,) se acc edió al obj eto llamad o

p o r ya que d e (,) se acc edió al obj eto llamad o
in
in

de la

es muy im portante a cceder a d icho objeto

esta forma el a rchivo llam ado ARCH IVO con e xtensión .d oc se abrir á en modo de solo lec tura.

Has ta este mo mento el p rograma ún icamente

de

cua rta línea de que invoca al

el c ontenido d e ARCHIV O.doc y lo

mie ntras el m étodo getli ne() no en cuentre el

está ndar de la computado ra el conte nido de A RHIVO.doc .

el archivo ll amado AR CHIVO.do c, las línea s

y

código, e stas son im plementad as por me dio de la s entencia d e control w hile, mism a

ha abierto

código imp lementada s para lee r el conten ido de est e archivo

son las es critas en

la tercera

método lla mado getlin e() de obje to2 a travé s del oper ador punto (.), este m étodo leer á

almacena rá dentro

del arreglo

final del a rchivo se

de caract eres llama do cadena , estará imp rimiendo e en la salid a

Des pués de q ue el progr ama escrit o en Lengu aje C++ le a el archiv o es nece sario cerra r el archivo ,

para

realizar e sta acción se utiliza al método cl ose() de la siguiente f orma:

obje to2.close()

;

El m étodo clo se() es inv ocado por

llam ado ARCH IVO con e

medio del

tensión .d oc

operador

punto (.) y y su trabaj o es cerra r el archiv o

El c ódigo fuent e del progr ama descr ito anterior mente es e l siguiente :

r ama desc r ito anterior mente es e l siguiente : Se t e invita

Se t e invita a observar e l siguiente video, el c ual contien e el resulta do de la c ompilación y ejecució n

del

pau sarlo o ade lantarlo a t u gusto, da

código fue nte que s e te acab a de expli car, puede s verlo la s veces q ue desees , así com o

clic en el

siguiente v ínculo para que pued as verlo:

Vide o 2

y

post eriormente

esc ritos en est e lenguaje pueden te ner otra fu ente de de entrada d e informaci ón diferent e al teclad o de l a computa dora.

en el Len guaje de pr ogramació n C++, con lo cual los programa s

Com o puedes observar,

es muy se ncillo crea r archivos

y almacen ar informac ión dentro de estos

leer esta i nformación

Si d eseas sab er más ace rca de tod os los méto dos de la clase de o bjetos ofsre am, puede s revisar e l

sigu iente mate rial, da clic en el sigui ente hiperv ínculo par a lo puedas

ver: Biblio teca de c+ +

Ejercicio : “AGEND A”:

Par a ejemplific ar lo ante riormente age nda guarda rá en un a rchivo (que

explicado

de una ag enda pers onal, dich a

a su vez s e almacen ará en el d isco duro d e la comp utadora co n

se hará el

programa

exte nsión .doc ) la siguien te informa ción indica da en paso s: Not
exte nsión
.doc
)
la siguien te informa ción indica da en paso s:
Not a:
La reali zación de
esta agen da será co mpartida,
es decir,

se explica rá y otra l a

por lo que es necesa rio que sig as realizan do, editan do y comp ilando cad a

te presen tan ya qu e

esto s van a se rvir de bas e para real izar el códi go fuente, cabe menc ionar que la realizaci ón de esto s

pas os no va a

códi go que se vaya mos trando, rev isa y toma

tend rás que el aborar tú,

una parte

en cuent a los 8 pa sos que se

ser conse cutiva, es

decir, no t endrá la c ontinuidad

que se m uestra a c ontinuación ,

aho ra sí, estos son los pa sos:.

Pas o 1. Datos personale s : o 1. Datos personales :

Son los datos

que se van a necesita r para hac er el progra ma, y son:

Nombre .

Apellido paterno.

Apellido materno.

Teléfon o.

Fec ha de naci miento:

Día.

Mes.

Año.

Ens eguida se prog rama:

te explica rá brevem ente el fun cionamien to y las c aracterístic as que de be tener e l

t o y las c aracterístic a s que de be tener e l Pas o

Pas o 2. La ap ariencia de l menú de inicio que se despleg ará en la

sigu iente:

pantalla de

la comput adora es e l

La ap a riencia d e l menú de inicio que se desple g ará en

Com o puedes observar e l program a debe des plegar en

opci ones, con real izar. Pas o 3. Si el
opci ones, con
real izar.
Pas o 3.
Si
el

el objetivo

de que el

usuario

usuario d el program a escoge

entrada

la pantalla de la com putadora u n menú d e

la acción q que el prog rama deb e

del progra ma escoja

pantalla l a

sigu iente interf ace, la cua l solicitará la informa ción que s e desea al macenar e n la agend a personal ,

el u suario de be ingresa r desde la prog rama le so licite:

de la com putadora l a informac ión que e l

la opción

estándar

A, entonce es se desp legará en

l la opción estándar A, entonc e e s se des p lega rá en Despu

Despu és de que el usuario del progra ma ingrese és de que el usuario del progra ma ingrese

a m ostrar el m enú de opc iones, es d ecir la prim era interfa ce, de esta forma:

el año de nacimient o, el progra ma volver á

forma: el año de nacimient o , el progr a ma volver á Pas o 5.
Pas o 5.
Pas o 5.

En ca so de que el usuario del progra ma escoja

se muest ra ensegui da. Esta

la opción B , el progra ma debe d esplegar l a

del archi vo llamad o este archi vo debe se r

inte rface que

AG ENDA.doc. el program a leerá el contenido del archiv o antes me ncionado,

gen erado por e l programa , toda vez que se eje cutó la opc ión A del m enú de op ciones.

pantalla m ostrará el

contenido

del m enú de op ciones. pantalla m ostrará el contenido Pas o 6. l a
Pas o 6.
Pas o 6.

l a

entr ada están dar, se vo lverá a m ostrar la p rimer inter face, en d onde se d espliega e l menú d e opci ones, de e sta forma:

Desp ués de mo strar la in formación

antes men cionada

y

presionar

cualquier

tecla

en

formación antes men cionada y presionar cualquier tecla en Pas o 7. En el caso de
Pas o 7.
Pas o 7.

En el

caso de q ue el usua rio del pro grama esc oja la opci ón C. El pr ograma de splegara l a

sigu iente interf ace:

Est a tecl a desde la e ntrada es t ándar de l a computad

Esta

tecl a desde la entrada es tándar de l a computad ora, el pro grama term

interface indicará qu e el usuari o decidió s alir de la a plicación. Y Y después de presion ar cualquie r

minara.

En elY Y después d e presion ar cualquie r m inara. el m enú de op

el m enú de op ciones, el p rograma d esplegara

caso de qu e el usuari o del progr ama introd uzca una

opción que no esté di sponible e n

el siguiente mensaje e n la pantal la de la co mputadora :

e mensaje e n la pantal la de la co m putadora : En co m

En

com putadora y

este caso

el usuario d el program a deberá presionar c cualquier te cla en la e ntrada est ándar de l a

a despleg gar la prim er interface , así el us uario tendr á te.

enseguid a el progra ma volverá

la p osibilidad d e escoger una opción nuevame

Recuerd a que el p rograma, avolverá la p osibilidad d e escoger una opció n nuevame llam ado AGEN DA, este

llam ado AGEN DA, este a rchivo se almacenar á en el dis co duro de

arch ivo el prog rama escr ibirá toda

entr ada están dar de la

opci ones. Ens eguida se muestra un a imagen q ue ejempli fica esto:

ejecutar la

opción A debe gene rar un arch ivo con ext ensión .do c

la comput tadora, den tro de est e

usuario d el program a introduz ca desde l a

la informac ión que el

computad ora tantas

veces co mo se eje cute la op ción A de l menú d e

que el computad o ra tantas veces co m o se eje cute la op ción

Rea lizando la AgEnDa”

Una

decl arar dos e structuras, una que al macene lo s datos per rsonales, y la otra par a almacen ar los dato s

necesario p ara que s e

pue da declara r y definir e stas dos e structuras y

de los dat os person ales y la f echa de n acimiento ( paso 1) e s

alternativ a realizar l a captura

refe rentes a la fecha de

nacimiento . Enseguid a se mues tra el códi go fuente

posteriorm

mente se d ará la expli cación del mismo:

posterior m m ente se d ará la expli c ación del mismo: Exp licación: De

Exp licación: licación:

Dec larar dos e structuras permitirá a lmacenar e n sus mie mbros (rec uerda que

tipo int,

d ia, mes
d ia,
mes
anyo
anyo

res pectivame nte, estos

públicos po r posee tre s

tres miem bros alma cenarán l a

nacimient o solicitada . Esta est ructura tam bién dese mpeñará e l

estos son

fecha,
fecha,

defa ult) la info rmación re querida. L a primer e structura q ue se dec laró se lla ma

mie mbros de

info rmación re ferente a l a fecha de

y

trab ajo de ser miembro d e la segund a estructu ra declarad a.

La

llam ados

info rmación re ferente a:

mie mbros de

telé f ono, ade m ás posee un miemb r o llamado fono, ade más posee un miembr o llamado

a su

fech a de nacim iento.

segunda e structura q ue se dec laró se lla ma

nom bre, apel ido1
nom bre,
apel ido1

y

a pellido2
a
pellido2

esta pose e

l a

nombre, ap ellido pate rno y apell ido matern o requerid os. Ademá s posee u n

referente a l

e s

tipo string ,

ficha,
ficha,

tres mie mbros de

miem bros

r espectivam ente,

dich os

alma cenarán

fecha
fecha

tipo unsign ed long ll amado telé fono, el c ual almace nará la inf ormación

fecha_naci miento

de tipo

fecha
fecha

(la estructu ra

vez miem bro de

miento de tipo fecha (la estructu ra vez mie m bro de fic h a) eviden

fic ha) eviden emente es te miembr o almacen ara la info rmación re ferente a l a

Pos teriormente , dentro

pert eneciente

dato s persona les y la f echa de

objet o

a la estruc ura llamad a ficha, es te objeto d eberá tene r la capac idad de al macenar lo s

necesario s para la

agenda p ersonal q ue se est á

de

la

fun ción

princ ipal

del

programa

se

deberá

declarar

un

nacimiento

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 código fuente explicado hasta este momento de la agenda.

Actividad de aprendizaje 9. “FlUjOs”

Ahora que conoces la forma en que el Lenguaje de programación C++ permite al programador utilizar las clases de objetos ofstream y fstream para manipular flujos de entrada y salida de información, realiza la siguiente actividad de aprendizaje, la cual tiene por objetivo que practiques la declaración de objetos pertenecientes a las clases ofstream y fstream, mismos que servirán 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 código fuente de la agenda personal que se te explicó y añade las líneas de código necesarias para realizar lo que se indica en los pasos 2, 3 y 4 de la elaboración de la agenda (observa las imágenes respectivas para que sepas de que se está hablando).

2 Depura y compila el código fuente completo resultante y explica detalladamente en

cada una de las líneas de código el funcionamiento de las mismas.

archivo que debes subir a la plataforma es el código fuente, es decir el archivo con extensión .cpp que se realizó.

y

comparte con tus compañeros tus dudas para que te ayuden a resolverlas o si puedes apóyalos para que ellos resuelvan los problemas que se les presentan, recuerda que trabajar en equipo puede ayudarte para aprender mejor, también puedes acudir con tu asesor(a), el(ella) te apoyará con mucho gusto.

4 Si tienes problemas para la realización de esta actividad ingresa al

Foro 1. “AgEnDa.”

5 Cuando tengas listo tu archivo guárdalo en tu PC y envíalo 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 compañeros y se apoyen en la solución 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 plantéala en este foro para que los compañeros que puedan y sepan la respuesta te ayuden en su solución.

2. Por otro lado, si conoces la forma de apoyar a alguno de tus compañeros para resolver algún problema que presente en la realización de su actividad, apóyalo para que pueda seguir avanzando en la construcción de su conocimiento, recuerda que las respuestas y ayuda que des deben ser siempre de manera respetuosa.

3. Si hay alguna cuestión 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, después de que él lo haga puedes empezar la actividad, si alguien participa fuera de la apertura del asesor no se tomará en cuenta la participación.

Esta

actividad tiene un va lor de 4 pu ntos

Seg uramente al realizar la

int e rface soli itada en paso 2 la forma m á s conveni e nte es im plementa ndo la se ntencia d e

, con la c u al fácilme nte el usu a rio del pr ograma p uede esco g er una o p ción de u n

decidiste que para mostrar l a

Activi d ad de apr endizaje 9 . “FlUjOs”

mostrar l a Activi d ad de apr endizaje 9 . “FlUjOs” con t rol switc

con t rol switc h

me n ú de opci o nes.

Co n tinuando con la re alización de la age nda perso nal, a co n tinuación se te ex p licarán la s líne as de có digo nec e sarias pa ra realiza r las acci ones indi cadas en los paso s 7 y 8 , pos t eriormen t e se dará la explic a ción de la s mismas, recuerda e integra rlas al có d igo fuent e que has estad o elabora ndo, poste riormente volverás a realizar u na parte del código fuente:

volverás a realizar u na parte del código fuente: 'C':) y el cas o default (
'C':)
'C':)

y el cas o default (

del código fuente: 'C':) y el cas o default ( Explicació n: Para dar solución a
Explicació n: Para dar solución a
Explicació n:
Para dar
solución a

los pasos

las neces idades pla nteadas e n

s ystem(“cls” )
s ystem(“cls” )

7 y 8 se p ropone de clarar el ca so C (cas e

se

invoca a la

función

de clarar el ca so C (cas e se invoca a l a función d efault:).

default:). E n el primer o caso (ca se C:)

cuy o trabajo e s limpiar la

imp rimió en la salida está ndar. Ense guida se m uestra en

cara cteres

pantalla

de la comp utadora, e s decir bo rrar el text o que prev iamente s e

cadena d e

. Por últim o

la pantalla de la com putadora la

d e . Por últim o la pantalla de la com p utadora l a “De
d e . Por últim o la pantalla de la com p utadora l a “De

“De cidiste sali r”, por med io del obje to cout y s u operador de incisió n (cour <<)

se e scribió la

sentencia

de control

break;
break;

cuy o trabajo e s “romper”

la ejecuci ón de la s entencia d e

cont rol

switch
switch

y terminar

así la ejecu ción del pr ograma.

En

En e l segundo caso (def ault:)

el segundo caso (def ault:)

se m uestra en l a pantalla

de la comp utadora la cadena de

caractere s En seguid a

“Es una opción

no valida

, por medi o del objet o cout y su operador de incisión (cour <<).

 

se i nvoca a la

función

s ystem (“PA USE”)

cu yo trabajo

es realizar

una paus a en la ej ecución de l

prog rama, has ta que se

Ens eguida se

presione

cualquier

tecla

en

escribió la sentencia d e control

g oto INICIO ;

la entrad a estánda r de la co mputadora .

cuyo trab ajo es el d e redirecci onar el fluj o

de

ejecución

del progra ma hacia

el comienz o del prog rama don de se deb ió escribir

la

etiquet a

INIC IO:,
INIC IO:,

Ense guida se

muestra un a sugeren cia del lug ar en don de se deb e escribir

la

etiquet a

INIC IO y la for ma de escr ibirla.:

Acti vidad de a prendizaj e 10. “ Má s FlUjOs” Aho ra que co

Acti vidad de a prendizaj e 10. s FlUjOs”

Aho ra que co noces la f o rma en q ue el Leng uaje de pr ogramació n C++ pe r mite al pr o gramado r utili zar las cla ses de obj etos ofstr e am y fst r eam para manipula r flujos d e entrada y salida d e inf o rmación, realiza la siguiente actividad de apre ndizaje, la cual tie n e por o b jetivo qu e pra c tiques la declaració n de obj e tos perte necientes a las clas e s ofstrea m y fstrea m , mismo s que servirán como int e rmediario s entre u n progra m a escrito en Lengu a je C++ y un archiv o crea do y alm a cenado e n el disco d uro de la c omputad ora.

Inst rucciones:

1 Con inúa esc r ibiendo e l código fuente de e l progra m a propu e sto en e l ejercici o ant e rior llama do AGEN DA, y aña d e las líne as de cód igo neces a rias para realizar l o que se te pide En el pas o 5 de la A g enda pers onal.

2 D e pura y c o mpila el c ódigo fue nte compl e to resulta

nte y expl ica detalla damente e n

cada

una de la s líneas de código el f uncionamie nto de las mismas.

6 D ebes envi ar tu arch ivo hasta que haya sido comp ilado, es d ecir que D ev C++ n o t e haya ma rcado err o r, de lo c o ntrario n o se tomar á esta acti vidad com o válida. E

l

a rchivo que

debes su bir a la pla taforma e s el código

fuente, e s decir el

archivo co n

e xtensión .c pp que se realizó.

7 R

ecuerda q ue si tien es dudas

puedes in ngresar al

Foro 1. AgEnDa.”

Dónde tu s

para la rea lización d e

e sta activid ad, tambié n puedes a cudir con t tu asesor(a ), el(ella) t e apoyará con much o g usto y acla rará tus du das.

c ompañeros

te apoya ran en la c onstrucció n de tu ap rendizaje

AGENDA.EXE

9 Cuando tengas listo tu archivo guárdalo en tu PC y envíalo con tus datos en el siguiente formato: apellidopaterno_materno_nombre_actividadnumero

Esta actividad tiene un valor de 1 puntos

Conclusión.

Se le llama flujo de información a un objeto cuyo trabajo es servir como intermediario entre el programa y el origen o el destino de la información, es decir, por medio de este objeto es que el programa puede leer o escribir información desde o hacia un archivo.

Las clases de objetos ofstream y fstream, poseen atributos y métodos que permiten escribir en un archivo o leer desde un archivo.

2.

Liberia winbgim.h

Introducción

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 información en forma de texto, en la pantalla de la computadora, pero es posible crear gráficos que hagan más interactiva y atractiva la apariencia de un programa escrito en Lenguaje C++, para hacer esto posible es

necesario instalarle una nueva librería al IDE Dev C++, el nombre de esta librería es

Aquí termina la introducción.

winbgim.h.

librería es Aquí termina la introducción. winbgim.h. La librería winbgim.h fue creada or iginalmente por

La librería winbgim.h

fue creada originalmente por Konstantin Knizhnik's winbgi shareware

graphics.h
graphics.h

en lugar de

grapics.h mousex() y
grapics.h
mousex()
y

y

y Michael Main, esta librería emula (imita) el de Borland C++, la cual tiene un costo monetario.

posteriormente modificada por Mark Richardson

funcionamiento

Una de las ventajas de utilizar la librería winbgim.h

de la librería llamada

es implementar de forma

mousey(), las cuales

más sencilla las funciones del mouse, por ejemplo las funcioners:

devuelven la coordenada de la posición en x o en y
devuelven la coordenada de la posición en x
o en
y

del mouse, otra ventaja de la utilización de esta

tales comoo en y del mouse, otra v entaja de la utilización de esta el Entorno de

el Entorno de desarrollo Integrado Dev C++ de la misma manera como se crean en el compilador comercial Borland C++.

librería es que permite al programador crear aplicaciones gráficas en compiladores

Como se mencionó anteriormente, para trabajar con la librería

el

es necesario instalarla en

IDE Dev C++, para realizar esta acción es necesario que descargues el archivo ejecutable llamado

winbgim.h

instalarla en IDE Dev C++, para realizar esta acción es necesario que descargues el archivo ejecutable

Inst all Winbgim

for Dev

C++

(lo en cuentras e n el aparta do recurso s de la pá gina princi pal de est a

Install

Winbgim fo r Dev C++

gina princi pal de est a Install Winbgim fo r Dev C++ aplicació n uni d

aplicación

unid ad de apr endizaje), e ste archiv o se encar gara de ins talar y con figurar la l ibrería win bgim.h, un a

vez que hayas

pres enta ense guida, el c ual te mos trará la for ma de inst alar y conf igurar la li brería winb gim.h, y l a

una aplicac ción grafica

muc ha atenció n a la form a en que s e debe cre ar un proye cto para g enerar una

form a en que

grafica, y a

en el De v C++. Po n

observa e l video tut orial que s e

descarga do el archi vo

se debe g enerar un

proyecto p ara crear

que

este mism o procedi miento lo r ealizarás a l momento o de realiz ar

los pro gramas ex puestos e n

esta

unidad te mática.

Da

clic sobre e l siguiente vínculo pa ra que vea s el video t utorial:

Tut orial
Tut orial

realice un a

que es e l

así mismo , archivo co n

éste es e l archivo q ue contend rá el códig o fuente d e la aplicac ión grafica , el cual y a

tien e un progra ma escrito en Lengu aje C++, qu e es el De mo de una aplicación grafica, pa ra observa r

Com o pudiste

apli cación gráf ica lo prim ero que se debe hac er es guar dar el arch ivo con ext ensión

arch ivo que al macenará

tam bién obse rvaste qu e después

exte nsión

observar,

el video

tutorial mu estra que

para crea r un proy ecto que

.de v
.de v

la informa ción refere nte al pro yecto de l a aplicació n grafica,

de dar cli c

sobre el

botón “G uardar” se

abre un

.cpp
.cpp

este

tare a es el sigu iente:

programa en ejecuc ión es nec esario com pilar este

código fue nte. El res ultado de r ealizar est a

este c ódigo fue nte. El res ultado de r e alizar est a En l

En l a imagen

esq uina supe ior izquier da, es la

anterior pu edes obse rvar que s e desplega aron dos v entanas, la

grafico qu e produce

ventana

en modo

correspon ndiente a l a la librerí a instalad a

ante riormente, la otra ven tana es la ya conocid a ventana

generada p or el Leng uaje C++.

Se

te recomi enda “expl orar” el c ódigo fuen te de la

(el

cual es

muy sencill o), para q ue puedas

aplicación

la librerí a mismo. S i

no te pre ocupes en seguida s e

“demo” p rovista por

win bgim.h
win bgim.h

deducir e l funciona miento del

entiendes,

des pués de “ explorar” e l código f uente “dem o” no lo

expl icará a de talle la fo rma de uti lizar las fu nciones d eclaradas

y definidas

dentro d e la librerí a

win bgim.h.
win bgim.h.

Par a comenza r a explicar te la forma de utilizar

la librería

winbgim.h

se te invita

a realizar la siguient e

apli cación gra fica, que e s muy se ncilla, la c ual muestr a en una

prog rama term inará al pre sionar cua lquier tecla El s iguiente es el progrma :

ventana g rafica una

línea, est e

desde la

entrada est ándar de la

computad ora.

est e desde la e ntrada est ándar de l a computad ora. Exp licación: En
Exp licación:
Exp licación:

En l a primer lín ea de códi go se inclu ye la librer ía

#inc lude<>.
#inc lude<>.
winbgim .h
winbgim .h

a través de la direc tiva del pre procesado r

y definidas dentro de esta librerí a

Co n esta acc ión se logr a que las f unciones d eclaradas

se i ncluyan en el código f uente, ante s de que e ste sea co mpilado.

Ens eguida se encuentra la declarac ión y defin ición de la función pr rincipal del func ión main(), la cual de fine el trab ajo que rea lizara la ap licación gr áfica.

programa,

es decir l a

Des pués de la llave de a pertura que delimita la s líneas d e código qu e pertenec en a la fun ción main( )

se i nvocó a la función ini twindow()

libre ría winbgi m.h,), que s e encarga de abrir (d esplegar) u na ventan a gráfica.

initw indow() a

vent ana gráfic a, en este e jemplo se indico que se abrirá u na ventana

cuales ind ican el tam año en pi xeles de l a

y definida d entro de l a

(recuerda q ue esta fu nción fue

declarada

epta dos

argumento s de tipo e ntero, los

de 400 x 300 pixeles .

En l a siguiente

pará metros 0, 0), esta fu nción se e ncarga de

posi cionar el c ursos en l os paráme tros indica dos, los c uales indic arán la co ordenada mov erá el curs os de la ve ntana gráfi ca.

línea, en el código f uente se in voco a la f unción mo veto() (a la

“mover”

el cursor

l e dieron lo s

de la vent ana gráfic a, es decir ,

donde s e

cual se

a
a
Not a :
Not a
:

El

orige

n

del

eje

izqu ierda de la misma.

coordenad o de la ve ntana graf fica se en cuentra

e n la esqui na superio r

En

este ejemp lo se indic ó que el c ursor de la

pantalla

grafica se

movió a la

coordena da (0,0), e s

En l a siguiente línea de c ódigo, se in vocó a la f unción line to(), la cua l se encarg a de dibuj ar una líne a rect a, desde la posición a ctual del c ursor hasta la coorden nada que s e le indiqu e por medi o de los do s argu mentos qu e posee, e stos argum entos son de tipo ent ero.

En

línea rect a desde la posición ( 0,0) que es la posició n

actu al del curs or de la ve ntana gráfi ca, hasta l a coordena da (50,50) .

este ejemp lo se indicó

que se di bujaría una

La

una tecl a desde la

mo mento se p resiona cu alquier tecl a dejará de esc rita en este código fue nte.

mie ntras no s e presiona

sentencia

e control

while escri ta en la si guiente lín ea de cód igo, se eje cutará con tinuament e

en algú n

ejecutars e y ensegu ida se inv ocara la últ ima funció n

entrada

estándar d e la com putadora,

si

clos egraph(), s e encarga de cerrar la ventana gráfica y a al no existi r ninguna ante s de la llav e de cierre de la func ión main() el program a termina.

otra instruc ción escrit a

El r esultado de editar, de purar y com pilar este código fue nte es el si guiente:

y com pilar este c ódigo fue nte es el si g uiente: Est a s

Esta s son algu nas de las funciones con que cu enta la libr ería winbgi m.h:

Niombre de la función

 

Trabajo desarr ollado

void ci rcle (int x, int y, in t radius);

Dibuja un

circulo con centro en x,y y de radio radius

void cl eardevice (void);

Borra la pa ntalla

void li ne (int x1, int y1, i nt x2, int y2);

Traza una línea desde la co ordenada (x1,y2) hasta la coorden ada (x2,y2).

void li neto (int x, int y)

Traza una línea desde la po sición actual de c ursor hasta la co ordenada (x,y)

void p utpixel (int x, int y , int color);

Dibuja un

pixel en la coorde nada (x,y) de col or dado por elnom bre en ingles del

color.

void re ctangle (int left, i nt top, int right, in t bottom);

Dibuja un r rectangulo de esq uenas top,left y r ight,bottom

void s etcolor (int color);

Establece el color actual.

int mo usex(void)

Retorna la coordenada x de l Mouse relativa

a la esquina supe rior izquierda

int mo usey(void)

Retorna la coordenada y de l Mouse relativa

a la esquina supe rior izquierda

Acti vidad de a prendizaj e 11. “Cír c ulo y cua d rado”

Aho ra que co noces la fo rma en q ue el Leng uaje de pr rogramació n C++ pe rmite al p rogramado r

winbgim. h, realiza l a

sigu iente activi dad de ap rendizaje, l a cual tien e por objet ivo que pr actiques y analices la s funcione s circl e(), movet o(), lineto() y rectangle () initwindo w() y clos egraph().

impl ementar fu nciones q ue manipul an gráfico s a través

de

la libr ería grafica

Inst rucciones:
Inst rucciones:

1. Edita, de p ura y co m pila el có digo fuent e que a co ntinuació n n se te mu e stra:

d igo fuent e que a co ntinuació n n se te mu e stra: 2.

2. Explica el

funcionam iento del c ódigo fue nte comple to a travé s de come ntarios es critos en e l

es

to a travé s de com e ntarios es c ritos en e l es códig
to a travé s de com e ntarios es c ritos en e l es códig
to a travé s de com e ntarios es c ritos en e l es códig

código

fuente.

t e

de editar ,

depur ar y compi lar este có digo fuent e

el sigu iente:

Como

prese nta el r esultado

una

for ma

de

ay uda

se

3.

3. Debes

enviar tu a rchivo has ta que hay a sido com

mpilado, es

decir que

Dev C++

no te hay a

marcad o error,

 

4. Si tiene s alguna du da comun ícate con tu

asesor pa ra que te a yude a acl ararla

 

5. El archi vo que deb es subir a l a plataform a es el qu e tu asesor te indicara ,

 

6. Cuando

tengas lis to tu archi vo guárda lo en tu P C y envíal o con tus

datos en

el siguient e

formato : apellidopa terno_mat erno_nomb re_activid adnumero

Esta

actividad tiene un va lor de 4 pu ntos

Par a continuar

impl ementar la librería gr afica winbg im.h se u tilizará otr a aplicació n grafica, l a cual dibu jará líneas

forma de

con la ex plicación a cerca de la

rect as a travé s del mou se. Ensegu ida se te

muestra el

códi go fuente

del

prog rama

que

realiza

la acción

men cionada

anteriorme nte,

y

posteriorm ente se

expl icará el mi smo:

Exp licacion:
Exp licacion:
realiza la acción men cionada anteriorme nte, y posteriorm ente se expl icará el mi smo:

En el código f uente se i ncluyó la l ibrería gra fica llamad a winbghi m.h, a trav és de la d irectiva de l

enseguid a se encue ntra la de claración y definición de la funci ón principa l

del programa (

prep rocesador

#include< >
#include< >

main()), la cual define la acción

que realiza ra este pro grama.

Des pués de la

prog rama se d eclararon c uatro varia bles de tip o entero lla amadas x.

llave que

delimita l as líneas

de código

que perte necen a la

función p rincipal de l

s e

que perte necen a la función p rincipal d e l s e y .b y
y .b y c, a la variable ll amada b
y
.b
y
c, a la variable ll amada
b

le a signo el va lor inicial

de 400 y a

la variabl e llamada

c
c

se le asi gno el valo r inicial de

b
b

es deci r

cuat rocientos.

Las variab les:

x
x

e

y
y

n o fueron in iciadas co n ningún va lor.

 

En l a siguiente

línea de c ódigo se in vocó a la función init window(),

ante riormente, a esta fun ción se le

pasan com o argumen to las dos

cuya explic ación ya s e mencion o variables d e tipo ente ro llamada s

b y c
b
y
c

respectiv amente, p or lo anteri or, despué s de comp ilar el códi go fuente se abrirá u na ventan a

graf ica de 400 x400 pixele s.

Ens eguida se encuentra escrita la s entencia d e control w hile(), la c ual permiti rá que se

sigu ientes líne as de códi go, siempr e y cuando de l a computa dora:

ejecuten la s

no se pre sione ning una tecla e n la entra da estánda r

p re sione ning una tecla e n la entra d a estánd a r La

La primera lín ea de códi go de la im agen ante rior invoca

coo rdenada en

en l a variable l lamada

devuelve l a

valor siemp re será de tipo int), e l valor es a lmacenad o

valor siemp re será de tipo int), e l valor es a lmacenad o a la

a la funci ón mousex (), la cual

del punt ero del mo use (este t ero del mo use (este

x.
x.

Ens eguida se invoca a la función lla mada dela y() la cua l realiza un

retardo o pausa en l a ejecució n sis de la fu nción y se expresa e n

del programa,

el valor de la misma se indica d entro de lo os parénte

mili segundos, en el ejem

lo se reali zará un ret ardo de un milisegund

o.

 

La t ercera líne a de códig o de la im agen anter ior invoca

valor siem pre será delín e a de códig o de la im a gen ante r ior invoca a

a

de la im a gen ante r ior invoca valor siem pre será de a la

la funci ón mousey (), la cual

tipo int) e l valor se

devuelve l a almacenar á

Ens eguida se i nvoca nue vamente a la función

delay(), ex plicada ant eriormente .

Una vez que

corr espondient e a la coo rdenada ac tual del pu ntero del m ouse, se i nvoca, en el siguient e renglón,

la fu nción llam ada lineto( ), a la cual se le pasa n como ar gumento la s variables

esta función s e encarga rá de dibu jar una lín ea recta

vent ana grafic a (no confu ndir con el puntero de l mouse).

en

las

v ariables d e tipo ent ero llamad as

x e y
x
e
y

se tiene

almacena do el valo r

a

x e y, por lo anterior ,
x
e
y, por lo anterior ,

en

l a

desde la

p osición

ac tual del cu rsor,

El r esultado de editar, de purar y com pilar el có digo fuente completo es el siguie nte:

Co m o puede s co m enzará un a aplicació n por pri m

Com o puedes

com enzará un a aplicació n por prim era vez e n las coor denadas ( 0,0), es de cir, desde

sup erior izquie rda de la

dep ende de la

ejec utando la

un e jemplo se muestra a continuació n:

observar

posición

aplicación,

(por defa ult siempr e

la esquin a

ventana gr afica), has ta la coord enada act ual del pun tero del m ouse, (est o

se dibujo

una línea

recta en

la venta na grafica

del punter o), si llega ras a mov er el punt ero del mo use mient ras se est á

podrás ve r que se di bujará una

línea sigu iendo la tr ayectoria q ue realices ,

una línea sigu iendo la tr a yectoria q ue realice s , A nt e

Ant es de conti nuar, conte sta las sigu ientes pre guntas rela cionadas a algu na duda, i nteractúa c on tus com pañero