|
|
Регистрация | << Правила форума >> | 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. |