Sunteți pe pagina 1din 26

25

Instituto Politcnico Nacional


Escuela Superior de Ingeniera
Mecnica y Elctrica
unidad Zacatenco

Apuntes de programacin orientada a objetos

Profesora: America
Grupo: 2CM3

Alumno:
Hernndez Nicols Jos Eduardo

25

Contenido
Arreglos de caracteres...................................................................................... 14
Arreglos de nmeros......................................................................................... 16
Bibliografa............................................................................................................ 3
Cadenas de caracteres...................................................................................... 14
Definicin de funciones..................................................................................... 11
Estructura de los programas en C/C++......................................................................4
Estructuras anidadas........................................................................................ 17
Funciones de usuario........................................................................................ 10
Regresar valor................................................................................................... 11
Temario................................................................................................................ 3
Tipos Estructurados: struct............................................................................... 16
UR1.cpp............................................................................................................... 4
UR11................................................................................................................. 16
UR2.cpp.............................................................................................................. 9
UR3.cpp.............................................................................................................. 9
UR4 // programa Pacman.................................................................................. 12
UR5................................................................................................................... 13

Programacin orientada a objetos

TEMARIO
1.
2.
3.
4.
5.

Fundamentos de programacin orientada a objetos.


Clases y funcin miembro.
Herencia y polimorfismo.
Plantillas.
Aplicaciones.

Bibliografa
1. C/C++, curso de programacin, 2da. Ed. Fco. J. Ceballos, Alfaomega.
2. Enciclopedia del lenguaje C++, 2da. Ed. Fco. J. Ceballos, Alfaomega.

3.
4.
5.
6.
7.
8.

Programacin orientada a objetos, 2da. Ed. Fco. J. Ceballos, Alfaomega.


Programacin orientada a objetos, 3da. Ed. Fco. J. Ceballos, Alfaomega.
Aprenda y practique C++, 2da. Ed. Jamsa, Oxford.
Resolucin de problemas con C++ 2da. Ed. Savitch, Pretice Hall.
Visual C++,NET, Pappas y Murray, Mac Graw Hill.
Enciclopedia de Visual C++, 2da Ed. Fco. J. Ceballos, Alfaomega.

REPASO

Estructura de los programas en C/C++

Libreras.
Definicin de constantes o macros.
Declaracin de variables globales.
Definicin o declaracin de funciones de usuario.
Funcin principal
void main ( )
{
}

UR1.cpp

//Instruccin bsica obligatoria para todos los programas en C++.


void main ( )
{
}
La estructura/sintaxis de las funciones es:
tipo de dato
void

nombre de la funcin
main

(lista de parametros)
()

Cuando la funcin no es void, se tiene que agregar un return.


En turbo C
void main (void)
{
}
O
int main (void)
{
return 0;
}
UR1_1.cpp
#include <iostream.h>
#include stdio.h
Int main ( )
{
printf(Texto en pantalla);
cout<<Texto en pantalla con cout;
return 0;
}

En Dev C++ y En Visual C++

int main ( )
{
return 0;
}

UR1_2.cpp
#include <iostream.h>
#include <stdio.h>
const double PI=3.141592
int main ( )
{
cout<<Pi=<<PI;
return 0;
}

#include <iostream.h>
#include <stdio.h>
#define PI 3.141592 //macro
int main (void)
{
printf(PI=%f,PI);
Return 0;
}

MACRO: Es un pedazo de cdigo que es sustituido por una variable.


#define PI 3.141592
#define p printf
int main ( )
{
p(PI=%f,PI);
return 0;
}

Estructura bsica
- Libreras
- Definicin de macros.
- Declaracin de variables globales.
-Definicin/declaracin de usuario
Declaracin de la funcin definida.
- Funcin principal
Int main ( )
{

#define T printf(Presione una tecla


para finalizar);getch()
int main ( )
{
P(PI=%f,PI);
T;
return 0;
}

Return 0;
}
UR1_4
#include <iostream>
#include<graphics>
using namespace std;
#define Azul BLUE
#define Rojo RED
Int main ( )
{
initwindow(800,600,Programa colores);
setcolor(Rojo);
circle(100,100,30);
getch();
closegraph();
return 0;
}
Intrucciones del lenguaje C++
if. Sirve para realizar preguntas de manera que la respuesta sea un SI o un NO.
switch. Sirve para evaluar una respuesta, donde esa respuesta puede ser un
nmero o un caracter.
Ciclos for, while, do while. Sirve para repetir/iterar una o ms instrucciones.

Sintaxis

If anidados

if( preguntas)
-instrucciones del SI

If (pregunta)
-SI
else if(pregunta)
if(pregunta)
-SI
else NO
else -NO

else
-instrucciones del NO
Se puede omitir el if pero no el else

if( )
-SI
Ejemplo:
if (10 > 11)
cout<<11 es el mayor;//break por falta de respuesta que abra el SI
else cout<<10 no es el mayos;
switch(car)
{
case A: cout<<Hola grupo 2CM3;
Instrucciones
break;
case S: break;

cout<<Programa terminado;

default: cout<<Opcin no valida;


}
Ciclos
for(condicin inicial; condicin final; incremento o decremento)
Ejemplo:
for( i =1; i == 10; i ++)
{
cout<<i;
cout<<endl;
<- \n
}
Nota: Para ms de una instruccin se debe usar llaves {}

Condicin inicial;
While (condicin final)
-instrucciones
-incremento o decremento
Ejemplo:
i =1;
while(i == 10)
{
cout<<i<<endl;
i ++;
}

do while
condicin inicial
do{
//Puede estar donde sea la condicion inicial, pero
adentro vuelve a tener
condicin inicial
el mismo valor, depende del programa.
Instrucciones
Incremento o decremento
}while(condicin final)
Ejemplo:
i =1;
do{
cout<<i <<endl;
i ++;
}while(i == 10);

UR2.cpp
#include <iostream>
#include <stdio.h>
#include <graphics.h>
int main ()
{
int x;
int y;
initwindow(640,480,"Dibuja
puntos");
x=10;
y=10;
UR3.cpp

for(x=10;x<=600;x++)
{
putpixel(x,y,RED);
}
system("pause");
closegraph();
return 0;
}

#include <iostrean>
#include <conio2.h> // graphies.h

case 80: clrscr();


gotoxy(x,y++);
cout<<"*";
break;

using namespace std;


int main () //auttextxy(x,9,11*)
{
int x=40,y=24;
char f;
//initwindow(800,600,"Program");
gotoxy (x,y); //moveto(x,y);
cout<<"*"; //outtext("*");
do{
getch ();
f=getch();

case 77: clrscr();


gotoxy(x++,y);
cout<<"*";
break;
case 75: clrscr();
gotoxy(x--,y);
cout<<"*";
break:

switch (f) clrscr(); //clearderice();


{
case 72: clrscr();

case 27: break:


}
} while (f!=27);
return 0;

gotoxy(x,y--);//outtextx,y--"*");
cout<<"*";
break;

Funciones de usuario
Sintaxis:
Tipo de dato

Nombre de la funcin (lista de parmetros o argumentos)

Tipos de datos
Los tipos de datos en C++
Primitivos
Tipo:
Char
Int
Float
double

1 bit 0 sist . binario


1

S.O 16 bits

S.O 32 bits

1 byte
2 bytes
4 bytes
8 bytes

2 bytes
4 bytes
8 bytes
16 bytes

8 bits byte

0 sistema octal 0 sistema decimal 0 sistemahexadecimal


9
9
F

S.O. 64 bits
215 214 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22 21 20

int

2 bytes

float

4 bytes

231 230 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22 21 20

double 8 bytes

263 262 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22 21 20

Para excluir el tipo se usa void


Ejemplo:
int suma (void)
void suma (void)
{
int x,y,z;
x=10;
y=9;
z=x+y;
cout<<La suma es: <<z;
}
Regresar valor
Siempre que una funcin sea distinta de void debe regresar con return el
mismo tipo de dato de la funcin.
Ejemplo:
int suma (void)
{
int x,y,z;
x=10;
y=20;
z=x+y;
cout<<La
suma es: <<z;
Definicin
de funciones
return (z);
void
} suma (void)
{

int suma (void)


int main (void)

int x,y,z;
x=10;
y=20;
z=x+y;
cout<<La suma es: <<z;
}
int main ();
{
suma();
return 0;
}

int main ();


{
int R;
R=suma();
return 0;
}
int suma(void)
{
int x,y,z;
x=10;
y=20;
z=x+y;
return (z);
}

UR4 // programa Pacman


#include <iostream>
#include <graphics.h>
#define Esc 27
#define Arriba 72
#define Abajo 80
#define Der 77
#define Izq 75
void
void
void
void
void

Pacman_Der (int x,int y);


Pacman_Izq (int x,int y);
Pacman_Arr (int x,int y);
Pacman_Aba (int x,int y);
Fantasma ();

int main ()
{

{
char f;
int x=50;
int y=400;
initwindow(800,600,"Pacman");
Fantasma();
Pacman_Der(x,y);
do {
getch();
f=getch();
switch(f)

case Esc: break;


case Arriba: cleardevice();
Fantasma();
if(y >= 50)

}while (f!=Esc);
system("pause");
closegraph();
return 0;

Pacman_Arr(x,y-=5);
}
else

Pacman_Arr(x,y);
break;

case Abajo: cleardevice();


Fantasma();
if(y <= 550)
{
Pacman_Aba
(x,y+=5);
}
else Pacman_Aba

void Pacman_Der (int x, int y)


{
setcolor(YELLOW);
setfillstyle (1,YELLOW);
pieslice(x,y,45,315,40);
}
void Pacman_Izq (int x, int y)
{
setcolor(YELLOW);
setfillstyle (1,YELLOW);
pieslice(x,y,210,150,40);
}

(x,y);
break;
case Der: cleardevice();
Fantasma();
if(x <= 850)
{
Pacman_Der(x+=5,y);
}
else
{
x=0;
Pacman_Der(x+=5,y);
}
break;
case Izq: cleardevice();
Fantasma();
if(x >= -20)
{
Pacman_Izq(x=5,y);
}
else
{
x=850;
Pacman_Izq
(x,y);

void Pacman_Arr (int x, int y)


{
setcolor(YELLOW);
setfillstyle (1,YELLOW);
pieslice(x,y,120,60,40);
}
void Pacman_Aba (int x, int y)
{
setcolor(YELLOW);
setfillstyle (1,YELLOW);
pieslice(x,y,315,240,40);
}
void Fantasma ()
{
int x=500;
int y=400;
setcolor(RED);
setfillstyle (1,RED);
pieslice(x,y,0,360,35);
setcolor(BLACK); //BOCA
setfillstyle (1,BLACK);

}
break;
pieslice(x+3,y,0,360,25);
setcolor(RED);
setfillstyle (1,RED);
pieslice(x+3,y-5,0,360,27);
setcolor (WHITE); //OJO IZQ
setfillstyle(1,WHITE);
pieslice(490,395,0,360,12);
setcolor (BLACK);
setfillstyle(1,BLACK);
pieslice(490,395,0,360,5);
setcolor (WHITE);
//OJO DER
setfillstyle(1,WHITE);
pieslice(520,395,0,360,12);
setcolor (BLACK);
setfillstyle(1,BLACK);
pieslice(520,395,0,360,5);
}

UR5
#include<iostream>
#include<conio2.h>
#include<cstdlib>
#include<stdlib.h>
#include<windows.h>

else
{
textcolor(n);
x=rand()%80;
y=rand()%25;
gotoxy(x,y);
cout<<"*";
Sleep(10);

using namespace std;


int main ()
{
int x,y,n;
clrscr();
srand(time(NULL));
for(n=1;!kbhit();n++)
{
if(n>15)
n=1;

}
}
return 0;
}

Arreglos de caracteres
char name [10]
0
8
name

1
9

\n Salto de lnea
\r Enter

name [4]=getch();
o
cin>>name[4];

\a Pitido
\b barra de retroceso

UR6
#include <iostream>
#include <conio2.H>
using namespace std;
int main ()
{
//int i;
//i=0
char name [10];
system("cls");
/*
*/
name[0]='A';
name[1]='N';
name[2]='A';
cout<<"Nombre: "<<name[0]<<name[1]<<name[2];
getch();
return 0;
}

UR6_1
#include <iostream>
#include <conio2.H>
using namespace std;
int main ()
{
int i;
i=0;
char name [10];
clrscr();
cout<<"\n\n\t Escribe un nombre:";
do
{
name[i]=getche();
}while (name [i++]!='\r');
cout<<"\n\n\tEl nombre es: ";
i=0;
do
{
cout<<name[i];
}while (name [i++]!='\r');
getch();
return 0;
}
UR7
#include <iostream>
#include <conio2.h>
using namespace std;
int main ()
{
char name[10];
char papel[10];
char sapel[10];
char nombre[50];
system("cls");
cout<<"\n\tNombre: ";
cin>>name;
cout<<"\n\tApellido Paterno: ";
cin>>papel;

cout<<"\n\tApellido Materno: ";


cin>>sapel;
cout<<"\n\tEl primer nombre es: "<<name<<" "<<papel<<"
"<<sapel<<endl;
cin.ignore();
cout<<"\n\tDame otro nombre: ";
cin.get(nombre,50);
cout<<"\n\tEl segundo nombre es: "<<nombre;
getch ();
return 0;
}

Cadenas de caracteres
La diferencia de arreglo y cadena es el NULL
Son un conjunto de caracteres de manera secuencial, al final debe existir un
carcter especial llamado nolo (NULL) \0.
C++
cin>> name; // sin espacios en blanco.
cin.get(name,10); //con espacios.
C
gets(name);
scanf(%s,name);

name[0]=A
name[1]=N
name[2]=A
name[3]=\0

\
0

Programa en clase para 2 puntos

#include <iostream>
#include <conio2.h>
using namespace std;
Int main ();
{
int i=0;
char usu[10];
char pass[10];
gotoxy(15,20);
cout<<usuario;
cin.get(usu,10);
cout<<\n\n\tpassword:
while((pass[i]=getch())!= \r)
i++;
cout<<\nusu<<usu<<pass\n\n<<endl;
for(i=0; i<10; i++)
cout<<pass[i];
return 0;
}

UR8
#include <iostream>
#include <conio2.h>
using namespace std;
int main ()
{
int i=0;
char usu[10];
char pass[10];
cout<<"\n\n\tUsuario: ";
cin.get(usu,10);
cout<<"\n\n\t\tPassword: ";
/*while(pass[i]=getch() !='\r')
i++;*/
for(i=0;i<10;i++)
cin>>pass[i];
cout<<"\n\tUsuario: "<<usu<<"\n\n\tPassword: ";
for(i=0;i<10;i++)
cout<<pass[i];

getch();
return 0;
}
UR9
#include <iostream>
#include <graphics.h>
using namespace std;
int main( )
{
initwindow( 640 , 480 , "WinBGIm" );
setfillstyle(1,RED);
bar(300,100,450,150);
int i;
int x=300;
int y=100;
i=0;
char name [10];
cout<<"\n\n\t Escribe un nombre:";
do
{
setcolor(BLUE);
moveto(x,y);
name[i]=getch();
name[i+1]='\0';
outtext(name);
// x+=10;
}while (name [i++]!='\r');
getch();
closegraph( );
return( 0 );
}

UR10
Arreglos de nmeros

Puede ser float, double y nombre que sea.


Int vect[10]; 2 bytes por celda

Float w[5] ; 4 bytes por celda

Double [3];

8 bytes por celda

UR11
#include <iostream>
#include <conio2.h>
#define f 4
using namespace std;
int main ()
{
float calif [30][4];
char names [30][50];
float suma=0;
char l;
int i,n,j;
clrscr();
cout<<"Cuantos nomeres quieres?
";
cin>>n;
cin.get(l);
for(i=0; i<n; i++)
{
cout<<"Dame el nombre
"<<i+1<<": ";
cin.get(names[i],50);
cin.get(l);
}
for(i=0; i<n; i++)

{
suma=0;
for(j=0; j<3; j++)
{
cout<<"\nDame
calificacion "<<i+1<<": ";
cin>>calif[i][j];
suma=suma+calif[i][j];
}
calif[i][j]=suma/3;
}
clrscr();
cout<<"\nLos datos proporcionados
son:";
j=3;
for(i=0; i<n; i++)
{
cout<<"\n\nNombre:
"<<names[i]<<endl;
cout<<"\nCalificacion final:
"<<calif[i][j];
cout<<"\n";
}
getch();
return 0;
}

UNIDAD I
Tipos Estructurados: struct

Sintaxis:
Struct nomstruct
{
int d;
int a;
char m[10];
}nomvar;

Estructura es un conjunto (ms de 1) de datos de diferente o igual tipo


nombar.d=10;
cin>>nomvar.m;
nombar.a=2013;
cinget(nomvar.names [0],50);
UI1
#include <iostream>
#include <conio2.h>
using namespace std;

cin>>f.m;
cout<<\nAnhos: ;
cin>>f.a;
cout<<\nDame la fecha de hoy: ;
cout<<\nDia: ;
cin>>h.d;
cout<<\n mes: ;
cin>>h.m;
cout<<\nAnho: ;
cin>>h.a;
clrscr();
cout<<"Hoy es:"<<h.d<<"/"<<h.m
<<"/"<<h.a<<endl;
cout<<"otra fecha es: "<<f.d<<"/"
<<f.m<<"/"<<f.a<<endl;
getch();
return 0;

struct flecha
{
int d,a;
char m[20];
}h;
int main()
{
fecha f;
clrscr();
cout<<Dame una fecha: ;
cout<<Dia: ;
cin>>f.d;
cout<<\n mes: ;

Estructuras anidadas
Una estructura anidada es una estructura o ms dentro de otra
sintaxis:
Struct una

Struct dos

Struct dos

int x,y;
}h;

{
char name[50];
Una dentro;

}
h.x;
h.y;

char name[50];
struct una
{
int x,y;
}dentro;
}cajota;

UI2
#include<iostream>
#include<conio2.h>
#include<string.h>

cout<<"\n7.Regresar";
rc=getch();
switch(rc)
{
case '1': clrscr();
cout<<"Nombre:

using namespace std;


struct datos
{
char name[50],dir[80];
char email[80], tel[30];
int edad;
}agenda;
void introduce (void);
void cambio (void);
void eliminar (void);
void introduce (void);
{
char l; //para quitar el enter
cout<<"Itroduce los
datos"<<endl;
cout<<"nombre: ";

";
cin.get(agenda.name,50);
break;
case '2': clrscr():
cout<<"Direccion:
";
cin.get(agenda.dir,80);
break;
case '3': clrscr();
cout<<"Telefono:
";

cin.get(agenda.name,50);
cout<<"Direccion: ";
cin.get(l);// para limpiar el buffer
del teclado
cin.get(agenda.dir,80);
cout<<"Telefono: ";
cin.get(l);
cin.get(agenda.tel,30);
cout<<"email: ";
cin.get(l);
cin.get(agenda.email,80);
cout<<"Edad: ";
cin>>agenda.edad;
}
void cambios (void)
{
char rc;
if(cont!=0)
{
cout<<"Que cambio
deseas?"<<endl;
cout<<"\n1.Nombre";
cout<<"\n2.Direccion";
cout<<"\n3.Telefono";
cout<<"\n4.Email";
cout<<"\n5.Edad";
cout<<"\n6.Todos";

cin.get(agenda.tel,30);
break;
case '4': clrscr();
cout<<"Email: ";
cin.get(agenda.email,80);
break;
case '5': clrscr();
cout<<"Edad: ";
cin>>agenda.edad;
break;
case '6': clrscr();
introduce();
break;
case '7': break;
default: cout<<"opcion
no valida";
}
}
else cout<<"no hay datos";
getch();
}

int main ()
{
char op;
int r;
clrscr();
cout<<"*** Menu ***"<<endl;
cout<<"\n1. Introducir datos";
cout<<"\n2. Cambios";
cout<<"\n3. Borrar ";
cout<<"\n4. Salir";
cin>>r;// op=getch();
switch (r)
{

void borrar (void)


{
}

case '1': clrscr();


introduce();
break;
case '2': clrscr();
cambios();
break;
case '3': clrscr();
borrar();
break;
case '4': break;
default: cout<<"Opcion no
valida";
}
getch();
return 0;

UI3
#include<iostream>
#include<conio2.h>
#include<string.h>

void
void
void
void

introProfe (void);
introAlum (void);
muestraProfe (void);
muestraAlum (void;)

using namespace std;


struct personales
{
char name[50], dir[80], tel[30];
int edad;
};
struct prof
{
personales pers;
char cat[30],materia[30];
float salario;
}docente;

int main ()
{
clrscr();
introProfe();
introAlum();
muestraProfe();
muestraAlum();
getch();
return 0;
}

struct alumno
{
personales al;
char bol[30],carrera[30];
char gpo[20],saln[20];
float prom;
}alumno;

void introProfe (void)


{
char l;
cout<<Nombre profesor: ;
cin.get(docente.pers.name,50);
cout<<\nDireccion: ;
cin.get (l);
cin.get(docente.pers.ir,80);

cout<<\n Promedio: ;
cin>>alumno.prom;
}
void muestaProf (void)
{
clrscr();
cout<<\nLos datos del profesor

cout<<\n Tel: ;
cin.get (l);
cin.get(docente.pers.tel,30);
cout<<\n Edad: ;
cin>>docente.pers.edad;
cout<<\nCategoria: ;
cin.get(l);
cin.get(docente.cat, 30);
cout<<\n salario: ;
cin>>docente.salario;
}
void introAlum (void)
{
char l;
cout<<Nombre del alumno: ;
cin.get(l);
cin.get(alumno.name, 50);
cout<<\nDireccion: ;
cin.get(l);
cin.get(alumno.al.dir,80);
cout<<\n Telefono: ;
cin.get(l);
cin.get(alumno.al.tel,30);
cout<<\n edad: ;
cin>>alumno.al.edad;
cout<<\n Boleta: ;
cin.get(l);
cin.get(alumno.bol,30);
cout<<\n Carrera: ;
cin.get(l);
cin.get(alumno.carrera,30);
cout<<\nGrupo: ;
cin.get(alumno.gpo,20);
cout<<\n Salon: ;
cin.get(l);
cin.get(alumno.salon,20);

son: ;
<<\nNombre:
<<docente.pers.name
<<\nDireccion:
<<docente.pers.dir
<<\nTelefono:
<<docente.pers.tel
<<\nEdad:
<<docente.pers.edad
<<\nCategoria:
<<docente.cat
<<\nMateria:
<<docente.materia
<<\nSalario:
<<docemte.salario;
getch();
}
void muestraAlum (void)
{
clrscr();
cout<<\nDatos alumno: ;
cout<<\nNombre:
<<alumno.al.name
<<\nDireccion:
<<alumno.al.dir
<<\nTelefono:
<<alomno.al.tel
<<\nEdad:
<<alumno.al.edad
<<\nBoleta: <<alumno.bol
<<\nCarrear:
<<alumno.carrera
<<\nGrupo: <<alumno.gpo
<<\nSalon: <<alumno.salon
<<\nPromedio:
<<alumno.prom;
}

S-ar putea să vă placă și