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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 04.01.2015, 15:55   #1
Raina97
Пользователь
 
Регистрация: 06.11.2014
Сообщений: 37
Вопрос Даны два действительных числа х и у. Вычислить их сумму, разность, произведение и частное

Никак не могу разобраться что не так,или вообще не запускает программу,или запускает но ничего не считает..что не так?

Код:
procedure TForm1.Button3Click(Sender: TObject);
var p,p2,r:integer;
begin
edit2.Text:=inttostr(p);
edit3.Text:=inttostr(p2);
if RadioButton1.Checked=true then
r:=p+p2;
if RadioButton2.Checked=true then
r:=p-p2;
if RadioButton3.Checked=true then
r:=p*p2;
if RadioButton1.Checked=true then
r:=p/p2;
edit4.Text:=inttostr(r);
end;

end.


Еще делала так:


Код:
procedure TForm1.Button3Click(Sender: TObject);
var p,p2,r:Extended;
begin
p:= strtoint(edit2.Text);
p2:= strtoint(edit3.Text);
if RadioButton1.Checked=true then
r:=p+p2;
if RadioButton2.Checked=true then
r:=p-p2;
if RadioButton3.Checked=true then
r:=p*p2;
if RadioButton1.Checked=true then
r:=p/p2;
edit4.Text:=floattostr(r);
end;
Но тогда не работает сложение и деление..
прошу помощи)

Последний раз редактировалось Serge_Bliznykov; 04.01.2015 в 16:03.
Raina97 вне форума Ответить с цитированием
Старый 04.01.2015, 16:12   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

потому что вы перепутали и в случае деления проверяете опять RadioButton1, а нужно, судя по всему RadioButton4!!

ну и я бы так примерно написал:
Код:
procedure TForm1.Button3Click(Sender: TObject);
var x,y,r:Extended;
begin
  r := 0;
  x  := StrToFloat(edit2.Text);
  y  := StrToFloat(edit3.Text);
  if RadioButton1.Checked then
    r := x + y;
  if RadioButton2.Checked then
    r := x - y;
  if RadioButton3.Checked then
    r := x * y;
  if RadioButton4.Checked then
    r:= x/y;
  edit4.Text:=floattostr(r);
end;

p.s. ещё неплохо добавить:
1) проверку на то, что полях Edit2, Edit3 запись вещественного числа (иначе будет ошибка)
2) проверять, что y не равно нулю при выборе операции деления
Serge_Bliznykov вне форума Ответить с цитированием
Старый 04.01.2015, 16:13   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Второй вариант правильнее. Только strtoint нужно заменить на strtofloat.
Цитата:
а нужно, судя по всему RadioButton4!!
И это тоже.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 05.01.2015, 04:36   #4
Алексей_2012
t45t
Участник клуба
 
Аватар для Алексей_2012
 
Регистрация: 20.03.2012
Сообщений: 1,849
По умолчанию

Stilet)
Цитата:
Даны два действительных
Код:
procedure TForm1.Button3Click(Sender: TObject);
var x,y,r:Integer;
begin
  r := 0;
  Edit2.Text:=Trim(Edit2.Text);
  Edit3.Text:=Trim(Edit3.Text);
  try
  x  := StrToint(edit2.Text);
  except
    ShowMessage('Число должно быть дробным! Вы ввели: '+edit2.text);
    exit

  end;
   try
  y  := StrToint(edit3.Text);
    except
    ShowMessage('Число должно быть дробным! Вы ввели: '+edit3.text);
    exit

  end;

  if RadioButton1.Checked then
    r := x + y;
  if RadioButton2.Checked then
    r := x - y;
  if RadioButton3.Checked then
    r := x * y;
  if RadioButton4.Checked then
    r:= x div y;
  edit4.Text:=IntToStr(r);
end;
from dark to light)
Алексей_2012 вне форума Ответить с цитированием
Старый 05.01.2015, 07:57   #5
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Цитата:
Алексей_2012
Ну и че? Код для целых, да еще сообщения левые. А действительные куда убежали?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Даны два целых числа A и B (A < B). Найти произведение всех целых чисел от A до B включительно. nadyaH Помощь студентам 10 29.10.2013 09:08
. Даны натуральные M, N и матрица действительных чисел размером MxN. Определить числа B1,B2,...,BM, равные разностям наи Proskurina Паскаль, Turbo Pascal, PascalABC.NET 3 29.05.2012 23:59
Вычислить сумму и разность массивов Rasp15 Помощь студентам 8 07.02.2012 19:52
1. Вычислить сумму (по заданному выражению) 2. проверить, если ли у числа N два простых делителя Minney-Mouse Помощь студентам 4 10.11.2011 16:06
ДАНЫ 4 ЧИСЛА X Y Z W составит программу найти произведение все положительные нечетные числа Woland-itn Паскаль, Turbo Pascal, PascalABC.NET 3 23.03.2008 21:49