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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 08.06.2013, 00:03   #1
vovjkee
Пользователь
 
Регистрация: 07.06.2013
Сообщений: 17
По умолчанию Одномерный массив, изменить кнопку Run в программе

Кратко и по сути: есть рабочая программа, соответственно код и наработки, нужно изменить кнопку "RUN", то есть изменить код на то значение, которое показано на картинке. Возможно кто-то может помочь, все перепробовал, результат = 0. Буду благодарен.

Вот код ,в котором нужно изменить значение:
Код:
procedure TForm1.Button3Click(Sender: TObject);
begin
  For i:=1 To 4 Do
  For j:=1 To 5 Do
    If  (StringGrid1.Cells[j-1,i-1]='') Then
      SG1[i,j] := 0
    Else
      SG1[i,j] := StrToFloat(StringGrid1.Cells[j-1,i-1]);
  For i:=1 To 4 Do
    Begin
      max := SG1[i,1];
      For j:=2 To 5 Do
        If (SG1[i,j] > max) then
          max := SG1[i,j];
      SG2[i] := max;
    End;
  For i:=1 To 4 Do
    StringGrid2.Cells[0,i-1] := FloatToStr(SG2[i])
end;
А вот весь КОД!
Код:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    StringGrid1: TStringGrid;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    Button4: TButton;
    Button5: TButton;
    StringGrid2: TStringGrid;
    Label4: TLabel;
    Button6: TButton;
    Button7: TButton;
    ADOTable1: TADOTable;
    ADOConnection1: TADOConnection;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure Button5Click(Sender: TObject);
    procedure Button6Click(Sender: TObject);
    procedure Button7Click(Sender: TObject);
   
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  SG1 : Array[1..4,1..5] Of Real;
  SG2 : Array[1..4] Of Real;
  i, j, k, buf : Integer;
  max : Real;
  f:Text;
implementation

{$R *.dfm}



procedure TForm1.Button1Click(Sender: TObject);
begin
  k := 1;
  For i:=1 To 4 Do
  For j:=1 To 5 Do
    Begin
      If ((k Mod 2) <> 0) Then
        StringGrid1.Cells[j-1,i-1] := FloatToStr(k - 1)
      Else
        StringGrid1.Cells[j-1,i-1] := FloatToStr(k + 1);
      k := k + 1;
    End;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  Randomize;
  For i:=1 To 4 Do
  For j:=1 To 5 Do
    StringGrid1.Cells[j-1,i-1] := FloatToStr(50 - Random(101));
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
  For i:=1 To 4 Do
  For j:=1 To 5 Do
    If  (StringGrid1.Cells[j-1,i-1]='') Then
      SG1[i,j] := 0
    Else
      SG1[i,j] := StrToFloat(StringGrid1.Cells[j-1,i-1]);
  For i:=1 To 4 Do
    Begin
      max := SG1[i,1];
      For j:=2 To 5 Do
        If (SG1[i,j] > max) then
          max := SG1[i,j];
      SG2[i] := max;
    End;
  For i:=1 To 4 Do
    StringGrid2.Cells[0,i-1] := FloatToStr(SG2[i])
end;

procedure TForm1.Button4Click(Sender: TObject);
begin
  For i:=1 To 4 Do
  For j:=1 To 5 Do
    StringGrid1.Cells[j-1,i-1] := ' ';

  For i:=1 To 4 Do
    Begin
      StringGrid2.Cells[0,i-1] := ' ';
      SG2[i] := 0;
    End;
end;

procedure TForm1.Button5Click(Sender: TObject);
begin
  Close
end;

procedure TForm1.Button6Click(Sender: TObject);
begin
  AssignFile(f,GetCurrentDir+'\F.txt');
  Reset(f);
  For i:=1 To 4 Do
  For j:=1 To 5 Do
    Begin
      Read(f,buf);
      StringGrid1.Cells[j-1,i-1] := IntToStr(buf);
    End;
   CloseFile(f);
end;

procedure TForm1.Button7Click(Sender: TObject);
begin
  With ADOTable1 Do
    Begin
      Active:=True;
      First;
      For i:=1 To 4 Do
      For j:=1 To 5 Do
        begin
          StringGrid1.Cells[j-1,i-1] := IntToStr(Integer(FieldValues['chislo']));
          Next;
        End;
    end;
  AdoConnection1.Close;
end;

end.
Изображения
Тип файла: jpg 111.jpg (41.6 Кб, 48 просмотров)
vovjkee вне форума Ответить с цитированием
Старый 08.06.2013, 06:20   #2
challengerr
Участник клуба
 
Аватар для challengerr
 
Регистрация: 30.07.2008
Сообщений: 1,601
По умолчанию

Примерно следующим образом
Код:
procedure TForm1.Button3Click(Sender: TObject);
begin
  For i:=1 To 4 Do {столбцы}
  For j:=1 To 5 Do { строки }
    If  (StringGrid1.Cells[j-1,i-1]='') Then  {  StringGrid1.Cells[строка,столбец]}
      SG1[i,j] := 0  { SG1[столбец,строка] }
    Else
      SG1[i,j] := StrToFloat(StringGrid1.Cells[j-1,i-1]);


  For i:=1 To 4 Do {столбцы}
  begin
   SG2[i] := 1;
   For j:=1 To 5 Do { строки }
   begin
     p := -1; { парность неопределена}
     index := j; {фиксируем index}
     For k:=1 To 5
     begin
       if k <> index then
       begin
         if SG1[i, k] = SG1[i, index] then
           p := 1; {элемент парный}
         else
           p := 0; {элемент непарный}
       end;
     end;
     if p = 1 then res := 3.2 + SG1.Cells[i, j]; { непарный 3.2+i }
     else 
       begin
        if p = 0 then    res := 6.4 - SG1[i, j]; { парный 6.4+i }
        { else ошибка}
       end;
     { значения элементов одномерного массива StringGrid2.Cells
        состоят из произведения положительных значений элементов 
        столбцов двухмерного массива }
     if res > 0 then
     begin
       SG2[i] := SG2[i] * res;
     end;
   End;
  End;

  For i:=1 To 4 Do
    StringGrid2.Cells[0,i-1] := FloatToStr(SG2[i])

end;
"SPACE.THE FINAL FRONTIER.This's a voyage of starship Enterprise. It's 5-year mission to explore strange new worlds,to seek out new life and civilizations,to boldly go where no man has gone before"
challengerr вне форума Ответить с цитированием
Старый 08.06.2013, 18:18   #3
vovjkee
Пользователь
 
Регистрация: 07.06.2013
Сообщений: 17
По умолчанию

Спасибо большое, только выдает ошибку

Код:
procedure TForm1.Button3Click(Sender: TObject);
begin
  For i:=1 To 4 Do {столбцы}
  For j:=1 To 5 Do { строки }
    If  (StringGrid1.Cells[j-1,i-1]='') Then  {  StringGrid1.Cells[строка,столбец]}
      SG1[i,j] := 0  { SG1[столбец,строка] }
    Else
      SG1[i,j] := StrToFloat(StringGrid1.Cells[j-1,i-1]);


  For i:=1 To 4 Do {столбцы}
  begin
   SG2[i] := 1;
   For j:=1 To 5 Do { строки }
   begin
     p := -1; { парность неопределена}
     index := j; {фиксируем index}
     For k:=1 To 5
     begin ТУТ ОШТБКА "Unit1.pas(93): Missing operator or semicolon"
       if k <> index then
       begin
         if SG1[i, k] = SG1[i, index] then
           p := 1; {элемент парный}
         else
           p := 0; {элемент непарный}
       end;
     end;
     if p = 1 then res := 3.2 + SG1.Cells[i, j]; { непарный 3.2+i }
     else 
       begin
        if p = 0 then    res := 6.4 - SG1[i, j]; { парный 6.4+i }
        { else ошибка}
       end;
     { значения элементов одномерного массива StringGrid2.Cells
        состоят из произведения положительных значений элементов 
        столбцов двухмерного массива }
     if res > 0 then
     begin
       SG2[i] := SG2[i] * res;
     end;
   End;
  End;

  For i:=1 To 4 Do
    StringGrid2.Cells[0,i-1] := FloatToStr(SG2[i])

end;
vovjkee вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Написать к программе форму, кнопку и окно результатов M.Kelevra Microsoft Office Excel 6 26.12.2010 19:28
Как нажать на кнопку в программе. arach Win Api 6 07.09.2010 19:50
Изменить Язык в программе. Corpinccom Паскаль, Turbo Pascal, PascalABC.NET 8 15.08.2010 23:02
как изменить имя объекта в программе? Sham1963 Microsoft Office Excel 1 28.05.2010 08:55
Как изменить текст сообщения при нажатии на кнопку? motaro Помощь студентам 2 14.07.2007 13:15