Está en la página 1de 77

Fundamentos de la programacin estructurada

Construcciones de control
Funciones
Arreglos
Punteros
Introduccin a la programacin visual

Wilfredo Bulege G.

Elementos de la
computacin

Introduccin a la Programacin
con C++.Net

Ejemplos desarrollados
utilizando :

E. A. P. :
Semestre:

Ingeniera Informtica
Tercero

Asignatura : Elementos de la Computacin


Docente :
Wilfredo Bulege Gutirrez

Introduccin a la Programacin con C++.Net


Wilfredo Bulege Gutirrez
wbulege@continental.edu.pe
Universidad Continental de Ciencias e Ingeniera SAC.
Fondo Editorial
Direccin: Calle Real No. 125, Huancayo Per
Telfonos: (064) 234329, (064) 221929
Web:
http://www.ucci.edu.pe
2d. Edicin: Enero del 2006, 500 ejemplares.
Hecho el depsito legal: 1201012003-6992
Ley: 26905
Prohibida la reproduccin total o parcial de este texto por cualquier medio sin el permiso previo y
por escrito de los titulares del Copyright.
Impreso en Per Printed in Per

Pgina No. 2

E. A. P. :
Semestre:

Ingeniera Informtica
Tercero

Asignatura : Elementos de la Computacin


Docente :
Wilfredo Bulege Gutirrez

ndice
Prlogo ................................................................................................................................
Captulo I: Conceptos bsicos

Qu es un lenguaje de programacin? ......................................................................

Qu es la Programacin Estructurada? ......................................................................

Qu es la Programacin Orientada a Objetos? ..........................................................

Qu es C++? ..............................................................................................................

Qu es MS Visual Studio? .......................................................................................

Contenedores: Soluciones y proyectos........................................................................

Proyectos de Visual C++.............................................................................................

Programa.....................................................................................................................

Resolucin de un problema de programacin ............................................................

Qu es un algoritmo? .................................................................................................
Captulo II: Introduccin a la Programacin estructurada con C++

El IDE de Microsoft Visual Studio 2005 ............................................................

Cmo crear un proyecto de Visual C++? .................................................

Cmo aadir un nuevo item a un proyecto? ...............................................................

Compilacin, Enlazamiento y creacin del archivo ejecutable ...................................

Tipos de archivos creados para proyectos de Visual C++ ...........................................

Estructura de un programa ...........................................................................................

Tipos de datos ..............................................................................................................

Variables y Constantes .................................................................................................

Inicializacin de variables ...........................................................................................

Operadores ..................................................................................................................

Expresiones .................................................................................................................

Palabras claves .............................................................................................................

Mecanismos de salida .................................................................................................

Secuencias de escape ..................................................................................................

Mecanismos de entrada ..............................................................................................

Evaluacin 01 .............................................................................................................

Instruccin If ...............................................................................................................

Ejercicios propuestos ..................................................................................................

Instruccin Switch ......................................................................................................

Ejercicios propuestos ..................................................................................................

Instruccin While ........................................................................................................

Ejercicios propuestos ..................................................................................................

Instruccin Do While ..................................................................................................

Instruccin For ............................................................................................................

Ejercicios propuestos ..................................................................................................


Captulo III: Funciones

Estructura de una funcin ............................................................................................

Pg.
5
6
7
7
8
9
10
10
10
10
11
12
12
13
13
14
15
16
17
17
18
19
19
19
20
20
26
27
33
34
35
36
41
41
43
45
46

Pgina No. 3

E. A. P. :
Semestre:

Ingeniera Informtica
Tercero

Asignatura : Elementos de la Computacin


Docente :
Wilfredo Bulege Gutirrez

Prototipos de las funciones ..........................................................................................

Parmetros de una funcin ..........................................................................................

Paso de parmetros por valor .......................................................................................

Paso de parmetros por referencia ...............................................................................


Captulo IV: Arreglos

Qu es un arreglo? ......................................................................................................

Arreglos unidimensionales ...........................................................................................

Matrices bidimensionales .............................................................................................

Arreglos de dimensiones mayores ...............................................................................

Ejercicios propuestos ...................................................................................................


Captulo V: Punteros
Qu es un puntero? .....................................................................................................
Captulo VI: Proyectos de Aplicacin MFC

Qu es una aplicacin MFC? .....................................................................................

Tipos de aplicacin MFC ............................................................................................

Cmo crear una Aplicacin MFC? ............................................................................


Captulo VII: .NET FRAMEWORK

Qu es .NET Framework? .........................................................................................

Principales componentes: Lenguajes, bibliotecas de clases y CLR ............................

Common Language Runtime ......................................................................................

Base Class Library de .NET ........................................................................................

Qu son los formularios Windows Forms? ...............................................................

Cmo crear un proyecto de aplicacin para Windows? ............................................


Bibliografa .........................................................................................................................

47
47
47
48
50
50
56
58
59
60
62
62
62
65
65
65
66
68
68
72

Pgina No. 4

E. A. P. :
Semestre:

Ingeniera Informtica
Tercero

Asignatura : Elementos de la Computacin


Docente :
Wilfredo Bulege Gutirrez

Prlogo
Cuando me inici en el aprendizaje de la programacin de computadoras, all por el verano de
1987 en el Centro de Cmputo Continental, hoy Universidad Continental, el lenguaje de
programacin que motiv mi incursin en la Informtica fue el BASIC, el mismo que corra sobre
computadoras Apple. Recuerdo los modelos IIc, IIe, con los cuales fcilmente se poda desarrollar
aplicaciones para automatizar diversos procesos administrativos en las organizaciones de aquel
entonces. Interesante experiencia, pero en la actualidad los atributos de los lenguajes de
programacin como C, BASIC, entre otros, han evolucionado permitiendo el desarrollo de software
basado en la metodologa de Objetos.
El Lenguaje de Programacin C++ es la evolucin del C, y una de sus caractersticas ms
importantes es la Orientacin a Objetos. Su aprendizaje en principiantes amerita la revisin de un
marco terico bsico sobre los fundamentos y las pautas de escritura de programas. Son estas
necesidades las que me han motivado escribir el presente libro. En esta segunda publicacin
actualizada, desarrollando contenidos basados en la Programacin Estructurada y una introduccin
a la programacin de aplicaciones Windows Form, utilizando MS Visual Studio 2003, por
considerar importantes a la hora de estudiar la metodologa de la Programacin Orientada a
Objetos.
El libro se inicia describiendo algunos conceptos bsicos de la programacin, el uso de estructuras
de control, la creacin de funciones, el uso de arreglos, punteros y finaliza con una introduccin al
desarrollo de aplicaciones de tipo MFC y Windows Forms.
A quienes se inician en la programacin, seguro encontrarn muchos inconvenientes en la escritura
de programas, cuando esto suceda, la consulta de E-Books, la revisin de programas escritos
anteriormente, la ayuda a travs de las listas de inters o de MS Visual C++.Net, son estrategias
interesantes para superar nuestras dificultades. La idea es nunca desistir.
Espero que usted estimado(a) lector(a), al concluir la presente lectura, fortalezca su confianza en la
capacidad de aprendizaje de la programacin, se que no es un material abundante, pero considero
que abrir un par de puertas para aprender la programacin con C++.Net.
Wilfredo Bulege G.
Huancayo - Per, 2006

Pgina No. 5

E. A. P. :
Semestre:

Ingeniera Informtica
Tercero

Asignatura : Elementos de la Computacin


Docente :
Wilfredo Bulege Gutirrez

Capitulo I
Conceptos bsicos
Qu es un lenguaje de programacin?
Es un lenguaje utilizado para escribir programas de computadoras, y se clasifican como:
Lenguaje mquina: En este lenguaje las instrucciones estn basadas en cadenas binarias que
especifican una operacin y las posiciones (direccin) de memoria implicadas se denominan
instrucciones de mquina. Una de las ventajas es de cargar programas sin necesidad de traduccin
posterior, lo que supone una velocidad de ejecucin superior. Entre las desventajas, tenemos:
Dificultad y lentitud en la codificacin, poca fiabilidad, dificultad en verificar y poner a punto los
programas.
Lenguajes de bajo nivel (ensamblador): estos son ms fciles de utilizar que los lenguajes mquina.
El lenguaje de bajo nivel por excelencia es el ensamblador (assembly). Las instrucciones en
lenguaje ensamblador son instrucciones conocidas como nemotcnicos, ejemplos: ADD, SUB,
DIV, etc.
Una instruccin tpica de suma seria:

ADD M, N, P

Su equivalente en cdigo mquina seria:

0110

1001

1010

1011

Un programa en assembly, no puede ser ejecutado directamente sino que requiere de una fase de
traduccin al lenguaje mquina, ejemplo, utilizando el programa debug:
-e 100 BA 40 00 8E DA BB 72 00 C7 07 34 12 EA 00 00 FF FF
-rcx
:11
-n reset.com
-w
-q
Lenguajes de alto nivel: Son los ms utilizados por los programadores y tienen las siguientes
ventajas:
El tiempo de formacin de los programadores es menor.
La escritura y modificacin de programas se basa en reglas sintcticas similares a los
lenguajes humanos.
Reduccin de costos de los programas.
Transportabilidad.
Algunas desventajas son:
Incremento del tiempo de puesta a punto.

Pgina No. 6

E. A. P. :
Semestre:

Ingeniera Informtica
Tercero

Asignatura : Elementos de la Computacin


Docente :
Wilfredo Bulege Gutirrez

Aumento de la ocupacin de memoria.


El tiempo de ejecucin de los programas es mucho mayor.
Algunos de los lenguajes de alto nivel, son: C++, Visual Basic, Delphi, Java, etc.
Qu es la Programacin Estructurada?
La Programacin Estructurada es un conjunto de tcnicas que han ido evolucionando desde los
primeros trabajos de Edsger Dijkstra. Estas tcnicas aumentan considerablemente la productividad
del programa, reduciendo en elevado grado el tiempo requerido para escribir, verificar, depurar y
mantener los programas.
Esta metodologa de programacin utiliza un nmero limitado de estructuras de control que
minimizan la complejidad de los programas y por consiguiente reducen los errores. Los programas
deben estar dotados de una estructura.
La Programacin Estructurada incorpora: recursos abstractos (descomponer acciones complejas en
acciones simples), diseo descendente (descomponer el problema en etapas o estructuras
jerrquicas) y estructuras de control (uso de estructuras secuenciales, de seleccin y repeticin) 1.
Qu es la Programacin Orientada a Objetos?
La Programacin Orientada a Objetos (POO) es una nueva filosofa de programacin que se basa
en la utilizacin de objetos. El objetivo de la POO no es sino la meta de cualquier modelo de
programacin estructurada convencional: imponer una serie de normas de desarrollo que
aseguren y faciliten la mantenibilidad y reusabilidad del cdigo.
Los mecanismos bsicos de la POO son: objetos, mensajes, mtodos y clases.
Objetos: un objeto es una entidad que tiene unos atributos particulares (datos) y unas formas de
operar sobre ellos (los mtodos o funciones miembro). Es decir, un objeto incluye, por una parte
una serie de operaciones que definen su comportamiento, y una serie de variables manipuladas
por esas funciones que definen su estado. Por ejemplo, una ventana Windows contendr
operaciones como maximizar y variables como ancho y alto de la ventana.
Mensajes: en C++, un mensaje se corresponde con el nombre de uno de los mtodos de un
objeto. Cuando se pasa un mensaje a un objeto, este responde ejecutando el cdigo de la funcin
asociada.
Mtodos: un mtodo (funcin miembro) se implementa dentro de un objeto y determina como
tiene que actuar el objeto cuando se produce el mensaje asociado. En C++ un mtodo se
corresponde con la definicin de la funcin miembro del objeto. La estructura ms interna de un
objeto est oculta, de tal manera que la nica conexin con el exterior son los mensajes.

Joyanes Aguilar, Luis, Programacin en C++, (2000, Edit. Mc Graw Hill, Espaa):23

Pgina No. 7

E. A. P. :
Semestre:

Ingeniera Informtica
Tercero

Asignatura : Elementos de la Computacin


Docente :
Wilfredo Bulege Gutirrez

Clases: una clase es la definicin de un tipo de objetos. De esta manera, una clase Empleado
representar todos los empleados de una empresa, mientras que un objeto de esa clase (tambin
denominado instancia) representar a uno de esos empleados en particular.
Las principales caractersticas de la POO son: abstraccin, encapsulamiento, herencia y
polimorfismo.
Abstraccin: es el mecanismo de diseo en la POO. Nos permite extraer, de un conjunto de
entidades, datos y comportamientos comunes para almacenarlos en clases.
Encapsulamiento: mediante esta tcnica conseguiremos que cada clase sea una caja negra, de tal
manera que los objetos de esa clase se puedan manipular como unidades bsicas. Los detalles de
la implementacin se encuentran dentro de la clase, mientras que desde el exterior, un objeto
ser simplemente una entidad que responde a una serie de mensajes pblicos (tambin
denominados interfaz de la clase).
Herencia: es el mecanismo que nos permite crear clases derivadas (especializacin) a partir de
clases bases (generalizacin). Es decir, podramos tener la clase Empleado (clase base) y la
clase Vendedor derivando de la anterior. Una librera de clases (como la MFC) no es ms que
un conjunto de definiciones de clases interconectadas por mltiples relaciones de herencia.
Polimorfismo: esta caracterstica nos permite disponer de mltiples implementaciones de un
mismo mtodo de clase, dependiendo de la clase en la que se realice. Es decir, podemos acceder
a una variedad de mtodos distintos (con el mismo nombre) mediante el mismo mecanismo de
acceso. En C++ el polimorfismo se consigue mediante la definicin de clases derivadas,
funciones virtuales y el uso de punteros a objetos.
Qu es C++?
C++ fue una evolucin de C, el cual surgi de dos lenguajes de programacin previos BCPL y B.
BCPL fue desarrollado en 1967 por Martin Richards como lenguaje para escribir software de
sistemas operativos y compiladores. Ken Thompson model muchas caractersticas de su lenguaje
B segn sus equivalentes en BCPL y se vali de B para crear las primeras versiones del sistema
operativo UNIX en los laboratorios Bell durante 1970, en una computadora DEC PDP-7. Tanto
BCPL como B eran lenguajes sin tipos. Cada elemento de informacin ocupaba una palabra en
memoria y la tarea de tratar cada elemento de datos como nmero entero o nmero real, por citar
un ejemplo, recaa en el programador.
El lenguaje C fue una evolucin del B llevada a cabo por Dennis Ritchie en los Laboratorios Bell y
originalmente se implement en una computadora DEC PDP-11 en 1972. C se vale de muchos
conceptos bsicos de BCPL y de B, aadiendo tipos de datos y otras caractersticas. Al principio C
se volvi ampliamente conocido como el lenguaje de desarrollo del sistema operativo UNIX.
Actualmente, la mayora de los sistemas operativos se escriben en C y/o C++. Durante las ltimas
dos dcadas, C ha quedado disponible en casi todas las computadoras. C es independiente del
hardware. Con un diseo cuidadoso, es posible escribir programas en C que pueden ser portables
para utilizarse en la mayora de las computadoras.
Hacia finales de los 70, C evolucion en lo que hoy se conoce como C tradicional, C clsico o
C de Kernighan y Ritchie.

Pgina No. 8

E. A. P. :
Semestre:

Ingeniera Informtica
Tercero

Asignatura : Elementos de la Computacin


Docente :
Wilfredo Bulege Gutirrez

La amplia difusin de C a varios tipos de computadoras, por desgracia, tuvo como consecuencia
que hubiera demasiadas variantes. Eran parecidas, pero frecuentemente incompatibles. Este era un
serio problema para los desarrolladores de programas que necesitaban escribir cdigo portable que
se ejecutaran en varias plataformas. Era claro que se requera de una versin estndar de C. En
1983 se cre el comit tcnico X3J11 bajo el ANSI en computadoras y Procesamiento de
Informacin (X3) para proporcionar al lenguaje una definicin inequvoca e independiente del
equipo. En 1989 se aprob el estndar. ANSI cooper con la ISO en la estandarizacin mundial de
C; el documento conjunto del estndar se public en 1990 y se conoce como ANSI/ISO 9899:1990.
A principios de la dcada de los 80, Bjarne Stroustrup desarroll a C++, una extensin de C, en los
laboratorios Bell. C++ ofrece una serie de caractersticas que engalanan al lenguaje C; sin
embargo, lo ms importante es que proporcionan capacidades para la programacin orientada a
objetos. Los objetos son en esencia componentes de software reutilizables que simulan elementos
reales. Los desarrolladores de software estn descubriendo que, al valerse de un enfoque de diseo
e implementacin modular y orientado a objetos, es posible hacer mucho ms productivos a los
grupos de desarrollo de lo que seran con las tcnicas previas comunes de programacin, como la
programacin estructurada. Los programas orientados a objetos son ms fciles de entender,
corregir y modificar.

Qu es MS Visual Studio?
Visual Studio .NET es un conjunto completo de herramientas de desarrollo para la construccin de
aplicaciones Web ASP, servicios Web XML, aplicaciones para escritorio y aplicaciones mviles.
Visual Basic .NET, Visual C++ .NET, Visual C# .NET y Visual J# .NET utilizan el mismo entorno
de desarrollo integrado (IDE), que les permite compartir herramientas y facilita la creacin de

Pgina No. 9

E. A. P. :
Semestre:

Ingeniera Informtica
Tercero

Asignatura : Elementos de la Computacin


Docente :
Wilfredo Bulege Gutirrez

soluciones en varios lenguajes. Asimismo, dichos lenguajes aprovechan las funciones de .NET
Framework, que ofrece acceso a tecnologas clave para simplificar el desarrollo de aplicaciones
Web ASP y servicios Web XML.
Contenedores: soluciones y proyectos
Las soluciones y los proyectos contienen elementos en forma de referencias, conexiones de datos,
carpetas y archivos necesarios para crear la aplicacin. Un contenedor de tipo solucin puede
contener varios proyectos y un contenedor de tipo proyecto normalmente contiene varios
elementos. El uso de estos contenedores le permite beneficiarse del entorno de desarrollo integrado
de varias formas:
Puede administrar la configuracin de la solucin en su totalidad o dividida en proyectos
individuales.
Puede utilizar el Explorador de soluciones para controlar los detalles de la administracin de
archivos al mismo tiempo que se centra en los elementos que constituyen la labor de
programacin.
Puede agregar elementos tiles a varios proyectos de la solucin o a la solucin sin tener que
hacer referencia a dichos elementos en cada proyecto.
Puede trabajar en diversos archivos, independientes de soluciones o proyectos.
Programa
La palabra programa es usada de dos maneras: para describir instrucciones individuales, o cdigo
fuente creado por el programador, y tambin para describir una pieza entera de software ejecutable.
Esta distincin puede causar confusin, por lo que vamos a tratar de distinguir entre el cdigo
fuente por un lado y un ejecutable por otro.
Para tener un programa ejecutable primero tenemos que tener su cdigo fuente, es decir, del cdigo
fuente se deriva el programa ejecutable.
El cdigo fuente puede ser convertido en un programa ejecutable de dos formas: interpretes
convierten el cdigo fuente en instrucciones de computadora (lenguaje mquina), y la computadora
acta con esas instrucciones inmediatamente. Alternativamente, los compiladores trasladan el
cdigo fuente en programas, los cuales pueden ejecutarse tiempo despus. A pesar de que se puede
trabajar fcilmente con los intrpretes, la mayor parte de la programacin es hecha con
compiladores porque el cdigo compilado se ejecuta ms rpido. C++ es un lenguaje de
compilacin.
Un programa, tambin es definido como un conjunto de instrucciones que estn ordenados en
forma lgica, con el objeto de realizar una tarea.
Resolucin de un problema de programacin
Anlisis del problema: Definir el problema, luego detallar las especificaciones de entrada y
salida.
Diseo del algoritmo.

Pgina No. 10

E. A. P. :
Semestre:

Ingeniera Informtica
Tercero

Asignatura : Elementos de la Computacin


Docente :
Wilfredo Bulege Gutirrez

Resolucin del algoritmo en la computadora.


Qu es un Algoritmo?
Un algoritmo es un conjunto finito de
instrucciones o pasos que sirven para ejecutar
una tarea o resolver un problema. De un modo
ms formal, un algoritmo es una secuencia
finita de operaciones realizables, no ambiguas, cuya ejecucin da una solucin de un problema.
El trmino algoritmo no est exclusivamente relacionado con las matemticas, ciencias de la
computacin o informtica.
Ejemplo de un algoritmo para ingresar un valor total de segundos, luego determinar el equivalente
en horas, minutos y segundos, ejemplo:
a)

Anlisis:

b)

Entrada:
Proceso:
Salida:

3,665
1, 1, 5
1 hora, 1 minuto y 5 segundos

Algoritmo:
inicio
horas? 0
minutos? 0
segundos? 0
leer segundos
horas? entero de segundos / 3600
minutos? entero de (residuo de segundos / 3600) / 60
segundos? residuo de (residuo de segundos / 3600) / 60
escribir horas, minutos, segundos
fin

Pgina No. 11

E. A. P. :
Semestre:

Ingeniera Informtica
Tercero

Asignatura : Elementos de la Computacin


Docente :
Wilfredo Bulege Gutirrez

Captulo II
Introduccin a la programacin estructurada
El IDE de Microsoft Visual Studio 2005
El IDE (Integrated Development Enviroment), es el entorno de desarrollo integrado, que en el caso
de Visual Studio.NET 2005, permite el desarrollo de software utilizando las diferentes
herramientas como: MS Visual C++.NET, MS Visual C#.NET, MS Visual Basic .NET etc.
Cmo crear un proyecto de Visual C++?
Ejecutar, Microsoft Visual Studio 2005, luego seleccionar en el men principal la opcin File,
New y Project, a continuacin visualizar la siguiente ventana:

Luego:

En el cuadro Project Types, seleccionar la carpeta Visual C++ Projects, luego,


En el cuadro Templates, escoger una Plantilla, ejemplo: Win32 Project, utilizada para
aplicaciones de tipo consola.
Escribir en el cuadro Name, el nombre del proyecto, ejemplo: project01, y
Especificar en el cuadro Location, la ubicacin del proyecto, ejemplo: U:\project01,
y, OK.

Pgina No. 12

E. A. P. :
Semestre:

Ingeniera Informtica
Tercero

Asignatura : Elementos de la Computacin


Docente :
Wilfredo Bulege Gutirrez

El Asistente, ahora presenta la siguiente ventana:

Como se puede observar, por defecto la configuracin del tipo de aplicacin, es Windows
application, pero en este caso se crear una aplicacin de consola (sin interface), por tanto,
seleccionar la opcin Application Settings, luego,

Pgina No. 13

E. A. P. :
Semestre:

Ingeniera Informtica
Tercero

Asignatura : Elementos de la Computacin


Docente :
Wilfredo Bulege Gutirrez

Seleccionar en Application type, Console Application, y en Additional Options, escoger Empty


Projects.
Ahora, ya puede ver en el Explorer Solution, la estructura de la solucin y el proyecto, entonces es
hora de aadir progresivamente los elementos del proyecto.
Cmo aadir un nuevo item al proyecto?
Seleccionar el contenedor al cual se desea aadir un elemento, ejemplo Source Files, abrir el men
contextual, luego seleccionar la opcin Add, New Item y en la categora Visual C++, seleccionar
la plantilla C++ File (.cpp). Para finalizar, escriba el nombre del archivo (Name) y la ubicacin
(Location). Se insertar un archivo fuente de C++, en blanco.

Ahora se puede iniciar con la escritura del cdigo de programacin, ejemplo:


#include <iostream>
using namespace std;
int main()
{
cout<<"Bienvenido a C++..."<<endl;
cout<<"Este es mi primer programa"<<endl;
cin.ignore(); return 0;
}
Compilacin, Enlazamiento y creacin del archivo Ejecutable
La generacin del Ejecutable, implica la compilacin y el enlazamiento del cdigo fuente,
produciendo como resultado el archivo ejecutable. Si en el proceso de compilacin se produce

Pgina No. 14

E. A. P. :
Semestre:

Ingeniera Informtica
Tercero

Asignatura : Elementos de la Computacin


Docente :
Wilfredo Bulege Gutirrez

algn error, ste debe mostrarse en la ventana de Resultados, hacer doble click en la lnea de error,
para poder observar en el programa la instruccin que ha originado este error.
El programa slo se ejecutar con los resultados esperados si esta libre de errores. Si la salida no es
posible observarlo, aadir, antes de la instruccin return:
cin.ignore();
Tipos de archivos creados para proyectos de Visual C++
En la tabla siguiente se muestran los archivos comunes de un proyecto de Visual C++ y se
identifican con su extensin de archivo.
Extensin de
archivo
.asmx
.asp
.atp
.bmp, .dib, .gif,
.jpg, .jpe, .png
.bsc
.cpp; .c
.cur
.dbp
.disco

Tipo

Contenido

Cdigo fuente
Cdigo fuente
Proyecto
Recurso

Archivo de implementacin.
Archivo de pgina Active Server
Archivo de proyecto de plantilla de aplicacin.
Archivos generales de imagen.

Compilacin
Cdigo fuente
Recurso
Proyecto
Cdigo fuente

Archivo de cdigo fuente del explorador.


Archivos principales de cdigo fuente de la aplicacin.
Archivo de grfico de mapa de bits de cursor.
Archivo de proyecto de base de datos.
Archivo de documento de descubrimiento dinmico.
Controla el descubrimiento de servicios Web XML.
Archivos ejecutables o de biblioteca de vnculos
dinmicos.
Archivo de encabezado o de inclusin.
Archivos comunes de Web.

.exe, .dll

Proyecto

.h
.htm, .html, .xsp,
.asp, .htc, .hta, .xml
.HxC
.ico
.idb

Cdigo fuente
Recurso

.idl
.ilk
.map

Compilacin
Vinculacin
Vinculacin

.ncb
.obj, .o
.pch
.pdb

Solucin

Proyecto
Recurso
Compilacin

Depuracin
Depuracin

Archivo de proyecto de Ayuda.


Archivo de grfico de mapa de bits de icono.
Archivo de estado, que contiene informacin de
dependencias entre archivos de cdigo fuente y
definiciones de clases, que puede utilizar el compilador
durante la regeneracin mnima y la compilacin
incremental.
Archivo de lenguaje de definicin de interfaces.
Archivo de vinculacin incremental.
Archivo de texto que contiene informacin de
vinculador.
Archivo del examinador de no compilacin.
Archivos objeto, compilados pero no vinculados.
Archivo de encabezado precompilado.
Archivo de base de datos de depuracin de programa.

Pgina No. 15

E. A. P. :
Semestre:

Ingeniera Informtica
Tercero

.rc, .rc2

Recurso

.sbr
.sln
.suo
.srf

Compilacin
Solucin
Solucin
Proyecto

.txt
.vap
.vbg
.vbp, .vip, .vbproj
.vcproj
.vdproj

Recurso
Proyecto
Solucin
Proyecto
Proyecto
Proyecto

.vmx
.vup

Proyecto
Proyecto

Asignatura : Elementos de la Computacin


Docente :
Wilfredo Bulege Gutirrez

Archivos de secuencias de comandos de recursos para


generar recursos.
Archivo intermedio de examinador de cdigo fuente.
Archivo de solucin.
Archivo de opciones de solucin.
Archivo de respuesta de servidor. Este archivo
contiene el cdigo HTML para una aplicacin de
Servidor ATL.
Archivo de texto, normalmente el archivo "readme".
Archivo de proyecto de Visual Studio Analyzer.
Archivo de grupo de proyecto compatible.
Archivo de proyecto de Visual Basic.
Archivo de proyecto de Visual C++.
Archivo de proyecto de implementacin de Visual
Studio.
Archivo de proyecto de macro.
Archivo de proyecto de utilidad.

Estructura de un programa
Un programa est formado por la cabecera y el cuerpo. En la cabecera se incluyen algunas rutinas
predefinidas que hacen a la programacin ms sencilla, pues no tenemos que crear todo desde cero
o "tratar de inventar la rueda", es muy bueno que conozcamos la mayor cantidad de libreras
disponibles para que tengamos un trabajo ms estandarizado.
El cuerpo del programa contiene la funcin principal, las funciones adicionales y las clases que se
necesiten en el programa.
La estructura de un programa en C/C++ sigue este esquema:
directivas de preprocesador
declaracin de variables globales y funciones
main()
{
declaraciones locales
instrucciones de la funcin
}
funcin 1(...)
{
...
}
funcin 2(...)
{
...
}

Pgina No. 16

E. A. P. :
Semestre:

Ingeniera Informtica
Tercero

Asignatura : Elementos de la Computacin


Docente :
Wilfredo Bulege Gutirrez

El programa ms sencillo que se puede escribir en C++ es el siguiente:


void main()
{
}
Este programa no hace nada, pero contiene la parte ms importante de cualquier programa C++ y
adems, es el ms pequeo que se puede escribir y que se compilar correctamente. En l se define
la funcin main, que es la que ejecuta el sistema operativo al llamar a un programa C++.
La funcin principal (void main) o cualquier otra funcin siempre va seguida de parntesis. La
definicin del cuerpo de la funcin est formada por un bloque de instrucciones, que est encerrado
entre llaves {}.
Un programa C++ puede estar formado por diferentes mdulos o cdigo fuente. Es conveniente
mantener los cdigos fuente de un tamao no muy grande, para que la compilacin sea rpida.
Tambin, al dividirse un programa en partes, puede facilitar la legibilidad del programa y su
estructuracin. Los diferentes cdigos fuentes son compilados de forma separada, y se compila
nicamente el cdigo fuente que ha sido modificado desde la ltima compilacin, y despus
combinados con las libreras necesarias para formar el programa en su versin ejecutable.
Tipos de datos
C++ tiene un conjunto de tipos bsicos, y son:

booleano (bool)
carcter (char)
entero (int)
de coma flotante (double),

adems un usuario puede definir tipos,

enumerados para representar conjuntos especficos de valores (enum)


void para indicar la ausencia de informacin.

A partir de stos se pueden construir otros como:

tipo puntero
array
referencia
estructuras de datos y clases.

Pgina No. 17

E. A. P. :
Semestre:

Ingeniera Informtica
Tercero

Asignatura : Elementos de la Computacin


Docente :
Wilfredo Bulege Gutirrez

Las caractersticas de los tipos bsicos son:


Tipo

Tamao byte s

R ango

bool

True o False

char

0...255

short int

-128 a 127

int

-32,768 a 32,767

unsigned int

0...65535

long int

-2,147,483,648 a 2,147,483,647

float

3.4 x 10-38 a 3.4 x 10+38(6 dec)

double

1.7 x 10-308 a 1.7*10+308(15 dec)

long double

Igual que double

void

sin valor

Variables y Constantes
En C++ una variable es un espacio para guardar informacin, es decir una ubicacin en la memoria
de la computadora en la cual se puede grabar un valor y recuperar ese valor ms tarde.
La memoria de la computadora puede ser vista como una serie de pequeas casillas. Cada casilla es
una de muchas que se encuentran alineadas en una ubicacin de memoria, que est numerada
secuencialmente. Estos nmeros son conocidos como direcciones de memoria. Una variable
reserva uno o ms casillas en las cuales es posible guardar datos.
Cuando se define una variable en C++, se debe especificar al compilador qu clase de variable es:
un entero (int), un caracter (char), etc. Esta informacin le dice al compilador cunto de espacio
debe separar o reservar, y qu tipo de valor se va guardar en la variable.
Cada casilla de memoria tiene un byte de capacidad. Si el tipo de variable que se crea es de dos
bytes de tamao, este necesita de dos bytes de memoria, o de dos casillas. El tipo de variable (por
ejemplo, entero) le dice al compilador cuanta memoria (o cuantas casillas) tiene que reservar para
la variable.
Inicializacin de Variables
Se asigna un valor a una variable usando el operador =. As, se podra asignar 5 a ancho
escribiendo.

Pgina No. 18

E. A. P. :
Semestre:

Ingeniera Informtica
Tercero

Asignatura : Elementos de la Computacin


Docente :
Wilfredo Bulege Gutirrez

int ancho;
ancho = 5;
El mismo resultado se obtiene con:
int ancho = 5;
La definicin se parece mucho a una asignacin, y con la variable entera, la diferencia es menor.
Se crea o se define una variable manifestando su tipo, seguida de uno o ms espacios, y seguida del
nombre de la variable y luego punto y coma. El nombre de la variable puede ser virtualmente
cualquier combinacin de letras, nmeros, etc., pero que no pueden contener espacios. Variables
aceptadas son: x, jap007, miedad, etc.
Operadores
Operadores aritmticos:
Operador aritmtico
Multiplicacin
Divisin
Mdulo
Suma
Resta

Operador de C++
*
/
%
+
-

Operadores lgicos:
Operador lgico
Or
And
Not

Operador de C++
||
&&
!

Operadores relacionales:
Operador relacional
Igualdad
Diferente
Mayor que
Menor que
Mayor o igual que
Menor o igual que

Operador de C++
==
!=
>
<
>=
<=

Pgina No. 19

E. A. P. :
Semestre:

Ingeniera Informtica
Tercero

Asignatura : Elementos de la Computacin


Docente :
Wilfredo Bulege Gutirrez

Operadores de asignacin:
Operador de asignacin
Incremento
Decremento
Asignacin simple
Multiplicacin ms asignacin
Divisin ms asignacin
Mdulo ms asignacin
Suma ms asignacin
Resta ms asignacin
Desplazamiento a izquierda ms asignacin
Desplazamiento a derecha ms asignacin
Operacin AND sobre bits ms asignacin
Operacin OR sobre bits ms asignacin
Operacin XOR sobre bits ms asignacin

Operador de C++
++
-=
*=
/=
%=
+=
-=
<<=
>>=
&=
|=
^=

Expresiones
Una expresin es un conjunto de trminos que representan una cantidad algebraica o algn tipo de
clculo que puede contener operadores. Por ejemplo: 3*4+4.
Cuando escribimos una expresin como la siguiente, f=a+b*c/d, es porque conocemos
perfectamente el orden en el que se ejecutan las operaciones. Si este orden no fuera el que
esperamos, tendramos que utilizar parntesis para modificarlo, ya que una expresin entre
parntesis, siempre se evala primero.
Palabras Claves
Algunas palabras son reservadas para C++, y no se debe usar las mismas para definir nombres de
variables. Estas son palabras claves usadas por el compilador para controlar el programa. Las
palabras claves incluyen, if, while, for, main y muchas ms que resaltarn con la experiencia.
Mecanismos de Salida
Los mecanismos de salida son aquellos mensajes que el programa utiliza para comunicarse con el
exterior o con el usuario. El objeto cout se utiliza para la salida de datos y normalmente se enva a
la pantalla, ejemplo:
cout<<El resultado es: <<res<< mts.\n;

Pgina No. 20

E. A. P. :
Semestre:

Ingeniera Informtica
Tercero

Asignatura : Elementos de la Computacin


Docente :
Wilfredo Bulege Gutirrez

Secuencias de escape
Secuencia
\a
\b
\f
\n
\r
\t
\"
\v
\\
\'
\OOO
\xHHH

Descripcin
Alerta
Backspace
Suministro de Papel
Cambio de lnea
Carcter de regreso
Tabulacin horizontal
Comilla doble
Tabulacin vertical
Barra inversa
Comilla simple
Visualiza un carcter cuyo cdigo ASCII es OOO en octal.
Visualiza un carcter cuyo cdigo ASCII es HHH en hexadecimal.

Mecanismos de Entrada
Los mecanismos de entrada nos permiten interaccin entre el usuario y el programa. As este puede
recabar informacin necesaria que procesar para cumplir su meta. El objeto cin se utiliza para
extraer valores del flujo y almacenarlos en variables. Normalmente la entrada procede del teclado,
ejemplo:
cin>>edad;
Ejemplo de un programa que permite ingresar 2 nmeros enteros, luego muestra la sumatoria, resta,
producto y residuo de los mismos:
a)

Anlisis:

Entrada:
Proceso:
Salida:

10, 3
13, 7, 30, 1
13, 7, 30, 1

b) Algoritmo:
inicio
n1? 0, n2? 0, su? 0, re? 0, pr? 0, rs? 0
leer n1, n2
su? n1+n2
re? n1-n2
pr? n1*n2
rs? residuo de n1/n2
escribir su, re, pr, rs
fin

Pgina No. 21

E. A. P. :
Semestre:

a)

Ingeniera Informtica
Tercero

Asignatura : Elementos de la Computacin


Docente :
Wilfredo Bulege Gutirrez

Codificacin en C++:
// Program: Operaciones matemticas con 2 nmeros
// Author: Wilfredo Bulege G.
#include <iostream>
using namespace std;
int main()
{
//Inicializa variables
int n1,n2,su,re,pr,rs;
cout <<"Operaciones matemticas"<<endl;
//Entrada de datos
cout <<"Ingrese el primer numero: ";
cin >>n1;
cout <<"Ingrese el segundo numero:";
cin >>n2;
//Clculos
su=n1+n2;
re=n1-n2;
pr=n1*n2;
rs=n1%n2;
// Impresin de resultados
cout <<"La suma es:\t" <<su <<endl;
cout <<"La resta es:\t"
<<re <<endl;
cout <<"El producto es:\t" <<pr <<endl;
cout <<"El residuo es:\t" <<rs <<endl <<endl;
cin.ignore(); return 0;
}

Comentarios:
Las 2 primeras lneas que inician con el smbolo //, son comentarios, es decir sern ignoradas en
el proceso de ejecucin.
La lnea 3, es utilizada casi siempre, para indicar que se utilizar la biblioteca iostream, para
realizar entradas o salidas. Tambin es parte de las directivas del preprocesador, este es un
programa que maneja todas las directivas que controlan el cdigo fuente que el compilador ve
como entrada. Los simbolos < y > encierran el nombre de los archivos.
La lnea 4, indica que el programa utilizar objetos que tienen nombre en una regin especial
denominada std.
La lnea 5, define el nombre de la funcin main (), es la primera funcin que se invoca y est
delimitado por los smbolos {}, la palabra int, indica el tipo de resultado que devolver la
funcin main.
La lnea 8, es utilizada para declarar las variables n1,n2,su,re,pr,rs, como tipo int (numrico
entero).

Pgina No. 22

E. A. P. :
Semestre:

Ingeniera Informtica
Tercero

Asignatura : Elementos de la Computacin


Docente :
Wilfredo Bulege Gutirrez

La lnea 9, muestra una cadena de caracteres en la pantalla, a travs del uso del objeto de flujo
de salida cout, que enva informacin a un dispositivo. Pueden enviarse a la salida varios
elementos de datos concatenando operadores de insercin de flujo (<<).
El manipulador endl inserta un carcter de nueva lnea en el flujo de salida.
La lnea 12, permite la introduccin de un dato a travs del objeto de flujo de entrada cin. Es
posible introducir varios elementos de datos concatenando operadores de extraccin de flujo
(>>).
Las lneas del 16 al 19, realizan clculos diversos a travs de instrucciones de asignacin.
Finalmente, las instrucciones cin.ignore(), y return 0, pausar la ejecucin del programa y
finalizar la ejecucin de la funcin main, respectivamente.
Ejemplo de un programa, para ingresar el total de ventas en un negocio, luego calcula el 19% de
IGV y se imprime en pantalla:
a)

Anlisis:

b)

Entrada:
Proceso:
Salida:

100
19
19

Algoritmo:
inicio
monto? 0
igv? 0
tigv? 0.19
leer monto
igv? monto*tigv
escribir igv
fin

c)

Codificacin en C++:
// Program: Calcula el IGV por una venta
// Author: Wilfredo Bulege
#include <iostream>
using namespace std;
int main()
{
float monto=0,igv=0,tigv=0.19;
cout<<"Total de la venta: "<<flush;
cin >>monto;
igv= monto*tigv;
cout<<"El IGV de: "<<monto<<" es : "<<" S/. "<< igv<<endl;
cin.ignore(); return 0;
}

Pgina No. 23

E. A. P. :
Semestre:

Ingeniera Informtica
Tercero

Asignatura : Elementos de la Computacin


Docente :
Wilfredo Bulege Gutirrez

Comentarios:
La lnea 8 es utilizada para declarar las variables monto, igv como tipo float, que permitir el
manejo de nmeros reales.
La lnea 10, inserta en el flujo de salida el manipulador flush, que vaca la memoria intermedia
del flujo de datos.
Ejemplo de un programa para calcular la hipotenusa de un tringulo rectngulo, ingresados los
valores de los catetos, ejemplo:
a)

Anlisis:

b)

Entrada:
Proceso:
Salida:

4, 5
6.4
6.4

Algoritmo:
inicio
a? 0
b? 0
c? 0
leer a, b
c ? raiz cuadrada de (a2 + b2)
escribir c
fin

c)

Codificacin en C++:
// Program: Calcula hipotenusa
// Author: Wilfredo Bulege
#include <iostream>
#include <math.h>
using namespace std;
int main()
{
float a=0,b=0,c=0;
cout<<"Ingrese el primer cateto: ";
cin >>a;
cout<<"Ingrese el segundo cateto: ";
cin >>b;
c=sqrt(pow(a,2)+pow(b,2));
cout<<"La hipotenusa, es : "<<c<<endl;
cin.ignore(); return 0;
}

Pgina No. 24

E. A. P. :
Semestre:

Ingeniera Informtica
Tercero

Asignatura : Elementos de la Computacin


Docente :
Wilfredo Bulege Gutirrez

Evaluacin 01
Apellidos y nombres: ...................................................... Carrera, Ciclo, Turno: ............................
Fecha: ...........................

Firma: ....................................................

Responda a las siguientes preguntas, seleccionando una de las alternativas. Cada respuesta correcta
vale 2.5 puntos:
1. Cul es una de las caractersticas de la Programacin Estructurada?
a) Polimorfismo
b) Diseo descendente
c) Uso de nombres de espacios
d) Encapsulamiento
2. Quin desarrollo a C++ en la dcada de los 80?
a) Dennis Ritchie
b) Edsger Dijkstra
c) Bill Gates
d) Bjarne Stroustrup
3. Qu extensin tiene un archivo Solucin?
a) *.dsp
b) *.sln
c) *.obj
d) *.cpp
4. Qu es un programa de computadora?
a) Es el cdigo fuente escrito en un lenguaje de programacin
b) El proceso de planeamiento de una lista de tareas
c) Es un conjunto de archivos de datos, utilizados por un software
d) Ninguno de los anteriores
5. Las {} encierran ... ?
a) Los comentarios en un programa fuente
b) La referencia a una librera, antes del inicio de la funcin main
c) El cuerpo de una funcin
d) Una expresin

Pgina No. 25

E. A. P. :
Semestre:

Ingeniera Informtica
Tercero

Asignatura : Elementos de la Computacin


Docente :
Wilfredo Bulege Gutirrez

6. \n, es una secuencia de escape que permite...?


a) Realizar una tabulacin vertical.
b) Realizar un cambio de lnea.
c) Emitir una alerta (sonido).
d) Imprimir el carcter n.
7. Cul es el propsito del uso del objeto cout?
a) Enva informacin a un dispositivo.
b) Obtiene informacin a partir de un dispositivo.
c) Presenta en pantalla el resultado de una operacin aritmtica.
d) Presenta en pantalla una cadena de caracteres.
8. Cul es el propsito del uso del operador %?
a) Determinar el resultado de una divisin.
b) Acumular en una variable el resultado de una sumatoria.
c) Determinar el residuo de una divisin entera.
d) Calcular el porcentaje de dos nmeros dados.
9. Los elementos que contiene un proyecto, normalmente son:
a) Soluciones (archivos .sln)
b) Elementos varios (.cpp; .h, etc.)
c) Archivos contenedores (.vcproj)
d) Archivos de tipo texto (.txt)
10. Qu es un algoritmo?
a) Una secuencia finita de operaciones realizables, no ambiguas y que solucionan un problema.
b) Un conjunto de pasos a seguir, para elaborar un programa.
c) Un programa de computadora, escrito en C++.
d) Ninguno de los anteriores.

Pgina No. 26

E. A. P. :
Semestre:

Ingeniera Informtica
Tercero

Asignatura : Elementos de la Computacin


Docente :
Wilfredo Bulege Gutirrez

6. \n, es una secuencia de escape que permite...?


a) Realizar una tabulacin vertical.
b) Realizar un cambio de lnea.
c) Emitir una alerta (sonido).
d) Imprimir el carcter n.
7. Cul es el propsito del uso del objeto cout?
a) Enva informacin a un dispositivo.
b) Obtiene informacin a partir de un dispositivo.
c) Presenta en pantalla el resultado de una operacin aritmtica.
d) Presenta en pantalla una cadena de caracteres.
8. Cul es el propsito del uso del operador %?
a) Determinar el resultado de una divisin.
b) Acumular en una variable el resultado de una sumatoria.
c) Determinar el residuo de una divisin entera.
d) Calcular el porcentaje de dos nmeros dados.
9. Los elementos que contiene un proyecto, normalmente son:
a) Soluciones (archivos .sln)
b) Elementos varios (.cpp; .h, etc.)
c) Archivos contenedores (.vcproj)
d) Archivos de tipo texto (.txt)
10. Qu es un algoritmo?
a) Una secuencia finita de operaciones realizables, no ambiguas y que solucionan un problema.
b) Un conjunto de pasos a seguir, para elaborar un programa.
c) Un programa de computadora, escrito en C++.
d) Ninguno de los anteriores.

Pgina No. 27

E. A. P. :
Semestre:

Ingeniera Informtica
Tercero

Asignatura : Elementos de la Computacin


Docente :
Wilfredo Bulege Gutirrez

Comentarios:
La declaracin y definicin de tipos de datos, se puede realizar en cualquier parte del programa,
tal como se demuestra en el presente ejemplo, sin embargo es recomendable agruparlos en una
determinada seccin, que en los casos anteriores se realiza al inicio del programa.
Ejemplo de un programa para ingresar una cantidad en soles y determinar su equivalencia en
billetes de 10, 20, 50, 100 y 200, inclusive monedas de 1 nuevo sol.
// Program: Convierte cantidad de soles en su equivalente en billetes.
// Author: Wilfredo Bulege
#include <iostream>
using namespace std;
int main()
{
int sol, b200, b100, b50, b20, b10;
cout<<Ingrese un monto en soles: ; cin>>sol;
b200=sol/200; sol=sol%200;
b100=sol/100;sol=sol%100;
b50=sol/50; sol=sol%50;
b20=sol/20; sol=sol%20;
b10=sol/10; sol=sol%10;
cout<<\nEl equivalente es: \n ;
cout<<b200<<endl<<b100<<endl<<b50<<endl<<b20<<endl<<b10<<endl<<sol<<endl;
cin.ignore(); return 0;
}
Instruccin If
La instruccin if permite a un programa tomar una decisin para ejecutar una accin u otra,
basndose en el resultado verdadero o falso de una expresin.
La sintaxis ms simple de esta instruccin es:
if (expresin) Instruccin;
La expresin en el parntesis puede ser cualquiera, pero normalmente contiene una expresin
relacional; si la expresin es falsa (false), se omite la instruccin. Si es verdadera (true), s se
ejecuta. Otra forma de escribirla es:
if (expresin)
Instruccin 1;
Instruccin 2;
else
Instruccin 3;
Instruccin 4;

Pgina No. 28

E. A. P. :
Semestre:

Ingeniera Informtica
Tercero

Asignatura : Elementos de la Computacin


Docente :
Wilfredo Bulege Gutirrez

Si se cumple la expresin (es verdadera) ejecutar la instruccin 1 e instruccin 2, sino ejecutar


las instrucciones 3 y 4.
Forma Else if:
if (expresin 1)
Instruccin 1;
else if (expresin 2)
Instruccin 2;
else if (expresin 3)
Instruccin 3;

else
Instruccin n;
Si se cumple la expresin 1, se ejecuta la instruccin 1, y si no se cumple se examinan
secuencialmente las condiciones siguientes hasta el ltimo else, y se ejecuta la instruccin
correspondiente al primer else if, cuya condicin sea cierta. Si todas las expresiones son falsas, se
ejecuta la instruccin n correspondiente al ltimo else. En cualquier caso, se contina en la primera
instruccin ejecutable que haya a continuacin de la estructura.
Ejemplo de un programa para calcular el pago de un trabajador. Ingresar el nombre, Cantidad de
horas trabajadas y tarifa por hora. Calcular el subtotal (Cant. de horas trabajadas * tarifa por hora),
una bonificacin (5%, s cant. de horas > 192, de lo contrario 3%), luego el total a pagar (Sub total
+ bonificacin). Presentar en pantalla el sub total, bonificacin y total.
a)

Anlisis:

Entrada:

Proceso:

Salida:

Nombre:
Horas:
Tarifa:
Sub total:
Bonificacin:
Total:
Sub total:
Bonificacin:
Total:

Luis
10
3
30
0.9
30.9
30
0.9
30.9

Pgina No. 29

E. A. P. :
Semestre:

a)

Ingeniera Informtica
Tercero

Asignatura : Elementos de la Computacin


Docente :
Wilfredo Bulege Gutirrez

Algoritmo:
inicio
apno? ,hrtr? 0, tahr? 0, subt? 0, boni? 0, tota? 0
leer apno, hrtr, tahr
subt? hrtr*tahr
si hrtr>192, entonces
boni? subt*0.05
sino
boni? subt*0.03
fin de si
tota? subt+boni
escribir subt, boni, tota
fin

b)

Codificacin en C++:
// Program: Calcula pagos.
// Author: Wilfredo Bulege G.
#include <iostream>
#include <string>
using namespace std;
int main()
{
string apno;
float hrtr,tahr,subt,boni,tota;
cout <<"Calculo de pagos\n\n";
cout <<"Nombres:\t"; cin >>apno;
cout <<"Horas trabajadas:\t"; cin >>hrtr;
cout <<"Tarifa por hora:\t"; cin >>tahr;
subt=hrtr*tahr;
if (hrtr>192)
boni=subt*0.05;
else
boni=subt*0.03;
tota=subt+boni;
cout <<"El subtotal, es:\t" <<subt <<endl;
cout <<"La bonificacion, es:\t" <<boni <<endl;
cout <<"El total a pagar, es:\t" <<tota <<endl <<endl;
cin.ignore();
return 0;
}

Pgina No. 30

E. A. P. :
Semestre:

Ingeniera Informtica
Tercero

Asignatura : Elementos de la Computacin


Docente :
Wilfredo Bulege Gutirrez

Comentarios:
La lnea 8 y 9, definen las variables a utilizar. La variable apno aceptar valores de tipo carcter,
pero debe utilizarse en el encabezado la librera <string>.
Ejemplo de un programa para ingresar dos nmeros, luego determinar el mayor e imprimirlo.
a)

Anlisis:

b)

c)

Entrada:
Proceso:
Salida:

7, 5
7
7

Algoritmo:
Forma 01:

Forma 02:

inicio
a? 0, b? 0
leer a, b
si a<b, entonces
a? b
fin de si
escribir a
fin

inicio
num1? 0
num2? 0
mayor? 0
leer num1, num2
si num1>num2, entonces
mayor? num1
sino
mayor? num2
fin de si
escribir mayor
fin

Codificacin en C++:
// Forma 01.
// Program: El mayor de dos nmeros.
// Author: Wilfredo Bulege G.
#include <iostream>
using namespace std;
int main()
{
int a,b;
cout <<"Ingrese dos numeros: ";
cin>>a>>b;
if (a<b) a=b;
cout <<"El mayor es: "<<a<<endl;
cin.ignore(); return 0;
}

Pgina No. 31

E. A. P. :
Semestre:

Ingeniera Informtica
Tercero

Asignatura : Elementos de la Computacin


Docente :
Wilfredo Bulege Gutirrez

Ejemplo de un programa para ingresar tres nmeros, luego determinar el menor e imprimirlo.
a)

Anlisis:

b)

Entrada:
Proceso:
Salida:

7, 5,15
5
5

Algoritmo:
Forma 01:
Inicio
a? 0, b? 0, c? 0, m? 0
leer a, b, c
si a<b, entonces
si a<c, entonces
m? a
sino
m? c
fin de si
sino
si (b<c)
m? b
sino
m? c
fin de si
fin de si
escribir m
fin

c)

Codificacin en C++:
// Program: El mayor de tres nmeros.
// Author: Wilfredo Bulege G.
#include <iostream>
using namespace std;
int main( )
{
int a,b,c,m;
cout <<"Ingrese tres numeros: "; cin>>a>>b>>c;

Pgina No. 32

E. A. P. :
Semestre:

Ingeniera Informtica
Tercero

Asignatura : Elementos de la Computacin


Docente :
Wilfredo Bulege Gutirrez

if (a<b)
if (a<c)
m=a;
else
m=c;
else
if (b<c)
m=b;
else
m=c;
cout <<"El mayor es: "<<m<<endl;
cin.ignore(); return 0;
}
Comentarios:
El anidamiento de instrucciones if, significa que una instruccin if, se puede escribir en el
interior de otra instruccin if.
Ejemplo de un programa para ingresar 4 nmeros enteros, luego presentarlos ordenados en forma
ascendente.
// Forma 01
// Program: Ordena 4 valores. Usando operadores lgicos.
// Author: Wilfredo Bulege G.
#include <iostream>
using namespace std;
int main()
{
int a,b,c,d;
cout <<"Ingresar cuatro valores:\t "; cin >>a >>b >>c >>d;
if (a<b&&b<c&&c<d)
cout<<"Ordenados: "<<endl<<a<<endl<<b<<endl<<c<<endl<<d<<endl;
if (a<b&&b<d&&d<c)
cout<<"Ordenados: "<<endl<<a<<endl<<b<<endl<<d<<endl<<c<<endl;
if (a<c&&c<b&&b<d)
cout<<"Ordenados: "<<endl<<a<<endl<<c<<endl<<b<<endl<<d<<endl;
if (a<c&&c<d&&d<b)
cout<<"Ordenados: "<<endl<<a<<endl<<c<<endl<<d<<endl<<b<<endl;
if (a<d&&d<b&&b<c)
cout<<"Ordenados: "<<endl<<a<<endl<<d<<endl<<b<<endl<<c<<endl;
if (a<d&&d<c&&c<b)
cout<<"Ordenados: "<<endl<<a<<endl<<d<<endl<<c<<endl<<b<<endl;
if (b<a&&a<c&&c<d)
cout<<"Ordenados: "<<endl<<b<<endl<<a<<endl<<c<<endl<<d<<endl;

Pgina No. 33

E. A. P. :
Semestre:

Ingeniera Informtica
Tercero

Asignatura : Elementos de la Computacin


Docente :
Wilfredo Bulege Gutirrez

if (b<a&&a<d&&d<c)
cout<<"Ordenados: "<<endl<<b<<endl<<a<<endl<<d<<endl<<c<<endl;
if (b<c&&c<a&&a<d)
cout<<"Ordenados: "<<endl<<b<<endl<<c<<endl<<a<<endl<<d<<endl;
if (b<c&&c<d&&d<a)
cout<<"Ordenados: "<<endl<<b<<endl<<c<<endl<<d<<endl<<a<<endl;
if (b<d&&d<a&&a<c)
cout<<"Ordenados: "<<endl<<b<<endl<<d<<endl<<a<<endl<<c<<endl;
if (b<d&&d<c&&c<a)
cout<<"Ordenados: "<<endl<<b<<endl<<d<<endl<<c<<endl<<a<<endl;
if (c<a&&a<b&&b<d)
cout<<"Ordenados: "<<endl<<c<<endl<<a<<endl<<b<<endl<<d<<endl;
if (c<a&&a<d&&d<b)
cout<<"Ordenados: "<<endl<<c<<endl<<a<<endl<<d<<endl<<b<<endl;
if (c<b&&b<a&&a<d)
cout<<"Ordenados: "<<endl<<c<<endl<<b<<endl<<a<<endl<<d<<endl;
if (c<b&&b<d&&d<a)
cout<<"Ordenados: "<<endl<<c<<endl<<b<<endl<<d<<endl<<a<<endl;
if (c<d&&d<a&&a<b)
cout<<"Ordenados: "<<endl<<c<<endl<<d<<endl<<a<<endl<<b<<endl;
if (c<d&&d<b&&b<a)
cout<<"Ordenados: "<<endl<<c<<endl<<d<<endl<<b<<endl<<a<<endl;
if (d<a&&a<b&&b<c)
cout<<"Ordenados: "<<endl<<d<<endl<<a<<endl<<b<<endl<<c<<endl;
if (d<a&&a<c&&c<b)
cout<<"Ordenados: "<<endl<<d<<endl<<a<<endl<<c<<endl<<b<<endl;
if (d<b&&b<a&&a<c)
cout<<"Ordenados: "<<endl<<d<<endl<<b<<endl<<a<<endl<<c<<endl;
if (d<b&&b<c&&c<a)
cout<<"Ordenados: "<<endl<<d<<endl<<b<<endl<<c<<endl<<a<<endl;
if (d<c&&c<a&&a<b)
cout<<"Ordenados: "<<endl<<d<<endl<<c<<endl<<a<<endl<<b<<endl;
if (d<c&&c<b&&b<a)
cout<<"Ordenados: "<<endl<<d<<endl<<c<<endl<<b<<endl<<a<<endl;
cin.ignore(); return 0;
}
// Forma 02
// Program: Ordena 4 valores. Intercambiando valores.
// Author: Wilfredo Bulege G.
#include <iostream>
using namespace std;
int main()
{
int a,b,c,d,aux;
cout <<"Ingresar cuatro valores:\t ";

Pgina No. 34

E. A. P. :
Semestre:

Ingeniera Informtica
Tercero

Asignatura : Elementos de la Computacin


Docente :
Wilfredo Bulege Gutirrez

cin >>a >>b >>c >>d;


if (a>b)
{aux=a; a=b; b=aux;}
if (b>c)
{aux=b; b=c; c=aux;}
if (c>d)
{aux=c; c=d; d=aux;}
if (a>b)
{aux=a; a=b; b=aux;}
if (b>c)
{aux=b; b=c; c=aux;}
if (a>b)
{aux=a; a=b; b=aux;}
cout <<a <<endl <<b <<endl <<c <<endl <<d <<endl;
cin.ignore(); return 0;
}
Comentarios:
Toda estructura if, que incluya ms de una instruccin, luego de la expresin a evaluar o else,
puede agruparse con los smbolos {}.
Ejercicios propuestos:
Escribir un programa para ingresar un nmero entero, entre 1 y 9999, luego determinar la
cantidad de dgitos que tiene.
Escribir un programa para ingresar 3 nmeros enteros, luego determinar el medio.
Escribir un programa para ingresar un nmero entre 1 y 255 en el sistema decimal, luego
realizar la conversin a binario.
Escribir un programa para ingresar un nmero entre 0 y 1000, luego convertir al Sistema de
nmeros romanos.
Escribir un programa para ingresar un nmero entero entre 1 y 999, luego convertirlo a letras.
Instruccin Switch
Esta instruccin permite ejecutar una de varias acciones, en funcin del valor de una expresin. Es
una instruccin especial para decisiones mltiples.
La sintaxis para utilizar esta instruccin es:
switch (expresin)
{
case expresin_constante 1:
instruccin 1;
break;
case expresin_constante 2:

Pgina No. 35

E. A. P. :
Semestre:

Ingeniera Informtica
Tercero

Asignatura : Elementos de la Computacin


Docente :
Wilfredo Bulege Gutirrez

instruccin 2;
break;
.
.
.
default:
instruccin n;
}
Cada case puede incluir una o ms instrucciones sin necesidad de ir entre llaves, ya que se ejecutan
todas hasta que se encuentre la instruccin break. La expresin evaluada slo puede ser de tipo
entero o carcter. default ejecutar las instrucciones que incluya, en caso de que la opcin escogida
no exista.
Ejemplo de un programa para ingresar un nmero, luego obtener el da de la semana:
// Program: Imprime el da de la semana
// Author: James Cohoon, Jack Davidson, modificado por Wilfredo Bulege.
#include <iostream>
using namespace std;
int main()
{
int dia; cout <<"Ingrese el d"<<char(161)<<"a: "; cin >>dia;
switch(dia)
{
case 1: cout <<"Lunes"; break;
case 2: cout <<"Martes"; break;
case 3: cout <<"Miercoles"; break;
case 4: cout <<"Jueves"; break;
case 5: cout <<"Viernes"; break;
case 6: cout <<"Sabado"; break;
case 7: cout <<"Domingo"; break;
default: cout <<"error";
}
cout <<endl <<endl; cin.ignore(); return 0;
}
Ejemplo de un programa para ingresar un carcter, luego se determina si este es vocal o no.
// Program: Determina si es una vocal
// Author: James Cohoon, Jack Davidson, modificado por Wilfredo Bulege.
#include <iostream>
using namespace std;
int main()
{
char car;
cout <<"Ingrese un caracter: ";
cin>>car;
switch(car)
{
case 'a':

Pgina No. 36

E. A. P. :
Semestre:

Ingeniera Informtica
Tercero

Asignatura : Elementos de la Computacin


Docente :
Wilfredo Bulege Gutirrez

case 'A':
case 'e':
case 'E':
case 'i':
case 'I':
case 'o':
case 'O':
case 'u':
case 'U': cout <<"Es una vocal";
break;
default:
cout <<"No es una vocal";
}
cout <<endl<<endl;
cin.ignore(); return 0;
}
Ejercicios propuestos:
Escribir un programa para ingresar una fecha representada por dos enteros (para el mes y ao),
luego determinar la cantidad de das que ste tiene. Considerar para el mes de febrero 29 das, s
el ao es bisiesto, de lo contrario, 28 das. Un ao es bisiesto cuando es mltiplo de 4 y no de
100 o cuando es mltiplo de 400.
Escribir un programa para mostrar un men de 6 opciones (Ingresos, Modificacin, Consultas,
Reportes, Utilidades y Salir), luego de seleccionar una opcin, mostrar un mensaje del mdulo
seleccionado.
Escribir un programa para ingresar 6 notas de una x asignatura, luego determinar el promedio.
Si el promedio est entre 0 y 5, mostrar el mensaje Deficiente, si el promedio est entre 6 y
10, mostrar el mensaje Regular, si el promedio esta entre 11 y 15, mostrar el mensaje
Bueno, si el promedio esta entre 16 y 20, mostrar el mensaje Excelente.
Escribir un programa para ingresar la fecha de nacimiento, luego el programa debe determinar
el signo del zodiaco al cual pertenece.
Instruccin While
La instruccin While ejecuta una instruccin simple o compuesta, cero o ms veces, dependiendo
del resultado de la expresin evaluada. Su sintaxis es:
while (expresin)
Instruccin;
Donde la expresin a evaluar es cualquier expresin numrica, relacional o lgica e instruccin es
una instruccin simple o compuesta.

Pgina No. 37

E. A. P. :
Semestre:

Ingeniera Informtica
Tercero

Asignatura : Elementos de la Computacin


Docente :
Wilfredo Bulege Gutirrez

Ejemplo de un programa, para imprimir la siguiente progresin: 4, 6, 9, 13, 18... , de los nmeros
entre 4 y 100.
a)

Anlisis:

b)

Proceso:
Salida:

4, 6, 9, 13 ... //al primer valor incrementar 2, luego 3, 4, 5, etc.


4, 6, 9, 13, 18, 24 ...

Algoritmo:
inicio
num? 4
inc? 1
mientras num<=100, hacer
escribir num
inc? inc+1
num? num+inc
fin de mientras
fin

c)

Codificacin en C++:
// Program: Progresin.
// Author: Wilfredo Bulege G.
#include <iostream>
using namespace std;
int main()
{
int num=4,inc=1;
while(num<=100)
{
cout<<num<<endl; inc++; num+=inc;
}
cin.ignore(); return 0;
}

Comentarios:
inc++, es la forma resumida de inc=inc+1.
num+=inc, es la forma resumida de num=num+inc.

Pgina No. 38

E. A. P. :
Semestre:

Ingeniera Informtica
Tercero

Asignatura : Elementos de la Computacin


Docente :
Wilfredo Bulege Gutirrez

Ejemplo de un programa para mostrar la siguiente progresin: 62, 52, 43, 35, 28, 22 ... , de los
nmeros que se encuentran entre 62 y 8.
a)

Anlisis:

b)

Entrada:
Proceso:
Salida:

62, 52, 43, 35, 28, 22 ... //al primer valor decrementar 10, luego 9, 8, etc.
62, 52, 43, 35, 28, 22 ... 8

Algoritmo:
inicio
num? 62, raz? 10
mientras num>=8, hacer
escribir num
num? num-raz
raz? raz-1
fin de mientras
fin

c)

Codificacin en C++:
// Program: Progresin.
// Author: Wilfredo Bulege G.
#include <iostream>
using namespace std;
int main()
{
int num=62,raz=10;
while(num>=8)
{
cout<<num<<endl;
num-=raz;
raz--;
}
cin.ignore(); return 0;
}

Pgina No. 39

E. A. P. :
Semestre:

Ingeniera Informtica
Tercero

Asignatura : Elementos de la Computacin


Docente :
Wilfredo Bulege Gutirrez

Ejemplo de un programa para ingresar 2 nmeros, luego se determina la suma de los nmeros pares
e impares entre los valores ingresados.
a)

Anlisis:

b)

Entrada:
Proceso:
Salida:

6, 11
pares=6+8+10, impares=7+9+11
pares= 24, impares=27

Algoritmo:
inicio
n1? 0, n2? 0, par? 0, impar? 0
leer n1, n2
mientras n1<=n2, hacer
si residuo de n1/2=0
par? par+n1
sino
impar? impar+n1
fin de si
n1? n1+1
fin de mientras
escribir par, impar
fin

c)

Codificacin en C++:
// Program: Suma los nmeros pares e impares entre dos valores ingresados.
// Author: Wilfredo Bulege G.
#include <iostream>
using namespace std;
int main()
{
int n1=0, n2=0, par=0, impar=0;
cout <<"Ingrese primer n<<char(163)<<mero: \n"; cin >>n1;
cout <<"Ingrese segundo n<<char(163)<<mero: \n";cin >>n2;
while (n1<=n2)
{
if (n1%2==0) par+=n1;
// acumulador
else
impar+=n1;
// acumulador
n1++;
// contador
}
cout <<"La suma de pares es: " <<par;
cout <<"\nLa suma de impares es: " <<impar<<endl <<endl;
cin.ignore(); return 0;
}

Pgina No. 40

E. A. P. :
Semestre:

Ingeniera Informtica
Tercero

Asignatura : Elementos de la Computacin


Docente :
Wilfredo Bulege Gutirrez

Comentarios:
n1++, es la forma resumida de n1=n1+1.
par+=n1, es la forma resumida de par=par+n1.
Ejemplo de un programa, para presentar en pantalla los valores numricos entre 1 y 10,000, que
son nmeros perfectos. Un nmero perfecto es un entero que es igual a la suma de los divisores
propios menores que l mismo. As, 6 es un nmero perfecto, porque sus divisores propios son 1, 2
y 3; y 6 = 1 + 2 + 3. Los siguientes nmeros perfectos son 28, 496 y 8128.
a)

Anlisis:

b)

Entrada:
Proceso:
Salida:

6
1+2+3=6
Si es perfecto

Algoritmo:
inicio
numero? 1, inicio? 1, suma? 0
mientras numero<=10000
mientras inicio<=numero/2
si residuo de numero/inicio=0
suma? suma+inicio
fin de si
inicio? inicio+1
fin de mientras
si numero=suma
escribir numero, suma, "Es perfecto"
fin de si
numero? numero+1, inicio? 1, suma? 0
fin de mientras
fin

c)

Codificacin en C++:
// Program: Numero perfecto
// Author: Wilfredo Bulege
#include <iostream>
using namespace std;
int main()
{
int numero=1,inicio=1,suma=0;

Pgina No. 41

E. A. P. :
Semestre:

Ingeniera Informtica
Tercero

Asignatura : Elementos de la Computacin


Docente :
Wilfredo Bulege Gutirrez

while (numero<=10000)
{
while (inicio<=(numero/2))
{
if (numero%inicio==0)
suma+=inicio;
inicio++;
}
if (numero==suma)
cout<<numero<<", "<<suma<<" Es perfecto"<<endl;
numero++;
inicio=1;suma=0;
}
cin.ignore(); return 0;
}
Ejemplo de un programa para convertir un nmero mayor a 0 del sistema decimal a binario.
// Program: Convierte nmero de Sistema decimal a binario.
// Author: Wilfredo Bulege G.
#include <iostream>
#include <string>
using namespace std;
int main()
{
int numb; string resu="";
cout <<"Ingrese un n" <<char(163) <<"mero en decimal: ";
cin >>numb;
while (numb/2>0)
{
if (numb%2==0)
resu="0"+resu;
else
resu="1"+resu;
numb=numb/2;
}
resu="1"+resu;
cout <<"Su equivalente en el sistema binario, es: " <<resu <<endl <<endl;
cin.ignore(); return 0;
}
Comentarios:
El char(163), mostrar el carcter , ver la tabla ASCII.

Pgina No. 42

E. A. P. :
Semestre:

Ingeniera Informtica
Tercero

Asignatura : Elementos de la Computacin


Docente :
Wilfredo Bulege Gutirrez

Ejemplo de un programa para ingresar cinco nmeros, luego se calcula e imprime el promedio.
// Program: Calcula el promedio de cinco nmeros
// Author: Wilfredo Bulege
#include <iostream>
using namespace std;
int main()
{
const int cantnume=5; int valoproc=0; float totavalo=0,valor,prom;
cout<<"Ingrese "<<cantnume<<" numeros"<<endl;
while (valoproc<cantnume)
{
cin>>valor;
totavalo+=valor; ++valoproc;
}
prom=totavalo/valoproc; cout<<"Promedio: "<<prom<<endl;
cin.ignore(); return 0;
}
Ejercicios propuestos:
Escribir un programa que calcule la suma de los 40 primeros nmeros enteros positivos que
sean mltiplos de 5 y 7. Para comprobar que X es mltiplo de Y basta con comprobar si el resto
de la divisin entera de X entre Y es 0.
Escribir un programa para ingresar 20 nmeros reales, luego el programa debe mostrar el valor
mximo y el valor mnimo introducidos.
Escribir un programa que permita decidir si un nmero entero dado es primo o no. Para decidir
si un nmero es primo probaremos sucesivamente todos sus posibles divisores. Si ninguno de
ellos divide exactamente al nmero en cuestin, entonces ste es primo.
Escribir un programa que, dado un nmero entero, calcule la suma de todos sus dgitos que sean
pares. Para extraer los dgitos usaremos un bucle que divida X por 10 sucesivamente. El resto de
cada divisin corresponde a cada uno de los dgitos.
Instruccin Do ... While
La instruccin do...while ejecuta una instruccin simple o compuesta, una o ms veces
dependiendo del valor de una expresin. Su sintaxis es:
do
{
instruccin;
}
while (expresin);
Donde expresin es cualquier expresin numrica, relacional o lgica e instruccin es una
instruccin simple o compuesta.

Pgina No. 43

E. A. P. :
Semestre:

Ingeniera Informtica
Tercero

Asignatura : Elementos de la Computacin


Docente :
Wilfredo Bulege Gutirrez

Ejemplo de un programa para ingresar un nmero, continuar con el ingreso si este se encuentra en
el rango de 0 a 9, de lo contrario finalizar.
//Program: Lee valores, mientras son numeros entre 0 y 9.
//Author: Wilfredo Bulege G.
#include <iostream>
using namespace std;
int main()
{
int number;
do
{
cout <<"Ingrese un numero: "; cin >>number;
}
while((number>=0)&&(number<=9));
cin.ignore(); return 0;
}
Ejemplo de un programa para presentar un men de cuatro opciones.
//Program: Menu de opciones, si no se pulsa 4.
//Author: Wilfredo Bulege G.
#include <iostream>
using namespace std;
int main()
{
char option;
cout <<"1.- Ingresos\n";
cout <<"2.- Consultas\n";
cout <<"3.- Modificaci"<<char(162)<<"n\n";
cout <<"4.- Salir\n";
do
{
cout <<"Escoge una opci"<<char(162)<<"n: "; cin >>option;
switch(option)
{
case '1': cout<<"Modulo 1\n"; break;
case '2': cout<<"Modulo 2\n"; break;
case '3': cout<<"Modulo 3\n"; break;
}
}
while(option!='4');
cin.ignore(); return 0;
}

Pgina No. 44

E. A. P. :
Semestre:

Ingeniera Informtica
Tercero

Asignatura : Elementos de la Computacin


Docente :
Wilfredo Bulege Gutirrez

Ejemplo de un programa para ingresar un nmero, continuar con el ingreso si este se encuentra en
el rango de 0 a 9, de lo contrario finalizar.
//Program: Lee valores, mientras son numeros entre 0 y 9.
//Author: Wilfredo Bulege G.
#include <iostream>
using namespace std;
int main()
{
int number;
do
{
cout <<"Ingrese un numero: "; cin >>number;
}
while((number>=0)&&(number<=9));
cin.ignore(); return 0;
}
Ejemplo de un programa para presentar un men de cuatro opciones.
//Program: Menu de opciones, si no se pulsa 4.
//Author: Wilfredo Bulege G.
#include <iostream>
using namespace std;
int main()
{
char option;
cout <<"1.- Ingresos\n";
cout <<"2.- Consultas\n";
cout <<"3.- Modificaci"<<char(162)<<"n\n";
cout <<"4.- Salir\n";
do
{
cout <<"Escoge una opci"<<char(162)<<"n: "; cin >>option;
switch(option)
{
case '1': cout<<"Modulo 1\n"; break;
case '2': cout<<"Modulo 2\n"; break;
case '3': cout<<"Modulo 3\n"; break;
}
}
while(option!='4');
cin.ignore(); return 0;
}

Pgina No. 45

E. A. P. :
Semestre:

Ingeniera Informtica
Tercero

Asignatura : Elementos de la Computacin


Docente :
Wilfredo Bulege Gutirrez

Instruccin For
La instruccin for permite ejecutar una instruccin simple o compuesta, repetidamente un nmero
de veces conocido. Su sintaxis es:
for (inicializacin;expresin;progresin)
{
instruccin;
}
Ejemplo:
for (a=1,b=100;a!=b;a++,b- -)
La inicializacin indica una variable (variable de control) que condiciona la repeticin del bucle. Si
hay ms, van separadas por comas.
La expresin, es una expresin booleana que si se omite, se supone verdadera. La progresin es una
o ms expresiones separadas por comas cuyos valores evolucionan en el sentido de que se cumpla
la expresin para finalizar la ejecucin de la instruccin for.
Ejemplo de un programa que imprime los valores de 1 hasta n con incrementos de 0.5, n se ingresa
en tiempo de ejecucin.
a)

Anlisis:

b)

Entrada:
Proceso:
Salida:

10
1+0.5 ...
1, 1.5, 2, 2.5, 3, 3.5 ... 10

Algoritmo:
inicio
init? 0, numb? 0
leer numb
para init? 1 hasta numb
escribir init
init? init+0.5
fin de para
fin

Pgina No. 46

E. A. P. :
Semestre:

Ingeniera Informtica
Tercero

Asignatura : Elementos de la Computacin


Docente :
Wilfredo Bulege Gutirrez

if (line==20)
{
getchar(); system("cls"); line=1;
}
else
line++;
}
cin.ignore(); return 0;
}
Comentarios:
system(), es una funcin de la biblioteca string, y permite la ejecucin de un comando,
system("cls"), limpia la pantalla.
getchar(), utiliza la funcin getc para obtener un carcter desde el flujo de entrada estndar.
Ejemplo de un programa que dibuja un paralelogramo.
// Program: Paralelogramo.
// Author: Wilfredo Bulege G.
#include <iostream>
#include <string>
using namespace std;
int main()
{
string a="*",b=" "; int w=1,x,y,z;
while (w<14)
{
if(w<8)
for(x=1;x<=w;x++) cout<<a;
else
{
for(y=1;y<=w-7;y++) cout<<b;
for(z=14-w;z>0;z--) cout<<a;
}
w++;cout<<endl;
}
cout<<endl; cin.ignore(); return 0;
}
Ejercicios propuestos:
Escribir un programa para presentar las tablas de multiplicar del 1 al 15.
Escribir un programa para simular un reloj. Considerar la hora, minuto y segundos.

Pgina No. 47

E. A. P. :
Semestre:

Ingeniera Informtica
Tercero

Asignatura : Elementos de la Computacin


Docente :
Wilfredo Bulege Gutirrez

Captulo III
Funciones
Una funcin es un miniprograma dentro de un programa. Las funciones contienen varias
instrucciones bajo un solo nombre que un programa puede utilizar una o ms veces para ejecutar
dichas instrucciones. Las funciones ahorran espacio reduciendo repeticiones y haciendo ms fcil
la programacin, proporcionando un medio de dividir un proyecto grande en mdulos pequeos
ms manejables.
Estructura de una funcin
Una funcin se puede llamar desde cualquier parte de un programa. Las funciones permiten al
programador un grado de abstraccin en la resolucin de un problema.
Las funciones no se pueden anidar. Esto significa que una funcin no se puede declarar dentro de
otra. La razn para esto es permitir un acceso muy eficiente a los datos. En C++ todas las funciones
son externas o globales, es decir pueden ser llamadas desde cualquier punto del programa.
La estructura de una funcin es:
tipo_de_retorno nombre_de_funcin (lista de parmetros)
{
cuerpo de la funcin
return expresin
}
El tipo de retorno, es el tipo de valor devuelto por la funcin o la palabra reservada void si la
funcin no devuelve ningn valor.
El nombre de funcin, es el identificador o nombre de la funcin.
La lista de parmetros, es la lista de declaraciones de los parmetros de la funcin separados por
comas.
Expresin, es el valor que devuelve la funcin.
Una llamada a la funcin produce la ejecucin de las instrucciones del cuerpo de la funcin y un
retorno a la unidad de programa llamadora despus que la ejecucin de la funcin se ha terminado;
normalmente, cuando se encuentra una instruccin return.
La llamada a una funcin, se realiza de la siguiente manera:

Pgina No. 48

E. A. P. :
Semestre:

Ingeniera Informtica
Tercero

Asignatura : Elementos de la Computacin


Docente :
Wilfredo Bulege Gutirrez

int main()
{
...
function1();
function2();
...
return;
}
void function1()
{
...
return;
}
void function2()
{
...
return;
}
Prototipos de las funciones
Una funcin en C++, se declara antes de su uso, esto se denomina prototipo. Los
prototipos de una funcin contienen la misma cabecera de la funcin con la diferencia de
que los prototipos terminan con un punto y coma, adems consta de los siguientes
elementos: Nombre de la funcin, una lista de argumentos encerrados entre parntesis y
un punto y coma. La inclusin del nombre de los parmetros es opcional.
Los prototipos se sitan normalmente al principio de un programa, antes de la definicin
de la funcin main().
Parmetros de una funcin
A continuacin se examina el mecanismo para pasar parmetros a funciones y como
optimizar el paso de parmetros, dependiendo del tipo de dato que se utiliza.
Paso de parmetros por valor
Significa que cuando C++ compila la funcin y el cdigo que llama a la funcin, esta
recibe una copia de los valores de los parmetros. Si se cambia el valor de un parmetro
variable local, el cambio slo afecta a la funcin y no tiene efecto fuera de la funcin.
Pgina No. 49

E. A. P. :
Semestre:

Ingeniera Informtica
Tercero

Asignatura : Elementos de la Computacin


Docente :
Wilfredo Bulege Gutirrez

Paso de parmetros por referencia


Cuando una funcin debe modificar el valor del parmetro pasado y devolver este valor modificado
a la funcin llamadora, se ha de utilizar el mtodo de paso de parmetro por referencia.
En este mtodo el compilador pasa la direccin de memoria del valor del parmetro a la funcin.
Cuando se modifica el valor del parmetro (la variable local), este valor queda almacenado en la
misma direccin de memoria, por lo que al retornar a la funcin llamadora la direccin de la
memoria donde se almacen el parmetro contendr el valor modificado. Para declarar una variable
parmetro como paso por referencia, el smbolo & debe preceder al nombre de la variable. C++
permite utilizar punteros para implementar parmetros por referencia.
Ejemplo de una funcin que calcula el rea de un triangulo.
//Program: Funcin Calcula rea de un triangulo.
//Author: Wilfredo Bulege G.
//Declaracin de prototipos de funciones
float farea(float b, float a);
#include <iostream>
using namespace std;
int main()
{
float base,altura,area;
cout<<"Ingrese la base: ";
cin>>base;
cout<<"Ingrese la altura: ";
cin>>altura;
area=farea(base,altura);
cout<<endl<<endl;
cout<<"El rea es: "<<area<<endl;
cin.ignore(); return 0;
}
float farea(float b, float a)
{
return b*a/2;
}
Comentarios:
En la lnea 14 se llama la funcin farea, pasando los valores de base y altura, luego la funcin
calcula el rea y retorna el valor que se asigna a la variable area.

Pgina No. 50

E. A. P. :
Semestre:

Ingeniera Informtica
Tercero

Asignatura : Elementos de la Computacin


Docente :
Wilfredo Bulege Gutirrez

Ejemplo de una funcin que determina el valor mayor de dos valores enteros ingresados en tiempo
de ejecucin.
//Program: Determina el mayor de dos nmeros.
//Author: Wilfredo Bulege G.
//Declaracin de prototipos de funciones
int mayor(int,int);
#include <iostream>
using namespace std;
int main()
{
int x,y;
cout<<"Ingrese dos nmeros: ";
cin>>x,y;
cout<<mayor(x,y)<<endl;
cin.ignore();return 0;
}
int mayor(int x,int y)
{
if (x>y) return x;
else return y;
}

Pgina No. 51

E. A. P. :
Semestre:

Ingeniera Informtica
Tercero

Asignatura : Elementos de la Computacin


Docente :
Wilfredo Bulege Gutirrez

Captulo IV
Arreglos
Qu es un arreglo?
Un arreglo es una estructura homognea, compuesta por varios elementos, todos del mismo tipo y
almacenados consecutivamente en memoria. Cada elemento puede ser accedido directamente por el
nombre de la variable del arreglo seguido de uno o ms subndices encerrados entre corchetes.
arreglo m
M[0] M[1] M[2] M[3] M[4] M[5] M[6]
Observe que los subndices son enteros consecutivos, y que el primer subndice vale 0. Un
subndice puede ser cualquier expresin entera positiva. Asimismo, un arreglo de dos dimensiones
se representa mediante una variable con dos subndices (filas, columnas); un arreglo de tres
dimensiones se representa mediante una variable con tres subndices, etc. El nmero mximo de
dimensiones o de elementos, dentro de los lmites establecidos por el compilador para un arreglo,
depende de la memoria disponible.
Entonces, los arreglos segn su dimensin se clasifican en unidimensionales y multidimensionales
y segn su contenido, en numricas, de caracteres, de estructuras y de punteros.
Arreglos unidimensionales
Un arreglo unidimensional es una estructura de datos que puede emplearse para almacenar una lista
de valores con el mismo tipo de datos. La definicin de un arreglo unidimensional se realiza de la
siguiente manera:
Tipo nombre[tamao];
Donde tipo, indica el tipo de dato de los elementos del arreglo, nombre es un identificador que
nombra al arreglo y tamao es una constante entera que especifica el nmero de elementos del
arreglo. Los corchetes modifican la definicin normal del identificador para que sea interpretado
por el compilador como un arreglo. Un ejemplo es:
int num[100];
Crea un arreglo de 100 nmeros enteros.
Los elementos de un arreglo se almacenan en ubicaciones contiguas en la memoria y se hace
referencia a ellos empleando el nombre del arreglo y un subndice, por ejemplo, num[22].
Cualquier nmero entero que no sea negativo puede emplearse como subndice.

Pgina No. 52

E. A. P. :
Semestre:

Ingeniera Informtica
Tercero

Asignatura : Elementos de la Computacin


Docente :
Wilfredo Bulege Gutirrez

El subndice 0 siempre se refiere al primer elemento de un arreglo. Los arreglos pueden


inicializarse cuando se declaran, ejemplo:
Vals
2
0

3
1

4
2

5
3

6
4

Valores
Subndice

Ejemplo de un programa que permite el ingreso de las edades de 10 personas y calcula el promedio.
//Program: Promedio de edades
//Author: Wilfredo Bulege G.
#include<iostream>
using namespace std;
int main()
{
//Declaracin de variables
int x,sum=0;
int edad[10];
//Ingreso de datos
for(x=0;x<10;x++)
{
cout<<"ingrese la edad "<<x+1<<" : ";
cin>>edad[x];
sum+=edad[x];
}
//Presentacin de resultados
cout<<"\nEl promedio de las edades es: "<<sum/10;
cout<<endl;
cout<<endl;
cin.ignore();
return 0;
}
Comentarios:
Edad, es un vector o arreglo unidimensional, que almacenar 10 valores numricos enteros.

Pgina No. 53

E. A. P. :
Semestre:

Ingeniera Informtica
Tercero

Asignatura : Elementos de la Computacin


Docente :
Wilfredo Bulege Gutirrez

Ejemplo de un programa que permite el ingreso de 10 nmeros, luego determina el valor mayor.
// Forma 01
//Program: Determinar el mayor de 10 nmeros, con variable adicional.
//Author: Wilfredo Bulege G.
#include <iostream>
using namespace std;
int main()
{
// inicializacin de variables
int mayor=0,x=0;
int number[10];
// entrada de datos
while (x<10)
{
cout<<"Ingrese numero: ";
cin>>number[x];
x++;
}
x=1;
// determinacin del mayor
mayor=number[0];
while (x<10)
{
if (mayor<number[x])
mayor=number[x];
x++;
}
cout<<"El mayor es: "<<mayor<<endl;
cin.ignore();
return 0;
}
Comentarios:
number, es un vector de 10 elementos y se crea sin valores, pero esta preparado para almacenar
slo valores enteros.
En el ingreso de datos, se utiliza un bucle while, para realizar la repeticin de diez ingresos de
datos en el vector number.
En el proceso de los datos, se utiliza otro bucle while, a fin de realizar nueve comparaciones,
donde la variable mayor, almacena el valor mayor, luego de la comprobacin de que el valor de
mayor es menor al valor del elemento x del arreglo number.
Finalmente, se imprime el valor de la variable mayor.

Pgina No. 54

E. A. P. :
Semestre:

Ingeniera Informtica
Tercero

Asignatura : Elementos de la Computacin


Docente :
Wilfredo Bulege Gutirrez

// Forma 02
//Program: Determinar el mayor de 10 nmeros, almacenando en el arreglo.
//Author: Wilfredo Bulege G.
#include <iostream>
using namespace std;
int main()
{
int aux=0;
int x=0;
int number[10];
while (x<10)
{
cout<<"Ingrese numero: ";
cin>>number[x];
x++;
}
x=0;
while (x<9)
{
if (number[x]>number[x+1])
{
aux=number[x];
number[x]=number[x+1];
number[x+1]=aux;
}
x++;
}
cout<<"El mayor es: "<<number[9]<<endl;
cin.ignore();
return 0;
}
En el presente programa, se realiza un bucle de diez repeticiones, para el ingreso de datos.
Del mismo modo, se utiliza otro bucle de nueve repeticiones, para las comparaciones entre cada
uno de los elementos del arreglo number. Se procede con intercambios permanentes de valores
entre los elementos del arreglo, hasta almacenar el valor mayor en el ltimo elemento del
arreglo.
Finalmente, se imprime el valor del elemento 9, pues este guarda el valor mayor.

Pgina No. 55

E. A. P. :
Semestre:

Ingeniera Informtica
Tercero

Asignatura : Elementos de la Computacin


Docente :
Wilfredo Bulege Gutirrez

Ejemplo de un programa que permite el ingreso de 15 nmeros y los ordena en forma ascendente.
a)

Anlisis:

b)

Entrada:
Proceso:
Salida:

76, 999, 3, 54, 23, 1, 4, 5, 88, 103, 22, 10, 64, 82, 100
1, 3, 4, 5, 10, 22, 23, 54, 64, 76, 82, 88, 100, 103, 999
1, 3, 4, 5, 10, 22, 23, 54, 64, 76, 82, 88, 100, 103, 999

Algoritmo:
inicio
aux? 0, x? 0, y? 0
num? [15]
mientras x<15, hacer
leer num [x]
x? x+1
fin de mientras
para x? 1 a 14
para y? 0 a 14-x
si num [y]> num [y+1]
aux? num [y]
num [y]? num [y+1]
num [y+1]? aux
fin de si
fin de para
fin de para
mientras x<15, hacer
escribir num [x]
x? x+1
fin de mientras
fin

c)

Codificacin en C++:
//Program: Ordenamiento de 15 nmeros.
//Author: Wilfredo Bulege G.
#include <iostream>
using namespace std;
int main()
{
int aux=0, int x=0, int y=0; int number[15];
while (x<15)
{
cout<<"Ingrese numero: ";
cin>>number[x];
x++;

Pgina No. 56

E. A. P. :
Semestre:

Ingeniera Informtica
Tercero

Asignatura : Elementos de la Computacin


Docente :
Wilfredo Bulege Gutirrez

Pgina No. 57

E. A. P. :
Semestre:

Ingeniera Informtica
Tercero

Asignatura : Elementos de la Computacin


Docente :
Wilfredo Bulege Gutirrez

}
for(x=1;x<15;x++)
{
for (y=0;y<15-x;y++)
{
if (number[y]>number[y+1])
{
aux=number[y];
number[y]=number[y+1];
number[y+1]=aux;
}
}
}
x=0;
while (x<15)
{
cout<<number[x]<<endl;
x++;
}
cin.ignore(); return 0;
}
Ejemplo de un programa que permite la bsqueda de un valor entero en un arreglo de cinco
elementos.
//Program: Bsqueda de un elemento.
//Author: Wilfredo Bulege G.
#include <iostream>
using namespace std;
int main()
{
int value,ok=0,x;
int phono[5]={221580,221929,211717,254858,233333};
//Ingreso de datos
cout<<"Ingrese valor a buscar: ";
cin>>value;
//Busqueda de datos
for (x=0;x<5;x++)
{
if (phono[x]==value) ok=1;
}
if (ok==1) cout<<"Se encontro este valor...\n\n";
else cout<<"No se encuentra este valor...\n\n";
cin.ignore(); return 0;
}

Pgina No. 58

E. A. P. :
Semestre:

Ingeniera Informtica
Tercero

Asignatura : Elementos de la Computacin


Docente :
Wilfredo Bulege Gutirrez

Arreglos bidimensionales
Un arreglo bidimensional se declara al enlistar el tamao en filas y columnas junto con el tipo de
datos y el nombre del arreglo, ejemplo:
Int mat[5][7];
Que genera un arreglo bidimensional, compuesta por cinco filas y 7 columnas de nmeros enteros.
La inicializacin en el caso de un arreglo bidimensional se logra al listar los valores iniciales, fila
por fila, dentro de llaves y separndolos con comas, ejemplo:
Int vals[3][2]={

{1,2},
{3,4},
{5,6}};

Produce el siguiente arreglo de tres filas por dos columnas.


1
2
3
4
5
6
Como C++ utiliza la convencin de que la inicializacin procede por filas, pueden omitirse las
llaves internas. As, una inicializacin equivalente puede lograrse con la siguiente instruccin:
Int vals[3][2]={1,2,3,4,5,6};
Los arreglos se transmiten a una funcin al pasar el nombre del arreglo como argumento. El valor
realmente transmitido es el domicilio de la primera ubicacin de almacenaje del arreglo. De tal
forma, la funcin llamada adquiere acceso directo al arreglo original y no a una copia de los
elementos del arreglo. Dentro de la funcin llamada debe declararse un argumento formal para
recibir el nombre del arreglo transmitido. La declaracin del argumento formal puede omitir el
tamao de fila para el arreglo.
Ejemplo de un programa que permite el ingreso de 4 notas por 6 cursos, luego determina el
promedio por cursos.
//Program: Promedio de notas por cursos, 4 notas por 6 cursos.
//Author: Wilfredo Bulege G.
#include<iostream>
using namespace std;
int main()
{
int x,y,nota[6][4];float sum=0,prom=0;
cout<<"\nRegistro de Notas\n\n";

Pgina No. 59

E. A. P. :
Semestre:

Ingeniera Informtica
Tercero

Asignatura : Elementos de la Computacin


Docente :
Wilfredo Bulege Gutirrez

//Ingreso de notas
for(x=0;x<6;x++)
{
for(y=0;y<4;y++)
{
cout<<"Curso "<<x+1<<" Nota "<<y+1<<": ";
cin>>nota[x][y];
}
}
//Clculo e impresin
for(x=0;x<6;x++)
{
for(y=0;y<4;y++)
sum=sum+nota[x][y];
prom=sum/4;
cout<<"\nPromedio Curso "<<x+1<<": "<<prom<<endl;
sum=0;
prom=0;
}
cin.ignore(); return 0;
}
Ejemplo de un programa que permite a travs de dos funciones el ingreso a un arreglo
bidimensional de 15 nmeros y luego los presenta en el mismo orden de ingreso.
//Program: Funciones para lectura y presentacin desde un arreglo.
//Author: Wilfredo Bulege G.
//Declaracin de Prototipos
void leer(int a[][5]);
void presentar(const int a[][5]);
#include <iostream>
using namespace std;
int main()
{
int a[3][5];
leer(a);
presentar(a);
cin.ignore(); return 0;
}

Pgina No. 60

E. A. P. :
Semestre:

Ingeniera Informtica
Tercero

Asignatura : Elementos de la Computacin


Docente :
Wilfredo Bulege Gutirrez

void leer(int a[][5])


{
cout<<"Ingrese 15 nmeros"<<endl;
for (int i=0;i<3;i++)
{
cout<<"Fila "<<i<<":";
for (int j=0;j<5;j++)
cin>>a[i][j];
}
}
void presentar(const int a[][5])
{
for (int i=0;i<3;i++)
{
for (int j=0;j<5;j++)
cout<<" "<<a[i][j]<<endl;
}
}
Arreglos de dimensiones mayores
Aunque no es comn el uso de arreglos con ms de dos dimensiones, C++ permite declarar
cualquier dimensin. Esto se logra al indicar el tamao mximo de todas las dimensiones del
arreglo. Por ejemplo, la declaracin int respuesta [4] [10] [6] declara un arreglo tridimensional. El
primer elemento del arreglo se designa como respuesta [0] [0] [0] y el ltimo elementos como
respuesta [3] [9] [5].
Un arreglo en tres dimensiones puede verse como un libro de tablas de datos. Empleando esta
imagen, el primer ndice puede verse como la ubicacin del rengln deseado en una tabla, el
segundo ndice como la columna deseada y el tercer ndice, tambin llamado rango, como el
nmero de pgina en la tabla seleccionada.
Los arreglos de cualquier dimensin puede declararse en forma similar. Un arreglo de cuatro
dimensiones puede representarse como un entrepao de un librero, donde la cuarta dimensin se
utiliza para declarar el libro deseado en el entrepao; un arreglo de cinco dimensiones se puede ver
como un librero, donde la quinta dimensin se refiere al entrepao escogido en el estante.
Empleando la misma analoga, un arreglo de seis dimensiones se puede compara con una fila de
libreros, donde la sexta dimensin es el estante deseado en una fila; un arreglo de siete dimensiones
se puede visualizar como varias filas de libreros, donde la sptima dimensin se refiere a la fila
deseada y as sucesivamente. De la misma forma, los arreglos de tres, cuatro, cinco, seis o ms
dimensiones pueden verse respectiva mente como n mltiplos matemticos del orden de tres,
cuatro, cinco, seis, etctera.

Pgina No. 61

E. A. P. :
Semestre:

Ingeniera Informtica
Tercero

Asignatura : Elementos de la Computacin


Docente :
Wilfredo Bulege Gutirrez

Ejercicios propuestos
Escribir un programa para ingresar un nmero entero, luego a travs de una funcin elevar a una
potencia positiva, luego presentar el resultado en pantalla.
Escribir un programa para ingresar 12 valores enteros, luego a partir de una funcin, determinar
el valor menor.
Escribir un programa para ingresar 20 valores, luego eliminar los valores repetidos e
imprimirlos.
Escribir un programa para ingresar n nmeros, luego determinar el promedio, la desviacin
estndar y varianza.
Escribir un programa para registrar las ventas de 4 sucursales por 12 meses, luego presentar el
total de ventas y promedio por meses.

Pgina No. 62

E. A. P. :
Semestre:

Ingeniera Informtica
Tercero

Asignatura : Elementos de la Computacin


Docente :
Wilfredo Bulege Gutirrez

Pgina No. 63

E. A. P. :
Semestre:

Ingeniera Informtica
Tercero

Asignatura : Elementos de la Computacin


Docente :
Wilfredo Bulege Gutirrez

Captulo V
Punteros
Qu es un Puntero?
Un puntero es un tipo especial de variable, que almacena el valor de una direccin de memoria,
esta direccin puede ser la de una variable individual, pero ms frecuentemente ser la de un
elemento de un arreglo, una estructura u objeto de una clase.
Los objetos puntero se definen en conjuncin con el operador unario de indireccin * o, como se le
llama ms frecuentemente, el operador de desreferenciacin 1.
Empleo de direcciones: para emplear una direccin almacenada, C++ dispone de un operador de
indireccin, *. El simbolo *, cuando va seguido de un puntero, significa la variable para cuya
direccin est almacenada en. Entonces, si dir_num es puntero, *dir_num significa la variable
cuya direccin se almacena en dir_num2.
Declaracin de punteros: como todas las variables los punteros, deben declararse antes de
emplearse para almacenar una direccin. Cuando se declara una variable puntero, C++ pide
tambin que se especifique el tipo de variable a la cual apunta, ejemplo, si la direccin del puntero
dir_num es un nmero entero, la declaracin correcta para el puntero es:
int *dir_num;
Esta declaracin se lee como la variable a que apunta dir_num es un nmero entero.
Opciones de inicializacin: Un puntero puede ser inicializado con la direccin de memoria de un
objeto, tal objeto debe pertenecer a un tipo acorde al tipo al que apunta el puntero. Puede tratarse de
la direccin de un elemento de un array o de una variable individual, el operador '&' antepuesto a
un objeto nos devuelve su direccin de memoria.
Tambin puede utilizarse un "literal", ya sea numrico, de carcter, o de otro tipo, y puede
inicializarse como puntero nulo, en este caso esta permitido usar el 0, el nico entero permitido, por
su equivalencia con el valor NULL.

1
2

2000, Cohoon & Davidson, Programacin y Diseo en C++, p. 697.


2000, Bronson, Gary. C++ para ingeniera y ciencias, p. 586.

Pgina No. 64

E. A. P. :
Semestre:

Ingeniera Informtica
Tercero

Asignatura : Elementos de la Computacin


Docente :
Wilfredo Bulege Gutirrez

Ejemplo de un programa que asigna un valor a una variable, luego imprime la direccin y valor
almacenado.
//Program: Demostracin de punteros.
//Author: Wilfredo Bulege G.
#include <iostream>
using namespace std;
int main()
{
int *dir_num;
//declara dir_num como un puntero, de tipo int
int km=48;
dir_num=&km;
//almacena "la direccin de km" en dir_num
cout<<"La direccion almacenada en dir_num, es: "<<dir_num<<endl;
cout<<"El valor al que apunta dir_num, es: "<<*dir_num<<endl;
cin.ignore(); return 0;
}
Escribir un programa utilizando punteros, para ingresar los valores de los catetos de un triangulo,
luego determinar e imprimir el valor de la hipotenusa.
//Program: Calcular hipotenusa.
//Author: Wilfredo Bulege G.
#include <iostream>
#include <math.h>
using namespace std;
int main()
{
float c1,c2; double h,*r;
cout<<"Ingrese los valores de los catetos: ";
cin>>c1>>c2;
if (c1>0 && c2>0)
{
h=sqrt(pow(c1,2)+pow(c2,2));
r=&h;
cout<<endl<<*r<<endl;
}
else
cout<<"Los datos estn incompletos...";
cin.ignore(); return 0;
}

Pgina No. 65

E. A. P. :
Semestre:

Ingeniera Informtica
Tercero

Asignatura : Elementos de la Computacin


Docente :
Wilfredo Bulege Gutirrez

Captulo VI
Proyectos de aplicacin MFC
Qu es una Aplicacin MFC?
Una aplicacin MFC es una aplicacin ejecutable para Windows basada en la biblioteca Microsoft
Foundation Class (MFC). La forma ms fcil de crear una aplicacin MFC es utilizar el Asistente
para aplicaciones MFC.
Tipos de aplicaciones MFC
Los archivos ejecutables MFC suelen ser de cinco tipos diferentes: aplicaciones para Windows
estndar, cuadros de dilogo, aplicaciones basadas en formularios, aplicaciones estilo Explorador
de Windows y aplicaciones estilo Explorador Web.
El Asistente para aplicaciones MFC generar las clases y los archivos apropiados para estos tipos
de aplicaciones, en funcin de las opciones que seleccione en el asistente.
Cmo crear una Aplicacin MFC?
a) Crear una solucin, proyecto y aplicacin nueva, en MS Visual Studio .NET:

Escoger la opcin Archivo, luego Nuevo y Proyecto.

Pgina No. 66

E. A. P. :
Semestre:

Ingeniera Informtica
Tercero

Asignatura : Elementos de la Computacin


Docente :
Wilfredo Bulege Gutirrez

En tipos de proyectos, seleccionar Visual C++, luego MFC


En plantillas, seleccionar MFC Application.
En nombre, escribir un nombre, ejemplo: bienvenida.
En ubicacin, seleccionar la carpeta donde se crear el presente proyecto.
En nombre de solucin nueva, definir el nombre de la solucin, ejemplo: Bienvenida.
Pulsar el botn Aceptar.
En tipo de aplicacin, seleccionar Basada en Cuadros de dilogo.
Pulsar el botn Finalizar.

El Asistente genera una aplicacin que consta de una ventana con dos botones de
comando y un texto al centro. Seleccione el texto TODO y elimnelo.

b) Aadir controles a la aplicacin:

Insertar los controles necesarios y definir y/o modificar las propiedades de los objetos,
ejemplo:
Caption
ID

=
Aceptar
IDOK

c) Escribir el cdigo de programacin:

En el botn Aceptar, hacer doble clic, y escribir el programa, ejemplo:

Pgina No. 67

E. A. P. :
Semestre:

Ingeniera Informtica
Tercero

Asignatura : Elementos de la Computacin


Docente :
Wilfredo Bulege Gutirrez

void CbienvenidaDlg::OnBnClickedOk()
{
MessageBox("Bienvenido a MS Visual
MB_ICONINFORMATION);

C++ .NET","Visual

C++.NET",

}
a) Compilar, Enlazar y Ejecutar:

Esta aplicacin, permitir mostrar el mensaje Bienvenido a Visual C++ .NET, a partir de un
cuadro de dilogo activada al hacer click en el botn Aceptar.

Pgina No. 68

E. A. P. :
Semestre:

Ingeniera Informtica
Tercero

Asignatura : Elementos de la Computacin


Docente :
Wilfredo Bulege Gutirrez

Captulo VII
.NET FRAMEWORK
.NET Framework es la nueva biblioteca de clases que puede utilizar para crear aplicaciones de
Windows. Es muy grande, bastante compleja y de gran alcance.
Qu es .NET Framework?
Es una plataforma de computacin diseada por Microsoft para simplificar el desarrollo de las
aplicaciones modernas, como:

Aplicaciones que utilizan clientes grficos sofisticados.


Aplicaciones que utilizan Internet.
Aplicaciones que se distribuyen a travs de ms de un equipo.
Aplicaciones que utilizan las bases de datos de manera sofisticada.

Principales componentes: Lenguajes, biblioteca de clases y CLR.


El Framework de .Net es una infraestructura sobre la que se rene todo un conjunto de lenguajes y
servicios que simplifican enormemente el desarrollo de aplicaciones. Mediante esta herramienta se
ofrece un entorno de ejecucin altamente distribuido, que permite crear aplicaciones robustas y
escalables. Los principales componentes de este entorno son:

Lenguajes de compilacin
Biblioteca de clases de .Net
CLR (Common Language Runtime)

Actualmente, el Framework de .Net es una plataforma no incluida en los diferentes sistemas


operativos distribuidos por Microsoft, por lo que es necesaria su instalacin previa a la ejecucin de
programas creados mediante .Net. El Framework se puede descargar gratuitamente desde la web
oficial de Microsoft.
.Net Framework soporta mltiples lenguajes de programacin y aunque cada lenguaje tiene sus
caractersticas propias, es posible desarrollar cualquier tipo de aplicacin con cualquiera de estos
lenguajes. Existen ms de 30 lenguajes adaptados a .Net, desde los ms conocidos como C# (C
Sharp), Visual Basic o C++ hasta otros lenguajes menos conocidos como Perl o Cobol.
Common Language Runtime (CLR)
El CLR es el verdadero ncleo del Framework de .Net, ya que es el entorno de ejecucin en el que
se cargan las aplicaciones desarrolladas en los distintos lenguajes, ampliando el conjunto de
servicios que ofrece el sistema operativo estndar Win32.
La herramienta de desarrollo compila el cdigo fuente de cualquiera de los lenguajes soportados
por .Net en un mismo cdigo, denominado cdigo intermedio (MSIL, Microsoft Intermediate

Pgina No. 69

E. A. P. :
Semestre:

Ingeniera Informtica
Tercero

Asignatura : Elementos de la Computacin


Docente :
Wilfredo Bulege Gutirrez

Lenguaje). Para generar dicho cdigo el compilador se basa en el Common Language Specification
(CLS) que determina las reglas necesarias para crear cdigo MSIL compatible con el CLR.
De esta forma, indistintamente de la herramienta de desarrollo utilizada y del lenguaje elegido, el
cdigo generado es siempre el mismo, ya que el MSIL es el nico lenguaje que entiende
directamente el CLR. Este cdigo es transparente al desarrollo de la aplicacin ya que lo genera
automticamente el compilador.
Sin embargo, el cdigo generado en MSIL no es cdigo mquina y por tanto no puede ejecutarse
directamente. Se necesita un segundo paso en el que una herramienta denominada compilador JIT
(Just-In-Time) genera el cdigo mquina real que se ejecuta en la plataforma que tenga la
computadora.
De esta forma se consigue con .Net cierta independencia de la plataforma, ya que cada plataforma
puede tener su compilador JIT y crear su propio cdigo mquina a partir del cdigo MSIL.
La compilacin JIT la realiza el CLR a medida que se invocan los mtodos en el programa y, el
cdigo ejecutable obtenido, se almacena en la memoria cach de la computadora, siendo
recompilado slo cuando se produce algn cambio en el cdigo fuente.
Base Class Library (BCL) de .NET
Cuando se est programando una aplicacin muchas veces se necesitan realizar acciones como
manipulacin de archivos, acceso a datos, conocer el estado del sistema, implementar seguridad,
etc. El Framework organiza toda la funcionalidad del sistema operativo en un espacio de nombres
jerrquico de forma que a la hora de programar resulta bastante sencillo encontrar lo que se
necesita.
Para ello, el Framework posee un sistema de tipos universal, denominado Common Type System
(CTS). Este sistema permite que el programador pueda interactuar los tipos que se incluyen en el
propio Framework (biblioteca de clases de .Net) con los creados por l mismo (clases). De esta
forma se aprovechan las ventajas propias de la programacin orientada a objetos, como la herencia
de clases predefinidas para crear nuevas clases, o el polimorfismo de clases para modificar o
ampliar funcionalidades de clases ya existentes.
La biblioteca de clases de .Net Framework incluye, entre otros, tres componentes clave:

ASP.NET para construir aplicaciones y servicios Web.


Windows Forms para desarrollar interfaces de usuario.
ADO.NET para conectar las aplicaciones a bases de datos.

La forma de organizar la biblioteca de clases de .Net dentro del cdigo es a travs de los espacios
de nombres (namespaces), donde cada clase est organizada en espacios de nombres segn su
funcionalidad. Por ejemplo, para manejar ficheros se utiliza el espacio de nombres System.IO y si
lo que se quiere es obtener informacin de una fuente de datos se utilizar el espacio de nombres
System.Data.

Pgina No. 70

E. A. P. :
Semestre:

Ingeniera Informtica
Tercero

Asignatura : Elementos de la Computacin


Docente :
Wilfredo Bulege Gutirrez

Pgina No. 71

E. A. P. :
Semestre:

Ingeniera Informtica
Tercero

Asignatura : Elementos de la Computacin


Docente :
Wilfredo Bulege Gutirrez

La principal ventaja de los espacios de nombres de .Net es que de esta forma se tiene toda la
bliblioteca de clases de .Net centralizada bajo el mismo espacio de nombres (System). Adems,
desde cualquier lenguaje se usa la misma sintaxis de invocacin, ya que a todos los lenguajes se
aplica la misma biblioteca de clases.

Pgina No. 72

E. A. P. :
Semestre:

Ingeniera Informtica
Tercero

Asignatura : Elementos de la Computacin


Docente :
Wilfredo Bulege Gutirrez

Qu son los formularios Windows Forms?


Los formularios Windows Forms son una caracterstica eficaz de Microsoft .NET Framework que
proporciona un conjunto de clases para crear aplicaciones grficas. A diferencia de la mayora de
bibliotecas grficas, los formularios Windows Forms se pueden utilizar en cualquier lenguaje .NET
y podr crear fcilmente aplicaciones grficas para varios lenguajes.
Microsoft ha adoptado el modelo de programacin grfica de Visual Basic, junto con los
formularios, controles y propiedades, y lo ha generalizado de forma que se pueda utilizar en
cualquier lenguaje .NET.
Una aplicacin de formularios Windows Forms se compone de una o ms ventanas, llamadas
formularios. Dichas ventanas pueden ser ventanas de nivel superior, ventanas secundarias o
cuadros de dilogo y una aplicacin puede admitir varios tipos diferentes de formularios.
Cmo crear un proyecto de aplicacin para Windows?
La base de la mayor parte de soluciones que impliquen formularios Windows Forms es el proyecto
Aplicacin para Windows. Resulta sencillo crearlo mediante el entorno de desarrollo integrado
(IDE).
Para crear un proyecto de Aplicacin para Windows:
a) Crear una solucin, proyecto y aplicacin nueva, en MS Visual Studio .NET:

Escoger la opcin Archivo, luego Nuevo y Proyecto.


En tipos de proyectos, seleccionar Visual C++, y CLR.
En plantillas, seleccionar Windows Forms Application para proyectos de Visual Basic,
Visual C# o Visual C++.
En nombre, escribir un nombre, ejemplo: Form1.
En ubicacin, seleccionar la carpeta donde se crear el presente proyecto.
En nombre de solucin nueva, definir el nombre de la solucin, ejemplo: Form1.
Pulsar el botn Aceptar.

Se abrir el Diseador de Windows Forms, que mostrar el formulario Form1 del proyecto
creado.

Pgina No. 73

E. A. P. :
Semestre:

Ingeniera Informtica
Tercero

Asignatura : Elementos de la Computacin


Docente :
Wilfredo Bulege Gutirrez

a) Aadir los controles que se muestran en la presente pantalla:

b) Modificar las propiedades necesarias, para construir el presente diseo:

Pgina No. 74

E. A. P. :
Semestre:

Ingeniera Informtica
Tercero

Asignatura : Elementos de la Computacin


Docente :
Wilfredo Bulege Gutirrez

a) Escribir el cdigo de programacin, para los diversos controles del formulario:

En el botn button1, hacer doble clic, y escribir el siguiente programa:


private:
System::Void button1_Click_1(System::Object * sender, System::EventArgs * e)
{
MessageBox::Show("Pulso el botn Inicio","Importante");
}

En los botnes button2, hasta el button 5, escribir un programa, que permita mostrar un
cuadro de dilogo para indicar el botn pulsado.

Pgina No. 75

E. A. P. :
Semestre:

Ingeniera Informtica
Tercero

Asignatura : Elementos de la Computacin


Docente :
Wilfredo Bulege Gutirrez

a) Compilar y ejecutar el programa. Ingresar datos de prueba para probar el funcionamiento de los
objetos que se muestran en la presente pantalla.

Pgina No. 76

E. A. P. :
Semestre:

Ingeniera Informtica
Tercero

Asignatura : Elementos de la Computacin


Docente :
Wilfredo Bulege Gutirrez

Bibliografa
Textos:
1. Stroustrup, Bjarne, El lenguaje de programacin C++, Editorial Osborne, Espaa, 2002.
2. Templeman, Julian, Aprenda ya, Microsoft Visual C++.NET, Mc Graw Hill, Espaa, 2000.
3. Francia, Dario, Visual C++.NET, Editorial Macro, Per, 2002.
4. Bronson Gary, C++ para Ingeniera y Ciencias, Thomson Editores, Mxico, 2000.
5. Cevallos Javier, C/C++ Curso de programacin, Alfaomega, Mxico, 2002.
6. Cevallos Javier, Enciclopedia del Lenguaje C, Computec, Mxico, 1998.
7. Cohoon, James & Davidson, Jack, Programacin y diseo en C++ Introduccin a la
programacin y al diseo orientado a objetos, Edit. Mc Graw Hill, Espaa, 2000.
8. Deitel & Deitel, C++ Cmo programar, Prentice Hall, Espaa, 1999.
9. Jamsa Kris, Aprenda C++ paso a paso, Alfaomega Grupo Editor, Mxico, 2001.
10. Joyanes Luis, Fundamentos de Programacin, Edit. Mc Graw Hill, Espaa, 1999.
11. Joyanes Luis, Programacin en C++ Algoritmos, Estructuras de datos y objetos, Edit. Mc
Graw Hill, Espaa, 2000.
12. Liza Csar, Algoritmos y su codificacin en C++, Editorial Imprenta RJ S.R.Ltda, Per, 2000.
13. Schildt Herbert, C++ Gua de autoenseanza, Edit. Osborne Mc GrawHill, Espaa, 1995.
14. Urea, Alfonso y otros, Fundamentos de Informtica, Alfaomega, Mxico, 1999.
15. Vsquez Julio, Diseo de Programacin, Edit. San Marcos, Per, 1997.
URLs en Internet:
1. http://www.mhhe.com/c++programdesign, Cohoon & Davidson Web site, 19/11/2003.
2. http://www.cs.virginia.edu/cs101, University of Virginia Computer Science, 04/10/03.
3. http://es.wikipedia.org/wiki/Programaci%F3n_estructurada, Wikipedia La Enciclopedia libre,
22/10/2003.

Pgina No. 77