1. Заголовок темы должен быть информативным. В противном случае тема удаляется ... 2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения. 3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали! 4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора). 5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM! 6. Одна тема - один вопрос (задача) 7.Проверяйте программы перед тем, как разместить их на форуме!!! 8.Спрашивайте и отвечайте четко и по существу!!!
Как надо написать в var'e, когда необходимо выделить некоторое количество ячеек для массива?
Код
var a:array[1..?] of integer; ...
write('kakoe koli4estvo simvolov bydet v massive'); readln(n);
for i:=1 to n do {zapolnenie masiva lyubym sposobom}
Если место ? написать n, вылетает ошибка, тогда что должно быть место вопросительного занка? Нельзя же просто писать максимальную цифру от фонаря, типа 9999?
то непонимание тобой 5-й строки говорит о том, что ты невнимательно прочитал или не понял где-то выше по тексту, т.е. то, что скрывается за предыдущими 4-мя строками.
Специально, чтобы не было таких предложений, я привел краткий конспект вышесказанного. Про "Процедура FreeMem( var p: Pointer; size: Word ) ... " я там объяснения не нашел.
Цитата
Невозможно ничего объяснить, не опираясь на что-то из того, что человеку уже известно. Поэтому расскажи, что ты знаешь о работе с памятью в компьютере.
Что именно тебя интересует? Одна ячейка памяти - это один бит, байт это 8 бит, ... 1 Кб = 1024 Байт и т. д. Касаемо памяти в Паскале, знаю только общие фразы из учебника (типа: каждой переменной должна быть присвоена определенная ячека памяти, тип Integer ограничивается таким-то числом, тип Longint ограничивается таким-то числом - краткий пересказ, не придирайтесь : ))
Цитата
Ну просто array of написать не получится. Но можно сделать так:
Смотри посты выше.
Цитата
Слав, я тебе от души советую: научись придавать значение каждому слову в том, что читаешь.
Буду стараться...
Нда, тогда действительно у меня возникает путаница. В строчке
Цитата
Насчет динамических массивов: я нашел немного, сам разобраться не смогу.
Тогда есть ошибка, имелось в виду, насчет динамической памяти. Я так понимаю FreeMem образовано от английского Free Memory (свободная память), соответственно, я нашел немного не насчет динамических массивов, а насчет динамической памяти.
Цитата
Ошибиться довольно легко, потому что в сети масса недоразумений по этому поводу.
Согласен.
Цитата
Если ты теперь действительно являешься счастливым обладателем FPC,
Действительно, являюсь - FPC 2.2.2
Что значит вот это
Цитата
c: array of record
и вот это
Цитата
d: double;
?
SetLength я, так, понял действует только для динамических массивов и во FPC?
Строчка SetLength(a,10) - означает присвоить массиву a память под 10 элементов. То есть если бы пользователь сам вводил количество элеметов массива для которых он хотел решать задачу, то было бы:
... writeln('vvedite kol-vo elementov massiva'); readln(n); ... setlength(a,n); ...
Или нет?
Цитата
Процедура SetLength имеет такое же название, как аналогичная процедура для типа String.
Такой процедурой не пользовался : ( - мне это ни о чем не говорит...
Цитата
Если же все же возникнет нужда - скажи, объясним )).
Нужда, кажется, возникнет: в основном в учебниках я встречаю FreeMem, хотелось бы знать конкретнее. Все таки интересно, что это значит ?
Цитата
"Процедура FreeMem( var p: Pointer; size: Word ) освобождает участок памяти, адрес начала которого определен указателем p, а размер - параметром size. Значение указателя p становится неопределенным."