![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Как мне задать двумерный массив с верхним индексом, взятым из текстового поля другой формы? (Нижний индекс - 0)
Т.е. массив мне нужен в Form1 (Unit1), а текстовое поле находится на Form2 (Unit2) |
|
#2
|
|||
|
|||
|
Пользоваться динамическими массивами. Для задания размера используется процедура SetLength.
|
|
#3
|
|||
|
|||
|
А можно поподробнее ?
|
|
#4
|
||||
|
||||
|
Вот вам фантазмя на тему динамических массивов
![]() Код:
Var A: Array of Array of Integer; i: Integer; begin SetLength(A, 3); for i := 0 to High(A) do SetLength(A[i], i+1); end. |
|
#5
|
||||
|
||||
|
непонятно, что вам нужно, чтобы границы массива менять можно было (ответы в постах #2, 3) или же как получить значение поля из другой формы.
если второе то добавляете модуль Unit2 в список используемых модулей Unit1 (открываете Unit1 - File - Use Unit - Unit2) обращаться к полю Form2.Edit.Text |
|
#6
|
|||
|
|||
|
Unit2
Код:
public
n: byte;
...................
n := strtoint(Edit1.Text);Unit1 Код:
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, Buttons, StdCtrls, Menus, Unit2;
...........................
public
fa: array[-1..n+1,-1..n+1] of byte;
fanew: array[-1..n+1,-1..n+1] of byte;Массивы не задаются (Undeclared identifier), хотя переменная n - глобальная. В чем проблема? uses проставлены. |
|
#7
|
|||
|
|||
|
Канечна, дарагой!!!
Нельзя задавать границу массива (при его описании) в виде переменной. можно только с помощью константы. Пользуй динамические массивы с задачей длинны в момент выполнения через SetLength. |
|
#8
|
|||
|
|||
|
Все, разобрался, спасибо
![]() |
|
#9
|
|||
|
|||
|
Помогите пож.с курсовой. Задача такова: дана квадратная матрица порядка n. Построить последовательность b1,b2,..,bn, в которой bi=1 тогда и только отгда, когда элементы i-й строки матрицы образуют возрастающую последовательность, иначе bi=0. пробовала сделать. Иногда правильно высчитывает, а в 30% ответ неверный. Помогите пож.
|
|
#10
|
||||
|
||||
|
Код:
program Project1;
{$APPTYPE CONSOLE}
const
n = 5;
var
a: array [1..n] of array [1..n] of Integer;
b: array [1..n] of boolean;
i, j: Integer;
function IsV(x: Integer): Boolean;
var
i: Integer;
begin
Result:=True;
for i:=2 to n do
if a[x][i] <= a[x][i - 1] then
Result:=False;
end;
begin
Randomize;
for i:=1 to n do
begin
for j:=1 to n do
begin
a[i][j]:=Random(100);
Write(a[i][j]:3);
end;
Writeln;
end;
Writeln;
for i:=1 to n do
b[i]:=IsV(i);
for i:=1 to n do
Write(b[i], ' ');
Readln;
end. |
|
#11
|
|||
|
|||
|
Спасибо большое, осталось только разобраться)))
|