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

potrebna pomoc
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
filipnet
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 02. 11. 2003. (01:17:46)
Postovi: (399)16
Spol: muško
Sarma = la pohva - posuda
24 = 29 - 5
Lokacija: cvrsto na stolici

PostPostano: 17:16 ned, 23. 11. 2003    Naslov: potrebna pomoc Citirajte i odgovorite

kako rijestiti
ucitaj matricu n*n i ispisite produkt elemenata na njezinoj djagonali
&
Ucitaj te n prirodnih brojeva i ispisite one medu njima koji imaju najvecu sumu znamenaka. Ako ih ima vise treba ih vise ispisati.
hvala!
kako rijestiti
ucitaj matricu n*n i ispisite produkt elemenata na njezinoj djagonali
&
Ucitaj te n prirodnih brojeva i ispisite one medu njima koji imaju najvecu sumu znamenaka. Ako ih ima vise treba ih vise ispisati.
hvala!


[Vrh]
Korisnički profil Pošaljite privatnu poruku
C'Tebo
Moderator
Moderator


Pridružen/a: 03. 11. 2002. (18:40:48)
Postovi: (26A)16
Sarma = la pohva - posuda
-13 = 3 - 16
Lokacija: Zagreb

PostPostano: 18:12 ned, 23. 11. 2003    Naslov: Citirajte i odgovorite

Kako je vsego već par puta kazao, nije poanta da ti tu netko rješava zadatke. (mislim, to obično jest poanta ovakvih foruma, ali ovo je neslužbeni forum fakulteta, a na fax se ide da se nešto naučim a nećeš naučiti ako ti netko ovdje bubne rješenje)

Bolje je da ti fino kažeš kak si kreno, di si zapeo, onda će već netko uletit i objasniti ti kako nastaviti i napisati ti kôd, a ti nećeš samo dobit taj kod, nego i ono vrednije: objašenjenje.
Kako je vsego već par puta kazao, nije poanta da ti tu netko rješava zadatke. (mislim, to obično jest poanta ovakvih foruma, ali ovo je neslužbeni forum fakulteta, a na fax se ide da se nešto naučim a nećeš naučiti ako ti netko ovdje bubne rješenje)

Bolje je da ti fino kažeš kak si kreno, di si zapeo, onda će već netko uletit i objasniti ti kako nastaviti i napisati ti kôd, a ti nećeš samo dobit taj kod, nego i ono vrednije: objašenjenje.



_________________
Click me!
_______________________
Bad panda!
[Vrh]
Korisnički profil Pošaljite privatnu poruku Pošaljite e-mail
Ergasiophob
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 23. 11. 2003. (19:16:50)
Postovi: (4)16
Sarma = la pohva - posuda
= 0 - 0
Lokacija: Zagreb

PostPostano: 20:12 ned, 23. 11. 2003    Naslov: Ah te divne matrice..... Citirajte i odgovorite

Ovo ti je pseudo C za prvo pitanje:

Imamo matricu s elementima- E[i][j]
i=0,..n
j=0,..n
P - produkt elemenata po dijagonali

for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
printf("Upisite Element matrice:");
scanf(E[i][j])
}
}
p=0;

for(i=0,j=0;i<n,j<n;i++,j++)
{
P=P+E[i][j];
}
printf("produkt je ",P);

.....tako nekako..... :) :) :)
Ovo ti je pseudo C za prvo pitanje:

Imamo matricu s elementima- E[i][j]
i=0,..n
j=0,..n
P - produkt elemenata po dijagonali

for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
printf("Upisite Element matrice:");
scanf(E[i][j])
}
}
p=0;

for(i=0,j=0;i<n,j<n;i++,j++)
{
P=P+E[i][j];
}
printf("produkt je ",P);

.....tako nekako..... Smile Smile Smile



_________________
"Insanity: doing the same thing over and over again and expecting different results."
[Vrh]
Korisnički profil Pošaljite privatnu poruku Posjetite Web stranice
veky
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 09. 12. 2002. (19:59:43)
Postovi: (5B0)16
Sarma = la pohva - posuda
22 = 24 - 2
Lokacija: negdje daleko...

PostPostano: 20:52 ned, 23. 11. 2003    Naslov: Re: Ah te divne matrice..... Citirajte i odgovorite

[quote="Ergasiophob"]Ovo ti je pseudo C za prvo pitanje:
...
p=0;
...
P=P+E[i][j];
printf("produkt je ",P);

.....tako nekako..... :) :) :)[/quote]

Ajme... ne znam ja što vama znači ta pseudolabava sintaksa,
ali sam prilično siguran da ne tolerira računanje produkta kao sume...
qq-:
Naravno,
[code:1]p=1;[/code:1]
i kasnije
[code:1]p+=E[ i ][ j ][/code:1]...
I BTW, mislim da je čak i pseudoC case-sensitive...
Ergasiophob (napisa):
Ovo ti je pseudo C za prvo pitanje:
...
p=0;
...
P=P+E[i][j];
printf("produkt je ",P);

.....tako nekako..... Smile Smile Smile


Ajme... ne znam ja što vama znači ta pseudolabava sintaksa,
ali sam prilično siguran da ne tolerira računanje produkta kao sume...
qq-:
Naravno,
Kod:
p=1;

i kasnije
Kod:
p+=E[ i ][ j ]
...
I BTW, mislim da je čak i pseudoC case-sensitive...


[Vrh]
Korisnički profil Pošaljite privatnu poruku Pošaljite e-mail Posjetite Web stranice
Ergasiophob
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 23. 11. 2003. (19:16:50)
Postovi: (4)16
Sarma = la pohva - posuda
= 0 - 0
Lokacija: Zagreb

PostPostano: 21:10 ned, 23. 11. 2003    Naslov: Citirajte i odgovorite

[quote]Ajme... ne znam ja što vama znači ta pseudolabava sintaksa,
ali sam prilično siguran da ne tolerira računanje produkta kao sume...
qq-:
Naravno,
Kod:
p=1;

i kasnije
Kod:
p+=E[ i ][ j ]
...
I BTW, mislim da je čak i pseudoC case-sensitive...[/quote]

Hm, gle :roll: od same rijeci Pseudo ispred nekogo programskog jezika rigam, ali na ovaj je nacin asistent ucio.... (bez ';' ) tako da....
:shock:
Svaki komentar je dobrodosao......
:twisted:

[/quote][/code]
Citat:
Ajme... ne znam ja što vama znači ta pseudolabava sintaksa,
ali sam prilično siguran da ne tolerira računanje produkta kao sume...
qq-:
Naravno,
Kod:
p=1;

i kasnije
Kod:
p+=E[ i ][ j ]
...
I BTW, mislim da je čak i pseudoC case-sensitive...


Hm, gle Rolling Eyes od same rijeci Pseudo ispred nekogo programskog jezika rigam, ali na ovaj je nacin asistent ucio.... (bez ';' ) tako da....
Shocked
Svaki komentar je dobrodosao......
Twisted Evil

[/quote][/code]



_________________
"Insanity: doing the same thing over and over again and expecting different results."
[Vrh]
Korisnički profil Pošaljite privatnu poruku Posjetite Web stranice
koryanshea
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 12. 10. 2003. (23:50:23)
Postovi: (442)16
Spol: kućni ljubimac
Sarma = la pohva - posuda
17 = 27 - 10
Lokacija: Bebop (converted interplanetary trawler)

PostPostano: 21:18 ned, 23. 11. 2003    Naslov: Re: Ah te divne matrice..... Citirajte i odgovorite

veky rece:

> [code:1]p+=E[ i ][ j ][/code:1]...

sta znaci ovo p+ ? zasto nije p=p*E(i)(j)? :?

> I BTW, mislim da je čak i pseudoC case-sensitive...[/quote]

meni je puno logicnije da pseudo c NIJE case sensitive, obzirom da to citaju i kuze samo ljudi, a ljudi i nisu bas case sensitive :)
osim toga, ako mi moze asistent mjesec dana po ploci velikim slovima pisat e mogu i ja 8)
veky rece:

>
Kod:
p+=E[ i ][ j ]
...

sta znaci ovo p+ ? zasto nije p=p*E(i)(j)? Confused

> I BTW, mislim da je čak i pseudoC case-sensitive...[/quote]

meni je puno logicnije da pseudo c NIJE case sensitive, obzirom da to citaju i kuze samo ljudi, a ljudi i nisu bas case sensitive Smile
osim toga, ako mi moze asistent mjesec dana po ploci velikim slovima pisat e mogu i ja Cool



_________________
"Download the files to a non-networked, firewalled computer."
- Dr. Elizabeth Weir
[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: 21:22 ned, 23. 11. 2003    Naslov: Re: Ah te divne matrice..... Citirajte i odgovorite

[quote="Ergasiophob"]p=1;
for(i=0,j=0;i<n,j<n;i++,j++)
{
P=P*E[i][j];
}[/quote]

Cemu dva indexa, kad je njihova vrijednost stalno ista? :shock:

[code:1]p=1;
for (i=0; i<n; i++) {
P = P * E[i][i];
}[/code:1]

Napomena: Ja "svojim" studentima nisam pokazivao "i++" jer se nisam htio upustati u neke detalje koje to povlaci. Dakle, "i++" je - [b]uvjetno receno[/b] - pokrata za "i = i + 1". :)
Ergasiophob (napisa):
p=1;
for(i=0,j=0;i<n,j<n;i++,j++)
{
P=P*E[i][j];
}


Cemu dva indexa, kad je njihova vrijednost stalno ista? Shocked

Kod:
p=1;
for (i=0; i<n; i++) {
  P = P * E[i][i];
}


Napomena: Ja "svojim" studentima nisam pokazivao "i++" jer se nisam htio upustati u neke detalje koje to povlaci. Dakle, "i++" je - uvjetno receno - pokrata za "i = i + 1". 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
koryanshea
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 12. 10. 2003. (23:50:23)
Postovi: (442)16
Spol: kućni ljubimac
Sarma = la pohva - posuda
17 = 27 - 10
Lokacija: Bebop (converted interplanetary trawler)

PostPostano: 21:41 ned, 23. 11. 2003    Naslov: Re: Ah te divne matrice..... Citirajte i odgovorite

sad mi je lakse :)

nego, ja bi volila da ipak netko napise rjesenje drugog zadatka sto je filip napisao... ucitaj brojeve i ispisi onoga koji ima najvecu sumu znamenaka, ako ih je vise, ispisi sve. nisam imala vremena bavit se racunarstvom u vremena kad je bilo moguce otic na konzultacije/demonstrature radi damn analize...
uopce mi se ne da objasnjavat di zapnem u zadatku jer sama sebe spetljam pa vise ne znam sto htjedoh reci.
tenk ju
sad mi je lakse Smile

nego, ja bi volila da ipak netko napise rjesenje drugog zadatka sto je filip napisao... ucitaj brojeve i ispisi onoga koji ima najvecu sumu znamenaka, ako ih je vise, ispisi sve. nisam imala vremena bavit se racunarstvom u vremena kad je bilo moguce otic na konzultacije/demonstrature radi damn analize...
uopce mi se ne da objasnjavat di zapnem u zadatku jer sama sebe spetljam pa vise ne znam sto htjedoh reci.
tenk ju



_________________
"Download the files to a non-networked, firewalled computer."
- Dr. Elizabeth Weir
[Vrh]
Korisnički profil Pošaljite privatnu poruku
C'Tebo
Moderator
Moderator


Pridružen/a: 03. 11. 2002. (18:40:48)
Postovi: (26A)16
Sarma = la pohva - posuda
-13 = 3 - 16
Lokacija: Zagreb

PostPostano: 22:13 ned, 23. 11. 2003    Naslov: Citirajte i odgovorite

Isuse šta ste ispisali :shock:

[code:1]for(i=0,j=0;i<n,j<n;i++,j++)
{
P=P+E[i][j];
}[/code:1]
Znam da je vsego ovo već ispravio, ali bih ja naglasio da je to ne samo nepotrebno imati dva indeksa, nego je čak i pogrešno...
Ovako će se napraviti suma (produkt, ono prihvaćam kao tipfeler) svih elemenata matrice, a ne samo onih kojih se traži.
Nadalje, veky reče p+=E[i][j], je isto što i p=p+E[i][j] pa ni to baš ne vrijedi (iako, znam i to je ispravljeno, ali nije loše naglasiti). Točno je p*=E[i][j] ili p=p*E[i][j], što je isto.[/code]
Isuse šta ste ispisali Shocked

Kod:
for(i=0,j=0;i<n,j<n;i++,j++)
{
P=P+E[i][j];
}

Znam da je vsego ovo već ispravio, ali bih ja naglasio da je to ne samo nepotrebno imati dva indeksa, nego je čak i pogrešno...
Ovako će se napraviti suma (produkt, ono prihvaćam kao tipfeler) svih elemenata matrice, a ne samo onih kojih se traži.
Nadalje, veky reče p+=E[i][j], je isto što i p=p+E[i][j] pa ni to baš ne vrijedi (iako, znam i to je ispravljeno, ali nije loše naglasiti). Točno je p*=E[i][j] ili p=p*E[i][j], što je isto.[/code]



_________________
Click me!
_______________________
Bad panda!
[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: (355F)16
Spol: zombi
Sarma = la pohva - posuda
854 = 1068 - 214
Lokacija: /sbin/init

PostPostano: 22:32 ned, 23. 11. 2003    Naslov: Citirajte i odgovorite

[quote="C'Tebo"]Isuse šta ste ispisali :shock:
[code:1]for(i=0,j=0;i<n,j<n;i++,j++)
{
P=P+E[i][j];
}[/code:1]
Znam da je vsego ovo već ispravio, ali bih ja naglasio da je to ne samo nepotrebno imati dva indeksa, nego je čak i pogrešno...
Ovako će se napraviti suma (produkt, ono prihvaćam kao tipfeler) svih elemenata matrice, a ne samo onih kojih se traži.[/quote]

E, C'Tebo, C'Tebo... :roll: Treba paziti... :)

Nisu dvije petlje, nego se "i" i "j" [b][u]istovremeno[/u][/b] mijenjaju :!: Dakle, stalno imas istu vrijednost u te dvije varijable... ;)

[quote="koryanshea"]nego, ja bi volila da ipak netko napise rjesenje drugog zadatka sto je filip napisao... ucitaj brojeve i ispisi onoga koji ima najvecu sumu znamenaka, ako ih je vise, ispisi sve.[/quote]

Ovako, izracunavanje sume znamenaka za jedan broj (npr. x) ide ovako:

[code:1]sum = 0;
while (x > 0) {
sum = sum + (x mod 10);
x = x div 10;
}[/code:1]

To je objasnjeno na vjezbama, pa vjerujem da ne treba raspisivati. 8)

Sada to isto treba napraviti za svaki ucitani broj da bi se naslo kolika je najveca suma:

[code:1]scanf(n);
max = 0;
for (i = 0, i < n, i = i + 1) {
scanf(x);
sum = 0;
while (x > 0) {
sum = sum + (x mod 10);
x = x div 10;
}
if (sum > max)
max = sum;
}[/code:1]

Eh, sada, da se ispisu svi ti brojevi, treba jos jednom proci po svima, izracunati ponovno sume znamenaka i ispisati one brojeve cija je suma jednaka max. :)

Primijeti da sada vise varijabla x nije dovoljna, nego te brojeve treba i "sacuvati" (za drugu petlju). Dodajem redak oznacen strelicom "<-".

[code:1]scanf(n);
max = 0;
for (i = 0, i < n, i = i + 1) {
scanf(x);
a[i] = x; <-
sum = 0;
while (x > 0) {
sum = sum + (x mod 10);
x = x div 10;
}
if (sum > max)
max = sum;
}[/code:1]

Sada znamo "max" (najvecu sumu znamenaka) i imamo sve brojeve sacuvane u nizu "a[]". Dakle, mozemo ispisati sve one koji imaju najvecu sumu:

[code:1]for (i = 0, i < n, i = i + 1) {
sum = 0;
x = a[i];
while (x > 0) {
sum = sum + (x mod 10);
x = x div 10;
}
if (sum == max)
printf(a[i]);
}[/code:1]

Kad prethodna dva dijea programa slijepimo u jedan program, dobijemo konacno rjesenje:

[code:1]scanf(n);
max = 0;
for (i = 0, i < n, i = i + 1) {
scanf(x);
a[i] = x;
sum = 0;
while (x > 0) {
sum = sum + (x mod 10);
x = x div 10;
}
if (sum > max)
max = sum;
}
for (i = 0, i < n, i = i + 1) {
sum = 0;
x = a[i];
while (x > 0) {
sum = sum + (x mod 10);
x = x div 10;
}
if (sum == max)
printf(a[i]);
}[/code:1]

Nadam se da nisam negdje nesto promasio... ;)
C'Tebo (napisa):
Isuse šta ste ispisali Shocked
Kod:
for(i=0,j=0;i<n,j<n;i++,j++)
{
P=P+E[i][j];
}

Znam da je vsego ovo već ispravio, ali bih ja naglasio da je to ne samo nepotrebno imati dva indeksa, nego je čak i pogrešno...
Ovako će se napraviti suma (produkt, ono prihvaćam kao tipfeler) svih elemenata matrice, a ne samo onih kojih se traži.


E, C'Tebo, C'Tebo... Rolling Eyes Treba paziti... Smile

Nisu dvije petlje, nego se "i" i "j" istovremeno mijenjaju Exclamation Dakle, stalno imas istu vrijednost u te dvije varijable... Wink

koryanshea (napisa):
nego, ja bi volila da ipak netko napise rjesenje drugog zadatka sto je filip napisao... ucitaj brojeve i ispisi onoga koji ima najvecu sumu znamenaka, ako ih je vise, ispisi sve.


Ovako, izracunavanje sume znamenaka za jedan broj (npr. x) ide ovako:

Kod:
sum = 0;
while (x > 0) {
  sum = sum + (x mod 10);
  x = x div 10;
}


To je objasnjeno na vjezbama, pa vjerujem da ne treba raspisivati. Cool

Sada to isto treba napraviti za svaki ucitani broj da bi se naslo kolika je najveca suma:

Kod:
scanf(n);
max = 0;
for (i = 0, i < n, i = i + 1) {
  scanf(x);
  sum = 0;
  while (x > 0) {
    sum = sum + (x mod 10);
    x = x div 10;
  }
  if (sum > max)
    max = sum;
}


Eh, sada, da se ispisu svi ti brojevi, treba jos jednom proci po svima, izracunati ponovno sume znamenaka i ispisati one brojeve cija je suma jednaka max. Smile

Primijeti da sada vise varijabla x nije dovoljna, nego te brojeve treba i "sacuvati" (za drugu petlju). Dodajem redak oznacen strelicom "←".

Kod:
scanf(n);
max = 0;
for (i = 0, i < n, i = i + 1) {
  scanf(x);
  a[i] = x; <-
  sum = 0;
  while (x > 0) {
    sum = sum + (x mod 10);
    x = x div 10;
  }
  if (sum > max)
    max = sum;
}


Sada znamo "max" (najvecu sumu znamenaka) i imamo sve brojeve sacuvane u nizu "a[]". Dakle, mozemo ispisati sve one koji imaju najvecu sumu:

Kod:
for (i = 0, i < n, i = i + 1) {
  sum = 0;
  x = a[i];
  while (x > 0) {
    sum = sum + (x mod 10);
    x = x div 10;
  }
  if (sum == max)
    printf(a[i]);
}


Kad prethodna dva dijea programa slijepimo u jedan program, dobijemo konacno rjesenje:

Kod:
scanf(n);
max = 0;
for (i = 0, i < n, i = i + 1) {
  scanf(x);
  a[i] = x;
  sum = 0;
  while (x > 0) {
    sum = sum + (x mod 10);
    x = x div 10;
  }
  if (sum > max)
    max = sum;
}
for (i = 0, i < n, i = i + 1) {
  sum = 0;
  x = a[i];
  while (x > 0) {
    sum = sum + (x mod 10);
    x = x div 10;
  }
  if (sum == max)
    printf(a[i]);
}


Nadam se da nisam negdje nesto promasio... 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
veky
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 09. 12. 2002. (19:59:43)
Postovi: (5B0)16
Sarma = la pohva - posuda
22 = 24 - 2
Lokacija: negdje daleko...

PostPostano: 7:53 pon, 24. 11. 2003    Naslov: Citirajte i odgovorite

[quote="vsego"][quote="C'Tebo"]Isuse šta ste ispisali :shock:
[code:1]for(i=0,j=0;i<n,j<n;i++,j++)
{
P=P+E[i][j];
}[/code:1]
Znam da je vsego ovo već ispravio, ali bih ja naglasio da je to ne samo nepotrebno imati dva indeksa, nego je čak i pogrešno...
Ovako će se napraviti suma (produkt, ono prihvaćam kao tipfeler) svih elemenata matrice, a ne samo onih kojih se traži.[/quote]

E, C'Tebo, C'Tebo... :roll: Treba paziti... :)

Nisu dvije petlje, nego se "i" i "j" [b][u]istovremeno[/u][/b] mijenjaju :!: Dakle, stalno imas istu vrijednost u te dvije varijable... ;)

[/quote]

Hm... jel ovo gore pseudoC ili pravi C? Ako je pravi, prilično je ružan
obfuscation onaj zarez u uvjetu. Naime, ne radi se ni logičko 'i' ni 'ili'
između te dvije stvari (i<n i j<n), kako bi vjerujem mnogi pomislili,
već se jednostavno uzima rezultat samo drugog operanda (j<n).
(prvi se takoder racuna, i to je razlog zbog kojeg zarez ima smisla
u inicijalizaciji i inkrementu, ali se njegov rezultat zanemaruje).
vsego (napisa):
C'Tebo (napisa):
Isuse šta ste ispisali Shocked
Kod:
for(i=0,j=0;i<n,j<n;i++,j++)
{
P=P+E[i][j];
}

Znam da je vsego ovo već ispravio, ali bih ja naglasio da je to ne samo nepotrebno imati dva indeksa, nego je čak i pogrešno...
Ovako će se napraviti suma (produkt, ono prihvaćam kao tipfeler) svih elemenata matrice, a ne samo onih kojih se traži.


E, C'Tebo, C'Tebo... Rolling Eyes Treba paziti... Smile

Nisu dvije petlje, nego se "i" i "j" istovremeno mijenjaju Exclamation Dakle, stalno imas istu vrijednost u te dvije varijable... Wink



Hm... jel ovo gore pseudoC ili pravi C? Ako je pravi, prilično je ružan
obfuscation onaj zarez u uvjetu. Naime, ne radi se ni logičko 'i' ni 'ili'
između te dvije stvari (i<n i j<n), kako bi vjerujem mnogi pomislili,
već se jednostavno uzima rezultat samo drugog operanda (j<n).
(prvi se takoder racuna, i to je razlog zbog kojeg zarez ima smisla
u inicijalizaciji i inkrementu, ali se njegov rezultat zanemaruje).


[Vrh]
Korisnički profil Pošaljite privatnu poruku Pošaljite e-mail Posjetite Web stranice
C'Tebo
Moderator
Moderator


Pridružen/a: 03. 11. 2002. (18:40:48)
Postovi: (26A)16
Sarma = la pohva - posuda
-13 = 3 - 16
Lokacija: Zagreb

PostPostano: 9:21 pon, 24. 11. 2003    Naslov: Citirajte i odgovorite

[quote="vsego"][quote="C'Tebo"]Isuse šta ste ispisali :shock:
[code:1]for(i=0,j=0;i<n,j<n;i++,j++)
{
P=P+E[i][j];
}[/code:1]
Znam da je vsego ovo već ispravio, ali bih ja naglasio da je to ne samo nepotrebno imati dva indeksa, nego je čak i pogrešno...
Ovako će se napraviti suma (produkt, ono prihvaćam kao tipfeler) svih elemenata matrice, a ne samo onih kojih se traži.[/quote]

E, C'Tebo, C'Tebo... :roll: Treba paziti... :)

Nisu dvije petlje, nego se "i" i "j" [b][u]istovremeno[/u][/b] mijenjaju :!: Dakle, stalno imas istu vrijednost u te dvije varijable... ;)[/quote]
Da, moj bed, ispričavam se ako sam nekoga zbunil time :?
vsego (napisa):
C'Tebo (napisa):
Isuse šta ste ispisali Shocked
Kod:
for(i=0,j=0;i<n,j<n;i++,j++)
{
P=P+E[i][j];
}

Znam da je vsego ovo već ispravio, ali bih ja naglasio da je to ne samo nepotrebno imati dva indeksa, nego je čak i pogrešno...
Ovako će se napraviti suma (produkt, ono prihvaćam kao tipfeler) svih elemenata matrice, a ne samo onih kojih se traži.


E, C'Tebo, C'Tebo... Rolling Eyes Treba paziti... Smile

Nisu dvije petlje, nego se "i" i "j" istovremeno mijenjaju Exclamation Dakle, stalno imas istu vrijednost u te dvije varijable... Wink

Da, moj bed, ispričavam se ako sam nekoga zbunil time Confused



_________________
Click me!
_______________________
Bad panda!
[Vrh]
Korisnički profil Pošaljite privatnu poruku Pošaljite e-mail
steelworker
Site Admin
Site Admin


Pridružen/a: 25. 04. 2003. (11:21:04)
Postovi: (698)16
Sarma = la pohva - posuda
44 = 50 - 6
Lokacija: 4-dimensional space-time continuum. Or some 11-dimensional continuum? Dunna, it's all relative.

PostPostano: 10:14 pon, 24. 11. 2003    Naslov: Citirajte i odgovorite

[quote="vsego"][code:1]scanf(n);
max = 0;
for (i = 0, i < n, i = i + 1) {
scanf(x);
a[i] = x;
sum = 0;
while (x > 0) {
sum = sum + (x mod 10);
x = x div 10;
}
if (sum > max)
max = sum;
}
for (i = 0, i < n, i = i + 1) {
sum = 0;
x = a[i];
while (x > 0) {
sum = sum + (x mod 10);
x = x div 10;
}
if (sum == max)
printf(a[i]);
}[/code:1][/quote][b]OK, tko je tesko skuzio ono gore, neka se ne zamara sa mojim cjepidlacenjem ovdje dolje:[/b]

Kao sto vidite u vseginom kodu gore dva puta se racuna ista stvar - suma znamenaka jednog broja, sto bas i nije jako dobro, zapravo je lose (dobro, vi se sad tek ucite programiranju, pa vas on lijepo pedagoski ne zeli zbunjivati kompliciranjem nego vam nastoji dati sto jednostavnija rjesenja, ali onda dodjem ja i picajzliram :twisted: :lol: :wink: )

U ovako malom programu nije nikakav bed tak nekaj dvaput radit, ali pri vecim stvarima to nije pametno radit.
Pa dakle, sto onda?
Ovak:

a) kad nadjemo x cija je [b]suma znamenaka jednaka max[/b], upisemo ga u a[] na jedno mjesto iza zadnjeg upisanog broja sa istom sumom znamenaka. To mjesto pamtimo u varijabli [i]zadnji[/i], pa tako upisemo x na a[zadnji].

b) kad nadjemo x cija je [b]suma znamenaka veca od max[/b] tada se ponasamo kao da nam je a[] do tada bio prazan (kao da je to prvi broj sa najvecom sumom znamenaka na koji smo do sada naisli). To radimo tako da varijablu [i]zadnji[/i] postavimo na 0 (tj. na pocetak od a[]) i onda normalno kao i u slucaju a) upisemo x na a[zadnji]

I na kraju ispisemo sve elemente u od 0 do [i]zadnji[/i] mjesta.

Da vam bude malo jasnije pogledajte kod:

[code:1]scanf(n);
max = 0;
zadnji=0;
for (i = 0, i < n, i = i + 1) {
scanf(x);
sum = 0;
while (x > 0) {
sum = sum + (x mod 10);
x = x div 10;
}
if (sum == max) {
a[zadnji] = x;
zadnji = zadnji + 1;
}
if (sum > max) {
max = sum;
zadnji = 0; // <- krenemo ispocetka
a[zadnji] = x;
zadnji = zadnji + 1;
}
}
for (i = 0, i < zadnji, i = i + 1) {
printf(a[i]);
}
[/code:1]
Primjetite da ce samo jedan od onih IF-ova biti zadovoljen jer ako je [code:1]sum>max[/code:1] onda nije [code:1]sum==max[/code:1] i obratno.
Takodjer primjetite da smo slucaj [i]sum==max[/i] morali obraditi prije [i]sum>max[/i] jer u slucaju da vrijedi [i]sum>max[/i] postavljamo da je [i]max=sum[/i], pa da nakon toga imamo provjeru za slucaj [i]suma==max[/i] ona bi bila zadovoljena (makar je x prvi broj sa tako velikom sumom znamenaka) i ponovo bi upisali x u a[] te bi u rjesenju imali sve brojeve duplo ispisane.

Nadam se da nisam nikoga previse zbunio.
vsego (napisa):
Kod:
scanf(n);
max = 0;
for (i = 0, i < n, i = i + 1) {
  scanf(x);
  a[i] = x;
  sum = 0;
  while (x > 0) {
    sum = sum + (x mod 10);
    x = x div 10;
  }
  if (sum > max)
    max = sum;
}
for (i = 0, i < n, i = i + 1) {
  sum = 0;
  x = a[i];
  while (x > 0) {
    sum = sum + (x mod 10);
    x = x div 10;
  }
  if (sum == max)
    printf(a[i]);
}
OK, tko je tesko skuzio ono gore, neka se ne zamara sa mojim cjepidlacenjem ovdje dolje:

Kao sto vidite u vseginom kodu gore dva puta se racuna ista stvar - suma znamenaka jednog broja, sto bas i nije jako dobro, zapravo je lose (dobro, vi se sad tek ucite programiranju, pa vas on lijepo pedagoski ne zeli zbunjivati kompliciranjem nego vam nastoji dati sto jednostavnija rjesenja, ali onda dodjem ja i picajzliram Twisted Evil Laughing Wink )

U ovako malom programu nije nikakav bed tak nekaj dvaput radit, ali pri vecim stvarima to nije pametno radit.
Pa dakle, sto onda?
Ovak:

a) kad nadjemo x cija je suma znamenaka jednaka max, upisemo ga u a[] na jedno mjesto iza zadnjeg upisanog broja sa istom sumom znamenaka. To mjesto pamtimo u varijabli zadnji, pa tako upisemo x na a[zadnji].

b) kad nadjemo x cija je suma znamenaka veca od max tada se ponasamo kao da nam je a[] do tada bio prazan (kao da je to prvi broj sa najvecom sumom znamenaka na koji smo do sada naisli). To radimo tako da varijablu zadnji postavimo na 0 (tj. na pocetak od a[]) i onda normalno kao i u slucaju a) upisemo x na a[zadnji]

I na kraju ispisemo sve elemente u od 0 do zadnji mjesta.

Da vam bude malo jasnije pogledajte kod:

Kod:
scanf(n);
max = 0;
zadnji=0;
for (i = 0, i < n, i = i + 1) {
  scanf(x);
  sum = 0;
  while (x > 0) {
    sum = sum + (x mod 10);
    x = x div 10;
  }
  if (sum == max) {
    a[zadnji] = x;
    zadnji = zadnji + 1;
  }
  if (sum > max) {
    max = sum;
    zadnji = 0; // <- krenemo ispocetka
    a[zadnji] = x;
    zadnji = zadnji + 1;
  }
}
for (i = 0, i < zadnji, i = i + 1) {
    printf(a[i]);
}

Primjetite da ce samo jedan od onih IF-ova biti zadovoljen jer ako je
Kod:
sum>max
onda nije
Kod:
sum==max
i obratno.
Takodjer primjetite da smo slucaj sum==max morali obraditi prije sum>max jer u slucaju da vrijedi sum>max postavljamo da je max=sum, pa da nakon toga imamo provjeru za slucaj suma==max ona bi bila zadovoljena (makar je x prvi broj sa tako velikom sumom znamenaka) i ponovo bi upisali x u a[] te bi u rjesenju imali sve brojeve duplo ispisane.

Nadam se da nisam nikoga previse zbunio.



_________________
I live like this 'cause I like it
And I've seen too much to pretend
You can't ignore the beauty in the things that you love
Like you can't stand the hatred and the lies
[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: 10:43 pon, 24. 11. 2003    Naslov: Citirajte i odgovorite

Steel, takvi zadaci cesto imaju ruznu naviku da se ne smiju koristit dodatni nizovi. :( Ovdje to nije slucaj, ali cesto je... :?
Steel, takvi zadaci cesto imaju ruznu naviku da se ne smiju koristit dodatni nizovi. Sad Ovdje to nije slucaj, ali cesto je... Confused



_________________
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