-21 / 1 / 0
Регистрация: 15.11.2019
Сообщений: 212
1

Объект прямая треугольная призма

16.03.2020, 08:41. Показов 1745. Ответов 19
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Объект прямая треугольная призма.Поля-длины сторон основания.Метод-объём,площадь основания ,площадь боковой поверхности
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.03.2020, 08:41
Ответы с готовыми решениями:

Правильная треугольная призма
Найти длину отрезка

Правильная треугольная призма, площадь сечения
дана правильная треугольная призма A B C A1 B1 C1 ,у которой сторона основания равна 8. Найдите...

Расстояние между скрещивающимися прямыми, правильная треугольная призма
В правильной треугольной призме ABCA1B1C1 сторона основания равна 1, а боковое ребро равно 3....

Прямая призма
Основой прямой призмы является треугольник со сторонами 15 см, 13 см, 4 см. Боковое ребро призмы...

19
Почетный модератор
64291 / 47589 / 32740
Регистрация: 18.05.2008
Сообщений: 115,181
16.03.2020, 09:44 2
Наверное полем еще должна быть высота призмы.
0
-21 / 1 / 0
Регистрация: 15.11.2019
Сообщений: 212
16.03.2020, 10:05  [ТС] 3
наверное
0
2373 / 775 / 561
Регистрация: 15.01.2019
Сообщений: 2,394
16.03.2020, 10:48 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
program PPP;
type
  TTrianglePrism = object
  private
    V: double;   { Поле для хранения значения объема призмы}
    S: double;   { Поле для хранения значения площади призмы}
    a3: double;  { Поле для хранения значения длины гипотенузы основания}
  public
    H: double;    { Поле для хранения значения максимальной высоты призмы}
    a1: double;    { Поле для хранения значения длины 1 катета основания}
    a2: double;    { Поле для хранения значения длины 2 катета основания}
    procedure Ploshad; { Метод для определения площадь поверхности призмы}
    procedure Objoem;  { Метод для определения объем призмы}
end;
 
Procedure TTrianglePrism.Ploshad;
begin
  a3:= sqrt(sqr(a1)+sqr(a2));
  S:= a1*a2 + H*a1 + H*a2 + H*a3;
  writeln('Площадь призмы: ',S:0:4);
end;
 
procedure TTrianglePrism.Objoem;
begin
  V:= a1*a2*H/2;
  Writeln('Объем призмы: ',V:0:4);
end;
 
var
  Prism: TTrianglePrism;
 
begin
  write('Высота призмы = ');
  readln(Prism.h);
  write('Размер первого катета основания = ');
  readln(Prism.a1);
  write('Размер второго катета основания = ');
  readln(Prism.a2);
  Prism.Ploshad;
  Prism.Objoem;
  readln;
end.
0
Почетный модератор
64291 / 47589 / 32740
Регистрация: 18.05.2008
Сообщений: 115,181
16.03.2020, 10:59 5
При чем здесь катеты и гипотенуза? Нигде не написано что основание прямоугольный треугольник.
0
-21 / 1 / 0
Регистрация: 15.11.2019
Сообщений: 212
16.03.2020, 12:23  [ТС] 6
после 3 строчки выдаёт что ожидалась точка с запятой
0
Почетный модератор
64291 / 47589 / 32740
Регистрация: 18.05.2008
Сообщений: 115,181
16.03.2020, 12:37 7
Вместо objet нужно написать class

Добавлено через 1 минуту
Задача из старого учебника по Турбо Паскалю где были объекты, в АВС уже классы.
0
2373 / 775 / 561
Регистрация: 15.01.2019
Сообщений: 2,394
16.03.2020, 19:26 8
Вот код с классом и с любым треугольником.
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
program PPP;
type
  TTrianglePrism = class
  private
    V: double;   { Поле для хранения значения объема призмы}
    S: double;   { Поле для хранения значения площади призмы}
    STr: double; { Поле для хранения значения площади треугольного основания}
    function TianglBe: boolean; { Метод для проверки на существование треугольника}
  public
    H: double;        { Поле для хранения значения максимальной высоты призмы}
    a1: double;       { Поле для хранения значения длины 1 стороны треугольника}
    a2: double;       { Поле для хранения значения длины 2 стороны треугольника}
    a3: double;       { Поле для хранения значения длины 3 стороны треугольника}
    procedure Ploshad; { Метод для определения площадь поверхности призмы}
    procedure Objoem;  { Метод для определения объем призмы}
 
 
  end;
 
 
function TTrianglePrism.TianglBe: boolean;
begin
  if ((a1 + a2) > a3) and ((a1 + a3) > a2) and ((a2 + a3) > a1) then
    TianglBe:= true
  else
    TianglBe:= false;
end;
 
 
procedure TTrianglePrism.Ploshad;
var
  p: double;
begin
  if TianglBe then
    begin
      p:= (a1+a2+a3)/2;
      STr:= sqrt(p*(p-a1)*(p-a2)*(p-a3));
      S:= 2*Str + H*(a1+a2+a3);
      writeln('Площадь призмы: ',S:0:4);
    end
  else
    writeln('Треугольника с таким длинами сторон не существует.',#13#10,'Вычисление площади невозможно.');
end;
 
 
procedure TTrianglePrism.Objoem;
var
  p: double;
begin
  if TianglBe then
    begin
      p:= (a1+a2+a3)/2;
      STr:= sqrt(p*(p-a1)*(p-a2)*(p-a3));
      V:= H*STr;
      Writeln('Объем призмы: ',V:0:4);
    end
  else
    writeln('Треугольника с таким длинами сторон не существует.',#13#10,'Вычисление объема невозможно');
end;
 
var
  Prism: TTrianglePrism;
 
begin
  Prism:= TTrianglePrism.Create;
  write('Высота призмы = ');
  readln(Prism.h);
  write('Длина 1-й стороны треугольника основания = ');
  readln(Prism.a1);
  write('Длина 2-й стороны треугольника основания = ');
  readln(Prism.a2);
  write('Длина 3-й стороны треугольника основания = ');
  readln(Prism.a3);
  Prism.Ploshad;
  Prism.Objoem;
  Prism.Free;
  readln;
end.
0
-21 / 1 / 0
Регистрация: 15.11.2019
Сообщений: 212
17.03.2020, 11:39  [ТС] 9
Теперь ошибка в 76 строчке
неизвестное имя Free
0
Почетный модератор
64291 / 47589 / 32740
Регистрация: 18.05.2008
Сообщений: 115,181
17.03.2020, 12:05 10
Вам метод Free нужно описать в классе.
0
-21 / 1 / 0
Регистрация: 15.11.2019
Сообщений: 212
17.03.2020, 12:33  [ТС] 11
а можно по подробнее?
0
Почетный модератор
64291 / 47589 / 32740
Регистрация: 18.05.2008
Сообщений: 115,181
17.03.2020, 14:00 12
Я не пойму в каком Паскале Вы пишете, раздел для простого АВС, код от ValentinNemo, написан скорее всего во Free Pascal.
0
-21 / 1 / 0
Регистрация: 15.11.2019
Сообщений: 212
17.03.2020, 22:11  [ТС] 13
Я работаю в обычном Pascal ABC
0
Почетный модератор
64291 / 47589 / 32740
Регистрация: 18.05.2008
Сообщений: 115,181
18.03.2020, 06:23 14
Pascal
1
Prism.Destroy;
0
-21 / 1 / 0
Регистрация: 15.11.2019
Сообщений: 212
24.03.2020, 00:49  [ТС] 15
Ошибка такая же что и была
0
Почетный модератор
64291 / 47589 / 32740
Регистрация: 18.05.2008
Сообщений: 115,181
24.03.2020, 07:04 16
Вот переписал в простом АВС, поправил все, ошибок нет в том числе и на Prism.destroy.
0
-21 / 1 / 0
Регистрация: 15.11.2019
Сообщений: 212
26.03.2020, 10:11  [ТС] 17
где?
0
Почетный модератор
64291 / 47589 / 32740
Регистрация: 18.05.2008
Сообщений: 115,181
26.03.2020, 10:17 18
Ну прям хочется ответить в рифму... Но держи.

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
program PPP;
type
  TTrianglePrism = class
  private
    V: real;   { Поле для хранения значения объема призмы}
    S: real;   { Поле для хранения значения площади призмы}
    STr: real; { Поле для хранения значения площади треугольного основания}
    function TianglBe: boolean; { Метод для проверки на существование треугольника}
  public
    H: real;        { Поле для хранения значения максимальной высоты призмы}
    a1: real;       { Поле для хранения значения длины 1 стороны треугольника}
    a2: real;       { Поле для хранения значения длины 2 стороны треугольника}
    a3: real;       { Поле для хранения значения длины 3 стороны треугольника}
    procedure Ploshad; { Метод для определения площадь поверхности призмы}
    procedure Objoem;  { Метод для определения объем призмы}
 
 
  end;
 
 
function TTrianglePrism.TianglBe: boolean;
begin
  if ((a1 + a2) > a3) and ((a1 + a3) > a2) and ((a2 + a3) > a1) then
    TianglBe:= true
  else
    TianglBe:= false;
end;
 
 
procedure TTrianglePrism.Ploshad;
var
  p: real;
begin
  if TianglBe then
    begin
      p:= (a1+a2+a3)/2;
      STr:= sqrt(p*(p-a1)*(p-a2)*(p-a3));
      S:= 2*Str + H*(a1+a2+a3);
      writeln('Площадь призмы: ',S:0:4);
    end
  else
    writeln('Треугольника с таким длинами сторон не существует.',#13+#10,'Вычисление площади невозможно.');
end;
 
 
procedure TTrianglePrism.Objoem;
var
  p: real;
begin
  if TianglBe then
    begin
      p:= (a1+a2+a3)/2;
      STr:= sqrt(p*(p-a1)*(p-a2)*(p-a3));
      V:= H*STr;
      Writeln('Объем призмы: ',V:0:4);
    end
  else
    writeln('Треугольника с таким длинами сторон не существует.',#13+#10,'Вычисление объема невозможно');
end;
 
var
  Prism: TTrianglePrism;
 
begin
  Prism:= TTrianglePrism.Create;
  write('Высота призмы = ');
  readln(Prism.h);
  write('Длина 1-й стороны треугольника основания = ');
  readln(Prism.a1);
  write('Длина 2-й стороны треугольника основания = ');
  readln(Prism.a2);
  write('Длина 3-й стороны треугольника основания = ');
  readln(Prism.a3);
  Prism.Ploshad;
  Prism.Objoem;
  Prism.Destroy;
end.
Миниатюры
Объект прямая треугольная призма  
1
-21 / 1 / 0
Регистрация: 15.11.2019
Сообщений: 212
26.03.2020, 11:18  [ТС] 19
Я особенный какой то?
Миниатюры
Объект прямая треугольная призма  
0
Почетный модератор
64291 / 47589 / 32740
Регистрация: 18.05.2008
Сообщений: 115,181
26.03.2020, 11:25 20
Лучший ответ Сообщение было отмечено Hades_chn как решение

Решение

Ты почему не написал что не АВС, а АВС.net?
Поскольку в PascalABC.NET память управляется сборщиком мусора, деструктор в PascalABC.NET не играет никакой роли и представляет собой обычную процедуру-метод.
Просто убери строку
Pascal
1
Prism.Destroy;
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.03.2020, 11:25
Помогаю со студенческими работами здесь

Прямая призма
Основание прямой призмы - прямоугольная трапеция, параллельные стороны которой равны 6м и 10м, а...

Прямая призма
Всем привет. Помогите сделать: Основание прямой призмы треугольник со сторонами 5 и 3 и угла...

Прямая призма наибольшего объёма
Доброго времени суток, долго думаю над эффективным алгоритмом для решения задачи, может кто идейку...

Создать класс прямая призма
Создать класс, в котором указываются сведения о прямой призме, в основе которой лежит правильный...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru