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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.04.2008, 15:17   #11
B_N
Новичок
Джуниор
 
Регистрация: 18.01.2008
Сообщений: 1,720
По умолчанию

Из окна значение вводится в соответствии с региональными настройками Windows. В русском языке, в отличие от паскаля, дробная часть отделяется запятой. Так что или вводите в окне значения через запятую, или сделайте что-то вроде:
Код:
var
    x : extended;
    tf : TFormatSettings;
//...................
//...................
    tf.DecimalSeparator := '.';
    x := StrToFloat(Data.Text, tf);
//...................
//...................
P.S. "#" - это кнопка над окном.
B_N вне форума Ответить с цитированием
Старый 23.04.2008, 15:42   #12
Auster
Пользователь
 
Регистрация: 22.04.2008
Сообщений: 11
По умолчанию

сделал как посоветовали, стала есть точки, не ест запятые, а ответ выдает в запятых((
Auster вне форума Ответить с цитированием
Старый 23.04.2008, 17:51   #13
Auster
Пользователь
 
Регистрация: 22.04.2008
Сообщений: 11
Печаль

Задача малость усложнилась(, на самом деле мне нужно было сделать что-то типа двойной интерполяции, т.е.исходных данных - 2 величины, а результат одна. Посмотрите плиз где напортачил?
[CODE]

unit Unit1;

interface

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

type
TForm1 = class(TForm)
DataL: TEdit;
ENTER: TEdit;
Button1: TButton;
Label1: TLabel;
DataH: TEdit;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;
L:array[1..7] of Real=(0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6);
LY1:array[1..7] of integer =(750, 660, 300, 310, 200, 110, 60);
LY2:array[1..7] of integer =(830, 680, 380, 320, 210, 125, 70);
LY3:array[1..7] of integer =(880, 700, 400, 340, 220, 130, 80);
LY4:array[1..7] of integer =(970, 730, 430, 370, 240, 140, 85);
LY5:array[1..7] of integer =(1050,770, 500, 400, 260, 150, 90);
LY6:array[1..7] of integer =(1170,820, 560, 440, 290, 165, 100);
LY7:array[1..7] of integer =(1260,850, 620, 480, 320, 180, 110);
LY8:array[1..7] of integer =(1340,900, 680, 520, 350, 195, 120);
LY9:array[1..7] of integer =(1420,950, 740, 560, 380, 210, 130);
LY10:array[1..7] of integer =(1500,1000, 800, 600, 410,225, 140);

H:array[1..10] of integer =(3, 4, 5, 7, 10, 15, 20, 25, 30, 35);
HY1:array[1..10] of integer =(750, 830, 880, 970, 1050, 1170, 1260, 1340, 1420, 1500);
HY2:array[1..10] of integer =(660, 680, 700, 730, 770, 820, 850, 900, 950, 1000);
HY3:array[1..10] of integer =(300, 380, 400, 430, 500, 560, 620, 680, 740, 800);
HY4:array[1..10] of integer =(310, 320, 340, 370, 400, 440, 480, 520, 560, 600);
HY5:array[1..10] of integer =(200, 210, 220, 240, 260, 290, 320, 350, 380, 410);
HY6:array[1..10] of integer =(110, 125, 130, 140, 150, 1650, 180, 195, 210, 225);
HY7:array[1..10] of integer =(60, 70, 80, 85, 90, 100, 110, 120, 130, 140);

LW:Real;
HW:real;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
i:integer;
j:integer;

for j:=1 to 10 do
if StrToFloat(DataH.Text)>=H[j]
then if StrToFloat(DataH.Text)<=H[j+1]
then begin
HW:=(HY1[j]+((HY2[j+1]-HY1[j])/(H[j+1]-H[j]))*(StrToFloat(DataH.Text)-H[j]));
for i:=1 to 7 do
if StrToFloat(DataL.Text)>=L[i]
then if StrToFloat(DataL.Text)<=L[i+1]
then begin
LW:=(LY1[i]+((LY2[i+1]-LY1[i])/(L[i+1]-L[i]))*(StrToFloat(DataL.Text)-L[i]));

Enter.Text:=FloatToStr(здесь как мне кажется нужно провести интерполяцию между 2-мя полученными величинами, но не соображу как?);
end
end;
end;
end.
CODE]
Auster вне форума Ответить с цитированием
Старый 23.04.2008, 19:19   #14
B_N
Новичок
Джуниор
 
Регистрация: 18.01.2008
Сообщений: 1,720
По умолчанию

Цитата:
Сообщение от Auster Посмотреть сообщение
Enter.Text:=FloatToStr(здесь как мне кажется нужно провести интерполяцию между 2-мя полученными величинами, но не соображу как?);
Вы бы лучше оформили интерполяцию в виде отдельной функции. А выводить лучше в Memo, пожалуй, у Вас же много результатов будет.
B_N вне форума Ответить с цитированием
Старый 23.04.2008, 21:27   #15
Auster
Пользователь
 
Регистрация: 22.04.2008
Сообщений: 11
По умолчанию

Спасибо, но право и не знаю, что и ответить. Пойду пораскину мозгами)
Auster вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибки delphin100 Операционные системы общие вопросы 12 17.04.2008 14:15
Задачка в delphi, вылазят ошибки... Absent Помощь студентам 3 17.02.2008 15:54
Ошибки Terran Общие вопросы Delphi 3 05.02.2008 20:47
[Основы ТАУ]Решение задачи идентификации линейной динамической системы... Tanzilit Помощь студентам 1 17.01.2008 03:09
соединение точек с помощью линейной интерпаляции и интерпаляции кубическими сплайнами. yulia Помощь студентам 6 09.10.2007 07:38