You are on page 1of 44

Cdigo:

CPE-FO-02-03

Direccin Acadmica

Revisin: 1
Pgina:

MANUAL DE PRCTICAS

1 de 44

MANUAL DE PRCTICAS DE PROGRAMACIN BSICA


PROGRAMA EDUCATIVO:
INGENIERA MECATRNICA

Calkin, Campeche, Julio de 2016

Revis

Aprob

Autoriz

Presidente de Academia

Coordinador del PE

Direccin Acadmica

Direccin Acadmica

Cdigo:
CPE-FO-02-03
Revisin: 1

MANUAL DE PRCTICAS

Pgina:
2 de 44

NDICE

CONCEPTO

PGINAS

PRESENTACIN ............................................................................................................................. 3
OBJETIVO GENERAL ..................................................................................................................... 3
SEGURIDAD ..................................................................................................................................... 3
PRCTICA NO. 1 CLASIFICACIN DEL SOFTWARE .......................................................... 4
PRCTICA NO. 2 SOLUCIONA PROBLEMAS CON ALGORITMOS A PARTIR DE
ENUNCIADOS PROPORCIONADOS POR EL PROFESOR .................................................. 7
PRCTICA NO. 3 CREACIN, COMPILACIN Y EJECUCIN DE PROGRAMAS....... 12
PRCTICA NO. 4 DECLARACIN DE VARIABLES Y SOLUCIN DE EXPRESIONES
ARITMTICAS............................................................................................................................... 20
PRCTICA NO. 5 SENTENCIAS DE CONTROL................................................................... 24
PRCTICA NO. 6 ARREGLOS ................................................................................................. 28
PRCTICA NO. 7 MDULOS ................................................................................................... 31
PRCTICA NO. 8 ARCHIVOS .................................................................................................. 36

Direccin Acadmica

Cdigo:
CPE-FO-02-03
Revisin: 1

MANUAL DE PRCTICAS

Pgina:
3 de 44

PRESENTACIN

Este manual comprende las prcticas que complementan el conocimiento en las unidades de la
materia Programacin Bsica que pretende formar una lgica de pensamiento estructurada, para la
comprensin del funcionamiento de los diferentes lenguajes de programacin de alto nivel,
indispensables para el desarrollo de tecnologa informtica.

OBJETIVO GENERAL
Aportar al Ingeniero en Mecatrnica la capacidad para desarrollar un pensamiento lgico,
identificar el proceso de creacin de un programa y desarrollo de algoritmos para resolver
problemas.

SEGURIDAD
Reglamento para el Uso de las Salas de Cmputo
http://www.itescam.edu.mx/portal/reglamento.php.

Direccin Acadmica

Cdigo:
CPE-FO-02-03
Revisin: 1

MANUAL DE PRCTICAS

Pgina:
4 de 44

PRCTICA NO. 1 CLASIFICACIN DEL SOFTWARE


-INTRODUCCIN

Esta prctica cubre la primera competencia especfica de la primera unidad, Conceptos bsicos y
Algoritmos para introducir al estudiante en la programacin con la finalidad de obtener las bases
conceptuales para abordar las siguientes temticas.
MARCO TERICO
SOFTWARE
Se le denomina Software a los "programas" de una computadora, es la parte lgica de la
computadora y permite la realizacin de tareas en especfico y el manejo de recursos.
Principalmente se clasifica en dos tipos:

Software de sistema:
Son los programas bsicos y es llamado tambin sistema operativo, el cual coordina y manipula el
hardware del CPU, como la memoria, las unidades de disco; organiza los archivos en diversos
dispositivos de almacenamiento y gestiona los errores de hardware y del mismo software.

Software de aplicacin:
Son aquellos que nos ayudan con la elaboracin y realizacin de una tarea en especfico, este tipo
de software est diseado para brindarle a los usuarios una herramienta ms para la realizacin de
sus necesidades. Un claro ejemplo de software de aplicacin podemos mencionar el office (Word,
Excel, One Note, etc.).

-OBJETIVO
El estudiante Investigar los tipos de software que se utilizan en una organizacin y los identificar
dentro de la clasificacin del software.

-LUGAR
Cmputo
-SEMANA DE EJECUCIN

Direccin Acadmica

Cdigo:
CPE-FO-02-03
Revisin: 1

MANUAL DE PRCTICAS

Pgina:
5 de 44

Semana 1
- MATERIAL Y EQUIPO

Un equipo de escritorio para cada alumno


Microsoft Word
Hoja
Lpiz o Lapicero.

-DESARROLLO DE LA PRCTICA
I.

La actividad ser llevada a cabo en equipos de 3.

II. El estudiante elaborar en la herramienta Word un reporte con el contenido de la prctica


en donde plasme los resultados de la misma.
III. El estudiante realizar una investigacin acerca de la clasificacin del software segn su
funcin, incluyendo:
a. Descripcin de software.
b. Definicin de cada uno de los grupos en los que se clasifica el software.
c. Ejemplos de cada uno de los grupos.
IV. El estudiante elaborar una lista con los diferentes tipos de software que utilizan en las
organizaciones.
V. Clasificar los distintos softwares enlistados basndose en la investigacin realizada.
VI. Contestar a las siguientes preguntas:
a. Cul es la diferencia de un software de sistemas y de aplicacin?
b. Cmo se puede clasificar el software Ubuntu?
c. Si tengo un software que me ayuda a crear grficas de la productividad en mi
empresa, Qu tipo de software es?

- EVALUACIN Y RESULTADOS

Cdigo:
CPE-FO-02-03

Direccin Acadmica

Revisin: 1
Pgina:

MANUAL DE PRCTICAS

6 de 44
PTS

Elabor el reporte incluyendo todos los puntos


de la prctica

2.5

Investig las clasificaciones del


incluyendo los puntos solicitados.

1.5

software

Elabor una lista con por lo menos 7 softwares

1.5

Realiz la clasificacin de los diferentes


softwares enlistados de manera correcta.

2.5

Contest de manera correcta las preguntas.

-REFERENCIAS

Luis Joyanes Aguilar, Fundamentos de Programacin, Ed. Prentice Hall.


Garca Molina, Jess J., Una introduccin a la programacin: un enfoque
algortmico, Madrid, Espaa: Thomson, 2005.

Programacin en C++: Algoritmos, Estructuras de datos y objetos.

Farrell Joyce, Introduccin a la programacin: Lgica y diseo, Mxico:


Thomson, 2001.

-ANEXOS

Direccin Acadmica

Cdigo:
CPE-FO-02-03
Revisin: 1

MANUAL DE PRCTICAS

Pgina:
7 de 44

PRCTICA NO. 2 SOLUCIONA PROBLEMAS CON ALGORITMOS A PARTIR DE


ENUNCIADOS PROPORCIONADOS POR EL PROFESOR
-INTRODUCCIN

Esta prctica complementa la primera competencia especfica de la primera unidad, Conceptos


bsicos y Algoritmos para introducir al estudiante en la programacin con la finalidad de obtener
las bases conceptuales para abordar las siguientes temticas. Tambin desarrolla el anlisis y
desarrollo de algoritmos, con la finalidad de dar solucin a problemas reales utilizando el
razonamiento lgico.
MARCO TERICO

La computadora no solamente es una mquina que puede realizar procesos para darnos
resultados, sin que tengamos la nocin exacta de las operaciones que realiza para llegar
a esos resultados. Con la computadora adems de lo anterior tambin podemos disear
soluciones a la medida, de problemas especficos que se nos presenten. Ms an, si
estos involucran operaciones matemticas complejas y/o repetitivas, o requieren del
manejo de un volumen muy grande de datos.
El diseo de soluciones a la medida de nuestros problemas, requiere como en otras
disciplinas una metodologa que nos ensee de manera gradual, la forma de llegar a
estas soluciones.
A las soluciones creadas por computadora se les conoce como programas y no son ms
que una serie de operaciones que realiza la computadora para llegar a un resultado, con
un grupo de datos especficos. Lo anterior nos lleva al razonamiento de que un programa
nos sirve para solucionar un problema especfico.
Para poder realizar programas, adems de conocer la metodologa mencionada, tambin
debemos de conocer, de manera especfica las funciones que puede realizar la
computadora y las formas en que se pueden manejar los elementos que hay en la misma.
La estructura secuencial es aquella en la que una accin (instruccin) sigue a otra en
secuencia. Las tareas se suceden de tal modo que la salida de una es la entrada de la
siguiente y as sucesivamente hasta el fin del proceso. Una estructura secuencial se
representa de la siguiente forma:

Direccin Acadmica

Cdigo:
CPE-FO-02-03
Revisin: 1

MANUAL DE PRCTICAS

Pgina:
8 de 44

Inicio
Accion1
Accion2
.
.
AccionN
Fin
Lectura: La lectura consiste en recibir desde un dispositivo de entrada (p.ej. el teclado) un
valor. Esta operacin se representa en un pseudocdigo como sigue:
Leer a, b
Donde a y b son las variables que recibirn los valores
Escritura: Consiste en mandar por un dispositivo de salida (p.ej. monitor o impresora) un
resultado o mensaje. Este proceso se representa en un pseudocdigo como sigue:
Escribe El resultado es:, R
Donde El resultado es: es un mensaje que se desea aparezca y R es una variable que
contiene un valor.

-OBJETIVO
El estudiante analizar problemas y representar su solucin mediante algoritmos.

-LUGAR
Cmputo
-SEMANA DE EJECUCIN
Semana 3
- MATERIAL Y EQUIPO

Un equipo de escritorio para cada alumno

Direccin Acadmica

Cdigo:
CPE-FO-02-03
Revisin: 1

MANUAL DE PRCTICAS

Pgina:
9 de 44

Microsoft Word
Hoja
Lpiz o Lapicero.

-DESARROLLO DE LA PRCTICA
I.

La actividad ser llevada a cabo en parejas.

II. El estudiante elaborar en la herramienta Word un reporte con el contenido de la prctica


en donde plasme los resultados de la misma, ayudndose con su hoja y papel en donde
realizar anotaciones previas para luego plasmarlos en el documento.
III. Las problemticas a resolver sern las siguientes:
a. Determinar si un nmero dado es positivo o negativo.
b. A un trabajador le descuentan de su sueldo el 10% si su sueldo es menor o igual a
1000, por encima de 1000 y hasta 2000 el 5% del adicional, y por encima de 2000
el 3% del adicional. Calcular el descuento y sueldo neto que recibe el trabajador
dado su sueldo.
c. Dado un monto calcular el descuento considerando que por encima de 100 el
descuento es el 10% y por debajo de 100 el descuento es el 2%.
d. Calcular el nmero de pulsaciones que debe tener una persona por cada 10
segundos de ejercicio aerbico; la frmula que se aplica cuando el sexo es
femenino es: num. pulsaciones = (220 - edad) /10 y si el sexo es masculino: num.
pulsaciones = (210 - edad) /10
IV. Analizar la problemtica para cada uno de los problemas:
a. Definir qu es lo que se desea.
b. Cules son las restricciones.
c. Cules son los datos de entrada.
d. Cules son los datos de salida.
Ej. Primera Problemtica.
Problema: Determinar si un nmero es positivo o negativo.
Restricciones: El nmero no puede ser cero.
Datos de entrada: Nmero real.

Cdigo:
CPE-FO-02-03

Direccin Acadmica

Revisin: 1
Pgina:

MANUAL DE PRCTICAS

10 de 44

Datos de Salida: La validacin de si el nmero es positivo o negativo.


V. Elaborar la solucin a travs de un algoritmo para cada uno de los problemas.
Ej. Primera problemtica:

1. Solicitar un nmero real.


2. Si el nmero ingresado es cero, se regresa al punto 1.
3. Si el nmero ingresado es diferente de cero, se validan las siguientes condiciones:
3.1 Si el nmero ingresado es mayor a 0 se puede afirmar que el nmero es
positivo.
3.2 Si el nmero ingresado es menor a 0 se puede afirmar que el nmero es
negativo.
VI. Validacin del algoritmo a travs de una prueba de escritorio.
Ej. Primera problemtica:

- EVALUACIN Y RESULTADOS

PTS
Logr analizar la problemtica en los 4 puntos
correspondientes.

1.5

Logr elaborar
algoritmo

2.5

la solucin en forma de

Cdigo:
CPE-FO-02-03

Direccin Acadmica

Revisin: 1
Pgina:

MANUAL DE PRCTICAS

11 de 44

Realiz la validacin del algoritmo mediante


una prueba de escritorio

1.5

Solucion las 4 problemticas

2.5

Realiz de manera correcta el reporte

-REFERENCIAS

-ANEXOS

Luis Joyanes Aguilar, Fundamentos de Programacin, Ed. Prentice Hall.


Garca Molina, Jess J., Una introduccin a la programacin: un enfoque
algortmico, Madrid, Espaa: Thomson, 2005.
Programacin en C++: Algoritmos, Estructuras de datos y objetos.
Farrell Joyce, Introduccin a la programacin: Lgica y diseo, Mxico:
Thomson, 2001.

Direccin Acadmica

Cdigo:
CPE-FO-02-03
Revisin: 1

MANUAL DE PRCTICAS

Pgina:
12 de 44

PRCTICA NO. 3 CREACIN, COMPILACIN Y EJECUCIN DE PROGRAMAS


-INTRODUCCIN

Esta prctica cubre la competencia especfica de la segunda unidad, Introduccin a la


programacin, donde conoce las caractersticas principales de un lenguaje de programacin que le
permiten codificar algoritmos, compilar y ejecutar programas y que tiene como finalidad obtener y
aplicar herramientas necesarias para disear e implementar soluciones en un lenguaje de
programacin, utilizando los conceptos adquiridos.

Marco terico:
Dev-C++ es un entorno de desarrollo integrado (IDE) para programar en lenguaje C/C++.
Usa MinGW, que es una versin de GCC (GNU Compiler Collection) como su compilador.
Dev-C++ puede adems ser usado en combinacin con Cygwin y cualquier compilador
basado en GCC.
El Entorno est desarrollado en el lenguaje Delphi de Borland. Tiene una pgina de
paquetes opcionales para instalar, con diferentes bibliotecas de cdigo abierto.
Cuando inicias por primera vez Dev-C++, aparece el siguiente dilogo:

Direccin Acadmica

Cdigo:
CPE-FO-02-03
Revisin: 1

MANUAL DE PRCTICAS

Pgina:
13 de 44

Puedes seleccionar el idioma que Dev-C++ usar, y tambin puedes escoger el tema de los
iconos.
Tambin puedes activar el recuadro Use XP Theme para que el entorno grfico se muestre con el
estilo de Windows XP.
Si has instalado una versin de Dev-C++ que incluye el compilador Mingw, todo lo que necesitas
hacer es configurar el software, ya que los directorios del compilador vienen por defecto unos
predefinidos. En este caso puedes seguir Pasos Bsicos.
Sin embargo, si prefieres usar tu propia distribucin de GCC (como Cygwin), puedes configurar
manualmente los directorios del compilador y sus configuraciones para que se ajusten a tu sistema.
Puedes hacer esto en Opciones del Compilador.

Creando un Proyecto
Qu es un proyecto de Dev-C++?
Un proyecto es un ncleo para administrar tus diferentes cdigos y opciones dentro de Dev-C++.
Te ayuda para visualizar tus distintos cdigos fuente incluidos en el proyecto, y puedes fcilmente
establecer distintos parmetros, como por ejemplo el tipo de programa que ests realizando (GUI,
consola, DLL...).
Cundo usar Proyectos de Dev-C++?
- Si tienes ms de un archivo con cdigo fuente, debes crear un proyecto con el fin de que DevC++ una y construya tus archivos con cdigo fuente juntos, despus de compilarlos.
- Si necesitas crear un DLL o una biblioteca esttica, o quieres usar Archivos de Recursos en tu
programa.
Cmo puedo crear un Proyecto de Dev-C++?
Ve al men Archivo y haz clic en Nuevo, luego en Proyecto. Un dilogo que contiene los distintos
tipos de Proyectos se abrir.

Cdigo:
CPE-FO-02-03

Direccin Acadmica

Revisin: 1
MANUAL DE PRCTICAS

Pgina:
14 de 44

Aqu se nombran los proyectos bsicos:


- Aplicacin de Windows (Windows Application): Crea un programa para Windows, que utiliza el
API de Win32.
- Aplicacin en modo de consola (Console Application): Crea un programa en modo consola.
- Biblioteca esttica (Static Lib): Crea un proyecto vaco con las opciones necesarias para construir
una biblioteca esttica.
- DLL (Dynamic Link Library DLL): Crea una Biblioteca de Enlace Dinmico DLL para Win32.
Ahora cuando has seleccionado un tipo de proyecto, debes introducir el nombre de tu proyecto en
donde corresponde y selecciona el lenguaje de programacin que usars en el proyecto C o C++,
despus haz clic en Aceptar.

Procesos de Compilacin y Linkado


Cmo funcionan o trabajan los procesos de compilacin y linkado?
El proceso se puede dividir en diferentes programas:
- Preprocesador: procesa el cdigo fuente antes de compilarlo. Por ejemplo, chequea y reemplaza
Macros y Archivos Incluidos (#include) en tu cdigo.
- Compilador: transforma tus archivos de cdigo fuente en cdigo ensamblador (lenguaje del
procesador que las personas puedan entender)
- Ensamblador: coge el cdigo ensamblador y genera cdigo objeto binario, que slo entiende la
mquina.
- Linker: ensambla y une objetos juntos para crear un nico ejecutable.
Cmo hacer esto en Dev-C++?
Simplemente ve al men Ejecutar y haz clic en Compilar
ser el que se preocupe de llamar al compilador y al linker.

(o presionando: Ctrl+F9), y Dev-C++

Esta ventana de informacin de la compilacin muestra que est haciendo Dev-C++ (los
programas que ejecuta, los archivos que est creando,).
En el caso de tu programa se compile, vers el mensaje Compilacin Concluida con xito en esta
ventana.
Si el proceso de compilacin o linkado fallan, vers una lista de errores en dicho panel:

Direccin Acadmica

Cdigo:
CPE-FO-02-03
Revisin: 1

MANUAL DE PRCTICAS

Pgina:
15 de 44

Puedes saltar a la lnea incorrecta de tu cdigo directamente haciendo doble clic donde aparece la
lnea con la descripcin del error.

Ejecutando tu programa
Fundamentos:
Ejecutar tu programa es tan sencillo como hacer clic en el men Ejecutar, luego en Ejecutar
presionando: Ctrl+F10).
Puedes tambin usar Compilar y Ejecutar
de ejecutarlo.

(o

(o presionando F9) para construir tu programa antes

Si necesitas pasarle parmetros a tu programa, puedes usar el botn Parmetros dentro del men
Ejecutar y especificarle los parmetros.
Perfiles:
Este proceso dice que sucede en tu programa (llamadas a funciones, tiempo de ejecucin, ...)
cuando lo ejecutas.
Tienes que activar la opcin Generar informacin del perfil para anlisis en Opciones del
Compilador, en Generacin del perfil del Cdigo en Configuracin. Luego compila tu proyecto
como generalmente se hace, y ejectalo (la informacin del perfil se generar y ser refrescada
cada vez que ejecutes el programa).
Cuando est listo, haz clic en el men Ejecutar, despus en Anlisis del perfil. La ventana del perfil
aparecer y mostrar el perfil de ejecucin de tu programa.
-OBJETIVO
El estudiante aprender a codificar algoritmos, crear, compilar y ejecutar programas utilizando
diferentes editores de programacin.
-LUGAR
Computo

Direccin Acadmica

Cdigo:
CPE-FO-02-03
Revisin: 1

MANUAL DE PRCTICAS

Pgina:
16 de 44

-SEMANA DE EJECUCIN
Semana 4
- MATERIAL Y EQUIPO

Un equipo de escritorio para cada alumno.


Microsoft Word
IDE de desarrollo DevC++.
Lpiz y papel.

-DESARROLLO DE LA PRCTICA
I.

La actividad ser llevada a cabo de forma individual.

II. El estudiante elaborar en la herramienta Word un reporte con el contenido de la prctica


en donde plasme los resultados de la misma, ayudndose con su hoja y papel en donde
realizar su anlisis de la problemtica para luego plasmarlos en el documento. De igual
manera realizar en el IDE de desarrollo las actividades necesarias para crear, compilar y
ejecutar su programa.
III. Las problemticas a resolver sern las siguientes:
a. Suponga que un individuo desea invertir su capital en un banco y desea saber
cunto dinero ganara despus de un mes si el banco paga a razn de 2%
mensual.
b. Un trabajador desea saber la cantidad de salario que recibir en razn de la
cantidad de horas trabajadas por el valor por hora que se le paga a dicho
empleado. Calcular su salario e imprimirlo
c. Elaborar un cdigo de programacin que solicite al usuario su nombre y ao de
nacimiento y que d como resultado la edad de la persona.
d. Una tienda ofrece un descuento del 15% sobre el total de la compra y un cliente
desea saber cunto deber pagar finalmente por su compra.
IV. Crear un nuevo archivo en el IDE DevC++.
Ej. Problemtica a.- Seleccionar el men archivo->Nuevo->Archivo fuente.
V. Crear el cdigo del programa.
Ej. Problemtica a.-

Direccin Acadmica

Cdigo:
CPE-FO-02-03
Revisin: 1

MANUAL DE PRCTICAS

Pgina:
17 de 44

/*a.Suponga que un individuo desea invertir su capital en un banco


y desea saber cunto dinero ganara despus de un mes si el banco paga a razn de 2%
mensual.*/
#include <iostream> // biblioteca incluida de entradas y salidas
using namespace std; // uso del espacio de nombres estndar
int main(){ //Funcin principal main
int c; //capital que se desea invertir.
cout<<"Cual es el capital que desea invertir?"<<endl; // salida a pantalla
cin>>c; // entrada del usuario
cout<<"La ganancia obtenida es de: "<<c*.02<<endl; // salida a pantalla
return 0;
}
VI. Guardar el archivo.
Ej. Problemtica a.- Seleccionar el men archivo->Guardar.
VII. Compilar el cdigo y enlazarlo.
Ej. Problemtica a.Simplemente ve al men Ejecutar y haz clic en Compilar
(o presionando: Ctrl+F9), y
Dev-C++ ser el que se preocupe de llamar al compilador y al linker.
VIII. Ejecutar el programa.
Ej. Problemtica a.Ejecutar tu programa es tan sencillo como hacer clic en el men Ejecutar, luego en
Ejecutar

(o presionando: Ctrl+F10).

IX. Colocar el cdigo fuente y las pantallas de ejecucin de los problemas en la seccin de
resultados.
Ej. Problemtica a.-

Cdigo:
CPE-FO-02-03

Direccin Acadmica

Revisin: 1
Pgina:

MANUAL DE PRCTICAS

18 de 44

- EVALUACIN Y RESULTADOS

PTS
Logr crear el archivo en el IDE DevC++

1.5

Logro crear el cdigo del programa para cada


una de las problemticas

1.5

Cdigo:
CPE-FO-02-03

Direccin Acadmica

Revisin: 1
Pgina:

MANUAL DE PRCTICAS

19 de 44

Logr guardar el archivo, compilar el cdigo y


enlazarlo

1.5

Logr ejecutar los programas de los 4 ejercicios


de manera correcta.

1.5

Realiz de manera correcta el reporte

-REFERENCIAS

Luis Joyanes Aguilar, Fundamentos de Programacin, Ed. Prentice Hall.


Garca Molina, Jess J., Una introduccin a la programacin: un enfoque
algortmico, Madrid, Espaa: Thomson, 2005.
Programacin en C++: Algoritmos, Estructuras de datos y objetos.
Deitel y Deitel. Como Programar en C++ quinta Edicin. Prentice Hall.

-ANEXOS

Direccin Acadmica

Cdigo:
CPE-FO-02-03
Revisin: 1

MANUAL DE PRCTICAS

Pgina:
20 de 44

PRCTICA NO. 4 DECLARACIN DE VARIABLES Y SOLUCIN DE EXPRESIONES


ARITMTICAS
-INTRODUCCIN

Esta prctica complementa la competencia especfica de la segunda unidad, Introduccin a la


programacin, donde conoce las caractersticas principales de un lenguaje de programacin que le
permiten codificar algoritmos, compilar y ejecutar programas y que tiene como finalidad obtener y
aplicar herramientas necesarias para disear e implementar soluciones en un lenguaje de
programacin, utilizando los conceptos adquiridos.
MARCO TERICO

Una variable es un espacio de la memoria del ordenador a la que asignamos un contenido


que puede ser un valor numrico (slo nmeros, con su valor de clculo) o alfanumrico
(slo texto o texto con nmeros).
Cada variable tiene un nico nombre el cual no puede ser cambiado. Dos o ms variables
pueden tener el mismo contenido, pero no el mismo nombre. El nombre de una variable
comenzar siempre por una letra, pudiendo contener a continuacin tanto letras como
nmeros. Las letras pueden ser tanto maysculas como minsculas. No se admiten
nombres de variables incluyendo espacios en blanco ni smbolos especiales como
guiones, puntos, comas, comillas, etc. ni smbolos matemticos ni palabras clave (que
veremos ms adelante, y que incluyen inicio, fin, verdadero, falso, entonces...).
El nombre de una variable ser lo suficientemente largo como para impedir que pueda
confundirse con otra variable por tener nombre similar, as como para aportar una
indicacin de cul es el contenido o funcin que cumple.

Las expresiones son combinaciones de constantes, variables, smbolos de operacin,


parntesis y nombres de funciones especiales. Por ejemplo:
(a+b)/2
Cada expresin toma un valor que se determina tomando los valores de las variables y
constantes implicadas y la ejecucin de las operaciones indicadas. Una expresin consta
de operadores y operandos. Segn sea el tipo de datos que manipulan, se clasifican las
expresiones en:

Direccin Acadmica

Cdigo:
CPE-FO-02-03
Revisin: 1

MANUAL DE PRCTICAS

Pgina:
21 de 44

- Aritmticas
- Relacinales
- Lgicas

-OBJETIVO
El estudiante identificar las variables y solucionar expresiones aritmticas utilizando diferentes
tipos de operadores.
-LUGAR
Computo
-SEMANA DE EJECUCIN
Semana 5
- MATERIAL Y EQUIPO

Un equipo de escritorio para cada alumno.


Microsoft Word
IDE de desarrollo DevC++.
Lpiz y papel.

-DESARROLLO DE LA PRCTICA
I.

La actividad ser llevada a cabo de forma individual.

II. El estudiante elaborar en la herramienta Word un reporte con el contenido de la prctica


en donde plasme los resultados de la misma, ayudndose con su hoja y papel en donde
realizar su anlisis de la problemtica para luego plasmarlos en el documento. De igual
manera realizar en el IDE de desarrollo las actividades necesarias para crear, compilar y
ejecutar su programa.
III. Realizar un programa para cada una de las expresiones de la siguiente tabla.
Expresiones.
Expresin
*ejemplo

Expresin para C++


(a+b)/2

Cdigo:
CPE-FO-02-03

Direccin Acadmica

Revisin: 1
Pgina:

MANUAL DE PRCTICAS

22 de 44
(((a/b)^(1/2))^(1/3))

IV. Colocar el cdigo fuente y las pantallas de ejecucin de los problemas en la seccin de
resultados.

- EVALUACIN Y RESULTADOS

PTS
Logr crear la expresin en el lenguaje de
programacin de manera correcta

1.5

Logro resolver de manera correcta todas las


expresiones

1.5

Llen de manera correcta la tabla

3.5

Realiz de manera correcta el reporte

3.5

Direccin Acadmica

Cdigo:
CPE-FO-02-03
Revisin: 1

MANUAL DE PRCTICAS

Pgina:
23 de 44

-REFERENCIAS

Luis Joyanes Aguilar, Fundamentos de Programacin, Ed. Prentice Hall.


Garca Molina, Jess J., Una introduccin a la programacin: un enfoque algortmico,
Madrid, Espaa: Thomson, 2005.
Programacin en C++: Algoritmos, Estructuras de datos y objetos.
Deitel y Deitel. Como Programar en C++ quinta Edicin. Prentice Hall.

-ANEXOS

Direccin Acadmica

Cdigo:
CPE-FO-02-03
Revisin: 1

MANUAL DE PRCTICAS

Pgina:
24 de 44

PRCTICA NO. 5 SENTENCIAS DE CONTROL


-INTRODUCCIN

Esta prctica cubre la competencia especfica de la tercera unidad, control de flujo que se refiere a
construir programas utilizando estructuras condicionales y repetitivas para aumentar su
funcionalidad y cuyo objetivo es que el alumno identifique, comprenda, seleccione e implemente la
estructura de control ms adecuada a un problema especfico, as como el diseo de bloques de
cdigos reutilizables, dado que es comn encontrar en la prctica problemas cuyas operaciones
estn condicionadas o deban ejecutarse un nmero repetido de veces.
MARCO TERICO

En todos los algoritmos realizados hasta este punto, cada instruccin se ha ejecutado
exactamente una vez en el orden en que aparecera. Sin embargo, con frecuencia, se
encuentran situaciones en las que se deben proporcionar instrucciones alternativas que
pueden o no ejecutarse dependiendo de los datos de entrada, reflejado el cumplimiento o
no de una determinada condicin.
Una sentencia puede constar de una de las siguientes:
Una sentencia nica o un bloque de sentencias o ninguna sentencia (sentencia vaca).
Se pueden dividir las sentencias de control de programa principalmente en 3 categoras:
a) Secuenciales
b) Selectivas
c) Repetitivas

a) SECUENCIALES
Las instrucciones se ejecutarn en el orden en que ellas aparecen en el programa, a
menos de que se indique lo contrario, el sistema ejecutar automticamente los
enunciados en una secuencia.

Direccin Acadmica

Cdigo:
CPE-FO-02-03
Revisin: 1

MANUAL DE PRCTICAS

Pgina:
25 de 44

b) SELECTIVAS
Con este tipo de secuencia se toman decisiones lgicas. Con stas se evala una
condicin y en funcin del resultado de la misma se realiza una opcin u otra. La
condicin puede resultar verdadera o falsa, as es como se decide si la condicin se
ejecuta o no.
Las condiciones se especifican utilizando expresiones lgicas y relacionales.
Existen tres tipos de estructuras de seleccin.
Simple
Se ejecuta una accin si la condicin es verdadera, si la condicin es falsa pasa por alto
la condicin.
Se utiliza la estructura if (condicion) en este tipo de secuencia.
Bicondicional
La ejecucin de la accin de esta secuencia depende del valor de esta. La accin de
diferente en cada valor. Se utiliza la estructura if (condicion) else en este tipo de
secuencia.
Condicin mltiple
Depende del valor de una expresin la accin que se ejecutar, pero en esta secuencia
se decidir entre diferentes acciones. Se utiliza la estructura switch (expresion) en esta
secuencia.
Repetitivas
Repiten una secuencia de instrucciones un nmero determinado de veces, en tanto cierta
condicin se mantenga verdadera.
Esta secuencia proporciona 3 tipos de estructuras repetitivas:
- While
- For

Direccin Acadmica

Cdigo:
CPE-FO-02-03
Revisin: 1

MANUAL DE PRCTICAS

Pgina:
26 de 44

-Do while
En las estructuras selectivas y en las estructuras repetitivas se utilizan expresiones
lgicas y relacionales.
-OBJETIVO
El estudiante desarrollar su capacidad para solucionar problemas utilizando sentencias de control.
-LUGAR
Computo
-SEMANA DE EJECUCIN
Semana 7
- MATERIAL Y EQUIPO

Un equipo de escritorio para cada alumno.


Microsoft Word
IDE de desarrollo DevC++.
Lpiz y papel.

-DESARROLLO DE LA PRCTICA
I.

La actividad ser llevada a cabo de forma individual.

II. El estudiante elaborar en la herramienta Word un reporte con el contenido de la prctica


en donde plasme los resultados de la misma, ayudndose con su hoja y papel en donde
realizar su anlisis de la problemtica para luego plasmarlos en el documento. De igual
manera realizar en el IDE de desarrollo las actividades necesarias para resolver las
problemticas.
III. Realizar un programa para cada una de las siguientes problemticas.
a. Realizar un programa que imprima todos los nmeros impares que estn entre dos
nmeros definidos por el usuario.
b. Crear un programa que permita convertir calificaciones numricas, segn la
siguiente tabla: A = 19 y 20, B =16, 17 y 18, C = 13, 14 y 15, D = 10, 11 y 12, E = 1
hasta el 9. Se asume que la nota est comprendida entre 1 y 20.
c. Dado un numero verificar:
- Que tenga dos dgitos
- Verificar si sus dgitos son pares
- Promediar sus dgitos

Cdigo:
CPE-FO-02-03

Direccin Acadmica

Revisin: 1
Pgina:

MANUAL DE PRCTICAS

27 de 44

IV. Colocar el cdigo fuente y las pantallas de ejecucin de los problemas en la seccin de
resultados.

- EVALUACIN Y RESULTADOS

PTS
Logr analizar de manera correcta cada una de
las problemticas

1.5

Logro resolver de manera correcta todas las


problemticas

1.5

Utiliz de manera correcta las sentencias de


control

3.5

Realiz de manera correcta el reporte

3.5

-REFERENCIAS

Luis Joyanes Aguilar, Fundamentos de Programacin, Ed. Prentice Hall.


Programacin en C++ 2a Edicin Mc Graw Hill. Luis Joyanes Aguilar
Garca Molina, Jess J., Una introduccin a la programacin: un enfoque algortmico,
Madrid, Espaa: Thomson, 2005.
Programacin en C++: Algoritmos, Estructuras de datos y objetos.
Deitel y Deitel. Como Programar en C++ quinta Edicin. Prentice Hall.

-ANEXOS

Direccin Acadmica

Cdigo:
CPE-FO-02-03
Revisin: 1

MANUAL DE PRCTICAS

Pgina:
28 de 44

PRCTICA NO. 6 ARREGLOS


-INTRODUCCIN

Esta prctica cubre la competencia especfica de la tercera unidad, control de flujo que se refiere a
construir programas utilizando estructuras condicionales y repetitivas para aumentar su
funcionalidad y cuyo objetivo es que el alumno identifique, comprenda, seleccione e implemente la
estructura de control ms adecuada a un problema especfico, as como el diseo de bloques de
cdigos reutilizables, dado que es comn encontrar en la prctica problemas cuyas operaciones
estn condicionadas o deban ejecutarse un nmero repetido de veces.
MARCO TERICO

Un Arreglo es un grupo de variables (llamadas elementos o componentes) que contienen


valores, todos del mismo tipo. Se dividen en dos categoras: tipos primitivos y tipos de
referencia.
Los Arreglos son objetos, por lo que se consideran como tipos de referencia, lo que
consideramos generalmente como un arreglo es en realidad una referencia a un objeto
arreglo en memoria.
Para hacer referencia a un elemento especifico en un arreglo, debemos especificar el
nombre de la referencia al arreglo y el nmero de la posicin del elemento en el arreglo.
El nmero de la posicin del elemento se conoce formalmente como el ndice o subndice
del elemento.
Un arreglo puede definirse como un grupo o una coleccin finita, homognea y ordenada
de elementos. Los arreglos pueden ser de los siguientes tipos:
De una dimensin
De dos dimensiones
De tres o ms dimensiones.

-OBJETIVO
El estudiante desarrollar su capacidad para solucionar problemas utilizando estructuras de tipo
arreglos.

Direccin Acadmica

Cdigo:
CPE-FO-02-03
Revisin: 1

MANUAL DE PRCTICAS

Pgina:
29 de 44

-LUGAR
Computo
-SEMANA DE EJECUCIN
Semana 8
- MATERIAL Y EQUIPO

Un equipo de escritorio para cada alumno.


Microsoft Word
IDE de desarrollo DevC++.
Lpiz y papel.

-DESARROLLO DE LA PRCTICA
I.

La actividad ser llevada a cabo de forma individual.

II. El estudiante elaborar en la herramienta Word un reporte con el contenido de la prctica


en donde plasme los resultados de la misma, ayudndose con su hoja y papel en donde
realizar su anlisis de la problemtica para luego plasmarlos en el documento. De igual
manera realizar en el IDE de desarrollo las actividades necesarias para resolver las
problemticas.
III. Realizar un programa para cada una de las siguientes problemticas.
a. Escribir un programa que utilice un arreglo llamado Comenzar
Declare una constante llamada TAMANIO_ARREGLO que se inicialice con 10.
Declare un arreglo con TAMANIO_ARREGLO elementos de tipo double, e
inicialice los elementos con 0.
Haga referencia al elemento 4 del arreglo
Asigne el valor 1.667 al elemento 9 del arreglo
Asigne el valor 3.333 al elemento 6 del arreglo
Sume todos los elementos del arreglo, utilizando una estructura for. Declare la
variable entera x como variable de control para el ciclo.
b. Escribir un programa que llene un arreglo de 10 nmeros enteros aleatorios
comprendidos entre 50 y 100, copie en otro arreglo esos nmeros multiplicados
por 0,5 y muestre ambos arreglos.
c. Elaborar un programa que ingrese los valores de produccin de un producto para
sus doce meses e indique cual es el mes de mayor produccin
d. Escribir un cdigo que permita almacenar las 3 calificaciones de 4 alumnos
solicitadas al usuario creando un arreglo y que en su ltima posicin guarde el
promedio de sus calificaciones. Mostrando el resultado como el nombre del alumno
seguido de sus calificaciones y su promedio
IV. Colocar el cdigo fuente y las pantallas de ejecucin de los problemas en la seccin de
resultados.

Cdigo:
CPE-FO-02-03

Direccin Acadmica

Revisin: 1
Pgina:

MANUAL DE PRCTICAS

30 de 44

- EVALUACIN Y RESULTADOS

PTS
Logr analizar de manera correcta cada una de
las problemticas

1.5

Logro resolver de manera correcta todas las


problemticas

1.5

Utiliz de manera correcta los elementos de


tipo arreglo

3.5

Realiz de manera correcta el reporte

3.5

-REFERENCIAS

Luis Joyanes Aguilar, Fundamentos de Programacin, Ed. Prentice Hall.


Programacin en C++ 2a Edicin Mc Graw Hill. Luis Joyanes Aguilar
Garca Molina, Jess J., Una introduccin a la programacin: un enfoque algortmico,
Madrid, Espaa: Thomson, 2005.
Programacin en C++: Algoritmos, Estructuras de datos y objetos.
Deitel y Deitel. Como Programar en C++ quinta Edicin. Prentice Hall.

-ANEXOS

Direccin Acadmica

Cdigo:
CPE-FO-02-03
Revisin: 1

MANUAL DE PRCTICAS

Pgina:
31 de 44

PRCTICA NO. 7 MDULOS


-INTRODUCCIN

Esta prctica cubre la competencia especfica de la quinta unidad, Mdulos, en donde se aplican
funciones y procedimientos en programas donde se trata como un bloque ayuda al re uso del
software, que incluso es adaptable al establecer mdulos que pueden ser llamados con diferentes
parmetros.
MARCO TERICO
La estrategia del divide y vencers ... Es una de las estrategias ms usadas en programacin de
ordenadores y, una vez ms, abordaremos aqu el uso de esta filosofa compaera de viaje del
programador. El concepto de mdulo aplicado a la programacin es muy similar al aplicable a
distintas facetas de la vida: un escritor divide su curso en captulos y apndices. Un profesor divide
el contenido de la asignatura en temas. Un ingeniero divide el proyecto en partes como Memoria,
Anejos, Pliego de Condiciones, Presupuesto y Planos. En una fbrica, organizan el trabajo
dividiendo las reas funcionales en recepcin de materias primas, rea de pre-proceso, rea de
proceso, rea de post-proceso y rea de carga y despacho de producto terminado. En una
residencia escolar el edificio se ha dividido en mdulos: mdulo de cocina, mdulo de lavandera,
mdulo de docencia, mdulo de actividades extraescolares, mdulo de oficinas y mdulo de
dormitorios.
De cara a la programacin, usaremos la divisin del programa en mdulos por ser una estrategia
efectiva para resolver problemas complejos. Bajo el paraguas del programa principal, distintos
subprogramas sern llamados para realizar su funcin en un orden establecido. Analicemos las
caractersticas que podemos esperar de una organizacin modular:

1. Existe una estructura superior que engloba a todos los mdulos. Cada mdulo contribuye a
un fin ms amplio mediante el cumplimiento de una tarea concreta.
2. Existe independencia de funcionamiento entre mdulos, lo cual no significa que no haya
comunicacin entre ellos o entre ellos y la estructura superior. En la residencia escolar, la
lavandera funciona de forma independiente a la cocina. Pero puede haber comunicacin y
trasvase de materiales o informacin. Por ejemplo, la cocina enva a la lavandera una
partida de manteles sucios para que sean procesados y devueltos limpios. A su vez
lavandera y cocina se comunican con la direccin del centro para recibir instrucciones,
comunicar situaciones, etc.

Direccin Acadmica

Cdigo:
CPE-FO-02-03
Revisin: 1

MANUAL DE PRCTICAS

Pgina:
32 de 44

3. El hecho de que exista independencia de funcionamiento unido a que un mdulo cumpla


una tarea concreta, permiten su traslado o copia de organizacin en otra estructura con
otro fin global, pero necesitada del proceso concreto que realiza el mdulo. Supongamos
que la residencia escolar cierra por falta de alumnos y que al mismo tiempo se va a abrir
un pequeo hospital en otro punto de la ciudad. Tras el anlisis del caso, podra decidirse
trasladar la lavandera de la residencia al hospital: sus mismas mquinas, personal,
organizacin, etc. Estaramos cambiando de lavar ropa escolar, de cama, manteles, etc.
por uniformes sanitarios, toallas... pero en definitiva telas, que es para lo que est
preparada la lavandera. El traslado o copia de un mdulo requerirn normalmente una
pequea adaptacin para encajar adecuadamente en la nueva estructura.
4. La complejidad del mdulo es siempre inferior a la del conjunto de mdulos. Esto es
importante en relacin a la estructura mental de los humanos y est relacionado con el
trabajo por objetivos. Dividir un gran problema en pequeos problemas se comprueba
que lleva a:
Aumentar la probabilidad de xito al concentrar la atencin del programador y evitar su
dispersin.
Aumentar la tranquilidad y confianza del programador, que ante problemas de magnitud excesiva
tender a sentirse abrumado.
La complejidad intrnseca de un problema ser la misma independientemente de cmo se aborde.
En cambio, la probabilidad de xito para un humano vara sustancialmente segn sea la estrategia
de resolucin empleada.
5. La divisin por mdulos facilita la organizacin y comprensin desde el punto de vista
humano. Es nuevamente el factor humano el que nos anima a programar por mdulos.
Con esta organizacin nos resulta ms fcil detectar errores, corregirlos y tener una visin
de conjunto de la estructura y funcionamiento de los programas.
La posibilidad de traslado o copia de mdulos es de gran importancia para los programadores.
Consideremos que si resolvemos un proceso genrico ya no ser necesario volverlo a programar:
bastar con coger el mdulo correspondiente, copiarlo e insertarlo en el nuevo programa. Por
supuesto habr que realizar las adaptaciones necesarias (nombres de variables, forma de
presentar los resultados, etc.) y verificar su buen funcionamiento dentro de la nueva estructura.
Los mdulos independientes de que podemos disponer pueden tener como fin buscar un archivo
dentro de un directorio, ordenar por orden alfabtico una serie de palabras, calcular el
determinante de una matriz, resolver una ecuacin cuadrtica o una ecuacin cbica, hallar la
ecuacin de una recta y prcticamente cualquier proceso de tipo lgico-matemtico que se nos

Direccin Acadmica

Cdigo:
CPE-FO-02-03
Revisin: 1

MANUAL DE PRCTICAS

Pgina:
33 de 44

pueda ocurrir. Cuando tratamos el apartado de Conocer el problema ya nos habamos referido a
la existencia de estos programas hechos que pueden ser insertados dentro de nuestros
programas y que circulan entre programadores, en revistas especializadas o en internet. Vamos a
profundizar ahora un poco en las ventajas y en las desventajas de recurrir al uso de este tipo de
mdulos.
En primer lugar, cabe considerarlos como potentes herramientas al servicio del programador.
Permiten resolver problemas de cierta complejidad con poco esfuerzo. Si vamos a realizar un
programa donde son necesarias operaciones con matrices como calcular determinantes, inversas,
traspuestas, sumas, restas, multiplicaciones, etc. Para qu desarrollar algoritmos que ya estn
inventados y que podemos copiar y pegar? Efectivamente puede ser poco interesante y hasta
aburrido para un programador repetir desarrollos de cdigos muy similares.
-OBJETIVO
El estudiante desarrollar su capacidad para solucionar problemas a travs de mdulos o
funciones.
-LUGAR
Computo
-SEMANA DE EJECUCIN
Semana 12
- MATERIAL Y EQUIPO

Un equipo de escritorio para cada alumno.


Microsoft Word
IDE de desarrollo DevC++.
Lpiz y papel.

-DESARROLLO DE LA PRCTICA
I.

La actividad ser llevada a cabo de forma individual.

II. El estudiante elaborar en la herramienta Word un reporte con el contenido de la prctica


en donde plasme los resultados de la misma, ayudndose con su hoja y papel en donde
realizar su anlisis de la problemtica para luego plasmarlos en el documento. De igual
manera realizar en el IDE de desarrollo las actividades necesarias para resolver las
problemticas.
III. Realizar un programa para cada una de las siguientes problemticas.

Cdigo:
CPE-FO-02-03

Direccin Acadmica

Revisin: 1
Pgina:

MANUAL DE PRCTICAS

34 de 44

a. Realizar una funcin, en el cual se ingresa un nmero entero de varias cifras y un


entero con una posicin y se retorna el dgito de dicha posicin.
Ej.- Entrada: 987 2
Salida : 8
b. Realizar un programa con una funcin que permita calcular la suma de los
divisores de n distintos de n. La funcin deber recibir como parmetro el nmero
n.
c. Realiza un programa con una funcin ingrese un numero de 2 dgitos y devuelva el
numero escrito en texto
d. Realizar un programa que permita ver si una fecha, introducida como mes, da y
ao es una fecha correcta; es decir, el da ha de estar comprendido entre 1 y 31, el
mes entre 1 y 12, y, si esto es correcto, ver si el nmero de das para un mes
concreto es vlido. El tipo de la funcin ser un valor lgico, verdadero si la fecha
es correcta o falso si es errnea. Agregar una funcin EsBisiesto, a la que se
pasar el valor entero correspondiente a un ao determinado y devolver un valor
lgico verdadero si el ao es bisiesto y falso en caso contrario. Nota: Un ao ser
bisiesto si es divisible por 4, excepto los que son divisibles por 100 pero no por
400, es decir, menos aquellos con los que comienza el siglo.
IV. Colocar el cdigo fuente y las pantallas de ejecucin de los problemas en la seccin de
resultados.

- EVALUACIN Y RESULTADOS

PTS
Logr analizar de manera correcta cada una de
las problemticas

1.5

Logro resolver de manera correcta todas las


problemticas

1.5

Utiliz de manera correcta funciones

3.5

Realiz de manera correcta el reporte

3.5

-REFERENCIAS

Luis Joyanes Aguilar, Fundamentos de Programacin, Ed. Prentice Hall.


Programacin en C++ 2a Edicin Mc Graw Hill. Luis Joyanes Aguilar

Direccin Acadmica

Cdigo:
CPE-FO-02-03
Revisin: 1

MANUAL DE PRCTICAS

Pgina:
35 de 44

Garca Molina, Jess J., Una introduccin a la programacin: un enfoque algortmico,


Madrid, Espaa: Thomson, 2005.
Programacin en C++: Algoritmos, Estructuras de datos y objetos.
Deitel y Deitel. Como Programar en C++ quinta Edicin. Prentice Hall.

-ANEXOS

Direccin Acadmica

Cdigo:
CPE-FO-02-03
Revisin: 1

MANUAL DE PRCTICAS

Pgina:
36 de 44

PRCTICA NO. 8 ARCHIVOS


-INTRODUCCIN

Esta prctica cubre la competencia especfica de la sptima unidad, Archivos, en donde se utilizan
las libreras de manejos de archivos para crearlos, leerlos, escribirlos, buscar registros y cerrarlos,
ya sean secuenciales o directos que pueden ser secuenciales o directos, el manejo de operaciones
con archivos y la aplicacin de estos junto con el resto de las otras estructuras de programacin.
MARCO TERICO
Operaciones de escritura en archivos.
El archivo de cabecera fstream.h define las clases ifstream, ostream y fstream para
operaciones de lectura, escritura y lectura/escritura en archivos respectivamente. Para
trabajar con archivos debemos crear objetos de stas clases de acuerdo a las
operaciones que deseamos efectuar. Empezamos con las operaciones de escritura,
para lo cual bsicamente declaramos un objeto de la clase ofstream, despus
utilizamos la funcin miembro open para abrir el archivo, escribimos en el archivo los
datos que sean necesarios utilizando el operador de insercin y por ltimo cerramos el
archivo por medio de la funcin miembro close, ste proceso est ilustrado en nuestro
primer programa, archiv01.cpp.

#include <fstream.h>
int main()
{
ofstream archivo;

// objeto de la clase ofstream

archivo.open("datos.txt");
archivo << "Primera lnea de texto" << endl;
archivo << "Segunda lnea de texto" << endl;
archivo << "ltima lnea de texto" << endl;
archivo.close();

Direccin Acadmica

Cdigo:
CPE-FO-02-03
Revisin: 1

MANUAL DE PRCTICAS

Pgina:
37 de 44

return 0;
}

En el programa se ha creado un objeto de la clase ofstream llamado archivo, posteriormente se


utiliza la funcin miembro open para abrir el arcivo especificado en la cadena de texto que se
encuentra dentro del parntesis de la funcin. Podemos invocar a la funcin constructora de clase
de tal manera que el archivo tambin se puede abrir utilizando la siguiente instruccin:

ofstream archivo("datos.txt");

// constructora de ofstream

Naturalmente, al utilizar la funcin constructora ya no es necesario utilizar la funcin


miembro open, sta forma de abrir un archivo es preferida porque el cdigo es ms compacto y
fcil de leer. De la misma forma que se utilizan manipuladores de salida para modificar la
presentacin en pantalla de los datos del programa, igual es posible utilizar stos manipuladores al
escribir datos en un archivo como lo demuestra el programa archiv02.cpp, observe que se utiliza
un constructor para crear y abrir el archivo llamado Datos.txt:

#include <iostream.h>
#include <fstream.h>
#include <iomanip.h>
int main()
{
ofstream archivo("Datos.txt");
int numero;

// constructor de ofstream

cout << "Introduzca un numero:" << endl;


cin >> numero;
archivo << "El valor introducido en base 10 es: " << numero << endl;
archivo << resetiosflags(ios::dec);
archivo << setiosflags(ios::oct);

Direccin Acadmica

Cdigo:
CPE-FO-02-03
Revisin: 1

MANUAL DE PRCTICAS

Pgina:
38 de 44

archivo << "en base octal es: " << numero << endl;
archivo << resetiosflags(ios::oct);
archivo << setiosflags(ios::hex);
archivo << "y en base hexadecimal es: " << numero << endl;
archivo << setiosflags(ios::uppercase|ios::showbase);
archivo << "utilizando los manipuladores uppercase y showbase"
<< " el valor es: " << numero << endl;
archivo
archivo
archivo
archivo

<<
<<
<<
<<

resetiosflags(ios::uppercase|ios::showbase);
resetiosflags(ios::hex);
setiosflags(ios::showpos|ios::showpoint|ios::fixed);
"Utilizando los manipuladores showpos," << " showpoint y fixed: " << (f

archivo << resetiosflags(ios::showpos|ios::showpoint|ios::fixed);


archivo << "Finalmente el valor es " << numero << endl;
archivo.close();
return 0;
}

Modos de apertura de archivo

Al especificar la apertura de un archivo como se ha mostrado en los programas anteriores, el programa


sobreescribe cualquier archivo existente llamado Datos.txt en el directorio de trabajo del programa.
Dependiendo del propsito del programa es posible que sea necesario agregar datos a los ya existentes en el
archivo, o quiz sea necesario que las operaciones del programa no se lleven a cabo en caso de que el
archivo especificado exista en el disco, para stos casos podemos especificar el modo de apertura del archivo
incluyendo un parmetro adicional en el constructor, cualquiera de los siguientes:

ios::app Operaciones de aadidura.

ios::ate Coloca el apuntador del archivo al final del mismo.

ios::in Operaciones de lectura. Esta es la opcin por defecto para objetos de la clase ifstream.

ios::out Operaciones de escritura. Esta es la opcin por defecto para objetos de la clase ofstream.

ios::nocreate Si el archivo no existe se suspende la operacin.

ios::noreplace Crea un archivo, si existe uno con el mismo nombre la operacin se suspende.

Direccin Acadmica

Cdigo:
CPE-FO-02-03
Revisin: 1

MANUAL DE PRCTICAS

ios::trunc Crea un archivo, si existe uno con el mismo nombre lo borra.

ios::binary Operaciones binarias.

Pgina:
39 de 44

De esta manera, podemos modificar el modo de apertura del programa archiv02.cpp para que los datos del
programa se concatenen en el archivo Datos.txt simplemente escribiendo el constructor as: ofstream
archivo("Datos.txt", ios::app);. Si deseamos que el programa no sobreescriba un archivo existente
especificamos el constructor de sta manera: ofstream archivo("Datos.txt", ios::noreplace);. Utilizando los
especificadores de modo de apertura se puede conseguir un mayor control en las operaciones de E/S en
archivos.

Operaciones de lectura de archivos


Para abrir un archivo y realizar operaciones de lectura se crea un objeto de la clase ifstream y se
procede prcticamente de la misma forma que lo expuesto en el apartado anterior. Despus de
abrir el archivo se puede leer su contenido utilizando las funciones miembros de la clase ifstream o
bin el operador de extraccin. Cuando se lee un archivo, por lo general se empieza al principio del
mismo y se leer su contenido hasta que se encuentre el final del archivo. Para determinar si se ha
llegado al final del archivo se puede utilizar la funcin miembro eof como condicin de un
bucle while. Adems, se puede utilizar la funcin miembro fail para detectar un error al abrir el
archivo, esto se demuestra en el siguiente programa, archiv03.cpp:

#include <fstream.h>
int main()
{
ifstream archivo("Pruebas.txt", ios::noreplace);
char linea[128];
long contador = 0L;
if(archivo.fail())
cerr << "Error al abrir el archivo Pruebas.txt" << endl;
else
while(!archivo.eof())
{
archivo.getline(linea, sizeof(linea));
cout << linea << endl;
if((++contador % 24)==0)
{

Direccin Acadmica

Cdigo:
CPE-FO-02-03
Revisin: 1

MANUAL DE PRCTICAS

Pgina:
40 de 44

cout << "CONTINUA...";


cin.get();
}
}
archivo.close();
return 0;
}

El
programa
crea
un
objeto
de
la
clase ifstream para
abrir
el
archivo
llamado Pruebas.txt utilizando
el
constructor
de
clase
y
especificando
la
bandera ios::noreplace que evita que el archivo sea sobreescrito. Si por algn motivo ocurre un
error al abrir el archivo se genera el mensaje de error especificado en la lnea 16. En ausencia de
errores el programa entra en un bucle while el cual est evaluado por efecto de la funcin
miembro eof( ) de tal manera que el bucle se ejecuta hasta encontrar el final del archivo. Utlizando
la funcin miembro getline( ) se obtiene una lnea de texto y se exhibe en pantalla, lnea 21, luego
utilizamos una instruccin condicional if con el operador de mdulo (%) para determinar si se han
ledo 24 lneas de texto. Cada vez que el contador de lneas dividido entre 24 d como resultado un
resduo de cero el programa se detiene permitiendo leer las 24 lneas de texto previas. Para
continuar se debe presionar la tecla enter y entonces el programa leer y mostrar en pantalla las
siguientes 24 lneas de texto, lneas 22 a la 26.
Analizando el xito de E/S de archivos
En el programa archiv03.cpp se utiliz la funcin miembro fail( ) para determinar el xito de la
operacin de apertura del archivoPruebas.txt. La funcin miembro fail( ) produce el valor de 1 si
ocurre un error en la operacin de archivo. Similarmente es recomendable utilizar otras funciones
para verificar no solo la apertura de archivo sino tambin las operaciones de lectura y escritura, las
funciones miembros que nos permiten stas pruebas son las siguientes:

good Produce un 1 si la operacin previa fu exitosa.

eof Produce un 1 si se encuentra el final del archivo.

fail Produce un 1 si ocurre un error.

bad Produce un 1 si se realiza una operacin invlida.

Tres de las cuatro funciones enlistadas quedan demostradas en el siguiente programa


llamado archiv04.cpp el cual copia el contenido del archivo llamado Pruebas.txt en uno llamado Copia.txt.

Direccin Acadmica

Cdigo:
CPE-FO-02-03
Revisin: 1

MANUAL DE PRCTICAS

Pgina:
41 de 44

En primer lugar se crea un objeto de la clase ifstream llamado origen que nos sirve para abrir el
archivo Pruebas.txt para operaciones de lectura, la funcin miembro origen.fail( ) nos indica la existencia de
un error, en caso de que ste exista se despliega un mensaje en pantalla y el programa termina. Si la apertura
del archivo Pruebas.txt fu exitosa se procede entonces a la siguiente parte del programa donde se crea un
objeto de la clase ofstream llamado destino para operaciones de escritura el cual especifica que el archivo a
crear se llamar Copia.txt y de acuerdo a la bandera ios::noreplace, si existe un documento con el nombre
de Copia.txt la funcin constructora fallar, ste proceso es detectado por la funcin miembrodestino.fail(
) desplegando un mensaje en pantalla y terminando el programa. archiv04.cpp es un programa que sirve
para copiar un archivo basado en caracteres ASCII.

#include <fstream.h>
#include <stdlib.h>
int main()
{
ifstream origen("Pruebas.txt");
char linea[128];
if(origen.fail())
cerr << "Error al abrir el archivo Pruebas.txt" << endl;
else
{
ofstream destino("Copia.txt", ios::noreplace);
if(destino.fail())
cerr << "Error al crear el archivo: Copia.txt" << endl;
else
{
while(!origen.eof())
{
origen.getline(linea, sizeof(linea));
if(origen.good()) // si lectura ok y
if(origen.eof()) // si eof, -> termina
exit(1);
// el programa
else
destino << linea << endl;
if(destino.fail())
{
cerr << "Fallo de escritura en archivo" << endl;
exit(1);
}

Direccin Acadmica

Cdigo:
CPE-FO-02-03
Revisin: 1

MANUAL DE PRCTICAS

Pgina:
42 de 44

}
}
destino.close();
}
origen.close();
return 0;
}

En caso que las operaciones de apertura de los archivos involucrados en el


programa archiv04.cpp sean exitosas, entonces se inicia un bucle en donde se lee en primer lugar
una lnea de texto, lnea 27 del programa, el xito de sta operacin es monitoreado por la funcin
miembro origen.good( ), si sta funcin indica que la lectura del archivo fu exitosa entonces la
funcin miembro origen.eof( )verifica si la lnea en cuestin es el final del archivo, si no es as,
entonces la lnea leda se escribe en el archivo Copia.txt, entonces le corresponde a la funcin
miembro destino.fail( ) verificar que el proceso de escritura tuvo xito, lnea 33 del programa. El
bucle se repite hasta encontrar el final del archivo, condicin que se verifica tanto en la linea 25
como en la 29 del programa.
-OBJETIVO
El estudiante desarrollar su capacidad para solucionar problemas con manejo de archivos.
-LUGAR
Computo
-SEMANA DE EJECUCIN
Semana 14
- MATERIAL Y EQUIPO

Un equipo de escritorio para cada alumno.


Microsoft Word
IDE de desarrollo DevC++.
Lpiz y papel.

-DESARROLLO DE LA PRCTICA
I.

La actividad ser llevada a cabo de forma individual.

Cdigo:
CPE-FO-02-03

Direccin Acadmica

Revisin: 1
Pgina:

MANUAL DE PRCTICAS

43 de 44

II. El estudiante elaborar en la herramienta Word un reporte con el contenido de la prctica


en donde plasme los resultados de la misma, ayudndose con su hoja y papel en donde
realizar su anlisis de la problemtica para luego plasmarlos en el documento. De igual
manera realizar en el IDE de desarrollo las actividades necesarias para resolver las
problemticas.
III. Realizar un programa para cada una de las siguientes problemticas.
a. Escriba un programa que permita pasar todo el contenido de un archivo txt a otro
archivo generado por el programa.
b. Elaborar un programa que permita el manejo de archivos en donde se abra un
archivo y se cuente cuantas palabras contiene el archivo.
c. Elaborar un programa que lea dos archivos a1.txt y a2.txt y muestre en pantalla las
lneas que sean distintas en cada archivo con < si corresponde al primer archivo y
> si pertenece al segundo.
IV. Colocar el cdigo fuente y las pantallas de ejecucin de los problemas en la seccin de
resultados.

- EVALUACIN Y RESULTADOS

PTS
Logr analizar de manera correcta cada una de
las problemticas

1.5

Logro resolver de manera correcta todas las


problemticas

1.5

Utiliz de manera correcta las funciones con


manejo de archivos.

3.5

Realiz de manera correcta el reporte

3.5

-REFERENCIAS

Luis Joyanes Aguilar, Fundamentos de Programacin, Ed. Prentice Hall.


Programacin en C++ 2a Edicin Mc Graw Hill. Luis Joyanes Aguilar
Garca Molina, Jess J., Una introduccin a la programacin: un enfoque algortmico,
Madrid, Espaa: Thomson, 2005.

Direccin Acadmica

Cdigo:
CPE-FO-02-03
Revisin: 1

MANUAL DE PRCTICAS

Pgina:

Programacin en C++: Algoritmos, Estructuras de datos y objetos.


Deitel y Deitel. Como Programar en C++ quinta Edicin. Prentice Hall.

-ANEXOS

44 de 44

You might also like