Найдено 24 результата

enot777
03.02.2017 21:14:30
Форум: Общее
Тема: массивы
Ответы: 69
Просмотры: 95635

Re: массивы

Nick245
Это будет слишком просто.
vitaly_l
Как бы ничего не изменилось.
enot777
03.02.2017 18:34:46
Форум: Общее
Тема: массивы
Ответы: 69
Просмотры: 95635

Re: массивы

Ну да, не более чем 2 byte индекс (2^16=65536), иначе ошибка: слишком большой диапазон у массива.

{$mode objfpc}
type
TA = array [low(word)..high(word)] of integer;
var
a: TA;
i: cardinal;
begin
for i:=low(a) to high(a) do write(a[i],#32);
readln;
end&#46 ...
enot777
03.02.2017 18:13:54
Форум: Общее
Тема: массивы
Ответы: 69
Просмотры: 95635

Re: массивы

Лекс Айрин
Выше я уже писал, что считаю явную инициализацию любых переменных правильным поведением и единственно верным.

Здесь и сейчас рассматривался код из первого поста и особенности его реализации.

vitaly_l
Компилятор вас не может обманывать.

Разработчики позиционируют FPC как максимально ...
enot777
03.02.2017 17:43:46
Форум: Общее
Тема: массивы
Ответы: 69
Просмотры: 95635

Re: массивы

Естественно, этот код в процедуре работать так же не будет, ибо переменные не будут глобальными.
enot777
03.02.2017 17:26:04
Форум: Общее
Тема: массивы
Ответы: 69
Просмотры: 95635

Re: массивы


Как минимум на TP3 без явной инициализации в программном блоке в переменной был мусор.....

Про TP3 не скажу, а такая программа на TP7 выведет на экран нули

program arr;
type
TA = array [1..10] of integer;
var
i: integer;
a: TA;
begin
for i:=low(a) to high(a) do ...
enot777
03.02.2017 14:14:00
Форум: Общее
Тема: массивы
Ответы: 69
Просмотры: 95635

Re: массивы

>> vitaly_l
Исходя из приведённого описания выходит, что "b" глобальная переменная и судя по поведению программы это подтверждается.

Насчёт инициализации переменных: я с этим полностью согласен. Лучше знать с чем имеешь дело, чем не знать.
enot777
03.02.2017 13:35:46
Форум: Общее
Тема: массивы
Ответы: 69
Просмотры: 95635

Re: массивы

Если вы явно не инициализируете глобальную переменную, компилятор устанавливает для нее значение 0.

Это, я так понимаю, было изначально характерно для первых версий Pascal, а дальше, как это часто бывает, начинается песня о совместимости.
enot777
03.02.2017 11:18:08
Форум: Общее
Тема: массивы
Ответы: 69
Просмотры: 95635

Re: массивы

Про настройки компиляции я конечно загнул.
Нашёл такой перевод документации Delphi. Так же это, видимо, справедливо и для Free Pascal Compiler.
Если вы явно не инициализируете глобальную переменную, компилятор устанавливает для нее значение 0. Данные из экземпляров объектов (поля) также ...
enot777
02.02.2017 23:24:43
Форум: Общее
Тема: массивы
Ответы: 69
Просмотры: 95635

Re: массивы

Имеется массив [1..10], при чём компилятор при создании этого массива обнуляет все элементы (зависит от настроек компиляции), т.е. если ввести первым 0, то программа скажет, что такое значение уже введено.
enot777
02.02.2017 22:17:00
Форум: Общее
Тема: массивы
Ответы: 69
Просмотры: 95635

Re: массивы

Цикл, repeat ... until, выполнятся до тех пор, пока условие выхода ложно (false).

repeat
// Операторы
until false; // Бесконечный цикл, для выхода необходимо использовать break в теле цикла.

Цикл, repeat ... until - это цикл с пост проверкой условия выполнения (repeat <операторы> until ...
enot777
12.01.2017 19:50:44
Форум: Книга "Песни о Паскале"
Тема: Редактирование и вычитка книги
Ответы: 383
Просмотры: 571177

Re: Редактирование и вычитка книги

>> Oleg_D
Глава 61. стр.519 Задание Б)

Код: Выделить всё

TSetArray = array [0..4096] of word; { хранит 65536 бит (4096*16) }

Диапазон массива от 0 до 4096, т.е. 4097 элементов. Следовательно и размер массива в битах будет 65536+16.
Необходимо изменить диапазон [1..4096] или [0..4095].
enot777
06.01.2017 17:23:10
Форум: Книга "Песни о Паскале"
Тема: Редактирование и вычитка книги
Ответы: 383
Просмотры: 571177

Re: Редактирование и вычитка книги

>> Oleg_D
Глава 57. стр.460
В тексте программы P_57_01 есть небольшой косячок.

procedure ReadData(var F&#58; Text);
var C &#58; Char;p, q &#58; PNode;
begin
Reset(F);
while not Eof(F) do begin
if not Eoln(F) then begin { если строка не пуста }
Read(F, C); { читаем имя страны }
C&#58;=UpCase(C ...
enot777
05.01.2017 14:53:02
Форум: Книга "Песни о Паскале"
Тема: Редактирование и вычитка книги
Ответы: 383
Просмотры: 571177

Re: Редактирование и вычитка книги

>> Oleg_D
Глава 56. стр.449
А слабо?
А) В Паскале есть встроенная функция по имени MemAvail (от Memory —
«память», Available — «доступный»). Функция возвращает свободный на текущий
момент объем памяти в куче.
В FPC начиная со 2-ой версии MemAvail и MaxAvail отсутствуют (даже в {$mode tp} FPC пишет ...
enot777
20.12.2016 22:50:50
Форум: Книга "Песни о Паскале"
Тема: Редактирование и вычитка книги
Ответы: 383
Просмотры: 571177

Re: Редактирование и вычитка книги

>> Oleg_D
Специально установил DosBox.
Запустил BTP 7.0

Код: Выделить всё

type TA = array [0..1] of integer;
var a: TA;
begin
  writeln('size of elements: ',sizeof(a[low(a)]));
  readln;
end.

В справке от BTP7 присутствуют и low() и high().