#include <iostream> #include <cstdlib> #include <math.h> #include <conio.h> using namespace std; void kwadrat(); void funkcja(); void promien(); void sekunda(); void trojkat(); int main() { bool bSwitch = true; do { int i; cout<<"Podaj numer zadania, ktore chcesz wykonac(inny numer opuszcza program)"<<endl; cin>>i; system("CLS"); switch (i) { case 1: kwadrat();break; case 2: funkcja();break; case 3: promien();break; case 4: sekunda();break; case 5: trojkat();break; default: bSwitch = false;break; } system("CLS"); }while(bSwitch); } void kwadrat() { float a,b,c; cout<<"Program liczy delte rownania kwadratowego"<<endl <<"Podaj a, b, c"<<endl; cin>>a>>b>>c; if(a!=0) { float delta = (b*b)/(4*a*c); if(delta > 0) { int x1 = (-b-sqrt(delta))/(2*a); int x2 = (-b+sqrt(delta))/(2*a); cout<<"Rozwiazaniami tego rownania sa x1 = "<<x1<<", x2 = "<<x2<<endl; } else if(delta == 0) { int x = -b/(2*a); cout<<"Rozwiazaniem tego rownania jest x = "<<x<<endl; } else cout<<"Rownanie nie ma rozwiazan"<<endl; } else cout<<"To nie jest rownanie kwadratowe"<<endl; getch(); } void funkcja() { cout<<"Program liczy wartosc funkcji okreslonej wzorem"<<endl <<"Podaj x"<<endl; float x; cin>>x; if(x<1 || x>20) cout<<(1/3)*x*x+x+2<<endl; else if(x>=1 && x<=10) cout<<sin(M_PI*x)+1<<endl; else if(x>10 && x<=20) cout<<sqrt(x)<<endl; else cout<<"Nie podales liczby"<<endl; getch(); } void promien() { cout<<"Program liczy obwod, pole powierzchni i objetosc kuli na podtawie promienia"<<endl <<"Podaj promien"<<endl; float R; cin>>R; float pole = 4*M_PI*R*R; float obwod = 2*M_PI*R; float objetosc = (4/3)*M_PI*R*R*R; cout<<"Obwod danej kuli wynosi "<<obwod<<", pole "<<pole<<", a objetosc "<<objetosc<<endl; getch(); } void sekunda() { cout<<"Program podaje ile godzin, minut i sekund jest w podanej ilosci sekund"<<endl <<"Podaj ilosc sekund"<<endl; int N; cin>>N; int godziny = floor(N/3600); N = N - godziny*3600; int minuty = floor(N/60); N = N - minuty*60; cout<<"W podanej liczbie sekund jest "<<godziny<<" godzin, "<<minuty<<" minut, "<<N<<"sekund"<<endl; getch(); } void trojkat() { cout<<"Program liczy pole trojkata o zadanych bokach, jesli to mozliwe"<<endl <<"Podaj a, b, c"<<endl; float a, b, c; cin>>a>>b>>c; if(a+b>c && a+c>b && b+c>a) { int m1, m2, mMax; m1 = a; m2 = b; mMax = c; if(m1 > mMax) swap(m1, mMax); if(m2 > mMax) swap (m2, mMax); if(((mMax*mMax) - (m1*m1+m2*m2) == 0)) cout<<"Trojkat jest prostokatny, "; else cout<<"Trojkat nie jest prostokatny, "; float pole = a*b*c/2; cout<<"a jego pole wynosi "<<pole<<endl; } else cout<<"Trojkat o podanych bokach nie istnieje"<<endl; getch(); }
Offline
Prezes widac ze potrafisz programowac ale nie kazdy zrozumie to co wkleiles dlatego dodam tu 2 zrobione przezemnie programy w oparciu o to co mielismy na zajeciach
zadanie 4
int n,g,min,s;
cout<<"podaj liczbe sekund: ";
cin>>n;
cout<<endl;
g=n/3600; // nie ma potrzeby uzywac funkcji floor() poniewaz int podaczas dzielenia zwraca nam liczby calkowite
min=n/60-g*60; //raczej nie trzeba tlumaczyc ale: dzielac n(liczbe sekund) przez 60 dowiemy sie ile to jest minut(calosc) ,np. 4255 to 70min odejmujemy od tego cale godziny ktore obliczylismy wyzej czyli 70min-1*60=10
s=n%60; //no i sekundy to reszta z dzielenia n przz 60
cout<<"godz: "<<g<<" min: "<<min<<" sek: "<<s<<endl;
zadanie 5
float a,b,c,p,z;
cout<<"podaj dlugosc pierwszego boku: ";
cin>>a;
cout<<endl;
cout<<"podaj dlugosc drugiego boku: ";
cin>>b;
cout<<endl;
cout<<"podaj dlugosc trzeciego boku: ";
cin>>c;
cout<<endl;
if(a+b>c and a+c>b and b+c>a)
{
cout<<"to jest tr"<<char(162)<<"jkat";
if(a*a+b*b==c*c or a*a+c*c==b*b or b*b+c*c==a*a)
{
cout<<" prostokatny"<<endl;
if(c>a and c>b)
{
p=(1.0/2)*a*b;
}
else if(a>c and a>b)
{
p=(1.0/2)*c*b;
}
else if(b>c and b>a)
{
p=(1.0/2)*c*a;
}
cout<<"jego pole to: "<<p<<endl;
}
else
{
z=(1.0/2)*(a+b+c);
p=sqrt(z*(z-a)*(z-b)*(z-c));
cout<<" jego pole to: "<<p<<endl;
}
}
else
{
cout<<"to nie jest trojkat"<<endl;
}
P.S.
prosilbym o nie kopiowanie odpowiedzi z zadania 5 jesli cos w zadaniu 5 jest nie jasne to z checia wyjasnie
prezesie w zadazniu nie jest napisane ze masz obliczyc pole trojkata tylko w przypadku gdy jest prostakatny wiec powinienes skorzystac tez ze wzory herona na pole trojkata. dzialanie:
float objetosc = (4/3)*M_PI*R*R*R;
prawdopodobnie daje zly wynik poniewaz liczby 4 i 3 sa w formie int wiec ich dzilenie da wynik 1 a nie 1.(3) powinienes zmienic 4 na 4.0 i bedzie OK ale i tak pewnie juz wyslales te programy i o nich zapomniales:D
Ostatnio edytowany przez jogo (15-03-2012 10:56:36)
Offline