Проект «Учень, яквчений» Тема « Алгоритми з використанням двовимірних масивів » для реалізації в рамках курсу інформатики, 11 клас Підготував: Ол. Зінчук
Щодо таблиць Таблицямноження, представлена в матричній формі, називається Матриця Піфагора А як нею користуватися? За яким алгоритмом виходять значення в матриці Піфагора? Передбачувана відповідь учнів – номер стовпця потрібно помножити на номер рядка
Формалізація Давайте формалізуємопостановку нашої задачі Яким типом даних в 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. А при виведенні на екран значення кожного елемента піднесіть до квадрату
Список джерел КаравановаТ. Основи алгоритмізації. Мова програмування Паскаль: Посібник з інформатики. – Чернівці, 1997. – 216с. Рюттен Т., Франкен Г. Турбо Паскаль 7.0. – К.: BHV , 1999. – 448с. Остер Г. Задачник. – М.: Росмэн, 1998. – 128с.