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

Wyjaśnienie kodu w c++

Object Storage Arubacloud
0 głosów
799 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,690 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,690 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,570 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ź 418 wizyt
pytanie zadane 25 września 2016 w C i C++ przez AlanP Nowicjusz (240 p.)
0 głosów
1 odpowiedź 181 wizyt
pytanie zadane 9 października 2016 w PHP przez tirith Mądrala (5,940 p.)
0 głosów
1 odpowiedź 367 wizyt
pytanie zadane 4 listopada 2016 w C i C++ przez Emil Panecki Bywalec (2,100 p.)

92,547 zapytań

141,390 odpowiedzi

319,509 komentarzy

61,931 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.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...