1. Проект «Учень, як вчений» Тема « Алгоритми з використанням двовимірних масивів » для реалізації в рамках курсу інформатики, 11 клас Підготував: Ол. Зінчук
6. Формалізація Давайте формалізуємо постановку нашої задачі Яким типом даних в Pascal , можна представити матрицю Піфагора? Передбачувана відповідь учнів – двовимірним масивом. В яких числових межах будуть змінюватися індекси цього двовимірного масиву? I – Номер рядка від 2 до 9, J – Номер стовпця так само від 2 до 9. Яка формула буде використовуватися для заповнення елементів двовимірного масиву? Передбачувана відповідь учнів – a[I,J] := I*J. Таким чином, формалізована постановка задачі: Дано двовимірний масив, номери рядків і стовпців якого змінюються від 2 до 9. Заповнити даний масив за формулою I*J і вивести значення його елементів на екран по рядках.
7.
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 ; Оптимізований фрагмент програми Фрагмент програми