Apuntes Unidad 1

35
INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE INGENIERÍA MECÁNICA Y ELECTRICA UNIDAD ZACATENCO INGENIERIA EN COMUNICACIONES Y ELECTRONICA LABORATORIO DE COMPUTACION APUNTES DE CLASE GRUPO: 2CM2 ALUMNO: AlCANTARA SANCHEZ ALDO YAIR PROFESORA: GONZALEZ SANCHEZ AMERICA

description

POO

Transcript of Apuntes Unidad 1

Page 1: Apuntes Unidad 1

INSTITUTO POLITÉCNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERÍA MECÁNICA Y ELECTRICA

UNIDAD ZACATENCO

INGENIERIA EN COMUNICACIONES Y ELECTRONICA

LABORATORIO DE COMPUTACION

APUNTES DE CLASE

GRUPO: 2CM2

ALUMNO: AlCANTARA SANCHEZ ALDO YAIR

PROFESORA: GONZALEZ SANCHEZ AMERICA

Page 2: Apuntes Unidad 1

Apuntes repaso y primera unidadEstructura básica de los programas en C++

Librerias Definicion de constantes/macros Definicion de variables globales Definición/declaración de funciones de usuario

Macro.- es un pedazo de código representado por una variable:#define p printf

Las constantes son:#define pi 3.141592, se pueden usar ambos términos y son constantes, ó:

const float m=10.99;Las variables globales se declaran antes del main(), ejemplo:char n;int x;float t;double vector;int main(){//codificación }En C++ se puede usar tanto el commando printf como el comando cout, pero para usar este último se debe declarar debajo de las librerías el comando: using namespace std;.Las variables también se llaman identificadores, inicializar es dar un valor inicial: int a=0;.

Tipos de datos/S.O

16 bits 32 bits 64 bits

char %c 1 byte 1 byte 1 byte

int %d 2 bytes 4 bytes 8 bytes

float &f 4 bytes 4 bytes 4 bytes

double %ld

8 bytes 8 bytes 8 bytes

t_char x 2 bytes x

Tipos de sistemas Sistema binario: es un sistema de numeración en el que los números se representan utilizando solamente las cifras cero y uno (0 y 1).equivale a un byte.Sistema decimal: El sistema de numeración decimal utiliza como base el 10, es decir, que sus agrupaciones se forman de 10 en 10. Es un sistema posicional, ya que las

Page 3: Apuntes Unidad 1

cifras adquieren un valor relativo de acuerdo con el lugar donde se encuentren (0,1,2,3,4,5,6,7,8,9).

Sistema octal: El sistema de numeración octal es un sistema de numeración en base 8, una base que es potencia exacta de 2 o de la numeración binaria. Esta característica hace que la conversión a binario o viceversa sea bastante simple. El sistema octal usa 8 dígitos (0, 1, 2, 3, 4, 5, 6, 7) y tienen el mismo valor que en el sistema de numeración decimal.

Sistema hexadecimal:  Este sistema es de base 16, lo que significa que para cada columna es posible escoger uno de entre 16 dígitos. Éstos son O, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E y F. Para contar en el sistema hexadecimal se inicia en la primera columna a la izquierda del punto hexadecimal y se cuenta desde O hasta F. Una vez que se llena la primera columna, se pone en cero a ella y se suma uno a la segunda columna. Después del 18, 19, lA, 1B, 1C, 1D, lE, lF siguen el 20, 21, y así sucesivamente. Después del 9FFF sigue el A000, etc.

En C++ una variable se puede inicializar en cero sin usar el igual: int x(0);Para finalizar una línea de la codificación se puede usar:

<<endl \n <<”\n”;

Las variables tipo “char” se declaran con comilla sencilla: char n =´Juan´;

Estructura de las funciones de usuarioFunciones de usuario: son procedimiento(un pedazo de codigo) creados por el usuario con cierto formato.SintaxisTipo nomfun (lista de parámetros o argumento, void){//codificación}Ejemplo:#include<stdio.h>#include<iostream>using namespace std;void suma();{//declaracion de la funcion}Ejemplo 2:void suma();

int main(){suma();return 0;}void suma(){//declaracion de la funcion}

Page 4: Apuntes Unidad 1

Ejemplo:Char suma();//devuelve un tipo characterInt main(){ char car; Car=suma();Return 0;}Char suma(){char cad;Return (cad);}

Otro ejemploint suma(int x)//regresa un entero{int y,s;y=20;s=y+x;return(s);/*regresa el valor al main donde fue llamada la function de usuario*/}int main(){int x, sum;x=10;sum=suma(x);return 0;}

Ejemplovoid suma(int x,int y){int s;s=x+y;}int main(){a=20suma(10,a);return 0:}

Otro ejemplo://libreríasint suma(int a,int b);int main(){int x , y ,s;cout<<”dame el valor de x:”;cin>>x;cout<<”dame el valor de y:”;cin>>y;s=suma(x,y);cout<<”la suma de “<<x<<”+”<<y<<”es:”<<s;return 0;}int suma(int a, int b){int s;s=a+b;return 0;}

Page 5: Apuntes Unidad 1

Arreglos de datos Un conjunto de datos (mas de uno) de datos del mismo ´tipo´ arreglos de char/carcteres, secuencialmente.Tipo nomVal[tamaño];char nombre [50]:

Directamente:nombre[0]=´A´;nombre[1]=´n´;nombre[2]=´a´;cout<<nombre[0]; óprintf(“%c”,nombre[1]);

ejemplo:#include<stdio.h>#include<conio.h>#include<iostream>using namespace std;int main(){char name[20];name[0]=;name[1]=;name[2]=;cout<<”el valor”;getch ();return 0;}

Pr1://pide nombre y apellido#include<stdio.h>#include<conio.h>#include<iostream>using namespace std;int main(){ char name[20],apell[30]; cout<< "dame tu nombre: " ; cin>>name;

cout<< "dame tu apellido: "; cin>>apell; printf("\n El nombres es: %s", name); cout<<"\n EL apellido es: "<<apell; getch(); return 0;}

490

nombre

nombre[0]=´A´; nombre[2]=´A´;

Page 6: Apuntes Unidad 1

Pr2://imprime un nombre#include<stdio.h>#include<conio.h>#include<iostream>using namespace std;

int main(){ char name[20]; name[0]='A'; name[1]='l'; name[2]='d'; name[3]='o'; name[4]='y'; name[5]='a'; name[6]='i'; name[7]='r'; cout<<"EL VALOR DE NAME ES: "; cout<<name[0]<<name[1]<<name[2]<<name[3]<<name[4]<<name[5]<<name[6]<<name[7]; getch(); return 0;}

cin: es para capturer o recibir datos proporcionado por el usuario hasta introducer enter.getch(): Es para recibir un carácter, sin terminar con enter. No muestra en pantalla.getche():espera un carácter sin enter pero lo muestra en pantalla.cin>>name;//cadena de caracteres

Caracteres especiales:´\n´= salto de línea´\lr´= enter.´\b´=borrado´\a´=emite un pitido´\0´=carácter nulo(NULL)´\t´=tabulador

Page 7: Apuntes Unidad 1

Arreglos numéricosSintaxis:int vec[5];

553 Cadenas Cadenas de carácterer: son iguales que los arreglos de caracteres pero al final debe llevar un carácter especial llamado nulo (NULL).Sintaxis:char name[50];A [0] N A [49]

Pr3://pide que introduscas un nombre#include<stdio.h>#include<conio.h>#include<iostream>using namespace std;

int main(){ char name[20]; cout<<"DAME TU NOMBRE"; cin>>name[0]; name[0]=getche(); name[1]=getche(); name[2]=getche(); name[3]=getche(); name[4]=getche(); name[5]=getche(); name[6]=getche(); name[7]=getche(); getch(); return 0;}Pr4:// Pide nombre, edad y calificaciones para sacar promedio de estas y lo imprime#include<stdio.h>#include<conio.h>#include<iostream>

Cada caja es de 4 bytes

vec[0]=´A´;

Page 8: Apuntes Unidad 1

using namespace std;int main(){ char name[20],apel[30]; int edad; float calif[3],prom; cout<<"Dame tu nombre: "; cin>>name; cout<<"Dame tu edad: "; cin>>edad; cout<<"Dame tu calif1: "; cin>>calif[0]; cout<<"Dame tu calif2: "; cin>>calif[1]; cout<<"Dame tu calif3: "; cin>>calif[2]; prom=(calif[0]+calif[1]+calif[2])/3; cout<<"\n Los datos proporcionados son: "<<endl; cout<<"\n Nombre: "<<name<<endl; cout<<"\n Edad: "<<edad<<endl; cout<<"\n Calif1: "<<calif[0]<<endl; cout<<"\n Calif2: "<<calif[1]<<endl; cout<<"\n Calif3: "<<calif[2]<<endl; cout<<"\n Promedio: "<<prom<<endl; getch(); return 0;}Ciclos: sirven para repetir/iterar una o más instrucciones.Existen 3 tipos:

for while do while

sintaxis del forfor(condición inicial;condición final; incremento)//para mas de una instrucción se usan llaves

sintaxis del whilecondición inicialwhile(condición final){instrucciones;//Incremento o decremento}//cierre del while

Page 9: Apuntes Unidad 1

Sintaxis de do while:Condicion inicial do{ /*incremento o decremento Instrucciones*/}while(condición final);

Formas de análisis o metodologías para el entendimiento de los ciclos.Diagrama de flujo:

Pseudocodigo:

Pr5:

Page 10: Apuntes Unidad 1

//desplegar numeracion con for#include<stdio.h>#include<conio.h>#include<iostream>using namespace std;

int main() {

int i; for(i=1;i<=100;i++) cout<<i; getch(); return 0; }

Pr6://Desplegar numeracion con while#include<stdio.h>#include<conio.h>#include<iostream>using namespace std;

int main() { int i; i=1;//i=0 while(i<=100) cout<<i++<<",";//++i getch(); return 0; }Pr7://despliega numeración con do while#include<stdio.h>#include<conio.h>#include<iostream>using namespace std;int main() { int i; i=1; do { cout<<i++<<","; } while(i<=100); getch(); return 0;

Page 11: Apuntes Unidad 1

}

Pr8://Desplegar numeracion con while pares#include<stdio.h>#include<conio.h>#include<iostream>using namespace std;

int main() { int i; i=2; while(i<=100) {cout<<i<<",";//++i i=i+2;//i+=2; } getch(); return 0; }

Estructura if: sirven para realizar preguntas, estas deben estar hechas dee manera que la respuesta sea un si o un noSintaxisif(pregunta)respuesta verdaderaelserespuesta falsa

switch: es un switcheador/seleccionador de varias condicionessintaxisswitch(carácter o entero){case 1: ;break;case ´A´: ;break;}

Pr9://mueve asterisco con switch y topes#include<stdio.h>

Page 12: Apuntes Unidad 1

#include<conio2.h>

int main(){ char f; int x,y; x=40; y=12; gotoxy(x,y); printf("*"); do { getch(); f=getch(); clrscr(); switch(f) { //arriba case 72: if (y>1) { gotoxy (x,y--); printf("*"); } else { gotoxy(x,y); printf("*"); } break; //abajo case 80: if (y<25) { gotoxy (x,y++); printf("*"); } else { gotoxy(x,y); printf("*"); }

Page 13: Apuntes Unidad 1

break; //izquierda case 75: if (x>1) { gotoxy (x--,y); printf("*"); } else { gotoxy(x,y); printf("*"); } break; //derecha case 77: if (x<80) { gotoxy (x++,y); printf("*"); } else { gotoxy(x,y); printf("*"); } break;}//fin del switch}while(f!=27);return 0;}

Unidad 1

Programación orientada a objetos

Estructuras: un conjunto de datos (más de uno) de diferente tipo creadas por el usuario. Datos personalizados.

Sintaxis:

Page 14: Apuntes Unidad 1

Struct fecha //en vez de fecha va cualquier nombre {char name[50];char tel[50];int edad;}caja;//nombre de la estructura

Ejemplo:Programa u1p1//muestra fecha con estructura#include <iostream>#include <conio.h>using namespace std;struc fecha{int d;char m [20];int a;}f;void pidefecha (void){cout<<"dame una fecha:"<<endl;cout<< "Dia";cin >> f.d;cout<< "\n Mes:";cin >> f.m;cout<< "\n Año";cin >> f.a;}void muestrafecha (void){cout <<"la fecha proporcionada fue :"<<f.d<<"/"<<f.m<<"/"<<f.a;}int main (){pidefecha ();muestrafecha ();getch();return 0;}

Page 15: Apuntes Unidad 1

Programa 1.1U1p1_1//pide fecha con funciones#include<iostream>#include<conio.h>using namespace std;struct fecha{ int d; char m; int a;} f;void pidefecha(void){cout<<"Dame una fecha:"<<endl; cout<<"Dia:"; cin>>f.d; cout<<"\n Mes:"; cin>>f.m; cout<<"\n Año:"; cin>>f.a;}void muestrafecha(void){cout<<"La fecha proporcionada fue:" <<f.d<<"/"<<f.m<<"/"<<f.a;} int main(){ pidefecha(); muestrafecha(); getch(); return 0;}

Programa u1p1.2uip1_2#include<iostream>#include<conio.h>using namespace std;struct fecha{

Page 16: Apuntes Unidad 1

int d; char m; int a;} f;void pidefecha(void){cout<<"Dame una fecha:"<<endl; cout<<"Dia:"; cin>>f.d; cout<<"\n Mes:"; cin>>f.m; cout<<"\n Año:"; cin>>f.a;}void muestrafecha(void){cout<<"La fecha proporcionada fue:" <<f.d<<"/"<<f.m<<"/"<<f.a;} int main(){ fecha hoy,cumple; muestrafecha(); getch(); return 0;}

Programa u1p2uip2//lo mismo pero dentro del main...#include <iostream>#include <conio.h>using namespace std;struc fecha{int d;char m [20];int a;}f;void pidefecha (void)

Page 17: Apuntes Unidad 1

{cout<<"dame una fecha:"<<endl;cout<< "Dia";cin >> f.d;cout<< "\n Mes:";cin >> f.m;cout<< "\n Año";cin >> f.a;}void muestrafecha (void){cout <<"la fecha proporcionada fue :"<<f.d<<"/"<<f.m<<"/"<<f.a;}int main (){fecha hoy, cumple;pidefecha (); muestrafecha ();cout<< "dame la fecha de hoy :";<< endl;cout << "Dia:";cin >> hoy.d;cout <<"\n mes :";cin>>hoy.m;cout<< "\año: ";cin >> hoy.a ;

getch();return 0;}

Estructuras anidadas: son una estructura dentro de la otra.u1p3 //estructura dentro de otra#include <iostream>#include <conio.h>using namespace std;struct fecha{int d,m,a;};struct datos{

Page 18: Apuntes Unidad 1

char name [50];char dir[80];char tel [20];char email[30];int edad;fechacumple;}agenda;void pidedatos (void){cout<<"dame tu nombre:";cin>>agenda.name;cout<<"dame tu direccion:";cin>> agenda.dir;cout<<"dame tu telefono:";cin >> agenda,tel;cout << "dame tu email:";cin>> agenda.email;cout << "dame tu edad:";cin>>agenda edad;cout<<"dame tu fecha de cumpleaños:";cout<<"\n dia";cin >> agenda.cumple.d;cout <<"\n mes";cin>>agenda.cumple.m;cout<<"\n año";cin>>agenda.cumple.a;}void muestradatos (void){cout<< "los datos son:\n"<< "nombre:"<<agenda.name<<endl<<"direccion:"<<agenda.dir<<endl<< "telefono:"<<agenda.tel<< endl<<"email:"<<agenda.email<<endl<<"edad:"<<ageda.edad<<endl<<"cumpleaños:";<<agenda.cumple.d<< "/"<<agenda.cumple.m <<"/"<<agenda.cumple.a;{int main(){pidedatos();muestradatos();getch();

Page 19: Apuntes Unidad 1

return 0;}

Programa u1p3_1//DATOS AGENDA ANIDADA CON MENU#include<iostream>#include<conio.h>#include<stdlib.h>using namespace std;struct fecha{ int d,m,a; };

struct datos{ char name[50]; char dir[80]; char tel[20]; char email[30]; int edad; fecha cumple;}agenda;

void pideDatos(void){ cout<<"\nDame tu nombre "; cin>>agenda.name; cout<<"Dame tu direccion: "; cin>>agenda.dir; cout<<"Dame tu telefono: "; cin>>agenda.tel; cout<<"Dame tu email: "; cin>>agenda.email; cout<<"Dame tu edad: "; cin>>agenda.edad; cout<<"\nDame tu fecha de cumpleaños: "; cout<<"\nDia: "; cin>>agenda.cumple.d; cout<<"\nMes: "; cin>>agenda.cumple.m; cout<<"\nAño: ";

Page 20: Apuntes Unidad 1

cin>>agenda.cumple.a;}

void muestraDatos(void){ cout<<"\n\tLos datos son: \n" <<"Nombre:"<<agenda.name<<endl <<"Direccion:" <<agenda.dir<<endl <<"Telefono: "<<agenda.tel<<endl <<"Email:"<<agenda.email<<endl <<"Edad:"<<agenda.edad<<endl <<"Cumpleaños: " <<agenda.cumple.d<<"/"<<agenda.cumple.m<<"/"<<agenda.cumple.a; }

void cambios (void){ char rc;do{ cout<<"*****CAMBIOS*****"<<endl; cout<<"1.Nombre."<<endl; cout<<"2.Direccion."<<endl; cout<<"3.Telefono."<<endl; cout<<"4.Email."<<endl; cout<<"5.Edad."<<endl; cout<<"6.Fecha."<<endl; cout<<"7.Regresar al MENU principal."<<endl; cout<<"¿Que cambio desea realizar?"<<endl; rc=getch(); switch (rc) { case '1': cout<<"Dame tu Nombre:"; cin>>agenda.name; break; case '2': cout<<"Dame tu Direccion:"; cin>>agenda.dir; break; case '3': cout<<"Dame tu Telefono"; cin>>agenda.tel; break;

Page 21: Apuntes Unidad 1

case '4': cout<<"Dame tu Email"; cin>>agenda.email; break; case '5': cout<<"Dame tu Edad"; cin>>agenda.edad; break; case '6': cout<<"Dame tu Cumpleaños:"; cout<<"Dia:"; cin>>agenda.cumple.d; cout<<"Mes:"; cin>>agenda.cumple.m; cout<<"Año:"; cin>>agenda.cumple.a; break; case '7': break; default: cout<<"\n Opción Invalida\n"; } muestraDatos(); getch();}while(rc!='7');}int main(){ system("color 2f"); // int r; char r; do { cout<<"1. Introduce."; cout<<"\n2. Muestra."; cout<<"\n3. Cambios."; cout<<"\n4. Salir."; cout<<"\nElige una opción: "; r=getch();

Page 22: Apuntes Unidad 1

switch (r) { case '1': pideDatos(); break; case '2': muestraDatos(); break; case '3': cambios(); break; case '4': break; default: cout<<"\n Opcion NO valida..."; } }while(r!='4'); cout<<"\nPresione una tecla para continuar..."; getch(); return 0;}Programa u1p4//suma dos complejos con estructurasuip4#include<iostream>#include<conio2.h> using namespace std; struct complejo { float r,i; }A,B,C; void pedir(void); void suma(void); int main() { pedir(); suma(); getch(); return 0; } void pedir(void) { cout<<"Dame parte real de A: "; cin>>A.r; cout<<"Dame la parte imaginaria de A: "; cin>>A.i;

Page 23: Apuntes Unidad 1

cout<<"Dame el valor real de B: "; cin>>B.r; cout<<"Dame el valor imaginario de B: "; cin>>B.i; } void suma(void) { C.r=A.r+B.r; C.i=A.i+B.i; cout<<"La suma de\n "<<A.r<<" + "<<A.i<<"i"<<endl <<B.r<<" + "<<B.i<<"i"<<endl <<C.r<<" + "<<C.i<<"i"<<endl; }Programa U1p4_1U1P4_1//Suma de dos numeros complejos con Estructura U1P4_1#include<iostream>using namespace std;struct complejo{ float r,i;};complejo suma(complejo A,complejo B);complejo pedir();int main(){ complejo A,B,C; cout<<"Dame el numero complejo A: \n"; A=pedir(); cout<<"\nDame el numero complejo B: \n"; B=pedir(); C=suma(A,B); cout<<"\nLa suma es: \n"<<A.r<<"+"<<A.i<<"i"<<endl <<B.r<<"+"<<B.i<<"i"<<endl <<C.r<<"+"<<C.i<<"i"<<endl; system("pause"); return 0;}complejo pedir(){ complejo Aux; cout<<"\nDame parte real: "; cin>>Aux.r; cout<<"\nDame parte imaginaria: "; cin>>Aux.i; return(Aux);

Page 24: Apuntes Unidad 1

}complejo suma(complejo A,complejo B){ complejo C; C.r=A.r+B.r; C.i=A.i+B.i; return(C);}

Clases en CSon un conjunto (mas de uno) de datos de diferente tipo, creados por el usuario, además mas funciones. Todas las clases tipo struct se concideran publicas, lo que se alcanza con el punto son publicas.

Programa u1p5://suma dos numeros complejos con clases tipo struct (clases en c)#include<iostream>#include<conio2.h>using namespace std;struct complejo // clase{ float r,i; void pedir() { cout<<"Dame parte real: "; cin>>r; cout<<"Dame parte imaginaria: "; cin>>i; } void suma(complejo A,complejo B) { r=A.r+B.r; i=A.i+B.i;

}};//cierre de la claseint main(){ complejo A,B,C; cout<<"Dame el numero complejo A: \n"; A.pedir(); cout<<"Dame el numero complejo B: \n"; B.pedir(); C.pedir(A,B); cout<<"La suma en: \n"<<A.r<<"+"<<A.i<<"i"<<endl <<B.r<<"+"<<B.i<<"i"<<endl <<r<<"+"<<i<<"i"<<endl; getch(); return 0;}

Struct name

int double

Pedir() Suma()

Datos miembro de la clase o atributos

Funciones miembro de la clase o metodos

Clase

Page 25: Apuntes Unidad 1

Programa u1p5_1:/*suma dos numeros complejos con clases tipo struct (clases en c) con funciones*/#include<iostream>#include<conio2.h>using namespace std;struct complejo // clase{ float r,i; void pedir() { cout<<"Dame parte real: "; cin>>r; cout<<"Dame parte imaginaria: "; cin>>i; } void suma(complejo A,complejo B) { r=A.r+B.r; i=A.i+B.i; } void muestraTodo(complejo A,complejo B)

{cout<<"Lasuma en: \n"<<A.r<<"+"<<A.i<<"i"<<endl <<B.r<<"+"<<B.i<<"i"<<endl <<r<<"+"<<i<<"i"<<endl; }};//cierre de la claseint main(){ complejo A,B,C; cout<<"Dame el numero complejo A: \n"; A.pedir(); cout<<"Dame el numero complejo B: \n"; B.pedir(); C.pedir(A,B); C.muestraTodo(A,B); getch(); return 0;}

Programa u1p5_2/*suma dos numeros complejos con clases tipo struct (clases en c) con funciones*/#include<iostream>#include<conio2.h>using namespace std;struct complejo // clase{ float r,i; void pedir() { cout<<"Dame parte real: "; cin>>r; cout<<"Dame parte imaginaria: "; cin>>i; } void suma(complejo A,complejo B) { r=A.r+B.r; i=A.i+B.i; } void muestraTodo(complejo A,complejo B) {cout<<"Lasuma en: \n"<<A.r<<"+"<<A.i<<"i"<<endl <<B.r<<"+"<<B.i<<"i"<<endl

} void muestra() {cout<<r<<"+"<<i<<"i"<<endl; }};//cierre de la claseint main(){ complejo A,B,C; cout<<"Dame el numero complejo A: \n"; A.pedir(); cout<<"Dame el numero complejo B: \n"; B.pedir(); C.suma(A,B); A.muestra(); B.muestra(); C.muestra(); getch(); return 0;}

Page 26: Apuntes Unidad 1

Programa u1p5_3/*suma dos numeros complejos con clases tipo struct (clases en c) con funciones en struct solo llamadas usando el operador scope*/#include<iostream>#include<conio2.h>using namespace std;struct complejo // clase{ float r,i; void pedir(); void suma(complejo A,complejo B); void muestraTodo(complejo A,complejo B); void muestra();};//cierre de la clase complejo::void pedir() { cout<<"Dame parte real: "; cin>>r; cout<<"Dame parte imaginaria: "; cin>>i; } complejo::void suma(complejo A,complejo B) { r=A.r+B.r; i=A.i+B.i; }

complejo::void muestraTodo(complejo A,complejo B) {cout<<"Lasuma en: \n"<<A.r<<"+"<<A.i<<"i"<<endl <<B.r<<"+"<<B.i<<"i"<<endl <<r<<"+"<<i<<"i"<<endl; } complejo:: void muestra() {cout<<r<<"+"<<i<<"i"<<endl; }

int main(){ complejo A,B,C; cout<<"Dame el numero complejo A: \n"; A.pedir(); cout<<"Dame el numero complejo B: \n"; B.pedir(); C.suma(A,B); A.muestra(); B.muestra(); C.muestra(); getch(); return 0;}

Programa auxiliar:#include<iostream>using namespace std;int a;//variable globalvoid prueba(){ int f;//variable local de la funcion int a;//variable local de la funcion a=20;//a local de la funcion ::a=100;//a globlal del programa }

int main(){ int b;a=25;

return 0;}

Page 27: Apuntes Unidad 1

Clases en C++Programa u1p6/*suma dos numeros complejos con clases de c++ (class)*/#include<iostream>#include<conio2.h>using namespace std;class complejo // clase{ public: float r,i; void pedir(); void suma(complejo A,complejo B); void muestraTodo(complejo A,complejo B); void muestra();};//cierre de la clase complejo::void pedir() { cout<<"Dame parte real: "; cin>>r; cout<<"Dame parte imaginaria: "; cin>>i; } complejo::void suma(complejo A,complejo B) { r=A.r+B.r; i=A.i+B.i; } complejo::void muestraTodo(complejo A,complejo B) {cout<<"Lasuma en: \n"<<A.r<<"+"<<A.i<<"i"<<endl <<B.r<<"+"<<B.i<<"i"<<endl <<r<<"+"<<i<<"i"<<endl; } complejo:: void muestra() {cout<<r<<"+"<<i<<"i"<<endl; }

int main(){ complejo A,B,C;

cout<<"Dame el numero complejo A: \n"; A.pedir(); cout<<"Dame el numero complejo B: \n"; B.pedir(); C.suma(A,B); A.muestra(); B.muestra(); C.muestra(); getch(); return 0;}

Page 28: Apuntes Unidad 1

Programa u1p6_1/*suma dos numeros complejos con clases tipo class con private y public*/#include<iostream>#include<conio2.h>using namespace std;class complejo // clase{ private:/*es privada aun cuando no se declara el private por default*/ float r,i; public: void pedir(); void suma(complejo A,complejo B); void muestraTodo(complejo A,complejo B); void muestra();};//cierre de la clase complejo::void pedir() { cout<<"Dame parte real: "; cin>>r; cout<<"Dame parte imaginaria: "; cin>>i; } complejo::void suma(complejo A,complejo B) { r=A.r+B.r; i=A.i+B.i;

} complejo::void muestraTodo(complejo A,complejo B) {cout<<"Lasuma en: \n"<<A.r<<"+"<<A.i<<"i"<<endl <<B.r<<"+"<<B.i<<"i"<<endl <<r<<"+"<<i<<"i"<<endl; } complejo:: void muestra() {cout<<r<<"+"<<i<<"i"<<endl; }

int main(){ complejo A,B,C; cout<<"Dame el numero complejo A: \n"; A.pedir(); cout<<"Dame el numero complejo B: \n"; B.pedir(); C.suma(A,B); A.muestra(); B.muestra(); C.muestra(); getch(); return 0;}

Constructor y destructorSon funciones miembro de la clase que llevan el mismo nombre de la clase.A todas las variables declaradas tipo clase se le nombra o conoce como “objeto”.Tanto el constructor como el destructor, nunca devuelven algún tipo, ni siquiera void.Estas se ejecutan solas, cuando se crea el objeto (variable).El destructor además, lleva un carácter especial llamado tilde (~).

Programa u1p7;#include<iostream>#include<conio2.h>using namespace std;class fecha{ int d,m,a;// son privadas public:

Page 29: Apuntes Unidad 1

fecha();//constructor ~fecha(); //destructor};fecha::fecha(){ cout<<"Hola soy constructor"<<endl; getch();}fecha::~fecha(){ cout<<"Hola soy destructor"<<endl; getch();}int main(){ fecha f,h; cout<<"Texto desde el main..."; /*cout<<"Texto desde el main..."; cout<<"Texto desde el main...";*/ getch(); return 0;}

Programa u1p7_1:#include<iostream>#include<conio2.h>using namespace std;class fecha{ int d,m,a;// son privadas public: fecha();//constructor ~fecha(); //destructor};fecha::fecha(){ cout<<"Dame la fecha: "<<endl; cout<<"Dia"; cin>>d; cout<<"Mes"; cin>>m; cout<<"Año"; cin>>a;}fecha::~fecha(){ cout<<"La fecha es:"<<d<<"/"<<m<<"/"<<a; getch();}

int main()

Page 30: Apuntes Unidad 1

{ fecha f,h; cout<<"Texto desde el main..."; getch(); return 0; }