;
var i, min, n, m, imn: integer; a, c: mas;
procedure sort (l, r: integer);
var
i, j, x1, y1, m: integer;
begin: = l;: = r;: = round ((l + r)/2);: = a [m]; a [i] x1 do dec (j); i <= j then: = a [i]; [i]: = a [j]; [j]: = y1; (i); (j); ; i> j; l
Результат рішення задачі представлений на малюнку 12.
В
Рисунок 12 - Результат роботи програми в TurboPascal
1.12 Статичний і динамічна розподіл пам'яті
. Заповнити масив В (10) випадковими значеннями. Організувати висновок на екран. Присвоїти вказівником адресу початку розміщення масиву в пам'яті. Надрукувати значення парних значень елементів масиву. Присвоїти вказівником адресу 10-го елемента, надрукувати його значення, використовуючи поточний базовий адресу сегмента і зміщення з перетворенням в значення типу покажчик. Замінити його вміст на значення третього елемента. Надрукувати його нове значення.
Для тестування програми використовувалися дані, наведені в таблиці 12. Отримані результати наведені там же. br/>
Вхідні данниеВиходние данние5-54-68-95-4-8-6Положітельние чісла4 елемент помножений на 2548516
Лістинг - Статичний і динамічне поділ памятіyp14; {назва програми} crt; {підключення бібліотеки} {опис типів} = array [1.10] of integer; {опис масиву} {розділ опису змінних}, z: integer;: massiv;: ^ massiv; {покажчик на масив} clrscr; {очищення екрана}
writeln ('Vvedite elementy massiva:'); {виводнаекран}
for i: = 1 to 10 do {виводелементовмассіва} (a [i]);; ('Vveden massiv:'); i: = 1 to 10 do {виводелементамассіва} (a [i] : 3);;;: = @ a; {присвоєння вказівником адресу початку масиву в пам'яті}
writeln ('--------------------------------------- ---- '); (' Polozitelnie 4isla: '); i: = 1 to 10 doPtrMas ^ [i] mod 2 = 0 then (PtrMas ^ [i]);;: = Ptr (Seg (a [9] ), Ofs (a [9]) + SizeOf (integer)); {прісвоеніеадреса 4 елементи} ('--------------------------- ---------------- '); ('10 element:');
writeln (PtrMas ^ [1]); {висновок значення 4 Лемента} ('novoe zna4enie 10:'); (ptrmas ^ [1]); {висновок помноженого масиву}
ptrMas ^ [1]: = a [3]; ('novoe zna4enie 10:'); (ptrmas ^ [1]);; {задержкаекрана}. {Кінець програми}
Результат рішення задачі представлений на малюнку 13.
В
Малюнок 13 - Результат роботи програми в TurboPascal
1.13 Організація списків
Створити зв'язаний список із записів, які містять відомості про товар (код товару, найменування товару, ціна), реалізувати операції зі зв'язаним списком: запис першим в список, видалення першого об'єкта зі списку, перегляд всього списку, видалення об'єкта, наступного за вказаним.
Лістинг - Організаціяспісков
Programyp15;
UsesCrt;
Type
NameStr = String [20];
SNameStr = string [20]; = ^ Auto; = record: NameStr; {названіетовара}: integer; {кодтовара}: integer; {ценатовара}: Link; {связьсоследующімоб'ектом};, First: Link ; {указательнатекущуюзапісь}: NameStr; {поіскпоназванію}: 0.4; {меню}: boolean; {завершеніеменю} (FN: NameStr): Link; {поіскпофаміліі}: Link;: = First; {установканапервий} <> Nildo {доконцаспіска } Curr ^. Name = FN then {знайшли}: = Curr; {возвращаемуказатель}; {завершеніефункціі}: = Curr ^. Next; {наступний}: = Nil; {есліненашло}; {end FindName} AddFirst (A: Link); {додавання 1 записи} ^. Next: = First; {новийоб'ект 1}: = A; {ссилканановийоб'ект}; {КонецПроцедури} DelFirst (var A: Link); {видалення 1}: = First;: = First ^. Next;; {end DelFirst} DelAfter (Old: Link; var A: Link); {удаленіяоб'ектазастарий}: = Old ^. Next; {прісвоеніяуказателя} ^. Next: = Old ...