Potęgowanie w c++ za pomocą "for".

0

Próbowałem tak (chodzi o to, że podnoszę a do potęgi b - pomijam wprowadzanie tych zmiennych).

double a;
double b;
double i;

for (i=0;i<b;i++)
{
a*=a
}

Nie wiem czy to działa, bo nawet nie wiem jak wyświetlić wynik z tego. Ale prawdopodobnie nie działa :d

Wie ktoś jak to zrobić?
Nie umiem sobie z tym poradzić :/ I jeszcze jakby ktoś mógł tak to zrobić, żeby później wyrzuciło to na konsolę.

0

Poszukaj sobie kursu dotyczącego podstaw języka lub książki to się dowiesz - to są totalne podstawy.
Pomysł nie jest zły, ale prośba o pomoc w czytaniem/wypisaniem zmiennej to już zakrawa na lenistwo.

0

Masz rację, piszę na forum dla programistów, bo naprawdę mi się nudzi.
Chcesz, to Ci wyślę poradniki i książki z którcyh krozystam do nauki języka a Ty mi wskażesz w którym momencie jest to opisane :).
Wiem jak działa funkcja "for", po prostu nie umiem jej użyć - gdyby tak nie było nie pisałbym tutaj...

0

chcę - pokaż mi ten poradnik

0

http://cpp0x.pl/kursy/Kurs-C++/Poziom-2/Petla-for/294

książka: "Od zera do gier kodera" Karola Kuczmarskiego

2
a*=a

W tym miejscu masz błąd, przypuśćmy że będzie 2 do potęgi 3, wtedy w pierwszym obiegu w tej linijce policzy 2 *2, ale w drugim 4 * 4 (bo a już będzie 4). Musisz mieć 3 zmienną na wynik. np int wynik; a w pętli wynik *= a. Wtedy cały czas będzie mnożyć przez 2, i poda prawidłowy wynik.

2

tak, ale błąd jest też tego rodzaju, że zmienna iteracyjna nie jest typu całkowitego, zatem trzeba też zmienić typ zmiennej double i; na np. int i; niestety w tym kursie nie jest to opisane ale w książce zapewne jest taka informacja.
Do tego wypisywanie i wczytywanie w kursie do którego linkujesz też jest opisane.

2

Jak dodasz zmienną przechowującą wynik (początkowa wartość na 1) i na jej będziesz wykonywał operacje (np. wynik *= a) i zmienną i zmienisz na int to wtedy będzie działać.Dawno nie pisałem nic w c++, ale podejrzewam, że aby wyświetlić wynik musisz dodać na końcucout << wynik << endl; (o ile się nie mylę :) ).

0

To jest to potęgowanie w switchu. Na początku jest wprowadzona zmienna a,b,p(jako ten wasz wynik).

case 5:
        for (int i=0;i<b;i++)
        {
            p*=a;
        }
        cout << p << endl;
        break;

Nie działa :/ Wyświetla jakieś kosmiczne liczby. Przynajmniej wyświetla wynik :d

0

Dzięki, działa.

0

Jeszcze w sprawie tych "dziwnych wyników" najlepiej będzie jeśli już przy inicjacji będziesz nadawał wszystkim zmiennym wartości, np int i =0, wynik = 1;. W ten sposób unikniesz takich problemów w dużo bardziej skomplikowanych programach.

1 użytkowników online, w tym zalogowanych: 0, gości: 1