Guest User

Untitled

a guest
Jun 20th, 2018
818
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 4.85 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <conio.h>
  3.  
  4. // зачем используется эта директива?
  5. #include <iostream>
  6.  
  7. // зачем используется эта директива?
  8. #include <string>
  9.  
  10. #include <math.h>
  11.  
  12.  
  13.  
  14. // что такое using, namespace, std?
  15. using namespace std;
  16.  
  17.  
  18.  
  19. bool isUint(string s)
  20.  
  21. {
  22.     // что такое String, класс, что за метод вызывается (string::npos=-1) это Леха тебе не скинул)
  23.     return s.find_first_not_of("0123456789.")==string::npos;
  24. }; // тут ; можно не ставить
  25.  
  26.  
  27.  
  28.  
  29.  
  30.  
  31.  
  32. int main()
  33.  
  34. {
  35.  
  36.     float a,b,c,ma,mb,mc,ha,hb,hc,ba,bc,bb,p,S;
  37.  
  38.     string s;
  39.    
  40.     // что такое cout
  41.     cout<<"Hello! This program will help you with simple geometry!!!"<<endl;
  42.  
  43.     cout<<"It counts halfperimetr,highs,medians and bisectors!!!start! "<<endl;
  44.  
  45.     cout<<"enter 1st side of triangle: "<<endl;
  46.    
  47.     // что это за функция, ее параметры
  48.     getline (cin,s);
  49.  
  50.     if (isUint(s))
  51.  
  52.     {
  53.        
  54.         // что за функция, ее параметры
  55.         // и комментируй код, чем больше комментариев, тем меньше у Леса вопросов
  56.         a=atoi(s.c_str());
  57.  
  58.     }
  59.  
  60.     else
  61.  
  62.     {
  63.  
  64.         cout<<"invalid numeric format"<<endl;
  65.  
  66.         getchar();
  67.        
  68.         // коль уж у нас выход с ошибкой, то не 0, а 1 - выход с нулевым кодом - программа завершилась корректно - под Виндой оно не работает корректно, но правило хорошего тона
  69.         return(0);
  70.  
  71.     }
  72.  
  73.        
  74.  
  75.          
  76.     // все тоже самое как и выше
  77.     cout<<"enter 2st side of triangle: "<<endl;    
  78.  
  79.     getline (cin,s);
  80.  
  81.     if (isUint(s))
  82.  
  83.     {
  84.  
  85.         b=atoi(s.c_str());
  86.  
  87.     }
  88.  
  89.     else
  90.  
  91.     {
  92.  
  93.         cout<<"invalid numeric format\n"<<endl;
  94.  
  95.         getchar();
  96.  
  97.         return(0);
  98.  
  99.     }
  100.  
  101.        
  102.  
  103.     cout<<"enter 3rd side of triangle: "<<endl;
  104.  
  105.     getline (cin,s);
  106.  
  107.     if (isUint(s))
  108.  
  109.     {
  110.  
  111.         c=atoi(s.c_str());
  112.  
  113.     }
  114.  
  115.     else
  116.  
  117.     {
  118.  
  119.         cout<<"invalid numeric format\n"<<endl;
  120.  
  121.         getchar();
  122.  
  123.         return(0);
  124.  
  125.     }
  126.  
  127.    
  128.     // проверь еще стороны на неотрицательность и неравность 0, он может подобрать хитрые параметры
  129.     if ((a+b<c)||(a+c<b)||(b+c<a))
  130.     {
  131.  
  132.         cout<<"this triangle doesnt exist!!!"<<endl;
  133.  
  134.         getchar();
  135.  
  136.         return(0);
  137.  
  138.     }
  139.  
  140.    
  141.  
  142.     else
  143.  
  144.     {
  145.  
  146.         cout<<"this triangle is right!!! continue--->"<<endl;
  147.  
  148.     }
  149.  
  150.    
  151.  
  152.    
  153.     // я бы написал поделить на 2.0
  154.     p=(a+b+c)/2;
  155.  
  156.     cout<<"Halfperimetr= ";
  157.  
  158.     cout<<p;
  159.     // лучшее будет так cout<<p<<endl;
  160.     // вроде красивее ну и ниже по коду выровняй, программа должна красиво выглядеть
  161.  
  162.     getchar();
  163.  
  164.    
  165.  
  166.     S=sqrt(p*(p-a)*(p-b)*(p-c));
  167.  
  168.     cout<<"Square= ";
  169.  
  170.     cout<<S;
  171.  
  172.     getchar();
  173.  
  174.    
  175.  
  176.     ha=2*(sqrt(p*(p-a)*(p-b)*(p-c))/a);
  177.  
  178.     cout<<"High to 'a' side= ";
  179.  
  180.     cout<<ha;
  181.  
  182.     getchar();
  183.  
  184.    
  185.  
  186.     hb=2*(sqrt(p*(p-a)*(p-b)*(p-c))/b);
  187.  
  188.     cout<<"High to 'b' side= ";
  189.  
  190.     cout<<hb;
  191.  
  192.     getchar();
  193.  
  194.    
  195.  
  196.     hc=2*(sqrt(p*(p-a)*(p-b)*(p-c))/c);
  197.  
  198.     cout<<"High to 'c' side= ";
  199.  
  200.     cout<<hc;
  201.  
  202.     getchar();
  203.  
  204.    
  205.  
  206.     ma=(sqrt(2*b*b+2*c*c-a*a)/2);
  207.  
  208.     cout<<"Median to 'a' side= ";
  209.  
  210.     cout<<ma;
  211.  
  212.     getchar();
  213.  
  214.    
  215.  
  216.     mb=(sqrt(2*a*a+2*c*c-b*b)/2);
  217.  
  218.     cout<<"Median to 'b' side= ";
  219.  
  220.     cout<<mb;
  221.  
  222.     getchar();
  223.  
  224.    
  225.  
  226.     mc=(sqrt(2*b*b+2*a*a-c*c)/2);
  227.  
  228.     cout<<"Median to 'c' side= ";
  229.  
  230.     cout<<mc;
  231.  
  232.     getchar();
  233.  
  234.    
  235.  
  236.     ba=(2*(sqrt(b*c*p*(p-a))/(b+c)));
  237.  
  238.     cout<<"Bisector to 'a' side= ";
  239.  
  240.     cout<<ba;
  241.  
  242.     getchar();
  243.  
  244.    
  245.  
  246.     bb=(2*(sqrt(c*a*p*(p-b))/(a+c)));
  247.  
  248.     cout<<"Bisector to 'b' side= ";
  249.  
  250.     cout<<bb;
  251.  
  252.     getchar();
  253.  
  254.    
  255.  
  256.     bc=(2*(sqrt(b*a*p*(p-c))/(a+b)));
  257.  
  258.     cout<<"Bisector to 'c' side= ";
  259.  
  260.     cout<<bc;
  261.  
  262.     getchar();
  263.  
  264.    
  265.  
  266.     cout<<"Here tou are!!!"<<endl;
  267.    
  268.     // тут втули гетч или system("PAUSE"); - это короче вызов системной консольной команды PAUSE ну короче погугли, там просто
  269.     // не забудь теоретические расчеты с хитрыми значениями не меньше 3 разных наборов параметров
  270.     // и не забуть в конце return 0; после того паузе поставить
  271.     // так вроде хорошо потести, это так мой беглый взгляд
  272. }
Add Comment
Please, Sign In to add comment