Programiranje u C-u - od svega pomalo izdvojena tema

poruka: 1.661
|
čitano: 387.958
|
moderatori: Lazarus Long, XXX-Man, vincimus
+/- sve poruke
ravni prikaz
starije poruke gore
15 godina
neaktivan
offline
Re: Programiranje u C-u - od svega pomalo
Cvetić kaže...
printf("Brojevi manji od k su %d\n, niz[i]");

Ali na zalost nece...{#}{#}

Pogledaj sto si s navodnicima napravio.

Zar ne bi trebao zatvoriti navodnike prije zareza?

 

printf("Brojevi manji od k su %d\n", niz[i]);

My computer once beat me at chess, but we got even after a round of boxing.
13 godina
neaktivan
offline
Re: Programiranje u C-u - od svega pomalo

Funkcija printf prima ergumente, niz znakova i varijable, ti si joj predao samo znakovni niz u kojem si postavio format varijable koja se treba, pri ispisu, zamijeniti sa tom varijablom.
Kao što je @rustweaver napisao.

13 godina
neaktivan
offline
Re: Programiranje u C-u - od svega pomalo
rustweaver kaže...
Cvetić kaže...
printf("Brojevi manji od k su %d\n, niz[i]");

Ali na zalost nece...{#}{#}

Pogledaj sto si s navodnicima napravio.

Zar ne bi trebao zatvoriti navodnike prije zareza?

 

printf("Brojevi manji od k su %d\n", niz[i]);

Ok. tu je greska. Hvala.

13 godina
neaktivan
offline
Re: Programiranje u C-u - od svega pomalo

za BenjamiX

 

 main()
{
int broj;
 char znak[5];
int i;
int zbroj=0;

int pom1;

scanf("unesi petero znamenkasti broj: %d",&broj);
for(i=0;i<5;i++)
   {
    printf("unesi %d. znak...",i+1);
    scanf("%c",&znak[i]);
   }

//provjera znaka
for(i=0;i<5;i++)
{
    if(znak[i]=='D')
      {
       if(i==0)
        { pom1=broj;
          pom1=broj/10000;
         
          zbroj=zbroj+pom1;
        }
       if(i==1)
        { pom1=broj;
          pom1=broj/1000;
          pom1=pom1%10;
          zbroj=zbroj+pom1;
        }
       if(i==2)
        { pom1=broj;
          pom1=broj/100;
          pom1=pom1%10;
          zbroj=zbroj+pom1;
        }
       if(i==3)
        { pom1=broj;
          pom1=broj/10;
          pom1=pom1%10;
          zbroj=zbroj+pom1;
        }
         if(i==4)
        { pom1=broj;
         
          pom1=pom1%10;
          zbroj=zbroj+pom1;
        }

      }

}
printf("Zbroj je:  %d/n",zbroj);
retorn 0;

}
mislim da je to to nisam proba pokretat nabrzinu sam napisa u notepadu :D

vlastoručni potpis
Poruka je uređivana zadnji put uto 24.1.2012 23:27 (karaandrijan).
17 godina
moderator
online
Re: Programiranje u C-u - od svega pomalo
karaandrijan kaže...

...mislim da je to to nisam proba pokretat nabrzinu sam napisa u notepadu :D

Ni ja to nisam probao pokrenuti i samo čitam na forumu i iz toga mogu reći da uopće ne znaš programirati. {#}

 

karaandrijan kaže...

//provjera znaka
for(i=0;i<5;i++)
mislim da je to to nisam proba pokretat nabrzinu sam napisa u notepadu :D

Za to ti nije trebala posebna petlja, mogao si sve obaviti u onoj prvoj.

 

karaandrijan kaže...

       if(i==0)
         ...
       if(i==1)
      ...
       if(i==2)

Za ovakve slučajeve su izmislili grananje switch.

 

karaandrijan kaže...

        { pom1=broj;
          pom1=broj/10000;

          ...

        { pom1=broj;
         pom1=broj/1000;
          pom1=pom1%10;

      ...

        { pom1=broj;
         pom1=broj/100;
          pom1=pom1%10;

          ...

Shvaćaš li da sve ovo što je označeno žutim markerom kao i da nije napisano? U varijablu pom1 spremaš varijablu broj i rezultat operacije dijeljenja, što na kraju prebrišeš rezultatom operacije modulo.

 

karaandrijan kaže...

          zbroj=zbroj+pom1;

Jesi čuo za operator za uvećavanje (increment addition)?

          zbroj+=pom1;

 

Poruka je uređivana zadnji put sri 25.1.2012 0:26 (mbaksa).
17 godina
neaktivan
offline
Programiranje u C-u - od svega pomalo

Jesi siguran da se operator '+=' zove increment operator?

C provides a programmer with more than enough rope to hang himself. C++ provides a firing squad, blindfold and last cigarette.
 
0 0 hvala 0
17 godina
moderator
online
Re: Programiranje u C-u - od svega pomalo
1domagoj1 kaže...

Jesi siguran da se operator '+=' zove increment operator?

OK, inkrementom se u pravilu smatra ++, += je addition ("dodavanje"). U osnovi se radi o operatorima koji vrše istu stvar, samo što ++ uvećava za 1, a += uvećava za vrijednost drugog operanda. Nije mi se dalo ići tražiti kako točno se naziva operator +=, samo sam htio objasniti da služi za uvećavanje varijable, a to je upravo ono što je karaandrijan radio pa bi shodno tome trebao koristiti odgovarajući operator.

17 godina
neaktivan
offline
Programiranje u C-u - od svega pomalo

Aha. Ma pitam samo, nisam ni ja znao kako se *tocno* zove.

C provides a programmer with more than enough rope to hang himself. C++ provides a firing squad, blindfold and last cigarette.
 
0 0 hvala 0
17 godina
moderator
online
Re: Programiranje u C-u - od svega pomalo
1domagoj1 kaže...

Aha. Ma pitam samo, nisam ni ja znao kako se *tocno* zove.

Ovdje ih imaš, barem na engleskom jeziku: http://en.wikipedia.org/wiki/Operators_in_C_and_C%2B%2B

13 godina
neaktivan
offline
Re: Programiranje u C-u - od svega pomalo
mbaksa kaže...
karaandrijan kaže...

...mislim da je to to nisam proba pokretat nabrzinu sam napisa u notepadu :D

Ni ja to nisam probao pokrenuti i samo čitam na forumu i iz toga mogu reći da uopće ne znaš programirati. {#}

 

karaandrijan kaže...

//provjera znaka
for(i=0;i<5;i++)
mislim da je to to nisam proba pokretat nabrzinu sam napisa u notepadu :D

Za to ti nije trebala posebna petlja, mogao si sve obaviti u onoj prvoj.

 

karaandrijan kaže...

       if(i==0)
         ...
       if(i==1)
      ...
       if(i==2)

Za ovakve slučajeve su izmislili grananje switch.

 

karaandrijan kaže...

        { pom1=broj;
          pom1=broj/10000;

          ...

        { pom1=broj;
         pom1=broj/1000;
          pom1=pom1%10;

      ...

        { pom1=broj;
         pom1=broj/100;
          pom1=pom1%10;

          ...

Shvaćaš li da sve ovo što je označeno žutim markerom kao i da nije napisano? U varijablu pom1 spremaš varijablu broj i rezultat operacije dijeljenja, što na kraju prebrišeš rezultatom operacije modulo.

 

karaandrijan kaže...

          zbroj=zbroj+pom1;

Jesi čuo za operator za uvećavanje (increment addition)?

          zbroj+=pom1;

 

znam ja sve to nego sam namjerno rastegno sve da covjek vidi zasto je to tako!!

a switch case nevolim koristit nekako mi je lakse sa ifovim i ono sto si pozutio treba onako, moze se samo jedan red skratit kod dijeljenja stavit sve zajedno sa modulom

a pom1=broj sluzi zato da u svakom ifu koistim istu pom1 varijablu pa je ponovo postavm da je jednaka varijabli  broj!!

 

jedino nism siguran za unos znakova nisam ima 5 godina unosio charove

 

vlastoručni potpis
17 godina
moderator
online
Re: Programiranje u C-u - od svega pomalo
karaandrijan kaže...
znam ja sve to nego sam namjerno rastegno sve da covjek vidi zasto je to tako!!

Kako to misliš da čovjek vidi zašto je to tako? Svjestan si da kad bi sve imao u jednoj petlji, da ti onda ni ne treba polje znak? Nego bi umjesto toga imao varijablu tipa char?

 

karaandrijan kaže...
a switch case nevolim koristit nekako mi je lakse sa ifovim

Po kojoj logici? Naredba switch je napravljena upravo radi slučajeva kao u tvom slučaju.

 

karaandrijan kaže...
a switch case nevolim koristit nekako mi je lakse sa ifovim i ono sto si pozutio treba onako, moze se samo jedan red skratit kod dijeljenja stavit sve zajedno sa modulom

U svakom uvjetu sve je moglo u jedan red.

 

karaandrijan kaže...
a pom1=broj sluzi zato da u svakom ifu koistim istu pom1 varijablu pa je ponovo postavm da je jednaka varijabli  broj!!

Ovo ti je besmislica. Pazi svoj kod:

 

pom1=broj;
pom1=broj/1000;
pom1=pom1%10;

zbroj=zbroj+pom1;

 

Koja vrijednost ti ostaje u varijabli pom1 nakon toga? broj/1000%10; Prva linija (pom1=broj) ne služi apsolutno ničemu! Nemoj mi reći da to ne razumiješ!

 

 

Osim toga, sve je moglo biti napisano bez ikakve pomoćne varijable:

 

zbroj += (broj / 1000) % 10;

 

Poruka je uređivana zadnji put sri 25.1.2012 15:23 (mbaksa).
13 godina
neaktivan
offline
Re: Programiranje u C-u - od svega pomalo

pom1=broj/1000; tu mi je greska nisam tako mislio, mislio sam ovako pom1=pom1/1000; ali iziđe na isto     

a u pravu si da je moglo kraće !!

ja sam reka za mene osobno je lakse sa ifovim :D

vlastoručni potpis
17 godina
moderator
online
Re: Programiranje u C-u - od svega pomalo
karaandrijan kaže...

pom1=broj/1000; tu mi je greska nisam tako mislio, mislio sam ovako pom1=pom1/1000; ali iziđe na isto     

a u pravu si da je moglo kraće !!

ja sam reka za mene osobno je lakse sa ifovim :D

Ovo je program s tvojim algoritmom, ali (relativno) propisno napisan. Usporedi to sa svojim programom.

 

 

int main()
{
    int broj;
    char znak;
    int i;
    int zbroj=0;

    scanf("unesi petero znamenkasti broj: %d",&broj);
   
    for(i=0;i<5;i++)
    {
       printf("unesi %d. znak...",i+1);
       scanf("%c",&znak);
   
       if (znak == 'D') {
          switch(i)
          {
             case 0: zbroj += broj/10000; break;
             case 1: zbroj += broj/1000 % 10; break;
             case 2: zbroj += broj/100 % 10; break;
             case 3: zbroj += broj/10 % 10; break;
             case 4: zbroj += broj % 10; break;
          }
       }   
    }

    printf("Zbroj je:  %d/n",zbroj);
    return 0;
}

13 godina
neaktivan
offline
Re: Programiranje u C-u - od svega pomalo

sta imam uspoređivat kraće za napisat ali u biti isti!!!!! Ma ja mislim da je najbitnije da je algoritam dobar :D

vlastoručni potpis
17 godina
moderator
online
Re: Programiranje u C-u - od svega pomalo
karaandrijan kaže...

sta imam uspoređivat kraće za napisat ali u biti isti!!!!! Ma ja mislim da je najbitnije da je algoritam dobar :D

Tvoj program ne zadovoljava nekakve "tehničke minimume", da se tako izrazimo. U tome je problem. A kad mi napišeš:

 

pom1=broj;
pom1=broj/10000;

 

S time si mi sve rekao. S time si mi rekao da ne razumiješ koncept varijabli, da ne razumiješ što ti koja naredba u programu radi. Drugim riječima, da ne razumiješ osnove osnova programiranja.

13 godina
neaktivan
offline
Re: Programiranje u C-u - od svega pomalo

 

jesam reka da da sam pisa za 2 min i to u notepadu copy paste tehnikom tako sam i pogrijesio umjesto tog tvog famoznog pom1=broj/10000 ili sta vec trebalo je pisat pom1=pom1/10000 a ti se sveza toga ko pijan plota ali eto te tamo bitno je da je coviku zadatak rijesen !!!

vlastoručni potpis
17 godina
moderator
online
Re: Programiranje u C-u - od svega pomalo
karaandrijan kaže...

 

jesam reka da da sam pisa za 2 min i to u notepadu copy paste tehnikom tako sam i pogrijesio umjesto tog tvog famoznog pom1=broj/10000 ili sta vec trebalo je pisat pom1=pom1/10000 a ti se sveza toga ko pijan plota ali eto te tamo bitno je da je coviku zadatak rijesen !!!

Ma toliko me to šokiralo da stalno zaboravljam da si reuseao pomoćnu varijablu više puta. {#} Uglavnom, preporučam ti da se odvikneš od takvog načina kodiranja iz niza razloga - više nepotrebnih instrukcija znači sporiji program (doduše, nije nužno da ćeš to primijetiti), nepregledno je i podložno pogreškama (upravo to što se tebi dogodilo).

 

Također, funkciju main uvijek stavljaj kao int main, tim više što na kraju programa imaš return 0.

13 godina
neaktivan
offline
Programiranje u C-u - od svega pomalo
{
   struct temperatura
   {
     char grad[20];
     float t;
   };
   int main()
   {
     struct temperatura s[5];
     int i;
     for(i=0; i<5; i++)
     {
       scanf("%s", & s[i].grad);
       scanf("%f", & s[i].t);
     }
     int top=0; int hl=0;
     int najtop=s[0].t;
     int najhl=s[0].t;
     for(i=0; i<5; i++)
     {
       if(s[i].t<najhl)
     {
       najhl=s[i].t;
       hl=i;
     }
     else
     if(s[i].t>najtop)
     {
       najtop=s[i].t;
       top=i;
     }
     }
     printf("Najhladniji grad je %s", &s[hl].grad);
     printf("Najtopliji grad je %s", &s[top].grad);
     return 0;
   }
Da l moye ovako....trba da ipise ime najhladnijeg i najtoplijeg grada...?
 
0 0 hvala 0
13 godina
neaktivan
offline
Re: Programiranje u C-u - od svega pomalo
Cvetić kaže...
{
   struct temperatura
   {
     char grad[20];
     float t;
   };
   int main()
   {
     struct temperatura s[5];
     int i;
     for(i=0; i<5; i++)
     {
       scanf("%s", & s[i].grad);
       scanf("%f", & s[i].t);
     }
     int top=0; int hl=0;
     int najtop=s[0].t;
     int najhl=s[0].t;
     for(i=0; i<5; i++)
     {
       if(s[i].t<najhl)
     {
       najhl=s[i].t;
       hl=i;
     }
     else
     if(s[i].t>najtop)
     {
       najtop=s[i].t;
       top=i;
     }
     }
     printf("Najhladniji grad je %s", &s[hl].grad);
     printf("Najtopliji grad je %s", &s[top].grad);
     return 0;
   }
Da l moye ovako....trba da ipise ime najhladnijeg i najtoplijeg grada...?

mislim da ti ovi & & netrebaju i trebali bi ti najhl i najtop varijable biti varijable tipa float!!

vlastoručni potpis
Poruka je uređivana zadnji put sri 25.1.2012 19:11 (karaandrijan).
13 godina
neaktivan
offline
Re: Programiranje u C-u - od svega pomalo

Ne moze bez toga, msm da mora ici &, i da je int tip...

 

13 godina
neaktivan
offline
Re: Programiranje u C-u - od svega pomalo

mislim da neidu u printf nego da idu u scanf & ali eto te tamo !!kako ces sa integerom ispitat koja je temp veca 22.3 ili 22.4 stupnja plus ti je u strukturi temperatura tipa float???

vlastoručni potpis
Poruka je uređivana zadnji put sri 25.1.2012 19:23 (karaandrijan).
15 godina
offline
Programiranje u C-u - od svega pomalo

Jesi li ti taj kod probao prevesti u compileru? Je li ti sve proslo bez errora?

Usto funkciji printf trebas proslijediti vrijednost varijable, a ne adresu, dakle bez & znaka. Usto najhl i najtop ti trebaju biti float zato sto ti je varijabla t u structuri tipa float. Zaboravio si includati stdio.h i ne trebaju one viticaste zagrade u koje si stavio structuru i int main.

Twitter- @capttawish Linux/GNU live forever.
 
0 0 hvala 0
13 godina
neaktivan
offline
Programiranje u C-u - od svega pomalo

Cvetić vidis sta covik kaže :D

vlastoručni potpis
 
0 0 hvala 0
13 godina
neaktivan
offline
Programiranje u C-u - od svega pomalo

#include <stdio.h>

#include <stdlib.h>

 

 

 

   struct temperatura

 

   {

     char grad[20];

     float t;

 

   };

   int main()

 

   {

     struct temperatura s[5];

     int i;

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

     {

       scanf("%s", & s[i].grad);

       scanf("%f", & s[i].t);

     }

     int top=0; int hl=0;

     float najtop=s[0].t;

     float najhl=s[0].t;

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

     {

       if(s[i].t<najhl)

     {

       najhl=s[i].t;

       hl=i;

     }

     else

     if(s[i].t>najtop)

     {

       najtop=s[i].t;

       top=i;

     }

     }

     printf("Najhladniji grad je %f\n", s[hl].grad);

     printf("Najtopliji grad je %f\n", s[top].grad);

     return 0;

 

   }

SVE TO MENI OTVORI..ALI KAD UKUCAM GRADOVE IZBACI MI NESTO DESETO SKROZ...

 
0 0 hvala 0
17 godina
offline
Re: Programiranje u C-u - od svega pomalo
Cvetić kaže...

 

 

     printf("Najhladniji grad je %f\n", s[hl].grad);

     printf("Najtopliji grad je %f\n", s[top].grad);

     return 0;

 

   }

SVE TO MENI OTVORI..ALI KAD UKUCAM GRADOVE IZBACI MI NESTO DESETO SKROZ...

 

Od kud ti je ovo palo na pamet da tražiš ispis char varijable, a za format stavljaš float varijablu.

De pročitaj malo teoriju za scanf i printf funkcije, pa ćeš onda skužiti i da ne stavljaš adresu kod upisa char niza, a naučit ćeš razlikovati i formate,

pročitaj malo teoriju umjesto što daviš glupostima da koristiš adresu varijable u printf funkciji.

 

Čitaj , umjesto što piliš tim stvarima:

http://www.cplusplus.com/reference/clibrary/cstdio/scanf/

http://www.cplusplus.com/reference/clibrary/cstdio/printf/

Poruka je uređivana zadnji put čet 26.1.2012 13:39 (Floki).
15 godina
neaktivan
offline
Programiranje u C-u - od svega pomalo

pozdrav,

zanima me kako naparviti da se pozadina programa moze mjenjati,npr.naparvio sam nekakav program i sada zelim da bude nakakva pozadina samog programa i da se moze mijanjati(s tim da su pozadine,slike,vec zadane).

Takoder me zanima kako napraviti da je program preko cijelog ekrana,bez rubova.

Hvala na pomoci.

RazorNapster
Moj PC  
0 0 hvala 0
17 godina
moderator
online
Re: Programiranje u C-u - od svega pomalo

Pozadina kakvog programa? GUI programa? DirectX programa? Koji GUI framework koristiš?

15 godina
neaktivan
offline
Programiranje u C-u - od svega pomalo

Tranutno radim  u Qt,medutim ako mi preporucas da koristim nesto sto bi mi bolje odgovaralo(aplikacija je samo za Windowse),mislim da nebi trebalo biti problema.

RazorNapster
Moj PC  
0 0 hvala 0
15 godina
neaktivan
offline
Re: Programiranje u C-u - od svega pomalo
Barnie kaže...

Tranutno radim  u Qt,medutim ako mi preporucas da koristim nesto sto bi mi bolje odgovaralo(aplikacija je samo za Windowse),mislim da nebi trebalo biti problema.

Za fullscreen 2D i 3D grafiku na Windows platformi nemas sto dalje traziti od DirectX-a. Eventualno OpenGL ako ciljas na nekakvu portabilnost.

 

Pomoglo bi da stavis nekakvu sliku te svoje aplikacije, da bude jasnije sto zapravo pokusavas postici.

My computer once beat me at chess, but we got even after a round of boxing.
15 godina
neaktivan
offline
Programiranje u C-u - od svega pomalo

Projekt je vrlo jednostavan,koristim htpc i obozavam ga,jedina stvar koja mi nedostaje je nekakav "launcher",posto,uz mediu(xbmc) koristim i skype,browser,onlive(izvrsna stvar za povremene gamere,je da kadkad radi kadkad ne,ali ipak posluzi).Stoga sam odlucio napraviti takav "launcher".Sama aplikacija je vrlo jednostavana,ali me muci  opcija da mogu mjenjati pozadinu i da se pali u "fullscreenu".Evo kako bi to izgledalo(nemojte ocjenjivati,jer je nabrzinu naparavljeno.)

RazorNapster
Poruka je uređivana zadnji put čet 16.2.2012 19:23 (Barnie).
Moj PC  
0 0 hvala 0
Nova poruka
E-mail:
Lozinka:
 
vrh stranice