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

Prog2 DZ
WWW:
Idite na Prethodno  1, 2, 3 ... 11, 12, 13
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
purist
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 20. 09. 2011. (23:16:53)
Postovi: (18)16
Spol: žensko
Sarma = la pohva - posuda
= 4 - 1

PostPostano: 0:37 pet, 1. 6. 2012    Naslov: Citirajte i odgovorite

oprostite na gnjavazi, ali sad me jos samo ovaj muci (znam da je bilo takvih vec prije, samo mislim da je ovo malo drukcije rijeseno, i radije bih da moj kod napokon proradi, iako na mojim, valjda nedovoljno mastovitim primjerima, uspjesno radi). malo je zadnji cas i to... (:

Napišite program koji čita datoteku "rojuixkb.in", te ju prepisuje u datoteku "rojuixkb.out" tako da u prepisivanju sva pojavljivanja stringa "yl" zamijeni stringom "gzeqwfx".
Napomena: Nemojte uvoditi ograničenja na duljinu datoteke i/ili pojedinih linija i riječi u datoteci.

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

int main(void)
{
FILE *fp1, *fp2;
long int ftell_pos;
int i;
char string1[]="yl", string2[]="gzeqwfx";
char *tren;
char c;

fp1=fopen("rojuixkb.in","r");
if(!fp1) exit(1);

fp2=fopen("rojuixkb2.out","w");
if(!fp2) exit(2);

while(fscanf(fp1,"%c",&c)>0)
{
tren=(char *)malloc(sizeof(char));
tren[0]=c;

ftell_pos=ftell(fp1);

if(fscanf(fp1,"%c",&c)>0)
tren[1]=c;
tren[2]='\0';

if(strcmp(tren,string1)==0)
fprintf(fp2,"%s",string2);

else
{
fprintf(fp2,"%c",tren[0]);
fseek(fp1,ftell_pos,SEEK_SET);
}

for(i=0;i!='\0';i++)
free(tren);
}

fclose(fp1);
fclose(fp2);
return 0;

}

[/code:1]
oprostite na gnjavazi, ali sad me jos samo ovaj muci (znam da je bilo takvih vec prije, samo mislim da je ovo malo drukcije rijeseno, i radije bih da moj kod napokon proradi, iako na mojim, valjda nedovoljno mastovitim primjerima, uspjesno radi). malo je zadnji cas i to... (:

Napišite program koji čita datoteku "rojuixkb.in", te ju prepisuje u datoteku "rojuixkb.out" tako da u prepisivanju sva pojavljivanja stringa "yl" zamijeni stringom "gzeqwfx".
Napomena: Nemojte uvoditi ograničenja na duljinu datoteke i/ili pojedinih linija i riječi u datoteci.

Kod:

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

int main(void)
{
    FILE *fp1, *fp2;
    long int ftell_pos;
    int i;
    char string1[]="yl", string2[]="gzeqwfx";
    char *tren;
    char c;

    fp1=fopen("rojuixkb.in","r");
    if(!fp1) exit(1);

    fp2=fopen("rojuixkb2.out","w");
    if(!fp2) exit(2);

    while(fscanf(fp1,"%c",&c)>0)
    {
        tren=(char *)malloc(sizeof(char));
        tren[0]=c;

        ftell_pos=ftell(fp1);

        if(fscanf(fp1,"%c",&c)>0)
        tren[1]=c;
        tren[2]='\0';

        if(strcmp(tren,string1)==0)
            fprintf(fp2,"%s",string2);

        else
        {
            fprintf(fp2,"%c",tren[0]);
            fseek(fp1,ftell_pos,SEEK_SET);
        }

        for(i=0;i!='\0';i++)
            free(tren);
    }

    fclose(fp1);
    fclose(fp2);
    return 0;

}



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


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

PostPostano: 1:25 pet, 1. 6. 2012    Naslov: Citirajte i odgovorite

1. Izlazna datoteka se krivo zove.

2. Za [tt]tren[/tt] alociras memoriju za 1 [tt]char[/tt], a koristis njih 3.

3. Ne zapisujes zadnji znak.

4. [tt]for(i=0;i!='\0';i++)[/tt] je petlja koja se niti jednom ne izvrsava (jer je [tt]'\0' == (char)0[/tt]), a kad bi se izvrsavala, rusila bi program jer bi vise puta oslobadjala onaj jedan ubogi byte na kojeg pokazuje [tt]tren[/tt].

Cemu uopce dinamicka alokacija kad znas da koristis najvise 3 znaka?
1. Izlazna datoteka se krivo zove.

2. Za tren alociras memoriju za 1 char, a koristis njih 3.

3. Ne zapisujes zadnji znak.

4. for(i=0;i!='\0';i++) je petlja koja se niti jednom ne izvrsava (jer je '\0' == (char)0), a kad bi se izvrsavala, rusila bi program jer bi vise puta oslobadjala onaj jedan ubogi byte na kojeg pokazuje tren.

Cemu uopce dinamicka alokacija kad znas da koristis najvise 3 znaka?



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


Pridružen/a: 10. 09. 2011. (16:08:19)
Postovi: (F4)16
Spol: kućni ljubimac
Sarma = la pohva - posuda
10 = 17 - 7

PostPostano: 9:04 pet, 1. 6. 2012    Naslov: Citirajte i odgovorite

[quote="vsego"]
@PermutiranoPrase: hvala za report o Chromeu s poteskocama u razvoju. Sredim kad stignem; sad vise nije hitno... :)
[b]Edit:[/b] Sredih. 8) Bedasti Chrome, pravio se pametan... :roll:[/quote]
I drugi put. E, to je bilo brzo. :)
vsego (napisa):

@PermutiranoPrase: hvala za report o Chromeu s poteskocama u razvoju. Sredim kad stignem; sad vise nije hitno... Smile
Edit: Sredih. Cool Bedasti Chrome, pravio se pametan... Rolling Eyes

I drugi put. E, to je bilo brzo. Smile



_________________
With great power comes great electricity bill.
n!!!!
Theorem 2: Alexander the Great did not exist and he had an infinite number of limbs.
[Vrh]
Korisnički profil Pošaljite privatnu poruku
Shaman
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 24. 09. 2011. (22:21:43)
Postovi: (76)16
Spol: muško
Sarma = la pohva - posuda
= 9 - 4

PostPostano: 11:17 pet, 1. 6. 2012    Naslov: Citirajte i odgovorite

zadatak: Zadana je datoteka "pqxpa.in" u kojoj se u prvoj liniji nalazi prirodni broj n, a u idućih n redaka zapisani su datumi u formatu
d.m.g.
(po jedan u svakom retku). Datume treba prepisati u datoteku "pqxpa.out" u formatu
koliko/d.m.g.
pri čemu je koliko broj pojavljivanja datuma u datoteci, a datumi trebaju biti sortirani od najstarijeg prema najnovijem.

molio bih pomoc, nekoliko varijanti sam poslao ali negdje ima greska koju nemogu pornac
[code:1]
#include <stdio.h>
#include <stdlib.h>

typedef struct datum{
int dan,mj,god;
}datum;


int koliko(int n,datum *m,datum koji){
int i,koliko=0;

for(i=0; i < n; ++i)
if((koji.dan == m[i].dan) && (koji.mj == m[i].mj) && (koji.god == m[i].god)) /* broji koliko puta se pojavljuje odredjeni datum*/
++koliko;
return koliko;
}

int bio(datum *bili, int d, datum m){
int i;

for(i=0; i < d; ++i)
if((bili[i].dan == m.dan) && (bili[i].mj == m.mj) && (bili[i].god == m.god)) /*provjerava je li odredjeni datum bio vec ispisan u datateku*/
return 1;
return 0;
}


void zadatak(FILE *in,FILE *out){
int n,i,j,d=0;
int dan,mj,god;
datum *m,*bili=NULL;

fscanf(in,"%d",&n);
if((m=(datum*)malloc(n*sizeof(datum))) == NULL){
printf("greska 3");
exit(3);
}

for(i=0; i < n; ++i)
if(fscanf(in,"%d.%d.%d.",&dan,&mj,&god) > 0){
m[i].dan=dan;
m[i].mj=mj;
m[i].god=god;
}

for(i=0; i < n-1; ++i) /*uzlazni sort*/
for(j=i; j < n; ++j){
if(m[i].god > m[j].god){
datum pom=m[i];
m[i]=m[j];
m[j]=pom;
}
else{
if((m[i].god == m[j].god) && (m[i].mj > m[j].mj)){
datum pom=m[i];
m[i]=m[j];
m[j]=pom;
}
else if(((m[i].god == m[j].god) && (m[i].mj > m[j].mj)) && (m[i].dan > m[j].dan)){
datum pom=m[i];
m[i]=m[j];
m[j]=pom;
}
}
}

for(i=0; i < n; ++i) /*ispis structova u datoteku*/
if(bili == NULL || !bio(bili,d,m[i])){
fprintf(out,"%d/%d.%d.%d.",koliko(n,m,m[i]),m[i].dan,m[i].mj,m[i].god);
if(i != n-1)
fprintf(out,"\n");
if((bili=(datum*)realloc(bili,++d*sizeof(datum))) == NULL){
printf("greska");
exit(4);
}
bili[d-1].dan=m[i].dan;
bili[d-1].mj=m[i].mj;
bili[d-1].god=m[i].god;
}

free(m);
m=NULL;
free(bili);
bili=NULL;
return;
}


int main(void){
FILE *in,*out;
char inname[]="pqxpa.in",outname[]="pqxpa.out";

if((in=fopen(inname,"r")) == NULL){
printf("greska 1");
exit(1);
}
if((out=fopen(outname,"w")) == NULL){
fclose(in);
printf("greska 2");
exit(2);
}

zadatak(in,out);
fclose(in);
fclose(out);
}[/code:1]
zadatak: Zadana je datoteka "pqxpa.in" u kojoj se u prvoj liniji nalazi prirodni broj n, a u idućih n redaka zapisani su datumi u formatu
d.m.g.
(po jedan u svakom retku). Datume treba prepisati u datoteku "pqxpa.out" u formatu
koliko/d.m.g.
pri čemu je koliko broj pojavljivanja datuma u datoteci, a datumi trebaju biti sortirani od najstarijeg prema najnovijem.

molio bih pomoc, nekoliko varijanti sam poslao ali negdje ima greska koju nemogu pornac
Kod:

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

    typedef struct datum{
        int dan,mj,god;
    }datum;


   int koliko(int n,datum *m,datum koji){
       int i,koliko=0;

       for(i=0; i < n; ++i)
        if((koji.dan == m[i].dan) && (koji.mj == m[i].mj) && (koji.god == m[i].god))  /* broji koliko puta se pojavljuje odredjeni datum*/
            ++koliko;
        return koliko;
   }

   int bio(datum *bili, int d, datum m){
       int i;

        for(i=0; i < d; ++i)
            if((bili[i].dan == m.dan) && (bili[i].mj == m.mj) && (bili[i].god == m.god))    /*provjerava je li odredjeni datum bio vec ispisan u datateku*/
                return 1;
        return 0;
   }


    void zadatak(FILE *in,FILE *out){
        int n,i,j,d=0;
        int dan,mj,god;
        datum *m,*bili=NULL;

        fscanf(in,"%d",&n);
        if((m=(datum*)malloc(n*sizeof(datum))) == NULL){
            printf("greska 3");
            exit(3);
        }

        for(i=0; i < n; ++i)
            if(fscanf(in,"%d.%d.%d.",&dan,&mj,&god) > 0){
                m[i].dan=dan;
                m[i].mj=mj;
                m[i].god=god;
            }

        for(i=0; i < n-1; ++i)                                                /*uzlazni sort*/
            for(j=i; j < n; ++j){
                if(m[i].god > m[j].god){
                        datum pom=m[i];
                        m[i]=m[j];
                        m[j]=pom;
                }
                else{
                    if((m[i].god == m[j].god) && (m[i].mj > m[j].mj)){
                        datum pom=m[i];
                        m[i]=m[j];
                        m[j]=pom;
                    }
                    else if(((m[i].god == m[j].god) && (m[i].mj > m[j].mj)) && (m[i].dan > m[j].dan)){
                            datum pom=m[i];
                            m[i]=m[j];
                            m[j]=pom;
                    }
                }
            }

        for(i=0; i < n; ++i)                                                        /*ispis structova u datoteku*/
            if(bili == NULL || !bio(bili,d,m[i])){
                fprintf(out,"%d/%d.%d.%d.",koliko(n,m,m[i]),m[i].dan,m[i].mj,m[i].god);
                if(i != n-1)
                    fprintf(out,"\n");
                if((bili=(datum*)realloc(bili,++d*sizeof(datum))) == NULL){
                    printf("greska");
                    exit(4);
                }
                bili[d-1].dan=m[i].dan;
                bili[d-1].mj=m[i].mj;
                bili[d-1].god=m[i].god;
            }

        free(m);
        m=NULL;
        free(bili);
        bili=NULL;
        return;
    }


    int main(void){
        FILE *in,*out;
        char inname[]="pqxpa.in",outname[]="pqxpa.out";

        if((in=fopen(inname,"r")) == NULL){
            printf("greska 1");
            exit(1);
        }
        if((out=fopen(outname,"w")) == NULL){
            fclose(in);
            printf("greska 2");
            exit(2);
        }

        zadatak(in,out);
        fclose(in);
        fclose(out);
    }



_________________
it was merely a setback
[Vrh]
Korisnički profil Pošaljite privatnu poruku
vsego
Site Admin
Site Admin


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

PostPostano: 11:41 pet, 1. 6. 2012    Naslov: Citirajte i odgovorite

Usporedba mjeseci u zadnjem od tri sortovska [tt]if[/tt]-a mi djeluje pogresno.

Usput, ne funkciju i njenu varijablu jednako zvati ([tt]koliko[/tt])!
Usporedba mjeseci u zadnjem od tri sortovska if-a mi djeluje pogresno.

Usput, ne funkciju i njenu varijablu jednako zvati (koliko)!



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


Pridružen/a: 24. 09. 2011. (22:21:43)
Postovi: (76)16
Spol: muško
Sarma = la pohva - posuda
= 9 - 4

PostPostano: 11:53 pet, 1. 6. 2012    Naslov: Citirajte i odgovorite

uf hvala nisam primjetio ista imena, a ni ovu pogresku copy-paste :/
uf hvala nisam primjetio ista imena, a ni ovu pogresku copy-paste Ehm?



_________________
it was merely a setback
[Vrh]
Korisnički profil Pošaljite privatnu poruku
mdoko
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 30. 11. 2002. (22:17:12)
Postovi: (71A)16
Spol: muško
Sarma = la pohva - posuda
199 = 237 - 38
Lokacija: Heriot-Watt University, Edinburgh

PostPostano: 11:53 pet, 1. 6. 2012    Naslov: Citirajte i odgovorite

[quote="vsego"]Usput, ne funkciju i njenu varijablu jednako zvati ([tt]koliko[/tt])![/quote]
To je po standardu dopušteno, ali može imati zanimljive posljedice (npr. tu funkciju nije moguće rekurzivno pozvati).
vsego (napisa):
Usput, ne funkciju i njenu varijablu jednako zvati (koliko)!

To je po standardu dopušteno, ali može imati zanimljive posljedice (npr. tu funkciju nije moguće rekurzivno pozvati).



_________________
Extraordinary claims require extraordinary evidence. – Carl Sagan
[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: (355F)16
Spol: zombi
Sarma = la pohva - posuda
854 = 1068 - 214
Lokacija: /sbin/init

PostPostano: 12:07 pet, 1. 6. 2012    Naslov: Citirajte i odgovorite

[quote="mdoko"][quote="vsego"]Usput, ne funkciju i njenu varijablu jednako zvati ([tt]koliko[/tt])![/quote]
To je po standardu dopušteno, ali može imati zanimljive posljedice (npr. tu funkciju nije moguće rekurzivno pozvati).[/quote]

O citljivosti takvog koda da ne govorimo. Ostajem pri svom savjetu. ;)
mdoko (napisa):
vsego (napisa):
Usput, ne funkciju i njenu varijablu jednako zvati (koliko)!

To je po standardu dopušteno, ali može imati zanimljive posljedice (npr. tu funkciju nije moguće rekurzivno pozvati).


O citljivosti takvog koda da ne govorimo. Ostajem pri svom savjetu. 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
mdoko
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 30. 11. 2002. (22:17:12)
Postovi: (71A)16
Spol: muško
Sarma = la pohva - posuda
199 = 237 - 38
Lokacija: Heriot-Watt University, Edinburgh

PostPostano: 13:03 pet, 1. 6. 2012    Naslov: Citirajte i odgovorite

[quote="vsego"][quote="mdoko"][quote="vsego"]Usput, ne funkciju i njenu varijablu jednako zvati ([tt]koliko[/tt])![/quote]
To je po standardu dopušteno, ali može imati zanimljive posljedice (npr. tu funkciju nije moguće rekurzivno pozvati).[/quote]

O citljivosti takvog koda da ne govorimo. Ostajem pri svom savjetu. ;)[/quote]
U potpunosti podržavam tvoj savjet :wink:
vsego (napisa):
mdoko (napisa):
vsego (napisa):
Usput, ne funkciju i njenu varijablu jednako zvati (koliko)!

To je po standardu dopušteno, ali može imati zanimljive posljedice (npr. tu funkciju nije moguće rekurzivno pozvati).


O citljivosti takvog koda da ne govorimo. Ostajem pri svom savjetu. Wink

U potpunosti podržavam tvoj savjet Wink



_________________
Extraordinary claims require extraordinary evidence. – Carl Sagan
[Vrh]
Korisnički profil Pošaljite privatnu poruku Posjetite Web stranice
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 ... 11, 12, 13
Stranica 13 / 13.

 
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