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

poruka: 7.285
|
čitano: 1.724.933
|
moderatori: XXX-Man, vincimus
+/- sve poruke
ravni prikaz
starije poruke gore
15 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori

U zadatku na USACO-u mi se pojavljuje ovakav input:

 

INPUT FORMAT

 

A file with no more than 20,000 characters. The file has one or more lines which, when taken together, represent one long string. No line is longer than 80 characters (not counting the newline at the end).

i sad neznam kako ću to učitat. I kako bi učitao da se unosi sa tipkovnice, a kako da se učitava iz filea, postoji li nešto kao eof ili eoln u pascalu?

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

Napisao (prepisao) sam ovaj kod 

ali mi prijavljuje jedan jedini problem a to je u funkciji  random u liniji koda

 

 int *niz, n, i, random;

  int randomize();

 

  cout<<"unesite broj elementa polja";

  cin>> n;

 

  if ((niz = (int*)malloc(n * sizeof(int)))==NULL){

      cout<< "nema dovoljno memorije";

      exit(1);

      }

 

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

 

      niz[i] = random(100);

 

      cout<< "niz["<< i <<"]=" << niz[i] << endl;

      }

 

  free(niz);

It's hard to believe That there's nobody out there It's hard to believe That I'm all alone...
 
0 0 hvala 0
17 godina
moderator
offline
Re: Programiranje u C++-u - pitanja i odgovori
unknown kaže...

Napisao (prepisao) sam ovaj kod 

ali mi prijavljuje jedan jedini problem a to je u funkciji  random u liniji koda

 

KOJI problem?

14 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori

Pokušaj možda radije kombinaciju srand i rand.

 

http://www.cplusplus.com/reference/clibrary/cstdlib/srand/

 

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

Napisao (prepisao) sam ovaj kod 

ali mi prijavljuje jedan jedini problem a to je u funkciji  random u liniji koda

 

KOJI problem?

random ne može biti funkcija...

TracerCPP kaže...

Pokušaj možda radije kombinaciju srand i rand.

 

http://www.cplusplus.com/reference/clibrary/cstdlib/srand/

 

budem pogledao :)

It's hard to believe That there's nobody out there It's hard to believe That I'm all alone...
17 godina
moderator
offline
Re: Programiranje u C++-u - pitanja i odgovori
unknown kaže...
mbaksa kaže...
unknown kaže...

Napisao (prepisao) sam ovaj kod 

ali mi prijavljuje jedan jedini problem a to je u funkciji  random u liniji koda

 

KOJI problem?

random ne može biti funkcija...

Što to znači da random ne može biti funkcija?

 

Kao prvo - nisam čuo za to da u C++-u postoji funkcija random. Kao drugo - zašto imaš varijablu naziva random (dakle istog naziva kao i funkcija) koju zapravo nigdje ne koristiš?

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

Tako jednostavan zadatak  a ja ne znam rijesiti:

Napisi program koji ispisuje zajednicke djelioce dva unesena broja .
http://www.bug.hr/forum/topic/softver-literatura-usluge/prodaja-knjige-hardware/103166.aspx
 
0 0 hvala 0
17 godina
moderator
offline
Re: Programiranje u C++-u - pitanja i odgovori
Intelovac123 kaže...

Tako jednostavan zadatak  a ja ne znam rijesiti:

Napisi program koji ispisuje zajednicke djelioce dva unesena broja .

Već su takvi zadaci stoput bili rješavani. Čuo si za operator % (modulo)? Koji vraća ostatak od cjelobrojnog dijeljenja? Dakle,

 

modulo = broj1 % broj2;

 

Kad je broj2 dijeljenik broja1? Kad je modulo jednak nuli.

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

Jesam cuo sam za %..

 

I radio sam druge zadatke sa tim ali ovaj..

http://www.bug.hr/forum/topic/softver-literatura-usluge/prodaja-knjige-hardware/103166.aspx
 
0 0 hvala 0
17 godina
moderator
offline
Re: Programiranje u C++-u - pitanja i odgovori
Intelovac123 kaže...

Jesam cuo sam za %..

 

I radio sam druge zadatke sa tim ali ovaj..

I? Koji su zajednički djelitelji dva broja? Oni kod kojih je modulo za oba broja jednak nuli, zar ne?

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

Samo provjeriš sa modolom da li je ostatak djeljenja 0, mbaksa ti je već napisao kako sad to samo implemenitiraj u svoj kod.

Evo ti mali primjer:
#include<iostream>

#include<cstdlib>

using namespace std;

int main()

{

   int broj;

   cout<<"Unesi neki broj za koji misliš da je djeljiv sa 3!"<<endl;

   cin>>broj;

   if(!(broj%3))

   {

        cout<<"Broj je djeljiv sa 3."<<endl;

   }

   else

   {

        cout<<"Broj nije djeljiv sa 3."<<endl;

   }

   system("PAUSE");

   return 0;

}

 

Također možeš u if statementu, kao argument staviti ovako:

if(broj%3==0)Znači ti postavljaš uvjet da li je ostatak 0, tj. da li je taj broj djeljiv sa nekim brojem bez ostatka.

Ovo sad samo ubaci u svoj primjer, samo imaš promijeniti neke stvari.

Programming is understanding. – Kristen Nygaard
17 godina
moderator
offline
Re: Programiranje u C++-u - pitanja i odgovori
royalhero kaže...
   if(!(broj%3))

   {

        cout<<"Broj je djeljiv sa 3."<<endl;

   }

   else

   {

        cout<<"Broj nije djeljiv sa 3."<<endl;

   }

Toplo ti preporučam da to ne radiš, jer je zbunjujuće i zapravo logički pogrešno. Naime, ti ispituješ je li sporni izraz true ili false, a izraz je zapravo cjelobrojnog tipa. Drugim riječima, integer podvaljuješ pod bool. Da, proći će ti u ovom slučaju, jer C/C++ za false smatraju cjelobrojnu vrijednost 0, a sve ostale vrijednosti za true, no takve stvari u drugim programskim jezicima možda neće proći, jer AFAIK u nekima ne možeš dati integer ako se traži boolean.

 

Dakle, preporučam ti da se držiš onoga što si i sam predložio kolegi. {#}

 

Poruka je uređivana zadnji put pon 28.11.2011 15:16 (mbaksa).
13 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
mbaksa kaže...
 C/C++ za false smatraju cjelobrojnu vrijednost 0

Main-u sam vratio false i razumio je kao 0.

Programming is understanding. – Kristen Nygaard
17 godina
moderator
offline
Re: Programiranje u C++-u - pitanja i odgovori
royalhero kaže...
mbaksa kaže...
 C/C++ za false smatraju cjelobrojnu vrijednost 0

Main-u sam vratio false i razumio je kao 0.

Ne slušaš me. Reci, postoji li razlika između operatora & i &&? Zašto bi postojali odvojeni operatori za AND (I) - jedni bitwise (koji se tiču cijele varijable) i drugi za logički tip?

 

Da, "razumio je kao 0", ali poanta je u tome da ti vraćaš logičku (bool) vrijednost, a on te traži int.

 

 

I rekoh ti - neki programski jezici (zapravo, vjerojatno većina starijih) to ne podržava. Recimo Pascal - probaj kompajlirati program s ovom linijom, pa da vidiš!

  if 5 mod 2 then WriteLn('Jupi, uspio sam podvaliti integer pod boolean!');

 

Kompaliranje ti neće proći. {#} Zašto? Zato jer je rezultat operacije modulo cijeli broj, a struktura if traži logičku vrijednost.

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

Tek se učim programirati u c++ pa mi nemojte zamjeriti na glupo pitanje.

 

Znam da se korjen moze izvlaciti naredbom

 

cin>>a;

sqrt (a);

cout<<sqrt(a)<<endl;

 

ali zasto isto tako nije moguce na sljedeci nacin

 

cin>>a;

a=b*b;

cout<<b<<endl;

 

 

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

Tek se učim programirati u c++ pa mi nemojte zamjeriti na glupo pitanje.

 

Znam da se korjen moze izvlaciti naredbom

 

cin>>a;

sqrt (a);

cout<<sqrt(a)<<endl;

 

ali zasto isto tako nije moguce na sljedeci nacin

 

cin>>a;

a=b*b;

cout<<b<<endl;

 

 

Zato jer to nema smisla. U C++-u varijabla na lijevoj strani operatora '=' je ona varijabla kojoj pridruzujes neku vrijednost. Dakle, ti si upisao u varijablu a neku vrijednost (cin >> a). Onda radis a = b*b, tj. pridruzujes varijabli a vrijednost b*b (koju btw. ne znamo) i zapravo onu prvu vrijednost koju si upisao prepises s vrijednoscu b*b i onda nakon toga ispisujes vrijednost varijable b. Mislim da je iz opisa dovoljno jasno da ovo nema smisla, jel?

C provides a programmer with more than enough rope to hang himself. C++ provides a firing squad, blindfold and last cigarette.
Poruka je uređivana zadnji put pon 28.11.2011 16:53 (1domagoj1).
17 godina
moderator
offline
Re: Programiranje u C++-u - pitanja i odgovori
CRT kaže...
 

cin>>a;

a=b*b;

cout<<b<<endl;

 

Reci - jesi ti tu igdje izračunao b? Ovo ti čak ni na matematici ne bi prošlo. Na matematici bi išlo:

 

a=b*b

b*b=a

b=korijen od a  (ili a na 1/2)

 

 

Pazi jednu jako važnu stvar: a=b*b NIJE jednadžba. To je naredba za pridruživanje varijabli a rezultat operacije b*b. Operator = u C/C++-u znači pridruživanje/dodjelijvanje vrijednosti, a ne usporedbu! Za usporedbu (dakle, kao u jednadžbama) koristi se operator ==.

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

Ma razumio sam o čemu govoriš, ali ti nisi mene, onaj post je bio samo potvrda onoga što si ti rekao-da C/C++ razumije False kao 0.

 

Programming is understanding. – Kristen Nygaard
14 godina
offline
Programiranje u C++-u - pitanja i odgovori

Može pomoć?

1. Napišite c program koji unosi troznamenkaste prirodne brojeve sve dok se ne unese 999. Za svaki uneseni broj provjeriti da li je suma prve i zadnje znamenke veca od srednje znamenke te ispisati odgovarajucu poruku.

Primjer: 173 Suma prve i zadnje znamenke iznosi 4 sto je manje od 7!

2. Napisati c program koji unosi broj m koji mora biti manji od 10 i veci od 5. Unijeti m cetveroznamenkastih realnih brojeva u jednodimenzionalno polje te naci sumu svih brojeva u polju. Ispisati je u obliku xxxx.xx (na dvije decimale).


Totalni sam noob, aka početnik u programiranju stoga ne zamjerite!
Unaprijed hvala 

Ako se slažeš, ne košta te ništa TU. Ako sam ti uz to pomogao, neka ti ne bude mrsko stisnuti i HVALA! ;)
Moj PC  
0 0 hvala 0
15 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
sudy_freak kaže...

Može pomoć?

1. Napišite c program koji unosi troznamenkaste prirodne brojeve sve dok se ne unese 999. Za svaki uneseni broj provjeriti da li je suma prve i zadnje znamenke veca od srednje znamenke te ispisati odgovarajucu poruku.

Primjer: 173 Suma prve i zadnje znamenke iznosi 4 sto je manje od 7!

2. Napisati c program koji unosi broj m koji mora biti manji od 10 i veci od 5. Unijeti m cetveroznamenkastih realnih brojeva u jednodimenzionalno polje te naci sumu svih brojeva u polju. Ispisati je u obliku xxxx.xx (na dvije decimale).


Totalni sam noob, aka početnik u programiranju stoga ne zamjerite!
Unaprijed hvala 

na početku definiraj varijable za broj koji se unosi(npr. x), a možeš i varijable za tri znamenke

možeš koristi do while petlju da bi uvjet provjeravo na kraju a tvoj uvjet je da je broj različit od 999 (x!=999)

unutar petlje trebaš unijet x koji već treba biti definiran kao cijeli broj

vrijednost prve znamenke ti je x / 100
vrijednost druge znamenke je  x /10 % 10

vrijednost treće znamenke je x % 10

i sad jednostavno as if naredbom provjeriš odnos među znamenkama

 

ovaj put trebaš definirat niz od 10 elemenata, broj m, kontrolnu varijablu i, te varijablu za zboroj

opet koristišdo while  petlju da učitaš broj koji je manji od 10 i veći od 5

zatim učitavaš brojeve pomoću for petlje, a usput ih zbrajaš te moraš pazit da si negdje prije stavio da je početna vrijednost zbroja 0

 

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

Ni noviji programski jezici ne podržavaju implicitno konvertiranje int tipa u bool.

U C# ovo ne može proći.

To što se u C++ može izvršiti konverzija je nasljedstvo iz C, koji nema bool vrijednost, u kojem su bool izrazi u stvari int vrijednosti, ništa čudno za C++ - prihvati drugi koncept, a istovremeno zadrži stari.

Ova boolean koncepcija je očito pobjedila  koncept starog C, i treba je upotrebljavati i u C++ - bez obzira što zahvaljujući nasljedstvu iz C noviji C++ nudi oba koncepta - ako ništa drugo varijabla bool zauzima 4 puta manje prostora od int varijable, da ne spominjemo OO pristup, čim vidimo funkcijski član klase koji ima bool povratnu vrijednost - znamo što znači.

  int broj = 5;
  if (broj % 3)
  {
     //
  }

Poruka je uređivana zadnji put uto 29.11.2011 13:30 (Floki).
 
2 0 hvala 1
16 godina
neaktivan
offline
Programiranje u C++-u - pitanja i odgovori

Evo moje pitanje, imam neku varijablu koja je zapisana u hexadecimali recimo a=0xFF; znaci to je 11111111 kako ja to mogu invertirati u 0x00 00000000 nekom funkcijom?

Hvala unaprijed.

92% tinejđera sluša turbo folk, pop, rap ili tehno. Ako si među onih 8% koji još uvijek slušaju pravu rock i metal glazbu kopiraj si ovo u potpis.
Moj PC  
0 0 hvala 0
13 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori

S NOT operatorom tj. ~a. Iako pazi jer možda nećeš dobiti ono što si htio.

 

Budi precizniji ;) Koliko bitova želiš invertirano?

 

P.S. Potpis ti je neprikladan.

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

Hoću sve bitove invertirat, znaci ako imam 10111111 onda ocu 01000000, to jest tih 8 bitova

92% tinejđera sluša turbo folk, pop, rap ili tehno. Ako si među onih 8% koji još uvijek slušaju pravu rock i metal glazbu kopiraj si ovo u potpis.
Poruka je uređivana zadnji put uto 29.11.2011 17:35 (notebook).
Moj PC  
0 0 hvala 0
13 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori

Onda moraš koristiti char za spremanje brojeva jer on uglavnom ima 8 bitova.

Ako koristiš short, on ima najmanje 16 bitova, long ima najmanje 32, a int ovisi uvelike o arhitekturi.

 

Dakle, koristi char.

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

Hoću sve bitove invertirat, znaci ako imam 10111111 onda ocu 01000000, to jest tih 8 bitova

Za to se koristi bitovni NOT na unsigned char tipu.

 

unsigned char broj=0xBF;  //postavi varijablu broj na binarnu vrijednost 10111111
~broj;                    //invertiraj bitove

http://www.cs.umd.edu/class/sum2003/cmsc311/Notes/BitOp/bitwise.html

My computer once beat me at chess, but we got even after a round of boxing.
17 godina
offline
Programiranje u C++-u - pitanja i odgovori

Tko se hoće malo igrati, napisati bool funkciju koja ispituje overflow, odnosno underflow kod zbrajanja dva int broja?

Naravno, ne odnosi se na iskusne (oni mogu dati tipove ako tko pita), nego na mlade snage koje vježbaju.{#}

Poruka je uređivana zadnji put uto 29.11.2011 19:29 (Floki).
 
0 0 hvala 0
15 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
Floki kaže...

Tko se hoće malo igrati, napisati bool funkciju koja ispituje overflow, odnosno underflow kod zbrajanja dva int broja?

Iskreno, mislim da nitko od njih ni ne zna sto je overflow {#}

My computer once beat me at chess, but we got even after a round of boxing.
17 godina
offline
Re: Programiranje u C++-u - pitanja i odgovori
rustweaver kaže...
Floki kaže...

Tko se hoće malo igrati, napisati bool funkciju koja ispituje overflow, odnosno underflow kod zbrajanja dva int broja?

Iskreno, mislim da nitko od njih ni ne zna sto je overflow {#}

ma nije neka mistika, ako je input  int a = 2 milijarde i  int b =148 milijuna da output bude overflow - odnosno da funkcija vraća true.

 

ili ako idemo malim koracima i zamislimo neku maksimalnu vrijednost 10 koju ne smijemo prijeći

int max = 10;

int broj1 = 6;

int broj2 = 5;

Dakle kad zbrojimo ova dva broja - prešli smo max vrijednost

int razlika = max - broj1;

if(razlika < broj2) - overflow

 

i po istom obrascu za negativne brojeve

nakon što vidimo koliko nam je prostora za zbrajanje do granice prelijevanja  ostalo nakon što je prvi broj zauzeo teritorij,

usporedimo taj preostali prostor sa drugim brojem

Poruka je uređivana zadnji put sri 30.11.2011 18:30 (Floki).
E-mail:
Lozinka:
 
vrh stranice