Алгоритмічна мова Паскаль (Pascal) – Основи програмування

Інформатика

Основи програмування

Алгоритмічна мова Паскаль (Pascal)

Алгоритмічна мова Паскаль (Pascal) названа на честь французького математика XVII ст. Блеза Паскаля, який був творцем першої механічної обчислювальної машини. Автор мови – професор Федерального технічного університету (Швейцарія) Ніклаус Вірт; мова створена в 1970 році як інструмент для навчання студентів навичок програмування.
Перше діалогове середовище підготовки та виконання програм на мові Паскаль було створено в 1983 році. Автор першого Турбо-Паскалю та засновник

фірми Borland International – Філіп Кан. Останні версії мови Паскаль, які працюють під MS DOS та Windows,- Паскаль 7.0фірм Borland та Microsoft (1992 р.). Наступні версії набули розвитку у мові Delphi та працюють під OС Windows.

Елементи мови Паскаль

Основними елементами мови Паскаль є символи, слова, вирази, команди (оператори).
Символи – нероздільні знаки, які оброб­ляє транслятор мови.
Слова – мінімальна смислова одиниця мови, що складається із символів (ідентифікатори, числа, службові слова).
Вирази – це послідовності, що складаються з імен змінних, функцій, констант, знаків операцій і круглих дужок, що визначають

порядок виконання дій.
Вирази можуть бути арифметичними і логічними. Арифметичними є вирази, які записуються за допомогою арифметичних операцій і в результаті обчислення яких одержують числові значення. Окрім відомих чотирьох арифметичних дій у Паскалі є дії div (частка від ділення націло двох цілих чисел) і mod (остача від ділення націло двох цілих чисел). В арифметичних виразах можуть використовуватися також стандартні функції: тригонометричні (sin(x), cos(x), arctan(x)), визначення модуля (abs(x)), округлення (round(x)), піднесення до квадрата (sqr(x)) та інші.
Команди (оператори) – це вказівки на виконання окремих дій.
Мова Паскаль містить символи для складання ідентифікаторів (великі та малі латинські букви, арабські цифри, знак підкреслення); символи-роздільники (пропуск, керуючі символи з ASCII-кодами від 0 до 31);спеціальні символи, що виконують певні функції при побудові різних конструкцій мови (+ – * / = > <.,; : @ ‘ ( ) { } # $ ^); складові символи, які сприймаються компілятором як єдине ціле (<= >=: = (* *) (..)..); “невживані” символи (символи, що не входять до алфавіту мови, але використовуються в коментарях та у вигляді значень символьних і рядкових констант).
Ідентифікатори – послідовності з букв, цифр та символу підкреслення, що починаються з букви або символу підкреслення. Великі та малі букви не розрізнюються.
У мові програмування використовується обмежена кількість слів, значення і спосіб використання яких заданий (службові слова).

Структура опису алгоритму мовою програмування

При написанні програми необхідно дотримуватися правила розміщення в тексті різних змістовних блоків. Будь-яку програму можна умовно розділити на дві основні частини (див. таблицю): розділ опису (розділ оголошень та угод; розділ текстів процедур та функцій) та розділ виконання (розділ основного блоку).
Заголовок програми складається із зарезервованого слова PROGRAM та імені програми, яке є ідентифікатором (цей рядок може бути відсутнім).
У директивах компілятора можна вказати режими його роботи при трансляції програми. За допомогою оператора USES підключаються до тексту програми модулі бібліотек, він може бути використаний тільки один раз, і його місце чітко визначено.
Розділ опису позначок LABEL містить перелічені через кому імена позначок переходу, які можуть являти собою ціле число (від 0 до 9999), рядок символів, символьно-цифрову конструкцію.
У розділі CONST містяться перелічені через кому константи, що використовуються в програмі.
У розділі TYPE можна визначити нові типи, тут можуть використовуватися раніше визначені в розділі CONST константи.
У розділі опису змінних VAR міститься список змінних, що використовуються в програмі, та визначається їх тип. Жорстке дотримання порядку оголошень позначок, констант, типів та змінних не потрібне.
Якщо в програмі використовуються процедури та/або функції, необхідно їх оголосити. Услід за зарезервованим словом PROCEDURE (FUNCTION) йде ім’я процедури (функції) та список формальних параметрів (якщо вони є). Далі йде оголошення локальних позначок, констант, типів та змінних. Локально оголошені конструкції доступні тільки всередині даної підпрограми.
Тіло процедури (функції) обмежується службовими словами BEGIN…END;.
Основний блок складається з послідовності операторів, які визначають послідовність дій для виконання основного алгоритму.
Тіло програми обмежується службовими словами BEGIN…END, як і тіло підпрограми, але після оператора END ставиться крапка, що є позначенням кінця програми. Усі наступні описи будуть сприйняті як коментар та ігноруватись транслятором.

Типи даних в Паскалі

З точки зору програмування Величини – це дані, якими оперує програма і які потребують місця в пам’яті комп’ютера.
Залежно від формату представлення значень величини в пам’яті комп’ютера, множини допустимих значень, множини допустимих операцій величини поділяються на типи.
Стандартні типи даних. Величини, значення яких зберігаються в одному елементі пам’яті, називають Простими величинами. У Паскалі до них належать стандартні (базові) типи та їхні похідні:
– різновиди цілого типу – Integer, Shortint, Longint, Byte, Word;
– різновиди дійсного типу – Real, Singl, Double, Extended, Comp;
– символьний тип Char;
– логічний тип Boolean.
Опис величин. Для опису (оголошення) постійних величин використовується службове слово CONST, змінних – VAR. За допомогою оголошення встановлюється не тільки факт існування змінної, але і її тип.
Приклад:
CONST n=5;
VAR summer: integer; a1, b1: char;
Структуровані типи даних. Це дані, що складаються з декількох елементів простого типу. Такі типи даних зручно використовувати, коли обробляється велика кількість даних одного типу або декілька даних різних типів об’єднуються в одну групу.
До структурованих типів даних можна віднести рядки, масиви, записи, множини.

Лінійні програми

Лінійними називаються програми, що складаються з простих команд (операторів).
Простими командами (простими вказівками алгоритму) називаються команди, які не використовують умови при своєму виконанні. До числа простих операторів належать команди (оператори) присвоювання, уведення і виведення, виклику допоміжного алгоритму (підпрограми).
Оператор присвоювання. Він задає або змінює поточне значення деякої змінної. При цьому змінюється вміст конкретного елемента пам’яті, відведеного для цієї змінної. Оскільки мета будь-якого алгоритму – це отримання в певному місці пам’яті потрібного значення, практично будь-яка програма містить цей оператор.
Ця команда може мати такий вигляд:

Формат командиПриклади
<ім’я змінної>: = <значення>;A:=5; D:= 10;
<ім’я змінної>: = <ім’я змінної >;A:=D;
<ім’я змінної>: = <вираз>;A:=A+D*5;

Ліворуч від знака “:=” розташовано ім’я змінної, праворуч – значення величини, ім’я іншої змінної, вираз.
Розпізнавши команду присвоювання, керування передається програмі, яка може виконувати присвоювання. Спочатку виконуються операції, що стоять праворуч від знака “: =”, а потім результат присвоюється змінній, що стоїть ліворуч від знака присвоювання. Знак присвоювання показує, що ділянку пам’яті комп’ютера, в якій зберігається значення вказаної змінної, треба змінити на задане значення, на значення заданої змінної або на значення обчисленого виразу.
Оператори введення-виведення. Стан­дартні процедури введення даних використовуються для визначення початкових значень певних змінних величин і складаються з імені процедури та списку введення, який містить імена змінних, значення яких будуть уводитися з клавіатури або з файла, тобто змінним будуть присвоюватися якісь певні значення.
Частіше для визначення початкових значень зручніше користуватися командою введення, а не командою присвоювання, тому що при необхідності використання програми з іншими початковими даними не доводиться змінювати текст програми.
Якщо в запису алгоритму стоїть команда введення, то його виконання уривається і керування передається програмі, яка може здійснити введення даних. Після введення даних керування передається наступній команді алгоритму.
На мові Паскаль процедура введення даних має вигляд:
READ (список уведення);
READLN (список уведення).
Під час виконання процедур READ та READLN програма переходить у стан очікування введення даних. Якщо у списку введення вказано декілька змінних, то їх можна вводити в одному рядку, відділяючи одне від одного символом “пробіл”, або в окремих рядках (у стовпчик), завершуючи введення кожного значення клавішею Enter.
Робота процедури не завершиться, доки не будуть уведені значення для всіх змінних, указаних у списку. Тип значень, що вводяться, має збігатися з тим, який має відповідна змінна.
Оператор READLN відрізняється від оператора READ тим, що після введення необхідного числа даних курсор переміщується на наступний рядок.
Якщо введення даних здійснюється з клавіатури, то список уведення – це список змінних, тобто послідовність імен змінних, розділених комами. Якщо введення здійснюється з файла, то у списку введення перша змінна – файлова, пов’язана з іменем реального файла.
Стандартні процедури виведення результатів обчислень використовуються для виведення їхніх значень на екран, принтер або у файл. На мові Паскаль процедури виведення мають вигляд:
WRITE (список виведення);
WRITELN (список виведення).
Список елементів виведення значно ширший, ніж у процедурах уведення. До нього можуть входити:
– ідентифікатори величин, значення яких будуть виводитися на відповідний пристрій або у файл;
– вирази, значення яких спочатку будуть обчислені, а потім виведені на пристрій;
– сталі величини (числові, символьні, ряд­кові).
Відмінність між WRITE і WRITELN полягає в тому, що виведення оператором WRITE починається з поточного місцерозташування курсора на екрані монітора і курсор після закінчення виведення залишається в тому ж рядку. Оператор WRITELN виводить значення з поточного місця, а потім курсор переміщується на наступний рядок. Можна використовувати оператор WRITELN без списку виведення для переміщення курсору на новий рядок.
Якщо виведення здійснюється на екран монітора, то список виведення – це список змінних, або послідовність імен змінних, констант або виразів, розділених комами. Якщо виведення здійснюється у файл, то в списку виведення перша змінна – файлова, пов’язана з іменем реального файла.
У команді виведення після елемента списку виведення через двокрапку можна вказати формат виведення, тобто ширину поля екрана, на якому будуть розташовуватися значення. При виведенні дійсних даних можна вказати також кількість десяткових цифр у дробовій частині, яку треба вивести на екран.
Приклад: write (А: 10: 3, В: 8).
Оператор виклику допоміжного алгоритму. У Паскалі реалізовано підпрограми-процедури і підпрограми-функції. Виклик підпрограми здійснюється за її іменем з вказівкою фактичних параметрів. При цьому на місці фактичних аргументів можуть бути конкретні значення, імена фактичних змінних, вирази, а на місці результатів – тільки імена фактичних змінних. При цьому кількість, типи і призначення формальних і фактичних параметрів у відповідних списках параметрів мають збігатися.

Програми з галуженням

Команди галуження – це складові командами, у яких на відміну від простих команд присутні умови, в залежності від істинності яких виконуються або не виконуються оператори, що входять до складу команди галуження.
Повне та неповне галуження. У Паскалі реалізовано повне та неповне галуження, а також команда вибору, що реалізована як послідовне виконання декількох структур галуження і яка передбачає вибір з декількох можливих варіантів дій.
1. Конструкція “If – Then” – неповне галуження використовується в тому випадку, коли визначені дії тільки у разі виконання умови.
IF <умова> THEN <оператор>;
Конструкція “If – Then – Else” – пов­не галуження використовується в тому випадку, коли визначені різні дії в разі виконання та невиконання умови.
IF <умова> THEN <оператор> ELSE <опе­ратор>;
2. Конструкції “Case – Of” неповний вибір або “Case – Of – Else” – повний вибір використовуються в тому випадку, коли визначені різні дії в разі декількох виходів (замінюють конструкції із вкладених операторів if).
CASE <порядкова змінна> OF
<значення>: <оператори>
ELSE <оператор>;
END.
Прості та складені умови. Висловлювання, яке може бути істинним (правильним) або хибним (неправильним) називається Умовою. Проста умова – це висловлювання, в якому два вирази з’єднані знаком операції відношення. Складена умова – це висловлювання, в якому дві або більше простих умов з’єднані знаками логічних операцій.
У мові програмування Паскаль реалізовані операції відношеня: > – “більше”; < – “менше”; = – “дорівнює”; <> – “не дорівнює”; >= – “не менше”; <= – “не більше”; та логічні операції: not – “ні”; and – “і”; or – “або”.
Висловлювання – це деяке твердження, ві­­­д­­­­­­­­н­ос­но якого можна сказати, що воно або істинне, або хибне. Таким чином, кожному висловлюванню можна приписати “0” (хибне) або “1” (істинне). Приклад: “5 – просте число” – істинне, “2 = 3 + 5” – хибне висловлювання.
За допомогою логічних операцій можна будувати з одного висловлювання інші. Побудова з даного (даних) висловлювання нового висловлювання називається логічною операцією. Знаки логічних операцій називають логічними зв’язками. Логічні операції частіше за все описуються за допомогою таб­лиць істинності.
Таблиці істинності для операцій “інверсії” (заперечення), “кон’юнкції” (логічне множення, або логічне “і”), диз’юнкції (логічне додавання, або логічне “або”).

АBA and B (“і”)A or B (“або”)Not A (“ні”)
11110
10010
01011
00001

Логічні вирази – це вирази, що складаються з висловлювань, які можуть бути з’єднані логічними зв’язками. Ці вирази набувають логічного значення (“хибне” або “істинне”). Логічні вирази можуть бути простими та складеними. У простому логічному виразі використовуються змінні та константи логічного типу, операції порівняння. Зв’язка простих логічних виразів за допомогою логічних операцій утворює складений логічний вираз. Прості вирази записуються в складених виразах у круг­лих дужках.

Циклічні програми

Циклічними програмами називають програми, в яких реалізовано команди циклу.
У Паскалі передбачено три різновиди операторів циклу: цикл із передумовою, цикл з післяумовою, цикл із лічильником (із покроковою зміною аргументу). Також реалізована робота із вкладеними циклами. Вкладені цик­ли – циклічні процеси, що допускають укладеність одних циклів в інші.
Цикл із передумовою (або цикл-“поки”) – це цикл, у якому тіло циклу виконується тільки у разі виконання умови, заданої перед тілом циклу. Якщо умова стає невірною, то робота циклу припиняється і керування передається оператору, наступному за оператором циклу.
На мові Паскаль оператор циклу з перед­умовою ще називається “циклом While-Do”.
WHILE <умова> DO <оператор>;
Приклад: обчислення суми перших 100 натуральних чисел методом послідовного додавання.
m:=1; S: =0;
WHILE m<=100 DO
begin
S:=S+m;
m:=m+1;
end;
Цикл із післяумовою (або цикл-“до”) – це цикл, у якому тіло циклу виконується доти, поки умова, задана після тіла циклу, не стане правильною. Якщо умова стає правильною, то робота циклу припиняється й управління передається оператору, наступному за оператором циклу.
На мові Паскаль оператор циклу з після­умовою ще називається “цикл Repeat-Until”.
REPEAT <оператор> UNTIL <умова>;
Приклад: обчислення суми перших 100 натуральних чисел методом послідовного додавання.
m:= 0; S: = 0;
REPEAT
m:=m +1;
S:=S+m;
UNTIL m >= 100;
Цикл із лічильником (із покроковою зміною аргумен­ту) – це цикл, у якому тіло циклу виконується заздалегідь відому кількість разів. У різних алгоритмічних мовах реалізація цього циклу може передбачати використання аргументів різних типів, зміну аргументу на різний крок, діапазон зміни аргументу і т. д.
Цикл із лічильником аргументу реалізовується таким чином:
1) аргументу надається початкове значення;
2) якщо значення входить у заданий діапазон, то виконується тіло циклу;
3) аргумент змінюється на заданий крок; виконується 2);
4) якщо значення не входить у заданий діапазон, то виконання циклу припиняється і керування передається оператору, наступному за оператором циклу.
У мові Паскаль реалізовано два оператори циклу з покроковою зміною аргументу: “цикл For-То” і “цикл For-DownТо”.
FOR <лічильник циклу>:=<початкове значення> TO <кінцеве значення >DO<оператор>; (цикл з кроком 1),
FOR <лічильник циклу>:=<початкове значення>DOWNTO <кінцеве значення >DO<оператор>; (цикл з кроком –1),
де <лічильник циклу> – змінна порядкового типу,
<початкове значення> і <кінцеве значен­ня> – вирази того самого типу, що і <лічильник циклу> (діапазон зміни лічильника циклу),
<оператор> – простий або складовий оператор.
Приклади: обчислення суми перших 100 натуральних чисел методом послідовного додавання.
а) S: =0;
for m:=1 to 100 do
S:=S+m;
б) S: =0;
for m:=100 downto 1 do
S:=S+m;
Під час реалізації циклу з покроковою зміною аргументу в Паскалі необхідно заздалегідь знати про кількість повторень тіла циклу і пам’ятати про можливість зміни лічильника циклу тільки на 1 або –1.

Масиви даних

Масив – це структурована сукупність фіксованої кількості елементів одного типу, доступ до яких здійснюється за допомогою індексів. Елементи масиву називаються індекс­ними змінними. За кількістю індексів, які треба вказати для доступу до окремого елемента масиву, розрізнюють одновимірні, двовимірні, …, n-вимірні масиви. Вимоги до індексів різні в різних алгоритмічних мовах. У Паскалі індекс – це змінна порядкового типу.
Опис масиву містить ім’я масиву (ідентифікатор), принцип індексації елементів (діапазон зміни індексів), тип елементів масиву.
VAR <ім’я_масиву>: ARRAY <діапазони зміни індексів> OF <тип_даних>;
Масив називається одновимірним (лінійна таблиця), якщо для доступу до його елементів достатньо одного індексу.
Наприклад, одновимірний масив із 8 дійсних чисел у Паскалі можна оголосити таким чином:
– VAR Name: ARRAY OF real;
– Const N=8;
VAR Name: ARRAY OF real;
– TYPE MASSIV = ARRAY OF real;
VAR Name: MASSIV;
Масив називається двовимірним (матриця), якщо для доступу до його елементів необхідно вказати значення двох індексів. Перший індекс вказує номер рядка, а другий – номер стовпця в цьому рядку.
При розподілі пам’яті в описовій частині програми під масив резервується стільки місця, скільки передбачає вказана кількість елементів масиву, враховуючи тип елементів. Межі зміни індексів повинні бути сталими величинами, а не змінними, інакше буде невідомо, скільки місця необхідно відвести в пам’яті для такого масиву.
У пам’яті комп’ютера елементи одновимірних масивів розташовано послідовно. Двовимірні масиви розташовуються таким чином: спочатку елементи першого рядка, потім другого і т. д.
Роботу з масивами можна умовно поділити на три частини:
– формування масиву;
– опрацювання масиву;
– виведення масиву.
Формування масиву. Формування значень елементів масиву можна виконувати у такий спосіб:
– уведення значень елементів масиву з клавіатури або з файла;
– формування значень випадковим чином, з використанням функції-генератора випадкових чисел Random;
– обчислення значень елементів масиву за формулою.
Опрацювання масиву. Класичними задачами для роботи з масивами можна назвати:
– пошук заданого елемента в масиві;
– знаходження суми (добутку) елементів масиву;
– пошук максимального (мінімального) елемента в масиві;
– упорядкування масиву за ознакою (наприклад за зростанням або спаданням та ін.).
Одним із найскладніших завдань є впорядкування елементів масиву. Для розв’язання цієї задачі існує декілька алгоритмів.
Сортування вибором:
1. Установити номер найбільшого елемента масиву.
2. Поміняти місцями найбільший і останній елементи.
3. Повторити 1 і 2 над остачею масиву (без останнього елемента).
Застосовувати цей метод до елементів масиву, що залишилися, доки залишок не скоротиться до одного елемента.
Аналогічно сортування вибором можна застосувати до найменшого елемента, міняючи його з першим. У результаті все одно отримаємо зростаючу (незменшувану) послідовність елементів масиву.
Обмінне сортування (“бульбашка”):
1. Порівняти два поруч розташованих елементи.
2. Якщо пара порушує потрібний порядок слідування, елементи міняють місцями.
Порівняння відбувається до кінця масиву. Обмін здійснюється доти, поки прохід по масиву не викличе жодного обміну.
Існують й інші методи сортування масивів: метод уставки, швидке сортування тощо.
Виведення масиву. Виведення елементів одновимірного масиву на екран можна виконувати в рядок:
For i:=1 to n do Write (mas );
або у стовпчик:
For i:=1 to n do Writeln (mas ).
Для виведення елементів двовимірного масиву у вигляді двовимірної таблиці (матриці) можна використовувати таку конструкцію:
For i:=1 to n do
Begin
For j:=1 to m do
Write (mas );
Writeln;
End.

Робота з текстовою інформацією

У Паскалі при роботі з текстовою інформацією існує можливість обробки одиночних символів типу Char та послідовності символів – рядків типу String.
Символьний тип. Тип Char – це один з базових типів мови, призначений для збереження та опрацювання одного символу. Множиною його значень є окремі символи (букви, цифри, знаки), впорядковані у відповідності із розширеним набором символів ASCII-коду. Змінна цього типу займає 1 байт пам’яті. Завдяки тому що в пам’яті машини символи зберігаються у вигляді кодів (більшим вважається той символ, чий код більший), їх можна порівнювати. Для символів припустимі всі операції порівняння: <, <=, =, >, >=, <>.
Опис даних символьного типу:
Const Name1 = ‘v’; – опис символьної константи,
Var Name2: CHAR; – опис символьної змінної.
Як правило, значення для символьних змінних та констант задаються в лапках, наприклад, ‘f’, ‘1′, ‘+’. Також можна задати значення, вказавши безпосередньо числове значення ASCII-коду, поставивши перед цим числовим кодом знак #, наприклад, #35, #102.
У Паскалі для роботи з символьною інформацією реалізовані функції перетворення: CHR(N) – символ з кодом N, ORD(S) – код символа S. Також застосовуються функції, що визначають SUCC(S) – наступний символ, PRED(S) – попередній символ. Для цих функцій виконуються такі залежності:
SUCC(S) = CHR(ORD(S) +1);
PRED (S) = CHR(ORD(S) –1).
Для латинських літер ‘a’..‘z’ виконується функція UPCASE(S), яка переводить ці літери у верхній регістр ‘A’..’Z’.
Рядковий тип. Тип String – тип даних, призначений для збереження та опрацювання послідовності символів. Рядок можна розглядати як особливу форму одновимірного символьного масиву.
Опис даних рядкового типу:
Const Name1=‘computer’; – опис рядкової константи,
Var Name2: STRING; – опис рядкової змінної,
Name3: STRING ; – опис рядкової змінної заданої довжини,
За умовчанням довжина рядкової змінної дорівнює 255 символам, але можна обмежити довжину рядка за допомогою явної вказівки довжини рядка.
У Паскалі реалізовано опрацювання рядків двома шляхами: опрацювання рядка як єдиного цілого та як об’єкта, який створюється з окремих символів.
Перший шлях надає можливість:
– присвоєння рядковій змінній за одну операцію цілого рядка символів, наприклад, Name2:=‘computer’; Name3:=‘science’;
– об’єднання рядків у довільному порядку за допомогою операції “+” (операції скріплення, об’єднання), наприклад,
Name3:= ‘computer’+‘science’;
Name3:= Name2 + Name3;
– порівняння рядків за допомогою операцій порівняння: <, <=, =, >, >=, <>, наприклад,
If Name3 <> Name2 then write (‘no’);
Другий шлях надає можливість до кожного окремого символу рядка звертатися за його номером позиції як до елемента масиву за індексом, наприклад,
Name3:= Name2 + Name2 + Name2 ;
Елемент з нульовим індексом містить символ, код якого вказує на дійсну довжину даного рядка.
У Паскалі реалізовані процедури і функції для опрацювання рядків. Поточну довжину рядка S можна дізнатися за допомогою функції LENGTH (S).
Група функцій та процедур, спрямована на опрацювання фрагментів рядка:
– функція COPY(S, N, M) – копіювання фрагменту рядка S довжиною M, що починається з позиції N;
– функція POS (S1, S) – пошук фрагменту S1 в рядку S (отримуємо позицію, з якої починається фрагмент S1 в рядку S);
– функція CONCAT (S1, S2,…) – об’єднання рядків S1, S2,…;
– процедура INSERT (S1, S2, M) – вставка фрагменту S1 у рядок S2 із позиції M;
– процедура DELETE (S1, N, M) – вилучення частини рядка S1 довжиною M, починаючи з позиції N;
– процедура VAL (S, N, Code) – перетворення рядка цифрових символів S у число N (параметр Code=0, якщо рядок S утворений не із цифрових символів);
– процедура STR (N, S) – перетворення числа N у рядок цифрових символів S.
Для сортування символьних рядків (наприклад, за алфавітом) доцільно створити масив символьних рядків (масив типу String), що, з урахуванням можливості використання операцій порівняння для рядків, дозволить у простий спосіб застосовувати основні алгоритми сортування.


1 Star2 Stars3 Stars4 Stars5 Stars (1 votes, average: 5,00 out of 5)


Алгоритмічна мова Паскаль (Pascal) – Основи програмування - Довідник з інформатики


Алгоритмічна мова Паскаль (Pascal) – Основи програмування