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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 11.04.2012, 13:07   #1
flouwjke
Пользователь
 
Регистрация: 09.02.2012
Сообщений: 26
Восклицание Как из целочисленных, передалать в с плавоющей точкой

Добрый день Так получилось что судьба свела с делфи) я вопще не программист) и в первый раз сижу втыкаю в программирование, почитал книжки форумы и принципе кое что получилось, вот только с целочисленными) а надо тоже самое только с дробными, ну или как там с плавающей точкой Есть 4 поля в которые вбиваются значения, не целые, и по ниже приведенной схеме должно вычислятся значение и выводится.

Код:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    abt: TEdit;
    bbt: TEdit;
    cbt: TEdit;
    ebt: TEdit;
    Button1: TButton;
    Edit1: TEdit;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  a,b,c,d,e,f,g: integer;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
  a:=StrToInt(abt.Text);
  b:=StrToInt(bbt.Text);
  c:=StrToInt(cbt.Text);
  e:=StrToInt(ebt.Text);
    d:=trunc(a*Sqrt(c div b));
    f:=trunc(Sqrt(Sqr(e)-Sqr(a)));
    g:=f div d;
  ShowMessage(IntToStr(g));
end;

end.

Пытался через Strtofloat, Frac и mod. Что то вроде 
var
  Form1: TForm1;
  a,b,c,e:string;
  d,f,g,a1,b1,c1,e1:real;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
  a:=abt.Text;
  b:=bbt.Text;
  c:=cbt.Text;
  e:=ebt.Text;
    a1:=strtofloat(a);
    b1:=strtofloat(b);
    c1:=strtofloat(c);
    e1:=strtofloat(e);
      d:=Frac(a1*Sqrt(c1 mod b1));
      f:=Frac(Sqrt(Sqr(e1)-Sqr(a1)));
      g:=f mod d;
  ShowMessage(g);
end;

end.
Но ругается
[Error] Unit2.pas(43): Operator not applicable to this operand type
[Error] Unit2.pas(45): Operator not applicable to this operand type
[Error] Unit2.pas(46): Incompatible types: 'String' and 'Real'
[Fatal Error] Project1.dpr(5): Could not compile used unit '..\..\..\..\Unit2.pas'

Подскажите, кто знает



___________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE] (это кнопочка с решёточкой #)
Не забывайте об этом!
Модератор.

Последний раз редактировалось Serge_Bliznykov; 11.04.2012 в 13:26.
flouwjke вне форума Ответить с цитированием
Старый 11.04.2012, 18:09   #2
phomm
personality
Старожил
 
Аватар для phomm
 
Регистрация: 28.04.2009
Сообщений: 2,881
По умолчанию

Если повторить первый код с заменой на дробные то должно быть так:
Код:
d := a*Sqrt(c / b);
f := Sqrt(Sqr(e)-Sqr(a));
g := f / d;
ShowMessage(FloatToStr(g));
phomm вне форума Ответить с цитированием
Старый 11.04.2012, 19:40   #3
flouwjke
Пользователь
 
Регистрация: 09.02.2012
Сообщений: 26
По умолчанию

почему то без Round или trunc он вообще считать не хочет ругается(
flouwjke вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как выводить в файл числа разделенные запятой а не точкой Kukurudza Общие вопросы C/C++ 2 08.04.2012 01:32
Как в TextBox отделить 3 последних разряда точкой intestyx C# (си шарп) 3 24.02.2012 19:29
как сложить два числа с плавающей точкой forsy Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 19 29.03.2010 02:15
Нужно передалать одну строчку в коде (С++) Olya90 Помощь студентам 4 29.06.2009 21:57
сравнительный анализ различных методов сортировки целочисленных массивов Freak Помощь студентам 2 05.05.2008 12:37