Pascal Next – компилируемый язык программирования и среда разработки для начинающих программистов, ориентированные на решение задачи обучения основам программирования.
В основе синтаксиса языка PascalNext лежит синтаксис "классического" Pascal.
Компилятор Pascal Next создает выполняемый Win32 файл.
Среда разработки Pascal Next работает в операционных системах от Microsoft Windows XP до Microsoft Windows 10/11.
Язык интерфейса среды разработки Pascal Next – русский (для русской локализации операционной системы) или английский (для остальных локализаций операционной системы).
Сообщения компилятора об ошибках – на русском/английском языке.
Встроенный справочник по языку программирования.
Простой процесс установки – объем дистрибутива – 1,3 Мб, никакие дополнительные компоненты не нужны.
WWW.pascal-next.ru
Pascal Next можно бесплатно загрузить с сайта www.pascal-next.ru
Также с сайта можно загрузить примеры кода и документацию.
С
труктура программы
Программа Pascal Next представляет собой совокупность процедур и функций.
Главная процедура, с инструкций которой начинается выполнение программы, обозначается идентификатором program. Все остальные процедуры обозначаются идентификатором procedure, функции – идентификатором function.
Простейшая программа представляет собой одну единственную процедуру program и в общем случае выглядит так:
programимя()
var
// здесь объявления переменных
begin
// здесь выполняемые инструкции
end.
Пример:
// пересчет веса из фунтов в килограммы
program p1()
var
fnt: float; // вес в фунтах
kg: float; // вес в килограммах
begin
write('Вес в фунтах >');
readln(fnt);
kg := fnt * 0.495; // 1 кг = 495 гр
writeln(fnt:6:2, ' фнт. = ', kg:6:3, 'кг');
writeln('Press ');
readln;
end.
Перед разделом var может быть раздел const (раздел именованных констант), в который программист может поместить объявления констант, используемых в программе.
// пересчет веса из фунтов в килограммы
program p1()
const
K = 0.495; // коэф. пересчета из фунтов в кг
var
fnt: float; // вес в фунтах
kg: float; // вес в килограммах
begin
write('Вес в фунтах >');
readln(fnt);
kg := fnt * K;
writeln(fnt:6:2, ' фнт. = ', kg:6:3, 'кг');
writeln('Press ');
readln;
end.
Типы данных
Pascal Next поддерживает целый, вещественный и строковый тип данных.
integer – целые числа в диапазоне -2 147 483 648 … 2 147 483 647
float – положительные и отрицательные вещественные числа в диапазоне от 1.5x10>-38 до 3.4x10>38
string – строка символов длинной до 128 символов
Переменные
Все переменные программы должны быть объявлены в разделе var той процедуры или функции, в которой они используются.
Числовые
Инструкция объявления числовой переменной целого или вещественного типа в общем случае выглядит так:
имя: тип;
Где:
имя – имя переменной;
тип – тип данных.
Примеры:
sum: float;
k: integer;
Допускается одной инструкцией объявить несколько переменных одинакового типа, например:
a,b,c: float;
Строковые
Инструкция объявления строковой переменной в общем виде выглядит так:
имя: string[длина];
где:
длина – максимальное количество символов, которое может вместить переменная.
Максимальное допустимое значение параметра длина при объявлении строки – 128.
Пример:
name: string[25];
Допускается одной инструкцией объявить несколько переменных одинакового типа, например:
firstName, lastName: string[12];
При объявлении строковой переменной можно использовать целую именованную константу.
Например, если в разделе const объявлена целая именованная константа LN, то объявление переменных firstName и lastName может быть таким:
firstName, lastName: string[LN]; // LN – целая именованная константа
Имя переменной
В качестве имени переменной можно использовать любую, начинающуюся с буквы и состоящую из букв и чисел последовательность символов. Помимо букв и чисел имя переменной может содержать символы “подчеркивание”.
Пример:
amount: integer;
x1: float;
month_salary: float;
annual_income: float;
first_name: string[20];
Компилятор Pascal Next не различает прописные и строчные буквы, т.е. нечувствителен к регистру записи идентификаторов. Таким образом, например, идентификаторы first_name, FIRST_NAME и First_Name обозначают один и тот же объект (переменную).
В качестве имен переменных (и других объектов программы) нельзя использовать зарезервированные слова языка программирования, а также имена встроенных процедур и функций.
Константы
Числовые константы записываются обычным образом.
Примеры целых констант:
123
–45
0
Примеры вещественных констант:
5.0
27542.15
25.7
–34.05
0.0
Строковая константа представляет собой заключенную в одинарные кавычки последовательность любых символов.
Примеры строковых констант:
'Hello, World!'
'Bart Simpson'
'(C) Nikita Kultin, 2021'
' '
''
'100'
'99.5'
И
менованные константы
Именованные константы должны быть объявлены в разделе const программы, процедуры или функции, в которой они используются.
Объявление именованной константы выглядит так:
Имя = Значение;
Пример:
const
Copyright ='(c) Nikita Kultin, 2021'; // строковая именованная константа
PI = 3.1415925; // вещественная именованная константа
HB = 7; // целая именованная константа
NL = 25; // целая именованная константа
После объявления именованная константа может использоваться в программе как обычная константа, в том числе в разделе объявления переменных.
Пример использования именованных констант при объявлении переменных:
matrix array[1..HB,1..HB] of float; // HB – именованная константа
students array[1..HB] of string[NL]; // HB, NL – именованные константы
name: string[NL]; // NL – именованная константа
Пример использования именованных констант в коде:
sq := PI*r*r; // PI – именованная константа
for i:=1 to HB do // HB – именованная константа
for j:=1 to HB do
matrix[i,j]:=0;
end;
end;
Л
огический тип
В Pascal Next нет логического (boolean) типа данных, однако, его легко можно смоделировать, определив в программе целые именованные константы TRUE (истина) и FALSE (ложь) со значениями 1 и 0 соответственно. После этого, вместо переменных логического типа можно использовать переменные целого типа, трактуя их как логические.
Пример
// псевдо-логический тип
program p()
const
// "логические" константы
TRUE = 1;
FALSE = 0;
HB = 10;
var
a:array[1..HB] of integer; // массив чисел