
- •Мета лабораторної роботи - вивчити блочну організацію програм Паскаль та Сі та стратегії розподілу пам'яті. Теоретичні відомості
- •Правила написання програм
- •Своєчасно звільняйте пам'ять, “захоплену” в “купі” (оператори dispose/ delete) Завдання
- •Контроль знань та вмінь
- •Контрольні запитання
- •Лабораторна робота 7
- •Дослідження структурних операторів операторного
- •Базису мов програмування паскаль та сі
- •Мета лабораторної роботи - вивчити устрій структурних операторів мов Паскаль та Сі та дослідити можливості та особливості застосування різноманітних форм структурних операторів.
- •Теоретичні відомості
- •Правила написання програм
- •Завдання
- •Методичні вказівки
- •Контроль знань та вмінь
- •Контрольні запитання
Контроль знань та вмінь
Таблиця вмінь
Таблиця 17
Розподіл пам'яті |
|||||||||||
статичний |
динамічний в блоці |
динамічний в “купі” |
глобальний дозвіл видимості імен |
||||||||
зовнішній блок |
типізо-вані констан-ти |
static |
мембран-ний ефект |
динаміч-но розподі-лені блоки |
взаємо-дія static та auto |
new |
delete |
взаємо-дія в блоках |
|||
п |
с |
с |
п |
с |
п |
с |
с |
с |
Контрольні запитання
-
Дайте визначення блоку.
-
Що таке час існування та область дії об'єкта?
-
У чому сутність мембранного ефекту?
-
Як складається нумерація блоків?
-
Які є стратегії розподілу пам'яті?
-
Що таке глобальний дозвіл видимості імен?
-
Як організована та використовується пам'ять типу “купа”?
-
Як організована та використовується пам'ять типу “стек”?
-
Як ініціалізуються об'єкти в залежності від використаної стратегії розподілу пам'яті?
Література: [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;
}