Урок 65 Інформатика (АП)
Двовимірні масиви. Описання двовимірних масивів. Способи заповнення та виведення на екран елементів двовимірного масиву. Робота з двовимірними масивами.
Мета.
Навчальна. Ознайомити учнів з двовимірними масивами, описання двовимірних масивів, способи заповнення та виведення на екран елементів двовимірного масиву, робота з двовимірними масивами.
Розвиваюча. Розвивати логічне мислення, навички створення програм, самостійність, вміння застосовувати набуті знання до практичних завдань.
Виховна. Виховувати наполегливість, естетичність у оформленні, грамотно висловлювати свої думки.
Тип уроку. Засвоєння нових знань і навичок.
Матеріали для роботи з учнями:
План
Пам’ятка для учня!
Хід уроку
1. Перевірка домашнього завдання.
2. Актуалізація опорних знань.
У масиві А [1.. 10] переставити місцями елементи, що стоять на парних і непарних, місцях: А[1] <-> А[2], …, А[9] <-> А[10]. Заповніть пропуски в тексті програмного коду.
While 1<=... Do Begin
С:=А[і];
А[і]:=А[... ];
А[... ]:=С;
і:=...
End;
S:=S + Byte (А[і] >= А[і+1 ]) (Byte (True) = 1; Byte (False) = 0)
Початкове значення S дорівнює 0. Чому дорівнює кінцеве значення S, якщо вхідний масив було:
а) упорядковано за зростанням;
б) упорядковано за спаданням;
в) не упорядковано?
Запишіть фрагмент програмного коду, призначений для виконання таких дій:
For i:=1 То 3 Do Begin For j:=1 То 2 Do Write[j:2]; WriteLn End;
Запишіть протокол роботи циклів.
3. Вивчення нового матеріалу.
Опис змінних типу Двовимірний масив
Двовимірним масивом називається прямокутна таблиця, у якій N рядків і М стовпців.
Елемент, розташований на перетині і-рядка і j -го стовпця масиву А, позначається А[і,j].
Приклад 1.
Дана таблиця:
Елементи головної діагоналі - це елементи двовимірного масиву, для яких і = j.
Описати змінну типу двовимірний масив можна трьома способами:
Type Mas=Array[l. .N,1. .М] of <тип елементів>;
Var A:Mas;
де N - кількість рядків,
М - стовпців.
Var А: Аrrау[1. .N,1. .М] of <тип елементів>;
Var A: Array[l..N] Of Array [1..М] of <тип елементів>;
Приклад 2.
Таблицю з прикладу 1 можна описати таким способом:
Type Mas=Array[l..3, 1..4] of Real; var A: Mas;
або
Var A: Array[1..3, 1..4] of Real;
Надання значень елементам масиву
For і:=1 to N do
For j:=l tо М do ReadLn (A[i,j]);
Приклад 3.
Type Tabl = Аrrау [1. .3,1. .4] of Real;
Const В:Таbl= ((7,2,3,34),(4,5,0,-3),(1,3,8,1.2));
Randomize;
For і:=1 то N Do
For j:=l То М Do A[i,j]:=Random(X);
Приклад 4.
Таблиця Піфагора:
For і:=1 То 10 Do
For j:=1 Tо 10 Do А[і,j]:=i*j;
Друкування двовимірних масивів
При виведенні двовимірного масиву на екран важливо, щоб елементи масиву утворювали прямокутну таблицю. Тому елементи масиву друкуються по рядках.
Приклад 5.
Друкування масиву A [I..N, 1..М].
Для кожного з N рядків повторюються дії: надрукувати М елементів рядка і перевести курсор на наступний рядок.
For і:=1 То N Do Begin
For j:=l To M Do write (A[i,j]:5);
WriteLn
End;
4. Створення та реалізація програми.
Задача 1.
Дана таблиця “Розклад занять”:
Скласти програму опрацювання даної таблиці.
Туре Tab=Аrrау[1..6,1..4] of String[3];
Const A:Tab=(
(‘ІНФ’,’ГЕ0’,’Ф.В’,’_'), (‘ХІМ’,’ІСТ’,’ВАЛ’,’_'),
(‘ФIЗ’,’AЛГ’,’БIO’,’_’), (‘lHM’,’ЛІT’,’XIM’,’_’),
(‘Ф.B’,’AЛГ’,’УKP’,’_’), (‘ДПЮ’,’ФIЗ’,’ICT’,’_’));
Опишіть змінну В типу Tab і присвойте їй значення масиву-константи А:
Var В: Tab;
Begin B:= А;
WriteLn ('Розклад' :40);
For і:=1 То 4 Do Write (і : 15); WriteLn;
For і:=1 То 6 Do Begin
Write (і);
For j:=1 To 6 Do Write (B[i,j]:5);
WriteLn
End;
B[1,4]:= B[1,1]; B[1,1]:= ‘_’;
Задача 2.
Var A: Array [1..5, 1..6] of Integer;
і: integer;
Begin
Randomize;
For і:=1 To 5 Do Begin
For j:=l To 6 Do Begin A[i,j]:= Random(20);
Write (B[i, j]: 4) End;
WriteLn
End;
Наша програма повинна пропонувати вибір у формі:
Обчислення:
1 - Сума рядка
2 - Сума стовпця Ваш вибір (1/2) : _
Результат нашого вибору (значення 1 чи 2) зберігатиметься у змінній Vibir. Додайте її опис до розділу Var.
Запишіть оператори введення/виведення, що забезпечують такий діалог програми з користувачем.
WriteLn ('Обчислення: ');
WriteLn ('1 - Сума рядка ');
WriteLn ('2 - Сума стовпця ');
Write ('Ваш вибір (1/2) : ');
ReadLn (Vibir);
Case Vibir of
1: Begіn <Обчислення суми рядка з номером N> End;
2: Begіп <Обчислення суми стовпця з номером М> End;
Else WriteLn ('Такого варіанту немає');
End;
write ("Номер рядка : '); ReadLn (N);
S:= 0;
For j:= 1 To 6 Do S:= S + A[N, j];
WriteLn ('Сума ’, N, '-го рядка дорівнює’, S);
За аналогією запишіть оператори знаходження суми стовпця з номером М.
For j:= 1 То 6 Do Begin
Мах:= A[l, j];
For:= 2 То 5 Do
If мах < A[i, j] Then Max := A[i, j];
B[j]:= Max;
End;
{виведення значень масиву В на екран}
For j:= 1 То б Do Write (B[j]:3); WriteLn;
6. Питання до уроку.
А[2,1]:= А[3,2]+ А[2,2ГА[3,4];
і:=3; j:=2; A[3,4]:=A[i,J] + A[i,j+1];
а) A[i,j]=i; в) A[i,j]=max{i,j}; д) A[i,j]=|i-j|;
б) A[i,j]=1; г) A[i,j]=min{i,j}; e) A[i,j] =
7. Домашнє завдання.
Дайте оцінку (правильно чи ні) таким операторам:
а) А[12]:=3; б) А[10] :=10; в)А[1]:=3.5; г) А[2] := -20.
Напишіть оператор, що присвоїть 5-му елементу масиву 0, якщо він за модулем більший за свій індекс, інакше замінить його значення кількістю елементів масиву А.
For І:=1 То 5 Do For j:=l То 5 Do
If i<=j Then A[i,i]:=j Else A[i,j]:=0;
Практичне завдання. Складіть програму для виконання дій над масивом А, якому за допомогою масиву-константи надати значення з таблиці: