C problem

poruka: 19
|
čitano: 3.533
|
moderatori: Lazarus Long, XXX-Man, vincimus
1
+/- sve poruke
ravni prikaz
starije poruke gore
17 godina
neaktivan
offline
C problem

Zna li netko riješiti ovaj zadatak. Baš i nemam neku ideju...

 

 

Zadatak 1

Napravite program koji ce izvoditi racunske

operacije +, -, *, /, %, ^  nad podacima koji se nalaze u datotekama.

Program ocekuje ime prve datoteke, zatim znak koji oznacava racunsku ope-

raciju, zatim ime druge datoteke. Rezultati se spremaju u novu datoteku. Ovo

se radi u petlji, a izlazi se iz petlje u slucaju kraja inputa (kraj datoteke ili

<CTRL-D> na tipkovnici).

U prvom krugu petlje rezultati se spremaju u datoteku r000.txt, u drugom

u r001.txt, u trecem u r002.txt, itd. Drugim rijecima, broj NNN u nazivu

datoteke rNNN.txt se uvecava u svakoj iteraciji. Ako se dogodi da datoteka

vec postoji (npr. ostala je nakon prethodnog izvrsavanja programa) potrebno

je broj NNN uvecavati sve dok se ne pronade slobodan naziv. Tijekom jednog

izvrsavanja programa broj NNN je samo potrebno povecavati.

Program pretpostavlja da su ulaznim datotekama brojevi uneseni u tekstu-

alnom obliku i odvojeni bijelim razmakom (tj. razmakom ili tab-om ili znakom

za novi red). Koristiti tip double, a za ispis brojeva u datoteke koristiti format

%.16e i ispisivati svaki broj u svom redu. Nakon svakog uspjesnog spremanja

rezultata, program o tome ispise informaciju (ime nove datoteke, broj brojeva

u njoj) u output kao sto je pokazano u primjeru.

 

 

Primjer 1: Neka a.txt sadrzi 1 2 3, a b.txt sadrzi 4 5 6. Program pokre-

nemo s ./a.out; primjer inputa (potcrtano) i outputa je:

a.txt + b.txt

operacija:+ snimljeno brojeva:3 datoteka:r000.txt

a.txt * r000.txt

operacija:* snimljeno brojeva:3 datoteka:r001.txt

<CTRL-D>

kraj!

 

Nakon izvrsavanja primjera 1, r000.txt sadrzi:

 

5.0000000000000000e+00

7.0000000000000000e+00

9.0000000000000000e+00

 

a r001.txt sadrzi:

 

5.0000000000000000e+00

1.4000000000000000e+01

2.7000000000000000e+01

 

 

Primjer 2: Nakon primjera 1 izvrsimo (pomocu ./a.out) sljedeci primjer:

input (potcrtan) i output su:

 

a.txt + b.txt

operacija:+ snimljeno brojeva:3 datoteka:r002.txt

<CTRL-D>

kraj!

 

Nakon izvrsavanja primjera 2, r000.txt i r001.txt su ostale nepromijenjene,

a r002.txt sadrzi:

 

5.0000000000000000e+00

7.0000000000000000e+00

9.0000000000000000e+00

http://www.youtube.com/user/sfdebris --- recenzije Star Trek epizoda
Moj PC  
0 0 hvala 0
16 godina
neaktivan
offline
RE: C problem

Izgleda ružno ali nije komplicirano za izvest.

do while petlja za ovo ponavljanje upisa

učita se sa %[^n] ( da se uhvati sve ) i onda sa sscanf(s, "%s %c %s", prva_dat,&operacija,druga_dat) učitamo nazive datoteka i operaciju u pripadne varijable (ovo sa %c nisam ziher, valjda će prepoznat poseban znak između razmaka, tu možeš i %s pa u kraki string to spremit).

Otvaramo datoteke, datoteku za ispis rezultata i napravimo kaj trebamo (operaciju lako skužimo koja je, pa sa switchem imamo 6 slučajeva).

 

Ono to još trebamo napraviti je numeriranje ovih datoteka za ispis, a to napravimo na početku programa, gdje sa while petljom redom otvaramo r000,r001 itd dok neku ne uspijemo otvorit. Ta onda postane iduća za rezultate.

http://manutd-croatia.com/forum/index.php ... forum i udruga navijača Manchester Uniteda...
17 godina
neaktivan
offline
RE: C problem
Luuka kaže...

Izgleda ružno ali nije komplicirano za izvest.

do while petlja za ovo ponavljanje upisa

učita se sa %[^n] ( da se uhvati sve ) i onda sa sscanf(s, "%s %c %s", prva_dat,&operacija,druga_dat) učitamo nazive datoteka i operaciju u pripadne varijable (ovo sa %c nisam ziher, valjda će prepoznat poseban znak između razmaka, tu možeš i %s pa u kraki string to spremit).

Otvaramo datoteke, datoteku za ispis rezultata i napravimo kaj trebamo (operaciju lako skužimo koja je, pa sa switchem imamo 6 slučajeva).

 

Ono to još trebamo napraviti je numeriranje ovih datoteka za ispis, a to napravimo na početku programa, gdje sa while petljom redom otvaramo r000,r001 itd dok neku ne uspijemo otvorit. Ta onda postane iduća za rezultate.

Možeš li mi objasniti što si mislio s %[^n]? Ne razumijem baš

http://www.youtube.com/user/sfdebris --- recenzije Star Trek epizoda
16 godina
neaktivan
offline
RE: C problem

To je jedan od formata za učitavanje. Kada staviš:

char s[100];

scanf("%[^\n]",s);

on će čitati dok ne naiđe na novi red (ili dođe do 100 znakova), i to što je učitao spremiti u s.

http://manutd-croatia.com/forum/index.php ... forum i udruga navijača Manchester Uniteda...
15 godina
neaktivan
offline
C problem

imam problem, u c-u znam jako malo, skoro ništa, to sad učim i mučim se a za sutra imam zadatak da napravim programićić, e sad može li mi neko pomoći, napisati što i kako i objasniti za zadani zadatak, unaprijed se zahvaljujem:D

 

Zadatak:

Napravite program koji traži od korisnika da, koristeći se tipkovnicom , prvo upiše dva cijela broja te ih prilikom upisivanja odvoji zarezom. Tadva broja potrebno je zbrojiti, a kasnije pomnožiti i ispisati rezultat. Nakon toga treba unjeti dva realna broja , podjeliti ova dva broja i ispisati kvocijent.

 

Ako tko može molim ga neka mi pomogne u riješavanju toga, vrlo mi je bitni:D

Budući Microsoftov Bill Gates...ili Applov Steve Jobs!
Moj PC  
0 0 hvala 0
15 godina
neaktivan
offline
RE: C problem
Zvjerkan kaže...

imam problem, u c-u znam jako malo, skoro ništa, to sad učim i mučim se a za sutra imam zadatak da napravim programićić, e sad može li mi neko pomoći, napisati što i kako i objasniti za zadani zadatak, unaprijed se zahvaljujem:D

 

Zadatak:

Napravite program koji traži od korisnika da, koristeći se tipkovnicom , prvo upiše dva cijela broja te ih prilikom upisivanja odvoji zarezom. Tadva broja potrebno je zbrojiti, a kasnije pomnožiti i ispisati rezultat. Nakon toga treba unjeti dva realna broja , podjeliti ova dva broja i ispisati kvocijent.

 

Ako tko može molim ga neka mi pomogne u riješavanju toga, vrlo mi je bitni:D

Pleaseeeeeeeeeeeeeeee {#}

Budući Microsoftov Bill Gates...ili Applov Steve Jobs!
15 godina
neaktivan
offline
RE: C problem
ajde netko treba mi za 45 min

Budući Microsoftov Bill Gates...ili Applov Steve Jobs!
16 godina
neaktivan
offline
RE: C problem

To je jedan od najosnovnijih programa i stvarno ne može biti jednostavnije.

Učitaš sa scanf("%d,%d",&a,&b);

zbroj=a+b;

umnožak=a*b;

printf("Zbroj je %d, a umnožak %d\n",zbroj, umnožak);

 

scanf("%f %f", c,d);

if (d!=0)

{

     kvocijent=c/d;

     printf("Kvocijent je %g\n",kvocijent);

}

else

    printf("Ne smijemo dijeliti s nulom!\n");

http://manutd-croatia.com/forum/index.php ... forum i udruga navijača Manchester Uniteda...
Poruka je uređivana zadnji put uto 14.12.2010 8:53 (Luuka).
15 godina
neaktivan
offline
RE: C problem
e hvala... puno, moram ja to naucit malo, je lagano izgleda al ja ne razmisljam
Budući Microsoftov Bill Gates...ili Applov Steve Jobs!
15 godina
neaktivan
offline
RE: C problem
E pa di je unos i deklaracija, nemre mi to tak radit :D
Budući Microsoftov Bill Gates...ili Applov Steve Jobs!
17 godina
offline
RE: C problem
Zvjerkan kaže...
E pa di je unos i deklaracija, nemre mi to tak radit :D

Aha, možda te čovjek nije razumio, trebalo je sve napisati, da se ti ne bi što pomučio{#}

16 godina
neaktivan
offline
RE: C problem
Zvjerkan kaže...
E pa di je unos i deklaracija, nemre mi to tak radit :D

Pa naravno da ne može radit, nije mi ni bio cilj napisati cijeli program. Ovo je glavno tijelo (čak sam ti i previše napisao), ostalo ti nadodaj :D Copy-pasteanjem i čitanjem koda nećeš naučiti ništa, a ako ti ovo neće bit jasno jao tebi dalje :D

http://manutd-croatia.com/forum/index.php ... forum i udruga navijača Manchester Uniteda...
15 godina
neaktivan
offline
RE: C problem
Luuka kaže...
Zvjerkan kaže...
E pa di je unos i deklaracija, nemre mi to tak radit :D

Pa naravno da ne može radit, nije mi ni bio cilj napisati cijeli program. Ovo je glavno tijelo (čak sam ti i previše napisao), ostalo ti nadodaj :D Copy-pasteanjem i čitanjem koda nećeš naučiti ništa, a ako ti ovo neće bit jasno jao tebi dalje :D

ajde onda napiši cijeli kod, {#}

Budući Microsoftov Bill Gates...ili Applov Steve Jobs!
17 godina
offline
RE: C problem
Zvjerkan kaže...
Luuka kaže...
Zvjerkan kaže...
E pa di je unos i deklaracija, nemre mi to tak radit :D

Pa naravno da ne može radit, nije mi ni bio cilj napisati cijeli program. Ovo je glavno tijelo (čak sam ti i previše napisao), ostalo ti nadodaj :D Copy-pasteanjem i čitanjem koda nećeš naučiti ništa, a ako ti ovo neće bit jasno jao tebi dalje :D

ajde onda napiši cijeli kod, {#}

ćirni malo u bilježnicu ili knjigu

15 godina
neaktivan
offline
RE: C problem
Floki kaže...
Zvjerkan kaže...
Luuka kaže...
Zvjerkan kaže...
E pa di je unos i deklaracija, nemre mi to tak radit :D

Pa naravno da ne može radit, nije mi ni bio cilj napisati cijeli program. Ovo je glavno tijelo (čak sam ti i previše napisao), ostalo ti nadodaj :D Copy-pasteanjem i čitanjem koda nećeš naučiti ništa, a ako ti ovo neće bit jasno jao tebi dalje :D

ajde onda napiši cijeli kod, {#}

ćirni malo u bilježnicu ili knjigu

a mogo bi al nemam ideju kak bi to u konačnici trebalo bit :D

Budući Microsoftov Bill Gates...ili Applov Steve Jobs!
17 godina
offline
C problem

Fino pročitaj deklaracije varijabli i pogledaj primjere, pogledaj upotrebu printf i scanf, pa će ti biti jasnije, moraš malo sam

 
1 0 hvala 0
15 godina
neaktivan
offline
RE: C problem
Floki kaže...

Fino pročitaj deklaracije varijabli i pogledaj primjere, pogledaj upotrebu printf i scanf, pa će ti biti jasnije, moraš malo sam

ajd idem radit onda :D

Budući Microsoftov Bill Gates...ili Applov Steve Jobs!
16 godina
neaktivan
offline
C problem

imam logicki problem, nemrem u glavi posloziti stvari :)

imam matricu 5x5

u svakom redu pojavljuju se brojevi od 1 do 5

ja bi trebao napraviti program koji ce izvrtiti sve kombinacije za ti matricu

npr.

1 2     1 2     2 1     2 1

1 2     2 1     1 2     2 1

za matricu 2x2

meni treba isto ovo za matricu 5x5

 

 
0 0 hvala 0
16 godina
neaktivan
offline
C problem

evo me opet...

mislim da sam rijesio einsteinov problem ali nemogu ga isprobati jer se sporo vrti, treba mu dva dana, prema mojim proracunima da baci rjesenje

jer mozete pogledati kod i napisati optimalnije neke dijelove...

 

#include<stdio.h>

/*
1britanac 2svedanin 3danac 4nijemac 5norvezanin
1crvena 2plava 3bijela 4zelena 5zuta
1caj 2kava 3mlijeko 4pivo 5voda
1PallMall 2Dunhill 3Blend 4BlueMaster 5Prince
1pas 2ptica 3macka 4konj 5ribe
*/

void funkcija(int *polje){
    if (polje[5]<5){
       polje[5]++;
    }
    else{
       polje[5]=1;
       if (polje[4]<5){
          polje[4]++;
       }
       else{
          polje[4]=1;
          if (polje[3]<5){
             polje[3]++;
          }
          else{
             polje[3]=1;
             if (polje[2]<5){
                polje[2]++;
             }
             else{
                polje[2]=1;
                if (polje[1]<5){
                   polje[1]++;
                }
             }
          }
       }
    }
}

void reset(int *polje){
    int i;
    for(i=1; i<=5; i++){
       polje[i]=1;
    }
}

void ispis(int *zivotinja, int *cigarete, int *pice, int *boja, int *osoba){
    int i;
    for(i=1; i<=5; i++){
       printf("%d",zivotinja[i]);
    }
    printf("\n");
    for(i=1; i<=5; i++){
       printf("%d",cigarete[i]);
    }
    printf("\n");
    for(i=1; i<=5; i++){
       printf("%d",pice[i]);
    }
    printf("\n");
    for(i=1; i<=5; i++){
       printf("%d",boja[i]);
    }
    printf("\n");
    for(i=1; i<=5; i++){
       printf("%d",osoba[i]);
    }
    printf("\n");
}

int main(){
    int osoba[6]={0};
    int boja[6]={0};
    int pice[6]={0};
    int cigarete[6]={0};
    int zivotinja[6]={0};
    int i, f=0, slozeno=0, pronasao=0, kraj=0, b=0, p=0, c=0, z=0;
    while(1){
       if (z==0){
          funkcija(&zivotinja[0]);
       }
       else if (c==0){
          funkcija(&cigarete[0]);
          z=0;
       }
       else if (p==0){
          funkcija(&pice[0]);
          c=0;
       }
       else if (b==0){
          funkcija(&boja[0]);
          p=0;
       }
       else{
          funkcija(&osoba[0]);
          b=0;
       }
       if (slozeno==0){
          if (osoba[1]!=0 && osoba[2]!=0 && osoba[3]!=0 && osoba[4]!=0 && osoba[5]!=0){
             if(boja[1]!=0 && boja[2]!=0 && boja[3]!=0 && boja[4]!=0 && boja[5]!=0){
                if (pice[1]!=0 && pice[2]!=0 && pice[3]!=0 && pice[4]!=0 && pice[5]!=0){
                   if(cigarete[1]!=0 && cigarete[2]!=0 && cigarete[3]!=0 && cigarete[4]!=0 && cigarete[5]!=0){
                      if (zivotinja[1]!=0 && zivotinja[2]!=0 && zivotinja[3]!=0 && zivotinja[4]!=0 && zivotinja[5]!=0){
                         slozeno=1;
                      }
                   }
                }
             }
          }
       }
       if (slozeno==1){
          if (osoba[1]==boja[1]){
             if (osoba[2]==zivotinja[1]){
                if(osoba[3]==pice[1]){
                   if(boja[3]>boja[4]){
                      if(boja[4]==pice[2]){
                         if(cigarete[1]==zivotinja[2]){
                            if(boja[5]==cigarete[2]){
                               if(pice[3]==3){
                                  if(osoba[5]==1){
                                     if((cigarete[3]==zivotinja[3]+1) || (cigarete[3]==zivotinja[3]-1)){
                                        if((zivotinja[4]==cigarete[2]+1) || (zivotinja[4]==cigarete[2]-1)){
                                           if(cigarete[4]==pice[4]){
                                              if(osoba[4]==cigarete[5]){
                                                 if((osoba[5]==boja[2]+1) || (osoba[5]==boja[2]-1)){
                                                    if((zivotinja[3]==pice[5]+1) || (zivotinja[3]==pice[5]-1)){
                                                       pronasao=1;
                                                    }
                                                 }
                                              }
                                           }
                                        }
                                     }
                                  }
                               }
                            }
                         }
                      }
                   }
                }
             }
          }
       }
       if (pronasao==1){
          ispis(&zivotinja[0], &cigarete[0], &pice[0], &boja[0], &osoba[0]);
          pronasao=0;
       }
       if (kraj==1) break;
       if (zivotinja[1]==5 && zivotinja[2]==5 && zivotinja[3]==5 && zivotinja[4]==5 && zivotinja[5]==5){
          reset(&zivotinja[0]);
          z=1;
          if(cigarete[1]==5 && cigarete[2]==5 && cigarete[3]==5 && cigarete[4]==5 && cigarete[5]==5){
             reset(&cigarete[0]);
             c=1;
             if (pice[1]==5 && pice[2]==5 && pice[3]==5 && pice[4]==5 && pice[5]==5){
                reset(&pice[0]);
                p=1;
                if(boja[1]==5 && boja[2]==5 && boja[3]==5 && boja[4]==5 && boja[5]==5){
                   reset(&boja[0]);
                   b=1;
                   if (osoba[1]==5 && osoba[2]==5 && osoba[3]==5 && osoba[4]==5 && osoba[5]==5){
                      kraj=1;
                   }
                }
             }
          }
       }
    }
}

Poruka je uređivana zadnji put čet 6.1.2011 22:51 (random89).
 
0 0 hvala 0
1
Nova poruka
E-mail:
Lozinka:
 
vrh stranice