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

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

Pozdrav svi forumaši/ce,trebo bi malu pomoc,to jest veliku,imam par zadataka za sutrašnji ispit

 

Ako smijem pitat šta pohađaš? 

It's not how good you are, it's how good you want to be.
15 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
Nisam siguran gdje mogu postaviti temu o radu u Shell Script. Ima li neko da zna i da je voljan pomoci, postavio bi mu nekoliko pocetnickih pitanja.
Loyal to the game
12 godina
neaktivan
offline
Programiranje u C++-u - pitanja i odgovori

skinuo sam SDK jednog programa s ove stranice : http://headsoft.com.au/index.php?category=vjoy

 

stvorio sam projekt u codeblocksu, ubacio sve fajlove, linkao ovaj library (VJoy.lib, nadam se dobro)

 

i dobivam ovaj error: ld.exe -cannot find -lVJoy.lib error.

 
0 0 hvala 0
17 godina
offline
Re: Programiranje u C++-u - pitanja i odgovori
pocetnik_amater kaže...
rustweaver kaže...
pocetnik_amater kaže...

 Zar ovo while-if ne predstavlja jednu vrstu petlje

Ne, to je zadatak. I ja sam prvo uradio sa petljom, i odgovaraju, "pokusaj bez petlje sad", a ja nemam ideje kako.

Zadatak treba da ima u sebi funkciju int djelilac(int a, int b). :S

 

U tom slučaju upotrijebi rekurziju i Euklidov algoritam.

Bit Euklidovog algoritma se sastoji u ovom:

Ako je neki k djeljitelj broja a i b tada a = m *k i b = n * k

Iz te relacije lako je vidljivo da a - b = (m - n) * k, ako je a > b, što u stvari znači da je k djeljitelj i razlike a - b, što znači gcd(a, b) = gcd(a-b, b), čime imamo mogućnost da smanjujemo veći do 0,

a manji postaje gcd (najmanji zajednički djeljitelj).

 

Međutim, ovaj postupak zahtijeva puno iteracija, pogotovo ako je veći broj puno veći od manjeg.

Tu uskače dijeljenje jer vrijedi relacija a = n * b + ostatak, gdje smo u stvari a smanjili za multiplicirani b i očuvali gornju relaciju. Veći smanjujemo do 0, a manji postaje gcd.

 

Implementacija je jednostavna:

 

int GCD(int a, int b)

{

   if(b == 0) return a;

   GCD(b, a%b); 

}

 

Poruka je uređivana zadnji put čet 23.5.2013 13:05 (Floki).
17 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
Simon Ghost Riley kaže...
Nisam siguran gdje mogu postaviti temu o radu u Shell Script. Ima li neko da zna i da je voljan pomoci, postavio bi mu nekoliko pocetnickih pitanja.

Ako pod "shell skripte" mislis na bash, onda mozes u neku od ovih tema staviti pitanje ili napravi novu temu "Programiranje u bash-u - pitanja i odgovori". Nece biti posjecena kao ova, ali moze pomoci.

Perhaps today IS a good day to die. PREPARE FOR RAMMING SPEED!
14 godina
neaktivan
offline
Programiranje u C++-u - pitanja i odgovori

Bok svima. Početnik sam u programiranju te bih vas zamolio za pomoć u vezi jednog (vama) jednostavnog zadatka.

Zadatak je iz knjige demistificirani C++ (str. 97,98).

Prvo je dan primjer programa u kojem se za unešeni datum određuje da li pada u radne dane ili u dane vikenda.

Prikazan je na slici.

[IMG]http://i44.tinypic.com/2w1ruvp.jpg[/IMG]

Sami zadatak glasi:

Primjer modificirajte tako da dodatno ispitujete da li zadani datum pada na neki blagdan (za početak ispitajte samo za 25.12). Ako pada na blagdan ili ako pada u dane vikenda, ispišite da je taj dan neradni, inače da je radni. Uputa: na početku programa definirajte bool varijablu jeLiPraznik i postavite ju početno na false. Vrijednost te varijable promijenite ako je zadovoljen uvjet ispitivanja za blagdane ili ako se unutar switch-a ispostavi da datum pada u subotu ili nedjelju. Na kraju programa ispitajte vrijednost varijable i ispišite odgovarajuću poruku.

 

Znam da mi je dana i uputa i sve, ali ipak se ne snalazim.

Kako se ubacuje kod na forum, javljalo mi je neku grešku.

Hvala unaprijed.

 
0 0 hvala 0
12 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
Floki kaže...
pocetnik_amater kaže...
rustweaver kaže...
pocetnik_amater kaže...

 Zar ovo while-if ne predstavlja jednu vrstu petlje

Ne, to je zadatak. I ja sam prvo uradio sa petljom, i odgovaraju, "pokusaj bez petlje sad", a ja nemam ideje kako.

Zadatak treba da ima u sebi funkciju int djelilac(int a, int b). :S

 

U tom slučaju upotrijebi rekurziju i Euklidov algoritam.

Bit Euklidovog algoritma se sastoji u ovom:

Ako je neki k djeljitelj broja a i b tada a = m *k i b = n * k

Iz te relacije lako je vidljivo da a - b = (m - n) * k, ako je a > b, što u stvari znači da je k djeljitelj i razlike a - b, što znači gcd(a, b) = gcd(a-b, b), čime imamo mogućnost da smanjujemo veći do 0,

a manji postaje gcd (najmanji zajednički djeljitelj).

 

Međutim, ovaj postupak zahtijeva puno iteracija, pogotovo ako je veći broj puno veći od manjeg.

Tu uskače dijeljenje jer vrijedi relacija a = n * b + ostatak, gdje smo u stvari a smanjili za multiplicirani b i očuvali gornju relaciju. Veći smanjujemo do 0, a manji postaje gcd.

 

Implementacija je jednostavna:

 

int GCD(int a, int b)

{

   if(b == 0) return a;

   GCD(b, a%b); 

}

 

 Eh ovo je vec odlicno. Hvala ti puno na ovom objasnjenju. Nisam do sad cuo za ovaj Euklidov algoritam. Pokusat cu pomocu njega uraditi, pa cemo vidjeti rezultat.

15 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
1domagoj1 kaže...
Simon Ghost Riley kaže...
Nisam siguran gdje mogu postaviti temu o radu u Shell Script. Ima li neko da zna i da je voljan pomoci, postavio bi mu nekoliko pocetnickih pitanja.

Ako pod "shell skripte" mislis na bash, onda mozes u neku od ovih tema staviti pitanje ili napravi novu temu "Programiranje u bash-u - pitanja i odgovori". Nece biti posjecena kao ova, ali moze pomoci.

Da, na bash sam mislio. Snasao sam se pomocu nekih knjiga i sada mi se cini vrlo zanimljivo, a narednih semestara cemo se puno baviti bashom, tako da cu napraviti uskoro temu, cisto da postoji na forumu.

Loyal to the game
17 godina
offline
Re: Programiranje u C++-u - pitanja i odgovori
gigacer kaže...

Bok svima. Početnik sam u programiranju te bih vas zamolio za pomoć u vezi jednog (vama) jednostavnog zadatka.

Zadatak je iz knjige demistificirani C++ (str. 97,98).

Prvo je dan primjer programa u kojem se za unešeni datum određuje da li pada u radne dane ili u dane vikenda.

Prikazan je na slici.

[IMG]http://i44.tinypic.com/2w1ruvp.jpg[/IMG]

Sami zadatak glasi:

Primjer modificirajte tako da dodatno ispitujete da li zadani datum pada na neki blagdan (za početak ispitajte samo za 25.12). Ako pada na blagdan ili ako pada u dane vikenda, ispišite da je taj dan neradni, inače da je radni. Uputa: na početku programa definirajte bool varijablu jeLiPraznik i postavite ju početno na false. Vrijednost te varijable promijenite ako je zadovoljen uvjet ispitivanja za blagdane ili ako se unutar switch-a ispostavi da datum pada u subotu ili nedjelju. Na kraju programa ispitajte vrijednost varijable i ispišite odgovarajuću poruku.

 

Znam da mi je dana i uputa i sve, ali ipak se ne snalazim.

Kako se ubacuje kod na forum, javljalo mi je neku grešku.

Hvala unaprijed.

bool jeLiPraznik = false;

if(dan == 25 && mjesec == 12)

    jeLiPraznik = true;

else

switch(datum%7)

{

   case 1:

   case 2:

      jeLiPraznik = true;

      break;

}

if(jeLiPraznik)

  cout<< "Neradni dan << endl;

else

  cout<< "Radni dan" << endl;

 

Ako nas interesira samo to da li je dan radni, postavimo varijablu jeLiPraznik na false, ispitamo je li Božić u if uvjetu, a u switch ulazimo jedino ako nije Božić, a tu isptujemo jedino da li je subota ili nedjelja, ispitivanje drugih dana u switchu nas ne interesira jer smo pošli od pretpostavke da je dan radni, pa ispitujemo samo da li je neradni dan.

Poruka je uređivana zadnji put pet 24.5.2013 12:38 (Floki).
13 godina
neaktivan
offline
Programiranje u C++-u - pitanja i odgovori

Pozdrav imam jedan zadatak koji hitno trebam odraditi.

Korisnik treba da unosi brojeve, a program se treba da zavrsi tek kada korisnik unese neko slovo.

 
0 0 hvala 0
17 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
wall kaže...

Pozdrav imam jedan zadatak koji hitno trebam odraditi.

Korisnik treba da unosi brojeve, a program se treba da zavrsi tek kada korisnik unese neko slovo.

Koliko si napravio do sad? Gdje si zapeo?

Perhaps today IS a good day to die. PREPARE FOR RAMMING SPEED!
12 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
1domagoj1 kaže...
wall kaže...

Pozdrav imam jedan zadatak koji hitno trebam odraditi.

Korisnik treba da unosi brojeve, a program se treba da zavrsi tek kada korisnik unese neko slovo.

Koliko si napravio do sad? Gdje si zapeo?

Vidis da covjek hoce sve gotovo. :D

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

Nampomena program trebam napisat u do while petlji.

 
0 1 hvala 0
13 godina
offline
Re: Programiranje u C++-u - pitanja i odgovori
wall kaže...

Pozdrav imam jedan zadatak koji hitno trebam odraditi.

Korisnik treba da unosi brojeve, a program se treba da zavrsi tek kada korisnik unese neko slovo.

Potrebna ti je jedna do-while petlja koja se izvršava dok korisnik ne unese slovo, to ti je sva logika koju trebaš.

Kolege ovdje ne vole kad neko dođe i naruči program, moraš se malo potruditi lagan je zadatak.

It's not how good you are, it's how good you want to be.
Poruka je uređivana zadnji put pet 24.5.2013 14:11 (Artem).
17 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
wall kaže...

Nampomena program trebam napisat u do while petlji.

Napomena: tema se zove "Programiranje u C++-u - pitanja i odgovori", a ne "Programiranje u C++-u - rjesavanje domacih zadaca".

 

Mozda te programiranje niti najmanje ne zanima i to je u redu, ali nekakav minimum, neka opca kultura se mora znati, a ovaj zadatak je upravo to.

Nije nitko od tebe trazio da isprogramiras umjetnu inteligenciju za upravljanje space shuttleom.

 

Znaci, do kud si dosao i sto te tocno muci? Reci, pa cemo ti probati pomoci.

Perhaps today IS a good day to die. PREPARE FOR RAMMING SPEED!
13 godina
neaktivan
offline
Programiranje u C++-u - pitanja i odgovori

#include <iostream>
using namespace std;

void main()
{
    int broj=0;

    do
    {
       cout<<"Unosi brojeve: ";
       cin>>broj;


    } while (broj>='a' && broj<='z');

}

Ovo je to što sam ja probo, i znam da nije dobro. Nije mi jasno na koji cu nacin postaviti uvjet u do- while petji

 

Poruka je uređivana zadnji put pet 24.5.2013 15:09 (wall).
 
0 0 hvala 0
13 godina
offline
Re: Programiranje u C++-u - pitanja i odgovori
wall kaže...

 

 

Deklarisi varijablu broj tipa char ne integer (int), i nije ti ni uslov dobar, trebalo bi biti da se izvrsava dok korisnik unosi broj<'A' || broj>'z'.

 

I nemoraš inicijalizovati varijablu pošto koristiš do-while petlju.

Znači ovako bi ti trebalo izgledati:

 

char broj;

 

//....

 

}while(broj<'A' || broj>'z'); 

 

Samo te dvije linije izmjeni.

It's not how good you are, it's how good you want to be.
Poruka je uređivana zadnji put pet 24.5.2013 15:42 (Artem).
17 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori

Eto vidis da to nije bilo toliko tesko. Prakticki si sam rijesio zadatak.

 

E sad, kolega ti je napisao kako bi to trebalo izgledati, no evo ti i objasnjenje. Vjerojatno si cuo za tzv. ASCII tablicu:

To je tablica u kojoj su kodirani ASCII kodovi koji predstavljaju tekst (i neke kontrolne kodove) u racunalima. Znaci kad ti napises slovo A na racunalu, on ga procita kao 01000001 jer racunala znaju govoriti samo binarno. E sad, zasto ne mozes uzeti int broj nego mora biti char broj? Zato sto u int pospremas brojeve, a kad pospremis slovo, mogli bi reci da racunalo ne zna sto bi s tim. S druge strane, ako pospremis char, po ovoj tablici racunalo moze char interpretirati kao broj ili kao slovo (ili kao bilo koji drugi znak - mozes mu recimo upisati kod ovog bell-a koji je u prvom stupcu, pa ce ti interni zvucnik pistati).

 

Ono sto ti zapravo kazes racunalu u ovom svojem while uvjetu jest da ponavlja tu petlju dok god su kodovi koje spremas u char manji od koda za slovo 'A' i veci od koda za slovo 'z'. Drugim rijecima, ako se pojavi kod koji je izmedu ta dva slova petlja izbacuje. Sad kad pogledas tablicu, vidjet ces da su sva slova izmedu velikog A i malog z. Dok brojevi idu od koda 48 do koda 57.

 

Evo malo pitanjce, sto bi se dogodilo ako s ovim kodom koji je kolega napisao uneses neki znak umjesto broja. Recimo tocku '.' ili plus '+'. A sto bi se dogodilo ako uneses donju crtu '_' ili uglatu zagradu '['? (hint: pogledaj uvjet i pogledaj tablicu s kodovima)

Perhaps today IS a good day to die. PREPARE FOR RAMMING SPEED!
Poruka je uređivana zadnji put pet 24.5.2013 16:27 (1domagoj1).
15 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori

 

#include <iostream> 

using namespace std;

 

int nzd(int a, int b) {

while (a!=b){

if (a>b)

a -= b;

else

b -= a;

}

return a;

}

 

 

int main () {

 

int a, b;

cin >> a;

cin >> b;

 

cout << nzd(a,b);

 

return 0;

}

 

 

Evo, fino rjesenje za onaj moj zadatak: najveci zajednicki djelilac.

Loyal to the game
14 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
Simon Ghost Riley kaže...

 

#include <iostream> 

using namespace std;

 

int nzd(int a, int b) {

while (a!=b){

if (a>b)

a -= b;

else

b -= a;

}

return a;

}

 

 

int main () {

 

int a, b;

cin >> a;

cin >> b;

 

cout << nzd(a,b);

 

return 0;

}

 

 

Evo, fino rjesenje za onaj moj zadatak: najveci zajednicki djelilac.

To sam ti i ja napisao ..

http://www.bug.hr/forum/topic/softver-literatura-usluge/prodaja-knjige-hardware/103166.aspx
15 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
Intelovac123 kaže...
Simon Ghost Riley kaže...

 

#include <iostream> 

using namespace std;

 

int nzd(int a, int b) {

while (a!=b){

if (a>b)

a -= b;

else

b -= a;

}

return a;

}

 

 

int main () {

 

int a, b;

cin >> a;

cin >> b;

 

cout << nzd(a,b);

 

return 0;

}

 

 

Evo, fino rjesenje za onaj moj zadatak: najveci zajednicki djelilac.

To sam ti i ja napisao ..

Jao, hahahha, izvini molim te, bio sam ubijedjen da je drugi nacin kod tebe bio. Koji sam ja .... :D

Loyal to the game
17 godina
offline
Programiranje u C++-u - pitanja i odgovori

Svejedno, to bi i u petlji trebalo napisati preko ostatka cjelobrojnog dijeljenja iz razloga koje sam gore naveo.

Ako je velika razlika između većeg i manjeg broja, kod oduzimanja ima puno iteracija. Kod dijeljenja, odnosno operatora modulo nema više od 5.

A modulo je pogodan i što ne zahtjeva redosljed parametara veći i manji.

 

 

ostatak = a %b;

a = b;

b = ostatak;

Poruka je uređivana zadnji put pet 24.5.2013 22:03 (Floki).
 
2 0 hvala 1
14 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori

Progam bi trebao i za unešeni datum koji spada u subotu ili nedjelju ispisati da je Neradni dan. Ovaj kod recimo za sutra 25 5 2013 ispiše da je radni. Ja sam to riješio malom izmjenom u switchu ali mi se sada za unešeni datum koji pada u dane vikenda dva puta ispisuje Neradni dan. Na koji način  to riješiti? 

 

Kod je na slici.

 

Još jednom, kako se umeće kod na forum?

 

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

Stavi ovakav switch

 

switch(datum%7)

{

  case 0:

  case 1:

    jeLiPraznik = true;

    break;

}

 

 

 
0 0 hvala 0
14 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
Floki kaže...

Stavi ovakav switch

 

 

switch(datum%7)

{

  case 0:

  case 1:

    jeLiPraznik = true;

    break;

}

 

 

 

Hvala, sada radi. {#}

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

 

Još jednom, kako se umeće kod na forum?

Imas kad pises novu poruku gore "Stilovi".

Odaberi "Kod" i pisi.
Shift + Enter je za novi red.

 

Samo Enter je novi komad koda.

Perhaps today IS a good day to die. PREPARE FOR RAMMING SPEED!
13 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori

Evo da odgovorim na ovo pitanje koje si mi postavio. Kada bi napisao '.' program bi se nastavio dalje izvrsavati isto tako i sa '+', ali kada bi stavio '_' ili '[' program bi se zavrsio.

13 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
1domagoj1 kaže...

Eto vidis da to nije bilo toliko tesko. Prakticki si sam rijesio zadatak.

 

E sad, kolega ti je napisao kako bi to trebalo izgledati, no evo ti i objasnjenje. Vjerojatno si cuo za tzv. ASCII tablicu:

To je tablica u kojoj su kodirani ASCII kodovi koji predstavljaju tekst (i neke kontrolne kodove) u racunalima. Znaci kad ti napises slovo A na racunalu, on ga procita kao 01000001 jer racunala znaju govoriti samo binarno. E sad, zasto ne mozes uzeti int broj nego mora biti char broj? Zato sto u int pospremas brojeve, a kad pospremis slovo, mogli bi reci da racunalo ne zna sto bi s tim. S druge strane, ako pospremis char, po ovoj tablici racunalo moze char interpretirati kao broj ili kao slovo (ili kao bilo koji drugi znak - mozes mu recimo upisati kod ovog bell-a koji je u prvom stupcu, pa ce ti interni zvucnik pistati).

 

Ono sto ti zapravo kazes racunalu u ovom svojem while uvjetu jest da ponavlja tu petlju dok god su kodovi koje spremas u char manji od koda za slovo 'A' i veci od koda za slovo 'z'. Drugim rijecima, ako se pojavi kod koji je izmedu ta dva slova petlja izbacuje. Sad kad pogledas tablicu, vidjet ces da su sva slova izmedu velikog A i malog z. Dok brojevi idu od koda 48 do koda 57.

 

Evo malo pitanjce, sto bi se dogodilo ako s ovim kodom koji je kolega napisao uneses neki znak umjesto broja. Recimo tocku '.' ili plus '+'. A sto bi se dogodilo ako uneses donju crtu '_' ili uglatu zagradu '['? (hint: pogledaj uvjet i pogledaj tablicu s kodovima)

Evo da odgovorim na ovo pitanje koje si mi postavio. Kada bi napisao '.' program bi se nastavio dalje izvrsavati isto tako i sa '+', ali kada bi stavio '_' ili '[' program bi se zavrsio.

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

Evo da odgovorim na ovo pitanje koje si mi postavio. Kada bi napisao '.' program bi se nastavio dalje izvrsavati isto tako i sa '+', ali kada bi stavio '_' ili '[' program bi se zavrsio.

Upravo to, a znas li objasniti zasto je to tako?

Perhaps today IS a good day to die. PREPARE FOR RAMMING SPEED!
13 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
1domagoj1 kaže...
wall kaže...

Evo da odgovorim na ovo pitanje koje si mi postavio. Kada bi napisao '.' program bi se nastavio dalje izvrsavati isto tako i sa '+', ali kada bi stavio '_' ili '[' program bi se zavrsio.

Upravo to, a znas li objasniti zasto je to tako?

Zbog toga sto se '.' po ascii tablici nalazi prije slova 'A' isto tako i '+', a '_' i '[' nalaze se između 'A' i 'z'.

E-mail:
Lozinka:
 
vrh stranice