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: 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. Aquí termina la introducción. 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 std varias clases de 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++. 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 Sintáxis Descripción Open void open(const char *, int = ios::out, int = filebuf::openprot); 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 o el de la in .cpp Para debe obje obje Com pert exte acce de á llam abrir el o Obs pero Dep se u obje El m llam El có Se t del c adel objeto perte estino de la nformación p que contie a crear un en escribir eto.open("A eto<<" Tu mo puedes eneciente a ensión en m edió al obje ámbito (::), mado ARCH rá el archiv perador de serva que p o si al opera pués de esc utiliza al mé eto.close(); método clos mado ARCH ódigo fuent te invita a código fuen lantarlo a tu eneciente a a informació es un arch ene el códig flujo de inf las siguien ARCHIVO.d primer arch observar a un objeto medio del o eto llamado es muy im HIVO con e vo creado, e e inserción para escrib ador de ins cribir dentro étodo close( se() es inv IVO con ex te del progr observar e nte mostrad u gusto, da a la clase d ón, en el ca hivo que se go fuente d formación h tes líneas d oc",ios::app hivo"<<end por medio o, como arg operador c o app de la portante ac extensión .d el program se escribir ir dentro de erción (<<) o del archiv () de esta fo ocado por xtensión .do rama descr el siguiente do anteriorm clic en el s e objetos o aso de un o e almacena el program hacia un ar de código: p); l; o del opera gumento d omilla dobl clase de o cceder a di doc (este a a buscará rá la caden el archivo c ). vo creado e orma: medio del oc rito anterior e video, el c mente, pue siguiente ví ofstream ac objeto cread rá en el mi a. rchivo por m ador punto e este mét le (“”), sepa objetos llam cho objeto archivo se el final del na de texto con extens s necesario operador mente es e cual contien edes verlo l nculo para ctúa como i do a partir d ismo direct medio de u (.) se inv todo se esc arado por mada ios, po ya que de abrirá con archivo y e : “Tu prime ión .doc cr o cerrar el a punto (.) y el siguiente: ne imágene las veces q que se te m ntermediar de la clase torio que el un objeto d voca al mé cribe el no medio del or medio de esta forma la aplicaci enseguida er archivo” reado no se archivo, pa y su trabajo : es de la co que desees muestre: rio entre el ofstream e l archivo co de la clase étodo llama mbre del a operador c el operado a se creará ón Microso por medio (sin la com e utilizó al ara realizar o es cerrar ompilación s, así como programa y l destino de on extinción ostream se ado open() archivo y su coma (,) se r resolución á un archivo oft Word), y de objeto y milla doble) objeto cou esta acción r el archivo y ejecución o pausarlo o y e n e ), u e n o y y ). t n o n o 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 nombre del archivo y su extensión en medio del operador comilla doble (“”), este es el archivo que se abrir med med esta Has de c cuar que el co mien está Des para obje El m llam El có Se t del paus rá con el o dio del oper dio del ope a forma el a ta este mo código imp rta línea de invoca al m ontenido d ntras el mé ándar de la pués de qu a realizar es eto2.close() método clos mado ARCH ódigo fuent te invita a o código fue sarlo o ade objetivo de rador coma rador resol archivo llam mento el pr lementadas e código, es método llam e ARCHIV étodo getlin computado ue el progra sta acción s ; se() es inv IVO con ex te del progr observar e ente que s elantarlo a t que el pro a (,) se acc ución de á mado ARCH rograma ún s para leer stas son im mado getlin VO.doc y lo ne() no en ora el conte ama escrito se utiliza al ocado por xtensión .do rama descr l siguiente se te acaba u gusto, da grama esc cedió al obj ámbito (::), HIVO con ex nicamente h r el conten mplementad e() de obje o almacena cuentre el enido de AR o en Lengu método clo medio del oc rito anterior video, el cu a de explic a clic en el s rito en Len eto llamado es muy im xtensión .do ha abierto e ido de este das por med eto2 a travé ará dentro d final del a RHIVO.doc. uaje C++ le ose() de la operador mente es e ual contiene car, puede siguiente ví nguaje C++ o in de la c portante ac oc se abrirá el archivo ll e archivo s dio de la se és del opera del arreglo archivo se . ea el archiv siguiente fo punto (.) y el siguiente: e el resulta es verlo las ínculo para + lea su co clase de ob cceder a d á en modo lamado AR son las esc entencia de ador punto o de caract estará imp vo es neces forma: y su trabajo : ado de la co s veces qu a que pueda ntenido, se bjetos llama icho objeto de solo lec RCHIVO.doc critas en l e control w (.), este m teres llama primiendo e sario cerrar o es cerrar ompilación ue desees as verlo: eparado po ada ios, po o ya que de ctura. c, las líneas la tercera y while, misma método leerá do cadena en la salida r el archivo r el archivo y ejecución , así como r r e s y a á a, a o, o n o Vide Com post escr de la Si d sigu Para agen exte Nota tend códi esto paso ahor Paso Son Fech Ense prog Paso sigu eo 2 mo puedes teriormente ritos en est a computad eseas sabe uiente mate Ejercicio a ejemplific nda guarda ensión .doc) a: La realiz drás que el igo que se os van a se os no va a ra sí, estos o 1. Datos los datos q Nombre Apellido Apellido Teléfono ha de nacim Día. Mes. Año. eguida se grama: o 2. La apa uiente: observar, e leer esta i e lenguaje dora. er más ace rial, da clic o: “AGENDA car lo ante ará en un a ) la siguien zación de aborar tú, vaya mos rvir de base a ser conse son los pa personales que se van . paterno. materno. o. miento: te explicar ariencia de es muy se nformación pueden te erca de todo en el siguie A”: riormente e rchivo (que nte informac esta agend por lo que trando, rev e para real ecutiva, es asos:. s: a necesita rá breveme el menú de ncillo crear n en el Leng ner otra fue os los méto ente hiperv explicado s e a su vez s ción indicad da será co es necesa visa y toma izar el códi decir, no t r para hace ente el fun inicio que r archivos y guaje de pr ente de de odos de la c vínculo para se hará el se almacen da en paso ompartida, rio que sig a en cuenta go fuente, tendrá la co er el progra ncionamient se despleg y almacena rogramació entrada de clase de ob a lo puedas programa nará en el d os: es decir, u as realizan a los 8 pas cabe menc ontinuidad ama, y son: to y las ca gará en la p ar informac n C++, con e informació bjetos ofsre s ver: Biblio de una ag disco duro d una parte s ndo, editand sos que se cionar que que se mu aracterística pantalla de ción dentro n lo cual los ón diferente eam, puede oteca de c+ genda pers de la compu se explicar do y comp e te presen la realizació uestra a co as que de e la comput de estos y s programas e al teclado es revisar e + sonal, dicha utadora con rá y otra la ilando cada ntan ya que ón de estos ontinuación be tener e tadora es e y s o el a n a a e s , el el Com opci reali Paso sigu el u prog Paso a mo Paso inter AGE gene Paso entr opci Paso sigu mo puedes iones, con izar. o 3. Si el uiente interf usuario deb grama le so o 4. Despu ostrar el me o 5. En cas rface que ENDA.doc. erado por e o 6. Despu ada estánd iones, de e o 7. En el uiente interf observar e el objetivo usuario de face, la cua be ingresa olicite: ués de que enú de opc so de que e se muestr el program el programa ués de mo dar, se vo sta forma: caso de qu face: el programa de que el el program al solicitará r desde la el usuario ciones, es d el usuario d ra ensegui ma leerá el a, toda vez ostrar la inf lverá a mo ue el usuar a debe des usuario d a escoge la informa a entrada del program decir la prim del program da. Esta p l contenido que se ejec formación ostrar la p rio del prog splegar en del program la opción A ación que s estándar d ma ingrese mera interfac ma escoja l pantalla m del archivo cutó la opc antes men rimer interf grama esco la pantalla ma escoja A, entonce e desea al de la com e el año de ce, de esta la opción B mostrará el o antes me ción A del m ncionada y face, en d oja la opció de la com la acción q es se desp macenar e putadora l nacimiento a forma: B, el progra contenido encionado, menú de op presionar donde se d ón C. El pr mputadora u que el prog plegará en en la agend a informac o, el progra ama debe d del archiv este archiv ciones. cualquier despliega e rograma de un menú de grama debe pantalla la da personal ción que e ama volverá desplegar la vo llamado vo debe se tecla en la el menú de esplegara la e e a , el á a o r a e a Esta tecla Paso el m En e com la po Nota llam arch entr opci Rea a interface i a desde la e o 8. En el c menú de opc este caso e mputadora y osibilidad d a: Recuerda mado AGEN hivo el prog ada estánd iones. Ens alizando la “ indicará qu entrada est caso de qu ciones, el p el usuario d y enseguida de escoger a que el pr NDA, este a grama escr dar de la eguida se m “AgEnDa”… e el usuario tándar de la ue el usuari programa de del program a el program una opción rograma, al archivo se a ribirá toda l computado muestra un … o decidió s a computad o del progr esplegara e ma deberá ma volverá n nuevamen l ejecutar la almacenará la informac ora tantas na imagen q alir de la ap dora, el pro rama introd el siguiente presionar c a despleg nte. a opción A d á en el disc ción que el veces com que ejempli plicación. Y ograma term duzca una o e mensaje e cualquier te gar la prime debe gener co duro de usuario de mo se eje ifica esto: Y después d minara. opción que en la pantal ecla en la e er interface rar un arch e la comput el program cute la op de presiona no esté di lla de la com entrada est e, así el usu ivo con ext tadora, den a introduzc pción A de ar cualquie sponible en mputadora ándar de la uario tendrá tensión .doc ntro de este ca desde la el menú de r n : a á c e a e Una decl refe pued Exp Dec defa miem infor trab La s llam infor miem teléf a su fech Post pert dato reali a alternativa larar dos es rentes a la da declarar licación: clarar dos e ault) la info mbros de rmación ref ajo de ser m segunda es mados nom rmación ref mbros de t fono, adem u vez miem ha de nacim teriormente eneciente a os persona izando (ind a realizar l structuras, fecha de r y definir e structuras ormación re tipo int, d ferente a la miembro de structura q mbre, apell ferente a: n tipo unsign más posee mbro de fich miento. e, dentro a la estruct ales y la f icados en e a captura una que al nacimiento stas dos es permitirá al equerida. L dia, mes y a fecha de e la segund que se dec lido1 y a nombre, ap ned long lla un miembr ha) evident de la fun tura llamad fecha de n el paso 1). de los dat macene los . Enseguid structuras y lmacenar e La primer e anyo res nacimiento da estructur claró se lla pellido2 re pellido pate amado telé ro llamado f temente es nción princ da ficha, es nacimiento os persona s datos per a se mues y posteriorm en sus miem estructura q pectivamen o solicitada ra declarad ma ficha, e espectivam rno y apell éfono, el cu fecha_naci ste miembro cipal del p te objeto d necesario ales y la fe rsonales, y stra el códig mente se da mbros (recu que se dec nte, estos a. Esta estr da. esta posee mente, dich lido matern ual almace miento de o almacena programa deberá tene os para la echa de na la otra par go fuente n ará la explic uerda que e claró se lla tres miem ructura tam e tres mie hos miemb no requerid enará la inf tipo fecha ( ara la infor se deberá er la capaci agenda p acimiento ( ra almacena necesario p cación del m estos son p ama fecha, mbros alma mbién dese embros de bros almac os. Ademá formación r (la estructu rmación ref á declarar idad de alm personal qu (paso 1) es ar los datos para que se mismo: públicos po posee tres acenarán la mpeñará e tipo string cenarán la ás posee un referente a ura fecha es ferente a la un objeto macenar los ue se está s s e r s a el , a n al s a o s á 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. 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 válida. El archivo que debes subir a la plataforma es el código fuente, es decir el archivo con extensión .cpp que se realizó. 4 Si tienes problemas para la realización de esta actividad ingresa al Foro 1. “AgEnDa.” 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. 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 6 puntos Aquí acaba la actividad 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 tú 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. 5. La participación en este foro será evaluada por tu asesor. Esta Segu inte cont men Con líne post que 'C':) cuyo impr cara se e cont En e “Es se i prog Ense de e INIC INIC a actividad uramente erface solic trol switch nú de opcio ntinuando as de cód teriorment has estad y el caso o trabajo e rimió en la acteres “De escribió la s trol switch y el segundo una opción nvoca a la grama, has eguida se e ejecución d CIO:, Enseg CIO y la form tiene un va al realizar citada en p h, con la cu ones. con la re digo nece te se dará o elaboran o default (d s limpiar la salida está ecidiste sali sentencia d y terminar a caso (defa n no valida” a función sy sta que se escribió la s del program guida se m ma de escr alor de 4 pu la Activid paso 2 la ual fácilme ealización esarias par la explica ndo, poste default:). E a pantalla d ándar. Ense r”, por med de control b así la ejecu ault:) se mu ”, por medio ystem (“PA e presione sentencia d ma hacia e muestra un ibirla.: ntos dad de apr forma má nte el usua de la agen ra realizar ación de la riormente n el primer de la comp eguida se m dio del obje break; cuyo ción del pro uestra en la o del objeto AUSE”) cuy cualquier de control g el comienz na sugeren endizaje 9 s convenie ario del pr nda perso r las acci as mismas, volverás a Explicació Para dar s los pasos ro caso (ca putadora, e muestra en to cout y su o trabajo e ograma. a pantalla d o cout y su yo trabajo tecla en goto INICIO zo del prog cia del lug 9. “FlUjOs” ente es im rograma pu nal, a con ones indic , recuerda a realizar u n: solución a 7 y 8 se p ase C:) se es decir bor la pantalla u operador es “romper” de la comp operador d es realizar la entrada O; cuyo trab grama dond gar en don decidiste mplementa uede escog ntinuación cadas en e integra una parte d las neces ropone dec invoca a la rrar el texto de la comp r de incisión ” la ejecució putadora la de incisión r una paus a estándar bajo es el d de se deb nde se deb que para ando la se ger una op se te exp los pasos rlas al cód del código idades pla clarar el ca a función sy o que prev putadora la n (cour <<) ón de la se cadena de (cour <<). sa en la eje r de la co e redireccio ió escribir be escribir mostrar la ntencia de pción de un plicarán las s 7 y 8 digo fuente fuente: nteadas en aso C (case ystem(“cls” viamente se a cadena de . Por último entencia de e caracteres En seguida ecución de omputadora onar el flujo la etiqueta la etiqueta a e n s , e n e ) e e o e s a el a. o a a Acti Aho utili info prac que crea Inst vidad de a ora que con zar las cla ormación, ctiques la servirán ado y alma rucciones: 1 Cont ante que 2 De cada 6 D te a e 7 R c e g 8 P “A e aprendizaje noces la fo ses de obj realiza la declaració como inte acenado en tinúa escr erior llama se te pide epura y co a una de las Debes envi e haya ma rchivo que xtensión .c Recuerda q ompañeros sta activida usto y acla Para apoya AGENDA.E n el siguie e 10. “ Más orma en qu jetos ofstre siguiente ón de obje ermediario n el disco d ribiendo e do AGEND En el paso ompila el c s líneas de ar tu archi rcado erro debes sub cpp que se r que si tien s te apoyar ad, también rará tus du arte en la EXE” en el ente víncul s FlUjOs” ue el Lengu eam y fstr actividad etos perten s entre un duro de la c el código DA, y añad o 5 de la Ag ódigo fuen código el fu ivo hasta q or, de lo co bir a la pla realizó. nes dudas ran en la c n puedes a das. realizació cual se m lo para que uaje de pro ream para de apren necientes a n program computado fuente de de las líne genda pers nte comple uncionamie que haya s ontrario no ataforma es puedes in construcció acudir con t n de esta uestra el p e lo pueda ogramació manipular ndizaje, la a las clase ma escrito ora. el program as de cód sonal. eto resulta ento de las sido comp o se tomará s el código ngresar al ón de tu ap tu asesor(a actividad programa s ver: ón C++ per r flujos de a cual tien es ofstream en Lengua ma propue igo necesa ante y expl mismas. ilado, es d á esta activ o fuente, es Foro 1. “ prendizaje a), el(ella) t d revisa el completo rmite al pro e entrada ne por ob m y fstream aje C++ y esto en e arias para ica detallad decir que D vidad com s decir el a “AgEnDa.” para la rea te apoyará archivo funcionan ogramado y salida de bjetivo que m, mismos un archivo el ejercicio realizar lo damente en Dev C++ no o válida. E archivo con Dónde tus alización de con mucho ejecutable ndo, da clic r e e s o o o n o El n s e o e c 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 6 puntos Aquí acaba la actividad 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 winbgim.h. Aquí termina la introducción. La librería winbgim.h fue creada originalmente por Konstantin Knizhnik's winbgi shareware y posteriormente modificada por Mark Richardson y Michael Main, esta librería emula (imita) el funcionamiento de la librería llamada graphics.h de Borland C++, la cual tiene un costo monetario. Una de las ventajas de utilizar la librería winbgim.h en lugar de grapics.h es implementar de forma más sencilla las funciones del mouse, por ejemplo las funcioners: mousex() y mousey(), las cuales devuelven la coordenada de la posición en x o en y del mouse, otra ventaja de la utilización de esta librería es que permite al programador crear aplicaciones gráficas 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++. Com el ID Insta unid vez pres form muc que esta Da c Com aplic arch tamb exte tiene este tare mo se men DE Dev C++ all Winbgim dad de apre que hayas senta enseg ma en que cha atenció este mism a unidad tem clic sobre e mo pudiste cación gráf hivo que al bién obse ensión .cpp e un progra e programa a es el sigu ncionó ante +, para rea m for Dev C endizaje), e s descargad guida, el cu se debe ge n a la form mo procedim mática. el siguiente observar, fica lo prim lmacenará ervaste que éste es e ama escrito en ejecuc uiente: riormente, lizar esta a C++ (lo enc este archivo do el archiv ual te most enerar un a en que se miento lo r vínculo par el video ero que se la informa e después l archivo qu o en Lengua ión es nece para trabaj cción es ne cuentras en o se encarg vo Install W trará la form proyecto p e debe crea ealizarás a ra que veas tutorial mu e debe hace ación refere de dar cli ue contend aje C++, qu esario com jar con la li ecesario qu n el aparta gara de ins Winbgim for ma de insta ara crear u ar un proye al momento s el video tu uestra que er es guard ente al pro c sobre el rá el código ue es el Dem mpilar este c ibrería winb ue descargu ado recurso stalar y con r Dev C++ alar y conf una aplicac ecto para g o de realiza utorial: Tuto para crea dar el archi yecto de la l botón “Gu o fuente de mo de una código fuen bgim.h es n ues el arch os de la pá nfigurar la li observa e figurar la lib ción grafica generar una ar los pro orial ar un proy ivo con ext a aplicació uardar” se e la aplicac aplicación nte. El resu necesario in ivo ejecuta ágina princi ibrería winb el video tuto brería winb a en el Dev a aplicación ogramas ex yecto que tensión .de ón grafica, abre un a ción grafica grafica, pa ultado de re nstalarla en ble llamado pal de esta bgim.h, una orial que se gim.h, y la v C++. Pon n grafica, ya xpuestos en realice una ev que es e así mismo archivo con , el cual ya ara observa ealizar esta n o a a e a n a n a el o, n a r a En l esqu ante Se winb desp expl winb Para aplic prog El si Exp En la #inc se in Ense func Des se in libre initw vent En l pará posi mov Nota izqu la imagen uina super eriormente, te recomie bgim.h (el pués de “e licará a de bgim.h. a comenzar cación graf grama term iguiente es licación: a primer lín clude<>. Co ncluyan en eguida se ción main(), pués de la nvocó a la ería winbgim window() ac tana gráfica a siguiente ámetros 0,0 icionar el c verá el curs a: El orige uierda de la anterior pu rior izquier la otra ven enda “expl l cual es m explorar” e etalle la for r a explicar fica, que e inará al pre el progrma nea de códi on esta acc el código f encuentra la cual def llave de ap función init m.h,), que s cepta dos a a, en este e e línea, en e 0), esta fu cursos en l os de la ve n del eje c misma. uedes obse rda, es la ntana es la y orar” el có muy sencill l código fu rma de util rte la forma es muy sen esionar cua a: go se inclu ción se logra uente, ante la declarac fine el traba pertura que twindow() ( se encarga argumentos ejemplo se el código fu nción se e os paráme entana gráfi coordenado ervar que s ventana e ya conocida ódigo fuen o), para q uente “dem lizar las fu de utilizar ncilla, la cu alquier tecla ye la librer a que las fu es de que e ción y defin ajo que rea e delimita la (recuerda q de abrir (de s de tipo e indico que uente se in encarga de etros indica ca. o de la ve e desplega en modo a ventana g nte de la a ue puedas mo” no lo e nciones de la librería ual muestr a desde la e ía winbgim unciones de este sea com nición de la lizara la ap as líneas de que esta fu esplegar) u entero, los se abrirá u nvoco a la f “mover” ados, los cu entana graf aron dos ve grafico qu generada p aplicación s deducir e entiendes, eclaradas y winbgim.h ra en una entrada est .h a través eclaradas y mpilado. a función pr plicación grá e código qu nción fue d una ventana cuales ind na ventana función mo el cursor uales indica fica se enc entanas, la ue produce por el Lengu “demo” pr el funciona no te pre y definidas se te invita ventana g tándar de la de la direc y definidas rincipal del áfica. ue pertenec declarada y a gráfica. ican el tam a de 400 x 3 veto() (a la de la vent arán la coo cuentra e a correspon e la librería uaje C++. rovista por miento del ocupes en s dentro de a a realizar rafica una a computad ctiva del pre dentro de e programa, cen a la fun y definida d maño en pi 300 pixeles a cual se le ana gráfica ordenada a n la esquin ndiente a la a instalada r la librería mismo. S nseguida se e la librería la siguiente línea, este dora. eprocesado esta librería es decir la nción main( dentro de la xeles de la s. e dieron los a, es decir a donde se na superio a a a Si e a e e r a a ) a a s r, e r En e deci En l recta argu En e actu La s mien mom escr clos ante El re Esta void ci este ejemp ir a la esqu a siguiente a, desde la umentos qu este ejemp ual del curso sentencia d ntras no s mento se pr rita en este egraph(), s es de la llav esultado de as son algu rcle (int x, int y, in plo se indic ina superio e línea de có posición a ue posee, e lo se indicó or de la ven de control w e presiona resiona cua código fue se encarga ve de cierre e editar, dep nas de las Niombre de nt radius); có que el c or izquierda ódigo, se in actual del cu stos argum ó que se dib ntana gráfic while escri a una tecla alquier tecla ente. de cerrar e de la func purar y com funciones c la función cursor de la de la venta nvocó a la f ursor hasta mentos son bujaría una ca, hasta la ta en la si a desde la a dejará de la ventana ión main() e mpilar este c con que cu a pantalla g ana grafica función line a la coorden de tipo ente a línea recta a coordena guiente lín a entrada e e ejecutarse gráfica y a el programa código fuen enta la libre Dibuja un c grafica se m . eto(), la cua nada que se ero. a desde la ada (50,50). ea de cód estándar d e y ensegu al no existir a termina. nte es el sig ería winbgi circulo con centro movió a la al se encarg e le indique posición (0 . igo, se eje de la comp uida se invo r ninguna o guiente: m.h: Trabajo desarr o en x,y y de radio coordenad ga de dibuja e por medio 0,0) que es ecutará con putadora, s ocara la últ otra instruc rollado o radius da (0,0), es ar una línea o de los dos s la posición ntinuamente si en algún ima función ción escrita s a s n e n n a void cl void lin void lin void pu void re void se int mou int mou Acti Aho impl sigu circl Inst 1. 2. Com fuen eardevice (void); ne (int x1, int y1, i neto (int x, int y) utpixel (int x, int y ectangle (int left, in etcolor (int color); usex(void) usey(void) vidad de a ra que con lementar fu uiente activi e(), moveto rucciones: Edita, dep Explica el código fuen mo una form nte es el sig nt x2, int y2); , int color); nt top, int right, int aprendizaje noces la fo unciones qu idad de apr o(), lineto() pura y com funcionam nte. ma de ayu guiente: t bottom); e 11. “Círc orma en qu ue manipul rendizaje, l y rectangle mpila el cód iento del c uda se te p culo y cuad ue el Leng lan gráficos a cual tiene e() initwindo digo fuente código fuen presenta el Borra la pa Traza una Traza una Dibuja un p color. Dibuja un r Establece e Retorna la Retorna la drado” uaje de pr s a través e por objet ow() y close e que a co nte comple resultado antalla línea desde la co línea desde la po pixel en la coorde rectangulo de esq el color actual. coordenada x de coordenada y de rogramació de la libre tivo que pra egraph(). ntinuación eto a través de editar, oordenada (x1,y2) osición actual de c enada (x,y) de colo quenas top,left y r el Mouse relativa a el Mouse relativa a ón C++ pe ería grafica actiques y n se te mue s de come depurar y hasta la coorden cursor hasta la coo or dado por elnom ight,bottom a la esquina supe a la esquina supe ermite al p a winbgim.h analices la estra: entarios esc compilar e nada (x2,y2). ordenada (x,y) mbre en ingles del rior izquierda rior izquierda rogramado h, realiza la s funciones critos en e este código r a s el o 4 5 6 Esta Para impl se u recta códi men expl 3. que hay 4. Si tienes 5. El archiv 6. Cuando formato: a actividad a continuar lementar la utilizará otra as a travé igo fuente ncionada licará el mis ya sido com s alguna du vo que deb tengas lis : apellidopa tiene un va r con la exp librería gra a aplicación és del mous del prog anteriorme smo: mpilado, es d uda comuní es subir a l sto tu archi aterno_mate alor de 4 pu plicación ac afica winbg n grafica, la se. Ensegu grama que ente, y decir que D ícate con tu a plataform vo guárdal erno_nomb ntos cerca de la im.h a cual dibuj uida se te m e realiza posteriorm Dev C++ no u asesor pa ma es el que lo en tu PC bre_activida a forma de jará líneas muestra el la acción mente se 3. o te haya m ara que te a e tu asesor C y envíal adnumero Debes en arcado erro ayude a acl r te indicara o con tus viar tu arc or, ararla a, datos en e chivo hasta el siguiente a e Exp En e prep del p Des prog le as cuat En l ante b y graf Ense sigu de la La p coor en la Ens del p milis La t coor en la Ense Una corr la fu licacion: el código f procesador programa ( pués de la grama se d signo el va trocientos. a siguiente eriormente, c respectiv fica de 400x eguida se e uientes línea a computad primera líne rdenada en a variable ll eguida se i programa, segundos, e ercera líne rdenada en a variable ll eguida se i a vez que espondient unción llam fuente se i #include<> main()), la a llave que eclararon c alor inicial d Las variab e línea de c a esta func vamente, po x400 pixele encuentra as de códig dora: ea de códig n x del punt lamada x. invoca a la el valor de en el ejemp ea de códig n y del pun lamada y. nvoca nuev en las va te a la coor ada lineto() ncluyó la l > enseguid cual define e delimita l cuatro varia de 400 y a bles: x e y n código se in ción se le p or lo anteri es. escrita la s go, siempre go de la im tero del mo función lla la misma plo se realiz go de la ima tero del mo vamente a ariables de rdenada ac ), a la cual ibrería graf a se encue e la acción q as líneas d ables de tip a la variable no fueron in nvocó a la f pasan como or, despué sentencia d e y cuando magen ante ouse (este v amada dela se indica d zará un reta agen anter ouse(este v la función d e tipo ente ctual del pu se le pasa fica llamad entra la dec que realizar de código o entero lla e llamada c iciadas con función initw o argument és de comp e control w o no se pre rior invoca valor siemp ay() la cual dentro de lo ardo de un rior invoca valor siemp delay(), exp ero llamad ntero del m an como arg da winbghim claración y ra este prog que perten amadas x.y c se le asig n ningún va window(), c to las dos v pilar el códi while(), la cu esione ningu a la funció pre será de l realiza un os paréntes milisegund a la funció pre será de plicada ante das x e y mouse, se i gumento la m.h, a trav definición grama. necen a la y.b y c, a la gno el valo alor. cuya explic variables d igo fuente s ual permitir una tecla e ón mousex e tipo int), e n retardo o sis de la fun do. ón mousey e tipo int) e eriormente. se tiene nvoca, en as variables vés de la d de la funci a función p a variable lla or inicial de cación ya se e tipo ente se abrirá u rá que se e en la entrad x(), la cual el valor es a pausa en l nción y se y(), la cual el valor se a . almacenad el siguiente s x e y, por directiva de ón principa principal de amada b se e b es deci e menciono ro llamadas una ventana ejecuten las da estánda devuelve la almacenado la ejecución expresa en devuelve la almacenará do el valo e renglón, a r lo anterior el al el e r o s a s r a o n n a á r a r, esta vent El re Com com supe depe ejec un e Ante algu 1.- ¿ el pu 2.- ¿ tu m a función s tana grafica esultado de mo puedes menzará un erior izquie ende de la cutando la a ejemplo se es de contin una duda, in ¿Por qué se untero del m ¿qué pasa c mueves el p se encarga a (no confu e editar, dep observar a aplicació erda de la v a posición aplicación, muestra a c nuar, conte nteractúa co e dibuja una mouse?. con la posic untero del m rá de dibu ndir con el purar y com se dibujo ón por prim ventana gra del puntero podrás ver continuació sta las sigu on tus com a línea rect ción del cu mouse. ujar una lín puntero de mpilar el cód una línea mera vez e afica), hast o), si llega r que se di ón: uientes preg pañeros y t ta desde la rsor de la v nea recta d el mouse). digo fuente a recta en n las coord ta la coord ras a mov bujará una guntas rela tu asesor e coordenad ventana gra desde la p e completo e la ventan denadas (0 enada actu ver el punte línea sigu acionadas a en el chat 1 da (0,0), ha afica si desp posición ac es el siguie na grafica 0,0), es de ual del pun ero del mo iendo la tra a la explicac para resolv sta la posic pués de qu tual del cu ente: (por defau ecir, desde ntero del m ouse mientr ayectoria q ción anterio verla: ción actual e se realizó ursor, en la ult siempre la esquina mouse, (esto ras se está ue realices or, si tienes que tenga ó una línea a e a o á s, 3.- ¿Cómo se modificaría el funcionamiento del programa anterior si se aumenta el retardo o pausa realizado por la función delay(): de la siguiente forma: delay(50); Chat 1. “Dibujando líneas rectas.” Este chat es para que dialogues en tiempo real con tus compañeros y con tu asesor, en él puedes compartir las dudas que te hayan surgido al respecto del programa para hacer líneas, así como en la solución 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 día y hora para la realización de este chat, él estará moderando y compartiendo contigo y con tus compañeros este espacio sincrónico. 2. Si tienes alguna duda con respecto al funcionamiento del programa para dibujar líneas rectas con el mouse o con alguna de las tres preguntas arriba planteadas, proponla en este chat para que los compañeros que puedan y sepan la respuesta te ayuden en su solución. 3. Por otro lado, si tú conoces la forma de apoyar a alguno de tus compañeros para resolver algún problema de los antes mencionados, apóyalo para que pueda seguir avanzando en la construcción de su conocimiento, recuerda que las respuestas que des deben ser siempre de manera respetuosa. 4. La participación en este chat será evaluada por el asesor. Calificación por participar en el chat: 5 puntos Aquí termin la actividad: Como te habrás 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 ingeniería. Si deseas saber más acerca de la librería grafica winbgim.h se te recomienda leer la siguiente nota informativa, esta contiene la explicación acerca de todas las funciones con que cuenta esta librería y suficientes ejemplos para ayudarte y profundizar aún más en este tema. Da clic sobre el siguiente vínculo para que puedas ver la nota: “Librería winbgim” Acti Es m com gráf Instr 1 vidad de a momento d mo objetivo fica winbgim rucciones: 1. A contin archivo indica: aprendizaje de que reaf que practiq m.h que ya nuación se t ejecutable, e 12 “Anali firmes cono ques el uso estudiaste. te presenta analiza cu El sig izando y de ocimientos, o y la imple . a un código idadosame resultado d guiente: escribiendo , por favor ementación fuente, el r ente cada u de editar, d o.” realiza la de las func resultado e uno de ellos depurar y co siguiente a ciones con en pantalla d s y después ompilar est actividad, la que cuent del mismo s realiza lo te código fu a cual tiene ta la librería y un que se te uente es el e a Descarga el archivo ejecutable de este programa dando clic sobre el siguiente vínculo: “Clic” 3 Ya que hayas hecho el análisis de estas tres fases en el diseño del programa retoma el código fuente anterior, edítalo, compilado, depúralo y explica detalladamente en cada una de las líneas de código el funcionamiento de las mismas, a través de comentarios. Si no haces la explicación de las líneas de código no se te tomará esta actividad como válida. 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 válida. 5 El archivo que debes subir a la plataforma es el código fuente, es decir el archivo con extensión .cpp que se realizó. 6 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 4 puntos Actividad integradora 2. “Calculando y graficando” Ha llegado el momento de poner en práctica los conocimientos que has aprendido en esta unidad temática, realiza la siguiente actividad, la cual tiene por objetivo que desarrolles aplicaciones gráficas a través de los métodos declarados y definidos dentro de la librería gráfica winbgim.h, para la solución de problemas de ingeniería. Instrucciones: 1. Realiza un programa escrito en Lenguaje C++ a través del paradigma de la Programación Orientada a Objetos, capaz de calcular la trayectoria de un proyectil lanzado en tiro parabólico. 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 cálculos. b) Debe calcular por lo menos 30 puntos de la trayectoria del proyectil en tiro parabólico y mostrar los resultados en la pantalla de la computadora. c) Debe graficar en una ventana gráfica los resultados obtenidos en el inciso b 3. 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 a través 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 válida. 5. El archivo que debes subir a la plataforma es el código fuente, es decir el archivo con extensión .cpp que se realizó. Esta Foro Este surj real Inst 1 2 3 4 Esta 6. Como para c Dond el tiem 7. Si tien compa tengan puede 8. Cuand format a actividad o 2. “Tiro pa e foro es p an en la r ices apren rucciones: 1. Si tiene puedan 2. Por otr resolver que pue respues 3. Si hay a este esp 4. Tu ases a actividad o una ayud calcular las e mpo y g es nes problem arte con tus n, recuerda es acudir co do tengas li to: aellidopa tiene un va arabólico” para que d realización ndizaje cola s alguna d y sepan la ro lado, si r algún pr eda seguir stas que de lguna cues pacio te va or evaluar tiene un va da para la s coordenad la graveda mas para la s compañer a que traba on tu aseso sto el archi aterno_mat alor de 9 pu dialogues n de la act aborativo c duda o pro a respuesta tú conoc oblema qu r avanzand es deben s stión que n a a orientar á las partic alor de 4 pu realización das de un m d. a realizació ros tus dud ajar en eq r(a), el(ella ivo guárdal terno_nom ntos con tus co tividad int con tus com oblema pla a te ayude ces la form ue present do en la co er siempre nadie sepa r para logr cipaciones ntos n de este c móvil en tiro ón de esta das y si pue uipo pued ) te apoyar o en tu PC bre_activid ompañero tegradora mpañeros. antéala en en en su so ma de apo te en la re onstrucció e de mane a, puedes a rar tu come en las que código fuen o parabólico actividad edes, ayúda de ayudarte rá con much y envíalo c dadnumero s y se apo 2, el obje . este foro olución. oyar a alg ealización n de su co ra respetu acudir a tu etido. e apoyes a nte se te p o: Vi es la proyectil, lanzamien ingresa al alos a reso e para apr ho gusto. con tus dato oyen a res etivo de es para que guno de tu de su act onocimien uosa. asesor, él alguno de presentan la velocidad Ѳ es el nto del pro foro “Tiro p lver las pre render mejo os en el sig solver las sta activid los compa us compañ ividad, ap nto, recuer además d e tus comp as fórmulas inicial de ángulo de oyectil, t es parabólico” eguntas que or, también guiente dudas que dad es que añeros que ñeros para óyalo para rda que las de modera pañeros. s el e s ”, e n e e e a a s r Conclusiones: En esta unidad de aprendizaje aprendiste, entre otras cosas que: C++ es un lenguaje de programación orientado a objetos, diseñado en el año 1980 por Bjarne Stroustrup, es una extensión del lenguaje de programación C, donde la Programación Orientada a Objetos o POO se usa, para diseñar aplicaciones y programas informáticos, este lenguaje está basado en varias técnicas, incluyendo herencia, abstracción, polimorfismo y encapsulamiento. En la Programación 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 múltiples objetos con características 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 características de los objetos se les llama miembros en lugar de atributos y estos son públicos por default, por lo anterior cualquier método o función puede acceder al contenido que almacenan las estructuras e incluso modificarlo, como consecuencia de esto ya no es necesario declarar y definir métodos para acceder o modificar a los miembros de una estructura. Un operador es un símbolo que le indica al compilador la realización de una determinada operación sobre variables u objetos. Cuando un operador es capaz de desarrollar su función 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 más clases ya existentes, estas modificaciones generalmente consisten en añadir nuevos atributos y métodos 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 programación C++ las clases derivadas “heredan” todos los atributos y métodos de su clase base, excepto el constructor de la clase base. Del mismo modo el mecanismo de la herencia múltiple provisto por el Lenguaje de programación C++ permite al programador derivar una clase, modificando una o más 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 método (función) que no pertenezca a una clase de objetos, con esto, el método 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 librería winbgim.h emula (imita) el funcionamiento de la librería llamada graphics.h, una de las ventajas de utilizar la librería winbgim.h en lugar de grapics.h es que hace posible que el programador crear aplicaciones gráficas 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 además de reconocer tu esfuerzo, dedicación y compromiso, es muy grato comentarte que muy seguramente ahora eres capaz de desarrollar aplicaciones y programas informáticos a través del paradigma de la programación orientada a objetos y sus interacciones, incluyendo herencia, abstracción y polimorfismo, en lenguaje de programación C++ para solucionar problemas de ingeniería. Para finalizar no resta más que Felicitarte por concluir esta unidad de aprendizaje, muchas gracias por tu esfuerzo y dedicación. Recuerda que la suerte favorece a las mentes preparadas.