Może mi ktoś opisać co robi każda z lini
dam naj!!

#include <cstdlib>
#include <iostream>

using namespace std;
int obwod (int a, int b)
{
return (a+b)*2;
}
int obwod (int a)
{
return (4*a);
}

int main()
{
int a, b, i;
cout << "Wcisnij 1 aby obliczyc obwod prostokata"<< endl;
cout << "Wcisnij 2 aby obliczyc obwod kwadratu" << endl;
cin >> i;

if (i==1)
{
cout << "Podaj dlugosc pierwszego boku: " << endl;
cin >> a;
cout << "Podaj dlugosc drugiego boku: " << endl;
cin >> b;
cout << "Obwod prostokata wynosi: " << obwod (a,b);
}
if (i==2)
{
cout << "Podaj dlugosc boku: " << endl;
cin >> a;
cout << "Obwod kwadratu wynosi: " << obwod (a) << endl;
}
system("PAUSE");
return 0;
}

2

Odpowiedzi

Najlepsza Odpowiedź!
  • CCCP
  • Rozwiązujący
2011-09-12T20:32:04+02:00

Skomentowany kod znajduje się pod linkiem: http://wklej.org/id/593145/

 

1 5 1
2011-09-12T20:48:13+02:00

Pierwsze 2 linijki (te co na początku mają #Include) włączają do progrmau biblioteki systemowe - bez nich nic nie zrobisz, więc one muszą być

 

Kolejna linijka (using namespace std;) oszczędza ci pisania. Gdyby jej nie było zmaiast cout musiałbyś pisać std::cout za każdym razem. Jest to tzw. przestrzeń nazw

 

Teraz przeskoczmy parę linijek ( o nich zaraz) do miejsca w ktorym jest int main

Jest to funkcja glówna programu - jest to kręgosłup całego programu. Wszystko co jest pomiędzy nawiasami klamrowymi do niej należy, czyli funkcja ta zaczyna się od nawiasu klamrowego poniżej int main do nawiasu klamrowego na samym dole.

 

Teraz co w tej funkcji jest:

 

int a, b, i;

Jest to tzw. deklaracja (a w tym przypadku i definicja zmiennych). Zmienna to taki pojemnik na dane (liczby, znaki etc.). Przy deklaracji zmiennej należy podać jej typ (w tym przypadku int - czyli pojemnik nal iczby całkowite) oraz jej nazwę (może być kilka zmiennych wymienionych po przecinku tak jak w tym przypadku)

 

instrukcja cout << "costamcostam" <<endl;

Wyswietla tekst, ktory znajduje sie w cudzyslowie; endl oznacza przejscie do nast. linijki

 

cin >> i

 

Program będzie czekał aż użytkownik wprowadzi jakąś liczbę cąłkowitą z klawiatury i wrzuci tą liczbę do zmiennej (pojemnika na dane) i

 

następnie mamy instrukcję warunkową if

 

Czyli Jeśli (IF) warunek w nawiasie (w tym przypadku jeśli liczba w zmiennej i jest równa 1) jest spełniony to wykonywany jest kod z nawiasów klamrowych, jeśli nie program ten kod pomija

 

Jeśli ta zmienna będzie = 1, to program poprosi (wyswietli na ekran prosbe) o wczytanie z klawiatury liczb do zmiennych a i b (cin >>a; cin >> b), po czym wyswietli "Obwod prostokata wynosi" i wywoła funkcję obwod z dwoma argumentami (a i b).

 

Funkcja jest to tkai podprogram, ktory może robić cokolwiek. Deklaracja funkcji jest taka:

typ zwracanego rezultatu nazwa (argument, argument).

 

Co to oznacza:

 

gdy program napotka na kod obwod(a,b) przeskoczy na gorę do miejsca gdzie jest int obwod(int a, int b). Funkcja przyjmuje za argumenty 2 zmienne typu int (czlyi potrzebuje do działania 2 zmiennych typu int) i właśnie tak ją wywołujemy, bo a i b to zmienne int

 

Wywolanie funkcji to podanie jej nazwy wraz z opdowiendimi argumentami w nawiasie.

 

W samej funkcji obwod jest tylko instrukcja return (a+b)*2;

 

Oznacza to, że funkcja zwróci sumę zmiennych a i b pomnozoną przez 2.

Co znaci zwróci?

To jest tak jakby w miejsce wywolania funkcji wpisac to co stoi przy instrukcji return, czlyi jesli np. a = 2, b=3, to wyswietli sie liczba 10 (bo (2+3)*2

 

analogicznie wygląda sytuacja z drugim if'em

 

system("PAUSE"); oznacza, ze program czeka az uzytkownik nacisnie dowolny przycisk na klawie

 

return 0 - funkcja main też jest funkcją, a ma zwracać typ int, czyli liczbę całkowitą - komu zwracą tą liczbę jak program się kończy? Systemowi operacyjnemu. Jeśli zwroci 0, to oznacza, ze program działa poprawnie, aczkolwiek wyjątkowo przy funkcji main instrukcja return nie jest wymagana i rownie dobrzse moglo by jej nie byc

 

Jak masz jakies pytania, to pisz ;)

2 5 2