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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 11.11.2009, 21:19   #1
Panika
Пользователь
 
Регистрация: 08.11.2009
Сообщений: 28
Восклицание Программа выдает ошибку на нуле

программа вычислет sin, cos, tg, ctg (спасибо тебе, ОДИНОЧЕСТВО В СЕТИ, только я ее переделала, препода тот вариант не устроил) и сейчас она ругается на ноль. уже не знаю сто и делать, ошибку просто не вижу. Помогите, плиз....
Код:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

type
  TCalc = class
   x, a, b:real;
   d, c: real;
   procedure Calc(Inp: string);
   function GetSin: string;
   function GetCos: string;
   function GetTg: string;
   function GetCTg: string;
  private
  public
  end;
var
  Form1: TForm1;
  Calc: TCalc;


implementation

{$R *.dfm}
procedure TCalc.Calc(Inp: string);
begin
 x:=StrToFloat(Inp);
 a:=exp(x);
 b:=exp(-x);
 d:=(a-b)/2;
 c:=(a+b)/2;
end;

function TCalc.GetCos: string;
begin
 Result := 'cos(x)='+floattostr(c);
end;

function TCalc.GetSin: string;
begin
 Result := 'sin(x)='+floattostr(d);
end;

function TCalc.GetTg: string;
begin
  Result := 'tg(x)='+floattostr(d/c);
  end;

function TCalc.GetCTg: string;
begin
  Result := 'ctg(x)='+floattostr(c/d)
  end;

procedure TForm1.Button1Click(Sender: TObject);
  begin
  Calc := TCalc.Create;
  Calc.Calc(Edit1.Text);
  Label1.Caption := Calc.GetSin;
  Label2.Caption := Calc.GetCos;
  Label3.Caption := Calc.GetTg;
  Label4.Caption := Calc.GetCTg;
end;

end.

Последний раз редактировалось Stilet; 12.11.2009 в 09:11.
Panika вне форума Ответить с цитированием
Старый 11.11.2009, 21:42   #2
Panika
Пользователь
 
Регистрация: 08.11.2009
Сообщений: 28
Радость народ,будьте внимательны!!!! иногда ошибки в перепутанных переменных

я свою ошибку нашла и исправила.
вот вам текст программы, может кому и пригодится:
Код:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Button1: TButton;
    Label5: TLabel;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

type
  TCalc = class
   x, a, b:real;
   d, c: real;
   procedure Calc(Inp: string);
   function GetSin: string;
   function GetCos: string;
   function GetTg: string;
   function GetCTg: string;
  private
  public
  end;
var
  Form1: TForm1;
  Calc: TCalc;


implementation

{$R *.dfm}
procedure TCalc.Calc(Inp: string);
begin
 x:=StrToFloat(Inp);
 a:=exp(x);
 b:=exp(-x);
 d:=(a-b)/2;
 c:=(a+b)/2;
end;

function TCalc.GetCos: string;
begin
 Result := 'cos(x)='+floattostr(c);
end;

function TCalc.GetSin: string;
begin
 Result := 'sin(x)='+floattostr(d);
end;

function TCalc.GetTg: string;
begin
  if c<>0 then
  Result := 'tg(x)='+floattostr(d/c)
  else if c=0 then Result := 'tg(x)=не определен'
  end;

function TCalc.GetCTg: string;
begin
  if d<>0 then
  Result := 'ctg(x)='+floattostr(c/d)
  else if d=0 then Result := 'ctg(x)=не определен'
  end;

procedure TForm1.Button1Click(Sender: TObject);
  begin
  Calc := TCalc.Create;
  Calc.Calc(Edit1.Text);
  Label1.Caption := Calc.GetSin;
  Label2.Caption := Calc.GetCos;
  Label3.Caption := Calc.GetTg;
  Label4.Caption := Calc.GetCTg;
end;

end.

Последний раз редактировалось Stilet; 12.11.2009 в 09:11.
Panika вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Условие if выдает ошибку прикомпиляции xLoMMx Общие вопросы C/C++ 3 11.05.2009 15:32
Макрос выдает ошибку Romuald Microsoft Office Excel 2 15.04.2009 22:42
ADOQuery - выдает ошибку kiber0net0 Общие вопросы Delphi 2 02.09.2008 19:49
Windows2003 ошибку выдает Cantana Windows 11 07.12.2007 06:04
MasterSource - выдает ошибку nataly_ukr БД в Delphi 10 12.10.2007 13:49