Перевір себе
1. Інформатичний диктант
-
Записати усі знаки порівнянь мовою програмування.
-
Що таке умова?
-
Яка різниця між записами Х=3 та Х:=3?
-
Чим відрізняється складена умова від простої?
-
Які існують логічні операції?
-
Записати таблиці істинності всіх логічних операцій.
-
Використовуючи логічні операції, запишіть наступні речення:
-
значення змінної x – від’ємне;
-
значення змінної a більше значення змінної b;
-
значення змінної x кратне числу 7;
-
точка з координатами (x,y) належить третій чверті координатної площини;
-
значення змінної x належить інтервалу ;
-
значення змінної x не належить інтервалу ;
-
ціла змінна x є квадратом заданого цілого числа p;
-
із двох заданих змінних x та y значення тільки однієї додатне;
-
із двох заданих змінних a та b значення тільки однієї кратне 7;
-
трикутник зі сторонами a, b, c прямокутний;
-
трикутник зі сторонами a, b, c рівносторонній.
-
У яких випадках використовуються інструкції розгалуження?
-
Які можливі формати запису інструкцій розгалуження мовою програмування та мовою блок-схем?
-
Семантика команди розгалуження if (опис її роботи).
-
Формат запису оператора вибору мовою Паскаль.
-
Якого типу може бути вираз-селектор в операторі вибору?
-
Як записуються значення, які може набувати вираз-селектор в операторі вибору?
-
Опишіть етапи роботи оператора (інструкції) вибору.
-
Чи є інструкції if і case взаємозамінними?
-
Чи є обмеження на кількість використовуваних у програмі інструкцій if та case? Яке можливе їх взаємне розташування?
-
if a<b then a:=a+1 else b:=b+1;
-
if (x<5 and y<6) then s:=s+5 else s:=s-5;
-
if x<y then x:=x+y and y:=x-y;
-
if a<>b then a:=b; else a:=5*a;
-
if 5=3 then x:=2 else x:=1;
-
if (x and y) < 1 then a:=x*x;
-
if x+y<z then if y>z then z:=0 then y:=0 else z:=0;
-
if x+y<z then if y>z then z:=0 else y:=0 else z:=0;
-
if (x and y) < 1 then x:=x+1 else if y>z then z:=0 else y:=0;
-
if x+y<z then if y>z then z:=0 else y:=0;
-
if 1<x<2 then x:=x+1; y:=0;
else x:=0; y:=y+1;
-
if │x│<1 then begin x:=x/2; writeln(x)
else x:=x*x; writeln(x); end;
-
if 0<x<2 then if y<1 then x:=x+5 and x:=x+y
else x:=sqr(x)
-
if 1<x and x<2 then begin x:=x+1 and y:=0 end;
else begin x:=0; y:=y+1 end
Примітка: При виконанні даного завдання уважно перевіряйте правильність написання умови (простої та складеної), оформлення складеного оператора та розстановку розділових знаків.
Пояснення. Тим, хто знайомий з мовою блок-схем, запропоноване завдання не буде складним. Початківцям же треба керуватися нескладними правилами:
-
кількість блоків умовного переходу відповідає кількості команд умовного переходу, які потрібно використати для запису фрагменту блок-схеми мовою Паскаль;
-
вихід, що містить знак «+» відповідає гілці then оператора розгалуження, а вихід зі знаком «-»- гілці else;
-
пусті виходи блоку відображуються пустими гілками оператора, при цьому пусту гілку else можна не писати, а пусту гілку then писати обов’язково!
Отже, для наведеного прикладу фрагмент програми буде виглядати так:
if <умова 1>
then if <умова 2>
then <оператор 1>
else
else <оператор 2>;
На перший погляд, оскільки пусту гілку else можна не писати, фрагмент можна написати таким чином:
if <умова 1>
then if <умова 2>
then <оператор 1>
else <оператор 2>;
Але в даному випадку це буде помилка, оскільки якби ми не написали оператори (мається на увазі зсув відповідних гілок для наочності), гілка else відноситься до останнього оператора if, який її не має, тобто реально це оператор виду:
if <умова 1>
then if <умова 2>
then <оператор 1>
else <оператор 2>;
Щоб отримати результат, який би нас задовольнив без зайвих пустих гілок else, потрібно оформити гілку then зовнішнього умовного оператора за допомогою операторних дужок begin … end, тобто таким чином:
if <умова 1>
then begin
if <умова 2>
then <оператор 1>
end
else <оператор 2>;
Наведений приклад є типовим для пояснення, що операторні дужки потрібні не тільки у випадках, коли кілька простих операторів треба оформити як єдиний блок.
Не забувайте також слідкувати за відповідністю операторів (за номерами) гілкам блок-схеми.