Oto wymęczony przeze mnie (i tak z pomocą) kalkulator. Są w nim jednak pewne niedociągnięcia. Mianowicie, chciałbym, żeby te wszystkie (wybaczcie brak fachowych pojęć) int nLiczba zamienić na float fLiczba - wiadomo, w celu większej dokładności. Jednak MS Visual C++ po przekompilowaniu wyrzuca mi wtedy błąd (gdy mam wpisane wszędzie float fLiczba): “switch expression of type “float” i illegal” <<< jak to zmienić?
Tak poza tym, to nie jestem pewien konieczności tych wszystkich nawiasów klamrowych w każdym “case”. To by było chyba na tyle.
Co do nawiasów klamrowych są dobrze, ale brakuje ci break przed końcem każdej opcji. Ew możesz se je odpuścić razem z break, jeśli nie masz niespodziewanych dodatkowych linii etc.
Jest OK, wszystko pięknie działa, ale od kiedy to np. 12 / 8 = 1 ? Właśnie o tą dokładność mi chodzi, żeby pokazywał liczby po przecinku, ale kiedy zmieniam na float fLiczba, to wyskakuje mi wyżej podany błąd.
Powinno być int main(), a na końcu funkcji return 0;
Zmienne nLiczba1 i nLiczba2 jak najbardziej mogą być typu zmiennoprzecinkowego (float, double lub long double), natomiast zmienna nOpcja musi być typu całkowitoliczbowego, zacytowany komunikat wskazuje na to, że z rozpędu zmieniłeś typ wszystkich zmiennych.
Klamry wydają mi się zbędne, ale to raczej nie ma znaczenia (w tym przypadku)
Ogólnie kod można by zrealizować lepiej, oddzielić obliczenia od wyświetlania, bo w obecnym powtarzasz bardzo dużo kodu i wszelka modyfikacja jest trudna. Raczej radziłbym zrobić coś w stylu
float wynik; // jeśli chcesz typ float
switch(opcja) {
case 1: wynik = op1 + op2; break;
...
}
Niczym i najpierw uruchomić konsolę, a dopiero później z jej poziomu program - ja tak robię.
Jeśli używając biblioteki iostream:
#include
cin.sync();
cin.get()
O ile robisz programy tylko dla siebie, edukacyjnie, to takie obejście problemu może ujść, ale w szerszym ujęciu, szczególnie jeśli program miałby być przenośny, to jest to złe rozwiązanie.
Dla siebie. Właściwie, to dopiero od kilku dni zacząłem to kapować - dzięki temu wielkiemu tutorialowi “Od zera do gier kodera” i z pomocą strony www.cplusplus.com bodajże. Wcześniejsza lektura - ABC Programowania w C++ - wydawnictwa HELION na nic mi się zdała. No może pamiętam tylko tyle, że jak chce coś wyrzucić na ekran to zamiast cout można użyć printf. Tylko tyle