Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 27.04.2015, 20:40
artem8021 artem8021 вне форума
Прохожий
 
Регистрация: 27.04.2015
Сообщения: 2
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию Помогите пожалуйста с перевод программы с Pascal на Delphi

Помогите пожалуйста с перевод программы с Pascal на Delphi
Заданы действительные числа a, b, c, d. Найти площадь пятиугольника, изображенного на рисунке ниже. Определить процедуру вычисления площади треугольника по трем сторонам.

Код:
uses crt;
procedure Plosh(a,b,c:real;var s:real);
var p:real;
begin
p:=(a+b+c)/2;
s:=sqrt(p*(p-a)*(p-b)*(p-c));
end;
var a,b,c,d,s1,s2,s3,s:real;
begin
writeln('Введите 4 стороны пятиугольника:');
repeat
write('1<a<3 a=');
read(a);
until(a>1)and(a<3);
repeat
write('0.5<b<4.5 b=');
read(b);
until(a>0.5)and(a<4.5);
repeat
writeln('c,d c+d>2.5');
read(c,d);
until c+d>2.5;
Plosh(1,a,2,s1);
Plosh(2,b,2.5,s2);
Plosh(2.5,c,d,s3);
s:=s1+s2+s3;
write('S=',s:0:1);
end.
Админ: Пользуемся тегами для оформления кода!

Последний раз редактировалось Admin, 27.04.2015 в 21:00.
Ответить с цитированием
  #2  
Старый 27.04.2015, 22:29
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,090
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Ну, если тупо перевести, то как-то так:
Код:
program Moya_fignya;

{$APPTYPE CONSOLE}

procedure Plosh(a,b,c:real;var s:real);
var p:real;
begin
p:=(a+b+c)/2;
s:=sqrt(p*(p-a)*(p-b)*(p-c));
end;

var a,b,c,d,s1,s2,s3,s:real;

begin
writeln('Введите 4 стороны пятиугольника:');
repeat
write('1<a<3 a=');
read(a);
until(a>1)and(a<3);
repeat
write('0.5<b<4.5 b=');
read(b);
until(a>0.5)and(a<4.5);
repeat
writeln('c,d c+d>2.5');
read(c,d);
until c+d>2.5;
Plosh(1,a,2,s1);
Plosh(2,b,2.5,s2);
Plosh(2.5,c,d,s3);
s:=s1+s2+s3;
write('S=',s:0:1);

readln; // что бы окно сразу не закрывалось.
end.
Ответить с цитированием
Этот пользователь сказал Спасибо lmikle за это полезное сообщение:
artem8021 (28.04.2015)
  #3  
Старый 28.04.2015, 20:18
artem8021 artem8021 вне форума
Прохожий
 
Регистрация: 27.04.2015
Сообщения: 2
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

а если с помощью лейблов и кнопок и всякий другой фигни
Ответить с цитированием
  #4  
Старый 28.04.2015, 21:51
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,090
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Цитата:
Сообщение от artem8021
а если с помощью лейблов и кнопок и всякий другой фигни

Ну, в принципе, все тоже самое, только заместо Write надо выводить в Label, а заместо read - читать из Edit'ов. а запускать весь расчет по клику на кнопке. Желательно так же сделать проверку входных значений.
Типа такого:
Код:
procedure TForm1.Button1Click(Sender);
var
  a, b, c, d, s, s1, s2, s3 : Double;
begin
  a := strToFload(Edit1.Text);
  b := strToFload(Edit1.Text);
  c := strToFload(Edit1.Text);
  d := strToFload(Edit1.Text);
  if (a <= 1) or (a >=3) then raise Exception.Create('a not in 1..3');
  if (b <= .5) or (b >=4.5) then raise Exception.Create('b not in .5..4.5');
  if (c+d < 2.5) then raise Exception.Create('c+d < 2.5');
  Plosh(1,a,2,s1);
  Plosh(2,b,2.5,s2);
  Plosh(2.5,c,d,s3);
  s:=s1+s2+s3;  
  Label1.Caption := FloatTostr(s);
end;
Ответить с цитированием
Этот пользователь сказал Спасибо lmikle за это полезное сообщение:
artem8021 (28.04.2015)
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 23:38.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025