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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.04.2018, 14:25   #1
GrifFrogge
Новичок
Джуниор
 
Регистрация: 12.04.2018
Сообщений: 1
По умолчанию Проблема обхода ошибок Delphi7 portadble

Нужно было составить программу для вычисления значения функции с обходом всех ошибок:
f=((1/cos^2(X))-cos(x))/(3*sin^2(x)* ln(cos(x)))
не могу понять в чём ошибка код работает но при вводе букв выдаёт
не то что должно.

Код:
unit Main;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls,Math;

type
  TForm1 = class(TForm)
    lblR: TLabel;
    lblO: TLabel;
    edtR: TEdit;
    btnRashet: TButton;
    btnExit: TButton;
    procedure btnRashetClick(Sender: TObject);

    procedure btnExitClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}


procedure TForm1.btnExitClick(Sender: TObject);
begin
close
end;
procedure TForm1.btnRashetClick(Sender: TObject);
var
x:real;
F:real;
begin
x:=StrToInt(edtR.Text);
  if (cos(x)=0)  or   ((3*power(2,sin(x))*ln(cos(x)))=0) then
  MessageDlg('error', mtError,[mbCancel], 0)
    else
    begin
      if power(2,cos(x))=0 then
      MessageDlg('error',mtError,[mbCancel], 0)
      else
      begin
      try
        x:=StrToInt(edtR.Text);
        F:=(1/power(2,cos(x)))-cos(x)/(3*power(2,sin(x))*ln(cos(x)));
        lblO.Caption:='ioaao:'+FloatToStr(F);
      except
       on EConvertError do MessageDlg('error', mtError,[mbCancel], 0);
       on EDivByZero do
        begin
         MessageDlg('error', mtError,[mbCancel], 0);
         edtR.Text:='1';
        end;
    end;
end;
end;
end;
end.
_____
Код программы нужно выделять (форматировать) тегами [CODE] (читать FAQ)
Модератор

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

Цитата:
Сообщение от GrifFrogge Посмотреть сообщение
power(2,cos(x))
Вы функцию power() используете НЕВЕРНО. параметры местами перепутаны.
Вы вычисляете 2^cos(x)
а Вам нужно cos(x)^2
а это СОВСЕМ разные вещи.

p.s. остальное не смотрел.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 12.04.2018, 16:15   #3
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Цитата:
Delphi7 portadble
Кто тебя заставляет юзать D7 в 2018 году? Ты захвачен в плен? Тебе угрожают оружием? Твоих родственников держат в заложниках?!!!

ЧТО ЗА ПРИЧИНА?!
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 15.04.2018, 09:19   #4
newerow1989
Я самый любопытный
Участник клуба
 
Аватар для newerow1989
 
Регистрация: 24.07.2012
Сообщений: 1,987
По умолчанию

Цитата:
Проблема обхода ошибок Delphi7
Обычно делают так:
Код:
try
<ваш код>
except
<обработка ошибок (можно пустую строчку оставить)>
end;
С запрограммированным приветом, Неверов Евгений!
Сайт: http://newerow1989.ru
[Паскаль] [Delphi]
newerow1989 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Delphi7 Проблема с кодировкой ivan.tiran Общие вопросы Delphi 6 10.04.2015 19:26
Проблема с TVideoCap на delphi7 eldalex Мультимедиа в Delphi 4 29.11.2010 10:07
Проблема с рисованием на Timage Delphi7 Dalagardi Помощь студентам 1 19.04.2010 20:48