Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Rustam2013
Сообщений: n/a
#1

Написать программу, хранящую геометрические примитивы: треугольник, прямоугольник и круг - C++

10.06.2013, 11:39. Просмотров 461. Ответов 0
Метки нет (Все метки)

Делал программу на Паскале. Попросили сделать еще на С++.

Написать программу, хранящую геометрические примитивы: треугольник, прямоугольник и круг.
Эти объекты задаются через консоль, например, треугольник можно задать по координатам 3-х точек, прямогульник по 4-м, а круг по координате центра и радиусу. По окончанию ввода геометрических объектов в текстовый файл выводятся: тип геометрического объекта, его параметры и площадь.

В прикрепленном файле- код написанный в паскале.

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
program Project1;
 
{$APPTYPE CONSOLE}
 
uses
  SysUtils,
  Math;
 
const
resultRectangle:string='Priamoygolnik';
resultTriangle:string='Treugolnik';
resultCircle:string='Krug';
p:Double=3.14;
 
var
triangleArea, rectangleArea, circleArea:Double;
i,x1,y1,x2,y2,x3,y3,x4,y4,r:Integer;
text:string;
 
 
procedure writeTxt(text:string);
 var
   f: Textfile;
 begin
   AssignFile(f, 'ek.txt');
   ReWrite(f);
   Writeln(f, text);
   Closefile(f);
 end;
 
 
function considingTriangleArea(x1,y1,x2,y2,x3,y3:Integer):Double;
  var
    totalMatrix,matrixX1,matrixX2,matrixY1,matrixY2:Integer;
  begin
    matrixX1:=x1-x3;
    matrixX2:=x2-x3;
    matrixY1:=y1-y3;
    matrixY2:=y2-y3;
    totalMatrix:=(matrixX1*matrixY2)-(matrixY1*matrixX2);
    triangleArea:=abs(totalMatrix)/2;
    Result:=triangleArea;
  end;
 
function considingRectangleArea(x1,y1,x2,y2,x3,y3,x4,y4:Integer):Double;
  var
   ab,ad:Double;
  begin
   ab:=sqrt(sqr(x2-x1)+sqr(y2-y1));
   ad:=sqrt(sqr(x4-x1)+sqr(y4-y1));
   rectangleArea:=abs(ab)*abs(ad);
   Result:=RectangleArea;
  end;
 
function considingCircleArea(r:Integer):Double;
  begin
   circleArea:= p*sqr(r);
   Result:= circleArea;
  end;
 
function doValidTriangleText(triangleArea:Double;x1,y1,x2,y2,x3,y3:Integer):string;
  var
    validTriangleText:string;
  begin
    validTriangleText:='Figura: '+resultTriangle+'. Koordinati: A('+IntToStr(x1)+','+IntToStr(y1)+'), B('+IntToStr(x2)+','+IntToStr(y2)+'), C('+IntToStr(x3)+','+IntToStr(y3)+'). Ploshad = '+FloatToStr(triangleArea)+' .';
    Result:=validTriangleText;
  end;
 
function doValidRectangleText(rectangleArea:Double;x1,y1,x2,y2,x3,y3,x4,y4:Integer):string;
  var
    validRectangleText:string;
  begin
    validRectangleText:='Figura: '+resultRectangle+'. Koordinati: A('+IntToStr(x1)+','+IntToStr(y1)+'), B('+IntToStr(x2)+','+IntToStr(y2)+'), C('+IntToStr(x3)+','+IntToStr(y3)+'), D('+IntToStr(x4)+','+IntToStr(y4)+'). Ploshad = '+FloatToStr(rectangleArea)+' .';
    Result:=validRectangleText;
  end;
 
function doValidCircleText(circleArea:Double;r,x1,y1:Integer):string;
  var
    validCircleText:string;
begin
  validCircleText:= 'Figura: '+resultCircle+'. Koordinati: A('+IntToStr(x1)+','+IntToStr(y1)+'). Radius = '+IntToStr(r)+'. Ploshad = '+FloatToStr(circleArea)+' .';
  Result:=validCircleText;
end;
 
procedure selectForm(i:Integer);
  begin
  if((i=2) or (i=3) or (i=4)) then
    begin
      if(i=2) then
        begin
           Writeln('Vvedite radius:');
           read(r);
           Writeln('Vvedite koordinati A');
           read(x1);
           read(y1);
           circleArea:=considingCircleArea(r);
           WriteLn(Format('Ploshad = %g',[circleArea]));
           text:=doValidCircleText(circleArea,r,x1,y1);
           writeTxt(text);
           Writeln('File done!');
        end;
      if(i=3) then
        begin
            Writeln('Vvedite koordinati A:');
            read(x1);
            read(y1);
            Writeln('Vvedite koordinati B:');
            read(x2);
            read(y2);
            Writeln('Vvedite koordinati C:');
            read(x3);
            read(y3);
            triangleArea:=considingTriangleArea(x1,y1,x2,y2,x3,y3);
            WriteLn(Format('Ploshad = %g',[triangleArea]));
            text:=doValidTriangleText(triangleArea,x1,y1,x2,y2,x3,y3);
            writeTxt(text);
            Writeln('File done!');
        end;
      if(i=4) then
        begin
          Writeln('Vvedite koordinati A:');
          read(x1);
          read(y1);
          Writeln('Vvedite koordinati B:');
          read(x2);
          read(y2);
          Writeln('Vvedite koordinati C:');
          read(x3);
          read(y3);
          Writeln('Vvedite koordinati D:');
          read(x4);
          read(y4);
          rectangleArea:=considingRectangleArea(x1,y1,x2,y2,x3,y3,x4,y4);
          WriteLn(Format('Ploshad = %g',[rectangleArea]));
          text:=doValidRectangleText(rectangleArea,x1,y1,x2,y2,x3,y3,x4,y4);
          writeTxt(text);
          Writeln('File done!');
        end;
    end
    else
      begin
       Writeln('Nevernoe znachenie koordinat!');
       ReadLn;
      end;
  end;
 
begin
  WriteLn('Vvedite kol-vo koordinat: ');
  read(i);
  selectForm(i);
  ReadLn;
  ReadLn;
end.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.06.2013, 11:39     Написать программу, хранящую геометрические примитивы: треугольник, прямоугольник и круг
Посмотрите здесь:

C++ Треугольник, круг, прямоугольник
C++ Построить классы для описания плоских фигур:круг,квадрат,прямоугольник
Треугольник и круг STL C++
C++ Написать программу, выводящую на экран треугольник
Создать производные классы: Rectangle (прямоугольник), Circle (круг), Triangle (треугольник) со своими методами вычисления площади и периметра C++
C++ Составить программу, хранящую телефонный справочник и обеспечивающую выдачу телефона по фамилии
C++ Написать программу, проверяющую, поместится ли круг в квадрат или наоборот.
Написать программу, которая будет воспроизводить движущуюся графику в консоли, например, подвижной круг C++
C++ Создать программу, которая способна генерировать геометрические примитивы
C++ Написать класс прямоугольник и построить прямоугольник, пересечением двух других
C++ Написать программу, которая рисует треугольник.
Узнать с какой стороны пересекается прямоугольник и круг C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 22:31. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru