kamil3d
(Kamil I 2006)
28 Kwiecień 2007 14:24
#1
Witam. Zacząłem uczyć sie C++. Napisałem sobie kalkulator, którego kod wygląda tak:
#include
#include
int main()
{
float fLiczba1;
std::cout<<"Podaj pierwsza liczbe: ";
std::cin >> fLiczba1;
float fLiczba2;
std::cout<<"Podaj druga liczbe: ";
std::cin >> fLiczba2;
std::cout << std::endl;
int nOpcja;
std::cout << "| ************************* |" << std::endl;
std::cout << "| Wybierz dzialanie: |" << std::endl;
std::cout << "| 1. Dodawanie |" << std::endl;
std::cout << "| 2. Odejmowanie |" << std::endl;
std::cout << "| 3. Mnozenie |" << std::endl;
std::cout << "| 4. Dzielenie |" << std::endl;
std::cout << "| ************************* |" << std::endl;
std::cout << "| 0. Wyjscie |" << std::endl;
std::cout << "| ************************* |" << std::endl;
std::cout << std::endl;
std::cout << "Twoj wybor: ";
std::cin >> nOpcja;
switch(nOpcja)
{
case 1: std::cout << fLiczba1 << " + " << fLiczba2 << " = " << fLiczba1 + fLiczba2 << std::endl; break;
case 2: std::cout << fLiczba1 << " - " << fLiczba2 << " = " << fLiczba1 - fLiczba2 << std::endl; break;
case 3: std::cout << fLiczba1 << " * " << fLiczba2 << " = " << fLiczba1 * fLiczba2 << std::endl; break;
case 4:
if (fLiczba2 == 0.0)
std::cout << "Dzielnik nie moze byc rowny zeru!" <
else
std::cout << fLiczba1 << " / " << fLiczba2 << " = " << fLiczba1 / fLiczba2 << std::endl; break;
case 0: break;
default : std::cout << "Nie znana opcje!!!"; break;
}
getch();
}
Wszytko ładnie chodzi ale ja chce dodać do niego jeszcze kilka działań. Ale nie mam pojęcia jak zrobić by części kodu odpowiedzialna za prośbę o 2 liczby:
float fLiczba1;
std::cout<<"Podaj pierwsza liczbe: ";
std::cin >> fLiczba1;
float fLiczba2;
std::cout<<"Podaj druga liczbe: ";
std::cin >> fLiczba2;
była w oddzielnej funkcji. Jak ją zadeklarować na początku, najlepiej proszę o kod całej tej funkcji, bo jak dostane cześć jego to mogę nie załapać o co chodzi, bo jestem bardzo początkującym. Z góry wielkie dzięki.
Ryan
(Ryan)
28 Kwiecień 2007 14:42
#2
Najpierw kilka błędów.
Póki co jednak dla Twojej wygody zmienię jak najmniej i nie wywalę conio. Nie poprawię też potencjalnych problemów z przepełnieniem arytmetycznym.
#include
#include
void GetValues(float *a, float *b)
{
std::cout<<"Podaj pierwsza liczbe: ";
std::cin >> *a;
std::cout<<"Podaj druga liczbe: ";
std::cin >> *b;
std::cout << std::endl;
}
int main()
{
float fLiczba1, fLiczba2;
GetValues(&fLiczba1, &fLiczba2);
int nOpcja;
std::cout << "| ************************* |" << std::endl;
std::cout << "| Wybierz dzialanie: |" << std::endl;
std::cout << "| 1. Dodawanie |" << std::endl;
std::cout << "| 2. Odejmowanie |" << std::endl;
std::cout << "| 3. Mnozenie |" << std::endl;
std::cout << "| 4. Dzielenie |" << std::endl;
std::cout << "| ************************* |" << std::endl;
std::cout << "| 0. Wyjscie |" << std::endl;
std::cout << "| ************************* |" << std::endl;
std::cout << std::endl;
std::cout << "Twoj wybor: ";
std::cin >> nOpcja;
switch(nOpcja)
{
case 1: std::cout << fLiczba1 << " + " << fLiczba2 << " = " << fLiczba1 + fLiczba2 << std::endl; break;
case 2: std::cout << fLiczba1 << " - " << fLiczba2 << " = " << fLiczba1 - fLiczba2 << std::endl; break;
case 3: std::cout << fLiczba1 << " * " << fLiczba2 << " = " << fLiczba1 * fLiczba2 << std::endl; break;
case 4:
if (fLiczba2 == 0.0)
std::cout << "Dzielnik nie moze byc rowny zeru!" <
else
std::cout << fLiczba1 << " / " << fLiczba2 << " = " << fLiczba1 / fLiczba2 << std::endl; break;
case 0: break;
default : std::cout << "Nie znana opcje!"; break;
}
getch();
}
kamil3d
(Kamil I 2006)
28 Kwiecień 2007 14:54
#3
Wielkie dzięki.
Wszystko pięknie działa. Używam Dev-C++, a jakie to środowisko to nie mam pojęcia. Kożystam z 'Od zera do gier kodera" może to cos podpowie.
Mam małe pytanie czy ta funkcja może nazywać sie inaczej a nie “GetValues”
Ryan
(Ryan)
28 Kwiecień 2007 15:03
#4
Dev-C++ to właśnie środowisko uruchomieniowe. Kompilator to w takim razie najprawdopodobniej MinGW.
Każda funkcja może się nazywać jak bądź (poza główną funkcją programu, która - zależnie od przypadku - powinna nazywać się main, Main, _main, wmain, _wmain lub podobnie).
środowisko, to właśnie Dev-C++ a kompilator to GCC.
oczywiście.
Ryan
(Ryan)
28 Kwiecień 2007 15:08
#6
Jeszcze taka drobnostka - programowanie nie polega na zadawaniu pytań tylko na programowaniu. (odkrywcze…) Zamiast o to zapytać wystarczyło zmienić nazwę i spróbować samemu. Więcej się nauczysz eksperymentując niż szukając po sieci odpowiedzi.
Radek255
(Fryta255)
16 Kwiecień 2009 19:23
#7
Podepne sie pod temat zeby nie zakladac nowego.
float z1,z2,z3;
z1=0,5;
z2=8;
z3=z1*z2;
printf("%f",z3);
Dlaczego ten kod w wyniku zwraca 0.00000?
Korzystam z Dev-C++
somekind
(somekind)
16 Kwiecień 2009 19:32
#8
Bo separatorem dziesiętnym jest kropka, a nie przecinek?
Natomiast użycie operatora przecinka w takim miejscu jest raczej bez sensu, ma on zastosowanie raczej tylko w pętli for.