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

Wątpliwość co do poprawnego rozwiązania

Object Storage Arubacloud
+2 głosów
269 wizyt
pytanie zadane 23 lipca 2022 w C i C++ przez Wiktor Kiślak Użytkownik (610 p.)

Witam,

Podchodzę ponownie do nauki c++ , pierwszym celem jest przerobienie książki Język c++ autorstwa Stephena Praty.

Po zakończeniu rozdziału nr 2 napotkałem się z wykonaniem zadania:

Napisz program, który poprosi użytkownika o podanie liczby godzin i minut. Funkcja main() ma przekazać obie te wartości do funkcji typu void, która je wyświetli w formacie jak poniżej.

Podaj liczbe godzin:9

Podaj liczbe minut:28

Czas:9:28

      Zadanie wykonałem w następujący sposób: 

#include <iostream>

using namespace std;
void godzin(double a , double b) ;

int main()
{
    using namespace std ;

  cout << "Podaj Liczbe godzin: " ;
   double a;
   cin >> a ;
   double b ;
   cout << "Podaj liczbe minut: " ;
    ;
   cin >> b;

cout << "Twoja godzina to: " << a << ":" << b << endl;

    return 0;
}

Całość przyjmuje wartości, które są wymagana i oddaje poprawny wynik, jednak mam wątpliwości co do poprawności wykonanego zadania. Wydaje mi się, że "poprawny kod" powinien wyglądać tak jak poniżej, jednak nie wiem, w jaki sposób wprowadzić tutaj dwie zmienne zamiast jednej. 

#include <iostream>

using namespace std;
void godzin(int) ;

int main()
{
    using namespace std ;

  cout << "Podaj Liczbe godzin: " ;
   int count;
   cin >> count ;
   godzin(count) ;
   cout << "Podaj liczbe minut: " ;

   cin >> count;
   godzin(count) ;



    return 0;
}
void godzin(int n)

{
    using namespace std ;
    cout << "Twoja godzina to: " << n << ":" << n  << endl;
}

 

1 odpowiedź

+2 głosów
odpowiedź 23 lipca 2022 przez Wiciorny Ekspert (269,710 p.)
wybrane 23 lipca 2022 przez Wiktor Kiślak
 
Najlepsza

Wczytać -dane, do osobnych zmiennych i przekazac do funkcji dwie zmienne
 

void godzin(int zmienna1, int zmienna2)
 
{
    using namespace std ;
    cout << "Twoja godzina to: " << zmienna1 << ":" << zmienna2  << endl;
}
int zmienna1;
cin>>zmienna1;
int zmienna2;
cin>>zmienna2;

Niepotrzebnie wczytujesz to od razu do funkcji 

 godzin(count) ;

Całość
 

#include <iostream>
 
using namespace std;
void godzin(int,int) ;
 
int main()
{
    using namespace std ;
 
  cout << "Podaj Liczbe godzin: " ;
   int godz, minut;
   cin >> godz ;
   cout << "Podaj liczbe minut: " ;
   cin >> minut;
   godzin(godz,minut);
    return 0;
}
void godzin(int godz,int minut)
{
    using namespace std ;
    cout << "Twoja godzina to: " << godz << ":" << minut  << endl;
}

Wynik np 11:54

Więc twoje rozwiazanie jest poprawne o ile mozna by sie CZEPIC dlaczego double wartosci, nie wiem czy w ogole jest cos napisane o typie zmiennych np. ze maja byc calkowite

PK1:  poprosi użytkownika o podanie liczby godzin i minut - > spełnia twoje rozwiązanie
PK2: funkcja main ma przekazać argumenty do funkcji void  -> niespełnia, bo o ile zadanie jest trywialnie proste i mogłoby być rozwiązane odrazu z wczytywaniem, jednak autor wyraźnie prosi o dodatkową funkcje, więc 

void godzin(double a , double b) ; // jest void

twoje rozwiązanie jest dobre, ale nie spełnia warunku PK2 w zadaniu czyli dodatkowej funkcji  i przekazania w main argumentów do niej np

 godzin(godz,minut);


 

komentarz 23 lipca 2022 przez Wiciorny Ekspert (269,710 p.)
dlatego czytam książki po angielsku, tam jakoś to bardziej do mnie przemawia i nie zwracam uwagi tak na "słownictwo" jak ujmowane po polsku
Good to know.
komentarz 23 lipca 2022 przez SzkolnyAdmin Szeryf (86,360 p.)

@Wiciorny: akurat w angielskim istnieje wyraźne rozróżnienie pomiędzy amount (ilością) i number (liczbą).

komentarz 23 lipca 2022 przez Wiciorny Ekspert (269,710 p.)
dokładnie tak i tutaj od razu jest inne znaczenie natomiast dalej nie wiem skąd pojawił się temat ilości/ a liczby bo w wiele książek polskiego tłumaczenia ale akurat do Javy, które czytałem na studiach - pod hasłem liczba nie określały tylko typu całkowitego.

Tak dokładnie amout, nie dotyczy ilości jeśli nie jest związane z czymś, zwykle w książce mówiąc o ilości czegoś "zbiorowego" jest quantity, amount zwykle jest do  gotówek/cen.
komentarz 23 lipca 2022 przez SzkolnyAdmin Szeryf (86,360 p.)
Ale jeżeli czas ma być wyświetlany w formacie 12:34 to zarówno liczba godzin i minut to liczby całkowite i nie ma co się bawić w większe typy liczbowe,
komentarz 24 lipca 2022 przez TOWaD Mądrala (5,700 p.)

O ile dobrze pamiętam to

void godzin(int wolalbym_miec_bardziej_rozgadany_kompilator ,int /*niż milczący*/) 

 

Podobne pytania

0 głosów
1 odpowiedź 459 wizyt
0 głosów
2 odpowiedzi 886 wizyt
0 głosów
3 odpowiedzi 438 wizyt
pytanie zadane 1 czerwca 2017 w C i C++ przez Postal192 Początkujący (270 p.)

92,551 zapytań

141,399 odpowiedzi

319,529 komentarzy

61,936 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!

...