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

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


Класичні алгоритми роботи з одновимірними масивами (пошук заданого елемента в масиві, пошук мінімального або максимального елемента масиву).


Мета.

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

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

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

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

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

План

  1. Введення в тему.
  2. Логічні вирази та логічні операції, таблиці істиності.
  3. Практичні завдання.
  4. Типові запитання до уроку.
  5. Домашнє завдання.

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

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

Хід уроку


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

  1. Наявність.
  2. Питання.
  3. Випадковим чином заповнити цілочисловий одновимірний масив А, що складається з десяти елементів, та вивести його значення на екран монітора:

        1) в рядок;                        2) у стовпчик.

program mas;

Var A: Array[1..10] of integer;

begin

Randomize;

For і:= 1 то 10  Do А[і]:= Random (100);

For і := 1 То N  Do Write (А[і]: 5);

For і := 1 То N  Do WriteLn (А[і]: 5);

end.


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

  1. Дайте означення масиву як структурованого виду даних.
  2. Який з операторів циклу зручніше використовувати для послідов­ного звернення до кожного елемента масиву?
  3. Як ввести значення елементів одновимірного масиву з клавіатури?
  4. Як організувати заповнення масиву випадковими числами?
  5. В якому випадку має місце задания значень елементів масиву за формулами?
  6. Як вивести на екран значення елементів одновимірного масиву?
  7. Опишіть масив:

а) Аз 3 дійсних чисел;

б) В з 10 символів;

в) А, який може вміщувати такі значень: (10, 5, 8.2, 3, 5, -5.1).

  1. Елементам масиву В потрібно задати значення: (100,90, 80,..,10). Задайте значення масиву В:

а) за допомогою масиву-константи;

б) з клавіатури;

в) за формулою.

  1. Запишіть оператор присвоєння, який виконує таку дію:

а) 1-му елементу масиву С присвоїти значення суми 3-го та 5-го

елементів;

б) 6-му елементу масиву С присвоїти значення подвоєного добут-

ку 1-го і 2-го елементів.

  1. Дано масив А: (2, 4, 6, 8, 10). Яких значень набудуть елементи ма­сиву після виконання таких операторів:

А[1 ] := А[2] + А[3];        А[4] := А[1 ] * А[5];

  1. Задайте значення елементам масиву А за допомогою формули таким чином: (1, 4, 9, 16, 25, 36, 49, 64, 81, 100). Виведіть значення масиву на екран у вигляді рядка чисел.
  2. Масиви А, В, С описані таким чином:

VarA,B: Array[1..5] of Real; С: Array[1..5] of Real;

T: Boolean;

У яких командах правильно виконуються дії над масивами?

а) А:=В;           б) В:= С;           в) А[1]:=В[2]+С[5];

г) Т:=А=В;        д) Т:=А<>С;        є) ReadLn (А);


3. Мотивція.

Розв'язування багатьох прикладних задач, які потребують об­робки сукупності числових або символьних значень, базується на простіших задачах опрацювання масивів: обчислення суми (добут­ку) елементів масиву; знаходження найбільшого елемента; упорядкування елементів за зростанням (спаданням) тощо. Алгори­тми розв'язування базових задач опрацювання масивів побудовані на послідовному перегляді елементів масиву і виконанні певних дій з кожним елементом.


4. Класичні алгоритми роботи з одновимірними масивами.

Завдання:

Проаналізуйте за таблицею прийоми розв'язування задач на дії з масивами і знайдіть значення змінних після виконання наведених фрагментів:


5. Приклади розв’язування задач.

Приклад 1.

В масиві А зберігається 50 чисел. Фрагмент програми, призначений для знаходження середнього арифметично­го (Sr : Real) цих чисел:

Sr:=0;

For і:=1 То 50 Do Sr:=Sr+A;

Sr:=Sr / і;

WriteLn (Sr : 5 : 2);

Приклад 2.

Дано 50 чисел. Фрагмент для визначення, скільки серед них чисел, що відрізняються від останнього числа:

к:=0;

For і:=1        То 49  Do if А[і]<>А[50] Then К:=К+1;

WriteLn (К);

Приклад 3.

Дано 100 чисел. Надрукувати спочатку всі ві­д'ємні з них, а потім - всі інші.

For і:=1 То 100 Do If А[і]<0 Then WriteLn (A[i]);

For i:=1 To 100 Do If A[i]>=0 Then WriteLn (A[i]);


6. Створення та реалізація програми.

Задача 1.

Дана послідовність з N чисел (2<N<100). Визначити, скільки серед них пар однакових чисел, що стоять поруч.

 Вхідні дані. Вводиться спочатку число N, а потім N чисел -членів послідовності.

 Вихідні дані. Виводиться кількість пар однакових чисел, що стоять поруч.

 

  1. Опис величин. За умовою задачі 2</V<100. Тому опишемо масив таким чином:

Var Posl: Array [1..100] of integer;

Опишіть змінні N - кількість елементів в послідовності; К - шу­кана кількість пар чисел; і  - змінна для збереження індексу елемента масиву:

N, К, і: integer;

  1. Організація введення даних. Задания кількості елементів послідовності:

Write ('N =>'); ReadLn (N);

Введення значень елементів масиву з клавіатури:

For і:= 1 То N Do ReadLn (Posl [і]);

  1. В циклі перебираємо елементи масиву Posl від 1-го до (N-1)-ro і, якщо елемент Posl [і] дорівнює елементу Posl [І+1], збільшу­ємо значення К на 1:

For І:=1 ТО N - 1 DO

if Posl [і] = Posl [і+1] Then к:= К + 1;

WriteLn ('к = *, К);

  1. Нехай нам потрібно ще й виводити на екран номери, під якими поруч стоять рівні елементи. Додамо до операторів, які ви­конуються в разі виконання умови Posl [і] = Posl [і+1], оператор виведення індексів і та і+1:

If Posl [і] = Posl [і+1] Then Begin К:= К + 1;

WriteLn (і: 3, і+1: 3); End;

  1. Виконайте програму для значень N=8, чисел (1 2 3 3 2 1 1 1). Проаналізуйте результати виконання програми.
  2. Ускладнимо задачу. Нехай нам потрібно визначити, скільки всього в послідовності пар однакових чисел. Алгоритм пошуку пар рівних чисел такий: для кожного елемента масиву Posl [і] від 1-го до (TV-l)-ro, переглядаємо всі праворуч розташовані елементи Posl [j] (j=i+1..N). Якщо Posl [і] = Posl [j], збі­льшуємо значення К на 1 і виводимо значення індексів і та j:

К: = 0;

For і:= 1 То N-l Do

    For J: = 1+1 То N Do

           If Posl[I] = Posl [J] Then Begin

                    K:=K+1;

                    WriteLn (1:3, 3:3);

            End;

WriteLn ('K=',K);

Виконайте програму для значень N=8, чисел   (1 2 3 3 2 1 1 1). Проаналізуйте результати виконання програми.

Задача 2.

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

1

2

3

4

5

6

7

8

9

10

11

12

54

12

30

15

40

32

10

20

46

60

56

38

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

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

Type Tabl = Аггау[1..12] of integer; Var A: Tabl;

Const B: Tabl = (54,13,30,15,40,32,10,20,46,60,56,38); Begin A:= B;

  1. Визначте кількість опадів протягом року.
  2. Визначте номери місяців, коли кіль мольною та мінімальною.
  3. Виведіть на екран номери міся­ців, коли кількість опадів була меншою за 40, порахуйте їх кількість.
  4. Припустимо, що при занесенні да­них до таблиці було допущено помилку. Потрібно знайти максимальний елемент масиву і переставити його місцями з першим елементом. Внесіть у програму відповідні зміни і виведіть масив на екран.

Для розв'язування завдання можна використати фраг­мент програмного коду:

{пошук максимального елемента}

мах :=А[1]; К:=1;

For і:=2 То 12 Do If А[і]>мах Then Begin

    Мах:=А[і]; К:=і;

End;

{обмін значеннями між комірками}

С:=А[К];  А[К]:=А[1];  А[1]:=С;


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

  1. Дано масив А: (3, 8, 5, 7, 6). Виконайте дії над елементами масиву.

Дано масив А[1..5]. Запишіть оператори, які виконують такі дії:

7. ввести з клавіатури значення елементів масиву;

8. вивести на екран значення елементів масиву;

9. знайти добуток елементів масиву;

10. знайти мінімальний елемент масиву;

11. знайти кількість додатних елементів;

12. знайти суму від'ємних елементів.


8. Підсумок уроку.


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

  1. Вивчити конспект.
  2. Дано одновимірний масив цілих чисел А[і],  де і = і, 2, …n. Вивести значення елементів масиву:

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

2)  з парними індексами;

3)  з непарними індексами;

4)   що є недодатними числами;

5)   що є невід'ємними числами;

6)  що є парними числами;

7)   що є непарними числами.