Pitanje za C++
Prikazujem rezultate 1 do 24 od 24

Tema: Pitanje za C++

  1. #1
    Iskusan GrimReaper (avatar)
    Učlanjen
    06.04.2004.
    Pol
    muški
    Lokacija
    Nish
    Poruke
    5.006
    Reputaciona moć
    141

    Podrazumevano C++ zadaci

    Kako da u C++-u oznachavam cifre? Znachi, treba mi da ispitam prvu i zadnju cifru nekog broja, pa kako to da naznachim C++-u? Hvala.
    Poslednji put ažurirao/la GrimReaper : 05.02.2006. u 20:00 Razlog: Promena teme :)
    Laugh and the world laughs with you. Weep and you weep alone.



  2. #2
    Primećen član
    Učlanjen
    24.11.2003.
    Poruke
    641
    Reputaciona moć
    58

    Podrazumevano Re: Pitanje za C++

    koristi deljenje i ostatke, ili ako ti treba za velike brojeve napravi klasu gde ce niz char-ova da bude broj ( mislim da je tako lakse)

  3. #3
    Iskusan GrimReaper (avatar)
    Učlanjen
    06.04.2004.
    Pol
    muški
    Lokacija
    Nish
    Poruke
    5.006
    Reputaciona moć
    141

    Podrazumevano Re: Pitanje za C++

    Uh, necu moci tako, jer imam niz brojeva, i iz njega, na osnovu prve i zadnje cifre, treba da izdvojim neke (konkretno, ako je prva cifra 2 puta veca od zadnje).
    Laugh and the world laughs with you. Weep and you weep alone.

  4. #4
    Aktivan član GoldenLady (avatar)
    Učlanjen
    12.05.2005.
    Pol
    ženski
    Poruke
    1.677
    Reputaciona moć
    63

    Podrazumevano Re: Pitanje za C++

    lenght

  5. #5
    Ističe se juznivetar (avatar)
    Učlanjen
    12.02.2005.
    Pol
    muški
    Lokacija
    -
    Poruke
    2.041
    Reputaciona moć
    67

    Podrazumevano Re: Pitanje za C++

    Funkcija itoa, konverzija integera u char, tako ces imati manipulaciju sa svakom jedinicom u broju preo chara, ako trebaju dalje da se vrse neke operacije sa njima, ponovo ih vratis u integer, al' ooga puta kako ti odgovara (jedan po jedan) itd..

  6. #6
    Primećen član
    Učlanjen
    24.11.2003.
    Poruke
    641
    Reputaciona moć
    58

    Podrazumevano Re: Pitanje za C++

    ajde ubaci deo koda ,tako cemo brze da shvatimo o cemu se radi.

  7. #7
    Iskusan GrimReaper (avatar)
    Učlanjen
    06.04.2004.
    Pol
    muški
    Lokacija
    Nish
    Poruke
    5.006
    Reputaciona moć
    141

    Podrazumevano Re: Pitanje za C++

    Nemam kod, ali problem otprilike ide ovako:
    Napraviti program koji ce ispitati sve prirodne brojeve od 1 do 1000, i ispisati one chija je prva cifra dva puta vveca od zadnje.
    Laugh and the world laughs with you. Weep and you weep alone.

  8. #8
    Ističe se juznivetar (avatar)
    Učlanjen
    12.02.2005.
    Pol
    muški
    Lokacija
    -
    Poruke
    2.041
    Reputaciona moć
    67

    Podrazumevano Re: Pitanje za C++

    Rastavis ga u neki char buffer, char buffer[3] (1000 ti netreba), i onda lijepo preko funkcije itoa konvertujes u for petlji for(int i = 0; i < 1000; i++), i u karaktere (buffer, zatim broj, po broj preneses u neki recimo int buffer i ides jednostavnom if petljom provjeru dali je zadnji dva puta veci i ako jeste cout << i << "\n";
    Poslednji put ažurirao/la Sucur : 04.02.2006. u 19:39

  9. #9
    Početnik _Doctor_ (avatar)
    Učlanjen
    05.10.2005.
    Lokacija
    Novi Beograd
    Poruke
    34
    Reputaciona moć
    0

    Podrazumevano Re: Pitanje za C++

    Lepota svega je shto nemorash da koristish nikakav buffer ili da se zezash sa char nizovima vecc koristish obichno deljenje. Evo ga zadatak:

    Kod:
    #include <iostream>
    using namesapce std;
    int main () {
    
    	int pom, zadnja, prva=0;
    
    	for(int i=1; i<1000; i++){
    		pom = i;
    		zadnja = pom % 10;
    		pom /= 10;
    		while(pom){
    			prva = pom;
    			pom/=10;
    		}
    		if ( prva > zadnja * 2 ) cout << i << endl;
    	}
            return 0;
    }
    pozdrav
    "Nobody is safe from me, No' not even me !"

  10. #10
    Primećen član
    Učlanjen
    24.11.2003.
    Poruke
    641
    Reputaciona moć
    58

    Podrazumevano Re: Pitanje za C++

    Citat Original postavio _Doctor_
    Lepota svega je shto nemorash da koristish nikakav buffer ili da se zezash sa char nizovima vecc koristish obichno deljenje. Evo ga zadatak:

    Kod:
    #include <iostream>
    using namesapce std;
    int main () {
    
    	int pom, zadnja, prva=0;
    
    	for(int i=1; i<1000; i++){
    		pom = i;
    		zadnja = pom % 10;
    		pom /= 10;
    		while(pom){
    			prva = pom;
    			pom/=10;
    		}
    		if ( prva > zadnja * 2 ) cout << i << endl;
    	}
            return 0;
    }
    pozdrav

    ali , ne znas koliko cifara ima broj

  11. #11
    Početnik _Doctor_ (avatar)
    Učlanjen
    05.10.2005.
    Lokacija
    Novi Beograd
    Poruke
    34
    Reputaciona moć
    0

    Podrazumevano Re: Pitanje za C++

    Citat Original postavio opi
    ali , ne znas koliko cifara ima broj

    Pa da na tom principu i radi code. Pogledaj malo bolje !

    pozdrav
    "Nobody is safe from me, No' not even me !"

  12. #12
    Ističe se juznivetar (avatar)
    Učlanjen
    12.02.2005.
    Pol
    muški
    Lokacija
    -
    Poruke
    2.041
    Reputaciona moć
    67

    Podrazumevano Re: Pitanje za C++

    Citat Original postavio _Doctor_
    Lepota svega je shto nemorash da koristish nikakav buffer ili da se zezash sa char nizovima vecc koristish obichno deljenje. Evo ga zadatak:

    Kod:
    #include <iostream>
    using namesapce std;
    int main () {
    
    	int pom, zadnja, prva=0;
    
    	for(int i=1; i<1000; i++){
    		pom = i;
    		zadnja = pom % 10;
    		pom /= 10;
    		while(pom){
    			prva = pom;
    			pom/=10;
    		}
    		if ( prva > zadnja * 2 ) cout << i << endl;
    	}
            return 0;
    }
    pozdrav
    Neznam jesi li kompajlirao ovaj kod, al' uglavnom nije tacan, kompajliraj pa ces se i sam uvjeriti, dobit ces neke potpuno druge brojeve, koje zadatak ne trazi.
    A evo odvojio sam vrijeme i odradio zadatak bez koriscenja char-a
    Kod:
    #include <iostream>
    using namespace std;
    int main () 
    {
    int broj = 0, djelilac = 0;
    for(int i = 1; i < 1000; i++)
    {
    if(((i % 10) == 0) && (( (i/2) % 2)== 0) && (i < 100))
    {
    djelilac = i / 20;
    cout << i + djelilac << "\n";
    }
    if(((i % 100) == 0) && (( (i/20) % 2)== 0) && (i >= 100))
    {
    djelilac = (i / 20)/10;
    cout << i + djelilac << "\n";
    }
    }
    }

  13. #13
    Početnik
    Učlanjen
    23.01.2006.
    Lokacija
    Novi Sad
    Poruke
    21
    Reputaciona moć
    0

    Podrazumevano Re: Pitanje za C++

    pA HAJDE SADA MI POMOZI,MOLIM TE!

  14. #14
    Primećen član
    Učlanjen
    24.11.2003.
    Poruke
    641
    Reputaciona moć
    58

    Podrazumevano Re: Pitanje za C++

    f(int broj)
    {
    int prvi,posl;
    posl=broj%10;
    while(broj!=0)
    {
    prvi=broj;
    broj/=10;
    }
    .........

    if prvi=posl*2 ili kako vec........
    }

  15. #15
    Iskusan GrimReaper (avatar)
    Učlanjen
    06.04.2004.
    Pol
    muški
    Lokacija
    Nish
    Poruke
    5.006
    Reputaciona moć
    141

    Podrazumevano Re: Pitanje za C++

    Citat Original postavio Sucur
    Neznam jesi li kompajlirao ovaj kod, al' uglavnom nije tacan, kompajliraj pa ces se i sam uvjeriti, dobit ces neke potpuno druge brojeve, koje zadatak ne trazi.
    A evo odvojio sam vrijeme i odradio zadatak bez koriscenja char-a
    Kod:
    #include <iostream>
    using namespace std;
    int main () 
    {
    int broj = 0, djelilac = 0;
    for(int i = 1; i < 1000; i++)
    {
    if(((i % 10) == 0) && (( (i/2) % 2)== 0) && (i < 100))
    {
    djelilac = i / 20;
    cout << i + djelilac << "\n";
    }
    if(((i % 100) == 0) && (( (i/20) % 2)== 0) && (i >= 100))
    {
    djelilac = (i / 20)/10;
    cout << i + djelilac << "\n";
    }
    }
    }
    Sucure, ovaj kod bash i ne radi, ne ispisuje sve brojeve. Evo nechega shto sam ja sklepao na osnovu Doctorovog koda
    Kod:
    #include <iostream.h>
    
    int main () 
    {
    
    int zadnja, prva;
    
    for(int i=0; i<1000; i++)
    {
      if (i > 0 && i < 100)
      {
        zadnja = i % 10;
        prva = i / 10;
    
      
        
      }
      if (i > 100 && i < 1000)
      {
        zadnja = i % 10;
        prva = i / 100;
        
      
        
      }
      if ( prva == zadnja * 2)
      cout << i << endl;
    }
    system ("PAUSE");
            return 0;
    }
    Poz.
    Poslednji put ažurirao/la GrimReaper : 05.02.2006. u 11:56
    Laugh and the world laughs with you. Weep and you weep alone.

  16. #16
    Početnik _Doctor_ (avatar)
    Učlanjen
    05.10.2005.
    Lokacija
    Novi Beograd
    Poruke
    34
    Reputaciona moć
    0

    Podrazumevano Re: Pitanje za C++

    Ljudi u pravu ste prevideo sam jednu stvar, code je ispisvao sve brojeve koji gde je prva cifra dva puta vecca ili vishe od poslednje. Tako da samo treba promeniti uslov kod ispisa na == umesto >

    Kod:
    #include <iostream>
    using namesapce std;
    int main () {
    
    	int pom, zadnja, prva=0;
    
    	for(int i=1; i<1000; i++){
    		pom = i;
    		zadnja = pom % 10;
    		pom /= 10;
    		while(pom){
    			prva = pom;
    			pom/=10;
    		}
    		if ( prva == zadnja * 2 ) cout << i << endl;
    	}
            return 0;
    }
    pozdrav
    "Nobody is safe from me, No' not even me !"

  17. #17
    Ističe se juznivetar (avatar)
    Učlanjen
    12.02.2005.
    Pol
    muški
    Lokacija
    -
    Poruke
    2.041
    Reputaciona moć
    67

    Podrazumevano Re: Pitanje za C++

    E sad kad sam pogledao tvoj _doctor_ kod vidio sam da sam i ja napravio propust, al' evo ispravljen je sada:
    Kod:
    #include <iostream>
    using namespace std;
    int main () 
    {
    int moduo = 0, mod1 = 0, djelilac = 0;
    for(int i = 1; i < 1000; i++)
    {
    if(((i % 10) == 0) && (( (i/2) % 2)== 0) && (i < 100))
    {
    djelilac = i / 20;
    cout << i + djelilac << "\n";
    }
    moduo = i%10;
    mod1 = i%100;
    if((((i - mod1)/100)) == moduo * 2)
    cout << i << "\n";
    }
    }

  18. #18
    Ističe se juznivetar (avatar)
    Učlanjen
    12.02.2005.
    Pol
    muški
    Lokacija
    -
    Poruke
    2.041
    Reputaciona moć
    67

    Podrazumevano Re: Pitanje za C++

    Evo jos krace:
    Kod:
    #include <iostream>
    using namespace std;
    int main () 
    {
    int moduo = 0, mod1 = 0, djelilac = 0;
    for(int i = 1; i < 1000; i++)
    {
    moduo = i%10; 
    mod1 = i%100;
    if((((i - moduo)/10) == moduo * 2) && (i <= 100))cout << i << "\n";
    if((((i - mod1)/100) == moduo * 2) && (i >= 200))cout << i << "\n";
    }
    }

  19. #19
    Iskusan GrimReaper (avatar)
    Učlanjen
    06.04.2004.
    Pol
    muški
    Lokacija
    Nish
    Poruke
    5.006
    Reputaciona moć
    141

    Podrazumevano Re: Pitanje za C++

    Ma, ok je, vec sam uradio na prethodnoj strani.
    Laugh and the world laughs with you. Weep and you weep alone.

  20. #20
    Iskusan GrimReaper (avatar)
    Učlanjen
    06.04.2004.
    Pol
    muški
    Lokacija
    Nish
    Poruke
    5.006
    Reputaciona moć
    141

    Podrazumevano Re: Pitanje za C++

    Vidim da je za kratko vreme zavladalo veliko interesovanje za moju temu, pa zato mislim da bi mogla fino da posluzi za postavljanje raznih (insteresantih) zadataka. Pomoci ce vezbanju C++-a.
    Laugh and the world laughs with you. Weep and you weep alone.

  21. #21
    Peruzzi nije na forumu
    је дошао тихо и ушао у легенду...
    Domaćin Peruzzi (avatar)
    Učlanjen
    03.08.2003.
    Pol
    muški
    Lokacija
    Shumadija
    Poruke
    3.924
    Reputaciona moć
    92

    Podrazumevano Re: Pitanje za C++

    definitivno


    imam jedan problem koji me muci vec duze vreme.

    kako da ubacujem redom brojeve ili uopste bilo koje elemente u niz (bilo citranjem iz fajla ili sa tastature) dok ne naidjem na neki znak?
    na primeru - korisnik unosi proizvoljan broj cifara i kad se smori upise @ i tada se zavrsava unosenje
    svi brojevi se pakuju u niz

    to naravno izgleda ovako nekako

    while ucitana_vrednost<>'@'
    {
    read(ucitana_vrednost);
    niz[i]= ucitana_vreednost;
    i++;
    }

    ako kako da definisem niz kad ovo i nije odredjeno, tj moze biti beskonacno?


    ok je da stavim npr 10000 i racunam da niko nije dovoljno blesav da kuca 10000 brojeva, ali to nije to... treba da vazi za svaki slucaj...

    da li je to uopste moguce?

    (jer niz zahteva konstantu u definisanju, da nije tako mogao bih preko dva niza pa napravim niz za 1 veci, iskopiram prethodni, obrisem prethodni, ucitam vrednost, pa onda opet iz pocetka)


    aj sad


  22. #22
    Primećen član
    Učlanjen
    04.03.2004.
    Lokacija
    UK
    Poruke
    558
    Reputaciona moć
    56

    Podrazumevano Re: Pitanje za C++

    Hint:

    std::vector<> is your friend

  23. #23
    Početnik _Doctor_ (avatar)
    Učlanjen
    05.10.2005.
    Lokacija
    Novi Beograd
    Poruke
    34
    Reputaciona moć
    0

    Podrazumevano Re: Pitanje za C++

    E sada to je veliki problem i za takve neke zahteve se koriste liste ili kao shto je Lord reko koristish vector, ali da vidish kako bi to bilo sa nizom i zashto on nije pogodan za takve stvari.

    Kod ccu uraditi u C-u zbig realloc funkcije.

    Kod:
    typedef struct array { int* num, len; } Array;
    
    Array* read () {
    
       Array* a = malloc (sizeof(Array)); int number;
       a->num = NULL;
       a->len = 0;
    
       while(1){
          scanf("%d",&number);
       if(number == 9999)break;  //  Jbg ovde sam morao da zrtvujem jednu cifru
          a->num = realloc(a->num, (++a->len) * sizeof(int));
          a->num[a->len-1] = number;
       }
    
       return a;
    }
    E sad ovo nije dobro jer to unishtava komp. Pri svakom pozivanju realloc funkcije stvori se nova memorija za tvoj niz u koju se prepisu potrebni elementi iz starog niza i zatim se stara mem niza izbrishe i tebi se vrati adresa novog niza. Tako da verovatno imas sliku shta se deshava sa memorijom i procesorom pri chitanju 1000000000 elemenata na taj nachin.

    U tu svrhu su ljudi smislili liste, ali otom potom.

    pozdrav
    "Nobody is safe from me, No' not even me !"

  24. #24
    Početnik _Doctor_ (avatar)
    Učlanjen
    05.10.2005.
    Lokacija
    Novi Beograd
    Poruke
    34
    Reputaciona moć
    0

    Podrazumevano Re: Pitanje za C++

    Mada sad' mi dodje ideja za chitanje bez da zrtvujesh bilo koju cifru.

    Kod:
      typedef struct array { int* num, len; } Array;
    
    Array* read () {
    
       Array* a = malloc (sizeof(Array)); int number; char ch;
       a->num = NULL;
       a->len = 0;
    
       while(1){
          scanf("%d%c",&number, &ch);
       if(ch == '.' )break;  
          a->num = realloc(a->num, (++a->len) * sizeof(int));
          a->num[a->len-1] = number;
       }
    
       return a;
    }

    E evo ti link gde sam ukratko objasnio kako funkcionishu liste, ne znam mozda ti dobro dodje:

    http://forum.krstarica.com/showthread.php?t=86164

    pozdrav
    Poslednji put ažurirao/la _Doctor_ : 11.02.2006. u 13:38
    "Nobody is safe from me, No' not even me !"

Slične teme

  1. PITANJE????
    Autor dachahan u forumu Arhiva
    Odgovora: 7
    Poslednja poruka: 09.04.2006., 20:41
  2. Pitanje
    Autor Bustura u forumu Automobilizam
    Odgovora: 4
    Poslednja poruka: 17.04.2004., 01:09

Pravila za slanje poruka

  • Ne možete kreirati novu temu
  • Ne možete poslati odgovor
  • Ne možete dodati priloge
  • Ne možete prepraviti svoju poruku
  •