
Archive / 1_семетр-1 / Лабораторные работы / Labtp_1s / LabTp_3_2_cs
.docЛ.В.Рибакова МОДУЛЬ № 1 Лабораторна робота 5
Лабораторна робота 5
Тема: Програмування з елементами дiалогу.
Мета: Вивчити роботу оператора вибору CASE.
Теоретичні відомості
Оператор CASE забезпечує розгалудження на декілька напрямків.
Загальний вигляд:
Case <sel> of
<cont>: <operat>;
.......
Else
.......
end;
де
<sel> - селектор - змінна скалярного типу (за винятком дійсного);
<const> - константа вибору, тип якої співпадає з типом селектору. Навпроти неї стоїть оператор простого, чи складеного типу, який виконується у разі співпадання значень селектора та константи вибору.
Після слова Else може стояти простий чи складений оператор, а також ця конструкція може бути відсутня зовсім.
За допомогою оператора вибору варіанту CASE у програмах на мові TURBO PASСAL створюють діалог користувача з програмою.
ПРИКЛАД :
Програма дає змогу користувачеві зробити розрахунки різних видів комунальних платежів у діалозі з комп'ютером.
Program lispll;
Uses crt;
Var
Md, i :integer;
P,a,b,r,w,t:real; c,v:char;
Begin
Clrscr;
Writeln('_______________Poзрахунок комунальних платежiв ____________________');
Writeln('___________________________________________________________________');
Writeln(' 1 Кварплата ');
Writeln(' 2 Електроенергiя ');
Writeln(' 3 Газ ');
Writeln(' 4 Гаряче водопостачання ');
Writeln(' 5 Холодне водопостачання');
Writeln(' 6 Опалення ');
Writeln('___________________________________________________________________ ');
While true do begin
Writeln(' Виберiть форму розрахунку ');
Writeln('_________________________________________________________________');
C:= readkey;
Case c of
'1':begin
writeln('Кварплата');
writeln('Площа квартири ');
readln(p);
write('Кiлькiсть проживаючих ');
readln(i);
writeln('Сума оплати - ', i*p*0.2:5:2, ' грн.');
end;
'2':begin
writeln('Електроенергiя');
write('Кiлькiсть квт/год використаних за мiсяць ');
readln(a);
writeln('Сума оплати - ',a*0.09:5:2, ' грн.');
end;
'3':begin
writeln('Газ');
write('Кiлькiсть кубометрiв використаних за мiсяць ');
readln(b);
writeln('Сума оплати -',b*1.10:5:2, ' грн.');
end;
'4':begin
writeln('Гаряче водопостачання');
write('Кiлькiсть кубометрiв використаних за мiсяць ');
readln(r);
writeln('Сума оплати -', r*1.79:5:2, ' грн');
end;
'5':begin
writeln('Холодне водопостачання');
write('Кiлькiсть кубометрiв використаних за мiсяць ');
readln(w);
writeln('сума оплати - ', w*0.43:5:2, 'грн.' );
end;
'6':begin
writeln('опалення');
write(' Загальна площа квартири ');
readln(t);
writeln('Сума оплати -', t*0.42:5:2, ' грн');
end;
end;
writeln('Будете пpодувжувати pозpахунки (Y/N) ?');
v:= readkey;
case v of
'N','n':exit;
end;
end;
end.
Завдання до лабораторної роботи :
1. Підготувати особисті приклади розрахунків у діалозі ( різноманітних математичних формул, фізичних або хімічних величин, інших ситуацій з повсякденного життя, пов'язаних з вибором виріантів у діалозі).
2. Скласти блок-схему алгоритму та програму на мові Turbo Pascal.
3. Результат, отриманий за допомогою комп'ютера показати викладачеві та протокол виконання занести у звіт.
4. Звіт захистити.
Завдання Написати програми використовуючи оператор САSЕ.
I.. Вивести на екран назву сезону (зима, весна, літо, осінь) до якого відноситься місяць n, де n=1..12.
2. Вивести на екран назву дня тижня по його номеру.
3. Вивести на екран назву ноти нотного стану ,якщо вони нумеруються цифрами від 1 до 7.
4. Вивести на екран назву столиці даних країн Росія, Україна, Англія, Канада, Болгарія, Греція,
5. Для цілого числа k від 1 до 10 вивести фразу 'Мені k років', враховуючи , що для деяких значень k слово років змінюється .
6. Вивести на екран назву континенту по назві країни Росія, Англія, Канада, Греція, Китай, Перу, СІЛА, Чілі.
7. Вивести на екран назву кольорів райдуги відповідно до номера в світловому спектрі.
8.По українській назві мови програмування ( ада, бейсик, паскаль, фортран, сі++ ) присвоїти змінній величині А англійську назву.
9. Відомо курс на якому навчається студент, Вивести на екран рік вступу до вузу.
II.Змінній величині р присвоєно значення ( тепло, жарко, холодно). По її значенню вивести назву сезону (літо, зима, весна, осінь).
12. По назві місяця вивести кількість днів у ньму.
13. Визначити за вибором : площини та об’єми геометричних фігур.
14. Визначити належність до знаку Зодіаку.
15. Визначити до якого алфавіту належить буква, що вводиться : до українського, до латинського, чи до обох разом.
16. Визначити: число просте, чи складове. Якщо складове, то якому числу воно є кратним.
17. Визначити по заданій даті (число, місяць, рік) – дату наступного дня.
Питання до самоконтролю.
Який оператор дозволяє виконати одну із декількох дій в залежності від результату обчислення виразу?
2. Як працює оператор Case?
3. Чим відризняється оператор CASE від інших відомих вам умовних операторі?
4. Що називається сулектором? Вказати, якому значенню може дорівнювати селектор (2; 5.6; 'r','Y','true','Yes','monday'). Відповідь пояснити.
5. Що називається константою вибору? Чи може водночас значення селектора дорівнювати ('2'), а значення константи вибору (2). Пояснити відповідь.