Published using Google Docs
Інформатика 10 (АП) Урок 65
Updated automatically every 5 minutes

Урок 65                                                                         Інформатика (АП)


Двовимірні масиви. Описання двовимірних масивів. Способи заповнення та виведення на екран елементів двовимірного масиву. Робота з двовимірними масивами.


Мета.

Навчальна. Ознайомити учнів з двовимірними масивами, описання двовимірних масивів, способи заповнення та виведення на екран елементів двовимірного масиву, робота з двовимірними масивами.

Розвиваюча. Розвивати логічне мислення, навички створення програм, самостійність, вміння застосовувати набуті знання до практичних завдань.

Виховна. Виховувати наполегливість, естетичність у оформленні, грамотно висловлювати свої думки.

Тип уроку. Засвоєння нових знань і навичок.

Матеріали для роботи з учнями:

План

  1. Перевірка домашнього завдання.
  2. Актуалізація опорних знань.
  3. Вивчення нового матеріалу.
  4. Практичні завдання.
  5. Типові запитання до уроку.
  6. Домашнє завдання.

Пам’ятка для учня!

  1. Пригадайте правила техніки безпеки при роботі з ПК.
  2. Через кожні 15 хв. виконуйте вправи для очей та для зняття м’язової втоми.

Хід уроку


1. Перевірка домашнього завдання.

  1. Наявність.
  2. Питання.

2. Актуалізація опорних знань.

  1. У чому полягає сутність методу сортування вибором максимального елемента ?
  2. У чому полягає сутність методу сортування «бульбашкою»?
  3. Як скоротити кількість проходів по масиву при сортуванні мето­дом «бульбашки»?
  4. Дано фрагмент програми, призначений для розв 'язування такої задачі:

У масиві А [1.. 10] переставити місцями елементи, що сто­ять на парних і непарних, місцях: А[1] <-> А[2], …, А[9] <-> А[10]. Заповніть пропуски в тексті програмного коду.

While 1<=... Do Begin

С:=А[і];

А[і]:=А[... ];

А[... ]:=С;

і:=...

     End;

  1. Де може стояти найбільший елемент масиву, якщо масив не упо­рядковано?
  2. Де може стояти найменший елемент масиву, якщо масив упоряд­ковано за зростанням? за спаданням?
  3. Для кожної пари сусідніх елементів масиву А виконується операція

S:=S + Byte (А[і] >= А[і+1 ])        (Byte (True) = 1; Byte (False) = 0)

Початкове значення S дорівнює 0. Чому дорівнює кінцеве значення S, якщо вхідний масив було:

а) упорядковано за зростанням;

б) упорядковано за спаданням;

в) не упорядковано?

Запишіть фрагмент програмного коду, призначений для виконан­ня таких дій:

  1. Найбільший елемент послідовності з 10 чисел замінити нулем.
  2. Переставити місцями перший і найбільший елементи послідовно­сті з 10 чисел.
  3. Найбільший і найменший елементи масиву з 10 елементів за­мінити середнім арифметичним найбільшого і найменшого елементів.
  4. Упорядкувати масив з 10 чисел за незростанням методом вибору найменшого елемента.
  5. Структуруйте запис:

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;

Надання значень елементам масиву

  1. Введення елементів масиву A[1..N,1..M] з клавіатури:

For і:=1 to N do

     For j:=l tо М do ReadLn (A[i,j]);

  1. Задання значень за допомогою масиву-константи:

Приклад 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));

  1. Заповнення масиву випадковими числами:

Randomize;

For і:=1 то N Do

     For j:=l То М Do A[i,j]:=Random(X);

  1. Задания за допомогою формул:

Приклад 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.

Дана таблиця “Розклад занять”:

Скласти програму опрацювання даної таблиці.

  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:= А;

  1. Виведення масиву В на екран у вигляді прямокутної таблиці:

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;

  1. Перенесіть в понеділок першу пару занять на четверту:

B[1,4]:= B[1,1]; B[1,1]:= ‘_’;

  1. Повторіть виведення масиву В на екран для того, щоб побачити зміни у масиві. Фрагмент програми, призначений для друкуван­ня масиву, зручно скопіювати. Для копіювання фрагменту виконайте послідовність дій:

 

  1. Відмініть одним циклом заняття в суботу в зв'язку зі спортив­ними змаганнями. Виведіть масив В на екран.
  2. Одним циклом змініть розклад так, щоб протягом усього тижня третіми парами були заняття з інформатики. Виведіть масив В на екран.

Задача 2.

  1. Дана програма, що заповнює двовимірний масив А[6,6] ви­падковими числами і виводить його на екран.

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. Додайте до програми обчислення суми елементів заданого рядка або заданого стовпця. Забезпечте вибір рядка або стовпця за допомогою меню.

Наша програма повинна пропонувати вибір у формі:

Обчислення:

1  - Сума рядка

2  - Сума стовпця Ваш вибір (1/2) : _

Результат нашого вибору (значення 1 чи 2) зберігатиметь­ся у змінній Vibir. Додайте її опис до розділу Var.

Запишіть оператори введення/виведення, що забезпе­чують такий діалог програми з користувачем.

WriteLn ('Обчислення: ');

WriteLn ('1 - Сума рядка ');

WriteLn ('2 - Сума стовпця ');

Write ('Ваш вибір (1/2) : ');

ReadLn (Vibir);

  1. Обчислення суми рядка або стовпця зручно організувати за допомогою оператора Case:

Case Vibir of

    1: Begіn <Обчислення суми рядка з номером N>         End;

    2: Begіп <Обчислення суми стовпця з номером М> End;

    Else WriteLn ('Такого варіанту немає');

End;

  1. Обчислення суми рядка з номером N може бути організова­не у такий спосіб:

write ("Номер рядка : '); ReadLn (N);

S:= 0;

For j:= 1 To 6 Do S:= S + A[N, j];

WriteLn ('Сума  ’, N, '-го рядка дорівнює’, S);

За аналогією запишіть оператори знаходження суми стовпця з номером М.

  1. Додайте до програмного коду опис одновимірного масиву В[1..6]. Внесемо у програму зміни таким чином, щоб елеме­нти масиву В отримали значення максимальних елементів стовпців масиву А.

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;

  1. Додайте до програмного коду заповнення масиву В значен­нями мінімальних елементів рядків масиву А. Виведіть масив В на екран.


6. Питання до уроку.

  1. Опишіть двовимірний масив Т з 5 рядків та 8 стовпців, елемента­ми якого є дійсні числа.
  2. Запишіть оператори введення значень масиву Т з клавіатури.
  3. Опишіть двовимірний масив А з 4 рядків та 6 стовпців, елемен­тами якого є цілі числа.
  4. Запишіть оператори виведення значень масиву А на екран.
  5. Назвіть елементи головної діагоналі даної таблиці:

  1. Як по відношенню до головної діагоналі розміщені елементи, у яких l<J? I>J? Назвіть елементи таблиці з п.5, для яких l<J.
  2. Дані з таблиці п.5 занесені до масиву А. Який вигляд матиме масив А після виконання фрагмента:

А[2,1]:= А[3,2]+ А[2,2ГА[3,4];

і:=3; j:=2; A[3,4]:=A[i,J] + A[i,j+1];

  1. Визначте, який вигляд має таблиця А[4,5], якщо:

а)   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] =

  1.  Запишіть фрагмент програми, що дозволяє створити масив:

  1. Знайдіть суму елементів головної діагоналі масиву А(4х4).
  2. Знайдіть максимальний елемент 2-го стовпця масиву А(5х4).
  3. Знайдіть середнє арифметичне елементів 1-го рядка масиву А (6x6).


7. Домашнє завдання.

  1. Вивчити конспект.
  2. Виконайте завдання:

  1. Опишіть одновимірний масив зі 100 елементів, що містить бук­ви латинського алфавіту.
  2. Масив описаний у такий спосіб: Var A:array [0..10] of byte;

Дайте оцінку (правильно чи ні) таким операторам:

а) А[12]:=3;  б) А[10] :=10;   в)А[1]:=3.5;   г) А[2] := -20.

  1. Var A:array [1..10] of byte;

Напишіть оператор, що присвоїть 5-му елементу масиву 0, якщо він за модулем більший за свій індекс, інакше замінить його значення кількістю елементів масиву А.

  1. Запишіть програму для пошуку максимального елементу в ма­сиві А[1. .10].
  2. Складіть програму опрацювання таблиці значень середньодо­бової температури за лютий 2006 року. Дані таблиці задайте як значення масиву-константи. Програма повинна визначати, у які дні була додатна температура і знаходити середньомісячне зна­чення температури.
  3. Опишіть двовимірний масив з 4 рядків та 5 стовпців, елемен­тами якого є дійсні числа.
  4. Який вигляд має масив А, якщо він заповнений в такий спосіб:

For І:=1 То 5 Do For j:=l То 5 Do

If i<=j Then A[i,i]:=j Else A[i,j]:=0;

  1. Для масиву A(4x4) запишіть оператор, який виконує знахо­дження суми елементів 2-го рядка.
  2. Для масиву А(4х4) запишіть оператор, який виконує знахо­дження середнього арифметичного значення елементів 3-го стовпця.
  3. Для масиву А(4х4) запишіть оператор, який виконує знахо­дження максимального значення серед елементів головної діагоналі.

Практичне завдання. Складіть програму для виконання дій над масивом А, якому за допомогою масиву-константи нада­ти значення з таблиці:

  1. Знайдіть і виведіть на екран значення сум модулів елементів кожного стовпця.
  2. Знайдіть і виведіть на екран середнє арифметичне значення найбільших елементів кожного рядка.