![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Помогите пожалуйста с перевод программы с 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
|
|||
|
|||
|
Ну, если тупо перевести, то как-то так:
Код:
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
|
|||
|
|||
|
а если с помощью лейблов и кнопок и всякий другой фигни
|
|
#4
|
|||
|
|||
|
Цитата:
Ну, в принципе, все тоже самое, только заместо 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)
| ||