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

Delphi Sources



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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 02.04.2009, 21:45
SmaZz SmaZz вне форума
Прохожий
 
Регистрация: 27.03.2009
Сообщения: 10
Репутация: 11
По умолчанию Помогите найти ошибку

мне надо посчитать площадь треугольника по формуле s:=sqrt(r*(r-m)*(r-n)*(r-k)) где m,n,k - стороны треугольника, r - полупериметр треугольника. надо посчитать это через подпрограмму.
затем посчитать сумму и разность двух других через подпрограмму



Код:
procedure TForm1.Button1Click(Sender: TObject);
var a,b,c,p,l,f,S1,S2:real;
Function SmaZz(m:real;n:real;k:real):real;
var r,s:real;
begin
r:=(m+n+k)/2;
s:=sqrt(r*(r-m)*(r-n)*(r-k));
end;
begin
a:=strtofloat(edit1.text);
b:=strtofloat(edit2.text);
c:=strtofloat(edit3.text);
p:=strtofloat(edit4.text);
l:=strtofloat(edit5.text);
f:=strtofloat(edit6.text);
S1:=SmaZz(a,b,c);
S2:=SmaZz(p,l,f);
Label9.caption:=' Сложение = '+floattostr(s1+s2)+#13+' Вычитание = '+floattostr(s1-s2)
end;

end.
Ответить с цитированием
  #2  
Старый 02.04.2009, 22:46
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,087
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

А какую ошибку-то дает?
Ответить с цитированием
  #3  
Старый 02.04.2009, 22:58
Аватар для Konrad
Konrad Konrad вне форума
Эксперт
 
Регистрация: 19.03.2009
Сообщения: 1,261
Репутация: 45834
По умолчанию

Код:
Function SmaZz(m:real;n:real;k:real):real;
var r:real;
begin
r:=(m+n+k)/2;
SmaZz:=sqrt(r*(r-m)*(r-n)*(r-k));
end;
И, кстати, добавь проверку, иначе может получиться корень(-1*...)

Последний раз редактировалось Konrad, 02.04.2009 в 23:04.
Ответить с цитированием
  #4  
Старый 02.04.2009, 23:01
SmaZz SmaZz вне форума
Прохожий
 
Регистрация: 27.03.2009
Сообщения: 10
Репутация: 11
По умолчанию

lmikle
он не правильно считает
пишет что в когда сложение там число в 23 степени, а при вычитании 0
Konrad
эт то спасиб
просто первый раз с подпрограммами работаю

Последний раз редактировалось SmaZz, 02.04.2009 в 23:07.
Ответить с цитированием
Ответ


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

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