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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 03.05.2014, 22:24   #1
lialia
Форумчанин
 
Регистрация: 08.12.2012
Сообщений: 116
Печаль Вывод в СтрингГрид

Здравствуйте . Такой вопрос,почему-то выводит в СтрингГриды только первый результат ,во все 10 строк. Видимо с циклом что-то ,но не знаю как исправить. И второй вопрос,там когда x[i] возвожу в квадрат,выводится 0 почему-то Подскажите как исправить,пожалуйста.
Код:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Label1: TLabel;
    Image1: TImage;
    Label2: TLabel;
    Label3: TLabel;
    Button1: TButton;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    StringGrid1: TStringGrid;
    Button2: TButton;
    procedure Button1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  n,i:integer;
  x,y,x_2,x_5,x_5_2: array[1..11] of real;
   a,b,h,razn,M2:real;
implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
a:=0.4;
b:=1.2;
  M2:=((0.5*1.44)-1)/(sqrt(power(((0.5*1.44+2)),5)));
  Label3.Caption:= floattostrf(m2,ffFixed,6,3);
   razn:=  b-a;
   n :=10;
   h:=razn/n;
   Label7.Caption:=floattostrf(n,ffFixed,6,3);
   label5.Caption:=floattostrf(h,ffFixed,6,3);

end;

procedure TForm1.FormCreate(Sender: TObject);
begin
stringgrid1.Cells[1,0]:='Xi';
stringgrid1.Cells[2,0]:='Xi^2';
stringgrid1.Cells[3,0]:='0.5Xi^2+2';
stringgrid1.Cells[4,0]:='(0.5Xi^2+2)^1/2';
stringgrid1.Cells[5,0]:='Y0,..,Y20';

end;

procedure TForm1.Button2Click(Sender: TObject);
var
i,n:integer;
begin
  n:=10;
i:=0; stringgrid1.Cells[0,i]:=inttostr(i);
for i:=0 to n+1 do
begin
 x_5[i]:=(0.5*(sqr(x[i]))+2);
 x_5_2[i]:=sqrt(0.5*(sqr(x[i]))+2);
  x_2[i]:= x[i]*x[i];
 x[i]:=0.4+i*h;
y[i]:=1/sqrt(0.5*(sqr(x[i]))+2);
    end;
    i:=1;
//----------------- итерации -------------------------------
REPEAT
//Memo1.Lines.Add(inttostr(i)+' '+floattostrf(x[i],ffFixed,6,3));

stringgrid1.Cells[0,i]:=inttostr(i);   // номер шага
stringgrid1.RowCount:=i+1;

stringgrid1.Cells[1,i]:=floattostrf(x[i],ffFixed,6,3);
 stringgrid1.Cells[2,i]:=floattostrf(x_2[i],ffFixed,6,3);
  stringgrid1.Cells[3,i]:=floattostrf(x_5[i],ffFixed,6,3);
stringgrid1.Cells[4,i]:=floattostrf(x_5_2[i],ffFixed,6,3);
stringgrid1.Cells[5,i]:=floattostrf(y[i],ffFixed,6,3);
inc(i);
UNTIL i>n
end;


end.
lialia вне форума Ответить с цитированием
Старый 03.05.2014, 22:33   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Цитата:
UNTIL i>n
Может наоборот?: UNTIL i<n
И почему не for?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 03.05.2014, 22:38   #3
lialia
Форумчанин
 
Регистрация: 08.12.2012
Сообщений: 116
По умолчанию

когда UNTIL i<n почему-то выводится только одна строка из 10
lialia вне форума Ответить с цитированием
Старый 03.05.2014, 22:42   #4
lialia
Форумчанин
 
Регистрация: 08.12.2012
Сообщений: 116
По умолчанию

я поменяла repeat-until на for выводит точно также,10 строк только первого результата.
lialia вне форума Ответить с цитированием
Старый 04.05.2014, 07:50   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от lialia Посмотреть сообщение
я поменяла repeat-until на for выводит точно также,10 строк только первого результата.
не разбирался. кинул ваш код в форму. запустил.
работает.
только сначала нужно нажимать на кнопку Button1, и только потом на кнопку Button2.


p.s. если Вас "вдруг" заинтересует такое странное поведение вашей программы, то задумайтесь, например, вот в этой строчке:
Код:
 x[i] := 0.4 + i * h;
чему равна переменная h (и где она задаётся)...
Serge_Bliznykov вне форума Ответить с цитированием
Старый 04.05.2014, 13:29   #6
lialia
Форумчанин
 
Регистрация: 08.12.2012
Сообщений: 116
По умолчанию

Спасибо большое)все исправила,работает правильно)
lialia вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Рандомное заполнение стринггрид toha_master Общие вопросы Delphi 4 19.10.2012 00:43
задача со стринггрид в делфи kayachka Помощь студентам 0 17.06.2011 20:43
как сложить числа в стринггрид? TotKtoNado БД в Delphi 0 25.04.2011 16:58
Функция и СтрингГрид qed Помощь студентам 1 13.06.2009 17:22
первод данных из дбГрид в СтрингГрид! ANT35 Помощь студентам 3 19.10.2008 21:08