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

2. Kolokvij (informacija)
WWW:
Idite na Prethodno  1, 2, 3, 4, 5  Sljedeće
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
Gost






PostPostano: 14:10 sri, 28. 6. 2006    Naslov: Citirajte i odgovorite

[quote="mladac"]jel može neko potvrdit/opovrgnut da će rezultati biti ranije objavljeni jer da znam krenut na faks u slučaju da neće bit[/quote]

Ima jos takvih.. Javite nam nesto i oslobodite nas muka ljudi
mladac (napisa):
jel može neko potvrdit/opovrgnut da će rezultati biti ranije objavljeni jer da znam krenut na faks u slučaju da neće bit


Ima jos takvih.. Javite nam nesto i oslobodite nas muka ljudi


[Vrh]
Gost






PostPostano: 14:46 sri, 28. 6. 2006    Naslov: Citirajte i odgovorite

nadam se da asistenti kolokvije ispravljaju uz ugodno okruženje klime jer samo mi fali da jadni, dekoncentrirani sparinom me nenamjerno zakinu za koji presudan bod pa da se moram preznojavat na žalbama... :(
nadam se da asistenti kolokvije ispravljaju uz ugodno okruženje klime jer samo mi fali da jadni, dekoncentrirani sparinom me nenamjerno zakinu za koji presudan bod pa da se moram preznojavat na žalbama... Sad


[Vrh]
Gost






PostPostano: 12:07 pet, 30. 6. 2006    Naslov: Citirajte i odgovorite

kada će kolokvij bit dostupan na netu?
kada će kolokvij bit dostupan na netu?


[Vrh]
Zvone
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 01. 07. 2003. (13:09:44)
Postovi: (9D)16
Sarma = la pohva - posuda
67 = 74 - 7

PostPostano: 16:52 sub, 1. 7. 2006    Naslov: Citirajte i odgovorite

Zadaci sa kolokvija su objavljeni danas, mozete ih pronaci na istom mjestu kao i rezultate ([url=http://web.math.hr/nastava/c/kolokviji_rezultati.php]click[/url]).
Zadaci sa kolokvija su objavljeni danas, mozete ih pronaci na istom mjestu kao i rezultate (click).


[Vrh]
Korisnički profil Pošaljite privatnu poruku Pošaljite e-mail
petrich
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 07. 11. 2005. (22:23:35)
Postovi: (F6)16
Spol: žensko
Sarma = la pohva - posuda
18 = 20 - 2

PostPostano: 18:09 ned, 2. 7. 2006    Naslov: Citirajte i odgovorite

probah rjesit 3 zadatak grupe b:

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

void check(void* p){
if(p==NULL){
printf("greshka!");
exit(1);
}
}


int main(){
int n,p,a,b,i,j;
char **A, polozaj[15];
FILE *in,*out;
in=fopen("crtaj.txt","rt");
check(in);
out=fopen("ploca.txt","wt");
check(out);
fscanf(in,"%d",&n);
A=(char**)malloc(n*sizeof(char*));
check(A);
for(i=0;i<n;i++){
A[i]=(char*)malloc(n*sizeof(char));
check(A[i]);
}
for(i=0;i<n;i++)
for(j=0;j<n;j++){
A[i][j]='.';
}
while(fscanf(in,"%s %d", polozaj, &p)==2){
if(strcmp(polozaj,"vodoravno")==0){
a=p;
for(i=0;i<n;i++)A[i][a]='X';
}
else{
b=p;
for(i=0;i<n;i++)A[b][i]='X';
}
}
for(i=n-1;i>=0;i--){
for(j=n-1;j>=0;j--)fprintf(out,"%c",A[i][j]);
fprintf(out,"\n");
}
for(i=0;i<n;i++)free(A[i]);
free(A);
fclose(in);
fclose(out);
scanf("%%");
return 0;
}
[/code:1]

e sad, problem je u onom kaj on meni ispisuje u datoteci, naime umjesto '.' koju bi mi trebao ispisivati na prazna mjesta, on ispisuje neke znakove, dok 'X' dobro postavi.. :roll:
eni ajdijas?

[color=green]Edit:prebacih sad dio s umetanjem '.' na pocetak.[/color]
probah rjesit 3 zadatak grupe b:

Kod:

#include <stdio.h>
#include <stdlib.h>

void check(void* p){
     if(p==NULL){
                 printf("greshka!");
                 exit(1);
     }
}
 
 
int main(){
    int n,p,a,b,i,j;
    char **A, polozaj[15];
    FILE *in,*out;
    in=fopen("crtaj.txt","rt");
    check(in);
    out=fopen("ploca.txt","wt");
    check(out);
    fscanf(in,"%d",&n);
    A=(char**)malloc(n*sizeof(char*));
    check(A);
    for(i=0;i<n;i++){
                     A[i]=(char*)malloc(n*sizeof(char));
                     check(A[i]);
    }
    for(i=0;i<n;i++)
             for(j=0;j<n;j++){
                      A[i][j]='.';
             }
    while(fscanf(in,"%s %d", polozaj, &p)==2){
                        if(strcmp(polozaj,"vodoravno")==0){
                                         a=p;
                                         for(i=0;i<n;i++)A[i][a]='X';
                        }
                        else{
                             b=p;
                             for(i=0;i<n;i++)A[b][i]='X';
                        }
    }
    for(i=n-1;i>=0;i--){
            for(j=n-1;j>=0;j--)fprintf(out,"%c",A[i][j]);
            fprintf(out,"\n");
    }
    for(i=0;i<n;i++)free(A[i]);
    free(A);
    fclose(in);
    fclose(out);
    scanf("%%");
    return 0;
}       


e sad, problem je u onom kaj on meni ispisuje u datoteci, naime umjesto '.' koju bi mi trebao ispisivati na prazna mjesta, on ispisuje neke znakove, dok 'X' dobro postavi.. Rolling Eyes
eni ajdijas?

Edit:prebacih sad dio s umetanjem '.' na pocetak.




Zadnja promjena: petrich; 23:01 ned, 2. 7. 2006; ukupno mijenjano 1 put.
[Vrh]
Korisnički profil Pošaljite privatnu poruku
petrich
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 07. 11. 2005. (22:23:35)
Postovi: (F6)16
Spol: žensko
Sarma = la pohva - posuda
18 = 20 - 2

PostPostano: 18:14 ned, 2. 7. 2006    Naslov: Citirajte i odgovorite

uf, nadjoh glupu greshkicu! :noidea:
sad je ok.. :)
uf, nadjoh glupu greshkicu! Danas nije moj dan
sad je ok.. Smile


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


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

PostPostano: 21:54 ned, 2. 7. 2006    Naslov: Citirajte i odgovorite

[quote="petrich"]uf, nadjoh glupu greshkicu! :noidea:
sad je ok.. :)[/quote]

Stavi onda aktualno rjesenje (ili editiraj gornji post), jer mi se cini da ce ti jedna greskica ostati... :|
petrich (napisa):
uf, nadjoh glupu greshkicu! Danas nije moj dan
sad je ok.. Smile


Stavi onda aktualno rjesenje (ili editiraj gornji post), jer mi se cini da ce ti jedna greskica ostati... Neutral



_________________
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
petrich
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 07. 11. 2005. (22:23:35)
Postovi: (F6)16
Spol: žensko
Sarma = la pohva - posuda
18 = 20 - 2

PostPostano: 22:14 ned, 2. 7. 2006    Naslov: Citirajte i odgovorite

[quote="vsego"][quote="petrich"]uf, nadjoh glupu greshkicu! :noidea:
sad je ok.. :)[/quote]

Stavi onda aktualno rjesenje (ili editiraj gornji post), jer mi se cini da ce ti jedna greskica ostati... :|[/quote]

uf, ma editirala sam post,samo nisam stavila napomenu.. radi sad,ovak napisan.
vsego (napisa):
petrich (napisa):
uf, nadjoh glupu greshkicu! Danas nije moj dan
sad je ok.. Smile


Stavi onda aktualno rjesenje (ili editiraj gornji post), jer mi se cini da ce ti jedna greskica ostati... Neutral


uf, ma editirala sam post,samo nisam stavila napomenu.. radi sad,ovak napisan.


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


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

PostPostano: 22:27 ned, 2. 7. 2006    Naslov: Citirajte i odgovorite

[quote="petrich"]uf, ma editirala sam post,samo nisam stavila napomenu.. radi sad,ovak napisan.[/quote]

Moze i ne raditi. :anishock:

Naime:

[code:1]// Prvi dio:
A=(char**)malloc(n*sizeof(char*));
check(A);
for(i=0;i<n;i++){
A[i]=(char*)malloc(n*sizeof(char));
check(A[i]);
}
// Drugi dio:
while(fscanf(in,"%s %d", polozaj, &p)==2){
if(strcmp(polozaj,"vodoravno")==0){
a=p;
for(i=0;i<n;i++)A[i][a]='X';
}
else{
b=p;
for(i=0;i<n;i++)A[b][i]='X';
}
}
// Treci dio:
for(i=0;i<n;i++)
for(j=0;j<n;j++){
if(A[i][j]!='X')A[i][j]='.';
}[/code:1]

U prvom dijelu alociras memoriju. :) To znaci da ti ta memorija "pripada" i da po njoj mozes pisati, ali su vrijednosti jos uvijek neodredjene (tj. "smece" koje se u tom trenutku tamo zateklo). :-s

U drugom dijelu [b]neke[/b] elemente matrice postavljas na [tt]'X'[/tt]; [b]ostale ne diras[/b]. :)

U trecem dijelu [b]citas sve elemente[/b] (dakle i one u koje nisi nista zapisala nakon alokacije memorije) i postavljas na [tt]'.'[/tt] one koji nisu [tt]'X'[/tt]. :?

Eh, da je u onom "smecu" nakon alokacije memorije bio [tt]'X'[/tt] negdje gdje ne smije biti, ti bi dobila krivo rjesenje. :shock:

Dakle, prvo alociraj, zatim [b]sve[/b] inicijaliziraj na [tt]'.'[/tt] i tek na kraju postavljaj [tt]'X'[/tt] tamo gdje treba. ;)

:klopa: ;)
petrich (napisa):
uf, ma editirala sam post,samo nisam stavila napomenu.. radi sad,ovak napisan.


Moze i ne raditi. Jos jedan shock

Naime:

Kod:
// Prvi dio:
    A=(char**)malloc(n*sizeof(char*));
    check(A);
    for(i=0;i<n;i++){
                     A[i]=(char*)malloc(n*sizeof(char));
                     check(A[i]);
    }
// Drugi dio:
    while(fscanf(in,"%s %d", polozaj, &p)==2){
                        if(strcmp(polozaj,"vodoravno")==0){
                                         a=p;
                                         for(i=0;i<n;i++)A[i][a]='X';
                        }
                        else{
                             b=p;
                             for(i=0;i<n;i++)A[b][i]='X';
                        }
    }
// Treci dio:
    for(i=0;i<n;i++)
             for(j=0;j<n;j++){
                      if(A[i][j]!='X')A[i][j]='.';
             }


U prvom dijelu alociras memoriju. Smile To znaci da ti ta memorija "pripada" i da po njoj mozes pisati, ali su vrijednosti jos uvijek neodredjene (tj. "smece" koje se u tom trenutku tamo zateklo). Eh?

U drugom dijelu neke elemente matrice postavljas na 'X'; ostale ne diras. Smile

U trecem dijelu citas sve elemente (dakle i one u koje nisi nista zapisala nakon alokacije memorije) i postavljas na '.' one koji nisu 'X'. Confused

Eh, da je u onom "smecu" nakon alokacije memorije bio 'X' negdje gdje ne smije biti, ti bi dobila krivo rjesenje. Shocked

Dakle, prvo alociraj, zatim sve inicijaliziraj na '.' i tek na kraju postavljaj 'X' tamo gdje treba. Wink

Dosli cevapi!!!! 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
petrich
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 07. 11. 2005. (22:23:35)
Postovi: (F6)16
Spol: žensko
Sarma = la pohva - posuda
18 = 20 - 2

PostPostano: 22:44 ned, 2. 7. 2006    Naslov: Citirajte i odgovorite

[quote="vsego"]

Eh, da je u onom "smecu" nakon alokacije memorije bio [tt]'X'[/tt] negdje gdje ne smije biti, ti bi dobila krivo rjesenje. :shock:
[/quote]

:shuffle: nisam to bas tak bila shvatila.. sad znam. :)
karma++
vsego (napisa):


Eh, da je u onom "smecu" nakon alokacije memorije bio 'X' negdje gdje ne smije biti, ti bi dobila krivo rjesenje. Shocked


Shuffle nisam to bas tak bila shvatila.. sad znam. Smile
karma++


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


Pridružen/a: 07. 11. 2005. (22:23:35)
Postovi: (F6)16
Spol: žensko
Sarma = la pohva - posuda
18 = 20 - 2

PostPostano: 11:50 uto, 4. 7. 2006    Naslov: Citirajte i odgovorite

probala sam rjesiti 2. zadatak s kolokvija grupe B, naravno na radi. :roll:

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

int *pero(char* src){
int* izlaz;
int temp[100];
int i=0,j;
while(*src!='\0'){
if((*src>='a')&&(*src<='z')){
temp[i]=0;
i++;
src++;
}
else if((*src>='A')&&(*src<='Z')){
temp[i]=1;
i++;
src++;
}
else src++;
}
if(i!=0){
izlaz=(int*)malloc(i*sizeof(int));
for(j=0;j<i;j++){
izlaz[j]=temp[j];
printf("%d",izlaz[j]);
}
return izlaz;
}
else return NULL;
}[/code:1]

dakle, to je f-ija, za glavni program sam stavila ovo:
[code:1]
int main(){
char ulaz[100];
int *izlaz;
printf("unesi ulaz:\n");
scanf("%s",ulaz);
izlaz=pero(ulaz);
printf("%d",izlaz);
free(izlaz);
scanf("%%");
return 0;
}[/code:1]

ne znam da li je greska vec u f-iji ili samo u pozivu iz programa.
probala sam rjesiti 2. zadatak s kolokvija grupe B, naravno na radi. Rolling Eyes

Kod:

#include <stdio.h>
#include <stdlib.h>

int *pero(char* src){
     int* izlaz;
     int temp[100];
     int i=0,j;
     while(*src!='\0'){
                       if((*src>='a')&&(*src<='z')){
                                                    temp[i]=0;
                                                    i++;
                                                    src++;
                       }
                       else if((*src>='A')&&(*src<='Z')){
                            temp[i]=1;
                            i++;
                            src++;
                       }
                       else src++;
     }
     if(i!=0){
              izlaz=(int*)malloc(i*sizeof(int));
              for(j=0;j<i;j++){
                               izlaz[j]=temp[j];
                               printf("%d",izlaz[j]);
              }
              return izlaz;
     }
     else return NULL;
}


dakle, to je f-ija, za glavni program sam stavila ovo:
Kod:

int main(){
    char ulaz[100];
    int *izlaz;
    printf("unesi ulaz:\n");
    scanf("%s",ulaz);
    izlaz=pero(ulaz);
    printf("%d",izlaz);
    free(izlaz);
    scanf("%%");
    return 0;
}


ne znam da li je greska vec u f-iji ili samo u pozivu iz programa.


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


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

PostPostano: 13:40 uto, 4. 7. 2006    Naslov: Citirajte i odgovorite

U funkciji je pogresno to sto si uvela ogranicenje na duljinu rezultata (100 [tt]int[/tt]-ova). :?

Ali, greska ti se javlja jer [tt]int*[/tt] ispisujes s formatom [tt]%d[/tt] (koji sluzi za ispis [tt]int[/tt]-a). 8)

Dobar ispis ovdje ne mozes napraviti jer funkcija ne vraca duljinu nastalog niza. :( Time smo vam htjeli olaksati pisanje same funkcije. O:) Najbolje ju je testirati ovako:

[code:1]int main(){
int *izlaz, i;
izlaz=pero("Dos'o 1 Pero u 12 sati.");
for (i = 0; i < 3; i++) printf("%d ", izlaz[i]);
free(izlaz);
scanf("%%");
return 0;
}[/code:1]
U funkciji je pogresno to sto si uvela ogranicenje na duljinu rezultata (100 int-ova). Confused

Ali, greska ti se javlja jer int* ispisujes s formatom %d (koji sluzi za ispis int-a). Cool

Dobar ispis ovdje ne mozes napraviti jer funkcija ne vraca duljinu nastalog niza. Sad Time smo vam htjeli olaksati pisanje same funkcije. Angel Najbolje ju je testirati ovako:

Kod:
int main(){
  int *izlaz, i;
  izlaz=pero("Dos'o 1 Pero u 12 sati.");
  for (i = 0; i < 3; i++) printf("%d ", izlaz[i]);
  free(izlaz);
  scanf("%%");
  return 0;
}



_________________
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
petrich
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 07. 11. 2005. (22:23:35)
Postovi: (F6)16
Spol: žensko
Sarma = la pohva - posuda
18 = 20 - 2

PostPostano: 15:13 uto, 4. 7. 2006    Naslov: Citirajte i odgovorite

[quote="vsego"]U funkciji je pogresno to sto si uvela ogranicenje na duljinu rezultata (100 [tt]int[/tt]-ova). :?
[/quote]

sad to ispravih, pa radi. :thankyou:
zanima me jos samo kaj sad s tom memorijom koju sam alocirala unutar f-ije. jel da ju oslobodim unutar f-ije?
ako da, jel mora biti prije nekog returna?
nekak sam ja to shvatila da ak ju oslobodim prije, da mi nece nis vratit, a ak stavim free nakon returna da se onda nece izvrsit... :?
vsego (napisa):
U funkciji je pogresno to sto si uvela ogranicenje na duljinu rezultata (100 int-ova). Confused


sad to ispravih, pa radi. Thank you
zanima me jos samo kaj sad s tom memorijom koju sam alocirala unutar f-ije. jel da ju oslobodim unutar f-ije?
ako da, jel mora biti prije nekog returna?
nekak sam ja to shvatila da ak ju oslobodim prije, da mi nece nis vratit, a ak stavim free nakon returna da se onda nece izvrsit... Confused


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


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

PostPostano: 16:35 uto, 4. 7. 2006    Naslov: Citirajte i odgovorite

[quote="petrich"]zanima me jos samo kaj sad s tom memorijom koju sam alocirala unutar f-ije. jel da ju oslobodim unutar f-ije?[/quote]

NE! :shock: Ti trebas [b]vratiti[/b] alociranu memoriju... 8)

[quote="petrich"]nekak sam ja to shvatila da ak ju oslobodim prije, da mi nece nis vratit, a ak stavim free nakon returna da se onda nece izvrsit... :?[/quote]

Nije da ti nece vratiti nista; vratit ce ti memoriju koja ti ne pripada i koju u svakom trenutku moze "pregaziti" neki drugi program. :? Ako stavis iza [tt]return[/tt], kako si i rekla, taj [tt]free()[/tt] se nece izvrsiti. 8)
petrich (napisa):
zanima me jos samo kaj sad s tom memorijom koju sam alocirala unutar f-ije. jel da ju oslobodim unutar f-ije?


NE! Shocked Ti trebas vratiti alociranu memoriju... Cool

petrich (napisa):
nekak sam ja to shvatila da ak ju oslobodim prije, da mi nece nis vratit, a ak stavim free nakon returna da se onda nece izvrsit... Confused


Nije da ti nece vratiti nista; vratit ce ti memoriju koja ti ne pripada i koju u svakom trenutku moze "pregaziti" neki drugi program. Confused Ako stavis iza return, kako si i rekla, taj free() se nece izvrsiti. 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
petrich
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 07. 11. 2005. (22:23:35)
Postovi: (F6)16
Spol: žensko
Sarma = la pohva - posuda
18 = 20 - 2

PostPostano: 21:28 uto, 4. 7. 2006    Naslov: Citirajte i odgovorite

hehe odlicno, al nisi mi bas u potpunosti odgovorio na pitanje (sta s tom alociranom memorijom). :wink:
dakle, sad znam ono sto sam pretpostavljala, da ju ne smijem osloboditi unutar f-ije. :roll: znaci oslobadjam ju unutar maina? da li ce se ona oslobotiti u ovom kodu koji si mi dao za main:

[code:1]
int main(){
int *izlaz, i;
izlaz=pero("Dos'o 1 Pero u 12 sati.");
for (i = 0; i < 3; i++) printf("%d ", izlaz[i]);
free(izlaz);
scanf("%%");
return 0;
}[/code:1]
hehe odlicno, al nisi mi bas u potpunosti odgovorio na pitanje (sta s tom alociranom memorijom). Wink
dakle, sad znam ono sto sam pretpostavljala, da ju ne smijem osloboditi unutar f-ije. Rolling Eyes znaci oslobadjam ju unutar maina? da li ce se ona oslobotiti u ovom kodu koji si mi dao za main:

Kod:

int main(){
  int *izlaz, i;
  izlaz=pero("Dos'o 1 Pero u 12 sati.");
  for (i = 0; i < 3; i++) printf("%d ", izlaz[i]);
  free(izlaz);
  scanf("%%");
  return 0;
}


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


Pridružen/a: 07. 11. 2005. (22:23:35)
Postovi: (F6)16
Spol: žensko
Sarma = la pohva - posuda
18 = 20 - 2

PostPostano: 21:43 uto, 4. 7. 2006    Naslov: Citirajte i odgovorite

jos jedna napomena, vezana uz 2.kolokvij. i to 1.zad pod g).
dakle imamo slijedece:
[code:1]
f=fopen("dat.txt","rt");
[/code:1]
gdje je datoteka otvorena za citanje s ovim argumentom mod->"rt".
i kasnije pokusavamo nesto upisati u tu datoteku s:

[code:1]fprintf(f,%d %d %d\n",a[0],a[1],a[2]);[/code:1]

e sad, na prezentaciji rjesenja je receno kako bi prvo datoteku trebalo zatvorit, a nakon toga ponovo otvorit za pisanje, te da nije moguce istovremeno citat iz datoteke i pisat u nju. :shock:
sa:
[b]"w+"[/b] otvaramo/stvaramo text datoteku,s omogucenim operacijama citanja/upis
[b]"r+" [/b]otvaramo text datoteku za citanje/upis
[b]"r+t" [/b]otvaranje text datoteke za citanj/upis
[b]"w+t"[/b] otvaranje/stvaranje text datoteke,omogucene operacije citanja/upisa.
dakle smatram kako bi nesto poput:
[code:1]f=fopen("dat.txt","r+t");[/code:1]
bilo mnogo zgodnije nego zatvaranje datoteke, te naknadno otvaranje. :wink:
jos jedna napomena, vezana uz 2.kolokvij. i to 1.zad pod g).
dakle imamo slijedece:
Kod:

f=fopen("dat.txt","rt");

gdje je datoteka otvorena za citanje s ovim argumentom mod→"rt".
i kasnije pokusavamo nesto upisati u tu datoteku s:

Kod:
fprintf(f,%d %d %d\n",a[0],a[1],a[2]);


e sad, na prezentaciji rjesenja je receno kako bi prvo datoteku trebalo zatvorit, a nakon toga ponovo otvorit za pisanje, te da nije moguce istovremeno citat iz datoteke i pisat u nju. Shocked
sa:
"w+" otvaramo/stvaramo text datoteku,s omogucenim operacijama citanja/upis
"r+" otvaramo text datoteku za citanje/upis
"r+t" otvaranje text datoteke za citanj/upis
"w+t" otvaranje/stvaranje text datoteke,omogucene operacije citanja/upisa.
dakle smatram kako bi nesto poput:
Kod:
f=fopen("dat.txt","r+t");

bilo mnogo zgodnije nego zatvaranje datoteke, te naknadno otvaranje. Wink


[Vrh]
Korisnički profil Pošaljite privatnu poruku
Nesi
Inventar Foruma
(Moderator)
Inventar Foruma<br>(Moderator)


Pridružen/a: 14. 10. 2002. (14:27:35)
Postovi: (E68)16
Spol: kućni ljubimac
Sarma: -

PostPostano: 23:32 uto, 4. 7. 2006    Naslov: Citirajte i odgovorite

znala sam da sam nesto zaboravila.... :grrr:

to sto si zadnje napisala, zbilja vrijedi... ali za BINARNE datoteke -a takve niste radili
za textualne, kakve radimo, vrijedi ono sto sam pricala.... a i ti napisala (otvori, zatvori, blabla)
znala sam da sam nesto zaboravila.... Grrrrr....

to sto si zadnje napisala, zbilja vrijedi... ali za BINARNE datoteke -a takve niste radili
za textualne, kakve radimo, vrijedi ono sto sam pricala.... a i ti napisala (otvori, zatvori, blabla)



_________________
It's not who you love. It's how.
[Vrh]
Korisnički profil Pošaljite privatnu poruku Posjetite Web stranice
vsego
Site Admin
Site Admin


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

PostPostano: 23:55 uto, 4. 7. 2006    Naslov: Citirajte i odgovorite

[quote="petrich"]hehe odlicno, al nisi mi bas u potpunosti odgovorio na pitanje (sta s tom alociranom memorijom). :wink:
dakle, sad znam ono sto sam pretpostavljala, da ju ne smijem osloboditi unutar f-ije. :roll: znaci oslobadjam ju unutar maina? da li ce se ona oslobotiti u ovom kodu koji si mi dao za main:
[code:1]int main(){
int *izlaz, i;
izlaz=pero("Dos'o 1 Pero u 12 sati.");
for (i = 0; i < 3; i++) printf("%d ", izlaz[i]);
free(izlaz);
scanf("%%");
return 0;
}[/code:1][/quote]

Pa.... sto bi drugo radio [tt]free(izlaz)[/tt]? :grebgreb:
petrich (napisa):
hehe odlicno, al nisi mi bas u potpunosti odgovorio na pitanje (sta s tom alociranom memorijom). Wink
dakle, sad znam ono sto sam pretpostavljala, da ju ne smijem osloboditi unutar f-ije. Rolling Eyes znaci oslobadjam ju unutar maina? da li ce se ona oslobotiti u ovom kodu koji si mi dao za main:
Kod:
int main(){
  int *izlaz, i;
  izlaz=pero("Dos'o 1 Pero u 12 sati.");
  for (i = 0; i < 3; i++) printf("%d ", izlaz[i]);
  free(izlaz);
  scanf("%%");
  return 0;
}


Pa.... sto bi drugo radio free(izlaz)? Kotacici rade 100 na sat



_________________
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
petrich
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 07. 11. 2005. (22:23:35)
Postovi: (F6)16
Spol: žensko
Sarma = la pohva - posuda
18 = 20 - 2

PostPostano: 7:42 sri, 5. 7. 2006    Naslov: Citirajte i odgovorite

[quote="Nesi"]
to sto si zadnje napisala, zbilja vrijedi... ali za BINARNE datoteke -a takve niste radili
za textualne, kakve radimo, vrijedi ono sto sam pricala.... a i ti napisala (otvori, zatvori, blabla)[/quote]

:? hm, al to i je za otvaranje tekstualnih datoteka (mislila sam da je dovoljno da napisem text).
uglavnom, za otvaranje binarnih su tu:
[b]"r+b"[/b] i [b]"w+b"[/b], a ono sto sam ja napisala se doista odnosi na tekstualne datoteke. 8)

[quote="Vsego"]
Pa.... sto bi drugo radio free(izlaz)? [/quote]

ah... tipkam prije neg razmislim.. :shame:
Nesi (napisa):

to sto si zadnje napisala, zbilja vrijedi... ali za BINARNE datoteke -a takve niste radili
za textualne, kakve radimo, vrijedi ono sto sam pricala.... a i ti napisala (otvori, zatvori, blabla)


Confused hm, al to i je za otvaranje tekstualnih datoteka (mislila sam da je dovoljno da napisem text).
uglavnom, za otvaranje binarnih su tu:
"r+b" i "w+b", a ono sto sam ja napisala se doista odnosi na tekstualne datoteke. Cool

Vsego (napisa):

Pa.... sto bi drugo radio free(izlaz)?


ah... tipkam prije neg razmislim.. Toliko me sram...


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


Pridružen/a: 01. 07. 2003. (13:09:44)
Postovi: (9D)16
Sarma = la pohva - posuda
67 = 74 - 7

PostPostano: 18:27 sri, 5. 7. 2006    Naslov: Citirajte i odgovorite

Pomocu "r+" se zaista smije i citati i pisati na text datotekama, ali ispravan rad i nije tako trivijalan (pa nije ni cudo da ga uopce nismo spominjali na vjezbama a i da se u praksi izuzetno rijetko (nikad?) koristi). Evo, npr. zamisli da imamo ovakvu datoteku "nesto.txt":

[code:1]5 6 7
bok!
[/code:1]

Pokusaj bez pokretanja donjeg programa predvidjeti izgled te datoteke u slucaju da je linija oznacena sa // !!!!! komentirana i u slucaju da nije:

[code:1]#include <stdio.h>
int main ( void )
{
FILE *f;
int a;

f=fopen("nesto.txt", "r+");
fscanf (f, "%d", &a); // !!!!!
fprintf (f, "hop!");
fclose(f);

return 0;
}[/code:1]

Dodatni problem je u tome da standard nalaze da se naredbe fscanf i fprintf u bilo kojem poretku ne smiju pozivati jedna direktno iza druge ako se izmedju njih ne nalazi neka od naredbi za pozicioniranje u file-u (rewind, fseek i sl.). Preciznije (ANSI):

[quote]When a file is opened with update mode ('+' as the second or third character in the above list of mode argument values), both input and output may be performed on the associated stream. However, output shall not be directly followed by input without an intervening call to the fflush function or to a file positioning function (fseek, fsetpos, or rewind), and input shall not be directly followed by output without an intervening call to a file positioning function, unless the input operation encounters end-of-file. Opening (or creating) a text file with update mode may instead open (or create) a binary stream in some implementations.[/quote]

Zadnja recenica jos vise obeshrabruje koristenje r+ ili w+ sa text-datotekama :)

Dakle, ispravak "datoteku treba otvoriti sa f=fopen("bla.txt", "r+")" u podzadatku (g) kolokvija u najboljem slucaju nije bio potpun, trebalo je recimo jos dodati npr. "ispred naredbe fprintf treba pozvati rewind(f)".
Pomocu "r+" se zaista smije i citati i pisati na text datotekama, ali ispravan rad i nije tako trivijalan (pa nije ni cudo da ga uopce nismo spominjali na vjezbama a i da se u praksi izuzetno rijetko (nikad?) koristi). Evo, npr. zamisli da imamo ovakvu datoteku "nesto.txt":

Kod:
5 6 7
bok!


Pokusaj bez pokretanja donjeg programa predvidjeti izgled te datoteke u slucaju da je linija oznacena sa // !!!!! komentirana i u slucaju da nije:

Kod:
#include <stdio.h>
int main ( void )
{
    FILE *f;
    int a;

    f=fopen("nesto.txt", "r+");
    fscanf (f, "%d", &a); // !!!!!
    fprintf (f, "hop!");
    fclose(f);

    return 0;
}


Dodatni problem je u tome da standard nalaze da se naredbe fscanf i fprintf u bilo kojem poretku ne smiju pozivati jedna direktno iza druge ako se izmedju njih ne nalazi neka od naredbi za pozicioniranje u file-u (rewind, fseek i sl.). Preciznije (ANSI):

Citat:
When a file is opened with update mode ('+' as the second or third character in the above list of mode argument values), both input and output may be performed on the associated stream. However, output shall not be directly followed by input without an intervening call to the fflush function or to a file positioning function (fseek, fsetpos, or rewind), and input shall not be directly followed by output without an intervening call to a file positioning function, unless the input operation encounters end-of-file. Opening (or creating) a text file with update mode may instead open (or create) a binary stream in some implementations.


Zadnja recenica jos vise obeshrabruje koristenje r+ ili w+ sa text-datotekama Smile

Dakle, ispravak "datoteku treba otvoriti sa f=fopen("bla.txt", "r+")" u podzadatku (g) kolokvija u najboljem slucaju nije bio potpun, trebalo je recimo jos dodati npr. "ispred naredbe fprintf treba pozvati rewind(f)".


[Vrh]
Korisnički profil Pošaljite privatnu poruku Pošaljite e-mail
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.
Idite na Prethodno  1, 2, 3, 4, 5  Sljedeće
Stranica 4 / 5.

 
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