Інститут перепідготовки кадрів p>
Уральського Державного Технічного Університету p>
Кафедра мікропроцесорної техніки p>
Оцінка роботи p>
Члени комісії p> < p> Емуляція ПРОГРАМА РОЗВИТКУ p>
популяції тварин p>
Курсова робота p>
Пояснювальна записка p>
Керівник p>
Доцент С. С. Соколов p>
Слухач p>
Група СП-913 А. А. Соколов p>
ЄКАТЕРИНБУРГ p>
1997 p>
ЗМІСТ p>
ПОСТАНОВКА ЗАВДАННЯ ..............................- p>
ВСТУП. ...................................... 3 p>
1. ОСНОВНА ЧАСТИНА .............................. 4 p>
1. Методика взаємодії популяцій ......... 4 p>
2. Опис програми ........................ 5 p>
3. Опис бібліотеки Fauna1 ............... 6 p>
4. Опис бібліотеки Mycrt ................ 7 p>
5. Опис основного тіла програми ......... 8 p>
2. ВИСНОВОК .................................. 9 p>
Додаток 1. Основна програма ............... 10 p>
Додаток 2. Бібліотека Fauna1 ................ 24 p>
Додаток 3. Бібліотека Mycrt ................. 26 p>
Додаток 4. Інструкція користувача .......... 28 p>
-3 - p>
1. ВСТУП. P>
Заради цікавості було дано завдання написати програму типу
"Життя", але з деякими змінами в початкових умовах. P>
Умови були такі, що в емуляції повинні брати участьдві популяції: хижаки і травоїдні, які взаємодіялиб один з одним шляхом поїдання травоїдних хижаками. p>
У процесі розробки програми були введені додатковіпараметри: p>
- Вік тварин p>
- Мінімальний і максимальний репродуктивний вік тварин p>
- Кількість їжі потрібний тваринам для підтримки життя p>
- Кількість трави p>
- Відсоток відновлення трави p>
- Імовірність природних катаклізмів впливають на популяції тварин p>
-4 - p>
2. ОСНОВНА ЧАСТИНА. P>
2.1 Методика взаємодії популяцій. P>
Методика взаємодій хижака і травоїдного полягає в тому, що іхижаки, і травоїдні представлені у вигляді точок, які пересуваються поекрану з кроком в один піксель. При цьому задано умову, якщо в радіусіодин піксель від точки належить хижакові з'являється точка що належитьтравоїдним, то вважається, що хижак з'їв травоїдного. p>
Спосіб пересування точок на екрані був організований за алгоритмомвипадкового блукання, тобто пересування по осях Х і Y з кроком в одинпіксель вибирається випадковим чином. p>
Померли своїм життям травоїдні вважаються, як з'їли хижаками. p>
При недоїданні обома популяціями, особи помирають в процесі зменшеннявіку, тобто чим більше вік тварини, тим більша ймовірністьзагинути від голоду. Через великі проміжних розрахунків облік занедоїдання був обранийтак, що хижаки враховуються один раз на рік, а травоїдні дванадцять разів нарік. p>
-5 - p>
2.2 Опис програми. p>
Дана програма написана з використанням об'єктно-орієнтованогомови Borland Pascal 7.1 і побудована на обробці масивів типу tosobописаного в об'єктних модулі fauna1. Цей тип має такі параметри: x - розташування по координаті Х екрану y - розташування по координаті Y екрану age - вік точки col - колір виводу на екран p>
Програма забезпечує наступні операції: p>
-- Завдання параметрів популяції травоїдних p>
- Завдання параметрів популяції хижаків p>
- Завдання параметрів навколишнього середовища p>
- Перегляд взаємодії тварин у графічному режимі p>
-- Індикація результатів щодо виходу з режиму перегляду взаємодії тварин p>
- Вихід з програми p>
За допомогою зарезервованого слова "uses" до програмипідключається стандартні бібліотечні модулі TPCRT, GRAPH, DOS ібібліотечні модулі написані програмістом-розробником MYCRT і FAUNA1. p>
У розділі опису констант і змінних були оголошення наступнізмінні:
- Gd, gm типу integer для ініціалізації графіки
- Q, x, y, x1, y1, t, i, j, k, at, at1, ct1, ctp типу integer для використання їх в тілі циклів
- G, m типу integer для завдання початкового кількості тварин
- V, w типу integer для завдання максимального віку тварин
- Ct, ch типу shortint для завдання кольору відображаються точок
- Tmin, tmax, hmin, hmax, tp, hp типу integer для завдання факторів, що впливають на репродуктивність тварин
- Tt типу integer для обліку померлих і з'їдених травоїдних
- Kata типу integer для завдання ймовірності природних катаклізмів
- Ht типу integer для завдання кількості травоїдних потрібних хижакові для їжі
- Ttt типу real для завдання кількості трави потрібних травоїдним для їжі
- Tr типу real для завдання відсотка відновлення кількості трави
- Tree, tree1 типу longint для завдання і модифікації кількості трави
- Z типу longint для лічильника часу
- Key типу boolean для відстеження натиснення клавіш
- S, ss типу string розміром в сімнадцять символів для виведення на екран в графічному режимі
- Pal типу FillPatternType стандартна мінлива бібліотеки
GRAPH для зберігання типу і кольору заливки графічних фігур об'єктів
- Tg масив обсягом 4400 точок типу tosob для зберігання травоїдних
- Hr масив обсягом 1350 точок типу tosob для зберігання хижаків p>
-6 - p>
2.3 ОПИС БІБЛІОТЕКИ FAUNA1 p>
У цій бібліотеці описано два типи даних Tposition і Tosob. Тип
Tposition має два параметри: x - розташування по координаті Х екрану y - розташування по координаті Y екрану
Задіяні функції: getx - отримання координати Х gety - отримання координати Y
А також процедура ініціалізації об'єкту init
Тип Tosob має чотири параметри: x - розташування по координаті Х екрану y - розташування по координаті Y екрану age - вік точки col - колір виводу на екран
Задіяні функції: daizwet - отримання кольору точки daiage - отримання параметра age vidnoli - отримання факту відображення на екраніпроцедури: blind - гасіння точки show - відображення точки init - створення об'єкта Tosob done - знищення об'єкта Tosob p>
-7 - p>
2.4 ОПИС БІБЛІОТЕКИ MYCRT p>
В дану бібліотеку включені функції та процедури призначені дляроботи в текстовому режимі.
Процедури: fon - завдання кольору фону екрану txt - завдання кольору символів, що виводяться ramka - виведення прямокутника символами p>
186,187,188,200,201,205 colorwind - висновок вікна з рамкою
Функції: colword - перетворення чисел від одного до п'ятнадцяти до рядка з найменуванням кольору mes - перетворення чисел від нуля до триста шістдесяти п'яти до рядка з назвою місяця p>
-8 - p>
2.4 ОПИС ОСНОВНОГО ТІЛА ПРОГРАМИ p>
В основному модулі програми включені процедури: ini - виведення на екран масивів hr і tr зі стартовими параметрами tnew - рух точки належить масиву tr з перевіркою віку hnew - рух точки належить масиву hr з перевіркою віку trod -- створення нових точок масиву tr hrod - створення нових точок масиву hr dead - процес поглинання точки масиву tr точкою масиву hr havka - процес знищення точок масиву tr залежно від значення змінної tt tmor - процес знищення випадкового кількості точок масиву tr hmor - процес знищення випадкового кількості точок масиву hr zasux - підрахунок змінної tree quit - вихід з програми herb - організація введення стартових значень змінних масиву tr beast - організація введення стартових значень змінних масиву hr env - організація введення значень змінних для завдання змінних tree, tr, kata, q info - організація інформаційного вікна gmenu - промальовування основного меню omenu - промальовування меню Option start - запуск графічного режиму і запуск основного циклу komenu - організація меню Option gkmenu - організація основного меню p>
-9 - p>
3. ВИСНОВОК p>
Дана програма представляє досить грубу модельжиттєдіяльності та взаємодії живих організмів. Однак, навіть такемоделювання дозволяє простежити основні моменти циклу життя популяції.
При можливому додаванні деяких додаткових факторів, моделюванняможе більше наблизитися до реальної ситуації. Такими факторами можутьбути:
- Сезонні зміни клімату
- «Технологія» полювання
- Навколишнє флора і фауна
- Вплив життєдіяльності людини
- Взаємодія особин всередині популяції
Дана програма може служити в якості навчального посібника зпрограмування на мові Pascal. p>
-10 - p>
Додаток 1. p>
Основна програма p>
program fauna;uses mycrt, dos, graph, fauna1, tpcrt; var q, x, y, x1, y1, gd, gm, t, i, j, k, AT, at1, ct1, ctp: integer; (загальні) g, v , m, w: integer; () ct, ch: shortint; (колір) tmin, tmax, hmin, hmax, tp, hp: integer; (дітородного) tt: integer; (трупи і з'їдені травоїдні за 1 рік) kata, ht: integer; ttt, tr: real; z, tree, TREE1: longint; key: boolean; s, ss: string [17]; tg: array [1 .. 4400] of tosob; (green-травоїдних) hr: array [1 .. 1350] of tosob; (red-хижаків) pal: FillPatternType;
{************************************************* **********}procedure ini;begin for i: = 1 to g do begin at: = RANDOM (v) +1; tg [i]. init ((random (630) +5), (random (462) +18), at, ct); tg [i]. show; end; for i: = 1 to m do begin at: = random (w) +1;
HR [i]. init ((random (630) +5), (random ( 462) +18), at, ch); hr [i]. show; end;end;
{************************************************* **********}procedure tnew;begin
I: = 0;
REPEAT
I: = I +1; begin x: = tg [i]. getx; y: = tg [i]. gety;
AT: = TG [I]. DAIAGE;
CTP: = TG [I]. DAIZWET; if (z mod 365) = 0 then
BEGIN at: = at +1; (Happy New Year!) p>
TG [I]. INIT (X, Y, AT, CTP);
END; if at> v then (Old?) begin tg [i]. done; p>
-11 - p>
tg [i]. init (0,0,0,0); tt: = tt +1; (померле тварина) for j: = i +1 to g do begin x1: = tg [j]. getx; y1: = tg [j]. gety; at1: = tg [j]. daiage; ct1: = tg [j]. daizwet; tg [j]. done; tg [j-1]. init (x1, y1, at1, ct1); tg [j-1]. show; end; p>
TG [G]. INIT (0,0,0,0); p> < p> G: = G-1; p>
I: = I-1; p>
CONTINUE; end; x: = tg [i]. getx; y: = tg [i ]. gety; x: = x + (random (3) -1); y: = y + (random (3) -1); if x635 then x: = 634; if y480 then y: = 479;
AT : = TG [I]. DAIAGE;
CTP: = TG [I]. DAIZWET; tg [i]. done;
IF CT0 THEN
BEGIN tg [i]. init (x, y, at, CTP); tg [i]. show;
END;
END;
UNTIL I> = G;end;
{************************************************* **********}procedure trod;begin if (z mod 365) = 0 then (Happy New Year!) begin t: = 0; for i: = 1 to g do begin at: = tg [i]. daiage; if (tmin4100 then break; end; g : = g +1 + x; if g> 4000 then begin key: = true; end; end else begin end; end;end;
{************************************************* **********}procedure hnew;begin
I: = 0;
REPEAT
I: = I +1; begin x: = hr [i]. getx; y: = hr [i]. gety;
At: = hr [I]. DAIAGE;
CTp: = hr [I]. DAIZWET; if (z mod 365) = 0 then
BEGIN at: = at +1; (Happy New Year!) hr [I] . INIT (X, Y, At, CTp);
END; if at> w then (Old?) begin hr [i]. done; hr [i]. init (0,0,0,0); for j: = i +1 to m do begin x1: = hr [j]. getx; y1: = hr [j]. gety; at1: = hr [j]. daiage; ct1: = hr [j]. daizwet ; hr [j]. done; hr [j-1]. init (x1, y1, at1, ct1); hr [j-1]. show; end; hr [m]. INIT (0,0,0, 0); m: = m-1; p>
I: = I-1; p>
CONTINUE; end; x: = hr [i]. getx; y: = hr [ i]. gety; x: = x + (random (3) -1); y: = y + (random (3) -1); if x635 then x: = 634; if y480 then y: = 479;
AT: = hr [I]. DAIAGE;
CTp: = hr [I]. DAIZWET; hr [i]. done;
IF CTp0 THEN
BEGIN hr [i]. init (x, y , at, CTp); hr [i]. show;
END;
END;
UNTIL I> = m;end;
{************************************************* *********}procedure hrod;begin if (z mod 365) = 0 then (Happy New Year!) begin t: = 0; for i: = 1 to m do begin at: = hr [i]. daiage; if (hmin1000) or (m = g ; p>
TG [G]. INIT (0,0,0,0); p>
G: = G-1; j: = j-1; end else begin end; until j> = g; end;end;
{************************************************* *********}procedure havka;begin if ((z mod 365) = 0) and (tt> 0) then begin x1: = (tt div ht); (скільки прогодувати цього року) j: = 0; y1: = w; (max vozrast) if x1 = 0 then begin for i: = 1 to m do begin hr [i]. init (0,0,0,0); hr [i]. done; end; end; if (x10 then begin repeat j: = random (m) +1; hr [j]. done; hr [j]. init (0,0,0,0); for i: = j +1 to m do begin x1: = hr [i]. getx ; y1: = hr [i]. gety; at1: = hr [i]. daiage; ct1: = hr [i]. daizwet; hr [i]. done; hr [i-1]. init (x1, y1 , at1, ct1); hr [i-1]. show; end; hr [m]. done; hr [m]. init (0,0,0,0); m: = m-1; until m = y; end;end;
{************************************************* **********}procedure zasux; (посуха)begin tree: = tree - random (round (tree/10));end;
{************************************************* **********}procedure quit;begin window (1,1,80,25); fon (black); clrscr;
GOTOXY (1,24); txt (White);
WRITELN ( '---------- ---------------------------------------- p>
--- -------------------------'); txt (yellow);
WRITELN ( 'Antony Sokolov | FidoNet 2:5078/20.4 AKA
2:5078/20.666 AKA 2:5078/22.666 '); txt (White);
WRITELN (' ------------------- ------------------------------- p>
------------ ----------------');end;
{************************************************* **********}procedure herb; (травоїдні)begin colorwind (3,20,77,25, black, yellow); gotoxy (32,1); writeln ( 'Правила введення для травоїдних'); gotoxy (2,2); write ( 'Кількість травоїдних не більше 3000 . '); write (' Корм на місяць в кілограмах. '); gotoxy (2,3); p>
-17 - p>
write (' Кал - кількість дитинчат. '); write (' Колір висновку від 1 до 15 '); colorwind (40,10,65,19, black, green); gotoxy (6,1); txt (Yellow); write (' Травоїдні '); gotoxy (2,2); write ( 'Кількість:'); (початкову кількість травоїдних) readln (g); txt (yellow); gotoxy (2,3); write ( 'Корм:'); (кол -під корму в рік на одного травоїдного) readln (ttt); ttt: = ttt/1000; gotoxy (2,4); write ( 'Кал:'); (народжуваність) readln (tp); gotoxy (2,5) ; write ( 'Min дітородний:'); read (tmin); gotoxy (2,6); write ( 'Max дітородний:'); read (tmax); gotoxy (2,7); write ( 'Max возрaст:' ); read (v); gotoxy (2,8); write ( 'Колір виводу:'); read (ct); colorwind (3,20,77,25, black, black);end;
{************************************************* **********}procedure beast; (хижаки)begin colorwind (3,20,77,25, black, yellow); gotoxy (32,1); writeln ( 'Правила введення для хижаків'); gotoxy (2,2); write ( 'Кількість хижаків не більше 1000 . '); write (' Корм - кількість травоїдних на рік. '); gotoxy (2,3); write (' Кал - кількість дитинчат. '); write (' Колір висновку від 1 до 15 ') ; colorwind (40,10,65,19, black, red); gotoxy (8,1); txt (Yellow); write ( 'Хижаки'); gotoxy (2,2); txt (yellow); write ( ' Кількість: '); readln (m); gotoxy (2,3); write (' Корм: '); (початкову кількість хижаків) readln (ht); gotoxy (2,4); write (' Кал : '); (народжуваність) p>
-18 - p>
readln (hp); gotoxy (2,5); write (' Min дітородний: '); (природна смертність) read (hmin); gotoxy (2,6); write ( 'Max дітородний:'); (природна смертність) read (hmax); gotoxy (2,7); write ( 'Max вік:'); (природна смертність) read (w); gotoxy (2,8); write ( 'Колір виводу:'); read (ch); colorwind (3,20,77,25, black, black);end;
{************************************************* **********}procedure env; (місце існування)begin colorwind (3,20,77,25, black, yellow); gotoxy (32,1); writeln ( 'Правила введення для середовища'); gotoxy (2,2); write ( 'Кількість трави не менше 1000 . '); write (' Відсоток відновлення будь-хто. '); gotoxy (2,3); write (' Катастрофи: 0 або 1 - ні, 2 і більш-є. '); gotoxy (2,4); write ( 'Затримка повідомлень у мс. Рекомендується не менше p>
1000'); colorwind (40,10,75,17, black, Magenta); gotoxy (13,1); txt (Yellow); write ( ' Навколишнє середовище '); gotoxy (2,2); txt (yellow); write (' Кількість трави: '); (Кількість встановлювати їжі для травоїдних на рік) readln (tree); gotoxy (2,3) ; write ( 'Відсоток відновлення:'); readln (tr); gotoxy (2,4); write ( 'Наявність катастроф:'); readln (kata); gotoxy (2,5); write ( 'Затримка повідомлень:' ); readln (q); colorwind (3,20,77,25, black, black);end;
{************************************************* **********}procedure info;begin fon (15); colorwind (1,4,70,16, black, Lightblue); txt (Green); gotoxy (2,2); write ( 'травоїдних-', g, 'Хижаків-', m); str (ttt: 1:2, s); p>
-19 - p>
gotoxy (2,3); write (s, 'т. трави і', ht, 'туш потрібно на прокорм тварин '); gotoxy (2,4); write (' Max вік травоїдних ', v,', хижаків ', w); gotoxy (2,5); write (' Дітородний вік травоїдних від ', tmin, 'до', tmax); gotoxy (2,6); write ( 'Дітородний вік хижаків від', hmin, 'до', hmax); gotoxy (2,7); write ( 'Кал травоїдних до', tp, ' , хижаків до ', hp); gotoxy (2,8); write (' Трави ', tree,' тонн '); str (tr: 1:2, s); gotoxy (2,9); write (' Приріст трави на кожен місяць ', s ,'%'); if (kata = 0) or (kata = 1) then s: =' відсутній 'else s: =' є '; gotoxy (2,10); write (' Імовірність катаклізмів ', s); s: = colword (ct); gotoxy (2,11); write (' Колір травоїдних ', s); s: = colword (ch); write (' Колір хижаків ', s);end;
{************************************************* **********}procedure Gmenu;begin fon (black); clrscr; colorwind (1,1,80,4, black, darkgray); txt (14); gotoxy (5,2); write ( 'S'); txt (white); write ( ' tart '); txt (yellow); write (' O '); txt (white); write (' ption '); txt (yellow); write (' Q '); txt (white); write (' uit ' );
END;
{************************************************* **********}< br>PROCEDURE Omenu;begin colorwind (45,3,62,8, black, darkgray); hiddencursor; txt (14); gotoxy (2,2); write ( 'H'); txt (white); writeln ( 'erbivorous'); txt (yellow); gotoxy (2,3); write ( 'B'); txt (white); p>
-20 - p>
writeln ( 'east of prey'); txt (yellow); gotoxy (2,4); write ( 'E'); txt (white); write ( 'nvironment');end;
{************************************************* **********}procedure start;begin randomize; gD: = Detect;
InitGraph (gD, gM ,''); setfillpattern (pal, black); z: = 0; (початок ери) tt: = 0; (трупи і з'їдені) ini; repeat key: = false; z: = z 1; if ((z mod 365) = 0) or ((z mod 365) = 31) or ((z mod 365) = 59) or ((z mod 365) = 90) or ((z mod 365) = 120) or ((z mod
365) = 151) or ((z mod 365) = 181) or ((z mod 365) = 212) or
( (z mod 365) = 242) or ((z mod 365) = 273) or ((z mod
365) = 303) or ((z mod 365) = 334) then begin tree: = round (tree - g * ttt); (з'їли за місяць) tree: = tree + round (tree * (tr/100)); (приріст трави на місяць) x: = round (tree * ttt); (травоїдні вмирають від недоїдання) if tree0 then begin dead; (хижаки їдять травоїдних) hnew; (природна смертність хижаків) havka; (хижаки вмирають від недоїдання) hrod; (народження хижаків) end; if ((z mod 365) = 180) and (g> 0) and ( m> 0) then begin if random (kata) 0 then begin x: = random (4); if x = 0 then begin x: = random (round (g/50)) +5; moveto (320,240); setcolor ( Lightred); str (x, s); p>
Outtext ( 'Хвороба травоїдних забрала'); p>
Outtext (s); Outtext (' життів '); tmor; end; if x = 1 then begin x: = random (round (m/40)) +1; moveto (320,240); setcolor (Lightred); str (x, s); p>
Outtext ( 'Хвороба хижаків забрала '); p>
Outtext (s); Outtext ( 'життів'); hmor; end; if x = 2 then begin zasux; moveto (320,240); setcolor (Lightred); str (tree1, s) ; Outtext ( 'Засуха! Втрачено'); p>
Outtext (s); Outtext (' тонн трави '); delay (q); end; if x = 3 then begin x: = random (round ( g/50)) +5; moveto (0,240); setcolor (Lightred); str (x, s); p>
Outtext ( 'Повінь згубило'); Outtext (s); Outtext ( 'травоїдних, '); tmor; x: = random (round (m/40)) +1; str (x, s); Outtext (s); Outtext (' хижаків, '); hmor; zasux; str (tree1, s) ; Outtext (s); Outtext ( 'тонн трави'); p>
-22 - p>
delay (q); end; delay (q); bar (0,240,640,260); end; end; if g> 0 then trod; (народження травоїдних) if g> 4000 then break; if keypressed then key: = true; if (g> 4000) or (g0) and (m> 0) and (ttt> 0) and (tp> 0) and (tmin> 0) and (tmax> 0) and (ct> 0) and (ht> 0) and (hp> 0) and (hmin> 0) and (hmax> 0) and
(Ch> 0) and (tree> 0) and (tr> 0) and (kata> 0) then begin start; gmenu; info; key1: = false; end; end; if (key2 = 'o') or (key2 = 'O') then begin p>
Omenu; komenu; p>
GMENU; info; key1: = false; end; if (key2 = 'q' ) or (key2 = 'Q') or (key2 = # 27) then begin key1: = true; quit; end; until key1 = true;end;
{************************************************* **********}< br>(Body program)begin g: = 1200; (травоїдні кол-во) v: = 30; (вік травоїдного) m: = 200; (хижаки кол-во) w: = 25; (вік хижака) ct: = yellow; ch: = red ; tmin: = 2; tmax: = 28; hmin: = 3; hmax: = 24; tp: = 3; hp: = 7; (дітородного) kata: = 9; ht: = 3; ttt: = 1; tree : = 1300; tr: = 15.1; hiddencursor;
GKMENU;end. p>
-24 - p>
Додаток 2. p>
Бібліотека Fauna1 p>
(Init object)unit fauna1; interface uses graph;
Type TPosition = object x, y: integer; procedure Init (x0, y0: integer); function getx: integer; function gety: integer; end; type Tosob = object (TPosition) color : word; vidno: boolean; p>
AGE: INTEGER; constructor Init (x0, y0, age0: integer; col: word); destructor Done; virtual; procedure Show; virtual; procedure Blind; virtual; function Daizwet: word; function VidnoLi: boolean; p>
FUNCTION DAIAGE: INTEGER; end;
Posob = ^ Tosob;
(metod Tposition)
Implementation
Procedure Tposition.Init (x0, y0: integer);
Begin x: = x0; y: = y0;
End;
Function Tposition.Getx: integer;
Begin GetX : = x End;
Function Tposition.Gety: integer;
Begin Gety: = y End;
Constructor Tosob.Init (x0, y0, age0: integer; col: word);
Begin p>
Tposition.Init (x0, y0); p>
AGE: = AGE0; color: = col; vidno: = false;
End;
Destructor Tosob.Done ;
Begin p>
Tosob.blind;
End; procedure Tosob.Show;
Begin putpixel (TPosition.GetX, TPosition.GetY, color); vidno: = True;
End; procedure Tosob.Blind; p>
-25 - p>
Begin putpixel (TPosition.GetX, TPosition.GetY, GetBKColor); vidno: = False;
End; < br> Function Tosob.Daizwet: word;
Begin Daizwet: = color End;
Function Tosob.VidnoLi: Boolean;
Begin VidnoLi: = Vidno End;
FUNCTION TOSOB.DAIAGE: INTEGER; < br> BEGIN DAIAGE: = AGE END;
End. P>
-26 - p>
Додаток 3. P>
Бібліотека Mycrt p>
unit Mycrt; p>
interfaceuses tpcrt, dos;procedure fon (x: byte);procedure txt (col: byte);procedure ramka (x1, y1, x2, y2: integer);procedure colorwind (v1, v2, v3, v4, fon, text: byte);
FUNCTION COLWORD (COL: BYTE): STRING;function mes (z: longint): string;implementation
{************************************************* **********}function mes;var col: string;x: integer;begin x: = z mod 365; if (x> = 0) and (x = 31) and (x = 59) and (x = 90) and (x = 120) and (x = 151) and (x = 181 ) and (x = 212) and (x = 242) and (x = 273) and (x = 304) and (x = 336) and (x p>