- •Курс лабораторних робіт
- •Порядок виконання контрольної роботи
- •Зміст пояснювальної записки
- •Лабораторна робота № 1
- •Варіанти
- •Контрольні питання
- •Лабораторна робота № 2
- •Варіанти
- •Контрольні питання
- •Лабораторна робота № 3 організація циклів і робота з одномірними масивами
- •Контрольныe питання
- •Лабораторна робота № 4
- •Варіанти
- •Контрольні питання
- •Список використаної і літератури, що рекомендується
- •Додаток 1
- •Алгоритм обчислення знаменника наступний:
- •Алгоритм обчислення значення виразу:
- •Алгоритм роботи процедури Input:
- •Алгоритм виконання головної програми:
- •Додаток 2
- •Алгоритм виконання функції f
- •Алгоритм виконання процедури Input
- •Опис головної програми
- •Додаток 3
- •{Головна програма}
- •Опис процедури Input
- •Опис процедури InputVector
- •Опис процедури OutputVector
- •Опис функції Summa
- •Опис головної програми
- •Додаток 4
- •Опис процедури Input
- •Опис процедури InputMatrix.
- •Опис процедури OutputMatrix.
- •Опис процедури Evaluate.
- •Опис головної програми
Опис процедури Input
У заголовку процедури описаний один формальний параметр:
вихідне 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,J].
Потім керування передається головній програмі.
Опис процедури 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), sr (робоча змінна типу Real для підрахунку суми елементів у даному стовпці).
У подвійному циклі for знаходиться середнє арифметичне значення для кожного стовпця і зберігається в одномірному масиві Stolb:
цикл починається по стовпцях j від 1 до k ;
потім у циклі по рядках i вважається сума елементів у даному стовпці sr;
і обчислюється середнє арифметичне значення для кожного стовпця шляхом розподілу обчисленої суми на кількість рядків 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;
