на тему рефераты Информационно-образоательный портал
Рефераты, курсовые, дипломы, научные работы,
на тему рефераты
на тему рефераты
МЕНЮ|
на тему рефераты
поиск
Структуровані типи даних записи та множини. Використання процедур та функції мови Turbo Pascal. Поняття про записи. Прості записи
p align="left">

Для ZRK:

Дальність дії

Висота дії

D

H

Для RLS:

Потужність передавача

Довжина хвилі

Спосіб обзору

P

L

SZ

Опис запису:

Type SS = (neprer, impuls);

TW = (ZRK, RLS);

Var WW : TW;

W : RECORD

I : integer;

M : real;

CASE WW of

ZRK : (D, H : real);

RLS : (P, L: real; SZ : SS);

End;

Якщо тепер в програмі виконати оператор :

WW :=ZRK;

то далі можна використовувати оператори:

W.I :=124;with w do

W.M :=15;I := 124;

W.D :=40;M := 15;

W.H :=24;D := 40;

H := 24;

Якщо виконано оператор

WW := RLS;

with w do

I := 203;

M := 18;

P := 10;

L := 0.3;

SZ := impuls;

Особливості:

для розміщення змінної комбінованого типу завжди відводиться фіксований об'єм пам'яті, який визначається найбільшим варіантом. Таким чином, різні варіанти одного запису якби “накладаються” один на одного у пам'яті, тобто займають одну і ту ж область.

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

Синтаксичні діаграми:

комбінований тип:

record -> <список полів> -> end;

список полів:

<фіксована частина> -> ;-> <варіантна частина> ->;

фіксована частина:

<індентифікатор> -> : -> <тип> -> ;

варіантна частина:

case -> <ідентифікатор> -> of -> <альтернатива> -> ;

дискриминант:

<ідентифікатор> -> : -> <ідентифік. типа>

альтернатива:

<константа> -> : -> <список полів> ->

4. Множини

Цей тип даних використовують не так часто (одна з причин - низька швидкість виконання операції з множинами). Однак у ряді випадків його використання надає компактність і наочність програм.

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

Наприклад, цифри та символи латинського алфавіту:

[1, 3, 5, 7, 9,] - множина непарних чисел;

[`A', 'X'] - множина елементів типу char;

[ ] - порожня множина.

Опис множини:

Type

в 2-х розділах;

var

var - в 1-му розділі.

Для опису використовують таку форму:

<ім'я змінної множини> : SET OF <тип елементів> ;

Приклад 1:

Var

M1 : SET OF `A' .. 'Z';

M2 : SET OF 1 .. 2;

В опису можна вказувати не тільки границі значень, а також їх перелік:

Приклад2:

M3 : SET OF `A' , 'R' , 'C';

Для присвоювання імені множини змінних значень використовують конструкцію вида:

<ім'я змінної множини> := <список>;

Приклад3:

M1 := [`A' , `B' , `K'] ;

M2 := [2 , 3] ;

тобто змінна М1 приймає значення множини із елементів `A','B','K', змінна M2 - із елементів 2 і 3.

По суті конструктор є перетворювач змінних простого типу у тип множини.

Над множинами виконують теоретико-множинні операції та операції відношень.

Теоретико-множинні операції:

1) поєднання “+”;

2) перетин “*”;

3) різниця “-”.

Операції відношень:

належність елемента множині;

рівність, нерівність;

належність множини множині.

Приклади:

поєднання “+”;

А+В А?В

A := [`A' , `B'];

B := [`A' , `K'];

A := A+B

{A = [`A' , `B' , `K']}

перетин: “*”

A*B ??B?

A := [`A' , `B'];

B := [`A' , `K'];

S := A*B {S=[`A']}

різниця - формується множина з елементів першої множини, які не входять в другу множину

R := A-B {R=[`B']}

A-B (A/B)

Пріоритет виконання операцій:

( ) * +

належність елемента множині - призначається службовим словом IN:

<значення> in <множина>

результат: TRUE - значення входить до множини;

FALSE - не входить.

Приклад:

2 in [1 … 10, 12] {TRUE}

5 in [1, 2 ,7, 10] {FALSE}

Цю операцію використовують для спрощення перевірок.ї

Наприклад:

if (ch = `a') or (ch = `b') or (ch = `k') or (ch = `y') then S , або інакше

if ch in [`a','b','x','y'] then S

перевірка на рівність, нерівність:

“=” - рівність 2-х множин;

“<>” - нерівність 2-х множин;

належність множин:

“<=” - перевірка належності множини лівого операнда правому;

“=>” - перевірка належності множини правого операнда лівому;

результат операції є :

TRUE або FALSE.

Приклади:

Нехай задані множини

M : set of 1 .. 10;

L : set of `A' .. `D';

і виконані оператори присвоювання

M := [2, 3, 4, 6];

L := [`A', `B'];

тоді

3 in M {true}

[2, 4] <= M{true}

[ ] = L{false}

[`A'] <> L{true}

`E' in L{false}

([4] <= M) and (L =B) {false}

B in (M + [7, 8]){false}

Особливість введення та виведення множини

Ввести та вивести множини за допомогою операторів read та write не можливо. Тому існують спеціальні прийоми вводу і виводу окремих елементів множини.

Послідовне введення елементів множини. Можна виконати за допомогою циклічного оператора з перед умовою. Для фіксації кінця вводу елементи порівнюються із втраченою константою. Коли вони співпадають, ввід закінчується. Внутрішнім оператором циклу є конструктор, який формує множину.

Нехай ознакою закінченням буде крапка `.'.

MN := [ ]; {конструктор порожня множина}

M := ` `; {можна присвоювати будь-який символ}

While M <> ` . ` do

Begin

Writeln (“ввести елемент множини”);

Read (M);

MN := MN + [M];

End.

вивід елементів множини можна виконувати шляхом перевірки наявності елемента в множині і його виводу, якщо він міститься в множині. Нехай елемента множини

ZZ : set of 1 .. 30;

Потрібно вивести на екран, тоді фрагмент циклічного перебору має вигляд:

For i := 1 to 30 do

If i in ZZ then Writeln ( i );

5. Загальні відомості про процедури та функції

В практиці програмування часто зустрічаються випадки, коли при виконанні програми треба проводити однакові обчислення при різних початкових даних. Для виключення повторень і спрощення програми ці обчислення можна виділити в самостійну частину програми, яка може використовуватись багаторазово. Така автономна частка програми (яка реалізує визначений алгоритм і припускає звертання до неї із різних часток загальної програми) називається підпрограмою.

Розміщення підпрограм у програмі схоже з ієрархічним принципом побудови файлової системи.

Позитивні сторони використання підпрограм:

реалізується метод структурного програмування (модульна побудова);

економія пам'яті (яка виділяється для зберігання змінних підпрограми тільки під час роботи підпрограми);

імена змінних в основній програмі і підпрограми незалежні (потр. змінна А програми і підпрограми можуть мати різні фізичні значення);

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

В мові Паскаль виділяють два видм підпрограм:

процедура (PROCEDURE);

функція (FUNCTION).

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

Форми заголовків:

Program <ім'я> (список параметрів)

Procedure <ім'я> (список параметрів)

Function <ім'я> (список параметрів)

Блоки можуть бути не доложеними або вкладенеми один в одного. Відповідно вони носять назву зовнішнього або внутрішнього (рис.1).

Розглянемо принцип блочної побудови програми на рис.2.

Рис. 2.

Із рис.2 видно, що процедури і функції розміщуються в останньому розділі блоку опису програми. Таких процедур і функцій може бути декілька і розміщуються вони в довільному порядку. В свою чергу, в їх розділах опису можна розміщувати процедури і функції 2-го рівня і т.д.. Наприкінці процедури і функції після end стоїть “ ; ”.

В зв'язку з тим, що кожна процедура або функція може містити свій розділ опису, виникає так звана проблема локалізації імен змінних.

Змінні і константи можна описувати у зовнішніх або внутрішніх блоках. Тому виникає два поняття змінних і констант: локальні і глобальні.

Локальні - існують у рамках того блока, де вони описані. Тобто за межами даного блока їх використовувати не можливо.

Страницы: 1, 2, 3



© 2003-2013
Рефераты бесплатно, курсовые, рефераты биология, большая бибилиотека рефератов, дипломы, научные работы, рефераты право, рефераты, рефераты скачать, рефераты литература, курсовые работы, реферат, доклады, рефераты медицина, рефераты на тему, сочинения, реферат бесплатно, рефераты авиация, рефераты психология, рефераты математика, рефераты кулинария, рефераты логистика, рефераты анатомия, рефераты маркетинг, рефераты релиния, рефераты социология, рефераты менеджемент.