- •Лабораторна робота № 1
- •Системний блок
- •Материнська (системна) плата
- •Системна магістраль даних (системна шина)
- •Мікросхема bios
- •Блок живлення
- •Накопичувачі
- •Адаптери
- •Клавіатура
- •Маніпулятори
- •Плати розширення
- •Зовнішні пристрої
- •Принтери
- •Стримери
- •Пристрої на компакт-дисках
- •Сканери
- •Джерела безперебійного живлення
- •Контрольні питання
- •Лабораторна робота №2
- •Алгоритм, його основні властивості та способи зображення
- •Мова програмування qbasic
- •Найпростіші оператори
- •Контрольні запитання
- •Варіанти завдань роботи
- •Лабораторна робота №3
- •Запуск qbasic
- •Індикатори натиснення спеціальних клавіш:
- •Індикатори натиснення клавіш-перемикачів:
- •Описання головного меню qbasic
- •Введення та редагування програм
- •Редактор qbasic
- •Запуск програми на виконання та перегляд результату
- •Збереження програми у вигляді файла на диску
- •Вихід з середовища qbasic
- •Контрольні запитання
- •Завдання
- •Лабораторна робота № 4
- •Розгалужена структура алгоритму
- •Умовний оператор if
- •Оператор goto
- •Оператор вибору on
- •Оператор select case
- •Циклічна структура алгоритму
- •Оператор for...Next
- •Зразок виконання завдання.
- •Контрольні запитання
- •Варіанти завдань
- •Лабораторна робота № 5
- •Змінні величини та функції, що їх визначають
- •Область визначення (існування) функції
- •Максимум та мінімум (екстремум) функції
- •Найбільше та найменше значення функції
- •Оператор-функція
- •Зразок виконання завдання
- •Контрольні запитання
- •Варіанти завдань
- •Лабораторна робота № 6
- •Умовні цикли
- •Оператор while...Wend
- •Оператор do...Loop
- •Метод половинного ділення
- •Зразок виконання завдання
- •Контрольні запитання
- •Варіанти завдань
- •Лабораторна робота № 7
- •Ітераційний цикл
- •Контрольні запитання
- •Варіанти завдань.
- •Лабораторна робота № 8
- •Контрольні запитання
- •Варіанти завдань
- •Лабораторна робота №9
- •Обмінне сортування
- •Інші методи сортування
- •Контрольні запитання
- •Варіанти завдань
- •Лабораторна робота № 10
- •Контрольні запитання
- •Варіанти завдань
- •Лабораторна робота № 11
- •Зразок виконання завдання
- •Контрольні питання
- •Лабораторна робота № 12
- •Контрольні запитання
- •Варіанти завдань.
- •Лабораторна робота № 13
- •Символьні функції
- •Що таке аscii?
- •Перетворення з аsсii в qbasic
- •Визначення довжини символьної величини
- •Виділення частини тексту
- •Кодування текстів
- •Пoшук підрядка
- •Різні варіанти написання тексту
- •Зразок виконання завдання.
- •Контрольні запитання
- •Варіанти завдань.
- •Лабораторна робота № 14
- •Оператор print using
- •Print using та числа
- •Print using та текстові значення
- •Масиви економічної інформації
- •Контрольні запитання
- •Варіанти завдань.
- •Лабораторна робота №15
- •Про функції
- •Контрольні запитання
- •Варіанти завдань
- •Лабораторна робота № 16
- •Зразок виконання завдання
- •Контрольні запитання
- •Варіанти завдань
- •Лабораторна робота № 17
- •Прямі лінії – відрізки
- •Оператор circle
- •Малювання прямокутників
- •Коло, дуга, еліпс і сектор
- •Використання кольору
- •Кольори малюнку і фону
- •Колір у текстовому режимі (оператор color)
- •Колір у графіці (оператор color)
- •Вибір значення для параметра фон
- •Зафарбовування областей
- •Ще один метод малювання
- •Відносний рух
- •Обертання
- •Масштабування зображення
- •Колір в операторі draw
- •Текстові змінні в операторі draw
- •Контрольні питання
- •Варіанти завдань
- •Лабораторна робота №18
- •Процедура
- •Використання підпpoгpaм типу SubRoutіne
- •Використання функцій типу def fn
- •Зразок виконання завдання:
- •Контрольні запитання.
- •Варіанти завдань
- •Лабораторна робота № 19
- •Контрольні запитання
- •Варіанти завдань
- •Лабораторна робота № 20
- •Різні способи дocтyпу до файлів
- •Відкриття фaйлa
- •Peжими pобoти з фaйлaми
- •Пpиклад відкриття фaйлa
- •Перегляд та peдaгувaння файла
- •Контрольні запитання
- •Варіанти завдань
Лабораторна робота № 12
Взаємозв’язок індексів у квадратній матриці.
Мета роботи – оволодіння навичками обробки елементів, які розташовані на діагоналях та паралелях до діагоналей квадратної матриці.
Теоретична частина
По аналогії з геометрією, де квадрат має діагоналі, такі ж діагоналі можна умовно проставити в квадратний матриці. Так в квадратній матриці А(N,N) (рис.12. 1) проведено діагоналі, які називаються головною і бічною.
Умова належності елементів до головної діагоналі: i=j або i–j=0 (нижче головної діагоналі i > j; вище головної діагоналі i < j).
Умова належності елементів бічної діагоналі: i + j = N +1 (нижче бічної діагоналі i+j > N+1; вище бічної діагоналі i+j < N+1).
В квадратній матриці можна умовно провести паралелі до головної діагоналі (рис. 12. 2) і до бічної діагоналі (рис. 12. 3):
Елементи, які розташовані на паралелі до головної діагоналі:
1 паралель - A1,4 ( i – j = -3);
2 паралель - A1,3; A2,4 ( i – j = -2);
3 паралель - A1,2; A2,3; A3,4 ( i – j = -1);
Головна діагональ A1,1; A2,2; A3,3; A4,4 ( i – j = 0);
4 паралель - A2,1; A3,2; A4,3 ( i – j = 1);
5 паралель - A3,1; A4,2 ( i – j = 2);
6 паралель - A4,1 ( i – j = 3);
Розглянемо матрицю А(N, N). Неважко побачити, що елементи головної діагоналі мають незмінну різницю індексів. Таку ж властивість мають елементи, які розташовані на паралелях до головної діагоналі (відрізняється тільки значення константи). Знаючи значення константи i – j = z, де z – це число, яке характеризує паралель, можна вибрати елементи діагоналі або будь-якої паралелі.
Звичайно перегляд матриці ми реалізовували подвійним циклом. Якщо потрібно вибрати елементи, що належать до кожної з паралелей, то організується ще один зовнішній цикл. Всі паралелі переглядаються зовнішнім циклом :
паралелі до головної діагоналі, включаючи саму діагональ: FOR Z = 1 - N TO N – 1;
паралелі вище головної діагоналі переглядаються циклом: FOR Z = 1 – N TO - 1;
паралелі нижче головної діагоналі переглядаються циклом: FOR Z = 1 TO N – 1.
Аналогічна ситуація має місце з бічною діагоналлю.
Елементи, які розташовані на паралелі до бічної діагоналі:
1 паралель - A1,1 ( i + j = 2);
2 паралель - A2,1; A1,2 ( i + j = 3);
3 паралель - A3,1; A2,2; A1,3 ( i + j = 4);
Бічна діагональ - A4,1; A3,2; A2,3; A1,4 ( i + j = 5);
4 паралель - A4,2 ;A3,3; A2,4 ( i + j = 6);
5 паралель - A4,3; A3,4 ( i + j = 7);
6 паралель - A4,4 ( i + j = 8);
Елементи бічної діагоналі та паралелі до неї мають незмінну суму індексів, тобто i + j = z, де z – це число, яке характеризує паралель. Якщо треба переглянути елементи в квадратній матриці A(N, N) і вибрати ті з них, які знаходяться:
на всіх паралелях до бічної діагоналі, то організується цикл: FOR Z = 2 TO 2* N ;
на паралелях вище бічної діагоналі, то організується цикл: FOR Z = 2 TO N;
паралелях нижче бічної діагоналі, то організується цикл:
FOR Z = N + 2 TO 2* N .
Застосування цих викладок зрозуміло з наступного прикладу.
Приклад 1. Знайти суму елементів кожної паралелі до головної діагоналі, розташованої нижче головної діагоналі.
'Приклад1
INPUT "Введіть розмірність матриці - N"; N
DIM A(N, N)
PRINT "Введіть масив"
FOR I = 1 TO N
FOR J = 1 TO N
INPUT A(I, J)
NEXT J,I
CLS
PRINT "Початковий масив"
FOR I = 1 TO N
FOR J = 1 TO N
PRINT A(I, J);
NEXT J
NEXT I
FOR Z = 1 TO N - 1
S = 0
FOR I = 1 TO N
FOR J = 1 TO N
IF I - J = Z THEN
S = S + A(I, J)
END IF
NEXT J
NEXT I
PRINT "СУМА="; S
NEXT Z
END
Приклад 2. Задана матриця X(Y,Y). Створити нову квадратну матрицю, усунувши з початкової головну діагональ і останній стовпчик. Надрукувати трикутник елементів нової матриці, які розташовані нижче бічної діагоналі, і знайти добуток елементів цього трикутника.
REM Приклад2. Зменшення розміру матриці
INPUT "Введіть розмірність матриці - Y";Y
DIM X(Y,Y), C(Y-1,Y-1)
PRINT "Введіть масив"
FOR I = 1 TO Y
FOR J = 1 TO Y
INPUT X(I, J)
NEXT J,I
CLS
REM C(Y-1,Y-1) – нова матриця
FOR I=1 TO Y-1
FOR J=1 TO Y-1
IF I>=J THEN С(I,J)=X(I+1,J) ELSE C(I,J)=X(I,J)
NEXT J,I
‘ Друк трикутника
‘ Обчислення добутку
P=1
FOR I=2 TO Y-1
PRINT TAB(70-I)
FOR J=Y-I+2 TO Y-1 ‘ Під бічною діагоналлю
PRINT C(I,J);
P=P*C(I,J)
NEXT J
NEXT I
PRINT "Добуток= "; P
END
Приклад 3. Дано масив C(M,M). Створити одновимірний масив з добутків тієї частини кожного стовпчика, яка знаходиться нижче головної діагоналі.
Розв’язання. Позначимо Y — створюваний одновимірний масив, L — його індекс.
Шуканий масив буде мати розмір M-1, тому, що в останньому (M-тому) стовпчику під діагоналлю елементів немає. Умова розміщення елементів квадратної матриці нижче головної діагоналі: I>J
П рограма
REM Задача
REM Ввід вхідних даних.
INPUT M : DIM C(M,M),Y(M-1)
FOR I=1 TO M : FOR J=1 TO M
INPUT C(I,J)
NEXT J,I
‘Формування та друк масива Y
L=0
FOR J=1 TO M-1
P=1
FOR I=1 TO M
IF I>J THEN P=P+C(I,J)
NEXT I
L=L+1 : Y(L)=P : PRINT Y(L)
NEXT J
END
Зразок виконання завдання
Завдання. Дано масив C(N, N). Знайти мінімальний елемент серед елементів, розташованих під бічною діагоналлю. З елементів, розташованих на паралелі, розташованій безпосередньо під головною діагоналлю, створити одновимірний масив D. Програма подана нижче, а відповідна блок-схема зображена на рис. 12.4
CLS
'Лабораторна робота № 12. Робота з двовимірними масивами
INPUT "Введіть розмір масиву -N";N
DIM C(N, N), D(N - 1)
MIN = 1E+20
K = 0
FOR I = 1 TO N:FOR J = 1 TO N: INPUT C(I, J): NEXT J, I
CLS
PRINT "Вхідний масив"
FOR I = 1 TO N:FOR J = 1 TO N: PRINT C(I, J): NEXT J, I
PRINT "Зформований масив"
FOR I = 1 TO N
FOR J = 1 TO N
' Знаходження мінімального елементу серед елементів,
' розташованих під бічною діагоналлю,
IF I+J > N+1 AND C(I,J) < MIN THEN MIN = C(I,J)
' Створення одновимірного масиву D(K) з елементів,
' Розташованих на паралелі під головною діагоналлю
IF I - J = 1 THEN
K = K + 1
D(K) = C(I, J)
PRINT D(K);
END IF
NEXT J
NEXT I
PRINT "Мінімальний елемент -"; MIN
END