#include <stdio.h>#include <math.h>#include <iostream.h>double rad(double k);double stopnie (double k);int main(){ int n,powrot; const double g = 9.81; while ( n != 5 ) { system("cls"); cout << " Wybierz zadanie:\n 1 - Rzut ukosny \n 2 - Rzut poziomy \n 3 - Rzut pionowy \n 4 - Spadek swobodny \n 5 - Wyjdz z programu \n"; cin >> n ; switch( n ) { case 1: while ( powrot) { double kat, v, z, h, t; cout << " Wybierz sposob liczenia:\n\n 1 - Oblicza: maks. wysokosc, zasieg rzutu, czas lotu \n \tPotrzebne dane: kat rzutu, predkosc \n\n" " 2 - Oblicza: kat rzutu, maks. wysokosc, czas lotu \n \tPotrzebne dane: prednosc, zasieg\n\n" " 3 - Oblicza: kat, maks. wysokosc, zasieg \n \tPotrzebne dane: predkosc, czas lotu\n\n" " 4 - Oblicza: kat, zasieg, czas lotu \n \tPotrzebne dane: predkosc, maks. wysokosc\n\n" " 5 - Oblicza: predkosc, czas lotu, zasieg rzutu \n \tPotrzebne dane: kat rzutu, maks. wysokosc\n\n" " 6 - Oblicza: predkosc, maks. wysokosc, zasieg \n \tPotrzebne dane: kat rzutu, czas lotu\n\n" " 7 - Oblicza: predkosc, maks. wysokosc, czas lotu \n \tPotrzebne dane: kat rzutu, zasieg \n\n" " 8 - Powrot do Menu\n\n "; int x; cin>> x; switch (x) { case 1: { cout << "\nPodaj kat k = "; cin >> kat; cout << "\nPodaj predkosc v0 w m/s: v0 = "; cin >> v; kat = rad(kat); h = pow((v*sin(kat)),2)/(2*g); // maks. wysokos na jak si wzniesie ciao z = ((v*v)*sin(2*kat))/g; // zasieg rzutu t = 2*v*sin(kat)/g; // Czas lotu ciaa kat = stopnie(kat); cout<<"\nObiekt rzucony \npod katem " << kat << " stopni z predkoscia " << v << "m/s \nosiagnie wysokosc " << h <<"m lecac na odleglosc " << z << "m w czasie " << t <<"s\n\n"; system("pause"); }break; case 2: { cout << "\n Podaj predkosc v = "; cin >> v ; cout << "\n Podaj zasieg z = "; cin >> z; kat = asin(z*g/(v*v))/2; h = pow((v*sin(kat)),2)/(2*g); t = 2*v*sin(kat)/g; kat = stopnie(kat); cout<<"\nAby obiekt poruszajacy sie z predkoscia "<< v << "m/s osiagnal odleglosc "<< z << "m \n\n" "musi zostac rzucony pod katem "<< kat<<" stopni na wysokosc " << h <<"m i upasc po " << t <<"s\n\n\n" ; system("pause"); } break; case 3: { cout << "\n Podaj predkosc v = "; cin >> v ; cout << "\n Podaj czas lotu t = "; cin >> t; kat = asin(t*g/(2*v)); h = pow((v*sin(kat)),2)/(2*g); z = ((v*v)*sin(2*kat))/g; kat = stopnie(kat); cout<<"\nAby obiekt poruszajacy sie z predkoscia " << v << "m/s upadl po " << t << "s \n\n" "musi zostac rzucony pod katem " << kat << " stopni na wysokosc " << h <<"m i odleglosc " << z <<"m\n\n\n" ; system("pause"); } break; case 4: { cout << "\n Podaj predkosc v = "; cin >> v ; cout << "\n Podaj maks.wysokosc h = "; cin >> h; kat = pow(asin(2*g*h/(v*v)),2); t = 2*v*sin(kat)/g; z = ((v*v)*sin(2*kat))/g; kat = stopnie(kat); cout<<"\n\nAby obiekt z predkoscia " << v << "m/s osiagnal wysokosc " << h << "m \n\n" "musi zostac rzucony pod katem " << kat << " stopni i upasc po czasie " << t <<"s w odleglosci " << z <<"m\n\n\n" ; system("pause"); } break; case 5: { cout << "\n Podaj kat k = "; cin >> kat ; cout << "\n Podaj maks.wysokosc h = "; cin >> h; kat = rad(kat); v = sqrt(2*h*g/pow(sin(kat),2)); t = 2*v*sin(kat)/g; z = ((v*v)*sin(2*kat))/g; kat = stopnie(kat); cout<<"\n\nAby obiekt rzucony pod katem " << kat << " stopni osiagnal wysokosc " << h << "m \nmusi poruszac sie z predkoscia " << v << "m/s i upasc po czasie " << t <<"s w odleglosci " << z <<"m\n" ; system("pause"); }break; case 6: { cout << "\n Podaj kat k = "; cin >> kat ; cout << "\n Podaj czas lotu t = "; cin >> t; kat = rad(kat); v = t*g/(2*sin(kat)); h = pow((v*sin(kat)),2)/(2*g); z = ((v*v)*sin(2*kat))/g; cout<<"\n\nAby obiekt rzucony pod katem " << kat << "stopni upadl po czasie " << t << "s \n\nmusi poruszac sie z predkoscia "<< v <<"m/s, osiagnac wysokosc " << h <<"m i doleciec odleglosc " << z <<"m\n" ; system("pause"); } break; case 7: { cout << "\n Podaj kat k = "; cin >> kat ; cout << "\n Podaj zasieg rzutu z = "; cin >> z; kat = rad(kat); v = sqrt(z*g/(sin(2*kat))); h = pow((v*sin(kat)),2)/(2*g); t = 2*v*sin(kat)/g; cout<<"\n\nAby obiekt rzucony pod katem " << kat << " stopni upadl w odleglosci " << z <<"m \nmusi poruszac sie z predkoscia "<< v <<"m/s, osiagnac wysokosc " << h <<" m i upasc po " << t <<" s\n\n\n" ; system("pause"); } break; case 8: { powrot = 0; }break; } }break; case 2 : { double t, z, h, v ; cout << "\n Podaj wysokosc h = "; cin >> h ; cout << "\n Podaj v v= "; cin >> v ; t = sqrt(2*h/g); z = v * sqrt(2*h/g); cout << " t = " << t << " s \n z = " << z << " m \n"; system ("pause"); break; } case 3 : { double tw, tr, h0, hm, v0 ; cout << "\n Podaj prdkosc poczatkowa v0 = "; cin >> v0; cout << " \n Podaj wysokosc poczatkowa h0 = "; cin >> h0; tw = v0/g; hm = h0+(v0*v0)/(2*g); tr = 2*tw; cout << "tw = " << tw << " s \n hm = " << hm << "m \n tr = " << tr <<"s\n" ; system ( "pause"); break; } case 4 : { double h0, t; int x ; cout << " Co chcesz obliczyc? \n 1 - Czas swobodnego spadania \n 2 - Wysokosc poczatkowa \n"; cin >> x ; switch (x) { case 1 : { cout << "\n Podaj wysokosc poczatkowa h0 = "; cin >> h0 ; t = sqrt((2*h0)/g ); cout << " t = " << t << "s\n"; system ("pause"); break; } case 2 : { cout << "\n Podaj czas swobodnego spadania t = "; cin >> t ; h0 = g*(t*t)/2 ; cout << "h0 = " << h0 << "m\n"; system ("pause"); break; } default : cout << "Wprowadzono nieprawidlowe dane, sprobuj jeszcze raz"; system("pause"); continue; } } case 5 : break; default: cout << "Wprowadzono nieprawidlowe dane, sprobuj jeszcze raz"; break; } }}//////////////////////////////////////////////////////double rad(double k){return k*3.14/180;}double stopnie( double k) {return k*180/3.14;}