Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
Rustam2013
#1

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

10.06.2013, 11:39. Просмотров 486. Ответов 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++
Четвёртая: Создать программу, которая способна генерировать (или создать на основе введённых данных, или в контекстном меню выбрать один из...

Треугольник, круг, прямоугольник - C++
Необходимо создать эти 3 фигуры, и вывести их на экран в консоли. Фигуры можно двигать. Дайте какие-нибудь рекомендации.

Создать производные классы: Rectangle (прямоугольник), Circle (круг), Triangle (треугольник) со своими методами вычисления площади и периметра - C++
Создать производные классы: Rectangle (прямоугольник), Circle (круг), Triangle (треугольник) со своими методами вычисления площади и...

Проверить, поместится ли прямоугольник в круг - C++
написать программу, проверяющую, поместится ли прямоугольник площадью Р в круг площадью S. или круг поместится в прямоугольник, или они не...

Написать программу, проверяющую, поместится ли круг в квадрат или наоборот. - C++
3. Заданы круг площади S и квадрат площади Р. Написать программу, проверяющую, поместится ли круг в квадрат или поместится ли квадрат в...

Написать класс прямоугольник и построить прямоугольник, пересечением двух других - C++
Помогите пожалуйста с задание до делать, нужно построить треугольник являющегося общей частью (пересечением) двух прямоугольников. У меня...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.06.2013, 11:39
Привет! Вот еще темы с ответами:

Составить программу, хранящую телефонный справочник и обеспечивающую выдачу телефона по фамилии - C++
Составить программу, хранящую телефонный справочник и обеспечивающую выдачу телефона по фамилии. Признаком окончания работы со справочником...

Узнать с какой стороны пересекается прямоугольник и круг - C++
Как узнать с какой стороны пересекается прямоугольник и круг?

Написать программу, которая будет воспроизводить движущуюся графику в консоли, например, подвижной круг - C++
Написать программу, которая будет воспроизводить движущуюся графику в консоли, например подвижной круг. Реализовать через классы. Хотя бы...

Написать программу, выводящую на экран треугольник - C++
Всем привет! Написать программу выводящую на экран треугольник: * *** (ребят,не получается отредактировать...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

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