Programiranje u C++-u - pitanja i odgovori izdvojena tema

poruka: 7.285
|
čitano: 1.712.240
|
moderatori: Lazarus Long, XXX-Man, vincimus
+/- sve poruke
ravni prikaz
starije poruke gore
16 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
TracerCPP kaže...

O čemu se točno ovdje priča? O statičko-dinamičkom linkingu ili "build-u" dll-ova, jer za "build" još nisam čuo.

 

Fuck Yeah , dynamic linking je ispravno rečeno , nisam niti išao za tim da će se netko zapiknut za nespretno složeno dinamički bild jer računao da onaj tko ima imalo pojma , preleti preko riječi ne čitajući doslovce već samo hvata poantu. Evo ti hvala za ispravak , ovo je bilo oko sokolovo.

http:/https://play.google.com/store/apps/details?id=org.kde.necessitas.example.SMASHHH
Poruka je uređivana zadnji put čet 18.4.2013 18:24 (nik_02).
14 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori

Pa budi precizan ako već želiš da te se ispravno shvati.

 

Inače, već sam editirao prethodni post (na prošloj stranici) gdje sam napisao svoj odgovor.

Kada lajavci laju onda završe ovako: http://i471.photobucket.com/albums/rr77/toropreto/2012-07-0813_30_07.gif
14 godina
neaktivan
offline
Programiranje u C++-u - pitanja i odgovori

Izbacuje mi ovu gresku.

sta ne valja :)

 

 

#include <iostream>

#include <cmath>

 

using namespace std;

 

int main()

{

   long god,n,br=0;

   cin>>god;

   cin>>n;

   int niz[n];

   for (int i = 0;i < n;i++)

   {

     cin>>niz[i];

   }

   long a,b,c;

   c=god%10;

   b=(god/10)%10;

   a=god/100%10;

   long a1,b1,c1;

   for (int i = 0; i < n;i++)

   {

     a1=(floor(niz[i]/100000000))%10;

     b1=(floor(niz[i]/10000000))%10;

     c1=(floor(niz[i]/1000000))%10;

   }

   if (a1==a && b1==b && c1==c)

   {

     br++;

   }

   cout<<br<<endl;

   return 0;

}

 

http://www.bug.hr/forum/topic/softver-literatura-usluge/prodaja-knjige-hardware/103166.aspx
Poruka je uređivana zadnji put sub 20.4.2013 9:34 (Intelovac123).
 
0 0 hvala 0
15 godina
online
Re: Programiranje u C++-u - pitanja i odgovori
Intelovac123 kaže...

 

        a1=(floor(niz[i]/100000000))%10;

        b1=(floor(niz[i]/10000000))%10;

      c1=(floor(niz[i]/1000000))%10;

  Problem je u ovim linijama koda odnosno u funkciji floor. Iako ta funkcija vraca cijeli broj, ona taj broj ne vraca u obliku cjelobrojnoga tipa(int), vec kao floatdouble ili  long double ovisno o tipu poslane vrijednosti. Do greske dolazi zato sto pokusavas koristis operator % na tip koji nije cjelobrojni.

 

Sve sto moras je ono sto funkcija floor vrati castati u int:

a1 = (static_cast<int>( floor(niz[i]/100000000)))%10;

 

Ako koristis C onda to radis ovako:

a1=((int)floor(niz[i]/100000000))%10;

15 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
Intelovac123 kaže...
     a1=(floor(niz[i]/100000000))%10;

     b1=(floor(niz[i]/10000000))%10;

     c1=(floor(niz[i]/1000000))%10;

Zašto koristiš floor funkciju? Znaš li čemu ona služi? Za zaokruživanje realnih brojeva na prvi manji cijeli broj.

 

Kod cjelobrojnog dijeljenja (integer sa integerom) ona ti nije potrebna, jer je rezultat već sam po sebi cijeli broj.

0xBADC0DE
12 godina
neaktivan
offline
Programiranje u C++-u - pitanja i odgovori

 

Može mala pomoć, evo sat vremena nmg da skonta zašto mi ova funkcija neće da sortira niz već ga samo izbriše???

Vjerovatno je nešto bezveze jer nisam ove pokazivače još u glavi shvatio.

 

 

void sort(ucenik * neko,int vel)

{

 bool promjena=true;

 ucenik temp;

 int j=0;

 while(promjena){

 promjena = false;

 j++;

 for(int i=0;i<vel-j;i++)

 {

 if(prosjek(neko,i) < prosjek(neko,i+1))

 {

 temp = neko[i];

 neko[i] = neko[i+1];

 neko[i+1] = temp;

 promjena = true;

 }

 }

 }

}

 
0 0 hvala 0
17 godina
offline
Programiranje u C++-u - pitanja i odgovori

Dakle, ti sortiraš niz tipa podataka ucenik na osnovu ocjena.

 

Ne vidim da li se radi o strukturi ili klasi, tako da sam ja uzeo klasu. Pošto sam uzeo klasu, preopteretio sam operator usporedbe < tako da mogu njim uspoređivati instance objekta temeljem ocjena . Ostao sam kod niza, nisam htio uzeti klasu vector pa onda koristiti iteratore, da ne bude overkill. Uglavnom, nadam se da je ovo dovoljno za skužiti kako se to radi - jer je princip isti i ako se uzme niz, struktura i da se ne koristi preopterećenje operatora.

 

 

 

 

#include <iostream>
#include <string>
using namespace std;

class Ucenik
{
private:
    int ocjena;
    string ime;
public:
    Ucenik() {};
    Ucenik(string, int);
    string GetIme();
    bool operator < (Ucenik);
};
Ucenik::Ucenik(string ime, int ocjena)
{
    this->ime = ime;
    this->ocjena = ocjena;
}
string Ucenik::GetIme()
{
    return ime;
}
bool Ucenik::operator< (Ucenik ucenik) // preopterećenje operatora <
{
    return this->ocjena  < ucenik.ocjena;
}
void Sort(Ucenik* ucenici) // sortiranje niza
{
    for(int i=0; i<3; i++)
    {
       for(int j=i+1; j<3; j++)
       {
          if(ucenici[j]<ucenici[i])
          {
             Ucenik temp = ucenici[j];
             ucenici[j] = ucenici[i];
             ucenici[i] = temp;
          }
       }
    }
}
int main()
{
    Ucenik* ucenici = new Ucenik[3];
    ucenici[0] =   Ucenik("Janko", 4);
    ucenici[1] =  Ucenik("Marko", 2);
    ucenici[2] =  Ucenik("Stipe", 3);
    for(int i=0; i<3; i++)
       cout<< ucenici[i].GetIme() << endl;
    cout<< endl;
    Sort(ucenici);
    for(int i=0; i<3; i++)
       cout<< ucenici[i].GetIme() << endl;
    return 0;
}

Poruka je uređivana zadnji put ned 21.4.2013 15:50 (Floki).
 
0 0 hvala 0
12 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori

Da zaboravio sam napomenuti radi se o strukturi...

Poruka je uređivana zadnji put ned 21.4.2013 17:53 (TAPTAP12).
16 godina
offline
Re: Programiranje u C++-u - pitanja i odgovori

Kako i da li postoji način za odrediti koji se samoglasnik u riječi ponavlja najviše puta,a da se ne koristi ona metoda sa 5 brojača i onda usporedba koji ima najviše

AC Milan - IL CLUB PIU' TITOLATO AL MONDO
15 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
emerik kaže...

Kako i da li postoji način za odrediti koji se samoglasnik u riječi ponavlja najviše puta,a da se ne koristi ona metoda sa 5 brojača i onda usporedba koji ima najviše

Gledaj nekako ih moraš prebrojati, a potom i razlikovati prebrojane samoglasnike. Ostalo su sve sitne varijacije na temu.

 

Ovo što si upravo napisao je kao da si rekao: kako da prebrojim broj čačkalica na stolu bez brojanja čačkalica.

 

Možeš jedino poboljšati metodu. Kažeš 5 brojača. Nadam se da to nije 5 zasebnih varijabli nego nekakvo polje.

0xBADC0DE
Poruka je uređivana zadnji put pon 22.4.2013 21:26 (rustweaver).
16 godina
offline
Re: Programiranje u C++-u - pitanja i odgovori

Mislio sam da možda ima neki bolji način,al ok.

AC Milan - IL CLUB PIU' TITOLATO AL MONDO
12 godina
neaktivan
offline
Programiranje u C++-u - pitanja i odgovori

Evo mene opet :D

 

Hoću poslat određen string u console applikaciju i onda lupit enter (dok je minimizana)

 

ovaj kod mi pošalje samo prvo slovo, i ne lupi enter. 

 

 

int main()

{

  HWND hwndWindowTarget;

   HWND hwndWindowNotepad = FindWindow(NULL, "console");

   if (hwndWindowNotepad)

   {

 

        PostMessage(hwndWindowNotepad, WM_CHAR, 'a'   , 0);

        PostMessage(hwndWindowNotepad, WM_CHAR, 'a'   , 0);

 

       PostMessage(hwndWindowTarget, WM_CHAR, VK_RETURN, 0);

 

   }

 

   return 0;

}

 

edit: dodavanjem Sleep(1); sam uspio dobit i više charova, no kako enter?

 

Poruka je uređivana zadnji put uto 23.4.2013 1:42 (cpp freak).
 
0 0 hvala 0
15 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
cpp freak kaže...

Evo mene opet :D

 

Hoću poslat određen string u console applikaciju i onda lupit enter (dok je minimizana)

 

ovaj kod mi pošalje samo prvo slovo, i ne lupi enter. 

 

edit: dodavanjem Sleep(1); sam uspio dobit i više charova, no kako enter?

 

Uf što to radiš? :D

 

Ovako, zapitaj se što radi enter tipka u tekstualnom okruženju? Stvara dva znaka, takozvanu CR LF kombinaciju (13, 10), to označava početak novog reda, odnosno kraj postojećeg.

 

Dakle:

PostMessage(hwndWindowNotepad, WM_CHAR, 13, 0);
PostMessage(hwndWindowNotepad, WM_CHAR, 10, 0);

 

Ovo gore će poslužiti za znatiželjno nabadanje, ali inače, za komunikaciju sa konzolnim procesom kojeg možeš spawnati iz svog programa pametnije bi bilo preusmjeriti standardni ulaz i izlaz. A ako je taj proces tvoj kojem možeš modificirati kod onda bi bolje bilo koristiti cijevi (pipes) za komunikaciju.

 

P.S.

Možeš probati i sa SendMessage funkcijom, isti su parametri, razlika je samo što ta funkcija blokira dok poruka ne bude primljena pa ti ne bi onda trebao sleep...

0xBADC0DE
Poruka je uređivana zadnji put uto 23.4.2013 2:47 (rustweaver).
12 godina
neaktivan
offline
Programiranje u C++-u - pitanja i odgovori

Thanks sve super radi, i već sam stavio sendmessage... :D

 

no jedino sam zamijetio mali problem, kada šaljem dva ista slova jedno za drugim primi samo jedno :/

 
0 0 hvala 0
12 godina
offline
Re: Programiranje u C++-u - pitanja i odgovori
emerik kaže...

Kako i da li postoji način za odrediti koji se samoglasnik u riječi ponavlja najviše puta,a da se ne koristi ona metoda sa 5 brojača i onda usporedba koji ima najviše

Mozes to izvesti s 4 brojaca, hint: gledaj razlike.
S time da je to vise teoretski gledano, u praksi bi svatko normalan koristio 5. I s 4 brojaca se moze odredit koji samoglasnik se najvise puta ponavlja, ali ne i koliko puta.
Pretpostavljam da broj samoglasnika nije unaprijed poznat, inace je prilicno trivijalno to izvest s 4 brojaca.

Tehnicki bi mogao proci i s jednom varijablom uz puno petljanja s bitovima, no to su isto samo brojaci upakirani u jednu varijablu.

Iako ako cemo bas potpuno teoretski, moze se i s dva brojaca: sortiras in-place samoglasnike i linearno prodjes kroz njih. Ovo je i "best case" nacin za nalazenje "mode-a" u generalnom slucaju kad broj razlicitih elemenata nije 5, nego nesto puno vece gdje ni individualni brojaci za svaki element ni hash tablice nisu prakticne.

16 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
emerik kaže...

Kako i da li postoji način za odrediti koji se samoglasnik u riječi ponavlja najviše puta,a da se ne koristi ona metoda sa 5 brojača i onda usporedba koji ima najviše

 

emerik kaže...

Mislio sam da možda ima neki bolji način,al ok.

 

DODANO:

Ha , ha , ha , tek sad vidim da sam fulao jer na brzinu pročitao tvoj post i krivo zaključio da trebaš isčupati samoglasnike a ne ih prebrojati.

Koja zabuna , ali neka ostane post , dobar je i brz način za selekciju željenih slova , ne moraju biti samoglasnici.

KRAJ DODATKA

 

 

 

 

Kastaš char u int vrijednost slova. Nakon toga pomnozis svih 5 vrijednosti a*e*i*o*u i imas nazovimo ga magicNumber.

Dalje je lako , kad dijelis magicNumber s bilo kojim od samoglasnika (a,e,i,o,u) imaš poslije modulo operatora(%) zero i tako hvataš samoglasnike. Pitanje je veće , dopuštaju li vam u školi ovakav način rada ili mora školski da svi razumiju a to bi bilo preko pet kondicija kontra samoglasnika kako si i naveo ?!?

 

http://ideone.com/9DUCl9

 

/*http://ideone.com/9DUCl9*/

 

#include <iostream>

#include <stack>

#include <ctype.h>

 

using namespace std;

 

/*barataj s long long jer na int puca

Integer overflow*/

long long setMagicNum(char* samoglasnik)

{

   long long result = 1;

   for(unsigned int i=0 ; i<5 ; i++)

   {

     result *= (long long)samoglasnik[i];

   }

 

   return result;

}

 

int main() 

{

   char samoglasnici[] = {'a','e','i','o','u'};

   long long magicNum = setMagicNum(samoglasnici);

 

 

   cout<< "unesi recenicu:\n";

   string str;

   getline (cin,str);

 

   stack<char> result;

   for(unsigned int i=0 ; i<str.size() ; i++)

   {

     if(isalpha(str[i]))

     {

      /*****IMAS SAMO JEDAN UVJET********/

      if( magicNum%(tolower(str[i])) == 0)

      {

       result.push(str[i]); 

      }

      /**********************************/      

     }

   }

 

 

   while(!result.empty())

   {

     cout<< result.top() << " ";

     result.pop();

   }

 

 

 

   return 0;

}

http:/https://play.google.com/store/apps/details?id=org.kde.necessitas.example.SMASHHH
Poruka je uređivana zadnji put uto 23.4.2013 16:39 (nik_02).
15 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori

Jako zanimljiv pristup ;)

0xBADC0DE
12 godina
neaktivan
offline
Programiranje u C++-u - pitanja i odgovori

Ovo mi je funkcija za sendanje stringa, nije mi jasno zašto nemogu biti dva ista znaka jedan za drugim :S

 

void PostString(char *a)

{

   int i=0;

  HWND hwndWindowTarget;

   HWND hwndWindowNotepad = FindWindow(NULL, "cmddd");

   printf("%d",hwndWindowNotepad);

 

      if (hwndWindowNotepad)

   {

       for(i=0;i<strlen(a);i++)

       {

        SendMessage(hwndWindowNotepad, WM_CHAR, a[i]   , 0);

       }

       SendMessage(hwndWindowNotepad, WM_CHAR, 13, 0);

       //PostMessage(hwndWindowNotepad, WM_CHAR, 10, 0);

   }

}

 
0 0 hvala 0
13 godina
neaktivan
offline
Programiranje u C++-u - pitanja i odgovori

moze pomoc?

 

#include <iostream>

#include <ctime>

using namespace std;

 

int *stvoriPolje(int a, int b, int n) //U funkciji se alocira polje od n slucajno odabranih cijelih brojeva u intervalu [a,b]. Funkcija kao rezultat vraca pokazivac na navedeno polje.

{

 int *p=new int[n];

 cout<<"koliko elemenata polja zelis?"<<endl;

 cin>>n;

 cout<<"minimalni element? "<<endl;  

  cin>>a;

  cout<<"maximalni element? "<<endl;  

 cin>>b;

  srand(time(NULL));

  for (int i=0; i<n; i++)

  {

    p[i]=rand()%(b-a+1)+a;

  }

  cout<<"ovo su elementi polja: "<<endl;

  for (int i=0; i<n; i++) cout<<*p++<<endl;

  //return p;

}

 

int main()//U glavnoj funkciji poziva se navedena funkcija, ispisuje polje i oslobada dinamicki alocirana memorija.

{       

       int a, b, n;

       int p[n];

       cout<<stvoriPolje(a,b,n);

      // for (int i=0; i<n; i++) cout<<*p++;

 

       //delete p;

 

system ("PAUSE");

return 0;

}

ne znan napravit da se u mainu ispisuje polje...
Hvala :D 
Poruka je uređivana zadnji put uto 23.4.2013 19:52 (maricuj).
 
0 0 hvala 0
14 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori

Pokazivačem adresiraš nulti element tog "vraćenog" polja:

 

int* p = stvoriPolje(...);

i sad to polje (p) ispišeš kroz for petlju.

 

Kada lajavci laju onda završe ovako: http://i471.photobucket.com/albums/rr77/toropreto/2012-07-0813_30_07.gif
15 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
cpp freak kaže...

Ovo mi je funkcija za sendanje stringa, nije mi jasno zašto nemogu biti dva ista znaka jedan za drugim :S

Moguće da je riječ o nekakvom filtriranju standardnog ulaza. Meni na WinXP recimo radi bez problema, mogu poslati i 10 istih znakova uzastopce ako želim.

 

Uglavnom, to dobiješ kada ideš nekakvim nestandardnim putevima kako bi nešto obavio. Jbg...

0xBADC0DE
12 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
rustweaver kaže...
cpp freak kaže...

Ovo mi je funkcija za sendanje stringa, nije mi jasno zašto nemogu biti dva ista znaka jedan za drugim :S

Moguće da je riječ o nekakvom filtriranju standardnog ulaza. Meni na WinXP recimo radi bez problema, mogu poslati i 10 istih znakova uzastopce ako želim.

 

Uglavnom, to dobiješ kada ideš nekakvim nestandardnim putevima kako bi nešto obavio. Jbg...

Ja sam na Win7 64bit :/

Radi se o pisanju naredbi na konzolni server, ja samo kontroliram što on radi, nemam pristup njegovom kodu. No uglavnom do sada sam uspio sve obaviti i bez duplih slova, no htio bi da ispravno radi :D

 

BTW jel moguće pozvati MessageBox() bez zaustavljanja programa? ili da napravim poseban thread za to? -netreba mi nikakav input usera, nego samo kao notifikacija :)

15 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
cpp freak kaže...
BTW jel moguće pozvati MessageBox() bez zaustavljanja programa? ili da napravim poseban thread za to? -netreba mi nikakav input usera, nego samo kao notifikacija :)

Prilično sam siguran da nije. To i jest poanta.

 

Probaj ga pozvati iz drugog threada. Ili možeš pokušati nakuckati vlastiti notification window za to. Nije nekakav veliki problem...

0xBADC0DE
14 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
cpp freak kaže...

BTW jel moguće pozvati MessageBox() bez zaustavljanja programa? ili da napravim poseban thread za to? -netreba mi nikakav input usera, nego samo kao notifikacija :)

Davno je to bilo, ali sjećam se da je bilo moguće. Obično prvi parametar je nekakav Handle (postoji preopterećenje MessageBox-a koji to ima). Ukoliko želiš da korisnik ne mora kliknuti OK (ili već koji gumb) tj. da mu dopustiš rad u programu bez obzira na MessageBox, onda bi za taj Handle trebalo postaviti vrijednost 0. No za notifikacije je pametnije koristiti labele, ili čak i tray icon hint.

 

S druge strane, ako ćeš updateati GUI iz thread-a nemoj zaboraviti na sinkronizaciju jer GUI nije thread-safe.

Kada lajavci laju onda završe ovako: http://i471.photobucket.com/albums/rr77/toropreto/2012-07-0813_30_07.gif
15 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
TracerCPP kaže...

Davno je to bilo, ali sjećam se da je bilo moguće. Obično prvi parametar je nekakav Handle

Parent handle. Ne pomaže, jer je thread iz kojeg je MessageBox pozvan blokiran. Odnosno MessageBox funkcija ne završi dok korisnik ne klikne na neki button.

 

EDIT:

Koliko vidim prozor i dalje procesira poruke iako je message loop blokiran!? Heh...

 

Dakle blokira konzolnu aplikaciju, i do neke granice GUI aplikaciju (osim ako se ne proslijedi handle od prozora, onda blokira u potpunosti).

 

A evo i objašnjenja:

"In some situations, the operating system will call a window procedure directly, bypassing the queue."

http://msdn.microsoft.com/en-us/library/windows/desktop/ff381405%28v=vs.85%29.aspx

0xBADC0DE
Poruka je uređivana zadnji put sri 24.4.2013 15:40 (rustweaver).
12 godina
neaktivan
offline
Programiranje u C++-u - pitanja i odgovori

Ovako: treba mi za sutra hitno, napravio sam seminar preopterecenje funkcija,donekle je valjalo i sve, ali sada me profesorica trazi i primjer da napravim kao program u c++-u o temi preopterecenje funkcija...da se nesto moze nauciti i iz programa...Neznam tocno sto zeli,kakav program da napravim,ali nasamo sam 2 programa na netu o preopterecenju i trebam ih obrazlozit a neznam...moze neka pomoc ili nesto...naprimjer trebalo bi obrazlozit gdje se tu vidi tal overloading i overriding...

ovo u napomenama sa // sam pisao kao sta bi ja njoj trebao reci hahahaha...jer iskreno nisam neki strucnjak za c++ te znam samo osnove, tako da mi je sad to problem napravit -.-"

evo primjera za :
______________________

 

 

 

 

Overloading program 1

 

/*Overloading smo rekli da se desava ukoliko napravimo vise verzija funkcija.
Imamo 2 vrste: 1) Razliciti parametri funkcija traju , ili pod 2
               2)povratni tip funkcije.
               Ako koristite istu deklariranu funkciju dobit cete pogresku na
               kompajleru jer nece znati koju funkciju koristiti.
               Evo jos jedan jednostavan primjer:
*/

#include<stdio.h>


class SomeClass
{
public:
void SomeFunction(int &x) { x *= x; }
int SomeFunction(int x) { return x * x; }
};

//Int main()

SomeClass s;
int x = 5;
x = SomeFunction(x);

_____________________________

 

Overloading program 2

 

/*funkcija overloading se desi kada zelite imati istu funkciju s razlicitim
parametrima*/
#include<stdio.h>

void Call(string s);
void Call(int i);

class Animal//base class
{
public virtual void Walk(){//walks normally}
}

class Tiger:Animal//derived class
{
public override void Walk(){//walks like tiger}
}

_____________________________

primjer za  overriding

 

#include<stdio.h>


int main()
{
class Base
{
public:
virtual void DoSomething() {x = x + 5;}
private:
int x;
};
class Derived : public Base
{
public:
virtual void DoSomething() { y = y + 5; Base::DoSomething(); }
private:
int y;
};


}

/*
 Ovdje mozemo vidjeti deriviranu klasu  u kojoj klasa nadjačava baznu
 klasu. DoSomething ima svoju svrhu gdje daje varijablu, i onda
 zaziva "parent" verziju funkcije pozivajuci  Base::DoSomething()
 tako da x varijabla porasta. Virtualna tipkovnica se koristi za razred
 varijabla te moze shvatiti koja je metoda za poziv u runtime*/

 

________________________________________________________

 

P.S. Postavit ce mi 100 puta kako i zasto tako da molim sto detalnije...

 

Unaprijed hvala svima koji se barem potrude :D //neki programi i ne rade tako da...isprobajte ih

Jedini kompjuter koji se ne može hakirati je onaj koji nije na mreži, zaključan u metalni sanduk, i zakopan 3 metra pod zemlju
Poruka je uređivana zadnji put sri 24.4.2013 17:48 (BassMax).
 
0 0 hvala 0
15 godina
neaktivan
offline
Programiranje u C++-u - pitanja i odgovori

Pozdrav, treba mi pomoć oko infix to postfix konverzije. Imam ovaj kod, ali očito negdje ima bug (ili više bugova), pa ako možete pomoći, bio bih zahvalan :D

http://pastebin.com/95EFw7tG

 
0 0 hvala 0
12 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori

Algoritam s linka ima dvije greške u četvrtom koraku:

  • piše "If the scanned character is an Operand and the stack is not empty", treba "If the scanned character is an Operator and the stack is not empty"
  • piše "If topStack has higher precedence over the scanned character Pop the stack", treba "If topStack has higher or equal precedence over the scanned character Pop the stack"
17 godina
offline
Programiranje u C++-u - pitanja i odgovori

Kad ti traži jednostavnu stvar kao preopterećenje funkcija, ne idi u override funkcija u OOP, to su potpuno drukčiji pojmovi.

 

Svaka funkcija ima svoj potpis pomoću kojeg ih compiler razlikuje i u potpis funkcije spada ime funkcije i argumenti funkcije. To znači da možeš napisati više fukcija istog imena a različitih argumenata, a takve funkcije zoveš preopterećene funkcije. Oprez, povratna vrijednost funkcije ne spada u potpis funkcije, dakle ne možeš imati više funkcija istog imena i argumenata, a različite povratne vrijednosti.

 

Slijedi primjer preopterećene funkcije MaxNiz koja u jednoj verziji prihvaća int , a ui drugoj double niz i vraća najveći član niza.

E, to ti je preopterećenje ili oveloading funkcije, a override je pojam iz OOP i nema veze sa ovim.

 

 

#include <iostream>
using namespace std;

int MaxNiz(int* intNiz, int velicinaNiza)
{
    int maxElement = intNiz[0];
    for(int i= 1; i<velicinaNiza; i++)
    {
       if(intNiz[i] > maxElement)
          maxElement = intNiz[i];
    }
    return maxElement;
}
double MaxNiz(double* doubleNiz, int velicinaNiza)
{
    double maxElement = doubleNiz[0];
    for(int i= 1; i<velicinaNiza; i++)
    {
       if(doubleNiz[i] > maxElement)
          maxElement = doubleNiz[i];
    }
    return maxElement;
}

int main()
{
    int intNiz[5] = {5, 8, 9, 4, 1};
    double doubleNiz[5] = {4.5, 7.1, 9.3, 1.2, 7.4};
    cout<< "Max int: " << MaxNiz(intNiz, 5) << endl;
    cout<< "Max double " << MaxNiz(doubleNiz, 5) << endl;
    return 0;
}

 

Poruka je uređivana zadnji put sri 24.4.2013 21:45 (Floki).
 
0 0 hvala 0
12 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori

Hvala ti na brzom odgovoru,stvarno mi puno znaci...Vijerojatno si me spasio od kolca sutra :D Samo jedno pitanje....dali bi ovaj program trebao imati svrhu ili je samo da prikaze overloading ? Jer ona ce mene muciti barem 15 minuta o tome :D Ako ti ga nije problem malo pojasniti...sta koja funkcija u kojem djelu radi,deklarira,gdje je tocno greska itd...Ali u svakom slucaju hvala ti na proslom odgovoru :')

Jedini kompjuter koji se ne može hakirati je onaj koji nije na mreži, zaključan u metalni sanduk, i zakopan 3 metra pod zemlju
E-mail:
Lozinka:
 
vrh stranice