Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.10.14;
Скачать: CL | DM;

Вниз

Как заполнить массив вручную сразу строками?   Найти похожие ветки 

 
Light-blr   (2007-09-21 11:45) [0]

Здравствуйте.
В моей программе нужен массив 4*150, заранее известный. Я хотела бы его заполнить в коде программы, как-нибудь вроде NewMas:=((1,2),(1,2)), но ни в справке, ни в книжке по Delphi ничего похожего не нашла. Подскажите, как это сделать, если это возможно. Я имею в виду, заполнить как NewMas[1,1]:=1;NewMas[1,2]:=2... это я смогу, конечно, но код очень сильно разрастётся. Читать из файла не хочу, чтобы потом не было возможности этот файл изменить. Есть ли возможность заполнить весь массив разом?


 
stone ©   (2007-09-21 11:48) [1]


> ни в книжке по Delphi ничего похожего не нашла.

странно, открыл справку, набрал array, получил описание

type TMatrix = array[1..10, 1..50] of Real;

Whichever way TMatrix is declared, it represents an array of 500 real values. A variable MyMatrix of type TMatrix can be indexed like this: MyMatrix[2,45]; or like this: MyMatrix[2][45]. Similarly,

ЗЫ. про циклы что-нибудь известно?


 
Light-blr   (2007-09-21 11:52) [2]

Про циклы известно. массив должен выглядеть примерно так:
0 0 0 0 -15 0 0 35 119 0 0 0
0 0 -11 0 0 0 0 0 3...
То есть никакой последовательности, заполняется вручную. Можно заполнить тупо
NewMas[1,1]:=0;
NewMas[1,2]:=0;
И так далее до посинения. Это я могу - но хочу сразу всю строку, если возможно.


 
stone ©   (2007-09-21 11:54) [3]

ну а эти самые строчки откуда беруться? есть какой-то источник? или просто из потока сознания ? :)


 
Elen ©   (2007-09-21 11:55) [4]


> Light-blr

Ну можно например создать константу и ее заполнить, и если нужен массив, значения которого будут менятся то мона так :
unit Unit1;

interface

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

type
t=array[1..5] of integer;
 TForm1 = class(TForm)
   procedure FormCreate(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
 end;
const a:t=(1,2,3,4,5);
var   b:t;

 Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
b:=a;
end;

end.


 
Плохиш ©   (2007-09-21 11:57) [5]

Открываем справку и читаем

Bei der Deklaration einer Array-Konstante werden die Werte der Array-Elemente in Klammern und durch Kommas getrennt angegeben. Zur Angabe der Werte müssen konstante Ausdrücke verwendet werden. Ein Beispiel:

const Digits: array[0..9] of Char = ("0", "1", "2", "3", "4", "5", "6", "7", "8", "9");

Diese Anweisung deklariert eine typisierte Konstante mit dem Namen Digits, die ein Zeichen-Array enthält.


 
palva ©   (2007-09-21 11:58) [6]


{$APPTYPE CONSOLE}
var
 m: array[1..2,40..41] of Integer = ((23, 24), (25, 26));
begin
 Writeln(m[1,40]); // 23
 Writeln(m[2,41]); // 26
end.


 
Light-blr   (2007-09-21 11:59) [7]


> stone

Эти значения берутся из тщательных расчётов на листке бумаги. :)

> Elen

Спасибо, мне нужна именно такая константа. Буду пробовать.


 
Jeer ©   (2007-09-21 12:15) [8]


> Light-blr   (21.09.07 11:59) [7]



> Эти значения берутся из тщательных расчётов на листке бумаги.


В таком случае имеет смысл:
1. использовать array of double или extended
2. "Тщательно" построить регрессионную зависимость и вычислять при инициализации или по месту.



Страницы: 1 вся ветка

Текущий архив: 2007.10.14;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.022 c
1-1186040878
pasha_golub
2007-08-02 11:47
2007.10.14
Конфигурация проекта сбрасывается


1-1185656188
B. C.
2007-07-29 00:56
2007.10.14
Инсталляция Дельфи приложения использующего Oracle БД


2-1189703960
delphiForever
2007-09-13 21:19
2007.10.14
таймер и процедура


4-1176656443
Ricks
2007-04-15 21:00
2007.10.14
"Правильность"


4-1176372836
KrayM
2007-04-12 14:13
2007.10.14
Свой сервс