Лабораторний практикум № 1
Ціль роботи: Тестування елементарних базових конструкцій мов програмування
Теоретичні відомості
Для більшості мов програмування характерними є наступні елементарні базові конструкції:
Конструкція «Послідовність»
Мнемоопис: S1; S2;... Sn.
Таблиця покриття умов (Таблиця істинності): Один тест.
Приклади:
Введення (a,b);
a:=a+2;
c:=a/b;
Виведення (a,b,c);
Тест:
Вхідні дані | Результат |
a=6, b=2 | a=8, b=2, c=4 |
Конструкція «Розгалуження»
Умова B – проста, тобто логічна змінна або відношення
Мнемоопис:
Якщо B
То S1
Інакше S2
К Якщо;
Таблиця покриття умов (Таблиця істинності):
№ | B | Зміст умови |
false | Виконується S2 | |
true | Виконується S1 |
Приклади:
Якщо a>2
То p:=1
Інакше p:=0
К Якщо;
Тест:
№ | B a>2 | Вхідні дані | Результат |
false | a=0 | p=0 | |
true | a=4 | p=1 |
1.1.2.2 Умова B – вираз виду A V C або A & C
Мнемоопис:
Якщо B
То S1
Інакше S2
К Якщо;
Таблиця покриття умов (Таблиця істинності) для A V C:
|
|
№ | A | C | A V C | Зміст умови |
false | false | false | Область хибності B; виконується S2 | |
false | true | true | Область істиності B; виконується S1 | |
true | false | true | Область істиності B; виконується S1 | |
true | true | true | Область істиності B; виконується S1 |
Таблиця покриття умов (Таблиця істинності) для A & C:
№ | A | C | A & C | Зміст умови |
false | false | false | Область хибності B; виконується S2 | |
false | true | true | Область хибності B; виконується S2 | |
true | false | true | Область хибності B; виконується S2 | |
true | true | true | Область істиності B; виконується S1 |
Приклади для A & C:
Якщо ((a>2) & (a<10))
То{ а знаходиться усередині інтервалу (2,10)} p:=1
Інакше { а знаходиться зовні интервалу} p:=0
К Якщо;
Тест:
№ | A a>2 | С a<10 | A&C | Умови на дані | Вхідні дані | Результат |
false | false | false | a<=2, a>=10 | Неможливо | Немає | |
false | true | true | a<=2, a<10 | a=1 | p=0 | |
true | false | true | a>2, a>=10 | a=11 | p=0 | |
true | true | true | a>2, a<10 | a=8 | p=1 |
Умова B – логічний вираз з простих умов, що об'єднані зв'язками (можливо зі скобками та запереченням)
Мнемоопис:
Якщо B
То S1
Інакше S2
К Якщо;
Приклади:
A C E
Якщо ((l>0) Ú (h=2) Ú (l>3))
То p:=1
Інакше p:=0
К Якщо;
Таблиця покриття умов (Таблиця істинності):
Таблиця містить N = 2↑k рядків, де k – кількість простих умов. Для k = 3: N = 8.
Тест:
№ | A l>0 | C h=2 | E l>3 | A Ú C Ú E | Умови, що накладені на дані (зміст тесту) | Вхідні дані | Результат |
F | F | F | F | l<=0, h<>2, l<=3 | l = -4, h=2.5 | p=0 | |
F | F | T | T | l<=0, h<>2, l>3 | неможливо | немає | |
F | T | F | T | l<=0, h=2, l<=3 | l = -4, h=2 | p=1 | |
F | T | T | T | l<=0, h=2, l>3 | неможливо | немає | |
T | F | F | T | l>0, h<>2, l<=3 | l=2, h=1 | p=1 | |
T | F | T | T | l>0, h<>2, l>3 | l=4, h=1 | p=1 | |
T | T | F | T | l>0, h=2, l<=3 | l=2, h=2 | p=1 | |
T | T | T | T | l>0, h=2, l>3 | l=4, h=2 | p=1 |
|
|
Конструкція «Цикл».
Цикл «Поки», умова B – проста.
Мнемоопис:
Поки B цикл
S
кц;
Умови тестування:
Один тест:
- до початку циклу В – істинне - T,
- в циклі В перетворюється в хибне - F.
Приклад:
Поки êa - b ê>e цикл
a:=a+(b-a)/3;
b:=b-(b-a)/3;
кц;
Тест
Вхідні дані | Результат |
a=1, b=2, e=4/9 | a=4/3, b=5/3 |
Цикл «Доти», умова B – проста.
Мнемоопис:
Цикл
S
Доти В
кц
Умови тестування:
Один тест:
- S виконується до початку циклу перевірки В,
- цикл закінчується в циклі В перетворюється на істинне - T.
Приклад:
Цикл
a:=a+(b-a)/3;
b:=b-(b-a)/3;
Доти êa - b ê< e
кц
Тест
Вхідні дані | Результат |
a=1, b=2, e=4/9 | a=4/3, b=5/3 |
Цикл «Для» - параметричний, з лічильником.
Мнемоопис:
Для i от 1 до n
цикл
S
кц;
Умови тестування:
Один тест, що забезпечує потрібну кількість повторень.
Приклад:
c:=0;
Для k від 1 до 10 крок 1 цикл
c:=c+a[k];
кц;
Вхідні дані | Результат |
a=(1,2,3,4,5,6,7,8,9,10) | c=55 |
1.1.3.4 Цикл «Поки», умова В= A&C.
Мнемоопис:
Поки A&C цикл
S
кц;
Умови тестування:
Можливі 4 комбінації значень А і С. Проведемо аналіз на їх реальність по завершенню циклу тобто повертання «хибне» для A&C.
№ | A | C | A&C | Пояснення |
false | false | false | Може й не буде | |
false | true | false | Одна з них обов'язково буде | |
true | false | false | ||
true | true | true | Не може бути |
№ 1 – залежить від конкретного змісту підумов; може й не виникнути.
№ 4 – не забезпечує завершення циклу; не відповідає критерію тестування циклу.
Приклад
Необхідно перевірити впорядкування за спаданням масиву а із p елементів.
Нехай ord = true – якщо масив впорядкований,