Для того, щоб процедура змогла змінювати значення фактичних параметрів, потрібно змінити спосіб передачі параметрів в процедуру. Новий спосіб називається передачею по імені.
При використанні цього способу заголовок процедури змінюється таким чином: перед ідентифікатором формального параметра в заголовку процедури вказується службове слово Var.
Змінні, перед якими записане службове слово Var, називаються параметрами-змінними.
При виконанні процедури формальні параметри-змінні замінюються фактичними параметрами. Будь-які зміни значення формального параметру-змінної приводить до зміни значення фактичного параметру-змінної. За допомого параметрів-змінних в основну програму передаються результати дії вказівок над даними.
Задача.
Дано дві трійки чисел: А1, В1, СІ і А2, В2, С2.
Знайти значення сум:
S1 = min(Al,Bl, СІ) + min(A2, B2, С2),
S2= mах(А1, В1, СІ) + mах(А2, В2, С2).
Для знаходження min і max з трьох чисел використаємо процедуру МіnМах.
Program PRIKLAD;
VarAl,Bl,Cl,A2,B2,C2,MINl,MIN2,MAX1,MAX2,Sl,S2:real;
procedure MinMax(A,B,C:real; var MIN,MAX:real);
Begin
MAX:=A;
if MAX<B then MAX:=B;
if MAX<C then MAX:=C;
MIN:=A;
if MIN>B then min:=B;
if MIN>C then MIN:=C;
end;
Begin
write('Al='); readln(Al);
write('B1='); readln(Bl);
write('Cl='); readln(Cl);
write('A2='); readln(A2);
write('B2='); readln(B2);
write('C2='); readln(C2);
MinMax(Al,Bl,Cl,MINl,MAXl); MinMax(A2,B2,C2,MIN2,MAX2);
S1:=MIN1+MIN2;
S2:=MAX1+MAX2;
Writeln('Sl=',Sl);
Writeln('S2=',S2);
End.
Завдання
1. Використовуючи підпрограми створити і вивести масив А[1..n] (n>10). Елементи масиву створюються за формулою з поданої нижче таблиці.
2. Скласти підпрограму для пошуку даних у масиві. Критерії пошуку взяти з поданої нижче таблиці.
Варіант
| Критерії пошуку
|
| Обчислити суму першого та останнього елементів масиву.
|
| Обчислити суму та добуток всіх елементів масиву, для яких виконується нерівність A[x]<-3.2 або A[x]>0.
|
| Обчислити добуток та кількість усіх значень масиву, для яких виконуються нерівності A[x]<-3 або A[x]>0.4
|
| Обчислити добуток усіх від'ємних значень масиву та визначити кількість додатних.
|
| Обчислити модуль добутку максимального та мінімального елементів.
|
| Обчислити середнє арифметичне всіх від'ємних елементів масиву.
|
| Визначити суму додатних значень масиву та кількість від'ємних.
|
| Скільки від'ємних та додатних значень має масив?
|
| Обчислити суму та кількість додатних значень масиву.
|
| Обчислити суму квадратів усіх додатних елементів масиву.
|
| Обчислити модуль різниці максимального та першого елементів масиву.
|
| Обчислити суму усіх елементів масиву, для яких виконується нерівність A[x}<1.2 або A[x]>4
|
| Яких елементів у масиві більше: додатних чи від'ємних?
|
| Обчислити суму та кількість тих елементів масиву, для яких виконується нерівність 3<A[x]<4
|
| Обчислити добуток усіх елементів масиву, для яких справджується нерівність 2<A[x]<4.1
|
3.Скласти програму для обробки масивів з різною кількістю елементів.
Розмірність масиву слід задати іменованими константами. Всі необхідні дані повинні передаватися підпрограмам в якості параметрів; усі величини, що використовуються всередині підпрограм, повинні бути описані як локальні. Використання глобальних змінних у підпрограмах не допускається. Виведення результатів роботи підпрограм повинен виконуватися у головній програмі.