Documente Academic
Documente Profesional
Documente Cultură
INTRODUCCION
INTROD......
Permite el manejo de datos: bits, bytes y de
direcciones
Es de fcil transportabilidad
Ofrece una enorme librera en ejecucin
Se emplea para escribir sistemas operativos,
compiladores, manejadores de bases de datos,
procesadores de textos, juegos, etc...
3
OBJETOS DE UN PROGRAMA
Forman un programa: objetos y separadores
Objetos:Smbolos especiales,identificadores etiquetas,
nmeros, constantes, variables,etc....
Identificadores.- Representan a constantes, variables, tipos
de datos, funciones, etc......
Secuencia de caracteres de cualquier tamao comenzando con
letra, sin blancos.
Diferencia las letras maysculas de las letras minscula
Limite
Valor1
MENSAJE
N3
Numero-blanco
SUMA-total
suma-TOTAL
A
123-var
index $
Float
$total
OBJETOS .......
Constantes.- Mantienen su valor, pueden ser de
diferentes tipos
Variables.- Cambian de valor mediante sentencias
ejecutables
Sentencias.- Conforman las instrucciones, funciones o
definiciones.
Son simples o compuestas
Cada sentencias simple termina en ;
6
OBJETOS.....
Directiva..- Acta como una orden especial al
computador.
Va precedida por un # e indica una accin especifica a
ejecutar.
En cualquier parte y a plica partir de all.
7
TIPOS DE DATOS
OPERADORES ARITMETICOS
+ Suma
- Resta
* Multiplicacin
/ Divisin
++ Incremento en una unidad
-- Decremento en una unidad
= Asigna el valor de la expresin
9
10
OPERADORES LOGICOS
! Niega el valor de la expresin derecha.
= = Da verdad si las expresiones derecha e
izquierda son iguales.
! = Contrario al anterior.
< Verdad si izquierda menor que derecha.
> Contrario al anterior.
< = Verdad si izquierda es menor o igual
11
Y= (x=10,x*2,x+9)
Y = 29
12
OPERADORES DE BITS
&
>>
<<
Operador and.
Operador or
Operador or exclusivo
Operador complemento
Desplazar un lugar a la derecha
Desplazar un lugar a la izquierda.
13
ESTRUCTURA DE UN
PROGRAMA
Un programa se compone de uno o ms bloques de
sentencias llamados funciones.
Cada funcin tiene un nombre seguido por
parntesis entre los que hay o no, otros datos.
FUNCION MAIN( ).- Todo programa debe
contener al menos esta funcin.
Gobierna la ejecucin del programa.
14
ESTRUCTURA
DIRECTIVAS
main ( )
{ Declaracin de variables:
Cuerpo de la funcin principal
}
main es el nombre de la funcin principal
{ } Indica el comienzo y final del cuerpo de la funcin.
15
16
EJEMPLO DE PROGRAMA
/*Programa de saludo*/
# define M1
Bienvenidos al C
# define M2 Estas alegre
main( )
{
char nombre[30];
clrscr( ); /*funcin limpia pantalla*/
printf(Cul
es tu nombre?:);
gets(nombre);
clrscr( );
printf (\a\z %s\n,nombre,M1,M2);
printf(OK?\n); getch( );
}
17
INDICACIONES GENERALES
CONSTANTES
Se declaran de dos formas:
- # define
identificador-dato ( antes del main)
- Con la palabra CONST dentro del main
Ejemplos:
- # define MAX 200 - # define car *
- # define SUELDO 4578.6 - # define lnea \n
- const int max=200- const char x=a
19
CONST........
El identificador puede ser con maysculas o
minsculas.
El dato puede ser de cualquier tipo ya definido.
Una const string debe estar entre comillas:
ESTO ES UN EJEMPLO DE CADENA
Una constante de tipo char debe estar entre
apstrofes. a, 9, \n.
20
VARIABLES
Es un identificador que sirve para guardar valores
de un tipo de datos en memoria.
Se puede declarar e inicializar su valor en la
declaracin, en forma opcional.
Una variable se declara antes de ser usada.
Puede ser local o global, si se declara dentro o
fuera del main( ).
21
EJEMPLO DE VARIABLES
int a,b,c
float altura,base,rea
char car
long numero,mximo
char texto[80]
22
ENTRADA DE DATOS
Scanf: Lee datos desde el teclado: scanf(cadena de
formato,lista de
direcciones de variables)
Cadena de formato :Lista de letras precedidas por % que
indica el tipo de dato.
d, D
entero decimal
o, O
entero octagonal
i entero
l entero largo
u, U
entero sin signo
23
X, x entero hexadecimal
e, E punto flotante
f, F reales
S cadena de caracteres
C carcter
%% carcter (no hay conversin)
n ninguna
p nmero hexadecimal (punteros)
Ejemplos:
scanf(%d %f,&ca,&b)
scanf(%c %s,car,nom)
24
ENTRADA.....
GETS Lee una cadena de caracteres desde el teclado.
gets(cadena)
char nombre[15] gets(nombre)
Existe el GETCHAR y GETCH: Lee un carcter con o
sin eco respectivamente .
char car char car car=getchar
car=getch
25
SALIDA (pantalla)
PRINTF Escribe con formato una lista de datos
printf(cadena de formato, datos)
La cadena de formato puede ser:
d
entero
decimal i
entero
u
entero sin signo o
entero octal
26
27
28
Ejemplo:
# define suel 450.87569
void main( )
{ char nom[15];
clrscr( );
printf(ingrese nombre:);
scanf(%s,nom);
printf(\n);
printf(Seor,%s su sueldo es = %10.2f\n,nom,suel);
getch( ); }
30
SENTENCIA DE ASIGNACION
Es la que permite cargar un valor a una variable que ha
sido definida anteriormente.
identificador = valor
int total; int j,precio = 15;
total = 125;
j = precio * 5;
float r,s,m;
m = r +s;
32
LIBRERIAS DE INPUT/OUTPUT
Para las operaciones de entrada y salida de datos se
tienen que utilizar libreras para dichos procesos, las
cuales deben incluirse al inicio del programa.
#include <stdio.h>
para el C
#include <fstream.h>
para el C++
#include <iostream.h>
33
35
EJEMPLOS
Programa que lee un nombre y lo imprime:
# include <fstream.h>
#include <conio.h>
void main( )
{ char nombre[15];
clrscr( );
cout<< digite su nombre;
cin>>nombre;
cout<< su nombre es<<nombre;
}
36
37
38
SENTENCIAS DE CONTROL
En un programa siempre es necesario alterar el orden
de ejecucin de las instrucciones, ya sea en funcin de
una condicin o por que se desea repetir un nmero
de veces la ejecucin de un grupo de instrucciones.
Para atender estros requerimientos se tiene:
SENTENCIAS SELECTIVAS
Sentencia IF.- Toma una decisin referente a la
accin a efectuar en un programa, basandose en el
resultado de la evaluacin ( V, F ) de una condicin
if (expresin)
sentencias;
else
sentencias;
40
IF ANIDADOS
Las sentencias IF y ELSE pueden estar anidadas, quiere decir
que una sentencia IF puede contener otro u otros IF dentro de
su dominio.
If (expresin)
...........
If(expresin)
sentencias;
else
sentencias;
42
EJEMPLOS
44
else
menor = c;
else
{ if (b<c)
menor = b;
else
menor = c;
}
cout<< el nmero menor es<<menor;
getch ( );
}
46
SENTENCIA SWITCH
Esta sentencia permite ejecutar una de varias
acciones en funcin del valor de una expresin.
switch (expresin)
{
case constante1:
sentencia1;
case constante2:
sentencia2;
........
default
sentencia por defecto;}
47
cin>>sexo>>edad;
switch (sexo)
{ case 0:
nh = nh + 1;
seh = seh + edad; break;
case 1: nm = nm +1;
sem = sem + edad; break;
} na=na+1;}
if (nh>0)
{ peh = seh / nh;
cout<<El promedio de \n;
52
53
SENTENCIA REPETITIVA:
WHILE
Permite ejecutar una sentencia simple o compuesta,
cero o ms veces, dependiendo del valor de una
expresin, numrica, relacional o lgica.
El funcionamiento es el siguiente:
Se evala la condicin
Si el resultado es cero, la sentencia no se ejecuta, y
pasa a ejecutar la siguiente sentencia del programa.
55
cout<<=====================\n;
i = 1;
while (i<=50)
{ cout<<i<< ;
i = i +2;
}
getch ( );
}
57
:<<total;
59
SENTENCIA DO-WHILE
Ejecuta una sentencia una o ms veces,
dependiendo del valor de una expresin. Su formato
es:
do
sentencia;
while (expresin)
Donde sentencia puede ser simple o compuesta.
60
cout<<\n<<fact;
}
64
SENTENCIA FOR
Este comando generalmente se utiliza para ejecutar
sentencias simples o compuestas, repetidamente un
nmero de veces conocido
for ([exp1];[exp2];[exp3]) sentencia;
- exp1 Se utiliza para inicializar el ndice.
- exp2 El valor determina si el lazo se ejecuta o no.
- exp3 Incrementa el ndice.
67
{ cout<<con<<
<<var<<\n;
++con;
}
getch ( );
}
Ejemplo de un programa que imprime valores de los
enteros del 1 al 20 y sus respectivos cuadrados.
#include <fstream.h>
void main( )
{
69
int k;
clrscr;
cout<<cuadrado de nmeros \n;
for (k=1;K<=20;k++)
cout<<k<<
;<<k*k);
getch( );
}
Ejemplo de un programa de men
70
#include <fstream.h>
#include <float.h>
void main ( )
{ float x,y,z;
int select=0;
while (select!=5)
{ clrscr( );
cout<<1......Sumar \n;
cout<<2.......Restar \n;
cout<<3.......Multiplicar \n;
71
cout<<4.........Dividir \n;
cout<<5.........Salir \n;
cin>>select;
if (select !=5)
{ if (select>0 && select<=4)
{ switch(select)
{ case 1:clrscr( );
cout<<digite 1er sumando\n;
cin>>x;
cout<<digite 2do sumando\n
72
cin>>y;
z=x+y;
cout<<total:<< <<z;
getch( ); break;
case 2:clrscr( );
cout<<digite minuendo \n;
cin>>x;
cout<<digite sustraendo \n;
cin>>y;
z=x-y;
73
cout<<total:<<
<<z;
getch( ); break;
case 3:clrscr( );
cout<<digite multiplicando \n;
cin>>x;
cout<<digite multiplicador \n
cin>>y;
z=x*y;
cout<<total:<< <<z;
getch( ); break;
74
case 4:clrscr( );
cout<<digite dividendo \n;
cin>>x;
cout<<digite divisor \n
cin>>y;
z=x/y;
cout<<total:<< <<z;
getch( ); break;
}
else
cout<<\n seleccin equivocada
75
}
else
break;
}
}
Ejemplo de programa de conversin de segundos.
#include <fstream.h>
#include <string.h>
void main ( )
76
{ int nmin,nhor,nseg,min,seg;
char ope;
do
{ clrscr ( );
cout<<digite un nmero de segundos\n;
cin>>seg;
nhor=seg/3600;
min=seg % 3600;
nmin=min/60;
nseg=min % 60;
77
SENTENCIAS DE
TRANSFERENCIA
Existen dos sentencias de transferencia BREAK y
CONTINUE.
La sentencia BREAK finaliza la ejecucin del while,
do, for o switch ms interno que la contenga y se
prosigue con el resto del programa.
El CONTINUE transfiere la ejecucin a la parte final
de la preposicin afectada por el ciclo while, do, for
ms interno que la contenga.
79
Ejemplos:
#include <fstream.h>
void main ( )
{ int i;
clrscr( );
for (i=1;i<10;i++)
{
cout<<i;
if(i= =5) break;
cout<<la variable es distinta de 5 \n;
80
}
cout<<(la variable es igual a 5 \n;
getch( );
}
NOTA: Es posible codificar un lazo de sentencias
que se desea que se ejecuten en forma infinita, para
lograrlo codifique lo siguiente:
for ( ; ;)
o
while (1)
81
82
FUNCIONES
Todo programa en C, por definicin, consta de una
ms funciones. Todos los subprogramas en C son
funciones.
Todos los programas en C deben llevar una y solo
una funcin main, que es la primera funcin que se
ejecuta (pero no necesariamente es la primera que
aparece en la lista) y que llama a todas las otras
funciones directa o indirectamente.
83
La definicin actual:
DECLARACION DEL
PROTOTIPO DE LA FUNCION
Es necesario indicarle al compilador la existencia
de una funcin que lleva o no parmetros y cual es
el tipo de ellos. Tambien es necesario indicarle que
tipo de dato regresa al programa principal.
Todo esto se especifica en un prototipo
int ejem( int, int);
88
#include <fstream.h>
//PROTOTIPOS
int addt( int, int);
void main( )
{ int inu1=2, inum2=3, iresult;
iresult = addt( inum1, inum2);
cout<<El resultado es:;
cout<<iresult<<\n;
}
89
#include <fstream.h>
void main( )
{ int b=5, r;
clrscr( );
r=escribir(b);
cout<<r;
getch( );
}
92
int escribir(int y)
{
return(y*3);
}
Ejemplo de un programa que utiliza la funcin rea
#include <fstream.h>
#include <float.h>
float rea(x,y)
float(x,y)
{
93
float res;
res= (x * y)/2;
return(res);
}
void main( )
{ float base,altura,r,area(float,float);
clrscr( );
cout<<ingrese la base y la altura;
cin>>base>>altura;
r=area(base,altura);
cout<<\n el rea es:<< <<r; }
94
cin>>n;
cout<<el factorial de <<n<< es<<fact(n);
getch( );
}
Ejemplo de un programa que calcula la suma y la
imprime:
#include <fstream.h>
#include <conio.h>
void imprime (int s)
{ cout<< la suma es :;
96
cout<<
<<s;
}
int suma(int x, int y)
{ int s;
s= x + y;
return s;
}
void main( )
{ int (r, p);
cout<<digite dos nmeros enteros;
cin>>r>>p;
97
clrscr( );
sum= suma(r,p);
imprime(sum);
cout<<termin;
getch( );
98
{ int resultm;
resultm = inumero1 * inumero2;
return resultm;
}
void squar ( int k )
{
iglobal = k * k;
}
101
void func1 ( )
{ int temp;
temp = cuenta;
func2 ( );
printf(cuenta es %d, cuenta); /* imprime 100*/
}
void func2 ( )
{ int cuenta;
for(cuenta=1;cuenta<10;cuenta++)
putchar(.); }
103
}
f1 (int n)
{ printf(%d, n);
return 0; }
f2 ( )
{ printf (es lo digitado);
return 0;
}
105
106
107
CADENAS
Se usan para guardar textos.
El C++ no tiene un tipo de dato string.
Se construyen las cadenas carcter por carcter.
#include <string.h>
void main ( )
{ char ejem[100];
strcpy(ejem, ABC);
cout<<ejem<<\n; }
108
109
110
void contenido( )
{ char cad[30];
int x;
for(x=0;x<3 && strcmp(cad,clave);++x)
cin >>cad;
if(x= = 3) cerrar( );
}
Nota: strcmp devuelve 0 si son iguales.
El siguiente for elimina los espacios en blanco de una
cadena apuntada por cad.
for(; *cad= = ;cad++)
111
ARREGLOS
Un arreglo es una estructura homognea de datos
almacenados en forma consecutiva en la memoria.
Para definir un arreglo se debe especificar el tipo de
datos que contiene.
Se debe especificar un nombre que identificara al
arreglo.
Se deber especificar el nmero de elementos que
tendr el arreglo.
113
Ejemplo de arreglo:
int total[8]
int j[25]
Para hacer referencia a uno de los elementos del
cin>>num[i];
} clrscr( );
cout<<el arreglo ingresado es;
for (i=0;i<n;i++ )
cout<<num[i];
for(i=0;i<n;i++)
for(j=i+1;j<n;j++)
if (num[i]>num[j])
{
117
int aux=num[i];
num[i]=num[j];
num[j]=aux;
}
cout<<\n el arreglo ordenado es: ;
for(i=0;i<n;i++)
cout<<num[i]<<
getch( );
}
118
void ver( );
void ordenar ( );
void buscar ( );
int p[20][20];
int i,j,m,n;
void main( )
{int p;
char resp;
cout<<Este programa una vez digitado los datos;
cout<<muestra los datos en intervalos de 5 seg;
120
sleep(2);
do
{ cout<<\nDigite el numero de columnas;
cin>>n;
cout<<\nDigite el numero de filas:
cin>>m;
cout<<\nDesea digitar los datos o que se
aleatoriamente;
cout <<\nSi es aleatoriamente digite: a;
cout<<\nSi es manual digite: m;
creen
121
cin>>resp;
if(resp==m) { leer( ); }
if(resp==a) { leer2( ); }
cout<<\nLa matiz digitada es:;
ver( );
sleep(4);
ordenar( );
cout\nLa matriz ordenada por columnas es:;
ver( );
sleep(4);
122
mnimo;
buscar( );
cout<<\nDesea reiniciar el proceso s/n;
cin>>resp;
sleep(1);
}
while(resp==s); }
void leer( )
{ cout<<\n\n\n;
123
for(i=0;i<n;i++)
{for(j=0;j<m;j++)
{cout<<Digite los elementos de A<<
i+1<<,<<j+1<< ;
cin>>p[i][j];
}
}
}
void leer2 ( )
{ int r,a, x,s;
124
cout<<\n\n\n;
for(i=o; i<n; i++)
{ for(j=0; j<m; j++)
{ randomize( ):
a=rand( );
x=a;
r=x%250;
p[i][j]=r;
}
}
}
125
void ver( )
{ for(i=0;i<n;i++)
{ for(j=0;j<m;j++)
{ cout<<p[i][j];\\
}
}
}
void ordenar( )
{ int aux, k;
for( i=0;i<n;i++)
126
{ aux=p[i][k];
p[i][k]= p[i][j];
p[i][j]=aux;
}
}
}
}
127
void buscar ( )
{ int max, min;
max=min=p[0][0];
for (i=0;i<n;i++)
{ for (j=0;j<m;j++)
{ if( p[i][j] > max)
{ max= p[i][j];}
if(p[i][j]< min)
{ min = p[i][j];}
}
}
128
{ int t [10], i;
for (i=0; i<10; i++)
t[i] = i;
mostrar (t);
}
void mostrar( int num[ ])
{ int i:
for (i=0; i<10;i++)
printf(%d, num[i]);
}
130
);
{ printf (%d,t)
cin>>texto[t];
if(! *texto[t]) break; /*termina si lnea en blc
}
/*muestra el texto carcter por carcter */
for (i=0; i<t; i++)
{ for (j=0; texto[i][j]; j++)
printf(%c, texto[i][j]);
printf(%c, \n);
}}
138
PUNTEROS
Un puntero es una variable que contiene una direccin
de memoria. Normalmente esa direccin es la
posicin de otra variable de memoria.
Por ejemplo, si una variable en la posicin 1004 est
apuntada por otra variable situada en la posicin
1000, esa posicin 1000 contendr el valor 1004.
VARIABLE PUNTERO.- Si una variable va a
contener un puntero, entonces tiene que declararse
139
140
OPERADORES DE PUNTEROS
Existen dos operadores especiales de punteros & y *.
El & es un operador que devuelve la direccin de
memoria de su operando. Por ejemplo:
m = &cuenta
pone en m la direccin de memoria de la variable
cuenta. La direccin no tiene nada que ver con el valor
de la variable cuenta.
Suponga que la variable cuenta utiliza la posicin
141
#include <fstream.h>
void main( )
{ int cuenta, q;
int *m;
cuenta = 100;
m = &cuenta /*recibe la direccin*/
q = *m /*se asigna a q el valor de cuenta*/
cout<<q;
getch ( );
}
143
ARITMETICA DE PUNTEROS
Existen slo dos operaciones aritmticas que se
pueden usar, la suma y la resta.
Sea p1 un puntero a un entero con valor actual de
2000 y asumamos que los enteros son de 2 bytes de
longitud. Despus de la expresin p1++, p1
contiene 2002 y no 2001. Cada vez que se
incremente p1, apunta al siguiente entero. Lo mismo
ocurre en el decremento.
144
void main ( )
{ int inum1=2, inum2=3, iresult;
int* pnum1;
int* pnum2;
pnum1 = &inum1;
pnum2 = &inum2;
iresult = *pnum1 + *pnum2;
cout<<El resultado es \n;
cout<<iresult<<\n;
}
145
/* se ha encontrado*/
do
cout<<un numero (-1 ->terminar, 0 ->sacar;
cin >>valor;
if(valor !=0) guardar(valor);
else cout <<este es el << saca( );
}
while (valor != -1);
}
151
Punteros y arrays.
Char cad [80] , *p1;
p1 = cad;
p1 a sido asignado a la direccin del primer elemento
del arreglo cad. Para acceder al quinto elemento se
puede codificar:
cad[4]
o
*(p1+4)
Punteros y arrays de caracteres.int strcmp (char *s1, char *s2)
{ while (*s1)
154
if (*s1 - *s2)
return (*s1 - *s2);
else
{ s1++;
s2++;
}
return 0;
Recuerde que en C todas las cadenas terminan en cero,
que es un valor falso, por lo que el while (*s1) es
cierto mientras que no se llegue al final de la cadena
155
ESTRUCTURAS
El C/C++ permiten declarar sus propias tipos de datos.
//Declaracin de la estructura.
#include <iostream.h>
#include <fstream.h>
#include<string.h>
struct mi-estructura
{
156
char snom[100];
int edad;
};
void name( )
{
mi-estructura m-estruc;
strcpy(m-struc.snom, David);
m-struc.edad = 12;
cout<<Mi nombre es;
cout<<m-struc.snom;
157
float costo;
int saldo;
} info_inv[max];
void inicializa_lista(void), listar( ), borrar( );
void introduce(void);
int menu(void), busca_libre(void);
void main( )
{ char opcion;
inicializa_lista( );
for(; ;)
{ opcion = menu ( )
switch (opcion)
{ case 1: introduce ( ); break;
159
int c;
cout<<\n;
cout<<1.- Introducir un articulo \n;
cout<<2.- Borrar un articulo \n;
cout<<3.- Listar el inventario \n;
cout<<4.- Salir \n;
do
{cout<<\n Digite su opcion:
;
cin>>s;
c=atoi (s) /*convierte la cadena a la que se apunta en
un valor int. La cadena debe contener un valor entero
*/
162
163
if(sitio = = -1)
{ cout << lista llena;
return; }
cout <<digite articulo\n;
cin>>info_inv[sitio].nombre;
cout<<digite costo\n;
cin>>info_inv[sitio].costo;
cout<<digite cantidad disponible\n;
cin>>info_inv[sitio].saldo;
}
164
char s[80];
cout<<digite el numero de registro\n;
gets(s);
sitio= atoi(s);
if(sitio>=0 && sitio<max)
info_inv[sitio].nombre[0] =\0;
}
void listar ( )
{ register int t;
for(t=0;t<max;++t)
166
{ if (info_inv[t].nombre[0]
{cout <<articulo <<info_inv[t].nombre<<\n;
cout<<costo <<info_inv[t].costo<<\n;
cout<<saldo <<info_inv[t].saldo<<\n;
}
}
}
167
ARCHIVOS
Es un concepto lgico que puede ser aplicado desde
un archivo hasta un terminal.
Se asocia un flujo con un archivo, realizando la
apertura del archivo, De esta forma puede fluir la
informacin entre ste y el programa.
fopen ( ).- Permite abrir un flujo y asociarlo a un
archivo. Por ejm si se desea abrir un archivo llamado
totales de modo escritura:
168
fp = fopen(totales, w)
donde fp es una variable de tipo FILE y w es el modo.
Para poder detectar un error al abrir un archivo se debe
codificar de la siguiente manera:
if ((fp=fopen(totales,w))= = NULL)
{ cout<<no se puede abrir el archivo\n;
exit(1); }
NULL es una macro definida en stdio.h
Si se utiliza fopen para un archivo para escritura,
cualquier archivo que ya exista con ese nombre se borra
y se abre; si no existe se crea.
169
Modo
Significado
#include <stdio.h>
void main (int argc, char *argv[ ] )
{ File *fp;
char car;
if(argc != 2)
{ cout<<no digit el nombre del archivo\n;
return 1; }
if(( fp = fopen(argv[1], w))= = NULL
{ cout<<no se pudo abrir el archivo\n;
return 1 ; }
174
do
{ car = getchar ( );
putc (car, fp); }
while (car != $);
fclose (fp);
return 0;
}
175
PROGRAMACION ORIENTADA A
OBJETOS
La programacin orientada a objetos es
una nueva
forma de enfocar el trabajo de la programacin.
La programacin orientada a objetos toma las mejores
ideas de la programacin estructurada y las combina
con nuevos y poderosos conceptos que animas o
alientan una nueva visin de la programacin.
OBJETOS.- Un objeto es simplemente una entidad
lgica que contiene datos y un cdigo que manipula
estos datos.
176
void setra(void);
void getra( void);
-circulo( );
private:
void calcularea(void);
int radio;};
La palabrea reservada class es una indicacin para el
compilador que lo que viene entre llaves pertenece a
la declaracin de la clase.No olvide incluir ; al final
de la declaracin. Esta declaracin debe contener la
declaracin de los datos miembros
179
(destructor)
180
EJEMPLO S DE PROGRAMAS
CON CLASES
#include <iostream.h>
class circulo
{ public:
circulo (int r); //CONSTRUCTOR
void setradio(int r);
void disparea(void);
~circulo( );
//DESTRUCTOR
182
private:
float calcularea(void);
int radio;
};
// FUNCION CONSTRUCTOR
circulo: : circulo( int r )
{ radio = r;
}
// FUNCION DESTRUCTOR
circulo: : ~circulo( )
{
}
183
//FUNCION DISPAREA
void circulo: :disparea( void )
{ float farea;
farea = calcularea ( );
cout<<El rea del circulo es<<farea<<\n;
}
//FUNCION CALCULAREA
float circulo: : calcularea (void)
{ float f;
f = (float) (3.14 * radio * radio);
184
return f;
void main ( )
{
185
if(ppio= =100) {
cout<<la cola est lena;
return;
ppio++:
c[ppio]= i;
189
}
}
{
// crea dos objetos cola
190
191
en el men File.
2.- Seleccione C/C++ Header File en la lista de
tipos de proyectos.
3.- Digite un nombre en el cuadro File Name
con extensin h.
4.- Haga click en OK.
5.- Se desplegara la ventana para digitar la
declaracin de la clase y sus funciones
miembro.
194
//circulo.h
class circulo
{ public:
circulo(int r);
void setradio(int r);
void disparea(void);
~circulo( );
private:
float calarea(void);
int radio;
};
195
circulo::circulo(int r)
{ radio=r;
circulo::~circulo ( )
{
}
void circulo::disparea(void)
{ float area;
area=calarea( );
cout<<esta es el rea<<area; }
float circulo::calarea(void)
{ float f; f=(float) (3.14*radio*radio);
return f; }
196
micirculo.disparea ( );
cout<<\n;
tucirculo.disparea ( );
cout<<\n;
sucirculo.disparea ( );
cout<<\n;
}
198
PARAMETROS
PREDETERMINADOS
Una de las caractersticas del C++ es el de poder utilizar
parmetros predeterminados en el prototipo de las
funciones.
Int totales(a=10,b=20,c=30,d=40)
Desde el main se puede ejecutar esta funcin de las
siguientes maneras:
main( )
{ ..........
.........
199
int resultado;
resultado = totales;
tambin podra ser de la siguiente manera:
main( )
{ .......
.......
int resultado;
resultado = totales(50, 80);
En el primer caso asume los valores asignados en el
prototipo, y en el segundo los completar con los dos
ltimos.
200
JERARQUIA DE CLASES
El C++ le permite crear una nueva clase a partir de
una clase original.
A la clase original se le llama clase base y a la que se
crea se le llama clase derivada.
La clase derivada hereda los datos y funciones
miembro de su clase base
Cuando se crea una clase derivada se puede adicionar
otras funciones y datos miembro.
201
#include <iostream.h>
class rectangulo
{ public:
rectangulo(int b, int h); //Constructor
void disparea(void );
~rectangulo( );
//Destructor
int base; int altura;
};
//Declaracin de la clase derivada nrectangulo
class nrectangulo : public rectangulo
202
{ public:
nrectangulo(int b, int h)
void setbase (int b);
void setaltura(int h);
~nrectangulo( );
};
rectangulo::rectangulo(int b, int h)
{ base = b;
altura = h;
}
rectangulo::~rectangulo( )
{ }
203
void rectangulo::disparea(void)
{ int area;
area = base * altura;
cout<<el rea es <<area<<\n; }
nrectangulo::nrectangulo(int b,int h):rectangulo(b,h)
{ //Constructor de la clase derivada que se efecta
ejecutando el constructor de la clase base :
(rectangulo)
}
nrectangulo::~nrectangulo( )
{
}
void nrectangulo::setbase(int b)
{ base = b; }
204
void nrectangulo::setaltura(int h)
{ altura = h;
void main ( )
{ nrectangulo mirectangulo (10,20);
mirectangulo.disparea( );
mirectangulo.setbase(100);
mirectangulo.setaltura(20);
mirectangulo.disparea( );
}
205
Ejm
a
b
c
d
e
g
207
USO DE APUNTADORES A
OBJETOS
En muchos casos es necesario utilizar apuntadores a
objetos. Utilizando como base el programa anterior,
vea como cambia la funcin main.
void main( )
{ nrectangulo mirectangulo (10,20);
nrectangulo* pmirectangulo = &mirectangulo;
pmirectangulo->setbase (100);
208
pmirectangulo->setaltura (20);
pmirectangulo->disparea ( );
}
Nota: El nombre de la funcin miembro est separado
del apuntador al objeto con el carcter ->.
En la instruccin:
nrectangulo* pmirectangulo = &mirectangulo
la direccin del objeto mirectangulo es asignada al
puntero pmirectangulo.
209
DISEO VISUAL
Seleccione la opcin Workspace del men View.
Estando en la pantalla Developer Studio haga click en
el botn Resource View (inferior izquierda).
Haga click en el signo + de Resources que aparece
acompaado con el nombre que le asigno al proyecto
(izquierda de la pantalla). Mostrar los elementos que
contiene.
Haga click en el + del elemento Dialog.
213
217
221
APERTURA DE UN PROYECTO YA
EXISTENTE
Ingrezar al C++.
Seleccione Open Workspace del men File.
Utilizar el cuadro de dialogo del Open para seleccionar
el archivo que contiene el proyecto.
Haga click en el botn Resource View.
Una forma alternativa de abrir un proyecto en el que se
est trabajando recientemente es selecionando Recent
Workspace(File) y seleccionar el que desee.
222
225
ADICION DE VARIABLES A
CONTROLES EDIT Y CHECK
Estas variables se utilizan para la lectura y escritura
de datos desde y hacia los controles.
Seleccione Class Wizard del men View
Seleccione Member Variables.
Seleccione de Conntrol Ids, el objeto con el que va
ha trabajar
Haga click en el botn Add Variable
226
227
INICIALIZACION DE CONTROLES
En algunos casos es necesario que algunos controles
estn inicializados, es decir que muestren en la
pantalla un check o una x, para lograrlo efecte lo
siguiente:
Seleccione Class Wizard del men View.
Seleccione Message Maps.
Seleccione en Objects Ids el objeto con el que va ha
trabajar.
228
231