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

Što u ovom programu ne valja?
WWW:
Idite na Prethodno  1, 2
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
Atomised
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 04. 09. 2007. (15:33:59)
Postovi: (399)16
Sarma = la pohva - posuda
70 = 95 - 25
Lokacija: Exotica

PostPostano: 23:19 pon, 24. 12. 2007    Naslov: Citirajte i odgovorite

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

int main(void)
{

int n, i, zbroj, prvi = 0;

scanf ( "%d", &n );


for ( i = 1; i <= n ; i = i + 2);
{prvi = prvi + 2 * i;}

zbroj = ((n + n * n) / 2) + prvi;


printf ( "%d", zbroj );


scanf("%%");
return 0;

}
[/code:1]

Zadatak 8.12 iz skripta... Znam da u skriptama postoji rješenje, ali ja sam probao drugačije.

Ideja mi je bila prvo zbrojiti sve brojeve do n (taj zbroj sam nazvao "prvi"), a zatim tome još pribrojiti sve neparne puta dva.

Sad, nisam siguran da sam uopće dobro shvatio zadatak ali, neovisno o tome (ako mi sama ideja i je pogrešna), ne razumijem zašto mi program izbacuje rezultate kakve mi izbacuje...

Ako za n upišem 8, izbaci mi 54 umjesto 68. Ako upišem 5, izbaci mi 29 umjesto 33. Pa me zanima zašto. Hvala. ;)
Kod:

#include <stdio.h>

int main(void)
{

int n, i, zbroj, prvi = 0;

scanf ( "%d", &n );


for ( i = 1; i <= n ; i = i + 2);
     {prvi = prvi + 2 * i;}

zbroj = ((n + n * n) / 2) + prvi;


printf ( "%d", zbroj );


scanf("%%");
return 0;

}


Zadatak 8.12 iz skripta... Znam da u skriptama postoji rješenje, ali ja sam probao drugačije.

Ideja mi je bila prvo zbrojiti sve brojeve do n (taj zbroj sam nazvao "prvi"), a zatim tome još pribrojiti sve neparne puta dva.

Sad, nisam siguran da sam uopće dobro shvatio zadatak ali, neovisno o tome (ako mi sama ideja i je pogrešna), ne razumijem zašto mi program izbacuje rezultate kakve mi izbacuje...

Ako za n upišem 8, izbaci mi 54 umjesto 68. Ako upišem 5, izbaci mi 29 umjesto 33. Pa me zanima zašto. Hvala. Wink


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


Pridružen/a: 27. 01. 2007. (12:06:50)
Postovi: (347)16
Spol: muško
Sarma = la pohva - posuda
58 = 89 - 31

PostPostano: 0:40 uto, 25. 12. 2007    Naslov: Citirajte i odgovorite

nisam gledao zadatak, pa ni ne znam što se traži, ali gotovo sam siguran da ti problem stvara onaj [tt];[/tt] nakon for-petlje. za unos 'n=8', petlja odvrti [i]i[/i] do 9 i onda (samo) za taj [i]i[/i] izračuna onaj izraz ispod petlje. :wink:
nisam gledao zadatak, pa ni ne znam što se traži, ali gotovo sam siguran da ti problem stvara onaj ; nakon for-petlje. za unos 'n=8', petlja odvrti i do 9 i onda (samo) za taj i izračuna onaj izraz ispod petlje. Wink



_________________
ima let u finish
[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: 1:16 uto, 25. 12. 2007    Naslov: Citirajte i odgovorite

Tocno tako, ma. =D>

@Atomised: ako zelis preskociti koristenje [tt]for()[/tt]-petlje, onda mozes ovako:

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

int sum1n(int n) {
return n * (n + 1) / 2;
}

int main(void) {
int n, i, sum1 = 0, sum2, sum3;

printf("Unesite broj: ");
scanf("%d", &n);

for (i = 1; i <= n; i++)
sum1 += (i % 2 ? 3 : 1) * i;

sum2 = 3 * sum1n(n) - 4 * sum1n(n / 2);

sum3 = sum1n(n) + 2 * ((n+1) / 2) * ((n+1) / 2);

printf("Sum1 = %d\nSum2 = %d\nSum3 = %d\n", sum1, sum2, sum3);

return 0;
}[/code:1]

[size=19][b]Prva suma[/b][/size]

...je iz sluzbenog rjesenja. ;)

[size=19][b]Druga suma[/b][/size]

Suma prvih [i]n[/i] prirodnih brojeva je:
[latex]S_n = \frac{n(n+1)}2[/latex]
kako si i napisao. :) No, onda je suma svih parnih prirodnih brojeva manjih ili jednakih [i]n[/i] jednaka
[latex]P_n = 2 + 4 + \dots + 2\left\lfloor\frac{n}2\right\rfloor = 2 \left(1 + 2 + \dots + \left\lfloor\frac{n}2\right\rfloor\right) = 2S_{\left\lfloor\frac{n}2\right\rfloor}[/latex]
pa je ono sto se u zadatku trazi
[latex]S = 3S_n - 2P_n = 3S_n - 4S_{\left\lfloor\frac{n}2\right\rfloor}[/latex]

[size=19][b]Treca suma[/b][/size]

...se bazira na cinjenici da je suma prvih [i]n[/i] neparnih prirodnih brojeva jednaka [latex]n^2[/latex], te na cinjenici da od 1 do [i]n[/i] imas [latex]\left\lceil\frac{n}2\right\rceil = \left\lfloor\frac{n+1}2\right\rfloor[/latex] neparnih prirodnih brojeva. 8) Dokaz prepustam tebi (indukcija). ;)



Jasno, svrha zadatka je vjezbanje petlji (izmedju ostalog da osjetis onaj [tt];[/tt] i da ti se to ne desi onda kad ne smije). :)
Tocno tako, ma. Applause

@Atomised: ako zelis preskociti koristenje for()-petlje, onda mozes ovako:

Kod:
#include <stdio.h>

int sum1n(int n) {
  return n * (n + 1) / 2;
}

int main(void) {
  int n, i, sum1 = 0, sum2, sum3;
 
  printf("Unesite broj: ");
  scanf("%d", &n);

  for (i = 1; i <= n; i++)
    sum1 += (i % 2 ? 3 : 1) * i;

  sum2 = 3 * sum1n(n) - 4 * sum1n(n / 2);

  sum3 = sum1n(n) + 2 * ((n+1) / 2) * ((n+1) / 2);

  printf("Sum1 = %d\nSum2 = %d\nSum3 = %d\n", sum1, sum2, sum3);

  return 0;
}


Prva suma

...je iz sluzbenog rjesenja. Wink

Druga suma

Suma prvih n prirodnih brojeva je:

kako si i napisao. Smile No, onda je suma svih parnih prirodnih brojeva manjih ili jednakih n jednaka

pa je ono sto se u zadatku trazi


Treca suma

...se bazira na cinjenici da je suma prvih n neparnih prirodnih brojeva jednaka , te na cinjenici da od 1 do n imas neparnih prirodnih brojeva. Cool Dokaz prepustam tebi (indukcija). Wink



Jasno, svrha zadatka je vjezbanje petlji (izmedju ostalog da osjetis onaj ; i da ti se to ne desi onda kad ne smije). 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
Atomised
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 04. 09. 2007. (15:33:59)
Postovi: (399)16
Sarma = la pohva - posuda
70 = 95 - 25
Lokacija: Exotica

PostPostano: 9:51 uto, 25. 12. 2007    Naslov: Citirajte i odgovorite

Hvala obojici. :D
Hvala obojici. Very Happy


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


Pridružen/a: 15. 09. 2007. (17:52:41)
Postovi: (D8)16
Spol: žensko
Sarma = la pohva - posuda
= 15 - 8

PostPostano: 16:06 sri, 9. 1. 2008    Naslov: Citirajte i odgovorite

imam jedno pitanjce; kako se pise funkcija logaritma po npr bazi sedam od broja 8 u c-u
imam jedno pitanjce; kako se pise funkcija logaritma po npr bazi sedam od broja 8 u c-u


[Vrh]
Korisnički profil Pošaljite privatnu poruku Pošaljite e-mail
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: 20:17 sri, 9. 1. 2008    Naslov: Citirajte i odgovorite

[quote="mischa"]imam jedno pitanjce; kako se pise funkcija logaritma po npr bazi sedam od broja 8 u c-u[/quote]

Iskoristi [url=http://www.acm.uiuc.edu/webmonkeys/book/c_guide/2.7.html#log][tt]double log(double);[/tt][/url].

Logaritam od 8 po bazi 7 bi u C-u bilo: [tt]log(8.0)/log(7.0);[/tt]
mischa (napisa):
imam jedno pitanjce; kako se pise funkcija logaritma po npr bazi sedam od broja 8 u c-u


Iskoristi double log(double);.

Logaritam od 8 po bazi 7 bi u C-u bilo: log(8.0)/log(7.0);



_________________
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:55 sri, 9. 1. 2008    Naslov: Citirajte i odgovorite

Podsjetnik: ako znamo da su i baza i rjesenje cjelobrojni, onda je bolje izbjeci [tt]log()[/tt] (zbog gresaka aritmetike s pomicnim zarezom). ;)

Npr. [latex]\lfloor\log_bx\rfloor[/latex] bi se racunao ovako:
[code:1]log = 0;
while (x > 1) {
log++;
x /= b;
}[/code:1]
:)
Podsjetnik: ako znamo da su i baza i rjesenje cjelobrojni, onda je bolje izbjeci log() (zbog gresaka aritmetike s pomicnim zarezom). Wink

Npr. bi se racunao ovako:
Kod:
log = 0;
while (x > 1) {
  log++;
  x /= b;
}

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


Pridružen/a: 15. 09. 2007. (17:52:41)
Postovi: (D8)16
Spol: žensko
Sarma = la pohva - posuda
= 15 - 8

PostPostano: 9:54 čet, 10. 1. 2008    Naslov: Citirajte i odgovorite

hvala na pomoci :D
hvala na pomoci Very Happy


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


Pridružen/a: 22. 11. 2007. (20:26:24)
Postovi: (7F)16
Spol: muško
Sarma = la pohva - posuda
= 11 - 2

PostPostano: 18:08 pet, 11. 1. 2008    Naslov: Citirajte i odgovorite

Razmišljajući sam došao do zaključka šta ljude muči... Pa, mislim, uopće se ne zna u kojoj se bazi računa, krajnje je vrijeme da se počne naznačavati pokraj barem svake treće linije koda :rofl:
Razmišljajući sam došao do zaključka šta ljude muči... Pa, mislim, uopće se ne zna u kojoj se bazi računa, krajnje je vrijeme da se počne naznačavati pokraj barem svake treće linije koda Rolling On the Floor Laughing


[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.
Idite na Prethodno  1, 2
Stranica 2 / 2.

 
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