You are on page 1of 5

ПРАКТИЧНА РОБОТА№11

Тема:Складання програм з використанням процедур в задачах. Підпрог

Мета:Придбання практичних навичок в складанні програм з


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

Постановка задачі:
1. Виконати завдання з використанням процедури.
2. Вихідні дані (крім розмірності масивів) увести з текстового файлу.
3. Вихідну матрицю і результати вивести в інший текстовий файл.
4. Весь обмін даними між основною програмою і процедурою
організувати через список формальних/фактичних параметром.
Приклад:
Замінити елементи, розташовані вище головної діагоналі масиву A(n,n) на
мінімальний елемент.

Дано:

Програма :
program lab;
const
n=3; {розмірність масиву}
type
ar=array [1..n,1..n] of integer;
var
a:ar; {масив А}
і,j:integer; {індекси рядків, стовпців}
fi,fo:text; {файлові змінні}
{процедура перетворення масиву В}
procedure Proc (var b:ar;m:integer);
var
k,l:integer; {індекси рядків, стовпців}
Bmin:integer; {мінімальний елемент}
begin
{пошук мінімального елемента}
Bmin:=b[1,1];
for k:=1 to m do
for l:=1 to m do
if b[k,l]<Bmin then Bmin:=b[k,l];
{заміна елементів вище головної діагоналі}
for k:=1 to m do
for l:=1 to m do
if l>k then b[k,l]:=Bmin;
end; {від процедури}
{тіло виконуваних операторів головної програми}
begin
{відкриття файлу вхідних даних і читання їх}
assign(fi,'lab.inp');
reset(fi);
for i:=1 to n do begin
for j:=1 to n do Read(fi,a[i,j]);
readln(fi)
end;
close(fi);
{відкриття вихідного файлу}
assign(fo,'lab.out');
writeln ('Вихідний масив А:');
rewrite(fo);
for i:=1 to n do begin
for j:=1 to n do write (fo,a[i,j]:3);
writeln(fo)
end;
{виклик процедури}
proc(a,n);
writeln ('Перетворений масив А:');
rewrite(fo);
for i:=1 to n do begin
for j:=1 to n do write(fo,a[i,j]:3);
writeln(fo)
end;
close(fo);
end.
Файл вихідних даних:
Вихідний масив А:

Перетворений масив А:

Варіанти завдань:

Варіант №1
Написати процедуру, що будує матрицю A(n,n) з компонентами
, а потім перетворює цю матрицю, міняючи місцями в
кожнім рядку найбільший по абсолютній величині елемент з діагональним.
Вивести отриману матрицю і номери елементів, що переставляються, у рядках.
Дано: n=3, x=3,5.

Варіант №2
Обчислити масив M(n), елементи якого є послідовно розташованими
цифрами в цілому числі K. Дано: K=198345678, n=9.

Варіант №3
У масиві елемент ak уставити на місце am, а елементи з am-го
по ak-1-й змістити на одну позицію вправо. Дано: A=(1.1,2.5,3.4,-0.8,3.7,4.5), n=6,
k=4, m=1.
Варіант №4
Для масиву A(n,n) визначити S – номер стовпця, що містить максимальний
елемент масиву, і R – найменше з позитивних відносин ;

Вариант№5
Скласти процедуру обчислення матриці по матрицях і
, кожен елемент якої визначається по формулі: .

Варіант №6
Дані відрізки а, b, с і d. Для кожної трійки цих відрізків, з яких можна
побудувати трикутник, надрукувати площу даного трикутника. (Визначити
процедуру print_square (x, у, z), що друкує площу трикутника із сторонами x, у, z,
якщо такий трикутник існує.)

Варіант №7
Дані довжини сторін а, b і с деякого трикутника. Знайти медіани
трикутника, сторонами якого є медіани початкового трикутника. (Зауваження:
довжина медіани, проведеної до сторони а, дорівнює

Варіант №8
Дано три слова, в кожному з яких від 1 до 6 рядкових латинських літер, і за
кожним з яких слідує проміжок. Надрукувати ці слова в алфавітному порядку.

Варіант №9
Дані дві квадратні дійсні матриці 6-го порядку. Надрукувати квадрат тієї з
них, в якій найменший слід (сума діагональних елементів), вважаючи, що така
матриця одна.

Варіант №10
Сторони трикутників задаються як а1,b1,c1,a2,b2,c2,a3,b3,c3.Обчислити
площу найменьшого трикутника.
Варіант №11
Дані три дійсні квадратні матриці 4-го порядку. Надрукувати ту з них,
норма якої якнайменша (вважати, що така матриця одна). Як норму матриці узяти
максимум абсолютних величин її елементів.

Варіант №12
Дані координати вершин двох трикутників. Визначити, який з них має
більшу площину.

Варіант №13
Знайти найменше загальне кратне чотирьох-заданних натуральних чисел.

Варіант №14
Два прості числа називаються "близнятами", якщо вони відрізняються один
від одного на 2 (наприклад, числа 41 і 43). Надрукувати всі пари "близнят" з
відрізка [n, 2n], де n – задане ціле число, більше 2.

Варіант №15
Два натуральні числа називаються "дружніми", якщо кожне з них рівне сумі
всіх дільників іншого, за винятком його самого (наприклад, числа 220 і 284).
Надрукувати всі пари "дружніх" чисел, що не перевершують заданого
натурального числа.

Варіант №16
Дані три цілі матриці розміром 5х3. Надрукувати ту з них, де більше
нульових рядків (якщо таких матриць декілька, надрукувати їх всі).

Варіант №17
Дано n дійсних чисел (n = 100). Упорядкувати їх по неспаданню методом
фон Неймана: завести два масиви А і B і записати початкові числа в А;
упорядкувати пари сусідніх чисел (A1 і A2, A3 і A4 і т. д.) і записати їх в B; узяти
з B по дві сусідні впорядковані пари і, злив їх у впорядковані четвірки, знову
записати в А; потім кожні дві сусідні четвірки з B злити у впорядковані вісімки і
перенести в А; і т.д.

Варіант №18
Процедура maxmin (x, у) присвоює параметру х більше з дійсних чисел x і у,
а параметру у – менше. Описати дану процедуру і використати її для
перерозподілу значень дійсних змінних а, b і с так, щоб стало а >= b >= з.

Варіант №19
const n = 20;
type vector = array [1..n] of real;
Описати процедуру change (x, у, z), яка в тому з векторів x, у і z, де більш
всього негативних елементів (вважати, що такий вектор один), всі його позитивні
елементи замінює на їх куби – якщо це вектор x або вектор z, і на їх зворотні
величини – якщо це вектор у.

Варіант №20
Дані дійсні квадратні матриці А і B 4-го порядку. Одержати (AB).

Варіант №21
const
n = 8;
m = 13;
type matrix = array [1..n, 1..m] of real;
Описати процедуру swap(A,B), що міняє місцями максимальні елементи
матриць А і В. (Вважати, що в кожній матриці тільки один максимальний
елемент.)

You might also like