Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

Ocena kodu


Rekomendowane odpowiedzi

Opublikowano

#include <iostream>
#include <ostream>
#include <windows.h>
#include <cstdlib>
using namespace std;
int main(int argc, char *argv[])
{
double a, b, c, d, h, p, p2, wynik;
int dzialanie;
int blad;
system("COLOR 0B");
cout << "========================KALKULATOR==============================" << endl;
cout << "=====================Copyright WARROCK_CODER===========================" << endl;
dzialanieee:
cout << "Wybierz dzialanie, pole lub obwod, ktory/e chcesz obliczyc:" << endl;
cout << "1. Dodawanie" << endl << "2. Odejmowanie" << endl << "3. Mnozenie" << endl << "4. Dzielenie" << endl << "5. Pole kwadratu" << endl << "6. Pole prostokata" << endl << "7. Pole rownolegloboku" << endl << "8. Pole rombu" << endl << "9. Pole trapezu" << endl;
cout << "10. Pole trojkata" << endl << "11. Obwod kwadratu" << endl << "12. Obwod prostokata" << endl << "13. Obwod rownolegloboku" << endl << "14. Obwod rombu" << endl << "15. Obwod trapezu" << endl;
std::cin >> dzialanie;
if (dzialanie > 15)
{
cout << "Bledna liczba!" << endl << "Musisz wybrac liczbe z przedzialu 1-10." << endl << "Tylko wtedy wybierzesz dzialanie lub tym podobne z zakresu tego kalkulatora" << endl;
cout << "Teraz program zostanie zamkniety w ciagu kilku sekund..." << endl;
Sleep(5000);
return 0;
}
switch (dzialanie)
{
case 1:
   cout << endl << "Podaj pierwszy skladnik:" << endl ;
cin >> a ;
cout << endl << "Podaj drugi skladnik:" << endl;
cin >> b;
wynik = a + b;
break;
case 2:
   cout << endl <<"Podaj odjemna:" << endl;
   cin >> a;
   cout << endl <<"Podaj odjemnik:" << endl;
   cin >> b;
   wynik = a - b;
case 3:
   cout << endl << "Podaj pierwszy czynnik: " << endl;
   cin >> a ;
   cout << endl << "Podaj drugi czynnik: " << endl;
   cin >> b ;
   wynik = a * b;
   break;
case 4:
   cout << endl << "Podaj dzielna: " << endl ;
   cin >> a ;
   cout << endl << "Podaj dzielnik: " << endl;
   cin >> b;
   wynik = a / b;
   break;
case 5:
   cout << endl << "Podaj dlugosc boku: a" << endl;
   cin >> a;
   wynik = a*a;
   break;
case 6:
   cout << endl << "Podaj dlugosc boku: a" << endl;
   cin >> a;
   cout << endl << "Podaj dlugosc boku: b" << endl;
   cin >> b;
   wynik = a*b;
   break;
case 7:
   cout << endl << "Podaj dlugosc boku: a" << endl;
   cin >> a;
   cout << endl << "Podaj dlugosc wysokosci" << endl;
   cin >> h;
   wynik= a*h;
   break;
case 8:
   cout << endl << "Podaj dlugosc przekatnej: e" << endl;
   cin >> p;
   cout << endl << "Podaj dlugosc przekatnej: f" << endl;
   cin >> p2;
   wynik = p * p2;
   break;
case 9:
   cout << endl << "Podaj dlugosc boku: a" << endl;
   cin >> a;
   cout << endl << "Podaj dlugosc boku: b" << endl;
   cin >> b;
   cout << endl << "Podaj dlugosc wysokosci" << endl;
   cin >> h;
   wynik = (a+*h/2;
   break;
case 10:
   cout << endl << "Podaj dlugosc ramienia" << endl;
   cin >> a;
   cout << endl << "Podaj dlugosc wysokosci" << endl;
   cin >> h;
   wynik = a*h;
   break;
case 11:
   cout << endl << "Podaj dlugosc boku: a" << endl;
   cin >> a;
   wynik = a*4;
   break;
case 12:
   cout << endl << "Podaj dlugosc boku: a" << endl;
   cin >> a;
   cout << endl << "Podaj dlugosc boku: b" << endl;
   cin >> b;
   wynik = a*2+b*2;
   break;
case 13:
   cout << endl << "Podaj dlugosc boku: a" << endl;
   cin >> a;
   cout << endl << "Podaj dlugosc boku: b" << endl;
   cin >> b;
   wynik = a*2+b*2;
   break;
case 14:
   cout << endl << "Podaj dlugosc boku: a" << endl;
   cin >> a;
   wynik = a*4;
   break;
case 15:
   cout << endl << "Podaj dlugosc boku: a" << endl;
   cin >> a;
   cout << endl << "Podaj dlugosc boku: b" << endl;
   cin >> b;
   cout << endl << "Podaj dlugosc boku: c" << endl;
   cin >> c;
   cout << endl << "Podaj dlugosc boku: d" << endl;
   cin >> d;
   wynik = a+b+c+d;
   break;
case 16:
   cout << endl << "Podaj dlugosc boku: a" << endl;
   cin >> a;
   cout << endl << "Podaj dlugosc boku: b" << endl;
   cin >> b;
   cout << endl << "Podaj dlugosc boku: c" << endl;
   cin >> c;
   wynik = a+b+c;
   break;
default :
cout << endl << "" << endl;
}
cout << endl << "Wynik dzialania = " << wynik << endl << endl;
goto dzialanieee;
return 0;
}


Oceniajcie ;) Mówcie co można poprawić itp... (wszystko mam jako boki, bo nie chciało mi się bawić dłużej, bo musiałem skończyć do 22 xD)

s

Weteran
Opublikowano

Tak na szybko, bez kompilacji, zauważyłem że wzór na pole trójkąta jest zły jak i program powinien prosić o podstawę a nie o jego ramię.

Działanie można byłoby pobrać w jednej linii, a nie pojedynczo każdą liczbę.

Instrukcję goto można byłoby zastąpić pętlą.

Opublikowano

Wiem, wiem używanie instrukcji goto to jest takie prymitywne rozwiązanie ale w tym programie nie potrzebne niż lepszego według mnie ;)

A jak robiłem, żeby pobierało liczby w jednej linii to źle obliczało wynik także chciałem tego uniknąć i nadłożyć te 2linijki czy tam ileś na każdego case :)

s

Weteran
Opublikowano

2 pozostałe boki też mogą być podstawami i mają wysokości?

Zgadza się, no i? ;]

Każdy bok może być podstawą i mieć własną wysokość, to chyba logiczne.

Mówiąc ramię, nadal mamy gdzieś podstawę, ale owe ramię nie jest już tą podstawą, więc podstawa jest niewiadoma. Do wzoru a*h/2 już się nie możemy zastosować.

 

@down

Może i racja, nie chcę mi się już spinać o takie pierdoły.

Opublikowano

Oczywiście, że możemy. Wystarczy, że weźmiemy wysokość zawierającą dane ramię.

 

Mamy trzy wysokości, jedną podstawę i dwa ramiona.

 

Jedyne, co jest istotne, to to, by obliczać z wysokości opadającą na dane ramię (albo z ramiena na które opada dana wysokość). Albo daną podstawę. W każdym razie dany bok.

 

Stąd moja sugestia wyżej, iż wychodzi na jedno i to samo...

Ta sygnatura jest pusta.

Opublikowano

@Xaulin. Podstawę przy danym boku a wyliczysz sobie z:

p = a*h/2 /*2
2p = a*h
a*h = 2p / :a
h = 2p/a
Oczywiście podane/wyliczone musisz mieć pole i bok a

(późna godzina, może coś przestawiłem)

Także tą wysokość spokojnie da się obliczyć, ale tak jak mówię, trzeba mieć wtedy podane pole & wysokość. Nie wiem, może są jeszcze inne sposoby. Na tą godzinę przyszło mi na myśl proste wyznaczanie zmiennej w tym przypadku h ze wzoru p = a*h/2

tak btw. Wzór zależy też od samego trójkąta przykładowo:

dla równobocznego trójkąta możemy zastosować: P = a^2?3/4

a dla prostokątnego: a*b/2 (jedna z przyprostokątnych jest wysokością)

lub uniwersalnym wzorem jest po prostu: a*h/2

 

Co do tematu - musisz poprawić wzór na ten trójkąt.

  • Usługi webmasterskie (front & back)
  • Administracja systemami baz danych (SQL & noSQL)
  • Administracja serwerami Unix/BSD
  • Administracja & konfiguracja CMS (Wordpress itp)
  • Administracja & konfiguracja silników for (IPBoard / MyBB itp)

< Klik >

Opublikowano

Proszę poprawiony kod... Dodałem obwód trójkąta i wyjście...

#include <iostream>
#include <ostream>
#include <windows.h>
#include <cstdlib>
using namespace std;
int main(int argc, char *argv[])
{
double a, b, c, d, h, p, p2, wynik;
int dzialanie;
int blad;
system("COLOR 0B");
cout << "========================KALKULATOR==============================" << endl;
cout << "=====================Copyright WARROCK_CODER===========================" << endl;
dzialanieee:
cout << "Wybierz dzialanie, pole lub obwod, ktory/e chcesz obliczyc:" << endl;
cout << "1. Dodawanie" << endl << "2. Odejmowanie" << endl << "3. Mnozenie" << endl << "4. Dzielenie" << endl << "5. Pole kwadratu" << endl << "6. Pole prostokata" << endl << "7. Pole rownolegloboku" << endl << "8. Pole rombu" << endl << "9. Pole trapezu" << endl;
cout << "10. Pole trojkata" << endl << "11. Obwod kwadratu" << endl << "12. Obwod prostokata" << endl << "13. Obwod rownolegloboku" << endl << "14. Obwod rombu" << endl << "15. Obwod trapezu" << endl << "16. Obwod trojkata" << endl << "0. Wyjscie" << endl;
cin >> dzialanie;
if (dzialanie > 16)
{
cout << "Bledna liczba!" << endl << "Musisz wybrac liczbe z przedzialu 1-10." << endl << "Tylko wtedy wybierzesz dzialanie lub tym podobne z zakresu tego kalkulatora" << endl;
cout << "Teraz program zostanie zamkniety w ciagu kilku sekund..." << endl;
Sleep(5000);
return 0;
}
switch (dzialanie)
{
case 1://dodawanie
   cout << endl << "Podaj pierwszy skladnik:" << endl ;
cin >> a ;
cout << endl << "Podaj drugi skladnik:" << endl;
cin >> b;
wynik = a + b;
break;
case 2://odejmowanie
   cout << endl <<"Podaj odjemna:" << endl;
   cin >> a;
   cout << endl <<"Podaj odjemnik:" << endl;
   cin >> b;
   wynik = a - b;
case 3://mnozenie
   cout << endl << "Podaj pierwszy czynnik: " << endl;
   cin >> a ;
   cout << endl << "Podaj drugi czynnik: " << endl;
   cin >> b ;
   wynik = a * b;
   break;
case 4://dzielenie
   cout << endl << "Podaj dzielna: " << endl ;
   cin >> a ;
   cout << endl << "Podaj dzielnik: " << endl;
   cin >> b;
   wynik = a / b;
   break;
case 5://pole kwadratu
   cout << endl << "Podaj dlugosc boku: a" << endl;
   cin >> a;
   wynik = a*a;
   break;
case 6://pole prostokata
   cout << endl << "Podaj dlugosc boku: a" << endl;
   cin >> a;
   cout << endl << "Podaj dlugosc boku: b" << endl;
   cin >> b;
   wynik = a*b;
   break;
case 7://pole rownolegloboku
   cout << endl << "Podaj dlugosc boku: a" << endl;
   cin >> a;
   cout << endl << "Podaj dlugosc wysokosci" << endl;
   cin >> h;
   wynik= a*h;
   break;
case 8://pole rombu
   cout << endl << "Podaj dlugosc przekatnej: e" << endl;
   cin >> p;
   cout << endl << "Podaj dlugosc przekatnej: f" << endl;
   cin >> p2;
   wynik = p * p2;
   break;
case 9://pole trapezu
   cout << endl << "Podaj dlugosc boku: a" << endl;
   cin >> a;
   cout << endl << "Podaj dlugosc boku: b" << endl;
   cin >> b;
   cout << endl << "Podaj dlugosc wysokosci" << endl;
   cin >> h;
   wynik = (a+*h/2;
   break;
case 10://pole trojkata
   cout << endl << "Podaj dlugosc ramienia" << endl;
   cin >> a;
   cout << endl << "Podaj dlugosc wysokosci" << endl;
   cin >> h;
   wynik = a*h/2;
   break;
case 11://obwod kwadratu
   cout << endl << "Podaj dlugosc boku: a" << endl;
   cin >> a;
   wynik = a*4;
   break;
case 12://obwod prostokata
   cout << endl << "Podaj dlugosc boku: a" << endl;
   cin >> a;
   cout << endl << "Podaj dlugosc boku: b" << endl;
   cin >> b;
   wynik = a*2+b*2;
   break;
case 13://obwod rownolegloboku
   cout << endl << "Podaj dlugosc boku: a" << endl;
   cin >> a;
   cout << endl << "Podaj dlugosc boku: b" << endl;
   cin >> b;
   wynik = a*2+b*2;
   break;
case 14://obwod rombu
   cout << endl << "Podaj dlugosc boku: a" << endl;
   cin >> a;
   wynik = a*4;
   break;
case 15://obwod trapezu
   cout << endl << "Podaj dlugosc boku: a" << endl;
   cin >> a;
   cout << endl << "Podaj dlugosc boku: b" << endl;
   cin >> b;
   cout << endl << "Podaj dlugosc boku: c" << endl;
   cin >> c;
   cout << endl << "Podaj dlugosc boku: d" << endl;
   cin >> d;
   wynik = a+b+c+d;
   break;
case 16://obwod trojkata
   cout << endl << "Podaj dlugosc boku: a" << endl;
   cin >> a;
   cout << endl << "Podaj dlugosc boku: b" << endl;
   cin >> b;
   cout << endl << "Podaj dlugosc boku: c" << endl;
   cin >> c;
   wynik = a+b+c;
   break;
case 0://wyjscie
cout << endl << "Szkoda, ze juz wylaczasz " << endl << "Jednak mam nadzieje, ze jeszcze wrocisz do uzywania mojego skromnego programu" << endl;
   cout << "Za 5 sekund program  zostanie wylaczony";
Sleep(5000);
return 0;
break;
default :
cout << endl << "" << endl;
}
cout << endl << "Wynik dzialania = " << wynik << endl << endl;
goto dzialanieee;
return 0;
}

s

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...