![]() |
|
|
Регистрация | << Правила форума >> | 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)
|