Програмування діалогу з комп’ютером

Програмування діалогу з комп'ютером

Що таке діалог з комп'ютером

Якщо ви виконували розглянуті вище програми на комп'ютері, то відчули певну незручність при роботі з машиною. По-перше, незрозуміло, коли машина починає очікувати введення даних, які дані і в якому порядку потрібно вводити (це ж можна і забути). По-друге, результати виходять у вигляді чисел на екрані, без всяких пояснень їхнього змісту. Ясно, що люди між собою так не спілкуються.

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

Перш ніж почати складання програми, потрібно продумати сценарій такого діалогу.

Наприклад, складемо сценарій роботи програми, що обчислює суму двох цілих чисел. На екрані комп'ютера послідовно повинні з'являтися такі рядки (для прикладу припустимо, що будемо вводити числа 237 і 658):

Введіть перший доданок: А = 237
Введіть другий доданок: В = 658
А + В = 895
Бувай!

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

Будь висновок на екран відбувається по оператору виведення, записаному в програмі.

Отже, за допомогою оператора виведення на екран виносяться не тільки результати вирішення завдання, а й усі елементи діалогу з боку комп'ютера.

Ось програма, яка реалізує наш сценарій:

Program Summa;
var А, В. integer;
begin write ( 'Введіть перший доданок: А =');
readln (A);
write ( 'Введіть другий доданок: В =');
readln (В);
writeln;
writeln ( 'A + В =', А + В);
writeln ( 'Поки!')
end.

У цій програмі використовується можливість включати в список виведення символьні рядки, укладені в апострофи, і арифметичні вирази. Вираз А + В спочатку обчислюється, а потім отримане число виводиться на екран. Звичайно, для обчислення суми можна було написати окремий оператор присвоювання, але можна і так, як в цьому прикладі.

Ще зверніть увагу на оператор writeln без списку виведення. Він забезпечує пропуск рядка на екрані.

Приклад програмування діалогу

Варіант 1:
Ти вчора був хворий. Виміряй-ка температуру! Розкажи, яка в тебе температура: 36.5
Ти здоровий, дружок! Можеш йти в школу.
Бажаю успіхів!

Варіант 2:
Ти вчора був хворий. Виміряй-ка температуру!
Розкажи, яка в тебе температура: 37.3
Ти ще хворий! Роздягайся і лягай в ліжко.
Поправляйся, дружок!

Алгоритм цієї програми містить розгалуження. Ідея алгоритму полягає в тому, що значення температури дитини порівнюється з величиною нормальної температури тіла людини: 36,6 ° С. І якщо у дитини температура вище, то він нездоровий. Ось відповідний алгоритм на АЯ:

алг няньки
вещ Т
нач висновок "Ти вчора був хворий. Виміряй-ка температуру!"
висновок "Розкажи, яка в тебе температура:
введення (Т)
якщо Т> 36.6
то висновок "Ти ще хворий! Роздягайся і лягай в ліжко."
висновок "Поправляйся, дружок!"
інакше висновок "Ти здоровий, дружок!
Можеш йти в школу. "
висновок "Бажаю успіхів!"
кв
кін

За цим алгоритмом виходить наступна програма на Паскалі:

Program NANNY;
Var T: real;
begin writeln ( 'Ти вчора був хворий. Виміряй-ка температуру!');
write ( 'Розкажи, яка в тебе температура:');
readln (T);
if T> 36.6 then begin
writeln ( 'Ти ще хворий! Роздягайся і лягай в ліжко.');
writeln ( 'Поправляйся, дружок!')
end
else begin
writeln ( 'Ти здоровий, дружок! Можеш йти в школу.');
writeln ( 'Бажаю успіхів!')
end
end.

Зверніть увагу на два моменти: по-перше, перед словом else ні в якому разі не можна ставити крапку з комою; по-друге, в запису і при введенні дійсних чисел ціла і дробова частини числа відокремлюються десятковою крапкою.

Запитання і завдання

1. Що означає поняття "діалоговий характер програми"?

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

3. Що означає поняття "дружній інтерфейс"?

4. Виконайте на комп'ютері всі програми, наведені в цьому параграфі.

5. Побудуйте алгоритм і складіть програму, за якою буде реалізований наступний сценарій: комп'ютер запитує номер дня тижня, після введення комп'ютер повідомляє назву цього дня. Наприклад, якщо ввели 1, то виведеться фраза "Це понеділок" і т. Д.