{Виклик процедури додавання даних в кінець масиву}
: begin; (nd, raz) ;;
{Виклик процедури запису масиву в файл}
: begin; (nd, raz) ;;
{Виклик процедури зміни полів обраного елемента}
4: begin; ( Bведіте номер: ); (n); (n, nd, raz) ;;
{Виклик процедури сортування масиву по числовому полю}
5: begin; (nd, raz) ;;
{Виклик процедури заміни всіх полів обраного користувачем елемента}
6: begin; ( Bведіте номер: ); (n); (n, nd, raz) ;;
end; ( натисніть Esc для виходу або будь-яку клавішу );:=readkey; u=# 27;.
Модуль меню MYMENU
unit mymenu;
{Перерахування використовуваних модулів} crt, types; masmenu=array [1..25] of string [50]; vertmenu (a: masmenu; n, x, y: byte; var pos: byte ); vertmenu (a: masmenu; n, x, y: byte; var pos: byte); i, j, x1, y1, p, max: byte;: char;
{Перевіряємо що-б ліва верхня точка ненаходу за межами екрану} (x lt; 0) or (x gt; 80) or (y lt; 0) or (y gt; 25) then ( верхній кут НЕ потрапляє в межі екрану ) ;;
{Визначаємо ширину меню по максимальній довжині написи,
яка буде входити в меню}:=length (a [1]); i:=2 to n domax lt; length (a [i]) then:=length (a [i]); :=0; i:=1 to n doj:=length (a [i]) to max do [i]:=a [i] + raquo ;;
{Отримуємо координати правої нижньої точки меню}:=x + max;:=y + n;
{Перевіряємо що-б ліва нижня точка ненаходу за межами екрану} (x1 lt; 0) or (x1 gt; 80) or (y1 lt; 0) or (y1 gt; 25) then ( нижній кут НЕ потрапляє в межі екрану ) ;;
{Використовуючи отримані ліву верхню і праву нижні координати
і масив строкових значень меню, відображаємо його} (x, y, x1, y1); (white); (green); ah, $ 01ch, $ 20cl, $ 00 $ 10; i:=1 to n do (1, i); (a [i]); (1,1); (red); (white); (a [1]);:=1;
{Визначення позиції курсора залежно
від натисканням функціональної клавіші}:=pos;:=readkey; key=# 0 then:=readkey; key of
# 27: begin {Esc}:=0 ;;
# 13: break; {Enter}
# 72: begin {Стрілочка вгору}:=pos - 1; pos=0 then:=n ;;
# 80: begin {Стрілочка вниз}:=pos + 1; pos=n + 1 then:=1;;;(1,p);(white);(green);(a[p]);(1,pos);(red);(white);(a[pos]);false;ah,$01ch,$06cl,$07$10;
Модуль опису основних типів даних TYPES
unit types;
{Модулі} crt;
{Покажчик на запис}=^ zap;
{Визначення типу запис}=record: integer;: string [20] ;: string [30] ;;
{Масив покажчиків на запис}=array [1..200] of uk;
{Файл для зберігання запису} nd: file of zap ;.
Модуль введення інформації з текстового файлу в масив записів OPEN
unit open;
{Перерахування використовуваних модулів} crt, types; nd: mas;, raz, nvs: integer;: zap;: file of zap; vvod (var nd: mas; var n: integer); vvod ; i: integer;: char;
{Відкриваємо файл NABOR.dat для читання} (f, NABOR.dat ); (f);:=0;
{Читаємо файл і завантажуємо знаходяться в ньому дані в динамічну пам'ять комп'ютера} not eof (f) do (n); (f, z); i:=1 to 20-length (z.shifr ) do.shifr:=z.shifr + raquo ;; i:=1 to 30-length (z.famil) do.famil:=z.famil + raquo ;; (nd [n]); [n] ^. kol:=z.kol; [n] ^. shifr:=z.shifr; [n] ^. famil:=z.famil ;;
{Закриваємо файл} (f) ;;
Модуль перегляд всіх елементів масиву SHOW
unit show; crt, types; showw (nd: mas; raz: integer); showw; i: integer;: zap;:=0; ( laquo ;? #? Шифр ??групи? Кількість дітей ? Прізвище вихователя? ); i lt; gt; (raz - 1) do(i);.shifr:=nd[i]^.shifr;.kol:=nd[i]^.kol;.famil:=nd[i]^.famil;(laquo;?raquo;,i:3,laquo;?raquo;,z.shifr,laquo;?raquo;,z.kol:20,laquo;?raquo;,z.famil:30,laquo;?raquo;);;;
Модуль додавання нових елементів в кінець масиву ADD
unit add;
{Перерахування використовуваних модулів} crt, types, show; dob (var nd: mas; var raz: integer); dob (var nd: mas; var raz: integer); key: char ;: zap;: integer;
{Отримуємо дані від користувача для нового запису} nz do; ( Введіть щіфр групи: ); (shifr);
writeln ( Введіть кількість дітей у групі: ); (kol); ( Введіть прізвище вихователя: ); (famil); i:=1 to 20-length ( shifr) do:=shifr +...