[C++] Funkcja podawania czasu


(Ziomek Zemsty) #1
#include 

using namespace std;

void czas(int);

int minuta();

int godzina();


int main()

{

	int godzina;

	cout << "Podaj liczbe godzin: " << endl;

	cin >> godzina;


	int minuta;

	cout << "Podaj liczbe minut: " << endl;

	cin >> minuta;


	int czas;

	cout << "Czas: " << godzina << ":" << minuta << endl;


	cin.sync();

	cin.get();

	return 0;

}

Oto wymęczony przeze mnie program. Nie jest on do końca taki, jak bym chciał. Mianowicie w zadaniu chodzi o to, żeby funkcja main() przekazała wartości (godziny i minuty) do funkcji typu void.

Drugim problemem, z którym nie mogę sobie porazić, jest ograniczenie liczby godzin do 23 i minut do 59.

Uczę się dla siebie i każda pomoc będzie mile widziana. :smiley:


(Razi) #2

Argumenty przekazujesz w nawiasach. Funkcja musi oczywiście w sygnaturze być przygotowana na takie argumenty. W twoim kodzie predeklarujes 3 funkcje, ale ich nie definiujesz.

Skoro opierasz się na książce (opieram sie na twojej sygnaturce), to czytaj dalej, na pewno się dowiesz, nie ma co wybiegać w przód. W C++ nie ma żadnego "gotowego" sposobu na ograniczenie wielkości podanej liczby. Musisz użyć pętli WHILE lub DO WHILE, ewentualnie jeśli program ma nie wybaczać błędu, to wystarczy IF.

cin.sync();

   cin.get();

Tak w tej książce którą czytasz tak napisali? Nareszcie jakaś która nie każe conio, ani system("pause") używać


(system) #3

Wydaje mi się, że masz problem z wczytywaniem danych do funkcji :

void czas(int godzina, int minuta){

       ...............

}

Tak, jak poprzednik napisał możesz użyć while, do while lub po prostu if'a przykład :

while (minuta > 59 || minuta < 0){

     cout << "Podaj liczbe minut: " << endl;

     cin >> minuta;

}

|| - oznacza "lub" czyli alternatywa logiczna, jest prawdziwa gdy przynajmniej jeden warunek spełnia wytyczne. Na przykładzie, jeżeli podamy minut 60 to pętla wykona się ponownie, tłumacząc na polski while (minuta > 59 || minuta < 0) oznacza dopóki minuta większa od 59 LUB mniejsza od 0 (wykonaj zawarty kod) jeżeli podamy - 1 warunek zgadza się z minuta < 0 czyli alternatywa jest prawdziwa i wykonuje się zawarty kod. Jeżeli natomiast podamy 45 oba warunki są fałszywe i pętla while nie zostanie wykonana ponownie. Najlepiej samemu to przetestować to na pewno zrozumiesz.