![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
|
|
#1
|
|||
|
|||
|
люди пжллллста, нужна помощь
у меня проблема. вот только начал изучать паскаль, поэтому много вопросов... вот один из них. Я объявляю одномерный массив в var с заранее неизвестным количеством ячеек, количество этих самых ячеек нада будет потом вводить с клавиатуры. Естессно при запуске Паскаль ругается, тк kolto4 не отпределена. Можно ли как то предварительно объявить kolto4, чтобы можно было описать массив, а потом изменить значение этой переменной? Цитата:
Я пробовал через типизированные константы, но не помогает, возможно я чтото неправильно записал Цитата:
помогите пожалуйста ![]() |
|
#2
|
||||
|
||||
|
Размер статического массива должен быть известен заранее, а чтобы сделать то, что ты хочешь, нужен динамический массив. Твой метод в этом случае не годится. Вот как это надо делать…
Код:
uses crt;
type
mas = array[1..1] of char;
mat = array[1..1] of ^mas;
var
matrica : ^mat;
massive : ^mas;
i, j : integer;
begin
clrscr;
GetMem( massive, sizeof(char)*12 );
for i := 1 to 12 do
massive^[i] := chr( ord('0') + i);
for i := 1 to 12 do
writeln( massive^[i] );
freemem( massive, sizeof(char)*12 );
GetMem( matrica, sizeof( pointer )*10 ); { n = 10 }
for i := 1 to 10 do
GetMem( matrica^[i], sizeof(char)*20 ); { m = 20 } { matrica[1..n,1..m] }
for i := 1 to 10 do
for j := 1 to 20 do
matrica^[i]^[j] := chr( ord('0') + (i-1)*20+j );
for i := 1 to 10 do
begin
for j := 1 to 20 do
write( matrica^[i]^[j], ' ');
writeln;
end;
for i := 1 to 10 do
FreeMem( matrica^[i], sizeof(char)*20 );
FreeMem( matrica, sizeof( pointer ) *12 );
end. |