Skocz do zawartości

[c++]Deklaracja parametrów funkcji


Kafi

Polecane posty

Witam wszystkich. Wczoraj wymyśliłem sobie, że zacznę uczyć się programowania a co tam :) Jakbym miał mało zajęcia w pracy, w prowadzeniu własnej firmy i zajmowaniu się dziećmi to jeszcze sobie to programowanie wymyśliłem hehe. No więc jak pomyślałem tak zrobiłem i od kilku minut ślęczę nad jakimś kursem C++. Niestety jestem osobą robiącą problemy z niczego i szukającą dziury w całym więc już mam pierwsze wątpliwości. I tak po tym przydługim wstępie dochodzę do sedna sprawy. Mamy taki oto listing:

 

CODE#include <iostream>

#include <conio.h>

 

int Add (int x, int y)

{

std::cout << "Funkcja Add() otrzymala " << x << " oraz " << y << "\n";

return (x+y);

}

 

int main()

{

using namespace std;

 

cout << "Jestem wewnatrz funkcji main()! \n";

int a, b, c;

cout << "Wpisz dwie liczby oddzielajac je spacja a nastepnie nacisnij enter: ";

cin >> a;

cin >> b;

cout << "Wywoluje funkcje Add()\n";

c=Add(a,B);

cout << "Ponownie jestesmy w funkcji main().\n";

cout << "Suma podanych liczb to: " << c << "\n";

cout << "Opuszczam program!\n";

getch();

return 0;

}

 

Działa zgodnie z zamierzeniami ale... parametry funkcji Add to (int x, int y) natomiast te same parametry w funkcji main oznaczone są jako a,b i suma jako c. Dla mnie logiczniejszym byłoby identyczne oznaczenie parametrów w całym programie, wtedy program wyglądałby np. tak:

 

CODE#include <iostream>

#include <conio.h>

 

int Add (int x, int y)

{

std::cout << "Funkcja Add() otrzymala " << x << " oraz " << y << "\n";

return (x+y);

}

 

int main()

{

using namespace std;

 

cout << "Jestem wewnatrz funkcji main()! \n";

int x, y, z;

cout << "Wpisz dwie liczby oddzielajac je spacja a nastepnie nacisnij enter: ";

cin >> x;

cin >> y;

cout << "Wywoluje funkcje Add()\n";

z=Add(x,y);

cout << "Ponownie jestesmy w funkcji main().\n";

cout << "Suma podanych liczb to: " << z << "\n";

cout << "Opuszczam program!\n";

getch();

return 0;

}

 

 

Który z powyższych litingów jest, że tak napiszę, bardziej poprawny? I dlaczego? A może to kompletnie nie ma żadnej różnicy?

Link do komentarza
Udostępnij na innych stronach

:) To kompletnie nie ma żadnej różnicy :]

 

To, że funkcja Add przyjmuje 2 parametry "x" i "y" to znaczy, że to są przykładowe nazwy tychże parametrów.

Równie dobrze mogło to być Add(int param_one, int param_two)

Ciebie powinien obchodzić jedynie typ przyjmowanych parametrów (tu akurat int = integer ;] = liczby całkowite).

 

:] Pozdrawiam.

Prawdziwy programista wiesza sie wraz ze swoim programem.

Link do komentarza
Udostępnij na innych stronach

:) To kompletnie nie ma żadnej różnicy :]

 

To, że funkcja Add przyjmuje 2 parametry "x" i "y" to znaczy, że to są przykładowe nazwy tychże parametrów.

Równie dobrze mogło to być Add(int param_one, int param_two)

Ciebie powinien obchodzić jedynie typ przyjmowanych parametrów (tu akurat int = integer ;] = liczby całkowite).

 

:] Pozdrawiam.

 

 

No tak to prawda, że nazwa parametru funkcji może być dowolna ja się tylko zastanawiam czy te nazwy nie powinny się pokrywać zarówno w funkcji Add() jak i w funkcji main().

 

A skoro już takimi bzdurami tutaj głowę zawracam to jeszcze jedno pytanie. Które z poleceń lepiej używać do zatrzymania działania programu?

 

- system ("PAUSE");

- getch();

- getchar();

Link do komentarza
Udostępnij na innych stronach

  • 3 months later...

te nazwy nie muszą się pokrywać...

 

używaj: system ("PAUSE");

 

Pozdrawiam!

Ahem, nie używaj system ("PAUSE"); - nie ma powodu, żeby do czegoś tak trywialnego jak zatrzymanie wykonywania programu (które, jeżeli chodzi o utrzymanie okna konsoli po wykonaniu programu - powinno być wykonywane przez Twoje IDE, np NetBeans robi to automatycznie) używać wyjścia najmniej przenośnego. Taki kod na skompilowany pod linuksem już nie zadziała tak jak chcesz. Użyj na przykład std::cin.get() z <iostream> albo getchar() czy fgetc() z <cstdio> - te zadziałają tak samo na każdym systemie operacyjnym bez jakichkolwiek ingerencji w kod. No i (co jednak najmniej istotne) będą szybsze.

 

Jeśli chodzi o problem z nazewnictwem zmiennych, nazywaj je tak, abyś czytając listing po miesiącu orientował się o co chodzi - x,y,z to takie mało mówiące nazwy. ilosc_kredek, pudelko - to już o czymś mówi. ;)

Zmienne podawane jako argumenty funkcji nie muszą się tak samo nazywać i czy tak jest - to kompletnie nieistotne, istotne jest raczej to, czy są dobrze nazwane.

 

Jeżeli Twój kurs w części dla troszkę bardziej zaawansowanych ciągle poleca używanie system ("PAUSE"); i using namespace std; czy (o zgrozo) <conio.h> - to nie jest to zbyt dobry kurs.

Link do komentarza
Udostępnij na innych stronach

Zarchiwizowany

Ten temat jest archiwizowany i nie można dodawać nowych odpowiedzi.

×
×
  • Utwórz nowe...