<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="uk">
	<id>https://wiki.erp.kyiv.ua/index.php?action=history&amp;feed=atom&amp;title=Pascal</id>
	<title>Pascal - Історія редагувань</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.erp.kyiv.ua/index.php?action=history&amp;feed=atom&amp;title=Pascal"/>
	<link rel="alternate" type="text/html" href="https://wiki.erp.kyiv.ua/index.php?title=Pascal&amp;action=history"/>
	<updated>2026-05-13T11:58:26Z</updated>
	<subtitle>Історія редагувань цієї сторінки в вікі</subtitle>
	<generator>MediaWiki 1.45.3</generator>
	<entry>
		<id>https://wiki.erp.kyiv.ua/index.php?title=Pascal&amp;diff=930&amp;oldid=prev</id>
		<title>R: Первинна публікація</title>
		<link rel="alternate" type="text/html" href="https://wiki.erp.kyiv.ua/index.php?title=Pascal&amp;diff=930&amp;oldid=prev"/>
		<updated>2026-05-06T17:57:33Z</updated>

		<summary type="html">&lt;p&gt;Первинна публікація&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Нова сторінка&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Pascal&amp;#039;&amp;#039;&amp;#039; — це високорівнева мова програмування, створена для навчання структурному програмуванню, зрозумілого опису алгоритмів і побудови надійних програм. Pascal став важливою мовою в історії програмування, освіти, компіляторів, алгоритмів і розвитку таких мов та середовищ, як &amp;#039;&amp;#039;&amp;#039;[[Object Pascal]]&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;[[Delphi]]&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;[[Free Pascal]]&amp;#039;&amp;#039;&amp;#039; і &amp;#039;&amp;#039;&amp;#039;[[Lazarus]]&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
Pascal був створений швейцарським вченим &amp;#039;&amp;#039;&amp;#039;Ніклаусом Віртом&amp;#039;&amp;#039;&amp;#039; приблизно у 1970 році. Мова названа на честь французького математика, філософа й винахідника &amp;#039;&amp;#039;&amp;#039;Блеза Паскаля&amp;#039;&amp;#039;&amp;#039;.&amp;lt;blockquote&amp;gt;&amp;#039;&amp;#039;&amp;#039;Pascal — це мова, яка навчила кілька поколінь програмістів писати код структуровано, зрозуміло й дисципліновано.&amp;#039;&amp;#039;&amp;#039;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Коротко ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Параметр&lt;br /&gt;
!Значення&lt;br /&gt;
|-&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;Назва&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|Pascal&lt;br /&gt;
|-&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;Автор&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|Ніклаус Вірт&lt;br /&gt;
|-&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;Перший реліз&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|Приблизно 1970 рік&lt;br /&gt;
|-&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;Тип&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|Високорівнева, структурна, процедурна, компільована мова програмування&lt;br /&gt;
|-&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;Основна ідея&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|Навчання добрим практикам програмування й структурному мисленню&lt;br /&gt;
|-&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;Названа на честь&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|Блеза Паскаля&lt;br /&gt;
|-&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;Стандарт&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|ISO 7185&lt;br /&gt;
|-&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;Популярні реалізації&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|Turbo Pascal, Borland Pascal, Free Pascal, GNU Pascal, UCSD Pascal&lt;br /&gt;
|-&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;Розвиток&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|Object Pascal, Delphi, Free Pascal, Lazarus&lt;br /&gt;
|-&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;Основні сфери&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|Освіта, алгоритми, desktop, навчальні програми, legacy-системи&lt;br /&gt;
|-&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;Складність для новачків&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|Низька&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Головна ідея Pascal ==&lt;br /&gt;
Pascal створювався як мова, що допомагає програмісту мислити структуровано.&lt;br /&gt;
&lt;br /&gt;
У Pascal важливі:&lt;br /&gt;
&lt;br /&gt;
* чітка структура програми;&lt;br /&gt;
* зрозуміле оголошення змінних;&lt;br /&gt;
* поділ програми на процедури й функції;&lt;br /&gt;
* використання типів даних;&lt;br /&gt;
* контроль логіки через умови й цикли;&lt;br /&gt;
* читабельність коду;&lt;br /&gt;
* дисципліна програмування.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;#039;&amp;#039;&amp;#039;Pascal вчить не просто писати код, а думати про програму як про впорядковану систему.&amp;#039;&amp;#039;&amp;#039;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Важливі акценти ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Статус&lt;br /&gt;
!Теза&lt;br /&gt;
!Пояснення&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#d4edda; color:#155724; font-weight:bold;&amp;quot; |Ключове&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;Pascal створювався для навчання&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|Мова добре підходить для пояснення алгоритмів, типів, процедур і структурного програмування.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#d4edda; color:#155724; font-weight:bold;&amp;quot; |Ключове&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;Pascal має дуже читабельний синтаксис&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|Код Pascal часто легко зрозуміти навіть новачкам.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#d4edda; color:#155724; font-weight:bold;&amp;quot; |Ключове&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;Pascal вплинув на інші мови&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|Object Pascal, Delphi, Modula-2, Oberon та інші мови повʼязані з ідеями Pascal.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#d4edda; color:#155724; font-weight:bold;&amp;quot; |Ключове&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;Pascal був дуже популярний в освіті&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|Багато університетів і шкіл використовували Pascal для навчання програмуванню.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#fff3cd; color:#856404; font-weight:bold;&amp;quot; |Важливо&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;Класичний Pascal — не те саме, що Delphi&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|Delphi використовує Object Pascal, який є розвитком Pascal з обʼєктно-орієнтованими можливостями.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#f8d7da; color:#721c24; font-weight:bold;&amp;quot; |Увага&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;Pascal сьогодні менш популярний у промисловій розробці&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|Для нових web, AI або mobile-проєктів частіше використовують Python, JavaScript, TypeScript, Java, C# або Go.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Історія ==&lt;br /&gt;
Pascal був створений Ніклаусом Віртом приблизно у 1970 році. Мова виникла в контексті пошуку кращих способів навчання програмуванню та створення зрозумілих алгоритмів.&lt;br /&gt;
&lt;br /&gt;
Pascal розвивав ідеї мов ALGOL і ALGOL W, але мав простіший і практичніший синтаксис для навчання.&lt;br /&gt;
&lt;br /&gt;
Мова швидко стала популярною в освіті, тому що дозволяла навчати:&lt;br /&gt;
&lt;br /&gt;
* змінним;&lt;br /&gt;
* типам даних;&lt;br /&gt;
* умовам;&lt;br /&gt;
* циклам;&lt;br /&gt;
* процедурам;&lt;br /&gt;
* функціям;&lt;br /&gt;
* масивам;&lt;br /&gt;
* записам;&lt;br /&gt;
* файлам;&lt;br /&gt;
* структурному програмуванню.&lt;br /&gt;
&lt;br /&gt;
== Чому мова називається Pascal ==&lt;br /&gt;
Мова названа на честь &amp;#039;&amp;#039;&amp;#039;Блеза Паскаля&amp;#039;&amp;#039;&amp;#039; — французького математика, фізика, філософа й винахідника.&lt;br /&gt;
&lt;br /&gt;
Блез Паскаль створив механічну обчислювальну машину, тому його імʼя символічно повʼязане з історією обчислень і програмування.&lt;br /&gt;
&lt;br /&gt;
== Pascal і структурне програмування ==&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Структурне програмування&amp;#039;&amp;#039;&amp;#039; — це підхід, у якому програма будується з чітких блоків:&lt;br /&gt;
&lt;br /&gt;
* послідовність дій;&lt;br /&gt;
* умови;&lt;br /&gt;
* цикли;&lt;br /&gt;
* процедури;&lt;br /&gt;
* функції.&lt;br /&gt;
&lt;br /&gt;
Pascal добре підходив для цього підходу, бо його синтаксис змушував програміста писати код зрозуміло.&amp;lt;pre&amp;gt;&lt;br /&gt;
program Example;&lt;br /&gt;
&lt;br /&gt;
begin&lt;br /&gt;
  Writeln(&amp;#039;Hello, Pascal!&amp;#039;);&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/pre&amp;gt;У Pascal видно чітку структуру:&amp;lt;pre&amp;gt;&lt;br /&gt;
program&lt;br /&gt;
оголошення&lt;br /&gt;
begin&lt;br /&gt;
  команди&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Для чого використовується Pascal ==&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
!Напрям&lt;br /&gt;
!Як використовується Pascal&lt;br /&gt;
!Приклади&lt;br /&gt;
|-&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;Освіта&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|Навчання основам програмування&lt;br /&gt;
|Алгоритми, задачі, курси програмування&lt;br /&gt;
|-&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;Алгоритми&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|Опис логіки й структур даних&lt;br /&gt;
|Масиви, сортування, пошук&lt;br /&gt;
|-&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;Олімпіадне програмування&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|Історично використовувався для задач&lt;br /&gt;
|Turbo Pascal, Free Pascal&lt;br /&gt;
|-&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;Desktop&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|Через Object Pascal і Delphi&lt;br /&gt;
|Windows-застосунки, бізнес-програми&lt;br /&gt;
|-&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;Legacy&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|Підтримка старих систем&lt;br /&gt;
|Старі навчальні, облікові або desktop-програми&lt;br /&gt;
|-&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;Компілятори&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|Вивчення побудови мов і трансляторів&lt;br /&gt;
|Pascal-P, навчальні компілятори&lt;br /&gt;
|-&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;Бізнес-системи&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|Через Delphi/Object Pascal&lt;br /&gt;
|ERP, CRM, склад, документи&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Pascal, Object Pascal і Delphi ==&lt;br /&gt;
Ці поняття важливо розрізняти.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Термін&lt;br /&gt;
!Що означає&lt;br /&gt;
|-&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;Pascal&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|Класична структурна й процедурна мова програмування&lt;br /&gt;
|-&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;Object Pascal&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|Розвиток Pascal з класами, обʼєктами, властивостями й інтерфейсами&lt;br /&gt;
|-&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;Delphi&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|IDE, компілятор, платформа й екосистема, що використовує Object Pascal&lt;br /&gt;
|-&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;Free Pascal&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|Відкритий компілятор Pascal/Object Pascal&lt;br /&gt;
|-&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;Lazarus&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|Відкрита IDE для Free Pascal, схожа за ідеєю на Delphi&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;#039;&amp;#039;&amp;#039;Pascal — це основа. Object Pascal — розвиток. Delphi — практична платформа для створення застосунків.&amp;#039;&amp;#039;&amp;#039;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Основна структура програми Pascal ==&lt;br /&gt;
Класична Pascal-програма має таку структуру:&amp;lt;pre&amp;gt;&lt;br /&gt;
program ProgramName;&lt;br /&gt;
&lt;br /&gt;
uses&lt;br /&gt;
  SysUtils;&lt;br /&gt;
&lt;br /&gt;
var&lt;br /&gt;
  Name: string;&lt;br /&gt;
&lt;br /&gt;
begin&lt;br /&gt;
  Name := &amp;#039;Anna&amp;#039;;&lt;br /&gt;
  Writeln(&amp;#039;Привіт, &amp;#039;, Name);&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/pre&amp;gt;Основні частини:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Частина&lt;br /&gt;
!Призначення&lt;br /&gt;
|-&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;program&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|Назва програми&lt;br /&gt;
|-&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;uses&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|Підключення модулів&lt;br /&gt;
|-&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;var&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|Оголошення змінних&lt;br /&gt;
|-&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;begin&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|Початок основного блоку&lt;br /&gt;
|-&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;end.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|Кінець програми&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Приклад першої програми ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
program HelloWorld;&lt;br /&gt;
&lt;br /&gt;
begin&lt;br /&gt;
  Writeln(&amp;#039;Hello, world!&amp;#039;);&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/pre&amp;gt;Ця програма виводить текст на екран.&lt;br /&gt;
&lt;br /&gt;
== Змінні ==&lt;br /&gt;
Змінні в Pascal зазвичай оголошуються до використання.&amp;lt;pre&amp;gt;&lt;br /&gt;
program VariablesExample;&lt;br /&gt;
&lt;br /&gt;
var&lt;br /&gt;
  Age: Integer;&lt;br /&gt;
  Name: string;&lt;br /&gt;
&lt;br /&gt;
begin&lt;br /&gt;
  Age := 17;&lt;br /&gt;
  Name := &amp;#039;Anna&amp;#039;;&lt;br /&gt;
&lt;br /&gt;
  Writeln(Name);&lt;br /&gt;
  Writeln(Age);&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/pre&amp;gt;У Pascal оператор присвоєння — це:&amp;lt;pre&amp;gt;&lt;br /&gt;
:=&lt;br /&gt;
&amp;lt;/pre&amp;gt;А знак рівності &amp;lt;code&amp;gt;=&amp;lt;/code&amp;gt; використовується переважно для порівняння.&lt;br /&gt;
&lt;br /&gt;
== Основні типи даних ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Тип&lt;br /&gt;
!Для чого&lt;br /&gt;
!Приклад&lt;br /&gt;
|-&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;Integer&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|Цілі числа&lt;br /&gt;
|&amp;lt;code&amp;gt;10&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;Real&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|Дробові числа&lt;br /&gt;
|&amp;lt;code&amp;gt;3.14&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;Boolean&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|Логічні значення&lt;br /&gt;
|&amp;lt;code&amp;gt;True&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;False&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;Char&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|Один символ&lt;br /&gt;
|&amp;lt;code&amp;gt;&amp;#039;A&amp;#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;String&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|Рядок тексту&lt;br /&gt;
|&amp;lt;code&amp;gt;&amp;#039;Hello&amp;#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Умови ==&lt;br /&gt;
Умова &amp;lt;code&amp;gt;if&amp;lt;/code&amp;gt;:&amp;lt;pre&amp;gt;&lt;br /&gt;
if Age &amp;gt;= 18 then&lt;br /&gt;
  Writeln(&amp;#039;Дорослий&amp;#039;)&lt;br /&gt;
else&lt;br /&gt;
  Writeln(&amp;#039;Неповнолітній&amp;#039;);&lt;br /&gt;
&amp;lt;/pre&amp;gt;У Pascal слова &amp;lt;code&amp;gt;then&amp;lt;/code&amp;gt; і &amp;lt;code&amp;gt;else&amp;lt;/code&amp;gt; роблять структуру умови дуже явною.&lt;br /&gt;
&lt;br /&gt;
== Case ==&lt;br /&gt;
Оператор &amp;lt;code&amp;gt;case&amp;lt;/code&amp;gt; використовується для вибору з кількох варіантів.&amp;lt;pre&amp;gt;&lt;br /&gt;
case DayNumber of&lt;br /&gt;
  1: Writeln(&amp;#039;Понеділок&amp;#039;);&lt;br /&gt;
  2: Writeln(&amp;#039;Вівторок&amp;#039;);&lt;br /&gt;
  3: Writeln(&amp;#039;Середа&amp;#039;);&lt;br /&gt;
else&lt;br /&gt;
  Writeln(&amp;#039;Невідомий день&amp;#039;);&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Цикл for ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
var&lt;br /&gt;
  I: Integer;&lt;br /&gt;
&lt;br /&gt;
begin&lt;br /&gt;
  for I := 1 to 5 do&lt;br /&gt;
    Writeln(I);&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/pre&amp;gt;Цикл у зворотному напрямку:&amp;lt;pre&amp;gt;&lt;br /&gt;
for I := 5 downto 1 do&lt;br /&gt;
  Writeln(I);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Цикл while ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
while Counter &amp;lt; 10 do&lt;br /&gt;
begin&lt;br /&gt;
  Writeln(Counter);&lt;br /&gt;
  Counter := Counter + 1;&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/pre&amp;gt;Цикл &amp;lt;code&amp;gt;while&amp;lt;/code&amp;gt; виконується, поки умова істинна.&lt;br /&gt;
&lt;br /&gt;
== Цикл repeat until ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
repeat&lt;br /&gt;
  Writeln(Counter);&lt;br /&gt;
  Counter := Counter + 1;&lt;br /&gt;
until Counter &amp;gt;= 10;&lt;br /&gt;
&amp;lt;/pre&amp;gt;На відміну від &amp;lt;code&amp;gt;while&amp;lt;/code&amp;gt;, цикл &amp;lt;code&amp;gt;repeat until&amp;lt;/code&amp;gt; виконується хоча б один раз.&lt;br /&gt;
&lt;br /&gt;
== Процедури ==&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Процедура&amp;#039;&amp;#039;&amp;#039; — це блок коду, який виконує дію.&amp;lt;pre&amp;gt;&lt;br /&gt;
procedure SayHello;&lt;br /&gt;
begin&lt;br /&gt;
  Writeln(&amp;#039;Hello!&amp;#039;);&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/pre&amp;gt;Процедура з параметром:&amp;lt;pre&amp;gt;&lt;br /&gt;
procedure SayHello(Name: string);&lt;br /&gt;
begin&lt;br /&gt;
  Writeln(&amp;#039;Привіт, &amp;#039;, Name);&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/pre&amp;gt;Виклик:&amp;lt;pre&amp;gt;&lt;br /&gt;
SayHello(&amp;#039;Anna&amp;#039;);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Функції ==&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Функція&amp;#039;&amp;#039;&amp;#039; повертає результат.&amp;lt;pre&amp;gt;&lt;br /&gt;
function Add(A, B: Integer): Integer;&lt;br /&gt;
begin&lt;br /&gt;
  Add := A + B;&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/pre&amp;gt;У сучасних діалектах часто використовується &amp;lt;code&amp;gt;Result&amp;lt;/code&amp;gt;:&amp;lt;pre&amp;gt;&lt;br /&gt;
function Add(A, B: Integer): Integer;&lt;br /&gt;
begin&lt;br /&gt;
  Result := A + B;&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/pre&amp;gt;Виклик:&amp;lt;pre&amp;gt;&lt;br /&gt;
Writeln(Add(5, 7));&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Масиви ==&lt;br /&gt;
Масив — це набір елементів одного типу.&amp;lt;pre&amp;gt;&lt;br /&gt;
var&lt;br /&gt;
  Numbers: array[1..5] of Integer;&lt;br /&gt;
&lt;br /&gt;
begin&lt;br /&gt;
  Numbers[1] := 10;&lt;br /&gt;
  Numbers[2] := 20;&lt;br /&gt;
  Numbers[3] := 30;&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/pre&amp;gt;Приклад проходу по масиву:&amp;lt;pre&amp;gt;&lt;br /&gt;
for I := 1 to 5 do&lt;br /&gt;
  Writeln(Numbers[I]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Records ==&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Record&amp;#039;&amp;#039;&amp;#039; — це структура з кількома полями.&amp;lt;pre&amp;gt;&lt;br /&gt;
type&lt;br /&gt;
  TUser = record&lt;br /&gt;
    Name: string;&lt;br /&gt;
    Age: Integer;&lt;br /&gt;
    Email: string;&lt;br /&gt;
  end;&lt;br /&gt;
&lt;br /&gt;
var&lt;br /&gt;
  User: TUser;&lt;br /&gt;
&lt;br /&gt;
begin&lt;br /&gt;
  User.Name := &amp;#039;Anna&amp;#039;;&lt;br /&gt;
  User.Age := 17;&lt;br /&gt;
  User.Email := &amp;#039;anna@example.com&amp;#039;;&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/pre&amp;gt;Records корисні для опису складніших даних.&lt;br /&gt;
&lt;br /&gt;
== Sets ==&lt;br /&gt;
Pascal має тип &amp;#039;&amp;#039;&amp;#039;set&amp;#039;&amp;#039;&amp;#039; — множину значень.&amp;lt;pre&amp;gt;&lt;br /&gt;
type&lt;br /&gt;
  TDay = (Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday);&lt;br /&gt;
  TWorkDays = set of TDay;&lt;br /&gt;
&lt;br /&gt;
var&lt;br /&gt;
  Days: TWorkDays;&lt;br /&gt;
&lt;br /&gt;
begin&lt;br /&gt;
  Days := [Monday, Tuesday, Wednesday, Thursday, Friday];&lt;br /&gt;
&lt;br /&gt;
  if Monday in Days then&lt;br /&gt;
    Writeln(&amp;#039;Понеділок є робочим днем&amp;#039;);&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Файли ==&lt;br /&gt;
Pascal історично мав зручні засоби для роботи з файлами.&lt;br /&gt;
&lt;br /&gt;
Приклад запису у файл:&amp;lt;pre&amp;gt;&lt;br /&gt;
var&lt;br /&gt;
  F: Text;&lt;br /&gt;
&lt;br /&gt;
begin&lt;br /&gt;
  Assign(F, &amp;#039;output.txt&amp;#039;);&lt;br /&gt;
  Rewrite(F);&lt;br /&gt;
  Writeln(F, &amp;#039;Hello, file!&amp;#039;);&lt;br /&gt;
  Close(F);&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/pre&amp;gt;Приклад читання:&amp;lt;pre&amp;gt;&lt;br /&gt;
var&lt;br /&gt;
  F: Text;&lt;br /&gt;
  Line: string;&lt;br /&gt;
&lt;br /&gt;
begin&lt;br /&gt;
  Assign(F, &amp;#039;input.txt&amp;#039;);&lt;br /&gt;
  Reset(F);&lt;br /&gt;
&lt;br /&gt;
  while not Eof(F) do&lt;br /&gt;
  begin&lt;br /&gt;
    Readln(F, Line);&lt;br /&gt;
    Writeln(Line);&lt;br /&gt;
  end;&lt;br /&gt;
&lt;br /&gt;
  Close(F);&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Модулі ==&lt;br /&gt;
У Pascal і його діалектах модулі дозволяють розділяти програму на частини.&lt;br /&gt;
&lt;br /&gt;
Приклад unit:&amp;lt;pre&amp;gt;&lt;br /&gt;
unit MathUtils;&lt;br /&gt;
&lt;br /&gt;
interface&lt;br /&gt;
&lt;br /&gt;
function Add(A, B: Integer): Integer;&lt;br /&gt;
&lt;br /&gt;
implementation&lt;br /&gt;
&lt;br /&gt;
function Add(A, B: Integer): Integer;&lt;br /&gt;
begin&lt;br /&gt;
  Result := A + B;&lt;br /&gt;
end;&lt;br /&gt;
&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/pre&amp;gt;Використання:&amp;lt;pre&amp;gt;&lt;br /&gt;
uses&lt;br /&gt;
  MathUtils;&lt;br /&gt;
&lt;br /&gt;
begin&lt;br /&gt;
  Writeln(Add(2, 3));&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Коментарі ==&lt;br /&gt;
У Pascal є кілька стилів коментарів.&amp;lt;pre&amp;gt;&lt;br /&gt;
{ Це коментар }&lt;br /&gt;
&lt;br /&gt;
(* Це також коментар *)&lt;br /&gt;
&lt;br /&gt;
// Це однорядковий коментар у сучасних діалектах&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Pascal і типізація ==&lt;br /&gt;
Pascal є мовою зі статичною типізацією.&lt;br /&gt;
&lt;br /&gt;
Це означає, що типи змінних відомі ще до виконання програми.&amp;lt;pre&amp;gt;&lt;br /&gt;
var&lt;br /&gt;
  Age: Integer;&lt;br /&gt;
  Name: string;&lt;br /&gt;
&amp;lt;/pre&amp;gt;Переваги статичної типізації:&lt;br /&gt;
&lt;br /&gt;
* менше випадкових помилок;&lt;br /&gt;
* краще розуміння структури даних;&lt;br /&gt;
* компілятор може знаходити помилки раніше;&lt;br /&gt;
* код легше читати й підтримувати.&lt;br /&gt;
&lt;br /&gt;
== Pascal і компіляція ==&lt;br /&gt;
Pascal зазвичай компілюється.&lt;br /&gt;
&lt;br /&gt;
Це означає:&amp;lt;pre&amp;gt;&lt;br /&gt;
код Pascal&lt;br /&gt;
→ компілятор&lt;br /&gt;
→ виконуваний файл або проміжний код&lt;br /&gt;
→ запуск програми&lt;br /&gt;
&amp;lt;/pre&amp;gt;Компілятор перевіряє синтаксис, типи й структуру програми.&lt;br /&gt;
&lt;br /&gt;
== Популярні реалізації Pascal ==&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
!Реалізація&lt;br /&gt;
!Опис&lt;br /&gt;
|-&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;Turbo Pascal&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|Дуже популярне середовище Borland для DOS, особливо в освіті й олімпіадному програмуванні&lt;br /&gt;
|-&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;Borland Pascal&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|Розвиток Turbo Pascal&lt;br /&gt;
|-&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;Delphi&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|IDE та платформа для Object Pascal&lt;br /&gt;
|-&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;Free Pascal&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|Відкритий компілятор Pascal/Object Pascal&lt;br /&gt;
|-&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;Lazarus&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|IDE для Free Pascal&lt;br /&gt;
|-&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;GNU Pascal&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|Реалізація Pascal у GNU-екосистемі&lt;br /&gt;
|-&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;UCSD Pascal&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|Історична реалізація Pascal із p-code&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Turbo Pascal ==&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Turbo Pascal&amp;#039;&amp;#039;&amp;#039; — одна з найвідоміших реалізацій Pascal.&lt;br /&gt;
&lt;br /&gt;
Він став популярним через:&lt;br /&gt;
&lt;br /&gt;
* швидку компіляцію;&lt;br /&gt;
* просте середовище;&lt;br /&gt;
* доступність;&lt;br /&gt;
* навчальні курси;&lt;br /&gt;
* використання в школах і університетах;&lt;br /&gt;
* олімпіадне програмування.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;#039;&amp;#039;&amp;#039;Для багатьох програмістів саме Turbo Pascal був першою реальною мовою програмування.&amp;#039;&amp;#039;&amp;#039;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Free Pascal ==&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Free Pascal&amp;#039;&amp;#039;&amp;#039; — це сучасний відкритий компілятор Pascal/Object Pascal.&lt;br /&gt;
&lt;br /&gt;
Він підтримує багато платформ і діалектів, зокрема режими сумісності з Turbo Pascal і Delphi.&lt;br /&gt;
&lt;br /&gt;
Free Pascal використовується для:&lt;br /&gt;
&lt;br /&gt;
* навчання;&lt;br /&gt;
* open source-проєктів;&lt;br /&gt;
* desktop-застосунків;&lt;br /&gt;
* консольних програм;&lt;br /&gt;
* cross-platform розробки;&lt;br /&gt;
* Lazarus-проєктів.&lt;br /&gt;
&lt;br /&gt;
== Lazarus ==&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Lazarus&amp;#039;&amp;#039;&amp;#039; — це open source IDE для Free Pascal.&lt;br /&gt;
&lt;br /&gt;
Він схожий за ідеєю на Delphi й дозволяє створювати desktop-застосунки з формами.&lt;br /&gt;
&lt;br /&gt;
Lazarus використовується для:&lt;br /&gt;
&lt;br /&gt;
* навчання;&lt;br /&gt;
* cross-platform desktop;&lt;br /&gt;
* open source Pascal-проєктів;&lt;br /&gt;
* міграції частини старих Delphi-проєктів;&lt;br /&gt;
* створення простих і середніх застосунків.&lt;br /&gt;
&lt;br /&gt;
== Pascal і Delphi ==&lt;br /&gt;
Delphi виріс із Pascal через Object Pascal.&lt;br /&gt;
&lt;br /&gt;
Якщо Pascal — це структурна мова, то Delphi додав:&lt;br /&gt;
&lt;br /&gt;
* класи;&lt;br /&gt;
* компоненти;&lt;br /&gt;
* форми;&lt;br /&gt;
* Object Inspector;&lt;br /&gt;
* VCL;&lt;br /&gt;
* FireMonkey;&lt;br /&gt;
* роботу з базами даних;&lt;br /&gt;
* події;&lt;br /&gt;
* візуальну розробку.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;#039;&amp;#039;&amp;#039;Delphi зробив Pascal не тільки навчальною мовою, а й практичним інструментом для бізнес-розробки.&amp;#039;&amp;#039;&amp;#039;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Pascal в освіті ==&lt;br /&gt;
Pascal довго був однією з головних мов для навчання програмуванню.&lt;br /&gt;
&lt;br /&gt;
Причини:&lt;br /&gt;
&lt;br /&gt;
* зрозумілий синтаксис;&lt;br /&gt;
* сувора структура;&lt;br /&gt;
* явне оголошення змінних;&lt;br /&gt;
* хороша підтримка процедур і функцій;&lt;br /&gt;
* просте пояснення алгоритмів;&lt;br /&gt;
* зручність для навчальних задач.&lt;br /&gt;
&lt;br /&gt;
Pascal добре підходить для тем:&lt;br /&gt;
&lt;br /&gt;
* змінні;&lt;br /&gt;
* типи;&lt;br /&gt;
* умови;&lt;br /&gt;
* цикли;&lt;br /&gt;
* масиви;&lt;br /&gt;
* процедури;&lt;br /&gt;
* функції;&lt;br /&gt;
* рекурсія;&lt;br /&gt;
* файли;&lt;br /&gt;
* записи;&lt;br /&gt;
* базові алгоритми.&lt;br /&gt;
&lt;br /&gt;
== Pascal в олімпіадному програмуванні ==&lt;br /&gt;
Pascal історично активно використовувався в олімпіадному програмуванні.&lt;br /&gt;
&lt;br /&gt;
Переваги для задач:&lt;br /&gt;
&lt;br /&gt;
* швидка компіляція;&lt;br /&gt;
* простий синтаксис;&lt;br /&gt;
* зручні масиви;&lt;br /&gt;
* добра читабельність;&lt;br /&gt;
* дисципліна типів.&lt;br /&gt;
&lt;br /&gt;
Сьогодні на олімпіадах частіше використовують C++, Python або Java, але Pascal відіграв дуже важливу роль в історії навчального програмування.&lt;br /&gt;
&lt;br /&gt;
== Pascal і алгоритми ==&lt;br /&gt;
Pascal добре підходить для демонстрації алгоритмів.&lt;br /&gt;
&lt;br /&gt;
Приклад пошуку максимуму:&amp;lt;pre&amp;gt;&lt;br /&gt;
program MaxExample;&lt;br /&gt;
&lt;br /&gt;
var&lt;br /&gt;
  A: array[1..5] of Integer;&lt;br /&gt;
  I: Integer;&lt;br /&gt;
  MaxValue: Integer;&lt;br /&gt;
&lt;br /&gt;
begin&lt;br /&gt;
  A[1] := 10;&lt;br /&gt;
  A[2] := 5;&lt;br /&gt;
  A[3] := 30;&lt;br /&gt;
  A[4] := 12;&lt;br /&gt;
  A[5] := 7;&lt;br /&gt;
&lt;br /&gt;
  MaxValue := A[1];&lt;br /&gt;
&lt;br /&gt;
  for I := 2 to 5 do&lt;br /&gt;
    if A[I] &amp;gt; MaxValue then&lt;br /&gt;
      MaxValue := A[I];&lt;br /&gt;
&lt;br /&gt;
  Writeln(&amp;#039;Max = &amp;#039;, MaxValue);&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/pre&amp;gt;Приклад факторіалу:&amp;lt;pre&amp;gt;&lt;br /&gt;
function Factorial(N: Integer): Integer;&lt;br /&gt;
begin&lt;br /&gt;
  if N &amp;lt;= 1 then&lt;br /&gt;
    Result := 1&lt;br /&gt;
  else&lt;br /&gt;
    Result := N * Factorial(N - 1);&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Pascal і рекурсія ==&lt;br /&gt;
Рекурсія — це коли функція викликає сама себе.&lt;br /&gt;
&lt;br /&gt;
Приклад:&amp;lt;pre&amp;gt;&lt;br /&gt;
function SumToN(N: Integer): Integer;&lt;br /&gt;
begin&lt;br /&gt;
  if N = 0 then&lt;br /&gt;
    Result := 0&lt;br /&gt;
  else&lt;br /&gt;
    Result := N + SumToN(N - 1);&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/pre&amp;gt;Рекурсія корисна для:&lt;br /&gt;
&lt;br /&gt;
* дерев;&lt;br /&gt;
* графів;&lt;br /&gt;
* математичних задач;&lt;br /&gt;
* перебору;&lt;br /&gt;
* алгоритмів “розділяй і володарюй”.&lt;br /&gt;
&lt;br /&gt;
== Pascal і бази даних ==&lt;br /&gt;
Класичний Pascal сам по собі не був мовою баз даних, але через Delphi, Object Pascal і Free Pascal він активно використовувався в програмах, які працюють із базами.&lt;br /&gt;
&lt;br /&gt;
Типові бази:&lt;br /&gt;
&lt;br /&gt;
* Firebird;&lt;br /&gt;
* InterBase;&lt;br /&gt;
* SQLite;&lt;br /&gt;
* PostgreSQL;&lt;br /&gt;
* MySQL;&lt;br /&gt;
* Microsoft SQL Server;&lt;br /&gt;
* Oracle Database.&lt;br /&gt;
&lt;br /&gt;
У Delphi/Object Pascal для цього використовують компоненти доступу до даних, SQL-запити, datasets і data-aware компоненти.&lt;br /&gt;
&lt;br /&gt;
== Pascal у бізнес-системах ==&lt;br /&gt;
Через Delphi і Object Pascal мова Pascal стала основою багатьох бізнес-систем.&lt;br /&gt;
&lt;br /&gt;
Типові системи:&lt;br /&gt;
&lt;br /&gt;
* складський облік;&lt;br /&gt;
* бухгалтерські програми;&lt;br /&gt;
* CRM;&lt;br /&gt;
* ERP;&lt;br /&gt;
* касові системи;&lt;br /&gt;
* документообіг;&lt;br /&gt;
* програми для виробництва;&lt;br /&gt;
* торгові системи;&lt;br /&gt;
* програми для роботи з обладнанням.&lt;br /&gt;
&lt;br /&gt;
== Pascal і legacy ==&lt;br /&gt;
Багато старих Pascal, Turbo Pascal, Borland Pascal і Delphi-систем досі можуть використовуватись або підтримуватись.&lt;br /&gt;
&lt;br /&gt;
Legacy-код може містити:&lt;br /&gt;
&lt;br /&gt;
* старі алгоритми;&lt;br /&gt;
* бізнес-правила;&lt;br /&gt;
* роботу з файлами;&lt;br /&gt;
* роботу з базами;&lt;br /&gt;
* інтеграції з обладнанням;&lt;br /&gt;
* специфічну логіку підприємства.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;#039;&amp;#039;&amp;#039;У старих Pascal-системах цінність часто не в самій технології, а в бізнес-логіці, яка роками накопичувалась у коді.&amp;#039;&amp;#039;&amp;#039;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Переваги Pascal ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Перевага&lt;br /&gt;
!Пояснення&lt;br /&gt;
|-&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;Читабельність&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|Код легко читати й пояснювати&lt;br /&gt;
|-&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;Добрий для навчання&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|Підходить для основ алгоритмів і структурного програмування&lt;br /&gt;
|-&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;Сувора структура&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|Привчає до дисципліни в коді&lt;br /&gt;
|-&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;Статична типізація&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|Компілятор допомагає знаходити помилки&lt;br /&gt;
|-&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;Процедури й функції&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|Добре пояснює поділ програми на частини&lt;br /&gt;
|-&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;Історичне значення&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|Вплинув на розвиток інших мов і середовищ&lt;br /&gt;
|-&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;Розвиток через Object Pascal&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|Ідеї Pascal живуть у Delphi, Free Pascal і Lazarus&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Недоліки Pascal ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Недолік&lt;br /&gt;
!Пояснення&lt;br /&gt;
|-&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;Менша популярність сьогодні&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|У сучасній промисловій розробці Pascal використовується рідше&lt;br /&gt;
|-&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;Менше вакансій&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|Ринок менший, ніж для JavaScript, Python, Java, C# або Go&lt;br /&gt;
|-&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;Не основний вибір для web&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|Для web частіше використовують JavaScript, TypeScript, PHP, Python, Java, C#&lt;br /&gt;
|-&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;Не основний вибір для AI&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|Для AI переважно використовують Python&lt;br /&gt;
|-&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;Стара репутація&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|Часто асоціюється зі школою, університетом або legacy&lt;br /&gt;
|-&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;Різні діалекти&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|Standard Pascal, Turbo Pascal, Free Pascal і Delphi мають відмінності&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Коли Pascal — хороший вибір ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Задача&lt;br /&gt;
!Чи підходить Pascal?&lt;br /&gt;
|-&lt;br /&gt;
|Навчання основам програмування&lt;br /&gt;
| style=&amp;quot;background:#d4edda; color:#155724; font-weight:bold;&amp;quot; |Дуже добре&lt;br /&gt;
|-&lt;br /&gt;
|Алгоритмічні задачі&lt;br /&gt;
| style=&amp;quot;background:#d4edda; color:#155724; font-weight:bold;&amp;quot; |Добре&lt;br /&gt;
|-&lt;br /&gt;
|Вивчення структурного програмування&lt;br /&gt;
| style=&amp;quot;background:#d4edda; color:#155724; font-weight:bold;&amp;quot; |Дуже добре&lt;br /&gt;
|-&lt;br /&gt;
|Підтримка старого Pascal-коду&lt;br /&gt;
| style=&amp;quot;background:#d4edda; color:#155724; font-weight:bold;&amp;quot; |Добре&lt;br /&gt;
|-&lt;br /&gt;
|Delphi/Object Pascal desktop&lt;br /&gt;
| style=&amp;quot;background:#d4edda; color:#155724; font-weight:bold;&amp;quot; |Добре через Object Pascal&lt;br /&gt;
|-&lt;br /&gt;
|Новий web frontend&lt;br /&gt;
| style=&amp;quot;background:#f8d7da; color:#721c24; font-weight:bold;&amp;quot; |Не основний вибір&lt;br /&gt;
|-&lt;br /&gt;
|AI / Data Science&lt;br /&gt;
| style=&amp;quot;background:#f8d7da; color:#721c24; font-weight:bold;&amp;quot; |Не основний вибір&lt;br /&gt;
|-&lt;br /&gt;
|High-load backend&lt;br /&gt;
| style=&amp;quot;background:#fff3cd; color:#856404; font-weight:bold;&amp;quot; |Можливо, але частіше обирають інші мови&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Pascal у порівнянні з іншими мовами ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Мова&lt;br /&gt;
!Порівняння з Pascal&lt;br /&gt;
|-&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;Object Pascal&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|Object Pascal додає класи, обʼєкти й сучасні можливості&lt;br /&gt;
|-&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;Delphi&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|Delphi — це практична платформа на основі Object Pascal&lt;br /&gt;
|-&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;C&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|C ближча до системного програмування; Pascal читабельніший для навчання&lt;br /&gt;
|-&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;C++&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|C++ значно складніша й потужніша; Pascal простіший для старту&lt;br /&gt;
|-&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;Python&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|Python популярніший сьогодні й простіший для сучасних задач; Pascal краще показує структурну дисципліну&lt;br /&gt;
|-&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;Java&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|Java сильна в enterprise; Pascal історично сильний в освіті й desktop через Delphi&lt;br /&gt;
|-&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;C#&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|C# сучасніша для .NET; Pascal має історичний і навчальний фундамент&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Типові помилки новачків ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Помилка&lt;br /&gt;
!Пояснення&lt;br /&gt;
|-&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;Плутати &amp;lt;code&amp;gt;:=&amp;lt;/code&amp;gt; і &amp;lt;code&amp;gt;=&amp;lt;/code&amp;gt;&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|&amp;lt;code&amp;gt;:=&amp;lt;/code&amp;gt; — присвоєння, &amp;lt;code&amp;gt;=&amp;lt;/code&amp;gt; — порівняння&lt;br /&gt;
|-&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;Забувати крапку в кінці програми&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|Класична Pascal-програма завершується &amp;lt;code&amp;gt;end.&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;Неправильно ставити крапку з комою&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|У Pascal крапка з комою розділяє оператори&lt;br /&gt;
|-&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;Не оголошувати змінні&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|Змінні мають бути описані перед використанням&lt;br /&gt;
|-&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;Плутати процедури й функції&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|Функція повертає значення, процедура просто виконує дію&lt;br /&gt;
|-&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;Неправильно працювати з індексами масивів&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|У Pascal індекси можуть починатися не тільки з 0, а з будь-якого заданого діапазону&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Рекомендований шлях навчання Pascal ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Етап&lt;br /&gt;
!Що вивчати&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|Структура програми: program, begin, end&lt;br /&gt;
|-&lt;br /&gt;
|2&lt;br /&gt;
|Змінні й типи даних&lt;br /&gt;
|-&lt;br /&gt;
|3&lt;br /&gt;
|Введення й виведення&lt;br /&gt;
|-&lt;br /&gt;
|4&lt;br /&gt;
|Умови if і case&lt;br /&gt;
|-&lt;br /&gt;
|5&lt;br /&gt;
|Цикли for, while, repeat&lt;br /&gt;
|-&lt;br /&gt;
|6&lt;br /&gt;
|Масиви&lt;br /&gt;
|-&lt;br /&gt;
|7&lt;br /&gt;
|Процедури&lt;br /&gt;
|-&lt;br /&gt;
|8&lt;br /&gt;
|Функції&lt;br /&gt;
|-&lt;br /&gt;
|9&lt;br /&gt;
|Records&lt;br /&gt;
|-&lt;br /&gt;
|10&lt;br /&gt;
|Файли&lt;br /&gt;
|-&lt;br /&gt;
|11&lt;br /&gt;
|Рекурсія&lt;br /&gt;
|-&lt;br /&gt;
|12&lt;br /&gt;
|Базові алгоритми сортування й пошуку&lt;br /&gt;
|-&lt;br /&gt;
|13&lt;br /&gt;
|Перехід до Object Pascal або Delphi&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Мінімальний набір для практики Pascal ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Компонент&lt;br /&gt;
!Рекомендація&lt;br /&gt;
|-&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;Компілятор&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|Free Pascal&lt;br /&gt;
|-&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;IDE&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|Lazarus або простий редактор + компілятор&lt;br /&gt;
|-&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;Перші задачі&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|Виведення тексту, сума чисел, максимум у масиві&lt;br /&gt;
|-&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;Далі&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|Процедури, функції, масиви, файли&lt;br /&gt;
|-&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;Для розвитку&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|Object Pascal, Delphi або Lazarus&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Приклад навчальної задачі ==&lt;br /&gt;
Задача: знайти суму чисел від 1 до N.&amp;lt;pre&amp;gt;&lt;br /&gt;
program SumToN;&lt;br /&gt;
&lt;br /&gt;
var&lt;br /&gt;
  N: Integer;&lt;br /&gt;
  I: Integer;&lt;br /&gt;
  Sum: Integer;&lt;br /&gt;
&lt;br /&gt;
begin&lt;br /&gt;
  Write(&amp;#039;Введіть N: &amp;#039;);&lt;br /&gt;
  Readln(N);&lt;br /&gt;
&lt;br /&gt;
  Sum := 0;&lt;br /&gt;
&lt;br /&gt;
  for I := 1 to N do&lt;br /&gt;
    Sum := Sum + I;&lt;br /&gt;
&lt;br /&gt;
  Writeln(&amp;#039;Сума = &amp;#039;, Sum);&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Приклад сортування масиву ==&lt;br /&gt;
Просте сортування методом бульбашки:&amp;lt;pre&amp;gt;&lt;br /&gt;
program BubbleSortExample;&lt;br /&gt;
&lt;br /&gt;
var&lt;br /&gt;
  A: array[1..5] of Integer;&lt;br /&gt;
  I, J, Temp: Integer;&lt;br /&gt;
&lt;br /&gt;
begin&lt;br /&gt;
  A[1] := 5;&lt;br /&gt;
  A[2] := 2;&lt;br /&gt;
  A[3] := 4;&lt;br /&gt;
  A[4] := 1;&lt;br /&gt;
  A[5] := 3;&lt;br /&gt;
&lt;br /&gt;
  for I := 1 to 4 do&lt;br /&gt;
    for J := 1 to 5 - I do&lt;br /&gt;
      if A[J] &amp;gt; A[J + 1] then&lt;br /&gt;
      begin&lt;br /&gt;
        Temp := A[J];&lt;br /&gt;
        A[J] := A[J + 1];&lt;br /&gt;
        A[J + 1] := Temp;&lt;br /&gt;
      end;&lt;br /&gt;
&lt;br /&gt;
  for I := 1 to 5 do&lt;br /&gt;
    Writeln(A[I]);&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Простими словами ==&lt;br /&gt;
Pascal — це мова, яка вчить програміста думати акуратно.&amp;lt;blockquote&amp;gt;&amp;#039;&amp;#039;&amp;#039;Pascal не намагається бути наймоднішою мовою. Його сила — у простоті, структурі й навчанні правильному мисленню.&amp;#039;&amp;#039;&amp;#039;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Висновок ==&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Pascal&amp;#039;&amp;#039;&amp;#039; — одна з найважливіших мов в історії програмування.&lt;br /&gt;
&lt;br /&gt;
Вона дала програмістам:&lt;br /&gt;
&lt;br /&gt;
* зрозумілий синтаксис;&lt;br /&gt;
* структурний підхід;&lt;br /&gt;
* дисципліну типів;&lt;br /&gt;
* хорошу основу для алгоритмів;&lt;br /&gt;
* сильний освітній фундамент;&lt;br /&gt;
* розвиток у вигляді Object Pascal і Delphi.&lt;br /&gt;
&lt;br /&gt;
Сьогодні Pascal рідше використовують для нових великих промислових систем, але він залишається важливим для освіти, історії програмування, підтримки старого коду й розуміння того, як формувалась культура якісного програмування.&amp;lt;blockquote&amp;gt;&amp;#039;&amp;#039;&amp;#039;Pascal — це мова, яка навчила програмістів писати не просто працюючий, а зрозумілий і впорядкований код.&amp;#039;&amp;#039;&amp;#039;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Джерела ==&lt;br /&gt;
&lt;br /&gt;
* Pascal — Britannica: https://www.britannica.com/technology/Pascal-computer-language&lt;br /&gt;
* Niklaus Wirth — Pascal Revised Report: https://mirrors.apple2.org.za/ftp.apple.asimov.net/documentation/programming/pascal/Pascal-Wirth-PascalRevisedReport.pdf&lt;br /&gt;
* ISO 7185:1990 — Pascal: https://www.iso.org/standard/13802.html&lt;br /&gt;
* Free Pascal: https://www.freepascal.org/&lt;br /&gt;
* Free Pascal Documentation: https://www.freepascal.org/docs.html&lt;br /&gt;
* Lazarus IDE: https://www.lazarus-ide.org/&lt;br /&gt;
* Modern Object Pascal Introduction for Programmers: https://castle-engine.io/modern_pascal&lt;/div&gt;</summary>
		<author><name>R</name></author>
	</entry>
</feed>