Діалогові програми
План.
Уведення даних.
Виведення даних.
Формати виведення.
Імітація діалогів. Коментарі.
Література. Я.М. Глинський
Інформатика. Алгоритмізація і програмування. Книжка 1.
1. Уведення даних.
Надати значення змінним можна за допомогою команди присвоєння. Такий спосіб найпростіший, однак не найкращий, оскільки програми від цього стають не універсальними (немасовими). Ось чому в усіх алгоритмічних мовах використовують принцип уведення даних у пам’ять за допомогою команди введення даних. Команда введення даних має вигляд:
read (<список змінних>)
Дія команди. Виконування програми призупиняється для введення значень змінних (екран буде чорним в MS DOS чи відкриється екран для введення даних у Windows). Значення відповідних змінних зі списку набирають на клавіатурі через пропуск, якщо їх декілька. Після цього натискують на клавішу вводу (ENTER) – змінні отримають значення, і програма виконуватиметься далі.
Використовують також різновид команди введення
readln (<список змінних>)
Це команда є особливо корисною під час роботи з текстовими файлами.
Приклад 1. Нехай трьом змінним треба надати значення 2, 5 і 1. Для цього запишемо команду read (a, b, c). Під час виконання команди настане пауза – середовище перейде у режим введення даних. Треба набрати числа на клавіатурі через пропуск так 2_5_1 і натиснути клавішу вводу (ENTER). Змінна а набуває значення 2, змінна b – значення 5, а змінна с – значення 1. Клавішу вводу можна також натискати після кожного числа.
Приклад 2. Програма про відстань між містами матиме вигляд
Program Distance;
var
t1, v1, t2, v2, ab, bc, ac: integer;
begin
read (t1, t2, v1, v2);
ab:=v1*t1; bc:=v2*t2;
ac:=ab+bc;
writeln (ab:6, bc:6, ac:6);
readln
end.
2. Виведення даних. Команда виведення призначена для виведення значень на екран. Вона має такий загальний вигляд:
write <список>
Список може складатися зі сталих, змінних, виразів, текстових даних, записаних у лапках.
Дія команди. Вирази обчислюються і їхні значення виводяться на екран без пропусків. Це може призвести до злиття даних на екрані.
Наступна команда write виводитиме дані у тому ж рядку. Щоб виводити дані у наступному рядку, застосовують команду writeln.
Приклад 3. Нехай змінні а, b, c отримали такі значення: 2, 5, 1. Команда write (a, 9, b+c) виведе у лівому кутку екрана таке: 296.
3. Формати виведення.
Під час виведення даних треба домагатися якнайкращого розташування чисел на екрані. Це роблять за допомогою форматів, а також текстів, які пояснюють, що саме виводиться.
Формат: n надає на екрані n позицій для цілого числа, а також для тексту.
Формат :n:k надає n позицій для дійсного числа з к для цифр після десяткової крапки. Якщо позицій забагато, то перед цілою частиною числа будуть пропуски. Якщо замало позицій для дробової частини, то відбувається заокруглення числа. Якщо замало позицій для цілої частини, то компілятор додасть позиції. Знак “-” і десяткова крапка входять до кількості позицій n.
Приклад 4. Розглянемо команди виведення чисел і їхній вигляд на екрані. Символ “-” означає один пропуск.
Команди Вигляд чисел на екрані
write (5,15,25,-35) 51525-35
write (5:2, 15:3, 25:4, -35:4) 5_15_25_-35
write (6+2:2, +50,4) _8_50
write (2.5:7:2) _ _ _ _ 2.5
write (-2.5:6:2,3.548:6:2) -2,50 _3.55
Імітація діалогів. Коментарі.
Діалоговий (інша назва - інтерактивний) алгоритм імітує діалог між користувачем і комп’ютером. Відповідна програма складається в основному з команд writeln та readln. Діалог можна використовувати під час введення даних з метою отримати на екрані підказку про те, що саме треба ввести, наприклад, так:
Write (’Введіть значення радіуса R:’); readln (R);
Повідомлення “Введіть значення радіуса R:” виводить комп’ютер, а число 5 чи інше користувач набирає сам і натискає на клавішу вводу.
Коментарі використовують для пояснення роботи програми, команд чи дій користувача. Їх записують у фігурних дужках. Вони не впливають на хід виконання програми і в навчальних програмах набирати їх на клавіатурі не потрібно.
Задача 1. Скласти програму діалогу користувача з комп’ютером за таким сценарієм: комп’ютер запитує користувача, як того звати, користувач вводить своє ім’я, комп’ютер вітається і пропонує з ним поспілкуватися на тему улюбленого предмету.
Program Dialog;
uses crt;
var name, g, c: string; n: integer;
begin clrscr;
writeln (‘як тебе звати ?’);
readln (name); {треба буде ввести текст};
writeln (‘Привіт, name’);
writeln (‘Поспілкуйся зі мною!’);
readln (g); {відповідай: так}
writeln (‘Скільки занять сьогодні?’);
readln (n); {треба буде ввести число};
writeln (‘Який твій улюблений предмет?’);
readln (c); {треба буде ввести текст};
writeln (‘Добре , ’, C, ’ – важливий предмет);
writeln (‘Bye - бувай’).