Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторна робота 6 и 7.doc
Скачиваний:
9
Добавлен:
12.11.2018
Размер:
188.42 Кб
Скачать

Контроль знань та вмінь

Таблиця вмінь

Таблиця 17

Розподіл пам'яті

статичний

динамічний в блоці

динамічний в “купі”

глобальний дозвіл видимості імен

зовнішній блок

типізо-вані констан-ти

static

мембран-ний ефект

динаміч-но розподі-лені блоки

взаємо-дія static та auto

new

delete

взаємо-дія в блоках

п

с

с

п

с

п

с

с

с

Контрольні запитання

  1. Дайте визначення блоку.

  2. Що таке час існування та область дії об'єкта?

  3. У чому сутність мембранного ефекту?

  4. Як складається нумерація блоків?

  5. Які є стратегії розподілу пам'яті?

  6. Що таке глобальний дозвіл видимості імен?

  7. Як організована та використовується пам'ять типу “купа”?

  8. Як організована та використовується пам'ять типу “стек”?

  9. Як ініціалізуються об'єкти в залежності від використаної стратегії розподілу пам'яті?

Література: [1]; [3].

Лабораторна робота 7

Дослідження структурних операторів операторного

Базису мов програмування паскаль та сі

Мета лабораторної роботи - вивчити устрій структурних операторів мов Паскаль та Сі та дослідити можливості та особливості застосування різноманітних форм структурних операторів.

Теоретичні відомості

Оператор

Паскаль, Сі:

<оператори базису>::= <оператор опису>|<оператор привласнення>|

<структурний оператор>

<оператор>::=<оператор привласнення>|<структурний оператор>

Структурні оператори

а) Складений оператор

Паскаль:

<складений оператор>::= begin{<оператор>}2end;

Сі:

<складений оператор>::={{<оператор>}2}

б) Оператор вибору (умовна форма)

Паскаль:

<оператор вибору>::=if<вираз відношення>then<оператор>

Наприклад:

if flag = true then { flag – змінна логічного типу}

begin

iA := iA + 10; { iA – змінна цілого типу}

flag := false;

end;

Сі:

<оператор вибору>::=if (<вираз відношення>)<оператор>

<вираз відношення>::=<вираз><операция відношеня><вираз>

Наприклад:

if (flag == 1) // flag – змінна цілого типу

{

iA = iA + 10;

flag = 0;

}

в) Оператор вибору (альтернативна форма)

Паскаль:

<оператор вибору>::=if<вираз відношення>then<оператор>else<оператор>

Наприклад:

if flag = true

iA:= iA * 10;

else

begin

iA := iA + 10;

flag := true;

end;

Сі:

<оператор вибору>::=if (<вираз відношення>)<оператор>;else<оператор>

Наприклад:

if (flag == 1)

{

iA = iA * 10;

flag = 0;

};

else

{

iA = iA + 10;

flag = 1;

}

г) Оператор вибору (охоронна форма/перемикач)

Паскаль:

<оператор вибору>::= case< вираз >of{<вариант вибору>}0

{else<оператор>}01 end

<вариант вибору>::={<літерал {..<літерал>}0 {,}0 }1: <оператор>

Наприклад:

case cB of { cB – змінна символьного типу}

‘A’: iA := iA +10;

‘B’, ‘C’: iA := iA +20;

‘D’: iA := iA +30;

else iA := iA +100;

end;

Сі:

<оператор вибору>::= switch (< вираз >){{ case<вариант вибору> }1

{default: <оператор>}01 }

<вариант вибору>::=<R - вираз>: <оператор> break;

Наприклад:

switch cB

{

case ‘A’: {iA = iA +10; break;}

case ‘B’: {iA = iA +20; break;}

case ‘C’: {iA = iA +30; break;}

default: iA = iA +100;

}

д) Оператор повторення (форма repeat-until / do-while)

Паскаль:

<оператор повторення>::= repeat <оператор>until<вираз відношення>

Наприклад:

iMounth := 1; { iMounth – змінна цілого типу}

repeat { iAccount – змінна дійсного типу}

iAccount := iAccount + iAccount/100;

iMounth := iMounth + 1;

until iMounth<=12;

Сі:

<оператор повторення>::= do<оператор>while(<вираз відношення>)

Наприклад:

iMounth = 1;

do

{

iAccount = iAccount + iAccount/100;

iMounth = iMounth + 1;

}

while (iMounth<=12);

е) Оператор повторення (форма while-do)

Паскаль:

<оператор повторення>::= while<вираз відношення>do<оператор>

Наприклад:

iMounth := 1;

while iMounth <= 12 do

begin

iAccount := iAccount + iAccount / 100;

iMounth := iMounth + 1;

end;

Сі:

<оператор повторення>::= while(<вираз відношення>)<оператор>

Наприклад:

iMounth = 1;

while (iMounth <= 12)

{

iAccount = iAccount + iAccount/100;

iMounth = iMounth + 1;

}

ж) Оператор повторення (форма for-step-do)

Паскаль:

<оператор повторення>::= for < оператор привласнення >to|downto

<вираз> {step<вираз> }01do<оператор>

Наприклад:

for iMounth := 1 to 12 do

begin

iAccount := iAccount + iAccount / 100;

if iMounth > 6 then

iAccount := iAccount + iAccount * 0.05;

end;

Сі:

<оператор повторення>::= for ({< оператор привласнення >}01;

{<вираз відношення>}01;{< оператор привласнення >}01){<оператор>}01

Наприклад:

for (iMounth = 1; iMounth <= 12; iMounth = iMounth + 1)

{

iAccount = iAccount + iAccount / 100;

if (iMounth > 6)

iAccount = iAccount + iAccount * 0.05;

}