align="center">
1.4 Структура даних: записи Запис містить дані про продовольчих і промислових товарах з наступними реквізитами: найменування товару (тип string), тип товару (тип string), кількість (тип integer), ціна за одиницю (тип integer). Скласти програму, що виконує пошук по типу товару і кількості товару. br/>
Лістинг - Структури даних: записи
uses crt;
type tov = record: string;: integer;: string;: char;; = 10;: integer;: char;: array [1. Nmax] of tov;: integer;: boolean; enter;: string;;: = 1; c <> 'Г' do begin ;: = i +1; (); (m [i]. n); () '); (m [i]. t); (); (m [i]. k); (); (m [i]. c); ('); (c);;; find;: string;, k: integer;: = 2; c <>' Г ' do begin: = i +1; (? '); (tip); (:'); (kol); i: = 2 to Nmax do begin (m [i ]. t = tip) and (m [i]. k = kol) then begin (c);: = true;;; o = false then writeln (); (? '); (c);;; c <> '3 'do begin (:'); ('1.); ('2.); ('3. '); (c); c of
'1 ': enter;
'2 ': find;;;.
Результат рішення задачі представлений на малюнку 5.
В
Рисунок 5 - Результат роботи програми в TurboPascal
1.5 Модульне програмування
У заданому масиві К (N) знайти індекси елементів, які кратні мінімальному значенню елемента масиву.
Лістинг - Модульне програмування
programpract6;
usescrt; {подключеніебібліотекі}
functionRec (k: integer): longint; {опісаніефункціі}
begin <4 then Rec: = 1 {началоцікла} Rec: = Rec (k-3) + Rec (k-2) + Rec (k-1);; {конеццікла}: integer; {опісаніепеременних}; {очісткаекрана} {цикл} ('vvedite nomer chlena posledovatelnosti, nat chislo n ='); (n); n> 0; ('znachenie =', Rec (n));;
readkey; {затримка екрана}
end.
Результат рішення задачі представлений на малюнку 6.
В
Рисунок 6 - Результат роботи модульне програмування
1.6 Пряма і непряма рекурсія
Написати програму з рекурсивної функцією, що обчислює:
.
Лістинг - Пряма і непряма рекурсія
Programpr7;
uses crt; n: integer; Koren (n: integer): real; n = 1 then Koren: = sqrt (3) Koren: = sqrt (3 + Koren (n-1)); ;; ('n ='); (n); (Koren (n): 0: 5);
end.
Таблиця 6 - Результати виконання прямої і непрямої рекурсії
Вхідні данниеВиходние данние32.27493
Результат рішення задачі представлений на малюнку 7.
В
Малюнок 7 - Результат роботи програми в TurboPascal
1.7 Рекурсивні алгоритми
Написати рекурсивну процедуру, що переводить ціле число з вісімковій системи числення в десяткову.
Для тестування програми використовувалися дані, наведені в таблиці 7. Отримані результати наведені там же. p align="justify"> Таблиця 7 - Результати виконання лінійного алгоритму
Вхідні данниеВиходние данние2420
Лістинг - Рекурсивні алгоритми; Oct2Num (const aSOct: String; const aWeight, aI: Integer): Integer;: Integer;: = 0; aSOct [aI] of
'0 ': Num: = 0 * aWeight;
'1 ': Num: = 1 * aWeight;
'2 ': Num: = 2 * aWeight;
'3 ': Num: = 3 * aWeight;
'4 ': Num: = 4 * aWeight;
'5 ': Num: = 5 * aWeight;
'6 ': Num: = 6 * aWeight;
'7 ': Num: = 7 * aWeight;; aI> 1 then begin: = Num + Oct2Num (aSOct, aWeight * 8, aI - 1);; Num: = Num;; , S: String;: Integer; ('zadaite celoe neotricatelnoe chislo:'); (SOct);: = Oct2Num (SOct, 1, Length (SOct));
Writeln ('Chislo v 10oi sisteme:');
Writeln (Num); (S); S <>'';.
Результат рішення задачі представлений на рисунку 8.
В
Рисунок 8 - Результат роботи програми в TurboPascal
1.8 Бінарний пошук