Ndihme!!! Me c++

fitims

Primus registratum
Re: Ndihme!!! Me c++

Shiqo kodin me poshte:

Code:
// deklarimi i klases
class x
{
private:
    char* ch1;
public:
    x(char* );
    x(void) { x(""); }
	
    char* display(void);
};


// implementimi i klases
x::x(char* nm)
{
    ch1 = new char[20];
    strcpy(ch1, nm);
}

char* x::display(void)
{
    return ch1;
}


// testimi i klases
char* t;
x var1("fitim");
	
t = var1.display();
printf(t);
 

ludwig

Primus registratum
Re: Ndihme!!! Me c++

x var1("fitim"); //therret menjehere contructorin x::x(char*); dhe ky punon ne rregull. var1::ch1 eshte ne rregull.

x var1; //therret contructorin x::x() dhe ky therret contructorin x::x(char*) me vleren "". eshte ky rasti qe nuk punon.

provo te njejtin kode qe ke shkruajtur por me implementim(beje ch1 public):

x var1; //
strcpy(var1.ch1, "str"); //meqenese var1::ch1 nuk eshte e vlefshme do te japi gabim ne runtime sepse strcpy() kerkon te shkruaj ne nje vend memorje jo te vlefshme.

nqs ben debug gjat 'x var1;' thirret contructori x::x(char*) krijohet ch1 si new char[20](me adrese te rregullt) por pasi constructori kthehet var1::ch1 eshte e pavlefshme. eshte njesoj sikur ch1 = new char[20] te mos ishte ekzekutuar.
 

gurax

Pan ignoramus
Re: Ndihme!!! Me c++

Nuk e di se cfare por kerkohet te behet, por une kompilova kete version:
Code:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

class x {
        private:
                char* ch1;
        public:
                x();
                x(char*);
                char* showme(void);
                void append(char*);
                
};

x::x() {
        printf("krijim defaultn");
        ch1 = (char*)calloc(20,sizeof(char));
        strcpy(ch1,"");
}

x::x(char* s) {
        printf("krijim me inicializimn");
        ch1 = (char*)calloc(20,sizeof(char));
        strcpy(ch1,s);
}

char* x::showme(void) {
        puts(ch1);
        return ch1;
}

void x::append(char* s) {
        strcat(ch1,s);
}

int main() {

        x a;
        x b("test");
        x c(b.showme());

        printf("nn Pas krijimit te variablave...nn");

        
        printf("a= ");
        a.showme();
        printf("b= ");
        b.showme();
        printf("c= ");
        c.showme();
        
        a.append(" shtesA");
        b.append(" shtesB");
        c.append(" shtesC");    

        printf("nnn");

        printf("a e re = ");
        a.showme();
        printf("b e re = ");
        b.showme();
        printf("c e re = ");
        c.showme();
        printf("nFundn");
}
Dhe output perkates me doli si me poshte:

Code:
gurax@saturn5:$ ./a.out 
krijim default
krijim me inicializim
test
krijim me inicializim


 Pas krijimit te variablave...

a= 
b= test
c= test



a e re =  shtesA
b e re = test shtesB
c e re = test shtesC

Fund
-------------
"Have I told you lately..."
 

ludwig

Primus registratum
Re: Ndihme!!! Me c++

po kerkohet te bashkohen dy contruktore ne nje:

Code:
x::x() {
        printf("krijim defaultn");
        ch1 = (char*)calloc(20,sizeof(char));
        strcpy(ch1,"");
}

x::x(char* s) {
        printf("krijim me inicializimn");
        ch1 = (char*)calloc(20,sizeof(char));
        strcpy(ch1,s);
}
dy contruktoret jan afersisht te njejt prandaj mund te shkruhet (ne teori):

Code:
x::x(char* s){.......}
x::x() {x("");}
// perdorimi

x var1; //var1::ch1 nuk eshte e vlefshme (zere se nuk ke ekzekutuar asnjehere ch1 = (char*)calloc(20,sizeof(char));

ku version megjithse kompilohet ne rregull nuk punon
ne kete menyre kursen ca linja kodi. jo se ben ndonje ndryshim te madh po prape...
 

fitims

Primus registratum
Re: Ndihme!!! Me c++

Shiqo kodin:

deklarimi i klases:
-------------------
Code:
class Float
{
private:
    float value;
public:
    Float(void);
    Float(float f); 

    void Initialise(float f);
    void Initialise(Float f);
    void Add1(Float a, Float b);
    Float Add2(Float a);
    float Value();
    Float operator+(Float& b);
    Float operator-(Float& b);
    Float operator*(Float& b);
    Float operator/(Float& b);
};
Implementimi i klases:
----------------------
Code:
Float::Float(void)
{
    value = 0.0;
}

Float::Float(float f)
{
    Initialise(f);
}


void Float::Initialise(float f)
{
    if((f < -20000.0) || (f > 19999.0))
    {
	printf("Invalid value. Value can be between -20000 and 19999");
	value = 0;
    }
    else
	value = f;	
}


void Float::Initialise(Float f)
{
    value = f.Value();
}


void Float::Add1(Float a, Float b)
{
    value = a.Value() + b.Value();
}


Float Float::Add2(Float a)
{
    return Float(value + a.Value());
}


float Float::Value()
{
    return value;
}


Float Float::operator+(Float& b)
{
    return Float(value + b.Value());
}


Float Float::operator-(Float& b)
{
    return Float(value - b.Value());
}

Float Float::operator*(Float& b)
{
    return Float(value * b.Value());
}

Float Float::operator/(Float& b)
{
    return Float(value / b.Value());
}
Testimi i klases:
-----------------
Code:
Float a(3.), b(5.), c, d;
c.Add1(a,b);
d = a.Add2(b);

d = a + b;
d = a - b;
d = a * b;
d = a / b;
 

Enion

Primus registratum
Re: Ndihme!!! Me c++

Fitmis me fal me vonesen por nuk kam qene fare ne shtepi ngaqe kam qene tek nje shoke. Te falenderoj shume.
 

gurax

Pan ignoramus
Re: Ndihme!!! Me c++

Ludwig.. ne fakt s'di te te kthej pergjigje per ate variant qe me the.
Por nje variant mund te ishte qe:

Code:
class x {
// ...
 private:
   initfunc(char *); //praktikisht merret ky me inicializimet
 public:
   x();
   x(char *);
// ...
};

x:x() {
  initfunc("");
}

x:x(char* rresht) {
  initfunc(rresht);
}
Sec ka ca diferenca midis overload, override dhe kur njera ka precedence mbi tjetren.
Sidoqofte une do te preferoja menyren me funksion privat inicializimi. Pjeses publike, ne te dy versionet e klases i paraqitet e njejta interface, nderkohe qe versioni i dyte eshte edhe me i lexueshem dhe me i kuptueshem nese pas nje viti do te te duhej t'i riktheheshe per revizion.


------------
"Have I told you lately..."
 

ludwig

Primus registratum
Re: Ndihme!!! Me c++

Kush me thote ku mund te gjej nje program (routine) solid per perllogaritje numerike integralesh ne C/C++? Me duhet kodi. Sa me i sakte aq me i mire.

Nuk besoj se do gjesh nje code te tille ne ato site qe japin source code falas. Eshte e veshtire te besh nje gje te tille, megjithate varet per c'fare e do. Nqs e do me perafersi mund ta besh edhe vet nje te thjesht duke gjetur siperfaqen e funksionit prere me (x). Por per disa funksione do kesh nje rezultat teper large atij te vertetit. Po e bere keshtu perdore abs(). Me menyren si thashe une me larte integrali(sin(x))midis 0 dhe 2PI = 0 ne vend te: 2*integrali(sin(x)) midis 0 dhe PI.

shendet
 

gurax

Pan ignoramus
Re: Ndihme!!! Me c++

U kujtova me shume vonese per te bere nej pyetje si kjo, por sidoqofte:

Perdor njeri Borland C++ Builder? Nese jo, ne favor te kujt e kane lene pas dore? Perfundimisht te tere jane te bindur qe C++ = MS C++ " ?

Kuriozitet.


------------
"Have I told you lately..."
 

109UV

Primus registratum
Re: Ndihme!!! Me c++

une personalisht kam perdorur Borland Turbo C (por jo Borland C++) ne mesjete po qe atehere perdor VS C++ per MS environment ose gcc per Linux/Solaris.
 

ludwig

Primus registratum
Re: Ndihme!!! Me c++

Une perdore MS VC++. Borland nuk me pelqen per shkak te dependencies edhe faktit qe eshte si MS VBASIC qe une e urrej.
 

Rima

Primus registratum
Din ndokush rreth programimit me objekte ne gjuhen C++ ?

Une kam njohuri rreth kesaj gjuhe por nuk di te programoj me objekte, nese din ndokkush te me tregoj dicka apo te me sygjeroj dicka !!!1
Ju faleminderit
 

ladio

Primus registratum
Re: Din ndokush rreth programimit me objekte ne gjuhen C++ ?

Nuk e besoj qe dikush mund te te mesoje ty OOP me nje apo dy pergjigje ne kete forum. Per OOP ka shume libra, keshtu qe shko tek google edhe kerko per ndonje. Me duket se kam edhe une disa ne PDF, po i deshe me jep email te ti dergoj.

Fat te mbare,
cheers,
mySteRioUs
 

Rima

Primus registratum
Re: Din ndokush rreth programimit me objekte ne gjuhen C++ ?

Tung
Une e di qe askush nuk mundet te me spjegoje per kete programim por vetem se desh te me udhezoje dicka te lexoj apo mos ka ndokush ndonje material
Ju faleminderit
Mund ti dergoni ne kete adrese:
minci00@hotmail.com
 

BomBoni

Primus registratum
Re: Din ndokush rreth programimit me objekte ne gjuhen C++ ?

Tung Rima,

pasi ti paske njohuri nga gjuha programuse C++ te kisha preferu kete liber "the C++ programming language" nga krijusi i gjuhes Bjarne Stroustrup, kjo eshte adresa e Homepage autorit http://www.research.att.com/~bs/homepage.html. Aty ku une studioj preferohet edhe ky liber nese ti ke njohri te gjuhes "natyrore" gjermane "C++ - Lernen und professionell anwenden" nga autoret Ulla Kirch-Prinz dhe Peter Prinz. Perndryshe kerko literatur ne makinen kerkuse www.google.com aty mund te gjeshe edhe material qe ty te pershtatet me se miri. Vizito edhe forumet qe kane si teme kete gjuhe programuse.

suksese nga bomboni
 

LABI

Primus registratum
Re: Din ndokush rreth programimit me objekte ne gjuhen C++ ?

Nje liber i mire dhe 'free for download' eshte edhe
Thinking in C++
e Bruce Eckel.
Adresa
http://www.mindview.net/
Eshte per te hedhur nje shingjete positive ndaj ketij autori. Eshte nga te paret qe per librat qe ka botuar mund te shkarkohen gratis nga interneti.
 

Erald26

Primus registratum
Mirmbrema. Pershendetje si po ja kaloni, nese mundeni pa ju bezdisur mund tme ndihmoni pak rreth kesaj detyre....

Përcaktoni një klasë të quajtur sekuenca për të ruajtur stringje të renditur. Përcaktoni një konstruktor, një destruktor dhe funksionet anëtare të kësajt klase si më poshtë:

1. Insert I cili shton një string të ri sipas pozicjonit në renditjen e duhur.
2. Delete I cili fshin një string ekzistues.
3. Find I cili kërkon një sekuenc për një string të dhënë, themi true nëse stringu gjendet në sekuenc dhe false në rast se jo.
4. Print I cili printon sekuencën e stringjeve.
 
Top