Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Зразок оформлення звіту.docx
Скачиваний:
1
Добавлен:
01.04.2025
Размер:
148 Кб
Скачать
☆

Опис вихідних даних

Stolb: array [1 .. N] of real - локальний масив середніх арифметичних значень елементів кожного з стовпців матриці A - обчислюється і виводиться у процедурі Evaluate.

Опис підпрограм

Процедура InputN (Var k: integer) використовується для введення фактичної кількості рядків і стовпців квадратної матриці A (1 <k <= N).

Процедура InputMatrix (k: integer; Var A: arrayA) служить для введення дійсних значень елементів матриці A типу ArrayA (ArrayA = array [1 .. N, 1 .. N] of real) довжиною k*k.

Процедура OutputMatrix (k: integer; A: arrayA) використовується для виведення значень дійсних елементів квадратної матриці A типу ArrayA довжиною k*k. Процедура Evaluate (k: integer; A: arrayA) призначена для обчислення і виведення на екран середнього арифметичного кожного з стовпців квадратної матриці A типу ArrayA довжиною k * k.

Опис алгоритму розвязку завдання

;

Процедура виведення елементів мариці А

j <=k;

j <=k;

i :=i+1;

j := j +1;

J :=1;

i :=1;

OutputMatrix (k,A)

ТЕСТОВІ ПРИКЛАДИ

Введіть значення N=====>3

------- Задана матриця -------

1111.00 2222.00 3333.00

1111.00 2222.00 3333.00

1111.00 2222.00 3333.00

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

Стовбець [1]= 1111.00

Стовбець [2]= 2222.00

Стовбець [3]= 3333.00

Введіть значення N=====>2

------- Задана матрица -------

1.00 2.00

3.00 4.00

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

Стовбець [1]= 2.00

Стовбець [2]= 3.00

Введіть значення N=====>4

------- Задана матрица -------

111222.00 222333.00 333444.00 444555.00

555.00 555666.00 666777.00 777888.00

888999.00 999.00 111999.00 222888.00

333777.00 444666.00 555555.00 123456.00

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

Стовбець [1]= 333638.25

Стовбець [2]= 305916.00

Стовбець [3]= 416943.75

Стовбець [4]= 392196.75

Список використаної литератури

  1. Абрамов С.А., Зима Е.В. Начала информатики. М., 1989.

  2. Вирт Н. Алгоритмы + структуры данных = программы. М., 1985.

  3. Голубь Н.Г., Кириленко Е.Г. Алгоритмические языки и программирование: Учебное пособие, часть 1. ХАИ, 1997.

  4. Джонс Ж., Харроу К. Решение задач в системе Турбо Паскаль. М., 1991.

  5. Мизрохи С.В. TURBO PASCAL и объектно-ориентированное программирование. М., 1992.

  6. Прайс Д. Программирование на языке Паскаль: Практическое руководство. М., 1987.

  7. Фаронов В.В. Турбо Паскаль 7.0. Начальный курс. Учебное пособие. М., 1997.

  8. Ковалюк Т. В. Основи програмування. Навчальний підручник. К.,2005.

  9. Глинський Я.М., Анохін В.Є., Ряжанська В.І. Паскль. Навчальний посібник. Л., 2001.

Програмний код Work4.Pas

Program Work4;

Uses CRT;

Const N=10;

Type ArrayA=array [1..N,1..N] of real;

Var k : integer;

A: ArrayA;

ch : char;

{ ввід фактичної кількості k рядків і стовпців квадратної матриці A }

Procedure InputN(Var k:integer);

Begin

Repeat

Write('Введіть значення N=====>');

Readln(k);

Until (k<=N) and (k>1);

End;

{ ввід значень дійсних елементів матриці A }

Procedure InputMatrix(k:integer;Var A:arrayA);

Var i,j:integer;

Begin

for i:=1 to k do

for j:=1 to k do

Begin

Write('Введіть значення елементів матриці A[',i,',',j,']=====>');

Readln(A[i,j]);

End;

End;

{ виведення значень дійсних елементів матриці A }

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

Var i,j:integer;

Begin

Writeln(' ------- Задана матриця -------');

for i:=1 to k do

Begin

for j:=1 to k do

Write(A[i,j]:7:2,' ');

Writeln;

End;

End;

{обчислення і виведення на екран середнього арифметичного кожного з стовпців квадратної матриці A}

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

Var i,j:integer;

stolb:array [1..N] of real;

sr:real;

Begin

for j:=1 to k do

Begin

sr:=0;

for i:=1 to k do

sr:=sr+A[i,j];

{обчислення суми елементів по стовпцях матриці A}

Stolb[j]:=sr/k;

End;

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

for j:=1 to k do

Writeln ('Cтовбець [',j,']= ',Stolb[j]:7:2);

End;

{Головна програма}

Begin

Repeat

ClrScr;

InputN(k);

InputMatrix(k,A);

ClrScr;

OutputMatrix(k,A);

Evaluate(k,A);

Writeln('Почати з початку? (y/n)');

ch:=ReadKey;

Until (ch='n') or (ch='N');

End.

ОПИС ВИКОНАННЯ ПРОГРАМНОГО КОДУ

У розрахунково-графічній роботі задана квадратна матриця А розміром N*N (N <= 10), що складається з дійсних елементів. Необхідно знайти середнє арифметичне значення елементів кожного з стовпців цієї матриці.

Назва програми - WORK4.

  • У полі опису бібліотек і констант задані стандартний модуль CRT, визначена константа N = 10.

  • Описано власний тип даних ArrayA для опису масиву розміром N*N, елементи якого мають тип Real, - Type ArrayA = Array [1 .. N, 1 .. N] of Real.

  • Описано змінні: цілочисельна змінна k:Integer, масив A:ArrayA; символьна змінна ch: char.

  • Далі йдуть описи процедур InputN, InputMatrix, OutputMatrix, і Evaluate.

  • Записано головна програма, яка викликає потрібні процедури і функції, згідно з алгоритмом рішення завдання.

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

• У заголовку процедури описаний один формальний параметр: змінна k (значення визначається у процедурі і передається в основну про-граму).

• У циклі Repeat ... Until (K <= N) and (K> 1) вводиться значення змінної K - Readln (K) з перевіркою (тобто K повинно бути більше одиниці і менше або дорівнювати N - заданому по умові максимальному значенню розміру масиву А). Потім управління передається в основну програму.

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

• У заголовку процедури описані параметри: K - вхідний параметр, який передається з основної програми, і A-вихідний параметр (массив елементів матриці А, який вводиться в процедурі).

• Описано локальні цілочисельні змінні i (лічильник числа рядків), j (лічильник числа стовпців) - integer.

• У процедурі в подвійному циклі for по змінних i, j вводяться значення елементів масиву А [i,j]: Readln (A [i,jJ].

• Потім управління передається основній програмі.

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

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

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

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

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

• Описано локальні змінні i (лічильник числа рядків), j (лічильник числа стовпців) як integer і stolb (дійсний масив довжиною N - array [1 .. N] of Real), sr (робоча змінна типу 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 ('------- cреднее арифметичне кожного з стовпців -------'); for j: = 1 to k do {------- цикл по стовпцях -------) Begin

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

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

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

End;

End;

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

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

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

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

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

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

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

• Потім слід запит «Почати знову? (Y / N) ».

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