Advertisement
Kolyach

4.3

Nov 12th, 2018
156
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.14 KB | None | 0 0
  1. #include "stdafx.h"
  2. #include <iostream>
  3. #include <cmath>
  4.  
  5. using namespace std;
  6.  
  7. void rec();
  8. void tri();
  9. void tri1();
  10. void tri2();
  11. void tri3();
  12. void circ();
  13. const float pi = 3.14;
  14.  
  15. int main() {
  16.     setlocale(LC_ALL, "russian");
  17.     cout << "Площадь какой фигуры вам надо найти:\n" << "1. Прямоугольник\n" << "2. Треугольник\n" << "3. Круг\n";
  18.     int a;
  19.     cin >> a;
  20.     if (a != 1 && a != 2 && a != 3) {
  21.         while (a != 1 && a != 2 && a != 3) {
  22.             cout << "Выберите из предложенных вариантов!\n";
  23.             cin >> a;
  24.         }
  25.     }
  26.     switch (a) {
  27.     case 1: rec();
  28.     case 2: tri();
  29.     case 3: circ();
  30.     }
  31. }
  32.  
  33. void rec() {
  34.     cout << "Введите длину и ширину: ";
  35.     float a, b;
  36.     cin >> a >> b;
  37.     if (a <= 0 || b <= 0) {
  38.         while (a <= 0 || b <= 0) {
  39.             cout << "Такого прямоугольника не существует! Введите другие значения: ";
  40.             cin >> a >> b;
  41.         }
  42.     }
  43.     cout << a * b << endl;
  44.     exit(0);
  45. }
  46.  
  47. void tri() {
  48.     cout << "Выберите формулу:\n" << "1. По стороне и высоте \n" << "2. По двум сторонам и углу между ними\n" << "3. Формула Герона\n";
  49.     int a;
  50.     cin >> a;
  51.     if (a != 1 && a != 2 && a != 3) {
  52.         while (a != 1 && a != 2 && a != 3) {
  53.             cout << "Выберите из предложенных вариантов!\n";
  54.             cin >> a;
  55.         }
  56.     }
  57.     switch (a) {
  58.     case 1: tri1();
  59.     case 2: tri2();
  60.     case 3: tri3();
  61.     }
  62. }
  63.  
  64.  
  65. void tri1() {
  66.     cout << "Введите длину стороны и высоты: ";
  67.     float a, h;
  68.     cin >> a >> h;
  69.     if (a <= 0 || h <= 0) {
  70.         while (a <= 0 || h <= 0) {
  71.             cout << "Такого треугольника не существует! Введите другие значения: ";
  72.             cin >> a >> h;
  73.         }
  74.     }
  75.     cout << (0.5 * a * h) << endl;
  76.     exit(0);
  77. }
  78.  
  79. void tri3() {
  80.     cout << "Введите длины сторон: ";
  81.     float a, b, c, p;
  82.     cin >> a >> b >> c;
  83.     if (((a + b)<c || (a + c)<b || (b + c)<a) || a <= 0 || b <= 0 || c <= 0) {
  84.         while (((a + b)<c || (a + c)<b || (b + c)<a)||a<=0||b<=0||c<=0) {
  85.             cout << "Такой треугольник не существует!\n" << "Введите другие значения: ";
  86.             cin >> a >> b >> c;
  87.         }
  88.     }
  89.     p = (a + b + c) / 2;
  90.     cout << sqrt((p*(p - a)*(p - b)*(p - c))) << endl;
  91.     exit(0);
  92. }
  93.  
  94. void tri2() {
  95.     cout << "Введите длины сторон и угол между ними: ";
  96.     float a, b, ang;
  97.     cin >> a >> b >> ang;
  98.     if ((ang >= 180 || ang <= 0)||a<=0||b<=0) {
  99.         while ((ang >= 180 || ang <= 0) || a <= 0 || b <= 0) {
  100.             cout << "Такого треугольника не существует!\n" << "Введите другие значения: ";
  101.             cin>>a>>b >> ang;
  102.         }
  103.     }
  104.     cout << 0.5*a * b*sin(ang*pi / 180) << endl;
  105.     exit(0);
  106. }
  107.  
  108. void circ() {
  109.     float r;
  110.     cout << "Введите радиус окружности: ";
  111.     cin >> r;
  112.     if (r<=0) {
  113.         while (r <=0) {
  114.             cout << "Отрицательный радиус! Введите другое значение: ";
  115.             cin >> r;
  116.         }
  117.     }
  118.     cout << pi * r*r << endl;
  119.     exit(0);
  120. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement