Проект «Учень, як вчений» Тема « Алгоритми з використанням двовимірних масивів » для реалізації в рамках курсу інформатики, 11 клас Підготував: Ол. Зінчук
Постановка задачі Що це таке?   (Учні відповідають: таблиця множення) 9х2=18 9х3=27 9х4=36 9х5=45 9х6=54 9х7=63 9х8=72 9х9=81 9х10=90 8х2=16 8х3=24 8х4=32 8х5=40 8х6=48 8х7=56 8х8=64 8х9=72 8х10=80 7х2=14 7х3=21 7х4=28 7х5=35 7х6=42 7х7=49 7х8=56 7х9=63 7х10=70 6х2=12 6х3=18 6х4=24 6х5=30 6х6=36 6х7=42 6х8=48 6х9=54 6х10=60 5х2=10 5х3=15 5х4=20 5х5=25 5х6=30 5х7=35 5х8=40 5х9=45 5х10=50 4х2=8 4х3=12 4х4=16 4х5=20 4х6=24 4х7=28 4х8=32 4х9=36 4х10=40 3х2=6 3х3=9 3х4=12 3х5=15 3х6=18 3х7=21 3х8=24 3х9=27 3х10=30 2х2=4 2х3=6 2х4=8 2х5=10 2х6=12 2х7=14 2х8=16 2х9=18 2х10=20
Постановка задачі Як Ви думаєте, а це що?  (Відповідь: таблиця множення, але в іншому вигляді) 81 72 63 54 45 36 27 18 9 72 64 56 48 40 32 24 16 8 63 56 49 42 35 28 21 14 7 54 48 42 36 30 24 18 12 6 45 40 35 30 25 20 15 10 5 36 32 28 24 20 16 12 8 4 27 24 21 18 15 12 9 6 3 18 16 14 12 10 8 6 4 2 9 8 7 6 5 4 3 2
Щодо таблиць Таблиця множення, представлена в матричній формі, називається Матриця Піфагора А як нею користуватися? За яким алгоритмом виходять значення в матриці Піфагора? Передбачувана відповідь учнів – номер стовпця потрібно помножити на номер рядка
Завдання Сформувати засобами мови програмування  Pascal  матрицю Піфагора і вивести її на екран монітора
Формалізація Давайте формалізуємо постановку нашої задачі Яким типом даних в  Pascal , можна представити матрицю Піфагора? Передбачувана відповідь учнів – двовимірним масивом. В яких числових межах будуть змінюватися індекси цього двовимірного масиву? I – Номер рядка від 2 до 9, J – Номер стовпця так само від 2 до 9. Яка формула буде використовуватися для заповнення елементів двовимірного масиву?  Передбачувана відповідь учнів – a[I,J] := I*J. Таким чином, формалізована постановка задачі: Дано двовимірний масив, номери рядків і стовпців якого змінюються від 2 до 9. Заповнити даний масив за формулою I*J і вивести значення його елементів на екран по рядках.
Етапи побудови програми Описати двовимірний масив A (індекси рядків змінюються від 2 до 9, індекси стовпців змінюються від 2 до 9) і змінні для індексів I, J. Заповнити масив за формулою A[I,J]:=I*J. Вивести на екран двовимірний масив А порядково.
Програма uses  crt; var a:   array [2..9,2..9]  of  integer; i,   j:   integer; begin clrscr; for  i:=2  to  9  do for  j:=2  to  9  do a[i,j]:=i*j; for  i:=2  to  9  do begin for  j:=2  to  9  do write(a[i,j]:3); writeln; end ; readkey end .
Увага Зверніть увагу, що ми спочатку для заповнення використовуємо два цикли, причому один цикл вкладений в іншій. Потім точно такі ж цикли використовуємо для виведення значень елементів масиву.
Оптимізація алгоритму Чи можна оптимізувати алгоритм? Для оптимізації алгоритму можна дані вкладені цикли використовувати тільки один раз, а не два. Для цього потрібно після обчислення значення елемента масиву, здійснити його вивід на екран. Тим самим кількість рядків алгоритму не зміниться, але скоротиться час виконання програми, що є в програмуванні дуже важливим.
Оптимізація for  i:=2  to  9  do begin for  j:=2  to  9  do begin a[i,j]:=i*j; write(a[i,j]:3); end ; writeln; end ; for  i:=2  to  9  do for  j:=2  to  9  do a[i,j]:=i*j; for  i:=2  to  9  do begin for  j:=2  to  9  do write(a[i,j]:3); writeln; end ; Оптимізований фрагмент програми Фрагмент програми
Працюємо самостійно Змініть програму так, щоб вийшла матриця, елементи якої задавалися б формулою   i+j Змініть програму так, щоб отримати матрицю, елементи якої задавалися б формулою 2 j + 3 Змініть програму так, щоб двовимірний масив заповнювався випадковими значеннями з діапазону від 1 до 9. А при виведенні на екран значення кожного елемента піднесіть до квадрату
Практична робота Виконайте практичну роботу №18 Обробка даних масивів
Список джерел Караванова Т. Основи алгоритмізації. Мова програмування Паскаль: Посібник з інформатики. – Чернівці, 1997. – 216с. Рюттен Т., Франкен Г. Турбо Паскаль 7.0. – К.:  BHV , 1999. – 448с. Остер Г. Задачник. – М.: Росмэн, 1998. – 128с.

Учень, як вчений

  • 1.
    Проект «Учень, яквчений» Тема « Алгоритми з використанням двовимірних масивів » для реалізації в рамках курсу інформатики, 11 клас Підготував: Ол. Зінчук
  • 2.
    Постановка задачі Щоце таке? (Учні відповідають: таблиця множення) 9х2=18 9х3=27 9х4=36 9х5=45 9х6=54 9х7=63 9х8=72 9х9=81 9х10=90 8х2=16 8х3=24 8х4=32 8х5=40 8х6=48 8х7=56 8х8=64 8х9=72 8х10=80 7х2=14 7х3=21 7х4=28 7х5=35 7х6=42 7х7=49 7х8=56 7х9=63 7х10=70 6х2=12 6х3=18 6х4=24 6х5=30 6х6=36 6х7=42 6х8=48 6х9=54 6х10=60 5х2=10 5х3=15 5х4=20 5х5=25 5х6=30 5х7=35 5х8=40 5х9=45 5х10=50 4х2=8 4х3=12 4х4=16 4х5=20 4х6=24 4х7=28 4х8=32 4х9=36 4х10=40 3х2=6 3х3=9 3х4=12 3х5=15 3х6=18 3х7=21 3х8=24 3х9=27 3х10=30 2х2=4 2х3=6 2х4=8 2х5=10 2х6=12 2х7=14 2х8=16 2х9=18 2х10=20
  • 3.
    Постановка задачі ЯкВи думаєте, а це що? (Відповідь: таблиця множення, але в іншому вигляді) 81 72 63 54 45 36 27 18 9 72 64 56 48 40 32 24 16 8 63 56 49 42 35 28 21 14 7 54 48 42 36 30 24 18 12 6 45 40 35 30 25 20 15 10 5 36 32 28 24 20 16 12 8 4 27 24 21 18 15 12 9 6 3 18 16 14 12 10 8 6 4 2 9 8 7 6 5 4 3 2
  • 4.
    Щодо таблиць Таблицямноження, представлена в матричній формі, називається Матриця Піфагора А як нею користуватися? За яким алгоритмом виходять значення в матриці Піфагора? Передбачувана відповідь учнів – номер стовпця потрібно помножити на номер рядка
  • 5.
    Завдання Сформувати засобамимови програмування Pascal матрицю Піфагора і вивести її на екран монітора
  • 6.
    Формалізація Давайте формалізуємопостановку нашої задачі Яким типом даних в Pascal , можна представити матрицю Піфагора? Передбачувана відповідь учнів – двовимірним масивом. В яких числових межах будуть змінюватися індекси цього двовимірного масиву? I – Номер рядка від 2 до 9, J – Номер стовпця так само від 2 до 9. Яка формула буде використовуватися для заповнення елементів двовимірного масиву? Передбачувана відповідь учнів – a[I,J] := I*J. Таким чином, формалізована постановка задачі: Дано двовимірний масив, номери рядків і стовпців якого змінюються від 2 до 9. Заповнити даний масив за формулою I*J і вивести значення його елементів на екран по рядках.
  • 7.
    Етапи побудови програмиОписати двовимірний масив A (індекси рядків змінюються від 2 до 9, індекси стовпців змінюються від 2 до 9) і змінні для індексів I, J. Заповнити масив за формулою A[I,J]:=I*J. Вивести на екран двовимірний масив А порядково.
  • 8.
    Програма uses crt; var a: array [2..9,2..9] of integer; i, j: integer; begin clrscr; for i:=2 to 9 do for j:=2 to 9 do a[i,j]:=i*j; for i:=2 to 9 do begin for j:=2 to 9 do write(a[i,j]:3); writeln; end ; readkey end .
  • 9.
    Увага Зверніть увагу,що ми спочатку для заповнення використовуємо два цикли, причому один цикл вкладений в іншій. Потім точно такі ж цикли використовуємо для виведення значень елементів масиву.
  • 10.
    Оптимізація алгоритму Чиможна оптимізувати алгоритм? Для оптимізації алгоритму можна дані вкладені цикли використовувати тільки один раз, а не два. Для цього потрібно після обчислення значення елемента масиву, здійснити його вивід на екран. Тим самим кількість рядків алгоритму не зміниться, але скоротиться час виконання програми, що є в програмуванні дуже важливим.
  • 11.
    Оптимізація for i:=2 to 9 do begin for j:=2 to 9 do begin a[i,j]:=i*j; write(a[i,j]:3); end ; writeln; end ; for i:=2 to 9 do for j:=2 to 9 do a[i,j]:=i*j; for i:=2 to 9 do begin for j:=2 to 9 do write(a[i,j]:3); writeln; end ; Оптимізований фрагмент програми Фрагмент програми
  • 12.
    Працюємо самостійно Змінітьпрограму так, щоб вийшла матриця, елементи якої задавалися б формулою  i+j Змініть програму так, щоб отримати матрицю, елементи якої задавалися б формулою 2 j + 3 Змініть програму так, щоб двовимірний масив заповнювався випадковими значеннями з діапазону від 1 до 9. А при виведенні на екран значення кожного елемента піднесіть до квадрату
  • 13.
    Практична робота Виконайтепрактичну роботу №18 Обробка даних масивів
  • 14.
    Список джерел КаравановаТ. Основи алгоритмізації. Мова програмування Паскаль: Посібник з інформатики. – Чернівці, 1997. – 216с. Рюттен Т., Франкен Г. Турбо Паскаль 7.0. – К.: BHV , 1999. – 448с. Остер Г. Задачник. – М.: Росмэн, 1998. – 128с.