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

Problem z pętlą for

0 głosów
60 wizyt
pytanie zadane 5 dni temu w C i C++ przez rel Nowicjusz (150 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ź 5 dni temu przez radek024 Maniak (66,620 p.)
wybrane 5 dni temu 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 5 dni temu przez rel Nowicjusz (150 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 5 dni temu przez radek024 Maniak (66,620 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 5 dni temu przez rel Nowicjusz (150 p.)
Dzięki wielkie, za wyczerpującą odpowiedź, teraz już rozumiem :)

Najlepsza odpowiedź za to, że chciało Ci się tłumaczyć :)
komentarz 5 dni temu przez _Tottis_ 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 5 dni temu przez rel Nowicjusz (150 p.)
Też myślałem w tym kierunku, ale dobrze mieć jasne wytłumaczenie, dzięki :)
+1 głos
odpowiedź 5 dni temu przez tkz Dyskutant (8,160 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 5 dni temu przez rel Nowicjusz (150 p.)
Dzięki za odpowiedź :)

Podobne pytania

0 głosów
3 odpowiedzi 10,861 wizyt
pytanie zadane 22 kwietnia 2015 w C i C++ przez falauthy Stary wyjadacz (11,620 p.)
0 głosów
2 odpowiedzi 108 wizyt
pytanie zadane 14 września w C i C++ przez Filip Rerek Nowicjusz (190 p.)
0 głosów
1 odpowiedź 885 wizyt
Porady nie od parady
Komentarze do pytań nie służą do odpowiadania, od tego jest wydzielona sekcja odpowiedzi. Funkcją komentarzy jest natomiast możliwość uzyskania dodatkowych informacji na temat samego posta.Komentarze

66,984 zapytań

113,890 odpowiedzi

241,331 komentarzy

46,940 pasjonatów

Przeglądających: 237
Pasjonatów: 14 Gości: 223

Motyw:

Akcja Pajacyk

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

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...