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

zadatak iz kolokvija, 13.2.2009. 2. zadatak
WWW:

Moja sarma
 
Započnite novu temu   Odgovorite na temu   printer-friendly view    Forum@DeGiorgi: Početna -> Kolegiji 2. godine -> Strukture podataka i algoritmi
Prethodna tema :: Sljedeća tema  
Autor/ica Poruka
bozidarsevo
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 17. 09. 2008. (10:15:01)
Postovi: (1D1)16
Spol: muško
Sarma = la pohva - posuda
-24 = 52 - 76
Lokacija: Samobor

PostPostano: 16:34 sub, 26. 12. 2009    Naslov: zadatak iz kolokvija, 13.2.2009. 2. zadatak Citirajte i odgovorite

zadatak:
Napissite funkciju SET komplement(SET S) koja prima skup S (implementiran pomocu nesortiranog polja), a vraca
njegov komplement (skup svih elemenata koji nisu u S). Pretpostavite da elementi skupa (tj. tip elementtype) mogu
biti mala slova od 'a' do 'z'. Funkcija treba biti ovisna o implementaciji atp SET. Ako zelite koristiti (nije nuzno)
operacije INSERT, MEMBER, DELETE, EMPTY i MAKE_NULL iz atp SET, morate napisati i njihovu implementaciju.

malo sam sad razmišljao kako bi se mogao rješiti(ali bez ovih fja INSERT, MEMBER, DELETE, EMPTY i MAKE_NULL iz atp SET),ali nikako da mi sine ideja....
zadatak:
Napissite funkciju SET komplement(SET S) koja prima skup S (implementiran pomocu nesortiranog polja), a vraca
njegov komplement (skup svih elemenata koji nisu u S). Pretpostavite da elementi skupa (tj. tip elementtype) mogu
biti mala slova od 'a' do 'z'. Funkcija treba biti ovisna o implementaciji atp SET. Ako zelite koristiti (nije nuzno)
operacije INSERT, MEMBER, DELETE, EMPTY i MAKE_NULL iz atp SET, morate napisati i njihovu implementaciju.

malo sam sad razmišljao kako bi se mogao rješiti(ali bez ovih fja INSERT, MEMBER, DELETE, EMPTY i MAKE_NULL iz atp SET),ali nikako da mi sine ideja....



_________________
misli globalno, djeluj lokalno!
http://backway.me/
http://seodoa.com
[Vrh]
Korisnički profil Pošaljite privatnu poruku Posjetite Web stranice
Gino
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 11. 09. 2008. (10:54:06)
Postovi: (370)16
Sarma = la pohva - posuda
-29 = 108 - 137
Lokacija: Pula

PostPostano: 16:45 sub, 26. 12. 2009    Naslov: Citirajte i odgovorite

stavis ih sve u skup koji moras vratit, i onda ides redom onim skupom, svakog koji je u njemu izbacis van, i ostane ti komplement
stavis ih sve u skup koji moras vratit, i onda ides redom onim skupom, svakog koji je u njemu izbacis van, i ostane ti komplement



_________________
Mario Berljafa
[Vrh]
Korisnički profil Pošaljite privatnu poruku
bozidarsevo
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 17. 09. 2008. (10:15:01)
Postovi: (1D1)16
Spol: muško
Sarma = la pohva - posuda
-24 = 52 - 76
Lokacija: Samobor

PostPostano: 16:54 sub, 26. 12. 2009    Naslov: Citirajte i odgovorite

a kak ćeš ih stavit sve u skup bez korištenja INSERT?! i kak ćeš ih micat bez DELETE?!

s tim fukncijama mi je jasno kak...ali kak BEZ NJIH?
a kak ćeš ih stavit sve u skup bez korištenja INSERT?! i kak ćeš ih micat bez DELETE?!

s tim fukncijama mi je jasno kak...ali kak BEZ NJIH?



_________________
misli globalno, djeluj lokalno!
http://backway.me/
http://seodoa.com
[Vrh]
Korisnički profil Pošaljite privatnu poruku Posjetite Web stranice
Gino
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 11. 09. 2008. (10:54:06)
Postovi: (370)16
Sarma = la pohva - posuda
-29 = 108 - 137
Lokacija: Pula

PostPostano: 17:06 sub, 26. 12. 2009    Naslov: Citirajte i odgovorite

pa pise ti da je funkcija bude ovisna o implementaciji koristis neki tmp, tamo spremis, premjestis pointer i freeas ono??
u cemu je problem??

[size=9][color=#999999]Added after 4 minutes:[/color][/size]

aha pomocu polja je....
onda je jos lakse, bas su dobri :D

i izbacivanje je dosta lako... mozes samo zadnjeg prepisat preko onog kojeg trebas izbrisat, i smanjit duljinu, a ako moras izbrisat zadnjeg, samo skratis duljinu
pa pise ti da je funkcija bude ovisna o implementaciji koristis neki tmp, tamo spremis, premjestis pointer i freeas ono??
u cemu je problem??

Added after 4 minutes:

aha pomocu polja je....
onda je jos lakse, bas su dobri Very Happy

i izbacivanje je dosta lako... mozes samo zadnjeg prepisat preko onog kojeg trebas izbrisat, i smanjit duljinu, a ako moras izbrisat zadnjeg, samo skratis duljinu



_________________
Mario Berljafa
[Vrh]
Korisnički profil Pošaljite privatnu poruku
bozidarsevo
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 17. 09. 2008. (10:15:01)
Postovi: (1D1)16
Spol: muško
Sarma = la pohva - posuda
-24 = 52 - 76
Lokacija: Samobor

PostPostano: 17:11 sub, 26. 12. 2009    Naslov: Citirajte i odgovorite

ajhaj...ja totalno zabrijo krivo...

krivo sam si zadatak pročito... :oops:
ajhaj...ja totalno zabrijo krivo...

krivo sam si zadatak pročito... Embarassed



_________________
misli globalno, djeluj lokalno!
http://backway.me/
http://seodoa.com
[Vrh]
Korisnički profil Pošaljite privatnu poruku Posjetite Web stranice
Gino
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 11. 09. 2008. (10:54:06)
Postovi: (370)16
Sarma = la pohva - posuda
-29 = 108 - 137
Lokacija: Pula

PostPostano: 17:20 sub, 26. 12. 2009    Naslov: Citirajte i odgovorite

evo zadatk je stavrno trivic, jer ja spa nisam ni pogledao...

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

typedef char elementtype;
typedef struct {
elementtype polje[MAX];
int last; //pokazuje na zadnjeg
}SET;
SET C;
SET komplement(SET S){
int i;
for(i=0;i<MAX;i++)
C.polje[i]='a'+i;
C.last=25;

for(i=0;i<=S.last;i++)
C.polje[S.polje[i]-'a']=C.polje[C.last--];
return C;
}

int main(){
SET S;
S.last=2;
S.polje[0]='b';
S.polje[1]='a';
S.polje[2]='g';
komplement(S);
int i;
for(i=0;i<=C.last;i++)
printf("%c\t",C.polje[i]);
system("pause");
return 0;
}
[/code:1]
evo zadatk je stavrno trivic, jer ja spa nisam ni pogledao...

Kod:
#define MAX 26
#include <stdio.h>
#include <stdlib.h>

typedef char elementtype;
typedef struct {
        elementtype polje[MAX];
        int last;              //pokazuje na zadnjeg
        }SET;
SET C;
SET komplement(SET S){
    int i;
    for(i=0;i<MAX;i++)
                       C.polje[i]='a'+i;
    C.last=25;
   
    for(i=0;i<=S.last;i++)
                           C.polje[S.polje[i]-'a']=C.polje[C.last--];
    return C;
}

int main(){
    SET S;
    S.last=2;
    S.polje[0]='b';
    S.polje[1]='a';
    S.polje[2]='g';
    komplement(S);
    int i;
    for(i=0;i<=C.last;i++)
                          printf("%c\t",C.polje[i]);
    system("pause");
    return 0;
    }



_________________
Mario Berljafa
[Vrh]
Korisnički profil Pošaljite privatnu poruku
bozidarsevo
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 17. 09. 2008. (10:15:01)
Postovi: (1D1)16
Spol: muško
Sarma = la pohva - posuda
-24 = 52 - 76
Lokacija: Samobor

PostPostano: 17:52 sub, 26. 12. 2009    Naslov: Citirajte i odgovorite

mislim da ova druga petlja u funkciji komplement nije baš kak treba...tj. nije mi baš jasna...

ovo:
C.polje[S.polje[i]-'a']=C.polje[C.last--];

i fali "C=" prije "komplement(S)"

[size=9][color=#999999]Added after 18 minutes:[/color][/size]

zalaufo sam programčić uz ove male preinake...i radi OK...

i skužio onu petlju!! :idea2:

thanks!

[size=9][color=#999999]Added after 49 seconds:[/color][/size]

ovak je uz male one preinake:
[code:1]#define MAX 26
#include <stdio.h>
#include <stdlib.h>

typedef char elementtype;
typedef struct {
elementtype polje[MAX];
int last; //pokazuje na zadnjeg
}SET;

SET komplement(SET S){
SET C;
int i;
for(i=0;i<MAX;i++)
C.polje[i]='a'+i;
C.last=25;

for(i=0;i<=S.last;i++)
C.polje[S.polje[i]-'a']=C.polje[C.last--];
return C;
}

int main(){
SET S;
S.last=2;
S.polje[0]='b';
S.polje[1]='a';
S.polje[2]='g';
SET C;
C=komplement(S);
int i;
for(i=0;i<=C.last;i++)
printf("%c\t",C.polje[i]);
system("pause");
return 0;
}
[/code:1]
mislim da ova druga petlja u funkciji komplement nije baš kak treba...tj. nije mi baš jasna...

ovo:
C.polje[S.polje[i]-'a']=C.polje[C.last–];

i fali "C=" prije "komplement(S)"

Added after 18 minutes:

zalaufo sam programčić uz ove male preinake...i radi OK...

i skužio onu petlju!! Imam ideju!

thanks!

Added after 49 seconds:

ovak je uz male one preinake:
Kod:
#define MAX 26
#include <stdio.h>
#include <stdlib.h>

typedef char elementtype;
typedef struct {
        elementtype polje[MAX];
        int last;              //pokazuje na zadnjeg
        }SET;

SET komplement(SET S){
    SET C;
    int i;
    for(i=0;i<MAX;i++)
                       C.polje[i]='a'+i;
    C.last=25;
   
    for(i=0;i<=S.last;i++)
                           C.polje[S.polje[i]-'a']=C.polje[C.last--];
    return C;
}

int main(){
    SET S;
    S.last=2;
    S.polje[0]='b';
    S.polje[1]='a';
    S.polje[2]='g';
    SET C;
    C=komplement(S);
    int i;
    for(i=0;i<=C.last;i++)
                          printf("%c\t",C.polje[i]);
    system("pause");
    return 0;
    }



_________________
misli globalno, djeluj lokalno!
http://backway.me/
http://seodoa.com
[Vrh]
Korisnički profil Pošaljite privatnu poruku Posjetite Web stranice
Gino
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 11. 09. 2008. (10:54:06)
Postovi: (370)16
Sarma = la pohva - posuda
-29 = 108 - 137
Lokacija: Pula

PostPostano: 17:05 pon, 28. 12. 2009    Naslov: Citirajte i odgovorite

[quote="bozidarsevo"]mislim da ova druga petlja u funkciji komplement nije baš kak treba...tj. nije mi baš jasna...[/quote]
to je dvje razlicite stvari :lol:
al su me potakle na nest malo razmisljanja, s obzirom na

[quote="bozidarsevo"]i skužio onu petlju!! :idea2: [/quote]
sam malo odustao... ali onda i ja :idea2:
i skuzio da sam glup :oops: i da je ono krivo

sad mislim da je ovo stavrno ok, ak mislis iz bilo kakvih razloga da nije, reci, mislim razlike

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

typedef char elementtype;
typedef struct {
elementtype polje[MAX];
int last; //pokazuje na zadnjeg
}SET;
SET komplement(SET S){
int i,j=0;
SET C;
for(i=0;i<MAX;i++)
C.polje[i]='a'+i;
C.last=MAX-1;

for(i=0;i<=S.last;i++)
if(S.polje[i]-'a'>C.last){
while(C.polje[j++]!=C.polje[S.polje[i]-'a']);
C.polje[--j]=C.polje[C.last--];
j=0;
}
else
C.polje[S.polje[i]-'a']=C.polje[C.last--];
return C;
}

int main(){
SET S,C;
S.last=11;
S.polje[0]='a';
S.polje[1]='z';
S.polje[2]='g';
S.polje[3]='c';
S.polje[4]='f';
S.polje[5]='r';
S.polje[6]='s';
S.polje[7]='t';
S.polje[8]='e';
S.polje[9]='j';
S.polje[10]='q';
S.polje[11]='p';
C=komplement(S);

int i;
for(i=0;i<=C.last;i++)
printf("%c\t",C.polje[i]);
system("pause");
return 0;
}
[/code:1]
bozidarsevo (napisa):
mislim da ova druga petlja u funkciji komplement nije baš kak treba...tj. nije mi baš jasna...

to je dvje razlicite stvari Laughing
al su me potakle na nest malo razmisljanja, s obzirom na

bozidarsevo (napisa):
i skužio onu petlju!! Imam ideju!

sam malo odustao... ali onda i ja Imam ideju!
i skuzio da sam glup Embarassed i da je ono krivo

sad mislim da je ovo stavrno ok, ak mislis iz bilo kakvih razloga da nije, reci, mislim razlike

Kod:
#define MAX 26
#include <stdio.h>
#include <stdlib.h>

typedef char elementtype;
typedef struct {
        elementtype polje[MAX];
        int last;              //pokazuje na zadnjeg
        }SET;
SET komplement(SET S){
    int i,j=0;
    SET C;
    for(i=0;i<MAX;i++)
                       C.polje[i]='a'+i;
    C.last=MAX-1;
   
    for(i=0;i<=S.last;i++)
                           if(S.polje[i]-'a'>C.last){
                                        while(C.polje[j++]!=C.polje[S.polje[i]-'a']);
                                        C.polje[--j]=C.polje[C.last--];
                                        j=0;
                                                     }
                           else
                           C.polje[S.polje[i]-'a']=C.polje[C.last--];
    return C;
}

int main(){
    SET S,C;
    S.last=11;
    S.polje[0]='a';
    S.polje[1]='z';
    S.polje[2]='g';
    S.polje[3]='c';
    S.polje[4]='f';
    S.polje[5]='r';
    S.polje[6]='s';
    S.polje[7]='t';
    S.polje[8]='e';
    S.polje[9]='j';
    S.polje[10]='q';
    S.polje[11]='p';
    C=komplement(S);
   
    int i;
    for(i=0;i<=C.last;i++)
                          printf("%c\t",C.polje[i]);
    system("pause");
    return 0;
    }



_________________
Mario Berljafa
[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 2. godine -> Strukture podataka i algoritmi 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