Pomoc oko programa u C-u

poruka: 13
|
čitano: 1.601
|
moderatori: XXX-Man, vincimus
1
+/- sve poruke
ravni prikaz
starije poruke gore
17 godina
neaktivan
offline
Pomoc oko programa u C-u

Ok, stvar je slijedeća. Zanima me sta mogu ucinit da bi mi ovaj program mogao racunati za vrijednosti vece od i=16 i kojom bi naredbom mogao rezultate ubaciti u neku tekstualnu datoteku a ne na samo na ekran.

 

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

int main()
{
  float i,  x;


scanf("%f %f", &i, &x);
  for(i=0; i<=40; x++){
i=i+(1/x);

printf("%f, %f\n", i, x);}



return 0;
}

 
0 0 hvala 0
15 godina
neaktivan
offline
Re: Pomoc oko programa u C-u

Kako mislis i>16? A i imas problem, korisnika trazis unos broja za varijablu 'i', pa onda varijablu 'i' postavis na nulu sa pocetkom petlje.

 

Sto se zapisivanja u datoteke tice, prouci funkcije fopen(), fclose(), fprintf(). Sa par sekundi googlanja naci ces i previse primjera kako ih se tocno koristi.

Look at you, hacker. A pathetic creature of meat and bone, panting and sweating as you run through my corridors. How can you challenge a perfect, immortal machine?
Poruka je uređivana zadnji put sri 13.4.2011 14:34 (rustweaver).
17 godina
neaktivan
offline
Pomoc oko programa u C-u

ma to sa unosom "i" je nevazno, ostalo mi je od prije, "i" mi i treba biti 0 na pocetku petlje. Ugl ako pokrenes program i pricekas koju minutu da "i" dodje do vrijednosti 16 vidjet ces da dalje ne raste. Predpostavljam da ima neke veze sa duzinom floata tj da je predje pa ne moze dalje racunat. A meni treba vrijednost "x" kada "i" predje 40.

 
0 0 hvala 0
14 godina
offline
Re: Pomoc oko programa u C-u
Mariossa kaže...

ma to sa unosom "i" je nevazno, ostalo mi je od prije, "i" mi i treba biti 0 na pocetku petlje. Ugl ako pokrenes program i pricekas koju minutu da "i" dodje do vrijednosti 16 vidjet ces da dalje ne raste. Predpostavljam da ima neke veze sa duzinom floata tj da je predje pa ne moze dalje racunat. A meni treba vrijednost "x" kada "i" predje 40.

ŠTo bi ovaj program trebao radit po tebi?

Inteligencija nije znanje,već mašta
Poruka je uređivana zadnji put sri 13.4.2011 16:06 (KKristijan).
15 godina
neaktivan
offline
Re: Pomoc oko programa u C-u
KKristijan kaže...

ŠTo bi ovaj program trebao radit po tebi?

Dijeli broj 1 sa sve vecom i vecom vrijednoscu varijable 'x' i taj rezultat dodaje varijabli 'i'. Tj. 'i' raste u sve manjim i manjim koracima da je to prakticki neizdrzivo {#}

 

@mariossa bit ce da je do preciznosti floata, meni je upravo zapeo na 14.xxx. Probaj varijable deklarirati kao double, ali ne shvacam cilj toga sto radis...

Look at you, hacker. A pathetic creature of meat and bone, panting and sweating as you run through my corridors. How can you challenge a perfect, immortal machine?
Poruka je uređivana zadnji put sri 13.4.2011 16:36 (rustweaver).
17 godina
neaktivan
offline
Pomoc oko programa u C-u

cilj je taj sto ako uradim taj zadatak mogu dobit 50 bodova bonusa na slijedecem kolokviju iz matematike a sam kolokvij nosi 100 bodova ^^

pokusavao sam sa double i sa long double ali program ne funkcionira kako treba. U slucaju double ga promatra kao unsigned ja mislim pa ode u negativnu vrijednost pa nemam pojma gdje se vrti, a u long double izbacuje neke nebuloze.

 
0 0 hvala 0
16 godina
neaktivan
offline
Re: Pomoc oko programa u C-u

Jesi fulao da ti petlja ide po i, a ima x++ ili ?

 

Jako mi je čudan program, moram prinati, prvo sam mislio da želiš izračunati 1+1/2 +1/3 + 1/4 + ...  i pokazat da to ide u beskonačnost, ali ovak mi uopće nema smisla :D

http://manutd-croatia.com/forum/index.php ... forum i udruga navijača Manchester Uniteda...
17 godina
offline
Pomoc oko programa u C-u

Najprije unese varijablu i, a onda je postavi na 0

nema smisla

neka kaže što računa , pa bi već netko riješio 

tebi je ovo inkrement i=i+(1/x); a povećavaš x u svakoj iteraciji

nema to veze sa formatom brojeva - što veći x i dulja iteracija - inkrement je manji, pa se petlja ne završava

napravi ti fino poštenu petju sa inkremetom 1, a unutar nje riješi izračun, što god da računaš.

Poruka je uređivana zadnji put sri 13.4.2011 21:56 (Floki).
 
0 0 hvala 0
17 godina
neaktivan
offline
Pomoc oko programa u C-u

pa da znam sve to nebih trazio pomoć jel..ugl ovako glasi zadatak:

 

Trebam odrediti kod kojeg ce clana "n" suma harmonickog niza 1+ 1/2 + 1/3 + .... 1/n preci vrijednost 40. Kao da je vazno ako unosim x i i, svejedno, tu komandu mozete izbaciti iz programa. To mi je ostalo od prethodnih pokusaja. Trebao sam samo poslije u for petlji da postavim pocetni uvijet tako da ono i=1 je nevazno u njoj. Mogao sam staviti bilo koju tvrdnju koja je tocna da se petlja pocne izvrsavati. Komentari poput "program nema smisla" uopce nisu konstruktivni ali hvala vam i na njima. Ako netko ima neku ideju kako pomoci bio bih zahvalan ako ne, razmisli prije nego postas nesto ;)

 
0 0 hvala 0
15 godina
neaktivan
offline
Re: Pomoc oko programa u C-u

 

#include <stdio.h>

#include <conio.h>

 

main (){

    float rezultat=0;

    int i=1;

 

    while (rezultat<=5){ //Za broj 5, za 40 je previse o.OO

       rezultat+=(1.0/i); //isto sta i rezultat=rezultat+1.0/i;

       i++;

       }

 

    printf("Nakon: %d, Rezultat: %f", i, rezultat);

 

    getch();

    }

 

Mislim ovo ti je rijesenje ako ces koristit float/double itd....

ali moze se zadatak rijesiti "rucnim dijeljenjem" kao sto se dijeli u osnovnoj skoli...to ti je kompliciraniji proces ali radi ;)

odredis npr. da se svaki 1/i podijeli na 20 decimala i spremas u string i zbrajas....ali cini mi se da neznas toliko c koda da bi to rijesio pa pitaj programere ovdje da pomognu ;)

 

Ali ali kazes kolokvij matematike...pa hmmm zar ne bi treba postojat neki algoritam za ovo skratit i rijesit na brzi nacin??

sta ja znam npr...vrtis brojeve i mnnozis ih i time stvoris nazivnik...zatim vrtis te sve iste brojeve i dijelis nazivnik sa njima i zbrajas ih...stvoris brojnik i nazivnik i podijelis....je da je dug algoritam al je jednostavan i kazes da ti treba samo rijesenje tako da onda je ovo super....

 

Uhh ma nista ni od toga :/

neka ti neko napravi sa stringovima sa dijeljenjem dva broja...ne ide ovo ovako :D

 

Poruka je uređivana zadnji put sub 16.4.2011 0:05 (calex3).
16 godina
neaktivan
offline
Re: Pomoc oko programa u C-u
Mariossa kaže...

pa da znam sve to nebih trazio pomoć jel..ugl ovako glasi zadatak:

 

Trebam odrediti kod kojeg ce clana "n" suma harmonickog niza 1+ 1/2 + 1/3 + .... 1/n preci vrijednost 40. Kao da je vazno ako unosim x i i, svejedno, tu komandu mozete izbaciti iz programa. To mi je ostalo od prethodnih pokusaja. Trebao sam samo poslije u for petlji da postavim pocetni uvijet tako da ono i=1 je nevazno u njoj. Mogao sam staviti bilo koju tvrdnju koja je tocna da se petlja pocne izvrsavati. Komentari poput "program nema smisla" uopce nisu konstruktivni ali hvala vam i na njima. Ako netko ima neku ideju kako pomoci bio bih zahvalan ako ne, razmisli prije nego postas nesto ;)

E pa to je drugo :D

 

probaj ovak nešto:

 

double suma=0.0;

int n=1;

 

while (suma<40)

{

    suma+=(1.0/n);

    ++n;

}

 

http://manutd-croatia.com/forum/index.php ... forum i udruga navijača Manchester Uniteda...
16 godina
neaktivan
offline
Re: Pomoc oko programa u C-u

Btw budući da se radi o harmonijskom redu koji jako sporo divergira, postoji matematički način za odredit broj n.

 

Naime, poznato je da je suma_do_n > ln(n+1)

Ako nađemo n takav da je ln(n+1)>40, onda će sigurno i suma_do_n bit veća od 40.To nije najmanji mogući n, ali može poslužit.

 

Iz ovog gore vrijedi da je

n > e40 - 1, npr uzmemo n= najmanje_cijelo ( e40 - 1 ) + 1 = najmanje_cijelo ( e40 ) > 2.35 * 1017 , dakle jako puno :D

 

(izvori : wikipediia i wolframalpha)

http://manutd-croatia.com/forum/index.php ... forum i udruga navijača Manchester Uniteda...
17 godina
offline
Re: Pomoc oko programa u C-u
Mariossa kaže...

pa da znam sve to nebih trazio pomoć jel..ugl ovako glasi zadatak:

 

Trebam odrediti kod kojeg ce clana "n" suma harmonickog niza 1+ 1/2 + 1/3 + .... 1/n preci vrijednost 40. Kao da je vazno ako unosim x i i, svejedno, tu komandu mozete izbaciti iz programa. To mi je ostalo od prethodnih pokusaja. Trebao sam samo poslije u for petlji da postavim pocetni uvijet tako da ono i=1 je nevazno u njoj. Mogao sam staviti bilo koju tvrdnju koja je tocna da se petlja pocne izvrsavati. Komentari poput "program nema smisla" uopce nisu konstruktivni ali hvala vam i na njima. Ako netko ima neku ideju kako pomoci bio bih zahvalan ako ne, razmisli prije nego postas nesto ;)

ma nemoj mi reći da nisam bio konstruktivan

Jasam ti lijepo rekao:

1. daj zadatak - netko će ga riješiti

2. veličina X itekako ima utjecaj na izvršavanje petlje koju si napisao,  ti si stavio inkrement i = i + (1/x) , UZ to inkrementiraš X u svakoj iteraciji, što hoće reći da se inkrement smanjuje težeći nuli.

Pa ti sa takvim inkrementom radi petlju - veći X - dulja petlja, dulja petlja - veći X, a ti si učinio baš to - pogrešno povezao sumu sa inkrementom

sorry, ali nema smisla takva petlja.

što nisi odmah rekao da želiš sumu 1 + 1/2 + 1/3 + . . .

 

Poruka je uređivana zadnji put sub 16.4.2011 12:42 (Floki).
1
Nova poruka
E-mail:
Lozinka:
 
vrh stranice