Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Функції




Concat(s1,s2) – конкатенація рядків s1 s2 у вказаному порядку.

Вираз Результат

Concat(‘Tur’,’bo’); Turbo

Copy(s,n,m) – результатом є m символів з рядка s, починаючи з символу з номером n.

Вираз Результат

Copy(‘Turbo Pascal’,7,6); Pascal

Length(s) – результатом є поточна довжина рядка s, тобто кількість символів в ньому.

Pos(s,t) – результатом є номер символу, починаючи з якого рядок s входить в рядок t.

 

 

29. Підпрограми. (Turbo Pascal)

Підпрограми призначені для реалізації алгоритмів опрацювання окремих частин деякої складної задачі. Вони дають змогу реалі­зовувати концепцію структурного програму­вання, суть якого поля­гає в розкладанні складної задачі на послідовність простих підзадач і в складан­ні для алгоритмів розв’язування кожної підзадачі від­повідних підпрограм.

Розріз­няють два види під­про­грам — під­про­грами-процедури та підпро­грами-функ­ції.

Підпрограми поді­ля­ються на стандартні та підпрограми користу­вача. Стандартні підпрограми створювати не потрібно — вони містяться у стандартних модулях System, Crt, Dos, Graph тощо. Під­програма користувача — це по­йме­нована група команд, яку створюють і опису­ють в основній програмі в розділах procedure або function і до якої звертаються з будь-якого місця програми потрібну кількість разів.

Процедури (procedure). Загальний опис процедури:

procedure <назва> (<список формальних параметрів>);
<розділи описів і оголошень процедури>;
begin
<розділ команд процедури>
end;

У списку формальних параметрів перераховують змінні разом із зазначенням їхніх типів. Розрізняють параметри-аргументи (ін­ший термін: параметри-значення) — вхідні дані для процедури, і параметри-результати (інший термін: параметри-змінні), через які можна по­вер­тати результати роботи процедури в основну про­граму. Перед списками параметрів-результатів кожного типу за­пи­сують слово var.

Розділи описів і оголошень у підпрограмах мають таку саму структуру як і в основній програмі.

До процедури звертаються з розділу команд основної програми або іншої підпрограми. Процедуру викликають за допомогою ко­манди виклику

<назва процедури> (<список фактичних параметрів>);

Параметри, які записують у команді виклику процедури, нази­ва­ються фактичними. Фактичними параметрами-аргументами мо­жуть бути сталі, змінні, вирази, а параметрами-результатами — лише змін­ні. Типи даних тут не зазначають.

Між фактичними і формальними параметрами має бути відповід­ність за кількістю й типами. Зверніть увагу, відповідні фак­тичні та формаль­ні параметри можуть мати різні імена.
Команда виклику функціонує так: значення фактичних пара­метрів присвоюються відповідним формальним параметрам процеду­ри, виконується процедура, визначаються параметри-результати, зна­­чення яких надаються (повертаються) відповідним фактич­ним па­ра­метрам у команді виклику.

Змінні, описані в розділі описів основної програми, називаються глобальними. Вони діють у всіх підпрограмах, з яких складається про­грама. Змінні, описані в розділі описів конкретної процедури, називаються локальними. Вони діють тільки в межах даної про­це­дури.

Процедури можуть отримувати і повертати значення не тільки через параметри-результати, але й через глобальні змінні. Тому списків параметрів у процедурі може і не бути.

Функції (function). Функція, на відміну від процедури, може повертати в місце виклику лише один результат простого стандарт­ного типу.

Загальний опис функції:

function <назва>(<список формальних параметрів>): <тип функції>;
<розділи описів і оголошень функції>;
begin
<розділ команд функції, де має бути така команда: назва:=вираз>
end;

У розділі команд функції має бути команда присвоєння значення деякого виразу назві функції. Результат функції поверта­ється в основну програму через її назву (як і випадку вико­ристан­ня станда­рт­них функцій, таких як sin, cos). Виклик функ­ції здійс­ню­ється лише з виразів

<назва> (<список фактичних параметрів>).

Рекурсивні функції. Рекурсією називається алго­ритміч­на кон­ст­рукція, де підпрограма викликає сама себе. Рекурсія дає змо­гу записувати циклічний алгоритм, не використовуючи команду цик­­лу.

 

 


30. Структуровані типи даних (записи, множини). (Turbo Pascal)

Запис - це складений або структурний тип даних, що містить фіксовану кількість компонент, кожна з яких може мати свій тип. Тип компонент запису може бути довільним: простим, складеним або вказівним.

Опис записного типу складається з ключового слова RECORD, за яким іде список компонент із зазначенням їхніх типів. Завершує опис ключове слово END. Компонента запису називається полем.

Загальний вигляд опису записного типу:

TYPE <Ім'я типу>= RECORD

<1м'я поля>: <тип поля>;

<1м'я поля>: <тип поля>

END;

Поле може бути й записного типу, тобто допускається вкладеність записів. У межах одного запису імена полів повинні бути різними, у вкладених записах вони можуть повторюватися.

Над даними записного типу, як над одним цілим, визначені дві операції: виділення компоненти та оператор присвоєння. Для виділення компоненти деякого запису після імені змінної записного типу ставиться знак '.' (крапка ), за яким вказується ім’яполя. В операторі присвоєння можна вживати лише записи, ідентичні за структурою.

Доступ до конкретного поля запису дає складене ім'я вигляду

<назва запису>.<назва поля>

Оператор приєднання WITH.

Використання полів є громіздким через те, що постійно зазначається ім'я змінної-запису. Для скорочення подібних записів використовують оператор приєднання WITH. Цей оператор задає область дії, в якій для запису, вказаному після WITH, ідентифікація поля відбувається за допомогою простого імені поля.

Загальний вигляд оператора приєднання:

WITH <ім'я змінної-запису> DO <оператор>;

Множина - складений або структурний тип даних, який є невпорядкованим набором об'єктів спільної природи. Цей набір розглядається як одне ціле. Кожний об'єкт називається елементом множиниа тип елементів називається базовим. Усі елементи повинні мати один і той самий тип. Кількість елементів множини не повинна перевищувати 256, причому номер кожного елемента повинен бути меншим 256. Величина множинного типу може бути набором усіх можливих підмножин, що складаються з елементів базового типу.

Опис множинного типу складається з ключового слова SET, за яким йдуть ключове слово OF та опис базового типу.

<ім’я типу> = SET OF <базовий тип>

Тут <ім’я типу> - правильний ідентифікатор;

SET, OF - зарезервовані слова (множина, з);

<базовий тип> - базовий тип елементів множини.

Наприклад, VAR m: SET OF 1..12;

Порядок розташування елементів у множині значення не має: [1, 2, 3, 4] і [2, 4, 1, 3] – це одна й та ж множина. Множина без елементів називається порожньою: [ ].

Операції над множинами.

Над даними множинного типу визначені операції відношень (=,<>, <=, >=), перевірки входження IN, об'єднання (+), перерізу (*), різниці (-) множин.

Результат операцій відношення має логічний тип і визначається таким чином.

а=b - результатом буде True (істина), якщо множини а і b складаються з одних і тих самих елементів. При цьому порядок елементів ролі не відіграє.

a<>b - результатом буде True, якщо множини а і b відрізняються хоча б одним елементом або мають різну кількість елементів.

a<=b - результатом буде True, якщо кожен елемент множини a міститься у множині b або якщо множина а - порожня.

Операція >= визначається аналогічно.

Операція перевірки входження IN має вигляд: e IN а, де e - величина базового типу для множини а. Результатом операції IN є Тrue якщо елемент e міститься у множині а і False у противному разі.

Використання операції IN дає змогу ефективно записувати складні умови.

Об'єднанням двох множин а i b є множина с, яка містить елементи множин а і b.

Перерізом двох множин а i b є множина с, яка містить лише ті елементи, що входять і в а, і в b.

Різницею двох множин а i b є множина с, яка містить ті елементи множини а, що не входять у множину b.

Оператор присвоєння множин вимагає, щоб в лівій і правій частинах його стояли множини однакового базового типу.

Наприклад,

VAR t,p: SET OF 'A'..'z';

…..................

t:=['T','u',,'r','b'];

p:=t+['o']; {допустиме присвоєння, p=['T','u','r','b','o']}

p:=p+['v','6']; {недопустимо - елемент '6' не базового типу}

Оскільки у множинах порядок елементів не визначений, то не існує й доступу до окремих елементів. У зв'язку з цим програміст повинен передбачити власними засобами введення і виведення елементів множини.




Поделиться с друзьями:


Дата добавления: 2015-05-07; Просмотров: 494; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.028 сек.