Читаем Pascal Next. Руководство программиста онлайн бесплатно
Pascal Next. Руководство программиста
Книга представляет собой описание нового языка программирования Pascal Next, в основе которого лежит классический Pascal. Содержит примеры программ, демонстрирующие возможности языка программирования: операции ввода-вывода, использование циклов, работу с массивами, строками, файлами, встроенными и пользовательскими функциями. Книга адресована тем, кто интересуется программированием, знаком с основами программирования, знает с какой-либо язык программирования и имеет навык разработки компьютерных программ начального уровня. Также она будет весьма полезна учителям школ, преподавателям техникумов и вузов, читающим лекции и ведущим практические занятия по дисциплинам Информатика, Программирование, Алгоритмизация и программирование, Теория и технологии программирования.
Школьные учебники / Образование и наукаКнига представляет собой описание нового языка программирования Pascal Next, в основе которого лежит классический Pascal. Содержит примеры программ, демонстрирующие возможности языка программирования: операции ввода-вывода, использование циклов, работу с массивами, строками, файлами, встроенными и пользовательскими функциями.
Цель книги показать возможности языка программирования Pascal Next.
Pascal Next – компилируемый язык программирования и среда разработки для начинающих программистов, ориентированные на решение задачи обучения основам программирования.
В основе синтаксиса языка Pascal Next лежит синтаксис "классического" 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.4x1038
string – строка символов длинной до 128 символов
Переменные
Все переменные программы должны быть объявлены в разделе var той процедуры или функции, в которой они используются.
Числовые
Инструкция объявления числовой переменной целого или вещественного типа в общем случае выглядит так:
Где:
Примеры:
sum: float;
k: integer;
Допускается одной инструкцией объявить несколько переменных одинакового типа, например:
a,b,c: float;
Строковые
Инструкция объявления строковой переменной в общем виде выглядит так:
где:
Максимальное допустимое значение параметра
Пример:
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; // массив чисел
r: integer; // число, которое надо найти в массиве
found: integer; // признак, что число есть в массиве (найдено)
i: integer;
begin
for i:= 1 to HB do
a[i] := Random(HB);
end;
write('Number list: ');
for i:= 1 to HB-1 do
a[i] := Random(HB);
write(a[i]:3,',');
end;
write(a[HB]:3);
r:= Random(HB);
writeln('Search: ',r);
found := FALSE; // пусть число не найдено
i:= 1;
repeat
if a[i] = r then
found := TRUE; // число найдено
else
i:=i+1;
end;
until( found = TRUE) OR (i > HB);
writeln('i=',i);
if found = TRUE then
writeln('Found!');
else
writeln('Not found!');
end;
write('Press
readln;
end.
В
ывод в окно консоли
Вывод информации на экран (в окно консоли) выполняют инструкции write и writeln.
В общем виде инструкции вывода информации в окно консоли записываются так:
write(список_вывода);
writeln(список_вывода);
где:
список_вывода – разделенные запятыми имена переменных, строковые константы или выражения.
Примеры:
write(sum);
write('Press
writeln('x1=', x1, ' x2=', x2);
writeln(pound,' фунтов =', pound*0.453, ' кг.');
Ф
орматированный вывод
В строке вывода после имени переменной или выражения через двоеточие можно задать формат вывода значения.
Для целых и строковых значений формат задает ширину поля вывода – количество позиций на экране, которое резервируется для вывода значения переменной.
В общем виде форматированный вывод целых и строковых значений задается так:
где:
Форматированный вывод вещественных значений в общем виде задается так:
где:
Примеры:
writeln('x1=', x1:9:3, 'x2=', x2:9:3); // переменные x1 и x2 – вещественного типа
writeln(name:15, salary:12:3); // переменная name строковая, salary – вещественная
writeln(pound:5:2,' фунтов =', pound*0.453:6:3, ' кг.'); // выражение pound*0.453 вещественного типа
В
вод данных
Ввод данных с клавиатуры обеспечивает инструкция readln, которая в общем виде записывается так:
readln(
где:
Примеры:
readln(name);
readln(salary);
ВНИМАНИЕ! При вводе вещественных значений в качестве десятичного разделителя следует использовать точку. Если при вводе вещественного значения вместо точки будет введена запятая, ошибка (исключение) не возникает, но дробная часть будет отброшена.
Инструкция присваивания
Инструкция присваивания выглядит так:
Где:
Выражение состоит из
В качестве операнда выражения могут использоваться константы, переменные, элементы массивов, функции.
Примеры:
k := 0;
x:=x1;
x:=x+dx;
x:=x+0.05;
n := Round((x1-x2)/dx);
m := Random(6);
Арифметические операторы
Арифметические операторы:
Оператор
Действие
Тип операндов
Тип выражения
+
сложение
integer, float
integer – если оба операнда integer;
float – если один из операндов float
-
вычитание
integer, float
integer – если оба операнда integer;
float – если один из операндов float
*
умножение
integer, float
integer – если оба операнда integer;
float – если один из операндов float
/
деление
integer, float
float
DIV
целая часть частного
integer
integer
MOD
остаток от деления как целое
integer
integer
Оператор + применим к операндам строкового типа. Результат применения оператора "сложение" к операндам строкового типа – конкатенация (объединение) строк-операндов.
Примеры:
name := 'Bart' + ' ' + 'Simpson';
name := FirstName + ' ' + LastName;
В приведенных инструкциях предполагается, что переменные name, FirstName и LastName строкового типа.
Приоритет операторов
Значение выражения вычисляется слева направо, при этом следует учитывать, что операторы умножения и деления имеют более высокий приоритет, чем операторы сложения и вычитания.
Для задания нужной последовательности вычисления значения выражения следует использовать скобки.
В
ыбор действия (инструкция
if
)
Выбор действия в зависимости от выполнения некоторого условия реализуется при помощи инструкции if.
Инструкция выбора одного из двух возможных вариантов действия записывается так:
if
// здесь инструкции, которые должны быть выполнены,
// если условие выполняется (истинно)
else
// здесь инструкции, которые должны быть выполнены,
// если условие НЕ выполняется (ложно)
end;
Пример:
if t = 1 then
r := r1+r2;
else
r := r1*r2/(r1+r2);
end;
Если при выполнении условия надо выполнить некоторое действие, а в случае, если условие не выполняется, это действие надо пропустить и перейти к следующей инструкции программы, то инструкция if записывается так:
if
// здесь инструкции, которые будут выполнены,
// если условие выполняется (истинно)
end;
Пример:
if a[i] < a[i+1] then
b:=a[i];
a[i]:=a[i+1];
a[i+1]:=b;
end;
Множественный выбор
Множественный выбор (выбор одного действия из нескольких возможных) осуществляется при помощи вложенных инструкций if.
Приведенные ниже инструкции показывают, как можно реализовать выбор одного действия из четырех возможных вариантов.
if
// здесь инструкции, которые будут выполнены,
// если условие1 истинно
else
if
// здесь инструкции, которые будут выполнены,
// если уловие1 ложно, а условие2 истинно
else
if
// здесь инструкции, которые будут выполнены,
// если условия условие1 и условие2 ложны, а условие3 истинно
else
// здесь инструкции, которые будут выполнены,
// если ни одно из условий условие1, условие2 или условие3
// НЕ выполняется
end;
end;
end;
У
словие
Условие это – выражение логического типа, которое может принимать одно из двух значений: Истина или Ложь.
Различают простое и сложное условия.
Простое условие
Простое условие в общем виде записывается так:
где:
Операторы сравнения:
Оператор
Название
=
равно
>
больше
>=
больше или равно
<
меньше
<=
меньше или равно
!=
не равно
Примеры простых условий:
a[i+1] < a[i]
d != 0
pos(' ', st) = 1
name = 'simpson'
Сложное условие
Сложное условие в общем виде записывается так:
где:
Логические операторы:
Оператор
Название
AND
логическое И
OR
логическое ИЛИ
NOT
логическое НЕ
Примеры сложных условий:
x >= x1 AND x <= x2
NOT((x < x1) OR (x > x2))
sum >=1000 and sum <10000
name = 'Bart' OR name = 'Homer'
Цикл for
Инструкция цикла for в общем виде записывается так:
for сч := start to finish do
// инструкции, которые надо выполнить несколько раз
end;
Где:
Примеры:
for i:=1 to 10 do
writeln(i:2, ' Hello, World!');
end;
for i:=1 to n do
writeln(i:2, ' Hello, World!');
end;
Цикл
While
Инструкция цикла While (цикл с предусловием) в общем виде записывается так:
while условие do
// здесь инструкции, которые будут выполняться до тех пор,
// пока условие истинно
end;
Где:





