Опис процедури OutputMatrix

Оскільки алгоритм висновку матриці структурно нічим не відрізняється від алгоритму її введення (див. Відповідні блок-схеми в дод. 1), тоді оформлення процедури майже однаково. Зверніть, будь ласка, увага на те, що масив А - тепер параметр вхідної ( тобто відомий), тому ключове слово Var відсутнє. У подвійному циклі for реалізований порядковий висновок на екран вихідної матриці. У форматі висновку під виведене значення елементів матриці приділяється 7 позицій, у тому числі дві позиції для висновку дробової частини:

Write(A[i,j]:7:2,’ ‘).

Наступний оператор висновку без параметрів Writeln дозволяє закінчити висновок одного рядка матриці і перейти на наступну.

Опис процедури Evaluate.

¨ У заголовку процедури описані параметри: K, A як вхідні параметри.

¨ Описано локальні змінні i (лічильник числа рядків), j (лічильник числа стовпців) як integer і stolb (речовинний масив довжиною N - array [1..N] of Real), s r (робоча змінна типу Real для підрахунку суми елементів у даному стовпці).

 

¨ У подвійному циклі for знаходиться середнє арифметичне значення для кожного стовпця і зберігається в одномірному масиві Stolb:

1) цикл починається по стовпцях j від 1 до k;

2) потім у циклі по рядках i вважається сума елементів у даному стовпці sr;

3) і обчислюється середнє арифметичне значення для кожного стовпця шляхом розподілу обчисленої суми на кількість рядків Stolb[j]:=sr/k.

¨ Значення елементів одномірного масиву середнього арифметичного значення стовпців Stolb[j] у циклі for виводиться на екран.

Зауваження. Середні арифметичні значення кожного зі стовпців матриці можна обчислювати і відразу виводити на екран. Цей варіант придатний тільки тоді, коли значення середніх арифметичних більше ні для чого НЕ потрібні (як у нашому випадку). Тоді потреба в масиві Stolb і додатковому циклі for відпадає. У цьому випадку підпрограма Evaluate буде мати наступний вид:

Procedure Evaluate(k:integer; A:arrayA);

Var i,j:integer;

sr:real;

Begin

Writeln('-і-і-і- Середнє арифметичне кожного зі стовпців -і-і-і-');

for j:=1 to k do {-і-і-і- цикл по стовпцях -і-і-і- }

Begin

sr:=0;

for i:=1 to k do {------- цикл по рядках ------- }

sr:=sr+A[i,j]; {обчислення суми елементів по стовпцях

матриці A }

Writeln ('Стовпець [',j,']= ', sr/k:7:2);

End;

End;

 

Опис головної програми

· У тілі головної програми в циклі Repeat... Until очищається екран (ClrScr).

· Шляхом виклику процедури Input(k) вводиться значення k - фактичне число рядків і стовпців вихідної матриці A.

· Шляхом виклику процедури InputMatrix(k,A) вводимо значення елементів вихідної матриці А.

· Знову очищаємо екран (ClrScr).

· Через виклик процедури OutputMatrix(k,A) виводимо на екран значення елементів вихідної матриці А.

· Через виклик процедури Evaluate(k,A) визначаємо значення середніх арифметичних кожного зі стовпців і виводимо їхній на екран.

· Потім випливає запитання «Знову? (Y/N)».

Змінній ch присвоюється значення натиснутої клавіші ch:=ReadKey і в залежності від відповіді керування чи передається на початок циклу (ch:=’Y’) для повторного рахунка, але вже з іншими вихідними даними, чи програма закінчує виконання (ch:= ‘N’).

 


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow