Смекни!
smekni.com

Програмування в середовищі Pascal (стр. 13 из 16)

Vivod(B,N2,M2);

Obrab(B,N2,M2); Readkey; End.

Приклад 4b. Для кожної з матриць А і В обчислити добуток сум додатних елементів головної діагоналі і від’ємних елементів 1-го стовпця.

Розмірність матриць довільна.

Блок- схеми (рис. 24, 25, 26, 27)

Рисунок 24 - Блок-схема алгоритму процедури Vvod

Рисунок 25 - Блок-схема алгоритму процедури Vivod

Рисунок 26 - Блок-схема алгоритму функції Pr

Рисунок 27 - Блок-схема алгоритму основної програми

Текст програми

Program Lab4b;

{Селективна Обробка Матриць} Uses Crt;

Type Matr=Array[1..50,1..50] Real;

Var А, B : Matr;

I, J,N1, N2 : Integer;

P1, P2 : Real;

{-------Процедура Введення Матриці-------}

Procedure Vvod(Var X:Matr;Var H:Integer);

Label 1; Begin

1:Writeln(' Введіть Розмірність Матриці <50');

Readln(H);

If H>50 Then Goto 1;

Writeln(' Введіть Матрицю ',H:2,' Х ',H:2);

For I:=1 To H Do

Begin

Writeln(I:2,' -Ий Рядок);

For J:=1 To H Do Read(X[I,J]);

Writeln;

End;

End;

{-------Процедура Виведення Матриці-------}

Procedure Vivod(Var X:Matr;H:Integer);

Begin

Writeln(' Початкова Матриця ');

For I:=1 To H Do

Begin

For J:=1 To H Do Write(X[I,J]:5:2,' ');

Writeln; End;

Writeln;

End;

{-------Функція Обробки-------}

Function Pr(X:Matr;H:Integer):Real;

Var Spg, So1, Pp : Real;

Begin

Spg:=0;

So1:=0;

For I:=1 To H Do

Begin

If (X[I,I]>0) Then Spg:=Spg+X[I,I];

If (X[I,1]<0) Then So1:=So1+X[I,1]

End;

Writeln('Сума додат.елем головн. діаг.= ',Spg:6:2);

Writeln('Сума від’єм.елем. 1-го стовп= ',So1:6:2);

Pp:=Spg*So1; Pr:=Pp;

Writeln;

End;

{-------Основна Програма-------}

Begin

Clrscr;

Vvod(A,N1);

Vvod(B,N2);

Clrscr;

Writeln('Матриця А');

Vivod(A,N1);

P1:=Pr(A,N1);

Writeln('Добуток = ',P1:7:2);

Writeln('Матриця B');

Vivod(B,N2);

P2:=Pr(B,N2);

Writeln('Добуток = ',P2:7:2); Readkey; End.

7.3 Варіанти завдання до лабораторної роботи №4

1 У кожній з матриць Х і У знайти (умова А). Умова А наведена в табл.11. Матриці довільні.

Таблиця 11 - Варіанти завдання

Варіант Умова А
1 Суму додатних елементів
2 Суму від’ємних парних елементів

Продовження табл.11

Варіант Умова А
1 Суму додатних елементів
2 Суму від’ємних парних елементів
3 Добуток парних елементів
4 Максимальний додатний елемент
5 Максимальний парний від’ємний елемент
6 Добуток мінімального і максимального елементів
7 Номери мінімального і максимального елементів
8 Максимальний по модулю елемент і номер рядка і стовпця, де він знаходиться
9 Квадрат мінімального від’ємного елемента
10 Добуток мінімального елемента на суму додатних елементів
11 Кількість парних елементів
12 Кількість непарних додатних елементів
13 Кількість від’ємних і кількість додатних елементів
14 Добуток суми додатних елементів на їх кількість
15 Суму парних елементів і Добуток непарних елементів
16 Кількість елементів, більших заданого числа С
17 Добуток позитивних елементів і суму парних елементів
18 Максимальний кратний 3 елемент і його індекс
19 Частку від ділення максимального на мінімальний елементів
20 Максимальний кратний 3 і мінімальний кратний 5 елементи
21 Добуток елементів, менших заданого числа Т
22 Кількість елементів, менших мінімального кратного 5
23 Суму додатних елементів, кратних 5
24 Добуток від’ємних парних і додатних непарних елементів
25 Індекс максимального по модулю кратного 3 елемента

2 Варіанти завдань приведено в табл. 12.

Таблиця 12 - Варіанти завдання

Варіант Зміст завдання
1 Знайти суму елементів, розташованих за периметром
2 У кожному стовпці матриці А(5,5) знайти максимальний елемент і поміняти його місцями з відповідним елементом головної діагоналі
3 Задані матриці А(4,5) і В(4,5). Утворити нову матрицю, для якої С(I,J) = 2A(I,J) – B(I,J)
4 У матриці С(5,7) знайти мінімальний елемент 3 рядка і поміняти його місцями з максимальним елементом 2 рядка
5 Для матриці С(6,5) сформувати вектор В, компоненти якого утворюються з суми елементів відповідних рядків матриці С
6 У матриці замінити всі додатні елементи числом +1, а від’ємні -1
7 Визначити і надрукувати кількість додатних елементів в кожному стовпці заданої матриці С(5,7)
8 Сформувати і надрукувати матрицю, кожний елемент якої є цілою частиною відповідного елемента заданої матриці В(5,4)
9 Визначити і надрукувати мінімальний елемент кожного стовпця заданої матриці В1(3,4)
10 Для кожного рядка заданої матриці Р визначити і надрукувати суму елементів стовпців з парними номерами
11 Для кожного рядка заданої матриці В знайти і надрукувати номери стовпців, що містять нульові елементи
12 Для кожного стовпця заданої матриці А визначити суму елементів, що лежать нижче головної діагоналі
13 Для кожного стовпця заданої матриці А визначити добуток елементів, що лежать вище головній діагоналі
14 Знайти мінімальний елемент кожного рядка матриці В(5,4) і поміняти його місцями з першим
15 Знайти максимальний елемент кожного рядка матриці Т(5,5) і поміняти його місцями з відповідним діагональним
16 Розташувати елементи кожного стовпця заданої матриці за
збільшенням значень. Отриману матрицю надрукувати
17 Розташувати елементи кожного рядка матриці Р(3,4) по убуванню. Отриману матрицю надрукувати
18 Розділити елементи кожного стовпця заданої матриці В(3,4) на останній елемент стовпця. Перетворену матрицю надрукувати
19

Визначити мінімальний елемент головної діагоналі матриці

А(4,4) і надрукувати рядок і стовпець, в яких він знаходиться

20

Визначити максимальний елемент побічної діагоналі матриці

В(3,3) і надрукувати рядок, в якому він знаходиться

21 Поміняти місцями мінімальний і максимальний елемент головної діагоналі матриці М(4,4)
22 Поміняти місцями мінімальний елемент головної і максимальний побічної діагоналей матриці Т(4,4)
23 Обчислити середнє арифметичне матриці В(3,4) і сформувати матрицю K, кожний елемент якої дорівнює відповідному елементу матриці В, помноженому на це число
24 Знайти суму додатних елементів головної діагоналі і добуток парних елементів 2 стовпця
25 Знайти середні геометричні кожного стовпця матриці А(5,4) і записати їх в масив С

8 ЛАБОРАТОРНА РОБОТА 5. ФАЙЛИ

8.1 Теоретичні відомості

Поняття файла пов'язано з типом даних і з урахуванням розміщення інформації на зовнішніх пристроях (зокрема, на магнітних дисках).

Файлом називається послідовність компонентів одного типу. Компоненти файла можуть бути будь-якого типу, за винятком типу файла. Кількість компонентів у файлі не обмежена. Розміщуються компоненти на зовнішньому пристрої і можуть зберігатися тривалий час. (Записаний на магнітному диску файл зберігається і після виключення комп'ютера.) Для зв'язку з файлами використовуються файлові змінні.

Над файловими змінними не можна виконувати ніяких операцій (привласнювати значення, порівнювати і т.д.). Файлові змінні можна лише використовувати для обробки файлів (читання інформації з файла, запису інформації у файл і т.д.).

Загальний вид опису файлового типу:

Type T = FILE OF TK; де Т - ідентифікатор типу; TK - тип компоненти.

Кожну змінну типу «файл» треба описати в розділі VAR: var F: T; де F – ідентифікатор змінної типу «файл»; T - ідентифікатор типу «файл».

Тип «файл» може бути описаний і безпосередньо при описі змінної типу «файл»:

var F: FILE TK;

Перш ніж здійснювати введення-виведення, файлова змінна повинна бути зв'язана з конкретним зовнішнім файлом за допомогою стандартної процедури ASSIGN (див. нижче). Потім файл повинен бути відкритий для читання або запису. Після цього можна здійснювати організацію введеннявиведення.

У кожний конкретний момент для обробки доступний тільки один компонент файла (поточний). Говорять, що на цей компонент встановлено покажчик поточної позиції файла.

Звичайно всі файли вважаються файлами послідовного доступу. Це означає, що почати писати у файл можна тільки з самого його початку, дописуючи нові компоненти послідовно, один за другим в кінець файла. Для читання також треба почати обробку файла із самого його початку. Проте за допомогою стандартної процедури SEEK можна встановити режим довільного доступу, переміщаючи покажчик поточної позиції файла на потрібний компонент.

Після роботи з файлом його необхідно закрити за допомогою стандартної процедури CLOSE.

Для роботи з файлами використовуються наступні стандартні процедури (надалі мається на увазі, що F – ідентифікатор типу «файл»): 1ASSIGN(F,ST) – зв'язує файлову змінну F із зовнішнім файлом, ім'я якого задається в рядковому виразі ST (типу STRING). Ім'я файла повинне відповідати вимогам операційної системи і може містити маршрут: ім'я пристрою і імена каталогів (папок). Усі подальші операції з F проводитимуться над зовнішнім файлом з ім'ям, заданим в ST.