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

Programer beginner :(
WWW:
Idite na Prethodno  1, 2, 3, 4, 5, 6, 7, 8, 9, 10
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
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: 17:25 čet, 12. 3. 2009    Naslov: Citirajte i odgovorite

[quote="Milojko"]u tome ne može biti greška jer je niz postavljen na duljinu b. taj dio sa inicijalizacijom niza je u redu. ne smiješ napisati kod tipa [tt]int n, b, znam[b][/tt] jer tu [tt]b[/tt] još uvijek nema vrijednost. nakon što mu dodijeliš vrijednost, onda je sve u redu :)[/quote]

Evo ovako:

[tt]proba.c[/tt][code:1]
#include <stdio.h>


int main() {
int n, b;
printf("Unesite n: "); scanf("%d", &n);
printf("\nUnesite b: "); scanf("%d", &b);
int znam[b], i, pandigitalan = 7;
for (i = 0; i < b; ++i) znam[i] = i;
while (n > 0) {
int ost = n % b;
for (i = 0; i < b; ++i) {
if (ost == i) znam[i] = -1;
}
n /= b;
}
for (i = 0; i < b; ++i) printf("%d ", znam[i]);
for (i = 0; i < b; ++i) {
if (znam[i] != -1) pandigitalan = 0;
}
if (pandigitalan) printf("\nDA\n");
else printf("\nNE\n");
scanf("%%");
return 0;
}
[/code:1]

[tt]compiler output[/tt][code:1]
$ gcc -std=c89 -pedantic-errors proba.c
proba.c: In function ‘main’:
proba.c:8: error: ISO C90 forbids variable-size array ‘znam’
proba.c:8: error: ISO C90 forbids mixed declarations and code
[/code:1]

Da rijesimo ovo jednom za svagda: [color=red]ISO C90 [u]zabranjuje[/u] deklaraciju nizova varijabilne duljine[/color].
Milojko (napisa):
u tome ne može biti greška jer je niz postavljen na duljinu b. taj dio sa inicijalizacijom niza je u redu. ne smiješ napisati kod tipa int n, b, znam[b] jer tu b još uvijek nema vrijednost. nakon što mu dodijeliš vrijednost, onda je sve u redu Smile


Evo ovako:

proba.c
Kod:

#include <stdio.h>


int main() {
    int n, b;
    printf("Unesite n: "); scanf("%d", &n);
    printf("\nUnesite b: "); scanf("%d", &b);
    int znam[b], i, pandigitalan = 7;     
    for (i = 0; i < b; ++i) znam[i] = i;
    while (n > 0) {
          int ost = n % b;
          for (i = 0; i < b; ++i) {
              if (ost == i) znam[i] = -1;
              }
          n /= b;
          }
    for (i = 0; i < b; ++i) printf("%d ", znam[i]);
    for (i = 0; i < b; ++i) {
        if (znam[i] != -1) pandigitalan = 0;
        }
    if (pandigitalan) printf("\nDA\n");
    else printf("\nNE\n");
    scanf("%%");
    return 0;
}


compiler output
Kod:

$ gcc -std=c89 -pedantic-errors proba.c
proba.c: In function ‘main’:
proba.c:8: error: ISO C90 forbids variable-size array ‘znam’
proba.c:8: error: ISO C90 forbids mixed declarations and code


Da rijesimo ovo jednom za svagda: ISO C90 zabranjuje deklaraciju nizova varijabilne duljine.



_________________
Extraordinary claims require extraordinary evidence. – Carl Sagan
[Vrh]
Korisnički profil Pošaljite privatnu poruku Posjetite Web stranice
Milojko
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 07. 11. 2008. (14:57:52)
Postovi: (453)16
Spol: kućni ljubimac
Sarma = la pohva - posuda
17 = 68 - 51
Lokacija: Hilbertov hotel

PostPostano: 17:37 čet, 12. 3. 2009    Naslov: Citirajte i odgovorite

ma sve je to super, al, nit mi compiler išta pokazuje ikakva upozorenja, nit mi se programi bune protiv varijabilne duljine nizova :? više me brine ovo što compiler nema apsolutno ništa protiv ovoga, ni upozorenje, ni error, ništa......

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

e da, hvala na brzim odgovorima :cjg:
ma sve je to super, al, nit mi compiler išta pokazuje ikakva upozorenja, nit mi se programi bune protiv varijabilne duljine nizova Confused više me brine ovo što compiler nema apsolutno ništa protiv ovoga, ni upozorenje, ni error, ništa......

Added after 1 minutes:

e da, hvala na brzim odgovorima Cool Jumping Mr.Green



_________________
Sedam je prost broj Smile

Bolonja je smeće i to pod hitno treba mijenjat
[Vrh]
Korisnički profil Pošaljite privatnu poruku MSNM
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: 18:30 čet, 12. 3. 2009    Naslov: Citirajte i odgovorite

[quote="Milojko"]ma sve je to super, al, nit mi compiler išta pokazuje ikakva upozorenja, nit mi se programi bune protiv varijabilne duljine nizova :? više me brine ovo što compiler nema apsolutno ništa protiv ovoga, ni upozorenje, ni error, ništa...... [/quote]
Problem je u tome sto Dev-Cpp (pretpostavljam da to koristis) poziva gcc s defaultnim opcijama, a tada se ukljucuju GNU ekstenzije standarda (kao sto su polja varijabilne duljine).

Primijeti dvije opcije ([tt]-std=c89[/tt] i [tt]-pedandic-errors[/tt]) kojima sam objasnio kompajleru da se ima ponasati po standardu, a ne po ekstenzijama.

Trenutacno se bavim time da natjeram Dev-Cpp da radi kako treba kada se ukljuce te dvije opcije, ali nailazim na problem s tim sto MinGW headeri koji se koriste na Windowsima nisu u skladu sa standardom, pa se onda kompajler rusi radi losih headera. Nadalje stvar ide sporo, jer na kompjuteru nemam instalirane Windowse, pa sve sto napravim testiram na Wine-u, a onda moram umolit ljude koji koriste Windowse da to testiraju.
Milojko (napisa):
ma sve je to super, al, nit mi compiler išta pokazuje ikakva upozorenja, nit mi se programi bune protiv varijabilne duljine nizova Confused više me brine ovo što compiler nema apsolutno ništa protiv ovoga, ni upozorenje, ni error, ništa......

Problem je u tome sto Dev-Cpp (pretpostavljam da to koristis) poziva gcc s defaultnim opcijama, a tada se ukljucuju GNU ekstenzije standarda (kao sto su polja varijabilne duljine).

Primijeti dvije opcije (-std=c89 i -pedandic-errors) kojima sam objasnio kompajleru da se ima ponasati po standardu, a ne po ekstenzijama.

Trenutacno se bavim time da natjeram Dev-Cpp da radi kako treba kada se ukljuce te dvije opcije, ali nailazim na problem s tim sto MinGW headeri koji se koriste na Windowsima nisu u skladu sa standardom, pa se onda kompajler rusi radi losih headera. Nadalje stvar ide sporo, jer na kompjuteru nemam instalirane Windowse, pa sve sto napravim testiram na Wine-u, a onda moram umolit ljude koji koriste Windowse da to testiraju.



_________________
Extraordinary claims require extraordinary evidence. – Carl Sagan
[Vrh]
Korisnički profil Pošaljite privatnu poruku Posjetite Web stranice
Milojko
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 07. 11. 2008. (14:57:52)
Postovi: (453)16
Spol: kućni ljubimac
Sarma = la pohva - posuda
17 = 68 - 51
Lokacija: Hilbertov hotel

PostPostano: 18:51 čet, 12. 3. 2009    Naslov: Citirajte i odgovorite

hrpa studenata su na Windowsima, tak da, i mi možemo uskočit ak treba :)
hrpa studenata su na Windowsima, tak da, i mi možemo uskočit ak treba Smile



_________________
Sedam je prost broj Smile

Bolonja je smeće i to pod hitno treba mijenjat
[Vrh]
Korisnički profil Pošaljite privatnu poruku MSNM
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: 18:55 čet, 12. 3. 2009    Naslov: Citirajte i odgovorite

[quote="Milojko"]hrpa studenata su na Windowsima, tak da, i mi možemo uskočit ak treba :)[/quote]
Da, ali hrpa studenata ne zna kakav ja tocno output zelim, a osim toga za testirati ovo, ne smije se imati instaliran Dev-Cpp, jer ce testiranje rezultirati kompromitiranjem postojece instalacije.
Milojko (napisa):
hrpa studenata su na Windowsima, tak da, i mi možemo uskočit ak treba Smile

Da, ali hrpa studenata ne zna kakav ja tocno output zelim, a osim toga za testirati ovo, ne smije se imati instaliran Dev-Cpp, jer ce testiranje rezultirati kompromitiranjem postojece instalacije.



_________________
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: (3562)16
Spol: zombi
Sarma = la pohva - posuda
854 = 1068 - 214
Lokacija: /sbin/init

PostPostano: 20:40 čet, 12. 3. 2009    Naslov: Citirajte i odgovorite

@Milojko: za detekciju palindromnosti broja, ne treba ti niz. :? Prouci predavanja iz prvog semestra, mislim da spada u osnovne algoritme s cijelim brojevima. 8)
@Milojko: za detekciju palindromnosti broja, ne treba ti niz. Confused Prouci predavanja iz prvog semestra, mislim da spada u osnovne algoritme s cijelim brojevima. 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
Milojko
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 07. 11. 2008. (14:57:52)
Postovi: (453)16
Spol: kućni ljubimac
Sarma = la pohva - posuda
17 = 68 - 51
Lokacija: Hilbertov hotel

PostPostano: 21:07 čet, 12. 3. 2009    Naslov: Citirajte i odgovorite

pandigitalan je ovdje bio u pitanju, ne palindrom :)
pandigitalan je ovdje bio u pitanju, ne palindrom Smile



_________________
Sedam je prost broj Smile

Bolonja je smeće i to pod hitno treba mijenjat
[Vrh]
Korisnički profil Pošaljite privatnu poruku MSNM
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: 21:27 čet, 12. 3. 2009    Naslov: Citirajte i odgovorite

svejedno ti ne treba, napravis si petlju koja ide od 0 do b-1(ukljucno) i gledas dal broj kao znamenku ima 0, ako nema si gotov, ako ima gledas dal ima 1... dal ima b-1
svejedno ti ne treba, napravis si petlju koja ide od 0 do b-1(ukljucno) i gledas dal broj kao znamenku ima 0, ako nema si gotov, ako ima gledas dal ima 1... dal ima b-1



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


Pridružen/a: 21. 01. 2008. (13:32:15)
Postovi: (206)16
Spol: muško
Sarma = la pohva - posuda
26 = 40 - 14
Lokacija: Geto

PostPostano: 21:31 čet, 12. 3. 2009    Naslov: Citirajte i odgovorite

racunalo prihvaca te brojeve u bazi 10, a ti ih sam preinacis u neku drugu bazu s unosom baze b, ti ih zatim shvacas kao brojeve u bazi b, a racunalo je jos uvijek u bazi 10..... pa kada uzimas

[code:1] ost = n%b [/code:1]

u biti grjesis, trebo bi imati ovo:
[code:1] ost = n%10;
if ( ost > b )
exit(1); // neki izlaz jer dolazi do nečeg nemogučeg
[/code:1]
i sad gledas ono
[code:1]...
if( ost == i )
...
[/code:1]
i zatim sve djelis s 10 jer gledas sljedecu znamenku
[b][u] a ne djelis bazom jer onda ko zna kaj si dobio [/u][/b]
ako je baza > 10 onda trebalo djeliti s b da bi se rjesio jedne znamenke, ali mislim da to i nije bas u domeni zadatka.
Nadam se da mi je rjesenje tocno...
mogu poslati kod, ako zelis koji mi radi za sve baze od 2 do 10... a o slovima u kombinaciji s brojkama mi se neda niti razmisljat
racunalo prihvaca te brojeve u bazi 10, a ti ih sam preinacis u neku drugu bazu s unosom baze b, ti ih zatim shvacas kao brojeve u bazi b, a racunalo je jos uvijek u bazi 10..... pa kada uzimas

Kod:
 ost = n%b


u biti grjesis, trebo bi imati ovo:
Kod:
 ost = n%10;
            if ( ost > b )
                exit(1);  // neki izlaz jer dolazi do nečeg nemogučeg           
 

i sad gledas ono
Kod:
...
          if( ost == i )
          ...
 

i zatim sve djelis s 10 jer gledas sljedecu znamenku
a ne djelis bazom jer onda ko zna kaj si dobio
ako je baza > 10 onda trebalo djeliti s b da bi se rjesio jedne znamenke, ali mislim da to i nije bas u domeni zadatka.
Nadam se da mi je rjesenje tocno...
mogu poslati kod, ako zelis koji mi radi za sve baze od 2 do 10... a o slovima u kombinaciji s brojkama mi se neda niti razmisljat


[Vrh]
Korisnički profil Pošaljite privatnu poruku Posjetite Web stranice
Milojko
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 07. 11. 2008. (14:57:52)
Postovi: (453)16
Spol: kućni ljubimac
Sarma = la pohva - posuda
17 = 68 - 51
Lokacija: Hilbertov hotel

PostPostano: 21:52 čet, 12. 3. 2009    Naslov: Citirajte i odgovorite

[quote="Cobs"] [code:1] if ( ost > b )
[/code:1]
[/quote]
nije mi jasan ovaj dio :? uzmi broj 7, i bazu 2. [tt]7%10 == 7[/tt], a 7>2, pa bi po tome ovo trebalo otići u error? nisam shvatio ideju tvoju do kraja.....
Cobs (napisa):
Kod:
           if ( ost > b )
               


nije mi jasan ovaj dio Confused uzmi broj 7, i bazu 2. 7%10 == 7, a 7>2, pa bi po tome ovo trebalo otići u error? nisam shvatio ideju tvoju do kraja.....



_________________
Sedam je prost broj Smile

Bolonja je smeće i to pod hitno treba mijenjat
[Vrh]
Korisnički profil Pošaljite privatnu poruku MSNM
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: 21:59 čet, 12. 3. 2009    Naslov: Citirajte i odgovorite

[quote="Cobs"]pa kada uzimas
[code:1] ost = n%b [/code:1]
u biti grjesis, trebo bi imati ovo:
[code:1] ost = n%10;[/code:1]
[/quote]???
[quote="Cobs"][b][u] a ne djelis bazom jer onda ko zna kaj si dobio [/u][/b][/quote]dobio si mogucnost da pogledas neku sljedecu znamenku broja u bazi b
[quote="Cobs"]Nadam se da mi je rjesenje tocno...[/quote] po mom osobnom misljenju nije
[quote="Cobs"]mogu poslati kod, ako zelis koji mi radi za sve baze od 2 do 10...[/quote]pa htio bi da vidit kako to radi
[quote="Cobs"]a o slovima u kombinaciji s brojkama mi se neda niti razmisljat[/quote]nema se sta razmisljat djelis sa b i gledas ostatke modulu b, dobis ostatak 13... to je C, ako se ne varam i bas te briga sta je to slovo inace...
Cobs (napisa):
pa kada uzimas
Kod:
 ost = n%b

u biti grjesis, trebo bi imati ovo:
Kod:
 ost = n%10;

???
Cobs (napisa):
a ne djelis bazom jer onda ko zna kaj si dobio
dobio si mogucnost da pogledas neku sljedecu znamenku broja u bazi b
Cobs (napisa):
Nadam se da mi je rjesenje tocno...
po mom osobnom misljenju nije
Cobs (napisa):
mogu poslati kod, ako zelis koji mi radi za sve baze od 2 do 10...
pa htio bi da vidit kako to radi
Cobs (napisa):
a o slovima u kombinaciji s brojkama mi se neda niti razmisljat
nema se sta razmisljat djelis sa b i gledas ostatke modulu b, dobis ostatak 13... to je C, ako se ne varam i bas te briga sta je to slovo inace...



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


Pridružen/a: 02. 10. 2006. (16:58:05)
Postovi: (167)16
Spol: muško
Sarma = la pohva - posuda
17 = 27 - 10

PostPostano: 22:05 čet, 12. 3. 2009    Naslov: Citirajte i odgovorite

[quote="Gino"]dobis ostatak 13... to je C, ako se ne varam[/quote]
Varaš se :lol:
A = 10
B = 11
C = 12
D = 13
E = 14
F = 15
Gino (napisa):
dobis ostatak 13... to je C, ako se ne varam

Varaš se Laughing
A = 10
B = 11
C = 12
D = 13
E = 14
F = 15



_________________
Cry havoc, and let loose the dogs of war!
[Vrh]
Korisnički profil Pošaljite privatnu poruku
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: 22:13 čet, 12. 3. 2009    Naslov: Citirajte i odgovorite

ma znao sam da neznam brojat...
al nema veze
nego ne kuzim di sam je fulao pa ako neko moze pomoc
(n=9012345678, b=10 vrati NE-???)
[code:1]int pandigitalan(int n, int b){
int i,pandig,tmp;
for(i=0;i<b;i++){
tmp=n;
while(tmp){
if(tmp%b==i) {pandig=1; break;}
if(tmp%b!=i) pandig=0;
tmp/=b;
}
if(pandig==0) return 0;
}
return 1;
}
int main(){
int n,b;
scanf("%d %d",&n,&b);
if(pandigitalan(n,b)) printf("DA");
else printf("NE");
scanf("%%");
return 0;
}[/code:1]
ma znao sam da neznam brojat...
al nema veze
nego ne kuzim di sam je fulao pa ako neko moze pomoc
(n=9012345678, b=10 vrati NE-???)
Kod:
int pandigitalan(int n, int b){
    int i,pandig,tmp;
    for(i=0;i<b;i++){
                     tmp=n;
                     while(tmp){
                                if(tmp%b==i) {pandig=1; break;}
                                if(tmp%b!=i) pandig=0;
                                tmp/=b;
                                }
                     if(pandig==0) return 0;
                     }
    return 1;
}
int main(){
    int n,b;
    scanf("%d %d",&n,&b);
    if(pandigitalan(n,b)) printf("DA");
    else printf("NE");
    scanf("%%");
    return 0;
    }



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


Pridružen/a: 07. 11. 2008. (14:57:52)
Postovi: (453)16
Spol: kućni ljubimac
Sarma = la pohva - posuda
17 = 68 - 51
Lokacija: Hilbertov hotel

PostPostano: 22:18 čet, 12. 3. 2009    Naslov: Citirajte i odgovorite

jer je najveći prikazivi broj u 32-bitnoj aritmetici 2^32 - 1. mislim da je to to. upravo razlog zašto je i započeta rasprava o ovom zadatku :)
jer je najveći prikazivi broj u 32-bitnoj aritmetici 2^32 - 1. mislim da je to to. upravo razlog zašto je i započeta rasprava o ovom zadatku Smile



_________________
Sedam je prost broj Smile

Bolonja je smeće i to pod hitno treba mijenjat
[Vrh]
Korisnički profil Pošaljite privatnu poruku MSNM
Cobs
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 21. 01. 2008. (13:32:15)
Postovi: (206)16
Spol: muško
Sarma = la pohva - posuda
26 = 40 - 14
Lokacija: Geto

PostPostano: 12:58 pet, 13. 3. 2009    Naslov: Citirajte i odgovorite

Upiso si neki broj n i reko si on mi je u bazi b, sto znaci ako si ako si upiso broj 1234567 i reko on mi je u bazi 2, automatski si pogrjesio jer taj broj moze bit u bazi > 7, a ako si i recimo stavio da ti je u bazi > 7 npr. 8 onda svaku sljedecu znamenku gledas tako da djelis s deset, a ne sa 8

Edit: U biti, vase rjesenje je tocno, eh kad se pravim pametan... mogo sam prvo procitat zadatak... nije bitno
Upiso si neki broj n i reko si on mi je u bazi b, sto znaci ako si ako si upiso broj 1234567 i reko on mi je u bazi 2, automatski si pogrjesio jer taj broj moze bit u bazi > 7, a ako si i recimo stavio da ti je u bazi > 7 npr. 8 onda svaku sljedecu znamenku gledas tako da djelis s deset, a ne sa 8

Edit: U biti, vase rjesenje je tocno, eh kad se pravim pametan... mogo sam prvo procitat zadatak... nije bitno


[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, 4, 5, 6, 7, 8, 9, 10
Stranica 10 / 10.

 
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