Kezdőoldal » Számítástechnika » Programozás » Leírnátok a következő program...

Leírnátok a következő program C++ kódját? A=1+1/2+1/4+1/8+1/16+1/ (2^n). Szóval megadom az "n"-t, és ez alapján számítja ki az "a"-t.

Figyelt kérdés

Kezdő vagyok, ezt írtam, de ez nem jó.. segítség?

#include <iostream>

using namespace std;

int main()

{

int i,a;

float eredmeny;

cout << "Adja meg a szamot!\n";

cin >> a;

for(i=0; i<=a; i++)

eredmeny=1/2^i;

i++;

cout << eredmeny << endl;

system("pause");

return 0;



2013. márc. 2. 02:18
 1/6 anonim ***** válasza:

1. Az "eredmeny" változónak adj valamilyen kezdőértéket. Célszerű 0-t.

2. A for ciklusban az eredmeny változó értékét mindig törlöd. Ne töröld, hanem add hozzá az új részeredményt. Ne = jelt használj, hanem += jeleket (esetleg eredmeny=eredmeny+1/2^n, a kettő ugyanaz)

2013. márc. 2. 04:28
Hasznos számodra ez a válasz?
 2/6 anonim ***** válasza:
Szerintem egyszerűsítsd le az egészet. A fenti kifejezés ekvivalens az A=2-1/(2^n)-nel, így nem kell for ciklus sem.
2013. márc. 2. 09:13
Hasznos számodra ez a válasz?
 3/6 anonim ***** válasza:

Így kell hatványozni: [link]

tehát:

...

cin >> a;

eredmeny = 2 - pow (2,a)

cout << eredmeny << endl;

...

2013. márc. 2. 09:16
Hasznos számodra ez a válasz?
 4/6 A kérdező kommentje:

Nem tudom, hogy kötelező-e for-ral csinálni, szerintem lehet más ciklussal de a fent leírt módon kell, szóval nem lehet 2-1/2^i..

nem jövök rá... van, hogy kilép 0-val való osztás miatt, meg néha ugyanaz a szám az eredmény, mint az a...

2013. márc. 2. 10:52
 5/6 anonim ***** válasza:

A "^" c++ - ban bitenkénti kizáró VAGY operátora, nem a hatványozásé. Az eredmeny változó értékét meg mindig felülírod nem hozzáadod.

i++; sort meg nem is értem minek.

2013. márc. 2. 12:58
Hasznos számodra ez a válasz?
 6/6 gyorki92 ***** válasza:

Amit az első irt. Az eredmeny-nek adj egy kezdőértéket (0-t).

Utána a for-loopban pedig nem kell a második i++ (egyrészt a kódblokkon kivül van, tehát semmi effektje nincs a for-loopon belül, másrészt ha benn is lenne, akkor meg 2-t ugranál az i-vel minden körben), csak ennyi:

for(i=0; i<=a; i++){

eredmeny += 1/(pow(2, i));

}

pow()-hoz kell a <cmath> headert is #includolni.

És a végén nem értem a system("pause")-t miért kell.

2013. márc. 2. 13:02
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!