» »

[C++]Naloga

[C++]Naloga

strictom ::

Napišite program v programskem jeziku c++, ki bo izračunal vsoto 1/2+1/3+1/4+ ... 1/20.

Nekot sem spesnil tole, ampak rezultat je vedno 0 :(


#include "stdafx.h"

int _tmain(int argc, _TCHAR* argv[])
{
double rezultat;
double del;
int j=2;
for(int i=0;i je manjše od 20;i++)
{
del=1.0000/j;
rezultat=rezultat+del;
j++;
}
printf("Rezultat je: %f\n", &rezultat);
return 0;
}
"Violence is the last refuge of the incompetent" - Salvor Hardin

fiction ::

Po printf() sklepam, da naj bi bilo vse skupaj v cistem C-ju, ne v C++ (drugace bi raje uporabil std::cout).
Samo tukaj je problem, da sele C99 standard dopusca deklaracijo spremenljivke (int i) znotraj for zanke.

Zakaj zaboga rabis i, j, del in se rezultat?
I gre lahko od 2 do 20 in ne rabis se dodatne j spremenljivke, ulomek pa lahko direktno pristejes rezultatu in tako tudi del ne rabis.

Nekaj ala:
double rezultat = 0;
for(i = 2; i <= 20; ++i)
{
  rezultat += (1.0 / i);
}
printf("Rezultat je: %lf\n", rezultat);
bi moralo delati.
Konkretno pri tebi je problem & pri rezultat.
printf("Rezultat je: %f\n", &rezultat);

To pomeni, da naj se naslov rezultata izpise kot stevilo v plavajoci vejici in NE sam rezultat. Brez & bi moralo delati.

Zgodovina sprememb…

  • spremenil: fiction ()

/Luc/ ::

Izvoli:
#include "stdafx.h"
#include <iostream>
using namespace std;

int main()
{
	double vsota = 0.0,
		stevec = 1;

	for(int zacetek = 2; zacetek <=20; zacetek++)
		vsota += stevec / zacetek;

	cout << "Vsota znasa: " << vsota <<endl;

	system("PAUSE");
	return 0;
}
:)

fiction ::

Sicer je to malo offtopic, ampak jaz osebno ne bi uporabil
system("PAUSE");
na koncu - getchar() je cist dovolj.

Ce res hoces pognati drug program je hitreje in predvsem bolj varno (ker se ne pozene se ukazni interpreter, ki bi lahko po svoje interpretiral dolocene znake) uporabiti direktno execve() oz. CreateProcess().

rasta ::

Še ena nebistvena pripomba iz gledišča numerične matematike: pri vrstah se vedno najprej prišteva najmanjše člene (seveda, če se uporablja zapis s plavajočo vejico), ker drugače lahko nastopijo čudni pojavi - recimo harmonična vrsta ima limito ipd.

strictom ::

Sem videl kaj sem ga biksnil ja.

Evo nov orešček: napiši program, ki vnešeno število izpiše obrnjeno in potem to število še v binary.

V binarno obliko ga komot pretvorim (ostanek pri deljenju z dva potem kontra zapišeš), le obrnit mi ga nekot ne gre.

Da bi mrbit število shranil v polje, potem indeks polja postavil na NULL-1 in izpisoval do indeksa 0?
"Violence is the last refuge of the incompetent" - Salvor Hardin

Pimoz ::

heh deliš z 10 pa ostanek izpisuješ :D

strictom ::

Mah to je prfoks ze na tablo nardil. Nebi rad kopiral :)

Če bi mi nekdo samo napisal kako eno cifro shraniš v polje z indeksom npr. 'i' in potem izpišeš to?
"Violence is the last refuge of the incompetent" - Salvor Hardin

Loki ::

pri vrstah se vedno najprej prišteva najmanjše člene (seveda, če se uporablja zapis s plavajočo vejico), ker drugače lahko nastopijo čudni pojavi - recimo harmonična vrsta ima limito ipd.

lahko malo bolj pojasnis tole? moram reci, da sem ze kar orenk pozabil vse skupaj.
I left my wallet in El Segundo

/Luc/ ::

Mah to je prfoks ze na tablo nardil. Nebi rad kopiral :)

Če bi mi nekdo samo napisal kako eno cifro shraniš v polje z indeksom npr. 'i' in potem izpišeš to?


Eno cifro shraniš v polje tako:
int const i = 1;
int polje[i] = {7};  // V polje vstaviš 7.
cout << polje[0];


Če pa hočeš vnesti več števil pa uporabiš for zanko ;)

strictom ::

Saj ta 'for' zanka me zanima.
"Violence is the last refuge of the incompetent" - Salvor Hardin


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Neznan problem #2 [C]

Oddelek: Programiranje
91547 (1337) videc
»

Kalkulator

Oddelek: Programiranje
111228 (995) lebdim
»

[java] problem z decimalkami

Oddelek: Programiranje
91500 (1174) NeOman
»

[c] osnove

Oddelek: Programiranje
352416 (1753) fiction
»

[C++] for {}

Oddelek: Programiranje
291622 (1316) Gundolf

Več podobnih tem