Na pewno zacznij od formatowania kodu.
#include <iostream>
#include <ostream>
#include <cmath>
#include <conio.h>
using namespace std;
char wybor;
int main()
{
double a, b, wynik;
int dzialanie;
for (;;)
{
cout << " MENU GLOWNE" << endl;
cout << "-----------------" << endl;
cout << "0. Wyjscie" << endl;
cout << "1. Dodawanie" << endl;
cout << "2. Odejmowanie" << endl;
cout << "3. Mnozenie" << endl;
cout << "4. Dzielenie" << endl;
cout << "5. Pierwiastkowanie" << endl;
cout << "6. Potegowanie" << endl;
cout << endl << "Wybierz[0-6] ";
wybor = getch();
switch (wybor)
{
case '1':
system("cls");
cout << "======[Dodawanie]======" << endl;
cout << endl << "Podaj 1 liczbe: ";
cin >> a;
cout << "Podaj 2 liczbe: ";
cin >> b;
cout << endl << " Suma= " << a + b;
break;
case '2':
system("cls");
cout << "======[Odejmowanie]======" << endl;
cout << endl << "Podaj 1 liczbe: ";
cin >> a;
cout << "Podaj 2 liczbe: ";
cin >> b;
cout << endl << " Roznica= " << a - b;
break;
case '3':
system("cls");
cout << "======[Mnozenie]======" << endl;
cout << endl << "Podaj 1 liczbe: ";
cin >> a;
cout << "Podaj 2 liczbe: ";
cin >> b;
cout << endl << " Iloczyn= " << a * b;
break;
case '4':
system("cls");
cout << "======[Dzielenie]======" << endl;
cout << endl << "Podaj 1 liczbe: ";
cin >> a;
cout << "Podaj 2 liczbe: ";
cin >> b;
if (b == 0)
cout << "Nie dzielimy przez 0!" << endl;
else
cout << endl << " Iloraz= " << a / b;
break;
case '5':
system("cls");
cout << "======[Pierwiastkowanie]======" << endl;
cout << endl << "Podaj stopien pierwiastka: ";
cin >> b;
cout << "Podaj liczbe do spierwiastkowania: ";
cin >> a;
if (b > 0)
cout << endl << " Wynik= " << pow(a, (1 / b));
else
cout << endl << "Nie pierwiastkujemy przez 0!" << endl;
break;
case '6':
system("cls");
cout << "======[Potegowanie]======" << endl;
cout << endl << "Podaj liczbe ktora bedzie potegowana: ";
cin >> a;
cout << "Podaj stopien potegi: ";
cin >> b;
cout << endl << " Wynik= " << pow(a, b) << endl;
break;
default:
cout << endl << "Koniec programu." << endl;
exit(0);
}
getchar();
getchar();
system("cls");
}
return 0;
}
Następnie usuń namespace, przynajmniej globalnie.
Dlaczego? W przyszłości możesz korzystać z biblioteki, która zawiera dajmy na to funkcję pow. Przy globalnej przestrzeni nazw kompilator nie wie, która funkcja jest tą poprawną, bo obie noszą tą samą nazwę. Wiec po to jest prefiks std::pow i pow(z innej biblioteki). Nie wiem czy dość jasno, w razie wątpliwości na Stacku jest fajnie wytłumaczone.
Zmienne globalne. Temat raczej dość... trzeba być ostrożnym. Raczej nie powinieneś ich używać bez dobrego uzasadnienia. Przenoś do zasięgu lokalnego main'na.
Warto pozbyć się również nagłówków, które nie są przenośne. Co za tym idzie, usuwamy conio.h. Tutaj zaczynają się schody. Najprostsza odpowiedz: nie da się, ale możesz za to użyć dwóch możliwości, przynajmniej mi znanych. Ta łatwiejsza, użyć curses, albo ta mniej łatwa, użyć #ifdef _WIN32 i tak dalej. Akurat tego nie będę podawał, bo mi się nie chce, za to odsyłam tutaj https://stackoverflow.com/questions/1714245/difference-between-if-definedwin32-and-ifdefwin32
Masz zmienną, której nie używasz
int dzialanie;
Możesz usunąć, ale moim zdaniem lepiej będzie zamienić chara na inta.
#include <iostream>
#include <ostream>
#include <cmath>
#include <conio.h>
int main()
{
double a, b, wynik;
int dzialanie;
for (;;)
{
std::cout << " MENU GLOWNE" << std::endl;
std::cout << "-----------------" << std::endl;
std::cout << "0. Wyjscie" << 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 << "5. Pierwiastkowanie" << std::endl;
std::cout << "6. Potegowanie" << std::endl;
std::cout << std::endl << "Wybierz[0-6] ";
std::cin>>wybor;
switch (wybor)
{
case 1:
system("cls");
std::cout << "======[Dodawanie]======" << std::endl;
std::cout << std::endl << "Podaj 1 liczbe: ";
std::cin >> a;
std::cout << "Podaj 2 liczbe: ";
std::cin >> b;
std::cout << std::endl << " Suma= " << a + b;
break;
case 2:
system("cls");
std::cout << "======[Odejmowanie]======" << std::endl;
std::cout << std::endl << "Podaj 1 liczbe: ";
std::cin >> a;
std::cout << "Podaj 2 liczbe: ";
std::cin >> b;
std::cout << std::endl << " Roznica= " << a - b;
break;
case 3:
system("cls");
std::cout << "======[Mnozenie]======" << std::endl;
std::cout << std::endl << "Podaj 1 liczbe: ";
std::cin >> a;
std::cout << "Podaj 2 liczbe: ";
std::cin >> b;
std::cout << std::endl << " Iloczyn= " << a * b;
break;
case 4:
system("cls");
std::cout << "======[Dzielenie]======" << endl;
std::cout << endl << "Podaj 1 liczbe: ";
std::cin >> a;
std::cout << "Podaj 2 liczbe: ";
std::cin >> b;
if (b == 0)
std::cout << "Nie dzielimy przez 0!" << std::endl;
else
std::cout << std::endl << " Iloraz= " << a / b;
break;
case 5:
system("cls");
std::cout << "======[Pierwiastkowanie]======" << std::endl;
std::cout << std::endl << "Podaj stopien pierwiastka: ";
std::cin >> b;
std::cout << "Podaj liczbe do spierwiastkowania: ";
std::cin >> a;
if (b > 0)
std::cout << std::endl << " Wynik= " << std::pow(a, (1 / b));
else
std::cout << std::endl << "Nie pierwiastkujemy przez 0!" << std::endl;
break;
case 6:
system("cls");
std::cout << "======[Potegowanie]======" << std::endl;
std::cout << std::endl << "Podaj liczbe ktora bedzie potegowana: ";
std::cin >> a;
std::cout << "Podaj stopien potegi: ";
std::cin >> b;
std::cout << std::endl << " Wynik= " << std::pow(a, b) << std::endl;
break;
default:
std::cout << std::endl << "Koniec programu." << std::endl;
exit(0);
}
getchar();
getchar();
system("cls");
}
return 0;
}
Warto też będzie zamienić endla na \n, chyba, że potrafisz uzasadnić użycie endla.
Dodatkowo używaj klamerek przy casach, porządkujesz kod i zawężasz zasięg zmiennych.
exit(); jest dość dyskusyjne.
Nazwy zmiennych a i b są bardzo nieodpowiednie.
To co w casach powinno być w funkcjach.
Tak z grubsza to wszystko.