miércoles, septiembre 13, 2006

Día 256, día del programador =P

Leyendo en Cofradía digital me encontre con que hoy es día del programador xD: http://es.wikipedia.org/wiki/Dia_del_Programador

Así que ps, felicidades a todos los programadores :D y de paso les dejo un pequeño programa usando POO ( que realmente no hace mucho xDDDDD)..

stringclass.h

//Evita la inclusion multiple del archivo de encabezado


#ifndef STRINGCLASS_H
#define STRINGCLASS_H

class Cadena{
protected:

char *texto;
unsigned int tamano;

public:

Cadena();
Cadena(int _tamano);
Cadena(char *_texto);
~Cadena();

char *Asignar(char *_texto);

char * operator = (char *_texto);
char * operator +=(char *_texto);

char *Texto();

void imprimir();

unsigned int tam();
};

#endif

stringclass.cpp


#include<stdio.h>
#include<stdlib.h>

#include "stringclass.h"

Cadena::Cadena(){
texto = NULL;
tamano = 0;
}

char *Cadena::Asignar(char *_texto){
tamano=0;
int j;
while (_texto[tamano]!=0)
tamano++;
if (tamano){
texto=(char *)realloc(texto,tamano+1);
for (j=0; j<tamano ;j++)
texto[j]=_texto[j];
texto[j]='\0';
}
else if(_texto){
free(texto);
texto=NULL;
return "";
}
return texto;

}

Cadena::Cadena(int _tamano){
tamano=_tamano;
texto = (char *)malloc(tamano+1);
}

Cadena::Cadena ( char *_texto){
int j=0;
tamano=0;
while (_texto[tamano]!=0)
tamano++;
if (tamano){
texto = (char*)malloc(tamano);
for ( j=0; j<tamano; j++){
texto[j]=_texto[j];
}
texto[j]='\0';
}
else if(_texto){
free(texto);
texto=NULL;

}
}

char *Cadena::Texto(){
if(texto)
return texto;
return "";
}

unsigned int Cadena::tam(){
return tamano;
}

void Cadena::imprimir(){
printf("El texto es: %s\n",texto);
}

Cadena::~Cadena(){
if(texto)
free(texto);
}

char *Cadena::operator =(char *_texto){
int j;
tamano=0;
while (_texto[tamano]!=0)
tamano++;
if (tamano){
texto=(char *)realloc(texto,tamano+1);
for ( j=0 ; j<tamano; j++)
texto[j]=_texto[j];
texto[j]='\0';
}
else if(_texto){
free(texto);
texto=NULL;
return "";
}
return texto;

}

char *Cadena::operator += (char *_texto){
int tam=0;
int j;
tamano=0;
while (_texto[tamano]!=0)
tamano++;
while (texto[tam]!=0)
tam++;
if ( (tamano) && (tam)){
texto=(char *)realloc(texto,tam+tamano+1);
for ( j=0; _texto[j]!='\0' ;j++)
texto[tam+j]=_texto[j];
texto[tam+j]='\0';
}
else if(_texto){
free(texto);
texto=NULL;
return "";
}
return texto;
}


stringmain.cpp


#include<stdio.h>
#include<stdlib.h>

#include "stringclass.h"

int main(){
system("clear");

//Crea objetos

Cadena str1;
Cadena str2(10);
Cadena str4;

//Asigna valores

str2.Asignar("Jorge");
str1.Asignar("Hola como estas?");
str4 = "Buenos dias";
str4 += " Hola";

// Imprime valores

str2.imprimir();
str1.imprimir();
str4.imprimir();

//Usando método tam de la clase Cadena

printf("El tamanio de srtr2 es %d \n",str2.tam());

//Usando método Texto de la clase Cadena

printf("El texto de srtr2 es %c ",str2.Texto());

getchar();

return 0;

}

Para compilar: g++ stringclass.cpp stringmain.cpp -o stringclass

Yo por el momento ya empezaron las clases después de un rato de estar en paro xD, lo único relevante es la matería de estructura de datos, en la cuál, nos va a costar un poco ya que manejaremos java (si java, que casí ni nos enseñaron). Además nos traen dando vueltas por lo referente a lo horarios ><", espero cuando menos no salir más allá de las 14:00 Hrs.. ><""

t.|A|. xD

Saludos!!

1 comentario:

Anónimo dijo...

aqui es cuando empiezas a cantar euforicamente
mas dame c++
... cof
xD
=> t.|A| :P**