Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.10.2015, 15:20   #1
indext
Пользователь
 
Регистрация: 19.10.2015
Сообщений: 25
По умолчанию Помогите с программой для расчета площади треугольника(Delphi)

площадь треугольника
Код:
p:=(a+b+c)/2;
S:=sqrt(p*(p-a)*(p-b)*(p-c));

Последний раз редактировалось indext; 19.10.2015 в 19:17.
indext вне форума Ответить с цитированием
Старый 19.10.2015, 15:28   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Может стоит показать что не получается?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 19.10.2015, 16:21   #3
indext
Пользователь
 
Регистрация: 19.10.2015
Сообщений: 25
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Может стоит показать что не получается?
Я вставил три Edit и одну кнопку Button,потом по клику кнопки делаю проверку на
Код:
if (Edit1.Text > 0) or (Edit2.Text > 0) or (Edit3.Text > 0) then do
  begin
и происходят ошибки,не всё знаю просто,что-то не так делаю..подскажите,спасибо
indext вне форума Ответить с цитированием
Старый 19.10.2015, 16:36   #4
Dvoishnik
Форумчанин
 
Регистрация: 12.02.2011
Сообщений: 808
По умолчанию

Цитата:
Сообщение от indext Посмотреть сообщение
Код:
if (Edit1.Text > 0) or (Edit2.Text > 0) or (Edit3.Text > 0) then do
  begin
дело в в том что вы пытаетесь сравнить разные типы данных
проверку на пустоту Edit можно сделать так

Код:
if (Edit1.Text <> '') and (Edit2.Text <> '') and (Edit3.Text <> '') then
begin
код выполняемый если Edit-ы не пуслы
end;
проверка на введенные нули

Код:
if (StrToInt(Edit1.Text) <= 0) or (StrToInt(Edit2.Text) <= 0) 
        or (StrToInt(Edit3.Text) <= 0) then
begin
код выполняемый если значение хоть одного Edit-а меньше либо равно нулю
end;
а вообще для работы с числами удобней использовать SpinEdit
Терпение!Дежурный экстрасенс скоро свяжется с вами!
Dvoishnik вне форума Ответить с цитированием
Старый 19.10.2015, 16:42   #5
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Лучше StrToIntDef(Edit1.Text,0) - и преобразует, и ноль вернет, если что не так в строке
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 19.10.2015, 16:44   #6
indext
Пользователь
 
Регистрация: 19.10.2015
Сообщений: 25
По умолчанию

Цитата:
Сообщение от Dvoishnik Посмотреть сообщение
дело в в том что вы пытаетесь сравнить разные типы данных
проверку на пустоту Edit можно сделать так

Код:
if (Edit1.Text <> '') and (Edit2.Text <> '') and (Edit3.Text <> '') then
begin
код выполняемый если Edit-ы не пуслы
end;
проверка на введенные нули

Код:
if (StrToInt(Edit1.Text) <= 0) or (StrToInt(Edit2.Text) <= 0) 
        or (StrToInt(Edit3.Text) <= 0) then
begin
код выполняемый если значение хоть одного Edit-а меньше либо равно нулю
end;
а вообще для работы с числами удобней использовать SpinEdit
спасибо,а как мне взаимодействовать с InputBox? такую функцию надо применить (пункты В и Г)
indext вне форума Ответить с цитированием
Старый 19.10.2015, 16:44   #7
type_Oleg
Старожил
 
Аватар для type_Oleg
 
Регистрация: 02.03.2008
Сообщений: 2,499
По умолчанию

Цитата:
Сообщение от indext Посмотреть сообщение
... на существование треугольника;..
Код:
 if (a>=(b+c))or(b>=(a+c))or(c>=(a+b)) then
   begin
    ShowMessage('Такого треугольника не бывает');
    Exit;
   end;
 // а здесь всякие вычисления
type_Oleg вне форума Ответить с цитированием
Старый 19.10.2015, 16:46   #8
indext
Пользователь
 
Регистрация: 19.10.2015
Сообщений: 25
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
Лучше StrToIntDef(Edit1.Text,0) - и преобразует, и ноль вернет, если что не так в строке
спасибо,но в задании мне именно проверка нужна на нули,чтобы InputBox выдать при введенном нуле

А как мне взять значения из эдитов чтобы проверить их по кнопке?Присвоить както эдиты к переменным?)

Последний раз редактировалось Stilet; 19.10.2015 в 17:35.
indext вне форума Ответить с цитированием
Старый 19.10.2015, 17:02   #9
Dvoishnik
Форумчанин
 
Регистрация: 12.02.2011
Сообщений: 808
По умолчанию

Цитата:
Сообщение от indext Посмотреть сообщение
А как мне взять значения из эдитов чтобы проверить их по кнопке?Присвоить както эдиты к переменным?)
не совсем понял вопрос.
на процедуру

кидаете на форму кнопку кликаете на нее два раза пишете код в получившейся процедуре
Код:
procedure TForm1.Button1Click(Sender: TObject);
begin

if (StrToInt(Edit1.Text) <= 0) or (StrToInt(Edit2.Text) <= 0) 
     or (StrToInt(Edit3.Text) <= 0) then
      begin
       код выполняемый если значение хоть одного Edit-а меньше либо равно нулю
      end;

end;
или как предложил более опытный товарищ

Код:
procedure TForm1.Button1Click(Sender: TObject);
begin

if (StrToIntDef(Edit1.Text) <= 0) or (StrToIntDef(Edit2.Text) <= 0) 
     or (StrToIntDef(Edit3.Text) <= 0) then
      begin
       код выполняемый если значение хоть в одного Edit-а не корректно   
      end;

end;
Цитата:
Сообщение от indext Посмотреть сообщение
спасибо,а как мне взаимодействовать с InputBox? такую функцию надо применить (пункты В и Г)
для в
Код:
Edit1.text := InputBox( 'заголовок сообщение', 'сообщение');
или
Код:
SpinEdit1.Value := StrToInt(InputBox( 'заголовок сообщение', 'сообщение'));
а для Г можно использовать MessageDlg
http://www.delphibasics.ru/MessageDlg.php
Терпение!Дежурный экстрасенс скоро свяжется с вами!

Последний раз редактировалось Stilet; 19.10.2015 в 17:35.
Dvoishnik вне форума Ответить с цитированием
Старый 19.10.2015, 17:24   #10
indext
Пользователь
 
Регистрация: 19.10.2015
Сообщений: 25
По умолчанию

Цитата:
Сообщение от Dvoishnik Посмотреть сообщение
для в
Код:
Edit1.text := InputBox( 'заголовок сообщение', 'сообщение');
или
Код:
SpinEdit1.Value := StrToInt(InputBox( 'заголовок сообщение', 'сообщение'));
а для Г можно использовать MessageDlg
http://www.delphibasics.ru/MessageDlg.php
InputBox получается применить,а вот как быть со сторонами треугольника?Как мне по формуле высчитывать через эдиты?Переменные создавать?

и как проверку на треугольник сделать?)

Последний раз редактировалось Stilet; 19.10.2015 в 17:36.
indext вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите с программой для расчета объема жидкости в горизонтальной цилиндрической емкости. boltimur Фриланс 17 27.05.2015 09:04
Написать программу вычисления площади многоугольника используя формулу для вычисления площади треугольника в качестве подпрограммы сердце Паскаль, Turbo Pascal, PascalABC.NET 0 24.12.2012 18:21
Задача о площади треугольника Kiss31 Общие вопросы C/C++ 5 13.10.2012 08:03
процедуры и функции - возможно ли построение треугольника по длинам сторон, вычисление площади треугольника по длинам сторон kazbek1 Паскаль, Turbo Pascal, PascalABC.NET 2 18.05.2012 10:38
определить функцию для расчета периметра треугольника Diplihe Microsoft Office Word 5 29.04.2010 05:21