#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.
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ć
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.