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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.01.2009, 22:14   #1
Dmitriy-e-nest
Пользователь
 
Регистрация: 15.01.2009
Сообщений: 16
По умолчанию Пожалуйста проверьте код программы!!!

procedure TForm1.Button1Click(Sender: TObject);
var a,b,x,y:real;
Label M1;
begin
a:=strtofloat(Edit1.Text);
b:=strtofloat(Edit2.Text);
if a>b then
if 1+cos(a)<>0 then x:=sqr(sin(a))/sqr(1+cos(a))
else
Begin
Showmessage('x not posible');
GoTo M1
end
else if a-b>0 then
if a*(ln(a-b)/(ln(10)))>0 then x:=(ln(a*(ln(a-b)/ln(10)))) else
begin
Showmessage('x not posible');
GoTo M1
end
else
begin
Showmessage('x not posible');
GoTo M1
end;

if x=a then if (b*x)>=0 and (x<>0) then
begin
if ((a+b)/x)+sqrt(b*x)>=0 then y:=sqrt((a+b)/x+sqrt(b*x))
else
Begin
Showmessage('x not posible');
GoTo M1
end;
begin
Showmessage('y not posible');
GoTo M1
end;
end
else if x<a then
if sin(x)/cos(x)+cos(x)/sin(x)<>0 then
y:=1/(sin(x)/cos(x)+cos(x)/sin(x))
else
begin
Showmessage('y not posible');
GoTo M1
end
else if abs(x-b)>=0 then
if (x-a)>=0 then
y:=exp(1/3*ln(abs(x-b)))*sqrt(x-b)
else
begin
Showmessage('x not posible');
GoTo M1
end
else
begin
Showmessage('y not posible');
GoTo M1
end;
Edit3.text:=FormatFloat('0.###',x);
Edit4.text:=FormatFloat('0.###',y);
M1:
end;


procedure TForm1.Button2Click(Sender: TObject);
begin
Edit1.clear;
Edit2.clear;
Edit3.clear;
Edit4.clear;
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
close
end;

end.
Dmitriy-e-nest вне форума Ответить с цитированием
Старый 15.01.2009, 22:20   #2
goblinyara
Форумчанин
 
Аватар для goblinyara
 
Регистрация: 02.01.2009
Сообщений: 340
По умолчанию

хмм... вместо GoTo M1 посоветовал бы "Exit;", при помощи которого вы просто прекращаете выполнение данной процедуры, в конкретном случае - Button1Click. а больше вроде ничего не разглядел.... хотя, навскидку - проверьте точки с запятыми... просто прогнать код возможности нет сейчас
DelphiWorld 6. Скачай, поставь, и будет тебе счастье=)
Программирование, как и любовь -- одно слово, за которым скрывается бесконечное множество занятий.
goblinyara вне форума Ответить с цитированием
Старый 15.01.2009, 22:25   #3
Dmitriy-e-nest
Пользователь
 
Регистрация: 15.01.2009
Сообщений: 16
По умолчанию

Пожалуйста прогоните через делфи, мне завтра здавать ((( вопрос степендии !!!
Dmitriy-e-nest вне форума Ответить с цитированием
Старый 15.01.2009, 22:48   #4
goblinyara
Форумчанин
 
Аватар для goblinyara
 
Регистрация: 02.01.2009
Сообщений: 340
По умолчанию

хммм... Label обязательно тебе нужен? или просто про Exit не знал?
DelphiWorld 6. Скачай, поставь, и будет тебе счастье=)
Программирование, как и любовь -- одно слово, за которым скрывается бесконечное множество занятий.
goblinyara вне форума Ответить с цитированием
Старый 15.01.2009, 22:53   #5
Dmitriy-e-nest
Пользователь
 
Регистрация: 15.01.2009
Сообщений: 16
По умолчанию

незнал, мне роде бы надо через label, вобщем программу компелирует, а когда нажимаешь расчет не считает "Y" !
Dmitriy-e-nest вне форума Ответить с цитированием
Старый 15.01.2009, 22:58   #6
Dmitriy-e-nest
Пользователь
 
Регистрация: 15.01.2009
Сообщений: 16
По умолчанию

laba73.rar Пожалуйста, гляньте!
Dmitriy-e-nest вне форума Ответить с цитированием
Старый 15.01.2009, 23:13   #7
goblinyara
Форумчанин
 
Аватар для goblinyara
 
Регистрация: 02.01.2009
Сообщений: 340
По умолчанию

Код:
procedure TForm1.Button1Click(Sender: TObject);
var a,b,x,y:real;
Label M1;
begin
a:=strtofloat(Edit1.Text);
b:=strtofloat(Edit2.Text);
if a>b then
  if 1+cos(a)<>0 then
    x:=sqr(sin(a))/sqr(1+cos(a))
    else
    Begin
      Showmessage('x not posible');
      GoTo M1
    end
  else
  if a-b>0 then
    if a*(ln(a-b)/(ln(10)))>0 then
      x:=(ln(a*(ln(a-b)/ln(10))))
      else
      begin
        Showmessage('x not posible');
        GoTo M1
      end
    else
    begin
      Showmessage('x not posible');
      GoTo M1
    end;

  if ((b*x)>=0) and (x<>0) then
  begin
    if ((a+b)/x)+sqrt(b*x)>=0 then
      y:=sqrt((a+b)/x+sqrt(b*x))
      else
      Begin
        Showmessage('x not posible');
        GoTo M1
      end;
  end
  else
    if x<a then
      if sin(x)/cos(x)+cos(x)/sin(x)<>0 then
        y:=1/(sin(x)/cos(x)+cos(x)/sin(x))
      else
      begin
        Showmessage('y not posible');
        GoTo M1
      end
    else
      if abs(x-b)>=0 then
        if (x-a)>=0 then
          y:=exp(1/3*ln(abs(x-b)))*sqrt(x-b)
        else
        begin
          Showmessage('x not posible');
          GoTo M1
        end
      else
      begin
        Showmessage('y not posible');
        GoTo M1
      end;
Edit3.text:=FormatFloat('0.###',x);
Edit4.text:=FormatFloat('0.###',y);
M1:
end;
из ошибок нашёл вот что:
Код:
if x=a then if (b*x)>=0 and (x<>0) then
в этой строке условие if x=a как раз таки и не давало проге считать y, так как после прохождения предыдущих условий x ну никак не равнялось введённому в Edit1... и условие "(b*x)>=0" надо взять в скобки...

Код:
....
end;
//До следующего комментария код вообще ненужный, т.к. даже не видно, к чему он относится...
begin
Showmessage('y not posible');
GoTo M1
end;
//Вот досюда короче:)
end
...
вроде работает правильно, насколько я могу судить о задании...
кстати, остальные процедуры нормальные

P.S. в следующий раз пишите структурированный код, а то в такой белиберде очень трудно с наскока разобраться
DelphiWorld 6. Скачай, поставь, и будет тебе счастье=)
Программирование, как и любовь -- одно слово, за которым скрывается бесконечное множество занятий.

Последний раз редактировалось goblinyara; 15.01.2009 в 23:15.
goblinyara вне форума Ответить с цитированием
Старый 15.01.2009, 23:25   #8
Dmitriy-e-nest
Пользователь
 
Регистрация: 15.01.2009
Сообщений: 16
По умолчанию

а можешь полностья рабочий код прислать? а то че-то я запутался
Dmitriy-e-nest вне форума Ответить с цитированием
Старый 15.01.2009, 23:33   #9
Dmitriy-e-nest
Пользователь
 
Регистрация: 15.01.2009
Сообщений: 16
По умолчанию

Программа запустилась без ошибок, но когда ввожу условие которое мне дано тоесть А=-0,6
В=1
программа не считает! (((
Dmitriy-e-nest вне форума Ответить с цитированием
Старый 15.01.2009, 23:49   #10
goblinyara
Форумчанин
 
Аватар для goblinyara
 
Регистрация: 02.01.2009
Сообщений: 340
По умолчанию

хммм... а напиши само задание полностью
DelphiWorld 6. Скачай, поставь, и будет тебе счастье=)
Программирование, как и любовь -- одно слово, за которым скрывается бесконечное множество занятий.
goblinyara вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проверьте пожалуйста.. NSvirus Паскаль, Turbo Pascal, PascalABC.NET 0 24.11.2008 01:39
Проверьте код ! Михаил Юрьевич Общие вопросы Delphi 7 08.02.2008 09:32
Проверьте пожалуйста код forumu Помощь студентам 1 27.12.2007 21:49
Проверьте пожалуйста текст программы Dim@ Помощь студентам 1 26.12.2007 19:53