2012-04-18 6 views
2

Давно возникла проблема: если мне нужно создать небольшую программу, использующую переменные, как вы определяете и неизвестны переменные ?.Определение неизвестного количества переменных

I.E, если у вас есть программа, которая запрашивает у пользователя ввод номера, то числовой ввод пользователя - это число переменных, необходимых в программе. В Java или VB легко решить это, потому что вы можете определить переменные по мере необходимости (в пути), но pascal заставляет вас объявлять их перед началом основного программного кода, поэтому вы не можете использовать этот трюк.

Я думал о многомерном массиве, но я думаю, что это плохой способ исправить это, потому что, если вы определяете меньше «квадратов», чем вам нужно, вы становитесь короткими, и если вы определяете больше, чем вы на самом деле собираетесь использовать то вы собираетесь потратить память ...

Итак, как вы определяете неизвестное количество переменных?

ответ

2

Вы можете динамически изменять размер массива, используя SetLength

Type 
    TByteArray = Array of Byte; 

Var 
    Data : TByteArray 
    NewSize : Integer; 
Begin 
    Write('Enter the number of bytes you require: '); 
    ReadLn(NewSize) 
    SetLength(Data, NewSize); 
    ... 
End; 

Извините синтаксические ошибки, я не использовал Паскаль в более чем 20 лет. Какой отличный язык!

1

Вам необходимо динамически выделять память на основе номера, предоставленного пользователем. Если эта страница правильно, вы можете сделать это в FreePascal:

type dynamic_array= array of integer; 
var x:dynamic_array; 
setlength(x, k); 

где k является вводимым пользователем данные

+2

TIntegerDynArray и другими подобными ДИН массивов предопределены типами единиц, как в FPC и Delphi. Используй это. –

Смежные вопросы