• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Problem z pętlą for

Mały hosting, OGROMNE możliwości
0 głosów
1,225 wizyt
pytanie zadane 8 października 2019 w C i C++ przez rel Początkujący (340 p.)

Witam, piszę ze swoim problemem związanym z nieumiejętnością dokończenia programu. Ten program c++ w założeniu powinien wczytywać od użytkownika liczbę, a następnie wyświetlać potęgi trzeciego stopnia poprzednich liczb od 1 w gorę i je sumować np.: użytkownik wybiera 5 - wyświetla się 1^3=1, 2^3=8, [...], 5^3=125, a następnie suma wyników potęgowania (1 + 8 + [...] + 125). Doszedłem do momentu, w którym prawidłowo wyświetlają się wyniki potęgowania, ale nie umiem ich dodać. Proszę o pomoc.

#include <iostream>
using namespace std;
int main()
{
	int a, b;
	cout << "Podaj liczbe\n";
	cin >> a;
	for (b = 1; b <= a; b = b + 1)
		cout << b << '^' << 3 << '=' << b * b * b << endl;
	cout << "Suma poteg:";



}

 

2 odpowiedzi

+2 głosów
odpowiedź 8 października 2019 przez radek024 Szeryf (77,160 p.)
wybrane 8 października 2019 przez rel
 
Najlepsza
Czy masz jakiś konkretny powód, dla którego definiujesz zmienną b nie w pętli? Trochę bez sensu. Jeżeli chcesz coś sumować, to warto byłoby pomyśleć o jakiejś zmiennej, która będzie zbierała kolejne potęgi. Dodałbym też klamerki - bez nich pętla ogranicza się do jednej instrukcji, a wyjście na ekran i dodawanie kolejnych potęg to już dwie operacje.

Aby rozwiązania nie dawać w pełni, a jeszcze bardziej naprowadzić - gdzie należy zdefiniować zmienną, aby za każdym razem się nie zerowała?
komentarz 8 października 2019 przez rel Początkujący (340 p.)
Dzięki za odpowiedź, ale jestem totalnym żółtodziobem jeżeli chodzi o programowanie i te pytania mogą wydać się głupie lub irytujące, ale

-rozumiem, że definiowanie zmiennej w pętli zamiast poza nią ma znaczenie (?)

-w którym miejscu powinienem dodać klamerki?

Tak jak powiedziałeś dodałem kolejną zmienną, ale nie za bardzo wiem co z nią dalej zrobić.
komentarz 8 października 2019 przez radek024 Szeryf (77,160 p.)

rozumiem, że definiowanie zmiennej w pętli zamiast poza nią ma znaczenie

Tak, to się nazywa zakresami. Jak wiadomo, pętla wykonuje kod wewnątrz jej ciała. Przykład:

int obrot=0;

for(int i=0; i<5; i++){
obrot=obrot+1;
}

 Po zakończeniu pętli, zmienna obrot=4. Dzieje się tak ze względu warunku pętli. A co jeżeli zmienimy delikatnie kod?

for(int i=0; i<5; i++){
int obrot=0;
obrot=obrot+1;
}

Ile teraz równa jest zmienna obrot? To z początku trudne do ogarnięcia, ale 1. Dzieje się tak ze względu na definiowanie owej zmiennej za każdym obrotem pętli. Dopiero dla i=4 (czyli ostatniego kroku, który spełnia warunek) dodanie jedynki działa.

 

w którym miejscu powinienem dodać klamerki?

Zobacz na kod - klamerki są zaraz za pętlą.

komentarz 8 października 2019 przez rel Początkujący (340 p.)
Dzięki wielkie, za wyczerpującą odpowiedź, teraz już rozumiem :)

Najlepsza odpowiedź za to, że chciało Ci się tłumaczyć :)
komentarz 8 października 2019 przez Ezzadanko5head Nowicjusz (180 p.)

@rel, Jeśli chodzi o klamerki to jeśli w pętli masz tylko jedną instrukcje to nie musisz ich dodawać wcale, a jeśli pętla zawiera więcej niż jedną instrukcje to klamrę otwierającą dodajesz po rozpisaniu działania pętli a zamykającą po wszystkich instrukcjach jakie ma wykonać pęlta np:

for(int i=0; i<5; i++){
//Tu wpisujesz instrukcje
}


komentarz 8 października 2019 przez rel Początkujący (340 p.)
Też myślałem w tym kierunku, ale dobrze mieć jasne wytłumaczenie, dzięki :)
+1 głos
odpowiedź 8 października 2019 przez tkz Nałogowiec (42,040 p.)

#include <iostream>
using namespace std;
int main()
{
    int a, b;
    cout << "Podaj liczbe\n";
    cin >> a;
    int suma = 0;
    for (b = 1; b <= a; b = b + 1)
    {
        cout << b << '^' << 3 << '=' << b * b * b << endl;
        suma+=b * b * b;
    }
    cout << "Suma poteg: "<< suma;
 
 
 
}

cpp.sh/5eusn

komentarz 8 października 2019 przez rel Początkujący (340 p.)
Dzięki za odpowiedź :)

Podobne pytania

0 głosów
1 odpowiedź 280 wizyt
pytanie zadane 5 stycznia 2020 w C i C++ przez Nabuchadonozor Gaduła (3,120 p.)
+2 głosów
2 odpowiedzi 774 wizyt
pytanie zadane 25 kwietnia 2022 w Java przez cfaniaczek Nowicjusz (200 p.)
0 głosów
1 odpowiedź 1,163 wizyt
pytanie zadane 29 października 2020 w Java przez stronek1899 Nowicjusz (160 p.)

93,715 zapytań

142,629 odpowiedzi

323,260 komentarzy

63,257 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...