Search
 
 
  Engleski
 
 
 
Open in this window (click to change)
Forum@DeGiorgi: Početna
Forum za podršku nastavi na PMF-MO
Login Registracija FAQ Smajlići Članstvo Pretražnik Forum@DeGiorgi: Početna

6. zadatak s proslogodisnjeg kolokvija A grupa (2. kolokvij) (zadatak)
WWW:

Moja sarma
 
Započnite novu temu   Odgovorite na temu   printer-friendly view    Forum@DeGiorgi: Početna -> Kolegiji 1. godine, preddiplomski studij Matematika -> Programiranje 1 i 2
Prethodna tema :: Sljedeća tema  
Autor/ica Poruka
Drake
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 26. 10. 2005. (11:32:33)
Postovi: (36)16
Sarma = la pohva - posuda
= 1 - 1

PostPostano: 14:07 sri, 2. 7. 2008    Naslov: 6. zadatak s proslogodisnjeg kolokvija A grupa (2. kolokvij) Citirajte i odgovorite

Nisam siguran kako da iscitam podatke iz datoteke , imena odvojeno od dugova (brojeva) i pohranim ih u strukturu svako na svoje mjesto

hvala
Nisam siguran kako da iscitam podatke iz datoteke , imena odvojeno od dugova (brojeva) i pohranim ih u strukturu svako na svoje mjesto

hvala


[Vrh]
Korisnički profil Pošaljite privatnu poruku MSNM
vsego
Site Admin
Site Admin


Pridružen/a: 06. 10. 2002. (22:07:09)
Postovi: (3560)16
Spol: zombi
Sarma = la pohva - posuda
854 = 1068 - 214
Lokacija: /sbin/init

PostPostano: 14:26 sri, 2. 7. 2008    Naslov: Citirajte i odgovorite

Sto fali [tt]fscanf(fp, "%s %d", struktura.ime, &struktura.dug)[/tt]? :-k

Isto kako je opisano u poglavlju o strukturama, samo citas iz datoteke (dakle [tt]fscanf(fp,...)[/tt] umjesto [tt]scanf(...)[/tt]). 8)
Sto fali fscanf(fp, "%s %d", struktura.ime, &struktura.dug)? Think

Isto kako je opisano u poglavlju o strukturama, samo citas iz datoteke (dakle fscanf(fp,...) umjesto scanf(...)). Cool



_________________
U pravilu ignoriram pitanja u krivim topicima i kodove koji nisu u [code]...[/code] blokovima.
Takodjer, OBJASNITE sto vas muci! "Sto mi je krivo?", bez opisa u cemu je problem, rijetko ce zadobiti moju paznju.
Drzim prodike
[Vrh]
Korisnički profil Pošaljite privatnu poruku
Drake
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 26. 10. 2005. (11:32:33)
Postovi: (36)16
Sarma = la pohva - posuda
= 1 - 1

PostPostano: 14:30 sri, 2. 7. 2008    Naslov: Citirajte i odgovorite

hvala puno, predpostavljam da onda ako imena zelim popremati zasebno da napisem fscanf(fp, "%s %s %d", struktura.ime1, struktura.ime2, &struktura.dug);
hvala puno, predpostavljam da onda ako imena zelim popremati zasebno da napisem fscanf(fp, "%s %s %d", struktura.ime1, struktura.ime2, &struktura.dug);


[Vrh]
Korisnički profil Pošaljite privatnu poruku MSNM
Luuka
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 13. 02. 2007. (20:34:54)
Postovi: (925)16
Spol: muško
Sarma = la pohva - posuda
188 = 301 - 113
Lokacija: Hakuna Matata

PostPostano: 14:32 sri, 2. 7. 2008    Naslov: Citirajte i odgovorite

[code:1]
File *ulaz;
int broj;
char prvi[20],drugi[20];

ulaz=fopen("dugovi.in","r");
while ( fscanf(ulaz,"%s %s %d\n",prvi,drugi,&broj)==3)
{
i sad tu pogledat dal u polju struktura već postoje prvi i drugi

ako postoje onda im dodat/oduzet broj,
ako ne postoje, onda ih kreirat.

provjeru dal postoje radiš s nekom fjom koja trči po polju, pa vraća index u polju ak nađe element koji ima to ime (recimo)
}

[/code:1]

:D
Kod:

File *ulaz;
int broj;
char prvi[20],drugi[20];

ulaz=fopen("dugovi.in","r");
while ( fscanf(ulaz,"%s %s %d\n",prvi,drugi,&broj)==3)
{
   i sad tu pogledat dal u polju struktura već postoje prvi i drugi
 
   ako postoje onda im dodat/oduzet broj,
   ako ne postoje, onda ih kreirat.

   provjeru dal postoje radiš s nekom fjom koja trči po polju, pa vraća index u polju ak nađe element koji ima to ime (recimo)
}



Very Happy



_________________
"Bolje bi prolazio na faxu da sam na drogama nego na netu" - by a friend of mine
"Poslije spavanja doma spavanje bilo di mi je najdraža stvar" - by the same guy Very Happy
[Vrh]
Korisnički profil Pošaljite privatnu poruku Pošaljite e-mail
vsego
Site Admin
Site Admin


Pridružen/a: 06. 10. 2002. (22:07:09)
Postovi: (3560)16
Spol: zombi
Sarma = la pohva - posuda
854 = 1068 - 214
Lokacija: /sbin/init

PostPostano: 14:44 sri, 2. 7. 2008    Naslov: Citirajte i odgovorite

[quote="Drake"]hvala puno, predpostavljam da onda ako imena zelim popremati zasebno da napisem fscanf(fp, "%s %s %d", struktura.ime1, struktura.ime2, &struktura.dug);[/quote]

Tocno tako: identicno ne-datotecnom slucaju. 8)

Mozes i pomocu pomocnih varijabli, kao u Luukinom primjeru. :) No, moze ti pomocna varijabla biti i tipa [tt]struct[/tt]... sve su to ekvivalentni nacini; ti izaberi koji ti najbolje "lezi". 8)

Samo nemoj napraviti ono sto studenti ponekad pogrijese: trpati u dinamicki alocirani [tt]struct[/tt] (npr. kad se radi [tt]realloc()[/tt] niza [tt]struct[/tt]-ova) prije nego mu alociras memoriju. :ccc: Dakle, [b]NE[/b]:
[code:1]while (fscanf(ulaz, "%s %s %d\n", struktura->ime, struktura->prezime, &struktura->broj) == 3)
if (meni_se_podaci_svidjaju(*struktura))
struktura = (tip_strukture*) malloc(sizeof(tip_strukture));
// inace, zanemarim ucitano
[/code:1]
;)
Drake (napisa):
hvala puno, predpostavljam da onda ako imena zelim popremati zasebno da napisem fscanf(fp, "%s %s %d", struktura.ime1, struktura.ime2, &struktura.dug);


Tocno tako: identicno ne-datotecnom slucaju. Cool

Mozes i pomocu pomocnih varijabli, kao u Luukinom primjeru. Smile No, moze ti pomocna varijabla biti i tipa struct... sve su to ekvivalentni nacini; ti izaberi koji ti najbolje "lezi". Cool

Samo nemoj napraviti ono sto studenti ponekad pogrijese: trpati u dinamicki alocirani struct (npr. kad se radi realloc() niza struct-ova) prije nego mu alociras memoriju. Ccc.... Sram te bilo... Dakle, NE:
Kod:
while (fscanf(ulaz, "%s %s %d\n", struktura->ime, struktura->prezime, &struktura->broj) == 3)
  if (meni_se_podaci_svidjaju(*struktura))
    struktura = (tip_strukture*) malloc(sizeof(tip_strukture));
  // inace, zanemarim ucitano

Wink



_________________
U pravilu ignoriram pitanja u krivim topicima i kodove koji nisu u [code]...[/code] blokovima.
Takodjer, OBJASNITE sto vas muci! "Sto mi je krivo?", bez opisa u cemu je problem, rijetko ce zadobiti moju paznju.
Drzim prodike
[Vrh]
Korisnički profil Pošaljite privatnu poruku
Drake
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 26. 10. 2005. (11:32:33)
Postovi: (36)16
Sarma = la pohva - posuda
= 1 - 1

PostPostano: 15:45 sri, 2. 7. 2008    Naslov: Citirajte i odgovorite

[code:1]#include <stdio.h>
#include <stdlib.h>

typedef struct{
char ime1[20];
char ime2[20];
int dug;
} dugovi;


int main(){
int i, j, dug,cnt=0, maxdug;
char ime1[20], ime2[20], maximalni[20], iname[20],oname[20];
dugovi niz[100];
printf("Unesite ime ulazne datoteke\n");
scanf("%s", iname);
FILE *ulaz, *izlaz;
ulaz=fopen(iname, "r");
while ( fscanf(ulaz,"%s %s %d\n",ime1,ime2,&dug)==3)
{ ++cnt;
for(i=0;i<cnt;i++){
if(ime1==niz[i].ime1 && ime2==niz[i].ime2){niz[i].dug=niz[i].dug+dug;}
if(ime1==niz[i].ime2 && ime2==niz[i].ime1){niz[i].dug=niz[i].dug-dug;}
else{niz[cnt].ime1=ime1; niz[cnt].ime2=ime2; niz[cnt].dug=dug;}
}
}
for(i=0;i<cnt-1;i++){
ime1=niz[i].ime1;
dug=niz[i].dug;
for(j=0;j<cnt;j++){
if(i!=j){
if(ime1==niz[j].ime1)dug=dug+niz[j].dug;
if(ime1==niz[j].ime2)dug=dug-niz[j].dug;
}
}
if(i==0){maximalni=ime1; maxdug=dug;}
if(dug>maxdug){maxdug=dug; maximalni=ime1;}
}
printf("%s %d", maximalni, maxdug);
scanf(" ");
return 0;
}[/code:1]


evo , napisao sam bez ispisa u datoteku ali nece iskompajlirati, zbog "ISO C++ forbids assignment of arrays " greske pa ako netko zna u cemu je problem bio bi ako zahvalan da me uputi :)
Kod:
#include <stdio.h>
#include <stdlib.h>

typedef struct{
        char ime1[20];
        char ime2[20];
        int dug;
        } dugovi;
       

int main(){
    int i, j, dug,cnt=0, maxdug;
    char ime1[20], ime2[20], maximalni[20], iname[20],oname[20];
    dugovi niz[100];
    printf("Unesite ime ulazne datoteke\n");
    scanf("%s", iname);
    FILE *ulaz, *izlaz;
    ulaz=fopen(iname, "r");
    while ( fscanf(ulaz,"%s %s %d\n",ime1,ime2,&dug)==3)
    { ++cnt;
    for(i=0;i<cnt;i++){
                       if(ime1==niz[i].ime1 && ime2==niz[i].ime2){niz[i].dug=niz[i].dug+dug;}
                       if(ime1==niz[i].ime2 && ime2==niz[i].ime1){niz[i].dug=niz[i].dug-dug;}
                       else{niz[cnt].ime1=ime1; niz[cnt].ime2=ime2; niz[cnt].dug=dug;}
                       }
                       }
    for(i=0;i<cnt-1;i++){
                         ime1=niz[i].ime1;
                         dug=niz[i].dug;
    for(j=0;j<cnt;j++){
                       if(i!=j){
                         if(ime1==niz[j].ime1)dug=dug+niz[j].dug;
                         if(ime1==niz[j].ime2)dug=dug-niz[j].dug;
                         }
                         }
                         if(i==0){maximalni=ime1; maxdug=dug;}
                         if(dug>maxdug){maxdug=dug; maximalni=ime1;}
                         }
   printf("%s %d", maximalni, maxdug);
   scanf(" ");
   return 0;
}



evo , napisao sam bez ispisa u datoteku ali nece iskompajlirati, zbog "ISO C++ forbids assignment of arrays " greske pa ako netko zna u cemu je problem bio bi ako zahvalan da me uputi Smile


[Vrh]
Korisnički profil Pošaljite privatnu poruku MSNM
Mad Wilson
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 29. 05. 2006. (22:51:14)
Postovi: (121)16
Sarma = la pohva - posuda
23 = 34 - 11

PostPostano: 15:51 sri, 2. 7. 2008    Naslov: Citirajte i odgovorite

EDIT [code:1]niz[cnt].ime1=ime1[/code:1]
Da sam ja compiler, ovo bi me smetalo; pridruzuju se array-i.
EDIT
Kod:
niz[cnt].ime1=ime1

Da sam ja compiler, ovo bi me smetalo; pridruzuju se array-i.



_________________
1 2 3 4
[Vrh]
Korisnički profil Pošaljite privatnu poruku
vsego
Site Admin
Site Admin


Pridružen/a: 06. 10. 2002. (22:07:09)
Postovi: (3560)16
Spol: zombi
Sarma = la pohva - posuda
854 = 1068 - 214
Lokacija: /sbin/init

PostPostano: 16:17 sri, 2. 7. 2008    Naslov: Citirajte i odgovorite

Uz ovo sto je M.W. napisao:
- deklaracije idu ispred naredbi
- "ISO [color=red]C++[/color] forbids assignment of arrays " :arrow: imam dojam da si ostavio ekstenziju [tt].cpp[/tt]
:?

Nadalje:
[code:1] while ( fscanf(ulaz,"%s %s %d\n",ime1,ime2,&dug)==3)
{ ++cnt;
for(i=0;i<cnt;i++){ [/code:1]
Cemu bezuvjetno povecavanje [tt]cnt[/tt]-a i to bas za 1 i onda jos odmah iza imas petlju koja cita [i]i[/i]-ti element, bez da mu prije toga postavi vrijednost? :-k Ako su oba imena u nizu, [tt]cnt[/tt] se ne bi smio mijenjati; ako je samo jedno ime u nizu, treba ga povecati za 1; ako niti jedno ime nije u nizu (npr. u prvom koraku), treba ga povecati za 2. :?

Kako sam rekao na vjezbama (za taj isti zadatak): idealno je napisati funkciju koja trazi ime u nizu, te dodavati elemente u niz ako ona ne nadje sto trazi. 8)

[b]Dodatak:[/b] tek sada skuzih da pamtis uredjene parove imena i pripadne dugove, sto nije dobro. :? Dugovi se "prebijaju", sto znaci da trebas pamtiti po jedno ime i dug te osobe, zatim trazis dvije osobe (dva [tt]struct[/tt]-a) i onda njima mijenjas dugove (duzniku povecas dug, ovom drugom smanjis). :)
Uz ovo sto je M.W. napisao:
- deklaracije idu ispred naredbi
- "ISO C++ forbids assignment of arrays " Arrow imam dojam da si ostavio ekstenziju .cpp
Confused

Nadalje:
Kod:
    while ( fscanf(ulaz,"%s %s %d\n",ime1,ime2,&dug)==3)
    { ++cnt;
    for(i=0;i<cnt;i++){

Cemu bezuvjetno povecavanje cnt-a i to bas za 1 i onda jos odmah iza imas petlju koja cita i-ti element, bez da mu prije toga postavi vrijednost? Think Ako su oba imena u nizu, cnt se ne bi smio mijenjati; ako je samo jedno ime u nizu, treba ga povecati za 1; ako niti jedno ime nije u nizu (npr. u prvom koraku), treba ga povecati za 2. Confused

Kako sam rekao na vjezbama (za taj isti zadatak): idealno je napisati funkciju koja trazi ime u nizu, te dodavati elemente u niz ako ona ne nadje sto trazi. Cool

Dodatak: tek sada skuzih da pamtis uredjene parove imena i pripadne dugove, sto nije dobro. Confused Dugovi se "prebijaju", sto znaci da trebas pamtiti po jedno ime i dug te osobe, zatim trazis dvije osobe (dva struct-a) i onda njima mijenjas dugove (duzniku povecas dug, ovom drugom smanjis). Smile



_________________
U pravilu ignoriram pitanja u krivim topicima i kodove koji nisu u [code]...[/code] blokovima.
Takodjer, OBJASNITE sto vas muci! "Sto mi je krivo?", bez opisa u cemu je problem, rijetko ce zadobiti moju paznju.
Drzim prodike
[Vrh]
Korisnički profil Pošaljite privatnu poruku
Prethodni postovi:   
Započnite novu temu   Odgovorite na temu   printer-friendly view    Forum@DeGiorgi: Početna -> Kolegiji 1. godine, preddiplomski studij Matematika -> Programiranje 1 i 2 Vremenska zona: GMT + 01:00.
Stranica 1 / 1.

 
Forum(o)Bir:  
Ne možete otvarati nove teme.
Ne možete odgovarati na postove.
Ne možete uređivati Vaše postove.
Ne možete izbrisati Vaše postove.
Ne možete glasovati u anketama.
You cannot attach files in this forum
You can download files in this forum


Powered by phpBB © 2001, 2002 phpBB Group
Theme created by Vjacheslav Trushkin
HR (Cro) by Ančica Sečan