Форум программистов, компьютерный форум, киберфорум
Наши страницы

Delphi для начинающих

Войти
Регистрация
Восстановить пароль
 
omnomnom
#1

Сложение-вычитание динамических массивов (проверить код) - Delphi

31.05.2012, 04:29. Просмотров 1017. Ответов 2
Метки нет (Все метки)

Здравствуйте.
Задание:
В программе оформить сложение или вычитание двух массивов. Размерность задаётся с клавиатуры, вид операции задаётся с помощью кнопок radiobutton.
Сложность заключается в том,что компилляция проэкта проходит, но после введения размерности с клавиатуры stringgrid'ы не меняют свой размер.
Прикрепляю код:

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
unit Unit1;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Grids;
 
type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Edit2: TEdit;
    Label1: TLabel;
    Label2: TLabel;
    sg1: TStringGrid;
    sg2: TStringGrid;
    sg3: TStringGrid;
    Button1: TButton;
    RadioButton1: TRadioButton;
    RadioButton2: TRadioButton;
    Button2: TButton;
    procedure Edit1Change(Sender: TObject);
    procedure Edit2Change(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form1: TForm1;
  nomcol,nomrow:integer;
 
implementation
 
{$R *.dfm}
 
procedure TForm1.Edit1Change(Sender: TObject);
begin
nomcol:=StrToInt(Edit1.Text);
sg1.ColCount:=nomcol;
sg2.ColCount:=nomcol;
end;
 
 
 
procedure TForm1.Edit2Change(Sender: TObject);
begin
nomrow:=StrToInt(Edit2.Text);
sg1.RowCount:=nomrow;
sg2.RowCount:=nomrow;
end;
 
procedure TForm1.Button1Click(Sender: TObject);
var
 a,b,c:array of array of real;
 i,j:integer;
begin
sg3.ColCount:=nomcol;
sg3.RowCount:=nomrow;
SetLength(a,nomcol,nomrow);
SetLength(b,nomcol,nomrow);
SetLength(c,nomcol,nomrow);
 for i:=0 to nomrow-1 do
 for j:=0 to nomcol-1 do
  begin
   a[i,j]:=StrToFloat(sg1.Cells[i,j]);
   b[i,j]:=StrToFloat(sg2.Cells[i,j]);
  end;
 for i:=0 to sg1.RowCount-1 do
  for j:=0 to sg1.ColCount-1 do
   if (sg1.Cells[i,j]='') then
    begin
     ShowMessage('Ячейки заполнены не до конца!');
     break;
    end;
 for i:=0 to sg2.RowCount-1 do
  for j:=0 to sg2.ColCount-1 do
   if (sg2.Cells[i,j]='') then
    begin
     ShowMessage('Ячейки заполнены не до конца!');
     break;
    end;
 
 if RadioButton1.Checked then
  begin
   for i:=0 to nomrow-1 do
    for j:=0 to nomcol-1 do
      begin
       c[i,j]:=a[i,j]+b[i,j];
       sg3.Cells[j,i]:=FloatToStr(c[i,j]);
      end;
  end
   else if RadioButton2.Checked then
  begin
     for i:=0 to nomrow-1 do
     for j:=0 to nomcol-1 do
       begin
        c[i,j]:=a[i,j]-b[i,j];
        sg3.Cells[j,i]:=FloatToStr(c[i,j]);
       end;
  end;
end;
end.
Добавлено через 8 часов 54 минуты
Хорошо. С самим массивом справился-теперь очередь за алгоритмом
Delphi
1
2
3
4
5
6
7
8
9
10
procedure TForm1.Button2Click(Sender: TObject);
var i,j,a,b,c:integer;
begin
 for i:=1 to sg1.RowCount-1 do
  for j:=1 to sg1.ColCount-1 do
    a:=StrToInt(sg1.Cells[i,j]);
    b:=StrToInt(sg2.Cells[i,j]);
    c:=a+b;
     sg3.Cells[i,j]:=FloatToStr(c)
//blablabla
Сей опус компилируется,но при нажатии на кнопку выдает ворнинг- for-loop variable 'j' may be undefined after loop
Что я делаю не так?
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.05.2012, 04:29
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Сложение-вычитание динамических массивов (проверить код) (Delphi):

сложение массивов(динамических, можно ли это вообще? Delphi7) - Delphi
Помогите пожалуйста!!! на форме 2 едитки(в них вводится размерность матрицы и она создается при нажатии на баттон1), матрица создается...

Сложение и вычитание в stringgrid - Delphi
Здравствуйте ! Возникла такая проблема в stringgrid: мне нужно, чтобы все ячейки в 1 столбце складывались с ячейками во 2 столбце, потом...

Сложение и вычитание многочленов - Delphi
Доброго времени суток! Дана курсовая по заданию написать библиотеку операций над многочленами. Хотелось бы с начала разобраться со...

Сложение и вычитание больших чисел - Delphi
Доброго время суток. Нужна помощь в задаче. Звучит " Сложение и вычитание больших чисел 2^32 и больше. Киньте примеры. Заранее огромное...

Парсинг строки. сложение вычитание - Delphi
Здравствуйте знатоки! для строки написал вида 32,3-24+321 написал вот такую функцию, которая "выдергивает" 1-е и 2-е число и знак...

Сложение и вычитание 80-значных чисел - Delphi
Здравствуйте! Есть задача, которую не могу решить, прошу помощи. Нужно сложить и вычесть два любых 80 значных числа, т.е. 80 чисел после...

2
vilag
69 / 68 / 2
Регистрация: 24.05.2012
Сообщений: 146
31.05.2012, 05:15 #2
Цитата Сообщение от omnomnom Посмотреть сообщение
Что я делаю не так?
begin и end не ставишь
1
omnomnom
31.05.2012, 05:38 #3
Спасибо большое.
Миниатюры
Сложение-вычитание динамических массивов (проверить код)   Сложение-вычитание динамических массивов (проверить код)  
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.05.2012, 05:38
Привет! Вот еще темы с ответами:

Программа - АЛУ Сложение и Вычитание - Delphi
Здравствуйте, так вот сложилось , что в делфи я не разбираюсь, времени на это нет , а задача стоит . Конкретно задача : необходимо...

сделать сложение, вычитание , умножение и деление - Delphi
нужно сделать сложение, вычитание , умножение и делание unit Unit1; interface uses Windows, Messages, SysUtils,...

Калькулятор (сложение, вычитание, умножение, деление) - Delphi
добрый вечер, уважаемые программисты и форумчани! помогите,пожалуйста,написать программу на языке Делфи 7. вот задание: сделать...

Сложение, вычитание, умножение, деление используя СС - Delphi
У меня появился еще один вопрос на счет СС. Вопрос таков как можно складывать, вычитать, умножать и делить используя систему счисления....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru