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

Wyjaśnienie kodu w c++

0 głosów
571 wizyt
pytanie zadane 16 lutego 2017 w C i C++ przez admaj1212 Początkujący (320 p.)

Ucze się programowania. Jestem w dziale funkcje i nie mogę zrozumieć tego kodu. Czy mógłby ktoś w skrócie go opisać.

#include <iostream>

using namespace std;

int potega(int stopien,long liczba);
//***************************************************************************************
int main()
{
    int pocz, koniec;
    cout << "Potęgowanie liczb:" << endl;
    cout<<"Podaj poczatek przedzialu: "<<endl;
    cin>>pocz;
     cout<<"Podaj koniec przedzialu: "<<endl;
    cin>>koniec;

    for(int i=pocz;i<=koniec;i++)
    {
        cout<<i
        <<"do kwadratu="
        <<potega(2,i)
        <<"a do szescianu"
        <<potega(3,i)
        <<endl;
    }
    return 0;
}
//***************************************************************************************
int potega(int stopien,long liczba)
{
    long wynik=liczba;
    for(int i=1;i<stopien;i++)
    {
        wynik=wynik*liczba;
    }
    return wynik;
}

 

komentarz 16 lutego 2017 przez mtk3d Nałogowiec (46,770 p.)
Której części konkretnie nie rozumiesz?
komentarz 16 lutego 2017 przez admaj1212 Początkujący (320 p.)

 
#include <iostream>
 
using namespace std;
 
int potega(int stopien,long liczba);
//***************************************************************************************
int main()
{
    int pocz, koniec;
    cout << "Potęgowanie liczb:" << endl;
    cout<<"Podaj poczatek przedzialu: "<<endl;
    cin>>pocz;
     cout<<"Podaj koniec przedzialu: "<<endl;
    cin>>koniec;
 
    for(int i=pocz;i<=koniec;i++)
    {
        cout<<i
        <<"do kwadratu="
        <<potega(2,i)
        <<"a do szescianu"
        <<potega(3,i)
        <<endl;
    }
    return 0;
}
//***************************************************************************************
int potega(int stopien,long liczba)
{
    long wynik=liczba;     //dlaczego wynik=liczba?
    for(int i=1;i<stopien;i++)  
    {
        wynik=wynik*liczba;      //dlaczego wynik=wynik*liczba??
    }
    return wynik;
}

 

komentarz 16 lutego 2017 przez mtk3d Nałogowiec (46,770 p.)
Podstawmy sobie jakieś wartości.

stopien = 2
liczba = 2

zmienna wynik przyjmuje wartość liczba, czyli 2

wynik = 2

pętla sprawdza warunek i<stopien, stopien=2, a i=1, 1<2, więc pętla się wykonuje

wynik = 2
i = 1

do zmiennej wynik, jest przypisane działanie wynik razy liczba, czyli 2*2

wynik = 4
i = 2

teraz pętla sprawdza, i<liczba, czyli 2<2, co zwraca fałsz, więc pętla zostaje przerwana

funkcja zwraca wynik

Mam nadzieję, że pomoże ci to w zrozumieniu działania.
komentarz 16 lutego 2017 przez admaj1212 Początkujący (320 p.)

Dzięki wielkie już zrozumiałem ! laugh

1 odpowiedź

0 głosów
odpowiedź 16 lutego 2017 przez Adrian1999 Nałogowiec (34,530 p.)
#include <iostream> // dodajemy podstawowa biblioteke pozwalajaca korzystac z cout, endl etc
 
using namespace std; // Uzywamy przestrzeni nazw, zeby nie pisac w kazdej z funkcji iostream std::cout<< 
 
int potega(int stopien,long liczba);  // informujemy program ze istnieje funkcja ktora ma dwa argumenty, calkowity, i duza calkowita wartosc
//***************************************************************************************
int main()
{
    int pocz, koniec; // definiujemy zmienne wewnatrz funkcji
    cout << "Potęgowanie liczb:" << endl;
    cout<<"Podaj poczatek przedzialu: "<<endl;
    cin>>pocz; // wpisujemy poczatek przedzialu
     cout<<"Podaj koniec przedzialu: "<<endl;
    cin>>koniec; // wpisujemy koniec przedzialu
 // petla ktora wykonuje potegowanie liczb z podanych przedzialow, z podana przez nas potega liczba 
    for(int i=pocz;i<=koniec;i++)
    {
        cout<<i
        <<"do kwadratu="
        <<potega(2,i) // potega(x,y), np x= 2 a y = 3 , jest to równe 2 do potęgi 3 
        <<"a do szescianu"
        <<potega(3,i)
        <<endl;
    }
    return 0;
}
//***************************************************************************************
int potega(int stopien,long liczba) //funkcja wykonuje dane dzialanie
{
    long wynik=liczba;
    for(int i=1;i<stopien;i++)
    {
        wynik=wynik*liczba;
    }
    return wynik;
}

Nie wiem czy wystarczająco wytłumaczyłem, ciężko to jakoś wyłumaczyć gdy język matematyczny leży

komentarz 17 lutego 2017 przez Krupenz Początkujący (360 p.)

    <<potega(2,i) // potega(x,y), np x= 2 a y = 3 , jest to równe 2 do potęgi 3

Tak tylko poprawię... myślę że zamieniłeś liczby. IMO to jest 3 do potęgi 2. a nie odwrotnie :P 

Podobne pytania

+1 głos
1 odpowiedź 313 wizyt
pytanie zadane 25 września 2016 w C i C++ przez AlanP Nowicjusz (240 p.)
0 głosów
1 odpowiedź 151 wizyt
pytanie zadane 9 października 2016 w PHP przez tirith Mądrala (5,880 p.)
0 głosów
1 odpowiedź 244 wizyt
pytanie zadane 4 listopada 2016 w C i C++ przez Emil Panecki Bywalec (2,100 p.)

88,325 zapytań

136,919 odpowiedzi

305,555 komentarzy

58,598 pasjonatów

Motyw:

Akcja Pajacyk

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

Sklep oferujący ćwiczenia JavaScript, PHP, rozmowy rekrutacyjne dla programistów i inne materiały

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

...