Está en la página 1de 84

CENTRO DE BACHILLERATO TECNOLOGICO

industrial y de servicios N 4

CURSO DEL MODULO 1:


DESARROLLA SOFTWARE DE APLICACIN
UTILIZANDO PROGRAMACIN ESTRUCTURADA
CON ALMACENAMIENTO PERSISTENTE DE
DATOS
SUBMODULO 1:
DESARROLLA SOFTWARE UTILIZANDO PROGRAMACIN
ESTRUCTURADA

ING. HUMBERTO DE LA ROSA GUAJARDO. Enero 2016, Cd. Lerdo, Dgo.


humbdelarosa@gmail.com

1
ESPECIALIDAD PROGRAMACIN: MDULO 1 CBTis 4

SUBMODULO 1: DESARROLLA SOFTWARE UTILIZANDO PROGRAMACIN ESTRUCTURADA.

CONTENIDO: 160 Hrs.

1. Conceptos, caractersticas y generalidades de principios de programacin.


2. Identificacin, anlisis y resolucin de problemas informticos.
3. Algoritmos, Pseudocdigos, Simbologa y Diagramacin.
4. Herramientas de software FreeDFD y PSeint.
5. Fases de los problemas informticos: Entrada, Proceso, Salida.
6. Lenguajes de programacin.
7. Elementos de programacin.
8. Programacin en C++.
9. Resolucin de ejercicios en C++.
10. Estructuras de Control en C++.
11. Estructuras de datos.
12. Archivos en C++.

COMPETENCIAS PROFESIONALES DEL SUBMDULO 1:


DESARROLLA SOFTWARE UTILIZANDO PROGRAMACIN ESTRUCTURADA.

COMPETENCIAS:

1. Soluciona Problemas.
2. Desarrolla diagramas de flujo de algoritmos.
3. Elabora Pseudocdigo de los diagramas de flujo.
4. Desarrolla el cdigo en un lenguaje de programacin estructurado.

2
ESPECIALIDAD PROGRAMACIN: MDULO 1 CBTis 4

BIBLIOGRAFA:
JOYANES, Aguilar Luis. Programacin en C++ algoritmos, estructuras de datos y objetos. McGraw Hill. Espaa. 2003
Deitel, Harvey M, Deitel. Como programar en C++. Pearson. Espaa, 2009.
PERRY, Greg. Aprendiendo programacin orientada a objetos con C++ en 21 das. Prentice Hall. 1995.
BORES, Rosario, Romn Rangel. Computacin, metodologa, lgica computacional y programacin. Serie Schaum,
McGraw Hill. Mxico, 1995.
FORSYTHE, I. Alexander / Thomas Kennan A. / Elliot Organick I. Lenguajes de diagramas de flujo. Limusa. Mxico, 1989.
MANNINO, M. V.. Administracin de bases de datos diseo y desarrollo de aplicaciones. McGraw Hill, 2007.
CUADRA, D., Castro, E., Iglesias, A. M., Martnez, P., Calle, F. J., De Pablo, C., y otros. Desarrollo de Bases de Datos.
Alfaomega Ra-Ma. Espaa, 2008
HERNNDEZ Muoz, Pedro. Visual Fox Pro 5. Desarrollo de aplicaciones. Osborne-McGraw Hill. Espaa, 1998.
IGLESIAS, Rubn. Visual Fox Pro 5. Fundamentos y tcnicas de programacin. Rama Computec. Madrid, 1997.
MIKE, H. SQL Server 2008. Grupo Anaya Comercial. Mxico, 2009.
HELM, S. Programacin de Base de Datos Con MySQL y PHP. Alfaomega Marcombo. Mxico, 2010.
KENDALL y Kendall. Anlisis y diseo de sistemas. Prentice Hall. Mxico, 1997.
MARTN, James. Objets-oriented Analysis & Design. Prentice Hall. USA, 1993.
PRESSMAN, Roger S. Ingeniera del Software. Un enfoque prctico. McGraw Hill. Mxico, 2005.

http://www.elrincondelc.com/cursoc/cursoc.html
http://c.conclase.net/curso/index.php

3
ESPECIALIDAD PROGRAMACIN: MDULO 1 CBTis 4

PROGRAMA DE PRCTICAS DEL MDULO 1 DE PROGRAMACIN: SUBMDULO 1

N DESCRIPCIN PRODUCTOS DE APDZJE


1. ALGORITMOS CUALITATIVOS SIMPLES *.DOC ( 4 EJERCICIOS)
2. ALGORITMOS CUALITATIVOS COMPLEJOS *.DOC ( 4 EJERCICIOS)
3. ALGORITMOS CUANITATIVOS SIMPLES *.DOC ( 4 EJERCICIOS)
4. ALGORITMOS CUANITATIVOS COMPLEJOS *.DOC ( 4 EJERCICIOS)
5. SIMBOLOGIA PARA DIAGRAMAS DE FLUJO *.CDR (DOC C/ 21 SIMBOLOS)
6. ENTORNO DE DESARROLLO FreeDFD *.DOC (COMPONENTES)
7. ELABORACIN DE PSEUDOCODIGOS *.DOC ( 4 EJERCICIOS)
8. DIAGRAMAS DE FLUJO *.DFD ( 3 EJERCICIOS)
9. FREEDFD ALGORITMOS CUANTITATIVOS *.DFD ( 4 EJERCICIOS)
10. FREEDFD ALGORITMOS CUANTITATIVOS *.DFD ( 4 EJERCICIOS)
11. DIAGRAMAS A PARTIR DE PSEUDOCDIGOS *.DFD ( 4 EJERCICIOS)
12. PROBLEMA CALIFICACIN DE ALUMNOS *.DOC y *.DFD ( 3 EJERC)
13. ENTORNO BORLAND C++ *.CPP ( 2 EJERCICIOS)
14. MANEJO DE CONSTANTES Y VARIABLES EN C++ *.CPP ( 4 EJERCICIOS)
15. OPERACIONES DE ENTRADA Y SALIDA *.CPP ( 2 EJERCICIOS)
16. FUNCIONES MATEMATICAS *.CPP ( 3 EJERCICIOS)
17. FUNCIONES DE CARACTER *.CPP ( 2 EJERCICIOS)
18. USO DEL GOTOXY *.CPP ( 2 EJERCICIOS)
19. EJERCICIOS DE REFORZAMIENTO *.DFD *.CPP ( 4 EJERCICIOS)
20. CALCULO DE AREAS Y VOLUMENES FIG. GEOMETRICAS *.DFD *.CPP ( 4 EJERCICIOS)
21. ESTRUCTURAS SELECTIVAS IF SIMPLE Y DOBLE *.CPP ( 4 EJERCICIOS)
22. ESTRUCTURAS SELECTIVAS IF MULTIPLE *.CPP ( 2 EJERCICIOS)
23. ESTRUCTURAS SELECTIVAS SWITCH-CASE *.CPP ( 2 EJERCICIOS)
24. CICLOS FOR *.CPP ( 3 EJERCICIOS)
25. CICLOS WHILE *.CPP ( 2 EJERCICIOS)
26. ARREGLOS UNIDIMENSIONALES *.CPP ( 4 EJERCICIOS)
27. MATRICES *.CPP ( 2 EJERCICIOS)
28. METODOS DE ORDENAMIENTO *.CPP ( 2 EJERCICIOS)
29. PUNTEROS *.CPP ( 4 EJERCICIOS)
30. FUNCIONES Y PARAMETROS *.CPP ( 4 EJERCICIOS)
31. ESTRUCTURAS *.CPP ( 2 EJERCICIOS)
32. ARCHIVOS *.CPP ( 5 EJERCICIOS)

4
ESPECIALIDAD PROGRAMACIN: MDULO 1 CBTis 4

SUBMODULO 1: DESARROLLA SOFTWARE UTILIZANDO PROGRAMACIN ESTRUCTURADA.


I UNIDAD
GENERALIDADES DE LA PROGRAMACIN:
PROBLEMAS INFORMATICOS, ALGORITMOS, PSEUDOCDIGOS Y DIAGRAMACIN.

ACT 1. FORO EN LNEA: DIAGNSTICO PRINCIPIOS DE PROGRAMACIN.


Los alumnos, recuperan conocimientos previos sobre la programacin sin consultar en ningn medio, analizan los
cuestionamientos siguientes y expresan respuestas personales sobre:
PRINCIPIOS DE PROGRAMACIN:
1. Que es un programa de cmputo?
2. Cual es la utilidad tienen los Algoritmos y la Diagramacin?
3. Exprese en forma algebrica una suma.
4. Mencione 3 lenguajes de programacin.
Los comentarios vertidos deben ser breves, claros y concretos, adems los alumnos pueden corregir conceptos inprecisos
manifestados por otros compaeros, as mismo deber evitarse confrontaciones personales y no utilizar lenguaje obsceno
ni ofensivo, manteniendo en todo momento una actitud de cordialidad respeto.

ACT 2. ACTIVIDAD EN PLATAFORMA: CUESTIONARIO EN BINAS: CONCEPTOS Y GENERALIDADES DE LA


PROGRAMACIN.
Los alumnos integrados por binas, investigan y elaboran y resuelven correctamente el siguiente cuestionario, a fin de
recuperar conocimientos previos, debeiendo elaborar individualmente un documento electrnico de Word con el
nombre (AGGNLXX.DOC), (donde A corresponde a Mdulo 1, GG= N Gpo en 2 dgitos, NL: N lista, a 2 digitos y XX: N
actividad en 2 dgitos) y subirla a esta plataforma acadmica en internet y definiendo los siguientes conceptos:
1. Explique que entiendes por Identificacin y Resolucin de un problema?
2. Describa la fase: Anlisis del Problema?
3. Determine la fase: Diseo en un problema informtico?
4. Explique la fase: Codificacin?
5. Determine las etapas: Compliacin, Ejecucin, Verificacin y Depuracin?
6. Describa la fase: Mantenimiento?
7. Explique la fase: Documentacin?
8. Define Lenguaje?
9. Cite 5 lenguajes utilizados por el hombre.
10. Describa los 3 Lenguajes bsicos reconocidos en la programacin y caractersticas de cada uno.
11. Explicar que es la Compilacin?
12. Que utilidad tiene un Diagrama de Flujo?
13. Mencione 3 formas de representar Diagramas en la programacin?
14. Cite 10 operadores que Ud. reconozca.
15. Explique que es FreeDFD?

Nota importante:
Cada trabajo especifico debes subirlo en forma individual a plataforma, solo un archivo por actividad, sin exceder 2 Mb el
tamao mximo de cada archivo, con el nombre especficamente asignado y el texto debe contener: Portada (misma que
se incluye en la primera parte, en Contenido), que incluya tus datos personales (Escuela, especialidad, logo, nombre del
mdulo, nombre del alumno, nmero de lista, grupo, No y nombre de la actividad, nombre del facilitador, lugar y fecha),
Desarrollo de la actividad y por limo al final, debes incluir un prrafo de al menos 5 lineas con: Conclusiones
Personales (el contenido ntegro del archivo nunca debe exceder un mximo de 6 cuartillas).

5
ESPECIALIDAD PROGRAMACIN: MDULO 1 CBTis 4

Se informa que algunas de las competencias evaluadas en este mdulo son: responsabilidad y honestidad, por lo que
deteccin de copia o plagio de algn archivo de plataforma y/o prctica (parcial o ntegro) por parte de cualquier
alumno ser motivo de reprobacin del submdulo en cuestin.

ACTIVVIDAD EN CLASE: PROPUESTA DE SOLUCIN DE UN PROBLEMA COTIDIANO.


Los alumnos integrados en equipos de 5, presentan y exponen en clase un problema cualitativo simple y su solucin
de acuerdo a la metodologa utilizada en informtica, para ello, esta actividad pueden realizar en lminas para
rotafolio o mediante una presentacin electrnica en Power Point para exponer su planteamiento.de ser en lminas
de rotafolio, una o 2 lminas en que expongan su problema, de ser presentacin electrnica, esta debe incluir en la
1 diapositiva: portada (con logo de la escuela, especialidad, grupo, nombre de la actividad, integrantes del equipo
por num. de lista de c/u y el tema abordado), con el nombre (AGGNL.PPTX), ( A= Mdulo 01, GG= N Gpo 2 dgitos,
NL: a 2 dgitos del representante del equipo, una ltima diapositiva que debe incluir Comentarios de Equipo y
remitirla al facilitador via email en la fecha indicada.

Los alumnos realizan cuestionamientos a los equipos expositores a fin de resolver dudas, as mismo el facilitador
apoya complementando cada explicacin expuesta por los equipos, al final deber guardarse y subirse el documento
electrnico correspondiente de esta actividad de equipo, adems debe cuidar los lineamientos de tamao de archivo
y fecha de cierre, previamente descritos para efectos de evaluacin.

Nota importante: Solo cada responsable de equipo debe subir la presentacin a la plataforma acadmica, en
representacin del mismo, por ello, deber contener la lista con los nombres de todos los participantes ordenados por
apellidos en orden alfabtico en su portada.

ALGORITMOS: (CUALITATIVOS Y CUANTITATIVOS)


CUALITATIVOS:
ALGORITMO: REMPLAZAR UNA LLANTA PONCHADA:
1. Inicio
2. Extraer herramienta y llanta repuesto de la cajuela.
3. Colocar gato.
4. Retirar llanta ponchada.
5. Colocar llanta de repuesto en su lugar y asegurar.
6. Retirar gato.
7. Guardar llanta ponchada y herramienta en cajuela.
8. Fin.

ALGORITMO: ELABORAR UNA PIZZA DE CARNES FRIAS:


1. Inicio.
2. Obtener ingredientes (Harina, levadura, sal, queso, salsa de tomate, organo, salchicha, jamon, salami y
chorizo).
3. Mezclar Harina, levadura y sal con agua tibia (consistencia no pegajosa pero suave).
4. Reposar mezla de masa por 30 min.
5. Mezclar la salsa de tomate, sal y organo.
6. Elaborar torta plana de aproximadamente 45 cms de dimetro con el rodillo.
7. Agregar la mezcla de salsa de tomate sobre la torta.
8. Agregar queso rallado.
9. Agregar carnes fras y chorizo.
10. Hornear por 20 min.
11. Extraer del horno, reposar por 15 min y consumir pizza.
12. Fin

6
ESPECIALIDAD PROGRAMACIN: MDULO 1 CBTis 4

PROCESOS COMPUTACIONALES

ENTRADA PROCESO SALIDA

CUANTIITATIVOS:
ALGORITMO: CALCULO DEL PROMEDIO DE 3 NUMEROS:
1. Inicio.
2. Ingresar 1 nmero.
3. Ingresar 2 nmero.
4. Ingresar 3 nmero.
5. Sumar los 3 nmeros.
6. Dividir entre 3 la suma de los nmeros.
7. Devolver cociente obtenido.
8. Fin.

PSEUDOCDIGO:
1. Inicio.
2. Leer 1 nmero: N1;
3. Leer 2 nmero: N2;
4. Leer 3 nmero: N3;
5. SUM=N1+N2+N3;
6. PROM=SUM/3
7. Escribir Promedio de 3 nmeros: ; PROM
8. Fin

ALGORITMO: CALCULO DE HIPOTENUSA DE UN TRIANGULO RECTANGULO.


1. Inicio.
2. Proporcionar CatetoOP
3. Proporcionar CatetoADY Hipotenusa
4. Calcular HIPOTENUSA= 2 + 2
5. Desplegar resultado de la Hipotenusa. CatetoOP
6. Fin
CatetoADY
PSEUDOCDIGO:
1. Inicio.
2. Leer CatetoOP
3. Leer CatetoADY
4. HIPO=SQRT(()2 + ()2 );
5. Escribir Resultado de la Hipotenusa: ; HIPO

ACT 3. ACTIVIDAD EN PLATAFORMA: PROPUESTA DE SOLUCIN DE UN PROBLEMA FISICO Y/O MATEMTICO.


Los alumnos integrados por equipos, presentan y exponen en clase la solucin de un problema fsico y/o matemtico
simple y su solucin mediante un Algoritmo cuantitativo y su respectivo Pseudocdigo.

As mismo debern crear una presentacin electrnica en Power Point que incluya en la 1 diapositiva: portada (con
logo de la escuela, especialidad, grupo, nombre de la actividad, integrantes del equipo por num. de lista de c/u y el
tema abordado), el nmero de diapositivas depender del grado dificultad del problema planteado y debern
nombrar el archivo:(AGGNLXX.PPTX), ( M1= Mdulo1, GG= N Gpo 2 dgitos, NL: El nmero de lista del
representante del trio y XX: N actividad en 2 dgitos), una ltima diapositiva que debe incluir Comentarios de Equipo.

7
ESPECIALIDAD PROGRAMACIN: MDULO 1 CBTis 4

Los alumnos realizan cuestionamientos a los equipos expositores a fin de resolver dudas, as mismo el facilitador
apoya complementando cada explicacin expuesta por los equipos, al final deber guardarse y subirse el documento
electrnico correspondiente de esta actividad de equipo, adems debe cuidar los lineamientos de tamao de archivo
y fecha de cierre, previamente descritos para efectos de evaluacin.

Nota importante: Solo cada responsable de equipo debe subir la presentacin a la plataforma acadmica, en
representacin del mismo, por ello, deber contener los nombres de todos los participantes ordenados por nmero de
lista en su portada.

NOTA IMPORTANTE: DATOS QUE DEBEN CONTAR TODOS LOS DOCUMENTOS DE PRCTICAS:
NOMBRE DE LA ESCUELA.
NOMBRE DEL ALUMNO, NL, GPO, ESPECIALIDAD.
NOMBRE Y NMERO DE LA PRCTICA.
NOMBRE DEL FACILITADOR.
CONCLUSIONES (Este apartado debe aparecer al final de tu prctica, que genere un documento del tipo *.DOC *.CDR,
es una descripcin o prrafo de 5 lneas donde describa que utilidad te gener haber realizado esos ejercicios).

PRCTICA N1: AGGNL101.DOC


EJERCICIOS DE ALGORITMOS CUALITATIVOS:
Los alumnos en forma individual elaboran un documento de Word con nombre especificado arriba los siguientes
Algoritmos, as mismo deber subir al Servidor de red acadmica para efectos de evaluacin (Algoritmo por pgina sin
incluir conclusiones).
1. ELABORAR UNA LIMONADA.
2. AGENDA ACTIVIDADES PERSONALES DE 1 DIA POR HORA 6:00-23:00 HRS.
3. PREPARAR SANDWICH.
4. ELABORAR UN PASTEL.
PRCTICA N2: AGGNL102.DOC
Elaborar los 4 Algoritmo en documento Word indicado con los siguientes ejercicios que se te proponen a continuacin:
1. REALIZAR LLAMADA EN TELEFONO PBLICO.
2. CREAR CUENTA DE EMAIL EN HOTMAIL.
3. REALIZAR REIRO DE UN CAJERO AUTOMTICO.
4. COMPRAR ANTIBIOTICO EN LA FARMACIA.

CUESTIONARIO DE COMPLEMENTO (ACTIVIDAD INDIVIDUAL):


1. Determinar Algoritmo y citar sus caractersticas?
2. Diferenciar un Algoritmo Cualitativo de uno Cuantitativo?
3. Explicar que es Pseudocdigo?
4. Diferenciar Algoritmo de Pseudocdigo.
5. Describir que es Diagramacin?
6. Explicar que son Operadores y citar 5.
7. Describir una Variable?
8. Determinar que son las Constantes?
9. Explicar que es una sentencia de asignacin y representar un ejemplo de estas.
10. Citar y explicar 3 tipos de errores en la programacin.
11. Explicar que importancia tienen las Estructuras de Control dentro de la Programacin.
12. Describir que es control flujo de un programa.
13. Definir Programacin lineal.
14. Diferenciar Desiciones de Ciclos en la programacin.
15. Explicar que son las iteraciones en un ciclo.
PRCTICA N3: AGGNL103.DOC
EJERCICIOS DE ALGORITMOS CUANTITATIVOS:
Los alumnos en forma individual elaboran documento de Word con nombre especificado arriba los siguientes Algoritmos
y Pseudocdigos, que se te proponen a continuacin (definir frmulas a aplicar), as mismo subir al Servidor de red
8
ESPECIALIDAD PROGRAMACIN: MDULO 1 CBTis 4

acadmica para efectos de evaluacin (Cada uno de los 4 ejercicios de Algoritmo y Pseudocdigo iniciar en pgina nueva
sin incluir conclusiones).
1. CONVERSION DE PESOS A DLARES.
2. COMPRA DE UN ARTCULO: INGRESAR ARTCULO, Y COSTO UNITARIO DEL PRODUCTO, PROCESAR, IVA, TOTAL A
PAGAR, DEVOLVER: ARTICULO COMPRADO Y CALCULO DESGLOSADO: COSTO, IVA, y TOTAL A PAGAR.
3. CALCULO DE REA DE UN TRIANGULO RECTNGULO.
4. CALCULO DE LA SUPERFICIE DE UN CRCULO.

PRCTICA N4: AGGNL104.DOC


Elaborar Algoritmos y Pseudocdigos en documento Word especificado, los ejercicios propuestos a continuacin:
1. CALIFICACIONES: INGRESAR 3 CALIFICACIONES, OBTENER EL PROMEDIO Y DEVOLVER RESULTADO CON SALIDA
DE CALIFICACIN CON LA ETIQUETA APROBADO/REPROBADO DEPENDIENDO DEL PROMEDIO OBTENIDO.
2. VENTA CON DESCUENTO: INGRESAR ARTICULO Y COSTO DEL ARTICULO, SI ESTE ES <=$1000.00 APLICAR
DESCUENTO DEL 15%, SI ES > DE 1000.00 APLICAR 30% DE DESCUENTO, CALCULAR DESCUENTO, Y DEVOLVER
ARTICULO, PRECIO DE VENTA, MONTO DEL DESCUENTO Y TOTAL A PAGAR.
3. TABLA DE MULTIPLICAR DEL DE UN NMERO DEFINIDO DURANTE LA EJECUCIN DEL PROGRAMA.
4. NOMINA SEMANAL: INGRESAR NOMBRE DEL TRABAJADOR, DIAS LABORADOS, CONSIDERAR COMO DATOS
PERCEPCIN/DIA $ 55.00, CUOTA IMSS 12%, ISPT: 5% E INFONAVIT 8%, SI EL TRABAJADOR LABORA 6 DIAS
OTORGAR EL PAGO DEL SPTIMO DA Y DESCONTAR DE LOS INGRESOS TOTALES EL IMSS E INFONAVIT,
CALCULAR TOTAL DE INGRESOS, DEDUCCIONES Y TOTAL DE PAGO QUE RECIBE EL TRABAJADOR.

ACTIVIDAD DE CLASE: TCNICAS DE DIAGRAMACIN.


Los alumnos integrados por equipos de 5, investigan un ejemplo de solucin de un problema compuatacional
(Algoritmo cuantitativo) y lo exponen en clase utilizando los tipos de diagramas:
1. Diagrama de Flujo.
2. Nassi Shneiderman.
3. Warnier Orr.

Para ello, debern crear una presentacin electrnica en Power Point que incluya en la 1 diapositiva: portada (con
logo de la escuela, especialidad, grupo, nombre de la actividad, integrantes del equipo por num. de lista de c/u y el
tema abordado), las siguientes 3 diapositivas la representacin del problema, utilizando las 3 tcnicas de
diagramacin mencionadas y nombrar el archivo:(AGG_NL.PPTX), ( A= Mdulo1, GG= N Gpo 2 dgitos, NL: El
nmero de lista del representante del equipo), una ltima diapositiva que debe incluir Comentarios de Equipo.

Los alumnos realizan cuestionamientos a los equipos expositores a fin de resolver dudas, as mismo el facilitador
apoya complementando cada explicacin expuesta por los equipos, al final deber guardarse y subirse el documento
electrnico correspondiente de esta actividad de equipo, adems debe cuidar los lineamientos de tamao de archivo
y fecha de cierre, previamente descritos para efectos de evaluacin.

Nota importante: Solo cada responsable de equipo debe subir la presentacin a la plataforma acadmica, en
representacin del mismo, por ello, deber contener la lista con los nombres de todos los participantes ordenados por
apellidos en orden alfabtico en su portada.

9
ESPECIALIDAD PROGRAMACIN: MDULO 1 CBTis 4

PRCTICA N5: AGGNL105. DOC

ELABORAR LA SIMBOLOGA PARA DIAGRAMAS DE FLUJO EN COREL DRAW CON BREVE DESCRIPCIN DE CADA
SMBOLO.

10
ESPECIALIDAD PROGRAMACIN: MDULO 1 CBTis 4

PRCTICA N6: AGGNL106. DOC


ENTORNO DE DESARROLLO DE FreeDFD:
El facilitador describe la Interfaz del FreeDFD, Mens, submens, barra de herramientas, forma de accesar y uso.

Los alumnos elaboran el documento AGGNL106. DOC, en que describen cada uno de los elementos del entorno del
FreeDFD Mens, submens, Barra de herramientas y cada uno de sus elementos, adems hacen correlacin de smbolos
utilizados en la Diagramacin de flujos y las diferencias aplicadas por FreeDFD, incluir imagen del entorno del FreeDFD y
conclusiones personales al final del reporte.

EJEMPLO CLCULO DEL REA DEL TRINGULO RECTNGULO

ALGORITMO PSEUDOCDIGO DIAGRAMA DE FLUJO

1. Inicio. 1. Inicio.
2. Proporcionar Base del tringulo. 2. Leer BT. INICIO
3. Ingresar Altura del tringulo. 3. Leer AT.
()() ()()
4. SUP= 4. SUP= BT, AT
2 2
5. Desplegar Superf triangulo=, SUP 5. ESCRIBIRSuperf triangulo=, SUP
6. Fin 6. Fin SUP=(BT*AT)/2

DICCIONARIO DE DATOS:
SUPERFICIE TRIANGULO
SUP
BT: Base del tringulo rectngulo.
AT: Area del tringulo rectngulo.
SUP: Superficie del tringulo. FIN

11
ESPECIALIDAD PROGRAMACIN: MDULO 1 CBTis 4

PRCTICA N7: AGGNL107. DOC


En la prctica 7, los alumnos en forma individual elaboran un documento de Word con el nombre indicado, en el que
realizan los PSEUDOCDIGOS de los 4 diagramas propuestos en la figura siguiente.

PRCTICA N8:
Realizar los Diagramas de flujo con la herramienta FreeDFD de los ejercicios 2-4 propuestos en las figuras anteriores con
los nombres:
1. AGGNL108.DFD 4. AGGNL108A.PSC
2. AGGNL109.DFD 5. AGGNL109A.PSC
3. AGGNL110.DFD 6. AGGNL110A.PSC

ACTIVIDAD DE CLASE: ENTORNO DE FreeDFD.


Los alumnos integrados por equipos de 3, proponen la resolucin de un problema computacional (Algoritmo
cuantitativo) resuelto mediante la herramienta FreeDFD y definen 20 elementos del entorno de trabajo de la misma,
Para ello, crear una presentacin electrnica en Power Point que incluya en la 1 diapositiva: portada (con logo de la
escuela, especialidad, grupo, nombre de la actividad, integrantes del equipo por num. de lista de c/u y el tema
abordado), las siguiente diapositiva la pantalla del FreeDFD con los 20 elementos mencionados, en las siguientes las
necesarias para definir la funcin de los 20 elementos referidos y nombrar el archivo:(AGG_NL.PPTX A= Mdulo1,
GG= N Gpo 2 dgitos, NL: El nmero de lista del representante del trio), una ltima diapositiva que debe
incluir Comentarios de Equipo.

Los alumnos realizan cuestionamientos a los equipos expositores a fin de resolver dudas, as mismo el facilitador
apoya complementando cada explicacin expuesta por los equipos, al final deber guardarse y subirse el documento
electrnico correspondiente de esta actividad de equipo, adems debe cuidar los lineamientos de tamao de archivo
y fecha de cierre, previamente descritos para efectos de evaluacin.

Nota importante: Solo cada responsable de equipo debe subir la presentacin a la plataforma acadmica, en
representacin del mismo, por ello, deber contener los nombres de todos los participantes ordenados por Apellido
en forma alfabtica en su portada.

12
ESPECIALIDAD PROGRAMACIN: MDULO 1 CBTis 4

PRCTICA N9:
Realizar los Diagramas de flujo con la herramienta FreeDFD de los 4 ejercicios de Algoritmos cuantitativos propuestos en
la prctica 3 con los nombres:
1. AGGNL111.DFD
2. AGGNL112.DFD
3. AGGNL113.DFD
4. AGGNL114.DFD
PRCTICA N10:
Realizar los Diagramas de flujo con la herramienta FreeDFD de los 4 ejercicios de Algoritmos cuantitativos propuestos en
la prctica 4 con los nombres:
1. AGGNL115.DFD
2. AGGNL116.DFD
3. AGGNL117.DFD
4. AGGNL118.DFD
PRCTICA N11:
Realizar los Diagramas en la herramienta FreeDFD los siguientes ejercicios propuestos en la la figura de abajo, con los
nombres:
1. AGGNL119.DFD
2. AGGNL120.DFD
3. AGGNL121.DFD
4. AGGNL122.DFD

ACT 4. ACTIVIDAD EN PLATAFORMA: CRUCIGRAMA PRINCIPIOS DE LA PROGRAMACIN.


Los alumnos en forma individual escriben sus datos personales solicitados y resuelven el CRUCIGRAMA propuesto en la
liga de enlace, correspondiente a la 4 actividad.
Para ello, deben contestar solo en MAYUSCULAS SIN ACENTOS, en un tiempo no mayor de 15 min. correctamente la
actividad, en cada palabra puede solicitar hasta un mximo de 2 caracteres o pistas de la respuesta correcta para no ser
penalizado, as mismo una vez resuelto el crucigrama (verifica que no tengas activado el bloqueo de ventanas
emergentes), no cerrar la pantalla con el resultado, ya que debes capturar la pantalla con la calificacin legible, cuando
se despliegue el resultado obtenido (pulse las teclas Alt+Impr pantalla), misma que es el registro o evidencia de
resolucin del mismo.
Para ello, debe elaborar individualmente un documento de Word con el nombre (AGGNLXX.DOC), en el que debes pegar
la imagen previamente capturada del crucigrama, as mismo liste y defina cada uno de los trminos correctos del
13
ESPECIALIDAD PROGRAMACIN: MDULO 1 CBTis 4

crucigrama, por ltimo, no olvide anotar conclusiones personales al final de su documento a subir en plataforma
acadmica.
NOTA IMPORTANTE: Accesar a los crucigramas solo si se va a resolver estos, ya que el sistema deja registro de acceso y
solo ser vlido el primer intento, en caso contrario se anular quien registre ms de 1 intento y la calificacin ser cero.
ACT 5. ACTIVIDAD EN PLATAFORMA: QUIZ EN LINEA PRINCIPIOS DE LA PROGRAMACIN.
Actividad de plataforma virtual EDMODO, consistente en un cuestionario en lnea que tiene tiempo lmite para su
resolucin, (Sub01: 20 minutos y 100 puntos) las preguntas pueden ser de los tipos: Complemento, True/False
(Verdadero/Falso), Relacionar columnas y Opcin mltiple, para ello despus de contestar cada pregunta pulse el
smbolo > que aparece en la parte superior y continuar con la siguiente pregunta hasta finalizar

ACT 6. ACTIVIDAD EN PLATAFORMA: MAPA CONCEPTUAL PRINCIPIOS DE LA PROGRAMACIN.


Los alumnos integrados en equipos de 5, realizan el diseo y exposicin de una presentacin electrnica en Power Point
con nombre: (AGGNLXX.PPTX), que contenga un Mapa conceptual (Se sugiere ver y analizar el ejemplo que se encuentra
en la seccin Contenido del Curso: Elaboracin de Mapas Conceptuales que se proporciona al inicio de esta plataforma
acadmica, ya que de no apegarse al desarrollo de esta tcnica el equipo ser evaluado con un cero 0 en esta
actividad) para ello la presentacin deber contar con Diapositiva 1: portada con los mismos datos y requisitos descritos
en presentaciones anteriores, Diapositiva 2: o desarrollo, deber contener el Mapa conceptual con los elementos que se
especifican y en Diapositiva3: conclusiones de equipo, la diapositiva de desarrollo deber contener lo siguientes
elementos relacionados a continuacin:
MAPA CONCEPTUAL.
1. Problema informtico.
2. Algoritmo.
3. Pseudocdigo.
4. Diagramacin.
5. Variables y Constantes.
Debiendo subir cada representante a plataforma, la ltima diapositiva, incluir conclusiones de equipo.
Subir documento electrnico a plataforma acadmica, aplicando especificaciones descritas para efectos de evaluacin.
PRACTICA N12:
Los alumnos resuelven un problema de CALIFICACIONES DE ALUMNOS, para ello deben elaborar el Pseudocdigo y el
Diagrama de flujo en FreeDFD, (se sugiere ver decisiones) con las indicaciones siguientes:
OPERACIONES A REALIZAR DICCIONARIO DE DATOS
Ingresar num. De control, nombre del alumno. NC: Nmero de Control.
Ingresar: Especialidad y semestre. Nom: Nombre del Alumno.
Ingresar: 5 Materias. Esp: Especialidad.
Ingresar : 5 calificaciones. Sem: Semestre.
Operaciones: obtener el promedio de las 5 calificaciones. Mat1: Materia 1.
Devolver datos: NC, Nom Mat2: Materia 2.
Devolver datos : Especialidad y semestre. Mat3: Materia 3.
Devolver datos: MatX y CalifiX (5). Mat4: Materia 4.
Devolver Prom Mat5: Materia 5.
Condicin: Si el Prom es => 6 Devolver la etiqueta Calif1: Calificacin de la materia 1.
APROBADO, en caso contrario devolver la etiqueta Calif2: Calificacin de la materia 2
REPROBADO Calif3: Calificacin de la materia 3.
Calif4: Calificacin de la materia 4.
Calif5: Calificacin de la materia 5.
Prom: Promedio de las 5 calificaciones.

Especificaciones de los tipos y nombres de archivos a subir en servidor para efectos de evaluacin:
AGGNL122.PSC: PSEUDOCDIGO
AGGNL123.DFD: DIAGRAMA EN FreeDFD

14
ESPECIALIDAD PROGRAMACIN: MDULO 1 CBTis 4

II UNIDAD
LENGUAJE PROGRAMACIN PROGRAMACIN ESTRUCTURADA C++:
ESTRUCTURA DE UN PROGRAMA, TIPOS DE DATOS, LIBRERAS, FUNCIONES PREDEFINIDAS,
OPERACIONES DE ENTRADA Y SALIDA Y ESTRUCTURAS DE CONTROL.

ACT 7. ACTIVIDAD EN PLATAFORMA: 2 FORO EN LINEA: LENGUAJES DE PROGRAMACIN ESTRUCTURADA.


Los alumnos, recuperan conocimientos previos sobre la programacin sin consultar en ningn medio, analizan los
cuestionamientos siguientes y expresan respuestas personales sobre:
PROGRAMACIN C++:
1. Describa la utilidad del Lenguaje?
2. Que importancia tiene el Cdigo Binario en la programacin?
3. Describa 5 caractersticas de los Lenguaje de Alto nivel?
4. Cite 3 Lenguajes de alto nivel.
5. Que son reglas de sintaxis y su importancia en la programacin.

Comentarios vertidos deben ser breves, claros y concretos, adems los alumnos pueden corregir conceptos inprecisos
manifestados por otros compaeros, as mismo deber evitarse confrontaciones personales y no utilizar lenguaje obsceno
ni ofensivo, manteniendo en todo momento una actitud de cordialidad respeto.

ACTIVIDAD DE CLASE: EVALUACIN DIAGNSTICA: GENERALIDADES DE LA PROGRAMACIN ESTTRUCTURADA EN C++.

Los alumnos integrados por binas, investigan, elaboran y resuelven correctamente el siguiente cuestionario, a fin de
recuperar conocimientos previos, debiendo elaborar individualmente un documento electrnico de Word con el nombre
(AGG_NL.DOC), (donde A corresponde a Mdulo 1, GG= N Gpo en 2 dgitos, NL: N lista, a 2 digitos) y definiendo los
siguientes conceptos:
1. Describir Lenguaje C++.
2. Definir tipos de datos en C++.
3. Describir Archivos de Cabecera.
4. Explicar Funciones Predefinidas y mencionar 10 ms comunes.
5. Definir Funcin principal de un programa en C++.
6. Explicar como se realizan las operaciones de entrada y salida de datos en C++.
7. Describir Estructuras de Control y su utilidad en C++.
8. Que son Instrucciones Secuenciales.
9. Describir Estrcuturas de Control Selectivo.
10. Describir Estrcuturas de Control Repetitivo.

15
ESPECIALIDAD PROGRAMACIN: MDULO 1 CBTis 4

ACT 8. ACTIVIDAD EN PLATAFORMA: CRUCIGRAMA ELEMENTOS DE LA PROGRAMACIN ESTRUCTURADA EN C++".

Los alumnos resuelven individualmente el crucigrama propuesto en la liga especificada para esta actividad, misma
que no deber exceder de un tiempo no mayor de 15 min. correctamente, en cada palabra puede solicitar hasta un
mximo de 2 caracteres o pistas de la respuesta correcta para no ser penalizado, as mismo una vez resuelto el
crucigrama, no cerrar la pantalla con el resultado, ya que debes capturar la pantalla con la calificacin legible,
cuando se despliegue el resultado obtenido (pulse las teclas Alt+Impr pantalla), misma que es el registro o evidencia
de resolucin del mismo.
Para ello, debe elaborar individualmente un documento de Word con el nombre (AGGNLXX.DOC), en el que debes
pegar la imagen previamente capturada del crucigrama, as mismo liste y defina cada uno de los trminos correctos
del crucigrama, por ltimo, no olvide anotar conclusiones personales al final de su documento a subir en plataforma
acadmica.

ACT 9. ACTIVIDAD DE PLATAFORMA: IDE DEL BORLAND C++ PARA WINDOWS.

Los alumnos integrados por equipos de 5, elaboran documento electrnico de Powerpoint, nombre (AGGNLXX.PPTX), (donde A
corresponde a Mdulo 1, GG= N Gpo en 2 dgitos, NL: N lista, a 2 digitos y XX: N actividad en 2 dgitos) , sobre conceptos
relevantes del entorno de Desarrollo de Borland C++ propuesto por el Facilitador, en que detallen los siguientes aspectos:

1. Elementos de la ventana principal del IDE de C++.


2. Descripcin de Mens y Submens.
3. Requerimientos necesarios para ejecutar la aplicacin.
4. Mencionar otros IDE similares y caractersticas Grales.

Barra de Ttulo. Barra de Herramientas.

Barra de Men.

Pantalla de ejecucin o
corrida del programa.

Escritorio.

Ventana de mensajes y depuracin. Archivo CPP codificado


en editor del IDE.

Nota importante :
Subir a plataforma, el archivo de la actividad, sin exceder 2 Mb el tamao del archivo, con el nombre asignado y
el Contenido, especfico, que debe apegarse a las instrucciones previamente descritas sin omitir Conclusiones de equipo.

16
ESPECIALIDAD PROGRAMACIN: MDULO 1 CBTis 4

CODIGO ASCII

17
ESPECIALIDAD PROGRAMACIN: MDULO 1 CBTis 4

PRCTICA N13:
ENTORNO DE BORLAND C++:
El Facilitador expone a los alumnos la instalacin del IDE de Borland C++, los elementos principales, mens, submnus y
forma de aplicacin de la herramienta de software, adems codificar y ejecutar correctamente los siguientes ejemplos de
programas en C++.
AGGNL124.CPP

AGGNL125.CPP

ACTIVIDAD DE COMPLEMENTO (Actividad individual):


1. Analizar y comparar los ejercicios anteriores y explicar las diferencias.
2. Explicar 5 reglas sintcticas bsicas en un programa en C++.
3. Que son los comentarios en C++.
4. Describir los archivos de cabecera: iostream.h, conio.h y stdio.h.
5. Determinar que es la funcin principal en C++ y cuando debe utilizarse.
6. Diferenciar main de int main.
7. Explicar el comando cout.
8. Desescribir el comando printf.
9. Definir el comando getch().
10. Explicar el comando return 0.
11. Describir directiva de inclusin en C++.
12. Explicar operaciones de salida en C++.
13. Citar 10 diferencias entre los Lenguajes C y C++.

18
ESPECIALIDAD PROGRAMACIN: MDULO 1 CBTis 4

ACTIVIDAD DE CLASE: CONCEPTOS DE LA PROGRAMACIN EN C++ .


Los alumnos integrados en equipos de 5, realizan investigacin y exposicin del tema nico que se especifica, debiendo elaborar para
ello una presentacin electrnica en Power Point que conste de 11 diapositivas como mximo que incluya: Portada (ya especifiicada),
desarrollo (texto resumido, con imgenes relacionadas), al final conclusiones de equipo, que expongan uno de los siguientes tpicos,
que se asignarn de manera especfica por el facilitador a cada equipo :

1. Modelo Arquitectura Segmentada de John Von Newman

El docente eligir 3 de las investigaciones mejor documentadas, y solo las mejores podrn exponer el tema a sus compaeros, lo que
acreditar la participacin correspondiente, los alumnos pueden cuestionar a los equipos ponentes a fin de resolver dudas, as mismo
el facilitador apoya complementando cada una de exposiciones, los equipos debern guardar y subir el documento electrnico con el
nombre (AGG_NL.PPTX), previamente detallado, cuidando lineamientos de contenido, tamao de archivo, num. diapositivas y fecha
de cierre, previamente descritos para efectos de evaluacin.
La ltima diapositiva debe incluir Comentarios de Equipo, as tambin, los temas sern abordados solo uno por equipo y previa
asignacin del facilitador docente.
Nota importante: Solo el representante de equipo debe subir la presentacin a la plataforma acadmica, conteniendo los nombres de
integrantes organizados por orden alfabtico de Apellido en su portada.

PRCTICA 14:
MANEJO DE CONSTANTES Y VARIABLES: Codificar, depurar, verificar, ejecutar individual, los archivos correctos y subir al
servidor de red acadmica para efectos de evalucin los siguientes programas en C++:
AGGNL126.CPP

19
ESPECIALIDAD PROGRAMACIN: MDULO 1 CBTis 4

AGGNL127.CPP

Aplicando los conceptos de constantes y variables de los ejercios anteriores: codificar (incluyendo los comentarios
correspondientes), depurar, verificar y ejecutar correctamente los siguientes programas en C++:

AGGNL128.CPP AGGNL129.CPP

20
ESPECIALIDAD PROGRAMACIN: MDULO 1 CBTis 4

ACT 10. ACTIVIDAD EN PLATAFORMA: PRESENTACIN CONCEPTOS DE LA PROGRAMACIN EN C++ .


Los alumnos integrados en equipos, realizan investigacin y exposicin de uno de los temas en la relacin indicada en la actividad,
misma que ser asignada por el Facilitador, debiendo elaborar para ello una presentacin electrnica en Power Point que conste de 11
diapositivas como mximo que incluya: Portada (ya especifiicada), desarrollo (texto resumido, con imgenes relacionadas), al final
conclusiones de equipo, que expongan uno de los siguientes tpicos, que se asignarn de manera especfica por el facilitador a cada
equipo :
1. Diferencias entre la Programacin lineal, Programacin Estructurada, Programacin Visual y la Programacin
Orientada a Objetos.
2. Diferencias entre los Lenguajes bajo nivel, nivel medio y alto nivel.
3. Diferencias entre los Lenguajes C y C++.
4. Estructura de un Programa en C++ (ejemplificado) y definir Tokens (identificadores, palabras reservadas,
operadores).
5. Archivos de cabecera y especificar caractersticas de iostream.h, conio.h, math.h, ctype.h, float.h, stdlib.h y
string.h.
6. Tipos de datos reconocidos por C++ y sus caractersticas requerimientos de Ram y rango numrico, formas de
introducir valores a una variable.
7. Declaracin de Datos constantes y Variables y tipos de variables
8. Operaciones de entrada y salida en C++ y operadores de flujo de entrada y operadores de flujo de salida.
9. Operadores reconocidos por C++ y su orden de precedencia, uso de los parntesis.
10. Funciones en C++ (predefinidas y definidas por usuario).

Los alumnos durante la sesin de exposiciones realizan cuestionamientos a los equipos ponentes a fin de resolver dudas, as mismo el
facilitador apoya complementando cada una de exposiciones, los equipos debern guardar y subir el documento electrnico con el
nombre (AGGNLXX.PPTX), previamente detallado, cuidando lineamientos de contenido, tamao de archivo, num. diapositivas y
fecha de cierre, previamente descritos para efectos de evaluacin.
La ltima diapositiva debe incluir Comentarios de Equipo, as tambin, los temas sern abordados solo uno por equipo y previa
asignacin del facilitador docente.
Nota importante: Solo el representante de equipo debe subir la presentacin a la plataforma acadmica, conteniendo los nombres de
integrantes organizados por nmero de lista en su portada.

PRCTICA 15:
OPERACIONES DE ENTRADA Y SALIDA DE DATOS: Codificar en C++, depurar, verificar, ejecutar, individualmente,
c/archivo correctamante y subir al servidor de red acadmica para efectos de evalucin los siguientes programas en C++:
AGGNL130.CPP
Programa de conversin de Grados Fahrenheit a Grados Centgrados y Grados Kelvin
PSEUDOCODIGO DICCIONARIO DE DATOS
1. Inicio. GF: Grados Farenheit
2. Leer Grados Fahrenheit a convertir: , GF GC: Grados Centgrados
3. GC=(GF-32)*0.556 GK: Grados Kelvin
4. GK=GC+273
5. Escribir GF, Fahrenheit= , GC Centgrados Flotantes: GF, GC, GK
6. Escribir GF, Fahrenheit= , GK Kelvin
7. Fin

21
ESPECIALIDAD PROGRAMACIN: MDULO 1 CBTis 4

AGGNL131.CPP
2
Programa Clculo de cantidad de Block y costo total a pagar dependiendo de los Mt de muro requeridos.
PSEUDOCODIGO DICCIONARIO DE DATOS
1. Inicio. mt2: mts cuadrados muro.
2. Escribir PROGRAMA PARA EL CALCULO Y COSTO DE BLOCK PARA MUROS sb: superficie del block.
3. Escribir Dimensin del block 15x40x20 (grosor x alto x ancho en cm.) cu: costo unitario block.
4. Leer Mt2 de Muro a construir: mt2 b: nmero de blocks.
5. sb=0.4*0.2 Costobloc: costo total de
6. cu=10 los blocks.
7. b= mt2/SB
8. costobloc=b*cu
9. Escribir Blocks requeridos: , b
10. Escribir Costo total de los Blocks sin IVA: costobloc
11. Fin

ACTIVIDAD DE CLASE: CUESTIONARIO REGLAS PARA EL DISEO DE PROGRAMAS EN C++.

Los alumnos integrados por binas, investigan, elaboran y resuelven correctamente el siguiente cuestionario, a fin de
recuperar conocimientos previos, debiendo elaborar individualmente un documento electrnico de Word con el nombre
(AGG_NL.DOC), (donde A corresponde a Mdulo 1, GG= N Gpo en 2 dgitos, NL: N lista, a 2 digitos) y subirla a esta
plataforma acadmica en internet y definiendo los siguientes conceptos:
1. Diferenciar Instruccin de comando en C++.
2. Explique diferencias entre un compilador y un intrprete.
3. Cite y defina secuencias de escape en C++.
4. Describir que es inicializar variables y su importancia.
5. Explicar que son las sentencias de asignacin.
6. Diferencias las directivas #include y #define.
7. Mencionar utilidad de math.h.
8. Diferenciar archivos *.C de los *.CPP.
9. Describir diferencias entre un error lgico y uno de regresin.
10. Explicar un error en tiempo de ejecucin.
Nota importante:
Aplica mismas indicaciones de los trabajos de plataforma especificados: archivo no exceder 2 Mb, nombre segn
especificaciones, y contener: Portada, que incluya tus datos personales (Escuela, especialidad, logo, nombre del mdulo,
nombre del alumno, nmero de lista, grupo, No y nombre de la actividad, nombre del facilitador, lugar y fecha),
Desarrollo: y al final, debes incluir sus: Conclusiones personales, recuerda que el contenido ntegro del archivo nunca
exceder el mximo de 6 cuartillas).

PRCTICA 16:
CODIFICAR FUNCIONES DE math.h: Codificar en C++, depurar, verificar, ejecutar, en forma individual, cada uno de los
archivos correctos y subir al servidor de red acadmica para efectos de evalucin los siguientes programas en C++:

22
ESPECIALIDAD PROGRAMACIN: MDULO 1 CBTis 4

AGGNL132.CPP

AGGNL133.CPP

23
ESPECIALIDAD PROGRAMACIN: MDULO 1 CBTis 4

AGGNL134.CPP

PRCTICA 17:

CODIFICAR FUNCIONES DE ctype.h: Codificar en C++, depurar, verificar, ejecutar, en forma individual, cada uno de los
archivos correctos y subir al servidor de red acadmica para efectos de evalucin los siguientes programas en C++:
AGGNL135.CPP

24
ESPECIALIDAD PROGRAMACIN: MDULO 1 CBTis 4

AGGNL136.CPP

LIBRERIAS (FUNCIONES DE BIBLIOTECA)

La programacin actual recomienda la tcnica de la programacin modular, es decir dividir el problema principal en
pequeos fragmentos o mdulos a fin de facilitar la solucin de problema planteado, los mdulos en C++ son
denominados funciones o clases, por ello los programas en C++ se escriben combinando funciones nuevas que los
programadores generan adems de las funciones predefinidas o preempacadas que son disponibles a partir de las
bibliotecas estndar de C++, que contienen un vasto conjunto de funciones que permiten realizar clculos matemticos
comunes, manipulacin de cadenas y caracteres, operaciones de entrada/salida de datos y comprobaciones de errores
entre otras de manera simplificada y muchas otras operaciones de gran utilidad, simplificando el trabajo de los
programadores.

Funciones estndar o predefinidas:


Son archivos o bibliotecas estndar de funciones en tiempo de ejecucin que proporcionan soporte a las operaciones
ms comunes y que se incluyen en todas las versiones de C++, estas funciones permiten realizar operaciones con solo
una llamada a la funcin sin necesidad de escribir el cdigo fuente, todas las funciones de un mismo grupo se declaran en
el mismo archivo de cabecera, dentro de un programa se pueden incluir mediante la sentencia : #include y para el uso de
una funcin correspondiente al archivo de cabecera se debe conocer sus argumentos y valores de retorno.

25
ESPECIALIDAD PROGRAMACIN: MDULO 1 CBTis 4

Grupos de FUNCIONES de BIBLIOTECA ms comunes:

E/S : Utilizada para operaciones de entrada/salida.


Matemticas : Operaciones matemticas.
Rutinas Std. : Operaciones estndar de programas.
Visualizacin de ventanas de texto.
Conversin : Rutinas de conversin de caracteres y cadenas.
Diagnstico : Proporciona rutinas de depuracin incorporadas.
Manipulacin de memoria.
Control de procesos.
Clasificacin : Procesos de ordenamiento.
Directorios.
Fecha y Hora.
Interfaz.
Bsqueda.
Manipulacin de cadenas.
Grficos.
Diversas

FUNCIONES DE BIBLIOTECA MS UTILIZADAS DE C++

FUNCIONES DE FLUJO DE ENTRADA-SALIDA <iostream.h> :


En el contexto de C++ todo lo referente a "streams" puede visualizarse mejor si usamos un smil como un ro o canal
de agua.
Imagina un canal por el que circula agua, si echamos al canal objetos que floten, estos se movern hasta el final de
canal, siguiendo el flujo del agua. Esta es la idea que se quiere transmitir cuando se llama "stream" a algo en C++. Por
ejemplo, en C++ el canal de salida es "cout", los objetos flotantes sern los argumentos que queremos extraer del
ordenador o del programa, la salida del canal es la pantalla.
Los operadores "<<" representaran el agua, y la direccin en que se mueve. Cualquier cosa que soltemos en el agua:
"hola", " " o endl, seguir flotando hasta llegar a la pantalla, y adems mantendrn su orden.
En esta librera se definen algunas de las funciones aplicables a los "streams", pero an no estamos en disposicin de
acceder a ellas. Baste decir de momento que existen cuatro "streams" predeterminados:

cin, canal de entrada estndar.


cout, canal de salida estndar.
cerr, canal de salida de errores.
clog, canal de salida de diario o anotaciones.

Sobre el uso de "cin", que es el nico canal de entrada predefinido, tenemos que aclarar cmo se usa, aunque a lo
mejor ya lo has adivinado.

Donde cada variable ir tomando el valor introducido mediante el teclado. Los espacios y los retornos de lnea actan
como separadores.

FUNCIONES DE CARCTER <ctype.h> :


Define el grupo de funciones para la manipulacin de caracteres, todas devuelven un valor verdadero (diferente de cero)
o falso (cero), para su utilizacin de cualquiera de estas funciones se debe incluir el archivo de cabecera: #include
<ctype.h>

26
ESPECIALIDAD PROGRAMACIN: MDULO 1 CBTis 4

FUNCIN PRUEBA
int isalpha (int c) Letra mayscula o minscula.
int isdigit (int c) Dgito Decimal.
int isupper (int c) Letra mayscula (A-Z).
int islower (int c) Letra minuscule (a-z).
int iscntrl (int c) Carcter de control.
int isxdigit (int c) Dgito hexadecimal.
int isprint (int c) Carcter imprimible incluyendo espacio.
int isgraph (int c) Carcter imprimible excepto espacio.
int isspace (int c) Espacio, avance de pgina, nueva lnea, retorno de
carro, tabulacin, tabbulacin vertical.
int ispunct (int c) Carcter imprimible no espacio, dgito o letra.
int toupper (int c) Convierte a letras maysculas.
int tolower (int c) Convierte a letras minsculas.

FUNCIONES NUMRICAS <math.h> :


C++ permite realizar prcticamente cualquier operacin aritmtica, las funciones matemticas disponibles son:
1. Matemticas.
2. Trigonomtricas.
3. Logartmicas.
4. Exponenciales.
5. Aleatorias.

Nota: la mayora de las funciones numricas se incluyen en los archivos math.h, y stdlib.h .

FUNCIONES MATEMTICAS <math.h>:

FUNCIN DESCRIPCIN

ceil (x) Redondeo al entero ms prximo.


fabs (x) Devuelve valor absoluto de x (positivo).
floor (x) Redondeo por defecto.
fmod (x,y) Calcula resto flotante de la divisin x/y.
y
pow (x,y) Eleva la potencia de X
sqrt (x) Obtiene raz cuadrada de x, esta debe ser >= a cero
TRIGONOMTRICAS:

FUNCIN DESCRIPCIN

acos (x) Calcula arco coseno de x (x debe estar entre 1 y 1).


asin (x) Calcula a rco seno de x.
atan (x) Calcula a rco tangente de x.
cos (x) Calcula coseno del ngulo x (expresado en rads).
sin (x) Calcula seno del ngulo x (expresado en rads).
tan (x) Calcula tangente del ngulo x (expresado en rads).

Para transformar un ngulo de grados a radianes (Grados)Pi/180 Pi=3.14159.

27
ESPECIALIDAD PROGRAMACIN: MDULO 1 CBTis 4

LOGARTMICAS Y EXPONENCIALES:
FUNCIN DESCRIPCIN
exp (x) , expl (x) Calcula exponencial de ex e es la base de logaritmos
naturales con valor de 2.718282, expl se declara como long double.
log (x) , logl (x) Calcula el Log natural de x ; logl (long double).
log10 (x) , log10l (x) Logaritmo decimal de x.

ALEATORIAS:

FUNCIN DESCRIPCIN
rand (void) Genera nmeros aleatorios variando de 0 a Rand_Max
Este ltimo se define en stdlib.h como 2E15-1.
rand (void) Esta macro inicializa el generador de nmeros aleatorios con
la semilla obtenida a partir de la funcin time, por lo que ]
requiere de archivo de cabecera time.h.
srand (semilla) Inicializa el generador de nmeros aleatorios, ya que este
fija el punto de inicio para la generacin de series aleatorias.
random (num) Genera un nmero aleatorio dentro de un rango especificado
(0 y el limite max. definido por num).

FECHA Y HORA:
Para habilitar estas funciones se requiere el archivo de cabecera time.h que define estructuras, macros y funciones para
la manipulacin de fecha y hora.
FUNCIN DESCRIPCIN
clock Devuelven la hora actual como el nmero de segundos
_strdate transcurridos desde la medianoche del 1 de Enero de 1970
_strtime (GMT).
clock (void) Determina el tiempo de procesador transcurrido desde el
inicio de la ejecucin del programa.
time (hora) Obtiene la hora actual.
localtime (hora) Convierte la fecha y hora en una estructura de tipo tm.
mktime (t) Convierte la hora en formato de calendario.

ACTIVIDAD DE COMPLEMENTO (Actividad individual):


1. Explicar el uso de los signos: Punto y coma (;), y llaves ( { } ) en un programa en C++.
2. Diferenciar una sentencia de inicializacin de una de asignacin.
3. Defina 7 funciones habilitadas por conio.h: (clrscr, getch, getpass, gotoxy, textcolor, wherex y window).
4. Explicar secuencias de escape y citar 10 con su definicin c/u.
5. Definir manipuladores de salida y describir 6.
6. Describa 5 Funciones de caracteres de C++.
7. Cite y explique 5 funciones numricas reconocidas en C++ y defina 2 de cada una.
8. Determine que son las funciones de fecha y hora, cite y defina 5 de estas.
9. Explicar el comando char(x).
10. Describir sobrecarga de operadores y ejemplificar.
11. Defina Recursividad.
12. Describa operador unitario.
13. Determinar que son los operadores binarios y su utlidad en C++.
14. Definir Programa de Cmputo.
15. Explicar que es un Programa Fuente.
16. Describir Programa Objeto.
17. Determinar Programa Ejecutable.

28
ESPECIALIDAD PROGRAMACIN: MDULO 1 CBTis 4

PRCTICA 18:
USO DE LA INSTRUCCIN GOTOXY DINAMICA: Codificar en C++, depurar, verificar, ejecutar, en forma individual, cada
uno de los archivos correctos y subir al servidor de red acadmica para efectos de evalucin los siguientes programas en
C++:
AGGNL137.CPP

Analizar el presente ejercicio ya que el facilitador solicitar explicacin del proceso, para ello se sugiere investigas sobre
el tema Ciclos en la programacin de C++.

29
HOJA DE CODIFICACIN
0 10 20 30 40 50 60 70 80

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

30
COLORES DE FONDO Y DE TEXTO
CONSTANTE VALOR SIGNIFICADO DE FONDO O DE TEXTO
BLACK 0 Negro Ambos
BLUE 1 Azul Ambos
GREEN 2 Verde Ambos
CYAN 3 Can Ambos
RED 4 Rojo Ambos
MAGENTA 5 Magenta Ambos
BROWN 6 Marrn Ambos
LIGHTGRAY 7 Gris Claro Ambos
DARKGRAY 8 Gris Oscuro Slo para texto
LIGHTBLUE 9 Azul Claro Slo para texto
LIGHTGREEN 10 Verde Claro Slo para texto
LIGHTCYAN 11 Can Claro Slo para texto
LIGHTRED 12 Rojo Claro Slo para texto
LIGHTMAGENTA 13 Magenta Claro Slo para texto
YELLOW 14 Amarillo Slo para texto
WHITE 15 Blanco Slo para texto
BLINK 128 Parpadeo Slo para texto

CARACTERES SECUENCIA DE ESCAPE


\a Alarma
\b Retriceso
\f Avance pgina
\n Retorno de carro y avance de lnea
\r Retorno de carro
\t Tabulacin
\v Tabulacin vertical
\\ Barra invertida
\? Signo interrogacin
\ Comillas dobles
\ooo Nmero en octal
\xhh Nmero en Hexadecimal
\0 Cero, nulo (ASCII 0)

31
ESPECIALIDAD PROGRAMACIN: MDULO 1 CBTis 4

PRCTICA 19:
EJERCICIOS DE REFORZAMIENTO: Realizar Codificacin, (Diagramas en FreeDFDCodificar en C++ opcional), depuracin,
verificacin, ejecucin, de cada ejercicio individualmente correctamente y subir al servidor de red acadmica para
efectos de evalucin los siguientes programas en C++:
FUNCIONES MATEMTICAS
AGGNL138A.DFD
AGGNL138.CPP
AGGNL139A.DFD
AGGNL139.CPP
AGGNL140A.DFD
Tan (x) AGGNL140.CPP
AGGNL141A.DFD
Exp (x) AGGNL141.CPP

PRCTICA 20:
CALCULO DE AREAS Y VOLUMENES DE FIGURAS GEOMETRICAS: Realizar diagrama y codificacin correspondientes.

AGGNL142A.DFD
AGGNL142.CPP
A: Area
V: Volumen
: 3.141592
R: Radio
h: Altura del cilindro

AGGNL143A.DFD
AGGNL143.CPP
A: Area
V: Volumen
: 3.141592
R: Radio
h: Altura del cono
g: Generatriz

AGGNL144A.DFD
AGGNL144.CPP
A: Area
V: Volumen
: 3.141592
I: Arista

AGGNL145A.DFD
AGGNL145.CPP
A: Area
V: Volumen
: 3.141592
r: Radio

32
ESPECIALIDAD PROGRAMACIN: MDULO 1 CBTis 4

ESTRUCTURAS DE CONTROL EN C++

Aquellas que definen y controlan el flujo de ejecucin de un programa o funcin, estas permiten combinar instrucciones
o sentencias individuales en una unidad lgica con procedimientos de entrada y salida.
Todos los ejemplos y ejercicios vistos hasta ahora se ejecutan en modo secuencial, instrucciones sucesivas, siendo til
solo en programas sencillos, sin embargo no siempre es recomendable este tipo de programacin para todos los casos,
ya que existe problemas que requieren se ejecuten ciertas sentencias solo en algunos casos, donde el flujo de ejecucin
se bifurca, para esto existen las estructuras de control las cuales se dividen en 3 grupos:
1. Secuenciales.
2. Selectivas.
3. Repetitivas.
ESTRUCTURAS DE CONTROL SECUENCIAL:
Definida como una secuencia finita de acciones hasta obtener un resultado coherente. Su ejecucin se realiza en el orden
en que se presentan las instrucciones, desde el inicio hasta el final del programa.
<sentencia_1>;
<sentencia_2>;
-----------
< sentencia_n>;

ESTRUCTURAS DE CONTROL SELECTIVO (SIMPLE Y DOBLE) IF:


C++ reconoce a la sentencia IF como la estructura de control selectivo principal y presenta 2 alternativas: cuando la
condicin se cumple o cuando esta no se cumple.

CONDICIN SELECTIVA SIMPLE CONDICIN SELECTIVA DOBLE


Flujo original Flujo original

SI SI
OPC=1 Accin_A OPC=1 Accin_A

NO NO

Accin_B

CONDICIN SELECTIVA SIMPLE


La sentencia selectiva simple evala una condicin lgica.
La evaluacin de la condicin lgica representa un slo valor Verdad o Falso.
Si la condicin lgica es verdadera se ejecuta la ACCION_A y continua el flujo normal del programa.
Si al evaluar la condicin lgica es falsa se ignora la ACCION_A y continua el flujo normal del programa.
Sintaxis:
if (condicin lgica )
ACCION_A;

CONDICIN SELECTIVA DOBLE


La sentencia selectiva doble evala una condicin lgica
Si la condicin lgica es verdadera se ejecuta la ACCION_A.
Si la condicin lgica es evaluada como falsa se ejecuta la ACCION_B

33
ESPECIALIDAD PROGRAMACIN: MDULO 1 CBTis 4

Sintaxis:
if (condicin lgica )
ACCION_A;
else
ACCION_B;
PRCTICA 21:
CONTROL SELECTIVO IF-THEN SIMPLE, DOBLE: Codificar en C++, depurar, verificar, ejecutar, en forma individual, cada
uno de los archivos correctos y subir al servidor de red acadmica para efectos de evalucin los siguientes programas:
AGGNL146.CPP

AGGNL147.CPP

34
ESPECIALIDAD PROGRAMACIN: MDULO 1 CBTis 4

AGGNL148.CPP AGGNL149.CPP

PRCTICA 22:
CONTROL SELECTIVO IF-THEN MULTIPLE: Codificar en C++, depurar, verificar, ejecutar, en forma individual, cada uno de
los archivos correctos y subir al servidor de red acadmica para efectos de evalucin los siguientes programas en C++:

AGGNL150.CPP

Aplicar manipulador de salida de datos a 2 dgitos decimales

35
ESPECIALIDAD PROGRAMACIN: MDULO 1 CBTis 4

AGGNL151.CPP

36
ESPECIALIDAD PROGRAMACIN: MDULO 1 CBTis 4

SENTENCIA DE CONTROL SELECTIVO SWITCH-CASE (OPCIN MLTIPLE)

Sentencia de control selectivo de C++ utilizada para la eleccin de una opcin entre mltiples alternativas, siendo
especialmente til cuando la seleccin se basa en el valor de la variable de control o selector, esta se evala y compara
con cada etiqueta case, el selector debe ser un dato de tipo ordinal (int, char, bool pero no flota ni string) y cada
etiqueta debe ser diferente.
break : es instruccin que dentro del switch (seleccin mltiple) determina el final de cada case u alternativa.
default : Instruccin que dentro del switch determina las acciones a realizar cuando el valor introducido en la variable de
control es falso a cualquier de los valores reconocidos en case.

REGLAS DE USO:

1. La variable selector o expresin de control no puede ser: string o real.


2. La sentencia swith requiere un valor compatible con entero. El valor puede ser variable, una constante, una
llamada de funcin o una expresin.
3. El valor despus de cada etiqueta case debe ser una constante.
4. El final del enunciado case est marcado tpicamente con un break. Dicha sentencia permite que el programa
abandone la estructura switch omitiendo los dems casos.
5. La etiqueta default indica al programa lo mismo que la sentencia else en la secuencia de if anidados, es decir;
se ejecuta cuando el usuario edita un valor que no esta en la lista de valores.
6. La variable selector o expresin de control no puede ser: string o real.
7. La etiqueta default indica al programa lo mismo que la sentencia else en la secuencia de if anidados, es decir;
se ejecuta cuando el usuario edita un valor que no esta en la lista de valores.
8. Cuando se requiere realizar una misma accin para distintos valores de la expresin evaluada, se coloca una
sentencia case por cada valor. Sin ninguna accin, y la accin comn se pone al final. Ejemplo:

Formato de la estructura de contro switch-case:


switch (selector)
{
case etiqueta(1) :
sentencia(s);
break;

case etiqueta(n) :
sentencia(s);
break;

default:
sentecia(s); // optativo
}

37
ESPECIALIDAD PROGRAMACIN: MDULO 1 CBTis 4

PRCTICA 23:

CONTROL SELECTIVO SWITCH-CASE: Codificar en C++, depurar, verificar, ejecutar, en forma individual, cada uno de los
archivos correctos y subir al servidor de red acadmica para efectos de evalucin los siguientes programas en C++:
AGGNL152.CPP

AGGNL153.CPP
38
ESPECIALIDAD PROGRAMACIN: MDULO 1 CBTis 4

INICIO

COD_ASCII
VALORES POSIBLES
X = COD_ASCII
NO
130 =
X= 130 SI SI X= 162 160 =
COD_ASCII=X
161 =
162 =
SI 163 =
X= 160 SI
164 =
X= 163
165 =
SI
SI

X= 161 SI
X= 164

X= 165

OPCIN NO
VALIDA !
FIN DEL
PROGRAMA

FIN

SENTENCIAS DE CONTROL REPETITIVO (CICLOS).


Otra de las estructuras de control bsicas dentro de la programacin son las estructuras de control repetitivo, tambin
denominadas Ciclos Bucles, lo que permite dentro de un programa repetir un grupo de sentencias un nmero de veces
determinada o que estos se repitan cuando las condiciones se cumplan.

BUCLE: Construccin de un programa que repite una o ms sentencias


CUERPO DEL BUCLE: Conjunto de sentencias dentro de un programa que se repiten definidamente
ITERACIN: Cada repeticin que presenta el bucle o ciclo.

CICLOS FOR (Controlado por contador)


Ciclos en los que el nmero de iteraciones se conocen anticipadamente por lo que se les denomina bucles controlados
por contador, en estos las sentencias se ejecutan un nmero fijo de veces.

Estos ciclos cuenta de 4 fases importantes:


1. Inicializacin:
La variable de control debe tomar un valor inicial pudiendo ser bucles simples o mltiples.
2. Parte de Iteracin:
Contiene la expresin lgica que determina que el bucle realice las iteraciones de las sentencias mientras que la
expresin sea verdadera.
3. Factor de Incremento/Decremento:
Es el valor que se modificar la variable de control en cada iteracin hasta su lmite.
4. Sentencias:
Son las distintas instrucciones que se ejecutarn durante cada iteracin hasta cumplir el nmero de iteraciones
definidos por el ciclo.
Formato:
for (Inicializacin; CondicinIteracin; Incremento)
39
ESPECIALIDAD PROGRAMACIN: MDULO 1 CBTis 4

Sentencias
Existen 2 modalidades de establecer la sentecia for para establecer los bucles estas son por incremento y por
decremento, tambin conocidas como formato ascendente y formato descendente.
Ejemplo:
for (r=1; r<=80; r++)
for (r=1; r=max; r--)
PRCTICA 24:
CICLOS FOR: Codificar en C++, depurar, verificar, ejecutar, en forma individual, cada uno de los archivos correctos y subir
al servidor de red acadmica para efectos de evalucin los siguientes programas en C++:
AGGNL154.CPP

AGGNL155.CPP

AGGNL156.CPP

40
ESPECIALIDAD PROGRAMACIN: MDULO 1 CBTis 4

CICLOS WHILE (Controlado por condicin)


Estructura de control repetitivo que se ejecuta cuando la condicin es verdadera, adems el nmero de iteraciones es
controlada por condicin, la cual se evala antes de que se ejecute el bucle.
Formato :

Opcin1:
while (condicin)
Sentencia; Cuerpo del bucle
Verdadera
Condicin_Bucle sentencia(s) Opcin2:
while (condicin)
{
Falsa Sentencia1;
Sentencia2;
. Cuerpo del bucle
.
.
SentenciaN;
}

El cuerpo del bucle se repetir mintras la expresin lgica (condicin del bucle) sea verdadera, al ser falsa se sale del
bucle y se ejecuta la siguiente sentencia del programa.

ACT 11. ACTIVIDAD EN PLATAFORMA: CUESTIONARIO EN LNEA: LENGUAJE ESTRUCTURADO EN C++.


El siguiente cuestionario consta de 20 preguntas pueden ser del tipo: falso y verdadero, opcin mltiple,
emparejamiento, y respuesta breve (solo las palabras necesarias y lgicas de cada respuesta no agregar smbolos a
los argumentos de los comandos), debes contestar solo en MAYSCULAS SIN ACENTOS, su resolucin deber
realizarse en solo un intento y con un tiempo lmite de duracin de 30 min.

Debes contestar cada pregunta y al final pulsar el botn: Enviar todo y terminar de la parte baja de la pgina para
que genere la calificacin de todas tus respuestas del cuestionario,

41
ESPECIALIDAD PROGRAMACIN: MDULO 1 CBTis 4

Nota importante: si excedes el tiempo de resolucin o tienes alguna falla con tu navegador y no cierras la actividad
puede provocar que el resultado de tu calificacin se vea afectado, por lo que debes asegurarte no tener virus en tu
pc no abrir ms pginas y utilizar un navegador libre de problemas para este fin.

PRCTICA 25:
CICLOS WHILE y DO-WHILE: Codificar en C++, depurar, verificar, ejecutar, en forma individual, cada uno de los archivos
correctos y subir al servidor de red acadmica para efectos de evalucin los siguientes programas en C++:

AGGNL157.CPP

AGGNL158.CPP
PSEUDOCODIGO DIAGRAMA AGGNL158.DFD

1. INICIO.
2. ESCRIBIR TABLAS DE MULTIPLICAR 1 al 10, CICLO WHILE
3. OPC=S;
4. MIENTRAS (OPC_=S || OPC=s)
5. ESCRIBIR QUE TABLA DE MULTIPLICAR DESEAS ?:
6. LEER FAC1
7. FAC2=1
8. MIENTRAS FAC2<=10
9. PRODUCTO=FAC1*FAC2
10. ESCRIBIR FAC1, X, FAC2, =, PRODUCTO
11. FAC2=FAC2+1
12. MIENTRAS FAC2>10
13. ESCRIBIR CONTINUAR s/n ? :
14. LEER CONT
15. OPC=CONT
16. FIN MIENTRAS
17. FIN MIENTRAS
18. ESCRIBIR FIN DEL PROGRAMA
19. FIN.

42
ESPECIALIDAD PROGRAMACIN: MDULO 1 CBTis 4

III UNIDAD
ESTRUCTURAS DE DATOS COMPLEJAS:
ARRAYS, ESTRUCTURAS DE DATOS PUNTEROS Y MANEJO DE ARCHIVOS.

ACT 12. ACTIVIDAD EN PLATAFORMA: 3 FORO EN LINEA: ARREGLOS ESTRUCTURAS Y ARCHIVOS.


Los alumnos, consultan en medios impresos y/o electrnicos, analizan los cuestionamientos siguientes y expresan
respuestas personales sobre:
DATOS COMPLEJOS EN C++:
1. Arreglos en C++ importancia y aplicaciones?
2. Describir 3 mtodos de ordenamiento clsicos en la programacin.
3. Explicar Punteros de C++
4. Describir las Estructura de datos.
5. Conceptos generales de los archivos en C++.

Comentarios vertidos deben ser breves, claros y concretos, adems los alumnos pueden corregir conceptos inprecisos
manifestados por otros compaeros, as mismo deber evitarse confrontaciones personales y no utilizar lenguaje obsceno
ni ofensivo, manteniendo en todo momento una actitud de cordialidad respeto.

ACTIVIDAD DE CLASE: EVALUACIN DIAGNSTICA: GENERALIDADES DE LOS DATOS ESTRUCTURADOS EN C++.


Los alumnos individualmente, investigan, elaboran y resuelven correctamente el siguiente cuestionario, a fin de
recuperar conocimientos previos, debiendo elaborar individualmente un documento electrnico de Word con el nombre
(AGGNL.DOC), (donde A corresponde a Mdulo 1, GG= N Gpo en 2 dgitos, NL: N lista, a 2 digitos) y subirla a esta
plataforma acadmica en internet y definiendo los siguientes conceptos:
1. Definir: Arrays: Unidimensionales, Bidimensionales y Multidimensionales.
2. Explicar que son las Bases de Datos y sus componentes: Registros y Campos.
3. Describir los mtodos de acceso a un arreglo en operaciones de Lectura/Escritura.
4. Citar 3 ejemplos de aplicacin de las estructuras.
5. Explique diferencias entre Array de caracteres y Cadena y exprselo grficamente.
6. Explique que sucedera si en un programa con una variable X a partir de un ciclo introducimos 10 veces
datos.
7. Que diferencia existe si esos 10 datos los introducimos en un arreglo.
8. Cite 5 caractersticas de los elementos en un arreglo.
9. Explique los datos alojados en el ejercicio PENL_45.CPP.
10. Para que sirve la funcin DEPURACIN del Ide de C++ y sus operaciones:
a. Ejecutar hasta el cursor.
b. Aadir variable vigilada.
c. Entrar a siguiente instruccin.

Nota importante:
Aplica mismas indicaciones de los trabajos de plataforma especificados: archivo no exceder 2 Mb, nombre segn
especificaciones, y contener: Portada, que incluya tus datos personales (Escuela, especialidad, logo, nombre del mdulo,
nombre del alumno, nmero de lista, grupo, No y nombre de la actividad, nombre del facilitador, lugar y fecha),
Desarrollo: y al final, debes incluir sus: Conclusiones, donde todo el contenido ntegro del archivo nunca exceder el
mximo de 6 cuartillas).

Se reitera que algunas de las competencias evaluadas en este mdulo son: responsabilidad y honestidad, por lo que
deteccin de copia o plagio de algn archivo de plataforma y/o prctica (parcial o ntegro) por parte de cualquier
alumno ser motivo de reprobacin del submdulo en cuestin.

43
ESPECIALIDAD PROGRAMACIN: MDULO 1 CBTis 4

ARRAYS UNIDIMENSIONALES (VECTORES O LISTAS):

LOS VECTORES:

Tambin conocidos como Vectores o Listas, son datos estructurados que contienen un nmero de elementos
finitos, tamao fijo homogeneidad en sus elementos y se caracterizan por presentar un ndice.
Ejemplo:
Nombre del Arreglo Indice Contenido VECTOR : NOM

NOM [1] : R [ 1 ] R
NOM [2] : O [ 2 ] O
NOM [3] : B [ 3 ] B
NOM [4] : E [ 4 ] E
NOM [5] : R [ 5 ] R
NOM [6] : T [ 6 ] T
NOM [7] : O [ 7 ] O

ARRAYS PARALELOS:

Arreglos diversos que utilizan el mismo ndice para referirse a trminos comunes capaces de procesarse
simultaneamente.
Ejemplo:

NOM[1] A CALIF [1] 8.0 [I] NOM [ I ] CALIF[ I ]


NOM[2] B CALIF [2] 6.5 [ 1 ] ALBERTO 8.0
NOM[3] C CALIF [3] 7.5 [ 2 ] BRENDA 6.5
NOM[4] D CALIF [4] 7.2 [ 3 ] CARMEN 7.5
NOM[5] E CALIF [5] 10.0 [ 4 ] DARIO 7.2
NOM[6] F CALIF [6] 9.0 [ 5 ] ESTEBAN 10
[ 6 ] FERNANDO 9

ACTIVIDAD DE CLASE: CONCEPTOS DE LA PROGRAMACIN EN C++ (VIA EMAIL AL FACILITADOR).


Los alumnos integrados en equipos de 5, realizan investigacin y exposicin del tema nico que se especifica, debiendo elaborar para
ello una presentacin electrnica en Power Point que conste de 11 diapositivas como mximo que incluya: Portada (ya especificada),
desarrollo (texto resumido, con imgenes relacionadas), al final conclusiones de equipo, que expongan uno de los siguientes tpicos,
que se asignarn de manera especfica por el facilitador a cada equipo:

2. Modelo Arquitectura Segmentada de John Von Newman

El docente elegir 3 de las investigaciones mejor documentadas, y solo las mejores podrn exponer el tema a sus compaeros, lo que
acreditar la participacin correspondiente, los alumnos pueden cuestionar a los equipos ponentes a fin de resolver dudas, as mismo
el facilitador apoya complementando cada una de exposiciones, los equipos debern guardar y subir el documento electrnico con el
nombre (AGNLXX.PPTX), previamente detallado, cuidando lineamientos de contenido, tamao de archivo, nm. diapositivas y fecha
de envo, previamente descritos para efectos de evaluacin.
La ltima diapositiva debe incluir Comentarios de Equipo, as tambin, los temas sern abordados solo uno por equipo y previa
asignacin del facilitador docente.
Nota importante: Solo el representante de equipo debe subir la presentacin a la plataforma acadmica, conteniendo los nombres de
integrantes organizados por nmero de lista en su portada.

44
ESPECIALIDAD PROGRAMACIN: MDULO 1 CBTis 4

AGGNL159.CPP

AGGNL160.CPP

45
ESPECIALIDAD PROGRAMACIN: MDULO 1 CBTis 4

AGGNL161.CPP

46
ESPECIALIDAD PROGRAMACIN: MDULO 1 CBTis 4

AGGNL162.CPP
ALGORITMO :
DICCIONARIO DE DATOS :
1. INICIO.
2. N=5
3. TOT=0 1. N=5 Constante que determina el lmite
4. ESCRIBIR Introduce elementos del Arreglo: mximo de iteraciones del ciclo I.
5. PARA (I=0; I<=N; I++)
6. ESCRIBIR I+1, Elemento:
2. I : Variable int de control del ciclo FOR.
7. LEER NUMS[ I ] 3. NUMS[N] : Arreglo tipo int del programa.
8. TOT+=NUMS[ I ] 4. TOT : Variable int que aloja el total de la
9. SIGUIENTE I
10. PARA (I=0; I<=N; I++)
suma de los elementos en el arreglo.
11. ESCRIBIR Elemento: [, I, ] = , NUMS[ I ]
12. SIGUIENTE I
13. ESCRIBIR LA SUMA DE TUS , N, NUMS= , TOT
14. FIN

DIAGRAMA DE FLUJO:

BSQUEDA EN VECTORES:
ACCESO A UN ARRAY:
Existen 2 mtodos de acceso a lectura y escritura de los elementos de un arreglo:
ACCESO DIRECTO:
Al realizar operaciones de lecto/escritura a un elemento especfico del array.
ACCESO SECUENCIAL:
Este tipo de acceso realiza un recorrido por cada uno de los elementos de todo el arreglo en la operacin de
lecto/escritura deseada.
47
ESPECIALIDAD PROGRAMACIN: MDULO 1 CBTis 4

En este ltimo caso, requieren de estructuras de repeticin para el acceso a toda la estructura o array y es comn que el
compilador de C++ enva mensajes de error cuando el ciclo y el nmero de elementos del mismo no coinciden, por lo que
se debe cuidar que estos coincidan siempre.
LAS CADENAS Y SUS FUNCIONES.

Tambin denominadas "strings" (en ingls), una cadena en C es un conjunto de caracteres, o valores de tipo "char",
terminados con el carcter nulo, es decir el valor numrico 0. Internamente se almacenan en posiciones consecutivas de
memoria. Este tipo de estructuras recibe un tratamiento especial, y es de gran utilidad y de uso continuo.

La manera de definir una cadena es la siguiente: char Saludo[5];

Cuando se declara una cadena hay que tener en cuenta que se debe reservar una posicin para almacenar el carcter
nulo, de modo que si se desea almacenar la cadena "HOLA", tendremos que declarar la cadena como: char Saludo[5];

Cuatro caracteres para "HOLA" y uno extra para el carcter '\000'.

Tambin nos ser posible hacer referencia a cada uno de los caracteres individuales que componen la cadena,
simplemente indicando la posicin. Por ejemplo el tercer carcter de nuestra cadena de ejemplo ser la 'L', podemos
hacer referencia a l como Saludo[2]. Los ndices tomarn valores empezando en el cero, as el primer carcter de
nuestra cadena sera Saludo[0], que es la 'H'.

Una cadena puede almacenar informaciones como nombres de personas, mensajes de error, nmeros de telfono, etc.

La asignacin directa slo est permitida cuando se hace junto con la declaracin. Por ejemplo:

char Saludo[5];
Saludo = "HOLA"

Producir un error en el compilador, ya que una cadena definida de este modo se considera una constante, como
veremos en el captulo de "arrays" o arreglos.

La manera correcta de asignar una cadena es:

char Saludo[5];
Saludo[0] = 'H';
Saludo[1] = 'O';
Saludo[2] = 'L';
Saludo[3] = 'A';
Saludo[4] = '\000';

O bien: char Saludo[5] = "HOLA";

48
ESPECIALIDAD PROGRAMACIN: MDULO 1 CBTis 4

ARREGLOS BIDIMENSIONALES

Tambin conocidos como Matrices o Tablas, son Arreglos de 2 subndices o 2 dimensiones, al igual que los
unidimensionales, sus subndices deben ser datos tipo ordinal o tipo subrango, para la ubicacin y almacenamiento de un
valor, deben definirse 2 subndices uno para la fila y otro para la columna, y no requieren ser subrango del mismo tipo.
Ejemplo: CALIF [4] [4]

Calif [1] [1]


8 7 6 5 Filas
8 7 8 9
7 9 6 9
6 8 8 7
Calif [4] [4]
Columnas

AGRUPACION DE LAS VARIABLES EN UNA ARREGLO BIDIMENSIONAL:

FILAS 1 V [1] [1] V [1] [2] V [1] [3 ] V [1] [4]

2 V [2] [1] V [2] [2] V [2] [3] V [2] [4]

3 V [3] [1] V [3] [2] V [3] [3] V [3] [4]


4 V [4] [1] V [4] [2] V [4] [3] V [4] [4]

1 2 3 4
COLUMNAS

ARRAYS MULTIDIMENSIONALES:

Arreglos que poseen ms de 2 Dimensiones o subndices (Quick Basic permite 60 ndices) Lenguaje C no limita el
nmero de subndices dentro de este tipo de estructuras.
Ejemplo:

1 PV[1] [1] [1] PV[1] [2] [1] PV[1] [3] [1] PV [1] [4][1]
PV [2] [4] [2]

FILAS 2 PV[2] [1] [1] PV[2] [2] [1] PV[2] [3] [1] PV[2] [4] [1]
PV [3] [3] [3]
3
O

3
PV[3] [1] [1] PV[3] [2] [1] PV[3] [3] [1] PV[3] [4] [1]
D

2
N
O

1
1 2 3 4
F

C O L U M N A S

49
ESPECIALIDAD PROGRAMACIN: MDULO 1 CBTis 4

ACT 13. ACTIVIDAD EN PLATAFORMA: INVESTIGACIN Y EXPOSICIN DE DATOS COMPLEJOS Y ARCHIVOS EN C++.

Los alumnos integrados en equipos, realizan investigacin, diseo y exposicin de una presentacin
electrnica en Power Point que conste de 11 diapositivas como mximo, incluyendo portada (logo de la
escuela, especialidad, grupo, nombre de la actividad, integrantes del equipo, num. de lista de c/u y el tema
abordado), que exponga uno de los siguientes tpicos, que se asignarn de manera especfica por el
facilitador a cada equipo:

1. Arrays definicin, clasificacin y aplicacin.


2. Mtodos de ordenamiento en C++.
3. Apuntadores, concepto, aplicacin e importancia.
4. Parmetros por Valor y Parmetros por referencia de una funcin.
5. Estructura de datos, conceptos, declaracin y aplicacin.
6. Archivos, definicin, tipos y aplicacin en C++.

Los alumnos durante la sesin de exposiciones realizan cuestionamientos a los equipos ponentes a fin de
resolver dudas, as mismo el facilitador apoya complementando en cada una de las exposiciones y los
equipos debern guardar y subir el documento electrnico con el nombre ( AGGNLXX.PPTX), as mismo,
deben reenviar la informacin a los dems equipos para su retroalimentacin, tambin en la elaboracin de
la presentacin, cada equipo cuida los lineamientos de: contenido, forma, tamao de archivo, num. de
dispositivas y fecha de cierre, previamente descritos para efectos de evaluacin.

La ltima diapositiva debe incluir Comentarios de Equipo, as tambin, los temas sern abordados solo uno
por equipo y previa asignacin del facilitador docente.

Nota importante: Solo cada representante de equipo debe subir la presentacin a la plataforma acadmica,
en representacin del mismo, por ello, esta debe contener los nombres de todos los participantes en su
portada.

50
ESPECIALIDAD PROGRAMACIN: MDULO 1 CBTis 4

AGGNL163.CPP

51
ESPECIALIDAD PROGRAMACIN: MDULO 1 CBTis 4

AGGNL163.CPP

52
ESPECIALIDAD PROGRAMACIN: MDULO 1 CBTis 4

TAREA DE INVESTIGACION
1. Explicar el objetivo de la directiva iomanip.h .
2. Definir las funciones setiosflags, ios::showpoint, ios::fixed, ios::right, set(X), , setfill (*), setprecision (X).
3. Explicar ejercicio 162 y 163.
4. Definir Recursividad.
5. Mtodo de Ordenacin por insercin.
6. Mtodo de Ordenacin Fusin (merge).
7. Mtodo de Ordenacin Montculo o pila (heap).
8. Mtodo de Ordenacin Shell
9. Mtodo de Ordenacin por intercambio.
10. Mtodo de bsqueda secuencial y binaria.

ALGORITMOS BASICOS DE ORDENACIN Y BSQUEDA.

La ordenacin o clasificacin de los arrays es una de las tareas ms usuales en la mayora de los programas que utilizan
estas estructuras de datos, este es el procedimiento mediante el cual los elementos del arreglo son dispuestos en un
orden especificado, ejemplo, numrico, alfabtico, etc., ejemplo:

25 1 35
13 5 25
15 7 22
22 8 15
35 13 13
8 15 8
5 22 7
7 25 5
1 35 1

Lista desordenada Lista ordenada ascendente Lista ordenada descendente


Otros ejemplos de listas ordenadas podemos observar: cuentas de un banco, agenda telefnica, dentro de la
programacin existen mtodos de ordenacin en los arreglos dentro de los cuales destacan:
1. Mtodo ordenacin por burbuja.
2. Seleccin.
3. Rpido (quick sort).
4. Ordenacin por insercin.
5. Fusin (merge).
6. Montculo o pila (heap).
7. Shell
8. Ordenacin por intercambio.
9. bsqueda secuencial y binaria.

METODOS DE ORDENACIN MS COMUNES:

Mtodo de Burbuja o Bubblesort:


Mtodo ms fcil de ordenacin, algoritmo que consiste en comparar cada elemento del arreglo en parejas, si los valores
no estn ordenados correctamente, sus valores se intercambian entre si, el valor ms pequeo flota hasta la parte
superior del array como si fuera una burbuja en un lquido

53
ESPECIALIDAD PROGRAMACIN: MDULO 1 CBTis 4

Diccionario de datos :
Nombre Tipo Uso
lista Cualquiera Lista a ordenar
TAM Constante entera Tamao de la lista
i Entero Contador
j Entero Contador
temp Similar que los elementos de la lista Para realizar los intercambios

Pseudocdigo en C:
1. for (i=1; i<TAM; i++)
2. for j=0 ; j<TAM - 1; j++)
3. if (lista[j] > lista[j+1])
4. temp = lista[j];
5. lista[j] = lista[j+1];
6. lista[j+1] = temp;

Ejemplo del ordenamiento Bubblesort:


1. Lista original : 4-3-5-2-1
2. 1 pasada : 3-4-5-2-1
3. 2 : 3-4-2-5-1
4. 3 : 3-4-2-1-5
Repitiendo este proceso vamos obteniendo los siguientes resultados:
5. 4 : 3-2-1-4-5
6. 5 : 2-1-3-4-5
7. 6 : 1-2-3-4-5

Mtodo de Seleccin:
Este mtodo tienen como caractersticas la bsqueda del elemento menor de un vector lista, el cual se intercambia con
el elemento ubicado en la primera posicin de la lista, posteriormente se busca el segundo elemento ms pequeo, se
intercambia con el segunco elemento de la lista y el proceso se repite nuevamente hasta concluir el ltimo elemento y se
ordene toda la lista.

Diccionario de datos :
Nombre Tipo Uso
lista Cualquiera Lista a ordenar
TAM Constante entera Tamao de la lista
i Entero Contador
pos_mem Entero Posicin del menor elemento de la
lista
temp Similar que los elementos de la lista Para realizar los intercambios

Pseudocdigo en C:
1. for (i=0; i<TAM-1; i++)
2. pos_men = Menor(lista, TAM, i);
3. temp = lista[i];
4. lista[i] = lista [pos_men];
5. lista [pos_men] = temp;
Nota
Menor(lista, TAM, i) es una funcin que busca el menor elemento entre las posiciones i y TAM-1. La bsqueda es
lineal (elemento por elemento). No lo incluyo en el pseudocdigo porque es bastante simple.

54
ESPECIALIDAD PROGRAMACIN: MDULO 1 CBTis 4

Ejemplo del ordenamiento:


1. Lista original : 4-3-5-2-1
2. 1 pasada : 1-3-5-2-4
3. 2 : 1-2-5-3-4
4. 3 : 1-2-3-5-4
5. 4 : 1-2-3-4-5

Mtodo Ordenamiento Rpido Quicksort:


Mtodo que tiene como caractersticas ser la tcnica de bsqueda ms rpida conocida, desarrollada por C.A.R. Hoare en
1960. El algoritmo original es recursivo, pero se utilizan versiones iterativas para mejorar su rendimiento (los algoritmos
recursivos son en general ms lentos que los iterativos, y consumen ms recursos). El algoritmo fundamental es el
siguiente:
1. Se elige un elemento de la lista, pudiendo ser cualesquiera y que se denomina elemento de divisin.
2. Buscar la posicin de ordenamiento.
3. Ordenar los elementos de la lista a cada lado del elemento de divisin, de un lado quedan todos los
elementos menores que el elegido y del otro lado todos los mayores, generandose virtualmente 2 sublistas
separadas.
4. Realizar este procedimiento en forma recursiva para cada sublista mientras tengan un largo mayor que 1,
finalizado este proceso la lista queda ordenada.
Analizando un poco ms se obtiene un procedimiento mucho ms efectivo. Se utilizan dos ndices: i, al que llamaremos
contador por la izquierda, y j, al que llamaremos contador por la derecha. El algoritmo es ste:
Recorres la lista simultneamente con i y j: por la izquierda con i (desde el primer elemento), y por la derecha con j
(desde el ltimo elemento).
Cuando lista[i] sea mayor que el elemento de divisin y lista[j] sea menor los intercambias.
Repites esto hasta que se crucen los ndices.
El punto en que se cruzan los ndices es la posicin adecuada para colocar el elemento de divisin, porque sabemos que a
un lado los elementos son todos menores y al otro son todos mayores (o habran sido intercambiados).
Al finalizar este procedimiento el elemento de divisin queda en una posicin en que todos los elementos a su izquierda
son menores que l, y los que estn a su derecha son mayores.

Diccionario de Datos :
Nombre Tipo Uso
Lista Cualquiera Lista a ordenar
inf Entero Elemento inferior de la lista
Sup Entero Elemento superior de la lista
elem_div Similar que los elementos de la Elemento divisor
lista
i Entero Contador a izquierda
j Entero Contador a derecha
cont Entero Variable cont para continuar con valor
=1

Pseudocdigo :
Nombre Procedimiento: OrdRap
Parmetros:
lista a ordenar (lista)
ndice inferior (inf)
ndice superior (sup)
// Inicializacin de variables
1. elem_div = lista[sup];
2. i = inf - 1;
3. j = sup;
4. cont = 1;
55
ESPECIALIDAD PROGRAMACIN: MDULO 1 CBTis 4

// Verificamos que no se crucen los lmites


5. if (inf >= sup)
6. retornar;
// Clasificamos la sublista
7. while (cont)
8. while (lista[++i] < elem_div);
9. while (lista[--j] > elem_div);
10. if (i < j)
11. temp = lista[i];
12. lista[i] = lista[j];
13. lista[j] = temp;
14. else
15. cont = 0;
// Copiamos el elemento de divisin
// en su posicin final
16. temp = lista[i];
17. lista[i] = lista[sup];
18. lista[sup] = temp;
// Aplicamos el procedimiento
// recursivamente a cada sublista
19. OrdRap (lista, inf, i - 1);
20. OrdRap (lista, i + 1, sup);
Ejemplo :
La primera llamada debera ser con la lista, cero (0) y el tamao de la lista menos 1 como parmetros.
5-3-7-6-2-1-4
Comparamos con el 5 por la izquierda y el 1 por la derecha.
5-3-7-6-2-1-4
5 es mayor que cuatro y 1 es menor. Intercambiamos:
1-3-7-6-2-5-4
Avanzamos por la izquierda y la derecha:
1-3-7-6-2-5-4
3 es menor que 4: avanzamos por la izquierda. 2 es menor que 4: nos mantenemos ah.
1-3-7-6-2-5-4
7 es mayor que 4 y 2 es menor: intercambiamos.
1-3-2-6-7-5-4
Avanzamos por ambos lados:
1-3-2-6-7-5-4
En este momento termina el ciclo principal, porque los ndices se cruzaron. Ahora intercambiamos lista[i] con lista[sup]
(pasos 16-18):
1-3-2-4-7-5-6
Aplicamos recursivamente a la sublista de la izquierda (ndices 0 - 2). Tenemos lo siguiente:
1-3-2
1 es menor que 2: avanzamos por la izquierda. 3 es mayor: avanzamos por la derecha. Como se intercambiaron los
ndices termina el ciclo. Se intercambia lista[i] con lista[sup]:
1-2-3
Al llamar recursivamente para cada nueva sublista (lista[0]-lista[0] y lista[2]-lista[2]) se retorna sin hacer cambios
(condicin 5.).Para resumir te muestro cmo va quedando la lista:
Segunda sublista: lista[4]-lista[6]
7-5-6
5-7-6
5-6-7
Para cada nueva sublista se retorna sin hacer cambios (se cruzan los ndices).
Finalmente, al retornar de la primera llamada se tiene el arreglo ordenado:
1-2-3-4-5-6-7

56
ESPECIALIDAD PROGRAMACIN: MDULO 1 CBTis 4

AGGNL164.CPP

57
ESPECIALIDAD PROGRAMACIN: MDULO 1 CBTis 4

AGGNL165.CPP

58
ESPECIALIDAD PROGRAMACIN: MDULO 1 CBTis 4

USO BASICO DE APUNTADORES.

DEFINICION DE VARIABLES PUNTEROS.


El uso de los punteros o apuntadores, es una tcnica poderosa de programar que permite eficientar y flexibilizar los
programas permitiendo que C y C++ sea poderoso.
PUNTERO:
Variable que contiene direcciones de otras variables, hasta ahora todas las variables reconocidas en nuestro curso de
programacin contienen valores de datos a diferencia de los punteros cuyos valores representan direcciones de memoria
donde los datos se almacenan, con este tipo de datos los programas pueden realizar muchas tareas que no sera posible
mediante el uso de otros tipos de datos.
Cuando se declara una variable, esta se asocia a propiedades conocidas como son: Nombre, Tipo y Direccin de memoria.
A est ltima, se tiene acceso mediante el operador de direccin & por lo que tambin es posible imprimir la direccin de
memoria, solo que hasta ahora nos hemos acostumbrado a imprimir solo su contenido.
Si una variable contiene la direccin de otra variable, se dice que la primera variable apunta a la segunda, por ejemplo si
una variable en la posicin 1004 est apuntanda por otra variable situada en la posicin 1000, esa posicin 1000
contendr el valor 1004, la sig. Figura ilustra este caso.
Dx de memoria Contenido

1000 1004

1001
1002

1003
1004
..
.

RAZONES QUE JUSTIFICAN EL USO DE LOS PUNTEROS:


1. Proporcionan los medios por los cuales las funciones pueden modificar sus argumentos de llamada.
2. Se utilizan para soportar rutinas de asignacin dinmica de memoria.
3. Mejora la eficiencia de las rutinas en los programas.
4. Proporcionan soporte a estructuras de datos complejas como son listas enlazadas y rboles binarios.
OPERADORES PUNTEROS
Existen dos operadores especiales de punteros: & y *.
1. & es un operador monario (solo necesita un operando) que devuelve la direccin de memoria de su operando
ejemplo:
M=&cuenta ;
M toma la direccin de memoria de la variable cuenta, esta es la direccin interna en la memoria de la
computadora, la direccin no tiene nada que ver con el valor de cuenta, por lo tanto m recibe la direccin de
cuenta.
2.
* Operador monario que devuelve el valor de la variable localizada en la direccin que sigue, siendo un operador
complementario de &

REGLAS DE LOS PUNTEROS:


1. Un puntero es una variable como cualquier otra.
2. Una variable puntero contiene una direccin que apunta a otra posicin de memoria.
3. En esa posicin de memoria se almacenan los datos a los que apunta el puntero.
4. Un puntero apunta a una variable de memoria.

59
ESPECIALIDAD PROGRAMACIN: MDULO 1 CBTis 4

AGGNL166.CPP

REGLAS DEL OPERADOR &


El carcter & presenta diferentes usos en C++:
1. Utilizado como prefijo de un nombre de variable devuelve la direccin de memoria.
2. Utilizado como sufijo de un tipo en una declaracin de una variable, declara la variable como sinnimo de la
variable inicializada.
3. Utilizado como de un tipo de declaracin de parmetros de una funcin declara la referencia de la variable.
Direccin de Memoria
Alta

1001
Pre 1000
999 Pre contiene el valor
de
100, que es la Dx de
*p es el valor del elemento
101 al que apunta PVta por lo
PVta 100 12.50 que *p toma el valor de
99 12.50
Direccin de Memoria
Baja

SENTENCIAS QUE UTILIZAN VARIABLES PUNTEROS.


Cada vez que es declarada una variable, el compilador reserva una direccin de memoria para almacenar el dato
(contenido de la variable), en el caso de un dato tipo entero esta ocupa 2 bytes de memoria, ese espacio se ubica en una
posicin especfica de memoria denominada direccin de memoria cuando es necesario hacer uso del valor variable el
compilador accesa automticamente a la direccin de memoria, por ello el uso de los punteros propicia la eficacia de los
programas ya que en si estos, asocian el valor con la direccin de memoria.

60
ESPECIALIDAD PROGRAMACIN: MDULO 1 CBTis 4

Memoria de la Computadora
Si tienes bien claro lo que es la memoria del computadora puedes saltarte esta seccin. Pero si confundes la memoria
con el disco duro o no tienes claro, A lo largo de la experiencia con las computadoras se ha encontrado con mucha gente
no tiene claro cmo funciona una computadora. Cuando hablamos de memoria nos estamos refiriendo a la memoria
RAM del ordenador. Son unas pastillas que se conectan a la placa base y nada tienen que ver con el disco duro. El disco
duro guarda los datos permanentemente (hasta que se rompe) y la informacin se almacena como ficheros. Nosotros
podemos decirle al ordenador cundo grabar, borrar, abrir un documento, etc. La memoria Ram en cambio, se borra al
apagar la computadora. La memoria Ram la usan los programas sin que el usuario de stos se de cuenta. Para hacernos
una idea, hoy en dia la memoria se mide en MegaBytes (suelen ser 16, 32, 64, 128Mb) y los discos duros en GigaBytes
(entre 3,4 y 70Gb, o mucho ms).
Hay otras memorias en la computadora aparte de la mencionada. La memoria de video (que est en la tarjeta grfica), las
memorias cach (del procesador, de la placa...).
Al declarar una variable estamos diciendo a la computadora que nos reserve una parte de la memoria para almacenarla.
Cada vez que ejecutemos el programa la variable se almacenar en un sitio diferente, eso no lo podemos controlar,
depende de la memoria disponible y otros factores misteriosos. Puede que se almacene en el mismo sitio, pero es mejor
no fiarse. Dependiendo del tipo de variable que declaremos el ordenador nos reservar ms o menos memoria. Como
vimos anteriormente los tipos de datos cada tipo de variable ocupa ms o menos bytes. Por ejemplo si declaramos un
char, el ordenador nos reserva 1 byte (8 bits). Cuando finaliza el programa todo el espacio reservado queda libre.
Existe una forma de saber qu direcciones nos ha reservado la computadora. Se trata de usar el operador & (operador de
direccin). ejemplo: Declaramos la variable 'a' y obtenemos su valor y direccin. Para mostrar la direccin de la variable
usamos el oprador &. Y el valor se muestra en hexadecimal.
No hay que confundir el valor de la variable con la direccin donde est almacenada la variable. La variable 'a' est
almacenada en un lugar determinado de la memoria, ese lugar no cambia mientras se ejecuta el programa. El valor de la
variable puede cambiar a lo largo del programa, lo cambiamos nosotros. Ese valor est almacenado en la direccin de la
variable. El nombre de la variable es equivalente a poner un nombre a una zona de la memoria. Cuando en el programa
escribimos 'a', en realidad estamos diciendo, "el valor que est almacenado en la direccin de memoria a la que
llamamos 'a'".

ACT 14. ACTIVIDAD EN PLATAFORMA: CRUCIGRAMA ARREGLOS, PUNTEROS, ESTRUCTURAS Y ARCHIVOS.

Los alumnos resuelven individualmente el crucigrama propuesto indicado en la liga en la plataforma virtual Moodle para
esta actividad especfica, mismo que deber resolverse correctamente en un tiempo no mayor de 15 min., en cada
palabra puede solicitar hasta un mximo de 2 caracteres o pistas de la respuesta correcta para no ser penalizado, as
mismo una vez resuelto el crucigrama (verifica que no tengas activado el bloqueo de ventanas emergentes), no cerrar la
pantalla con el resultado, ya que debes capturar la pantalla con la calificacin legible, cuando se despliegue el resultado
obtenido (pulse las teclas Alt+Impr pantalla), misma que es el registro o evidencia de resolucin del mismo.
Para ello, debe elaborar individualmente un documento de Word con el nombre (AGGNLXX.DOC), en el que debes pegar
la imagen previamente capturada del crucigrama, as mismo liste y defina cada uno de los trminos correctos del
crucigrama, por ltimo, no olvide anotar conclusiones personales al final de su documento a subir en plataforma
acadmica.

61
ESPECIALIDAD PROGRAMACIN: MDULO 1 CBTis 4

AGGNL167.CPP

TAREA DE INVESTIGACION
1. Explique que diferencia existe en las direcciones de memoria los punteros de &val1...&val5, asi mismo con la
direccin de memoria de la variable valor del ejercicio 167.CPP
2. Explicar como se comportan los punteros en datos int (numricos) y en datos tipo char del ejercicio 168.CPP
3. Explique diferencias entre variable por valor y variable por referencia.
4. Definir la funcion strcpy

DECLARACION DE VARIABLE PUNTERO.


Como cualquier variable, los punteros deben declararse antes de su utilizacin, este tipo de variables debe indicar al
compilador el tipo de dato al que apunta el puntero, por lo que despus de su identificador debe preceder por el smbolo

62
ESPECIALIDAD PROGRAMACIN: MDULO 1 CBTis 4

del asterisco (*) , por lo que invariablemente cuando aparezca un asterisco (*), en una declaracin de variable, esto
define una variable puntero.
Formato: tipo de dato apuntado *identificador puntero

Ejemplos:
int *cuenta Puntero a un tipo entero char *texto Puntero a un tipo carcter
Long *pventa Puntero a un tipo entero largo float *calif Puntero a un tipo flotante

Inicializacin de punteros.
C++ no inicializa los punteros en su declaracin (No les define valor) por lo que es necesario inicializarlos previamente a
su utilizacin y ello proporciona la direccin del dato correspondiente, y solo hasta que este proceso se haya realizado,
podr ser utilizado para asignar direcciones de memoria, para asignar una direccin de memoria (dx) a un puntero, como
se mencion anteriormente, se utiliza el operador &, cuando se ha definido un puntero, el asterisco del puntero indica
(contenido de) la memoria apuntada por el puntero debiendo ser del tipo especificado.
Inicializacin esttica:
Recibe este nombre ya que la asignacin de memoria requerida para almacenar el valor es fijo y no puede desaparecer.
Una vez que la variable es definida, el compilador establece suficiente memoria para almacenar un valor del tipo de dato
especificado. La memoria permanece reservada para esta variable y no puede ser utilizada para otra coso durante la
ejecucin del programa, el puntero a esa variable puede ser cambiado pero no su cantidad de memoria reservada.
Indireccin de punteros:
Como se mencion, despus de declarar una variable puntero, este debe inicializarse y posteriormente utilizarse para
direccionar algn tipo de dato en memoria, el uso de un puntero para obtener el valor que apunta, el dato apuntado se
denomina indireccionar el puntero (desreferenciar el puntero) para ello se utiliza el operador de indireccin que no es
otra cosa que un operador de sobrecarga.

PUNTEROS A ENTEROS.
Los punteros se enlazan a tipos de datos especficos, de modo que C++ verifica si se asigna la direccin de un tipo de dato
al tipo correcto de puntero, de tal manera que si se declara un puntero flota, no se le puede asignar la direccin de un
carcter o un entero.
C++ requiere que las variables puntero direccionen realmente variables del mismo tipo de dato que est ligado a los
punteros en sus declaraciones.
Aritmtica de Punteros:
Los punteros permiten solo 2 operaciones aritmticas en las que pueden utilizarse los punteros y estas son suma y resta,
para entender que ocurre con la aritmtica de punteros, sea P1 un puntero a un entero con valor actual de 2000 y
asumamos que los enteros son de 2 bytes de longitud despus de la expresin:
P1++;
P1 contiene 2002, no 2001 ! Cada vez que se incrementa P1, apunta al siguiente entero, lo mismo ocurre al
decrementar, ejemplo
P1-- ;
Hace que P1 tenga el valor de 1998, asumiendo que previamente era 2000.
Cada vez que se incrementa un puntero, este apunta a la posicin de memoria del siguiente elemento de su tipo base.
Cada vez que se decrementa, apunta a la posicin de memoria del elemento anterior. Con punteros a caracteres, esto
frecuentemente hace que parezca una aritmtica normal, sin embargo, el resto de los punteros o decrecen en la longitud
del tipo de datos a los que apuntan.

63
ESPECIALIDAD PROGRAMACIN: MDULO 1 CBTis 4

AGGNL168.CPP

PUNTEROS A ARRAY.
Como se ha descrito hasta ahora, los arrays y los punteros tienen una estrecha relacin en lenguaje C++, ya que se puede
direccionar arrays como si fueran punteros y viceversa y ello implica que pueden almacenar cadenas de datos en
elementos de arrays y sin los punteros eso no es posible, ya que no existe en C++ el dato tipo cadena (string) comun de
otros lenguajes, unicamente constantes de cadena.
Un nombre de array es un puntero, considere el siguiente ejemplo:

int lista [5] = {10, 20, 30, 40, 50 };


Lista ---> [ 0 ] Memoria
[1] 10 <------ * lista
[2] 20 <------ * ( lista +1 )
[3] 30 <------ * ( lista +2 )
[3] 40 <------ * ( lista +3 )
[4] 50 <------ * ( lista +4 )
Array almacenado en memoria

Si visualiza lista [ 0 ] observara que su contenido es 10, pero si visualiza *lista como el nombre de array es un puntero,
tambin observar que su contenido es 10, por lo que:

64
ESPECIALIDAD PROGRAMACIN: MDULO 1 CBTis 4

lista +0 apunta a Lista [ 0 ]


lista +1 apunta a Lista [ 1 ]
lista +2 apunta a Lista [ 2 ]
lista +3 apunta a Lista [ 3 ]
lista +4 apunta a Lista [ 4 ]

Ventajas de los punteros:


El nombre de un arreglo es una constante puntero, no una variable puntero y por ello no puede cambiarse el valor de un
nombre array, como no pueden cambiarse las constantes, ello explica por que no se pueden reasignar a un arreglo
durante la ejecucin del programa.
Solo puede asignarse valores a un array en tiempo de declaracin, un elemento cada vez durante su ejecucin o
mediante funciones tales como strcpy().

PUNTEROS A CADENAS.
La inicializacin de un array de punteros a cadenas se ejemplifica como el caso a continuacin:
char *meses [12] = {Enero, Febrero, Marzo, Abril, Mayo, Junio, Julio, Agosto,
Septiembre, Octubre, Noviembre, Diciembre};
Los punteros se utilizan sustituyendo los ndices de los arrays ejemplo:

AGGNL169.CPP

El estudio de las cadenas es til para profundizar en la relacin entre apuntadores y arreglos. Facilita, adems la
demostracin de cmo algunas de las funciones estndar de cadenas de C pueden ser implementadas. Finalmente
ilustraremos cmo y cuando los apuntadores pueden y deben ser pasados a una funcin. En C, las cadenas son arreglos
de caracteres. Esto no es necesariamente cierto para otros lenguajes. En Basic, Pascal, Fortran y en otros lenguajes, una
65
ESPECIALIDAD PROGRAMACIN: MDULO 1 CBTis 4

cadena tiene definido su propio tipo de datos. Pero en C, esto no es as. En C una cadena es un arreglo de caracteres
terminado con un carcter binario de cero (escrito como \0). Para comenzar escribiremos algo de cdigo, el cual si bien
es preferido para propsitos meramente ilustrativos, probablemente no lo escribirs en un programa real. Consideremos
por ejemplo:
char mi_cadena[40];
mi_cadena [0] = 'T';
mi_cadena [1] = 'e';
mi_cadena [2] = 'd':
mi_cadena [3] = '\0';
Si bien uno nunca construira cadenas de este modo, el resultado final es una cadena que es en realidad un arreglo de
caracteres terminado con un caracter nul. Por definicin, en C, una cadena es un arreglo de caracteres terminado con el
carcter nul. Hay que tener cuidado con que nul no es lo mismo que NULL. El nul se refiere a un cero definido por la
secuencia de escape \0. Esto es, que ocupa un byte de memoria. El NULL, por otra parte, es el nombre de la macro
usada para inicializar apuntadores nulos. NULL est definido en un archivo de cabecera del compilador de C, mientras
que nul puede no estar definido del todo. Ya que al estar escribiendo cdigo como el de arriba gastaramos mucho
tiempo, C permite dos modos alternativos de llegar al mismo resultado. El primero sera escribir: char mi_cadena [40] =
{'T', 'e', 'd', '\0',};
Pero es conveniente: char mi_cadena [40] = "Ted";
Cuando usamos las comillas dobles, en lugar de las simples usadas en los ejemplos anteriores, el carcter nul (\0) se
aade automticamente al final de la cadena. En cualquiera de los casos descritos arriba sucede la misma cosa,. El
compilador asigna un bloque continuo de memoria de 40 bytes de longitud para alojar los caracteres y los inicializa de tal
manera que los primeros 4 caracteres son Ted\0.

DEFINICION Y DECLARACION DE FUNCIONES.


Las funciones son un conjunto de instrucciones que realizan una tarea especfica. En general toman unos valores de
entrada, llamados parmetros y proporcionan un valor de salida o valor de retorno; aunque tanto unos como el otro
puede no existir, y son una herramienta muy valiosa, que se utilizan en muchos programas C++.
Al igual que con las variables, las funciones pueden declararse y definirse. Una declaracin es simplemente una
presentacin, una definicin contiene las instrucciones con las que realizar su trabajo la funcin.
Formato de declaracin:
Tipo_devuelto Nombre_Funcin (Lista de parmetros)
{
Declaracin de variables;
sentencia(s);
}
En general, la definicin de una funcin se compone de las siguientes secciones, aunque pueden complicarse en ciertos
casos:
Opcionalmente, una palabra que especifique el tipo de almacenamiento, puede ser "extern" o "static". Si no se
especifica es "extern", por momento slo usaremos funciones externas, y se menciona porque es parte de la
declaracin. Las funciones declaradas como extern estn disponibles para todo el programa, las funciones static
pueden no estarlo.
El tipo del valor de retorno, que puede ser "void", si no necesitamos valor de retorno. En C, si no se establece,
por defecto ser "int", aunque en general se considera se recomienda no omitir el tipo de valor de retorno. En
C++ es obligatorio indicar el tipo del valor de retorno.
Modificadores opcionales. Tienen un uso muy especfico, de momento no entraremos en este particular, lo
mencionaremos posteriormente.
El nombre de la funcin. Es muy recomendable, poner nombres que indiquen, su contenido, qu es lo que hace
la funcin, y que permitan interpretar qu hace el programa con slo leerlo. Cuando se precisen varias palabras
para conseguir este efecto existen varias reglas aplicables de uso comn. Una consiste en separar cada palabra
con un "_", la otra, consiste en escribir la primera letra de cada palabra en mayscula y el resto en minsculas.

66
ESPECIALIDAD PROGRAMACIN: MDULO 1 CBTis 4

Por ejemplo, si hacemos una funcin que busque el nmero de telfono de una persona en una base de datos,
podramos llamarla "busca_telefono" o "BuscaTelefono".
Una lista de declaraciones de parmetros entre parntesis. Los parmetros de una funcin son los valores de
entrada (y en ocasiones tambin de salida). Para la funcin se comportan exactamente igual que variables, y de
hecho cada parmetro se declara igual que una variable. Una lista de parmetros es un conjunto de
declaraciones de parmetros separados con comas. Puede tratarse de una lista vaca. En C es preferible usar la
forma "func(void)" para listas de parmetros vacas. En C++ este procedimiento se considera obsoleto, se usa
simplemente "func()"..
Un cuerpo de funcin que representa el cdigo que ser ejecutado cuando se llame a la funcin. El cuerpo de la
funcin se encierra entre llaves "{}"
Una funcin muy especial es la funcin "main". Se trata de la funcin de entrada, y debe existir siempre, ser la que tome
el control cuando se ejecute un programa en C. Los programas Windows usan la funcin WinMain() como funcin de
entrada. Existen reglas para el uso de los valores de retorno y de los parmetros de la funcin "main", en este momento
solo usaremos como "int main()" o "int main(void)", con un entero como valor de retorno y sin parmetros de entrada. El
valor de retorno indicar si el programa ha terminado sin novedad ni errores retornando cero, cualquier otro valor de
retorno indicar un cdigo de error.

PROTOTIPO DE UNA FUNCION :


Un prototipo es una declaracin de una funcin. Consiste en una definicin de la funcin sin cuerpo y terminado con un
";". En C++ es obligatorio usar prototipos. La estructura de un prototipo es:
<tipo> func(<lista de declaracin de parmetros>);
Por ejemplo: int Mayor(int a, int b);
Sirve para indicar al compilador los tipos de retorno y los de los parmetros de una funcin, de modo que compruebe si
son del tipo correcto cada vez que se use esta funcin dentro del programa, o para hacer las conversiones de tipo cuando
sea necesario. Los nombres de los parmetros son opcionales, y se incluyen como documentacin y ayuda en la
interpretacin y comprensin del programa. El ejemplo de prototipo anterior sera igualmente vlido y se podra poner
como: int Mayor(int,int);
Esto slo indica que en algn lugar del programa se definir una funcin "Mayor" que admite dos parmetros de tipo
"int" y que devolver un valor de tipo "int". No es necesario escribir nombres para los parmetros, ya que el prototipo no
los usa. En otro lugar del programa habr una definicin completa de la funcin.
Normalmente, las funciones se declaran como prototipos dentro del programa, o se incluyen estos prototipos desde un
fichero externo, (usando la directiva "#include", operador de preprocesador.) Ya se mencion ms arriba, pero las
funciones son "extern" por defecto. Esto quiere decir que son accesibles desde cualquier punto del programa, aunque se
encuentren en otros ficheros fuente del mismo programa. En contraposicin las funciones declaradas "static" slo son
accesibles dentro del fichero fuente donde se definen.
La definicin de la funcin se hace ms adelante o ms abajo. Lo habitual es hacerlo despus de la funcin "main".
TAREA DE INVESTIGACION
1. Explicar caractersticas de la estructura de una funcin:
a. Declaracin de datos.
b. Tipo de resultado.
c. Lista de parmetros.
d. Cuerpo de la funcin.
e. Paso de parmetros.
f. Valor devuelto.
2. Explique 3 reglas para nombrar una funcin.
3. Importancia dentro de las funciones en la programacin estructurada.

Ejemplo de un programa con uso de una funcin sin retorno de valores:

67
ESPECIALIDAD PROGRAMACIN: MDULO 1 CBTis 4

AGGNL170.CPP

68
ESPECIALIDAD PROGRAMACIN: MDULO 1 CBTis 4

AGGNL171.CPP

RELACIN Y JERARQUA DE LAS FUNCIONES EN C++

Main()

Funcin1 Funcin2 Funcin3

Funcin4 Funcin5

69
ESPECIALIDAD PROGRAMACIN: MDULO 1 CBTis 4

PASO DE PARMETROS.
PARMETROS DE UNA FUNCION:
El paso de parmetros en C++ es un mecanismo importante dentro de las funciones ya que a partir de el se permite la
transferencia de los valores entre las variables de las distintas funciones en un programa, por defecto sino se especifican
los parmetros, no existe transferencia de los valores entre las funciones.
C++ Reconoce 2 mtodos para transferir valores de las variables entre las distintas funciones en un programa, estos son:
1. Parmetros por Valor.
2. Parmetros por Referencia.

Paso de Parmetros por Valor:


Mtodo para transferir el valor a una variable entre funciones en un programa de C++ en que la funcin que recibe los
parmetros, el compilador transfiere una copia de los valores definidos como parmetros de la funcin original.
AGGNL172.CPP

70
ESPECIALIDAD PROGRAMACIN: MDULO 1 CBTis 4

Paso de Parmetros por Referencia:


Mtodo de transferencia entre las variables de las funciones en un programa en que se transfiere la direccin de
memoria (referencia) la cual contiene datos que pueden ser modificados, para este caso particular se utiliza el signo &
(ampersand) precedido al nombre de variable especificada de esta forma, C++ permite el uso de punteros para
implementar parmetros por referencia.

DIFERENCIAS ENTRE PARMETROS POR VALOR Y REFERENCIA:


1. Los parmetros por valor (sin &) reciben copias de los argumentos transferidos.
2. La asignacin a parmetros por valor de una funcin, nunca cambian el argumento original pasado a los
parmetros.
3. Los parmetros por referencia, (con &) reciben direcciones de memoria.
4. En una funcin, las asignaciones a parmetros por referencia, cambian los valores de los argumentos originales.
5. Todos los parmetros en C pasan por valor, C no ofrece la transferencia por referencia.

AGGNL173.CPP

71
ESPECIALIDAD PROGRAMACIN: MDULO 1 CBTis 4

CONCEPTO, DECLARACION Y USO DE ESTRUCTURAS.

ESTRUCTURA:
Es una coleccin de datos de uno o ms de elementos denominados miembros, donde cada miembro puede ser un tipo
de dato diferente.

La estructura puede contener cualquier nmero de miembros, donde cada uno tiene un nombre nico y es llamado
nombre del miembro, en otros lenguajes de programacin tambin se les conoce con el nombre campos y la estructura
son denominadas Bases de Datos, ejemplos de aplicacin de las estructuras.

LIBROS DE BIBLIOTECA REGISTRO DE VEHCULOS


Titulo : Programacin_C++ Marca : Chrysler
Autor : Luis_Joyanes Modelo : Stratus
Editorial : Mc_Graw_Hill Fecha_Fabrica : 2003
Edicion : 2002 Motor : Gasolina
Pags : 529 Cilindros : 4
Precio : 328.00 Tipo : Coup
Capac : 5
Uso : Particular
Placa : FBX56-590685
Costo : 190000.00

DEFINICION DE CAMPO.
MIEMBRO TIPO DE DATO MIEMBRO TIPO DE DATO

CAMPO
Titulo Array de caracteres longitud =30 Marca Array de caracteres longitud =15
Autor Array de caracteres longitud =35 Modelo Array de caracteres longitud =10
Editorial Array de caracteres longitud =25 Fecha_Fabrica Entero
Edicin Entero Motor Array de caracteres longitud =10
Pags Entero Cilindros Entero
Precio Flotante Tipo Array de caracteres longitud =15
Capac Entero
Uso Array de caracteres longitud =10
Placa Array de caracteres longitud =12
Costo Flotante
DEFINICION DE ESTRUCTURA.
La estructura es un tipo de dato definido por el usuario, en funcin de las necesidades especficas que requiera, por ello
debe declararse en forma previa o antes de ser utilizada, su formato de declaracin y sintaxis es la siguiente:

struct <nom_estructura>
{
tipo_dato1 nombre_miembro1;
tipo_dato2 nombre_miembro2;
tipo_dato3 nombre_miembro3;
tipo_dato_n nombre_miembro_n;
};

Ejemplo:

struct BIBLIOTECA;
{
char Titulo [30];
72
ESPECIALIDAD PROGRAMACIN: MDULO 1 CBTis 4

char Autor [35];


char Editorial [25];
int Edicion;
int Pags;
flota Precio;
};

DEFINICIN DE VARIABLES DE ESTRUCTURAS:


Para acceder a una Estructura, se utiliza una variable(s) que deben definirse despus de la declaracin de la estructura,
por lo que deben considerar los siguientes conceptos: Declaracin y Definicin.
Declaracin: especifica el nombre y formato de la estructura de datos, sin reservar espacio en memoria.

Definicin: establece o define un rea de memoria para cada variable de una estructura de acuerdo al formato declarado
las variables de una estructura pueden definirse de 2 formas:

1. Listndolas inmediatamente despus llave de cierre de la declaracin de la estructura.


2. Listando el nombre de la estructura precedida de las variables correspondientes en cualquier lugar del
programa previo a su utilizacin.

Ejemplo de Declaracin-Definicin :

Caso 1:
La DECLARACIN de la Estructura o se incluye en el programa, en forma previa a la funcin principal main ( ), la cual se
inicia con la palabra reservada struct <nombre de la estructura> , a menudo se refiere al nombre de la estructura como
su etiqueta en el ejemplo que establecemos es llamada DIR, posteriormente se definen los miembros o elementos de la
estructura, especificando el tipo de dato y el nombre de cada miembro.
La declaracin finaliza con el punto y coma, ya que la declaracin de una estructura es considerada por C++ como una
sola sentencia.
1. struct DIR
{
char nom[30];
char calle[40];
char ciudad [20];
char edo [3]
unsigned long int codigo;
};

Cabe destacar que en este punto del cdigo, realmente an no se ha definido ninguna variable del tipo estructura (la
definicin de la variable reserva el espacio de memoria que es requerido) que reconoce el compilador de C++ por lo que
debe incluirse al final de la declaracin de la estructura, en la seccin de declaracin de variables o antes utilizar la
estructura, una lnea que defina a la variable, en nuestro caso incluir la lnea:
struct DIR info_dir;

Estructura info_dir en memoria :

nom 30 bytes
calle 40 bytes
ciudad 20 bytes info_dir
edo 3 bytes
codigo 4 bytes

73
ESPECIALIDAD PROGRAMACIN: MDULO 1 CBTis 4

CASO 2:
En este caso se declara la estructura en primer trmino, y la definicin de variables se incluye inmediatamente despus
de la llave de cierre
2. struct DIR
{
char nom[30];
char calle[40];
char ciudad [20];
char edo [3]
unsigned long int codigo;
} a_info, b_info, c_info;

CONSTRUCCION DE UNA ESTRUCTURA EN C.

Como ya se mencion anteriormente la estructura de datos es una coleccin de datos de tipos diferentes que se
referencan bajo un nico nombre, proporcionando un medio eficaz para mantener junta la informacin relacionada.
La declaracin de la estructura forma parte de la plantilla que puede utilizarse para crear variables de estructura, las
variables que componen la estructura llamados miembros, elementos o en algunos casos campos de la estructura. En
general, cada elemento de la estructura est relacionado lgicamente con los otros, ejemplo la informacin de un
directorio (nombre y direccin) seran representados como una tpica estructura.
Otro ejemplo tradicional de una estructura es el registro de una nomina: un "empleado" es descrito por un set de
atributos tales como el nombre, direccin, numero de seguro social, salario, etc.
Algunas de estas en cambio podran ser estructuras: un nombre tiene varios componentes, como es una direccin y an
un salario.
Las estructuras ayudan a organizar complicados datos, particularmente en programas largos, porque en muchas
situaciones de ellas permiten un grupo de variables relacionadas para ser tratadas como una unidad en vez de entidades
separadas.

REFERENCIA A LOS ELEMENTOS DE UNA ESTRUCTURA


Los elementos individuales de una estructura tambin conocidos como campos, se referencan utilizando el operador.
(operador punto), en el siguiente ejemplo al campo cdigo postal de la estructura info_dir se le asigna el valor sig:
Info_dir.nom=JUAN PEREZ JUREZ
info_dir.codigo=12345;
Todos los elementos o campos que se almacenan en la estructura son expresados en forma similar.

ALMACENAMIENTO DE DATOS EN UNA ESTRUCTURA:

Las estructuras permiten el almacenamiento de datos a partir de varios procedimientos:


1. Inicializacin.
2. Asignacin directa.
3. Lectura de datos desde el teclado

Inicializacin: Almacenamiento de datos en una estructura, en la que se definen o asignan valores dentro de la seccin
de cdigo de un programa, incluso en la propia declaracin de la estructura, un ejemplo de esta forma de asignacin de
datos en una estructura lo vemos en el ejercicio LP2NL_03.CPP.

Asignacin directa: Forma de almacenamiento de datos en una estructura, en la que se define el valor a el o los
miembros especficos de una estructura, para ello se recurre de los operadores punto y operador puntero.

74
ESPECIALIDAD PROGRAMACIN: MDULO 1 CBTis 4

Lectura desde el teclado: Este procedimiento permite que el usuario introduzca valores o datos de entrada en forma
interactiva a cada miembro y elementos de una estructura desde el propio teclado, esta es la forma ms comnmente
utilizada desde cualquier sistema.
AGGNL174.CPP

75
ESPECIALIDAD PROGRAMACIN: MDULO 1 CBTis 4

TAREA DE INVESTIGACION
1. Explicar la funcin del operador sizeof durante la utilizacin de una estructura.
2. Defina y diferencia los accesos de datos de las estructuras mediante el operador de punto y el operador
puntero.
3. Defina String, Null ( \ 0 ).
4. Describa las funciones : cin.get( ) y cout.put( ).
5. Determine la funcin strcpy.
6. Explicar que importancia tien el uso de ARRAYS de Estructuras sobre las otras opciones.
7. Explicar estructuras anidadas.
8. Diferenciar Variables Estticas de Variables Dinmicas.

ACCESO A LOS MIEMBROS DE UNA ESTRUCTURA DE DATOS.


LECTURA Y RECUPERACIN DE DATOS DE UNA ESTRUCTURA:

LECTURA: Esta operacin se realiza mediante el apoyo de los operadores punto y/o operador puntero, empleando la
sentencia de entrada (cin>>).

SALIDA: La recuperacin de informacin de una estructura se realiza a partir de una sentencia de asignacin o utilizando
la sentencia de salida (cout<<), al igual que en el caso anterior se requiere el uso de los operadores punto y/o operador
puntero.

NOTA: En operaciones de entrada-salida de datos desde el teclado tiene la limitante que al manejar la introduccin de
variables tipo char, estas no deben incluir espacios en blanco, ya que cualquier palabra precedida del espacio en blanco
se perder al ser introducida desde el teclado y no podr recuperarse el dato tipo char completo.

ARREGLOS DE ESTRUCTURAS.

La utilizacin de Arreglos de estructuras, es el mtodo ms conveniente para almacenar archivos completos por ejemplo
el inventario de un almacn, el historial acadmico de grupos, la nmina de empleados de una empresa, los costos y
precios de artculos de una tienda departamental, etc.
Por esta razn, los arreglos de estructuras proporcionan la forma ms prctica de almacenar un conjunto de datos
diversos del mismo o diferentes tipos, todo ellos agrupados en una estructura denominada ARREGLO DE ESTRUCTURA.
La creacin de un arreglo de estructuras es similar a un arreglo de otros tipos y muchos programadores de C++ utilizan el
mtodo de los array de estructuras para almacenar datos en un archivo de disco, ya que se pueden introducir y calcular
los datos en este tipo de estructuras, su almacenamiento en memoria y en disco y su facilidad para operaciones de
lectura.

Del ejercicio LP2NL_06.CPP el Arreglo de estructura el nmero de elementos del arreglo est definido por la constante b,
la cual permite incrementar su valor conforme a las necesidades del usuario, sin la necesidad de tener que modificar ms
cdigo, de otra manera, tambin vlida se pudo haber definido el nm. de elementos del mismo al definir la variable de
estructura:

Calificas calif[b];
Calificas calif[100];

76
ESPECIALIDAD PROGRAMACIN: MDULO 1 CBTis 4

AGGNL175.CPP

As mismo los miembros de las estructuras pueden ser arreglos, recomendndose tener precausiones al acceder a los
elementos individuales del arreglo.

77
ESPECIALIDAD PROGRAMACIN: MDULO 1 CBTis 4

TIPOS DE ARCHIVOS EN C.

CONCEPTOS GRALES. DE ARCHIVOS


Como se han manejado hasta ahora los datos de los programas, el almacenamiento de los mismos en variables y en
arreglos se ha efectuado a la memoria por lo que son datos temporales, por ello se hace necesario que la informacin
manipulada desde cualquier programa sea alojada de manera permanente en la computadora teniendo como recurso
para tal fin los ARCHIVOS.
ARCHIVOS: Secuencia de bits almacenados en algn dispositivo de memoria secundaria, tales como una unidad de disco
magntico u ptico, una unidad de cinta y reconocido por la computadora, pueden existir de diferentes tipos.

ALGUNOS TIPOS DE ARCHIVOS COMUNES :


Archivos de Texto:
Datos o conjunto de bits agrupados en bytes reconocidos por el cdigo ASCII, que pueden ser procesados por cualquier
editor estndar de texto.
Archivo Grfico:
Datos o bits agrupados en palabras de 32 bits que representan pixeles de colores, este tipo de archivos es procesado por
software especializado en el manejo de grficos.
Archivos Ejecutables:
Archivo que contiene un programa compilado y linkeado capaz de ser ejecutado desde el sistema operativo
generalmente poseen extensiones *.COM y *.EXE.
Archivos Binarios:
Archivos que almacenan flujos de bits, que no ponen atencin al cdigo Ascii o la separacin de espacios en blanco, son
los ms adecuados, estos almacenan datos en funcin a la direccin de memoria de la computadora.
ARCHIVOS POR EL TIPO DE DIRECCIONAMIENTO:
Archivos de Entada:
Secuencia de bytes que se introducen a un dispositivo de almacenamiento y realizan una operacin de entrada de datos.
Archivos de Salida:
Flujo de datos que se transfieren a un dispositivo u operacin de salida.
En ambos casos los datos son manipulados en un flujo que puede ser reversible en operaciones de entrada o salida; C++
posee las clases: ifstream, ofstream y fstream, que se incluyen en el archivo de cabecera fstream.h, que tambin incluye
a iostream.h para aplicar mtodos asociados para la creacin de archivos y manejo de operacin entrada y salida de
archivos.
TIPOS DE ACCESO A LOS ARCHIVOS:
Acceso Directo:
Procedimiento en los que se realizan operaciones de entrada o salida de datos contenidos en una estructura tales como
Arrays, registros, enumerados, archivos, etc. En los que se permite obtener o transferir informacin a un elemento en
particular.
Acceso Secuencial:
Procedimiento de lectura o escritura progresiva de inicio a fin a todos los datos o elementos y/o datos contenidos en los
archivos.
Acceso Aleatorio:
Acceso comn en el manejo de base de datos que permite elegir registros especficos en los archivos, se describe
generalmente en trminos de un puntero de archivo o apuntador que define la posicin actual de un archivo, donde el
sistema de E/S de C++ requiere de los punteros get, que especifica la posicin en que se producir la operacin de

78
ESPECIALIDAD PROGRAMACIN: MDULO 1 CBTis 4

entrada y put, define la posicin donde se producir la operacin de salida, en cada operacin el apuntador avanza
automticamente.
AGGNL176.CPP

1. Nota: Para que este programa funcione debers crear con el Editor de Bloc de Notas el Archivo:PREVIO.TXT, y
debers insertar las siguientes lneas de texto:
Contenido del Archivo de Texto PREVIO.TXT
Nombre del Alumno, NL, Gpo. Especialidad.
Centro de Bachillerato Tecnolgico industrial y de servicios N 4
PROGRAMACIN ESTRUCTURADA C++
Nombre del Maestro.
2. As mismo, debes crear con el bloc de notas el archivo: NEWFILE.TXT, en este no escribirs ningn contenido o
texto, pero debers observar y analizar lo que sucede con este archivo despus de la 1 corrida.

TAREA DE INVESTIGACION:
1. Explicar conclusiones del contenido del archivo NUEVO.TXT despus de ejecutar 176.CPP.
2. Determine la funcin de la palabra reservada : cin.getline
3. Describir caractersticas de 25 tipos de archivos (segn tipo de extensin).
4. Explicar Jerarqua de datos (Pag 704 Deitel & Deitel).
5. Determine la funcin de eof y que funcin tiene en un archivo.
6. Definir las funciones de las biblitecas de flujo: iostream, ifstream, ofstream y fstream.
7. Explicar sobrecarga de operadores en C++.
79
ESPECIALIDAD PROGRAMACIN: MDULO 1 CBTis 4

8. Explicar la funcin de la palabra reservada return.


9. Describir conclusiones de DIR.TXT creado en el ejercicio 10 y la operacin de ios::out (en la modalidad out
y su diferencia del modo app).
10. Explicar las funciones miembro: open, close, good, fail, eof, get, put, read y write de C++.
11. Explicar 10 caractersticas generales de la entrada-salida BINARIA.
12. Describa Acceso Aleatorio de los archivos.

DECLARACION.
ARCHIVOS DE ACCESO SECUENCIAL, ENTRADA Y SALIDA DE ARCHIVOS:
La operaciones de E/S de C++ requieren de la utilizacin del archivo de cabecera fstream.h en el que se definen, como ya
se mencion las clases ifstream, ofstream y fstream.
La clase ifstream deriva de la clase istream que permite que los usuarios accesen a los archivos en modo de entrada en
operaciones de lectura de archivos, mientras que la clase ofstream deriva de la clase ostream y permite a los usuarios
acceder a las clases ifstream y ofstream, permitiendo con ello a los usuarios, acceder a operaciones de entrada y salida
de datos, debiendo por ello, utilizar adecuadamente las clases ifstream y ofstream con un manejo de archivos correcto.

JERARQUA DE CLASES DE E/S DE FLUJO

ios

istream ostream

ifstream iostream ofstream

fstream

La entrada y salida en C se lleva a cabo mediante el uso de funciones de biblioteca; no hay palabras clave de C que
realicen operaciones de entrada y salida. Los conjuntos completos de funciones de E/S definidos por C y C++ son:
1. El sistema de E/S definido por el ANSI, tambin denominado sistema de archivos con bffer (a veces se
utilizan tambin los trminos con formatos de alto nivel).
2. El sistema de E/S es tipo UNIX, a veces referido como un sistema de archivos sin bffer (sin formato). El
sistema de E/S tipo UNIX fue creado para los primeros compiladores de C, que furon desarrollados bajo
UNIX.
3. Algunas funciones de E/S de bajo nivel que operan directamente sobre el hardware de la computadora.

Modalidades en que pueden operar los archivos en operaciones de Entrada/Salida:

ios::in Modo entrada.


ios::app Modo aadir, si existen datos previos este modo ubica en la marca eof y all inicia a adjuntar datos.
ios::out Modo salida, si existen datos, estos se eliminan y remplazan por los nuevos.
ios::ate Modo abrir y buscar fin de archivo.
ios::nocreate Genera un error si no existe archivo.
ios::trunc Trunca el archivo a 0 si ya existe.
ios::noreplace Genera un error si el archivo existe.
ios::binary Archivo se abre en modo binario.

80
ESPECIALIDAD PROGRAMACIN: MDULO 1 CBTis 4

APERTURA Y MANIPULACION.
APERTURA:
Para que un programa realice operaciones de Lectura o Escritura en disco, requiere: ABRIR un archivo, este proceso
identifica la posicin del archivo, en el caso de un archivo de texto C++ en operacin de lectura, se crea un objeto o flujo
de la clase ifstream, para abrir un archivo de escritura el objeto creado es de la clase ofstream, pudindose utilizar los
nombres de los flujos que se crean con los operadores de insercin y extraccin .
Ejemplo de apertura de archivo para lectura, al inicio de cada ejecucin del programa debe incluirse la sentencia:
ifstream archen (demo );
El objeto ifstream se llama archen, que se asocia con un nombre para su localizacin y apertura del archivo.
Ejemplo de apertura de archivo para escritura, al inicio de cada ejecucin del programa debe incluirse la sentencia:
ofstream archsal (demo.out, ios_base::out);
AGGNL177.CPP

NOTA: Despus de ejecutar el archivo utilizando el editor de bloc de notas, observa el contenido de DIR.TXT y efectua
tus conclusiones.

81
ESPECIALIDAD PROGRAMACIN: MDULO 1 CBTis 4

AGGNL178.CPP

82
ESPECIALIDAD PROGRAMACIN: MDULO 1 CBTis 4

ENTRADA/SALIDA BINARIA:
get :
Miembro de la funcin istream su funcin es leer el flujo de entrada byte a byte (carcter)

put:
Proporciona un mtodo de sacar (escribir) un carcter en el flujo de salida put( ), acepta argumentos de tipo char y
devuelve objetos de la clase ostream.
AGGNL179.CPP

ACT 15. ACTIVIDAD EN PLATAFORMA: CUESTIONARIO EN LNEA: ARREGLOS, PUNTEROS, ESTRUCTURAS Y


ARCHIVOS.

El siguiente cuestionario consta de 20 preguntas de opcin mltiple, emparejamiento, falso y verdadero y respuesta
breve (solo las palabras necesarias y lgicas de cada respuesta), se sugiere contestar en MAYSCULAS, su resolucin
deber realizarse en solo un intento y con un tiempo lmite de duracin de 30 min.
Debes contestar cada pregunta y al final pulsar el botn: Enviar todo y terminar de la parte baja de la pgina para que
genere la calificacin de todas tus respuestas del cuestionario

83
ESPECIALIDAD PROGRAMACIN: MDULO 1 CBTis 4

AGGNL180.CPP

84