A: Array[1.10,1.10] Of Integer;I, K: Byte;S: Integer;
Begin
S:=0;For I :=1 To 10 DoBeginFor K :=1 To 10 DoBegin
A[I, K]:=Trunc(Random*100)+1;Write(A[I, K]:6);If K>I Then S :=S+A[I, K]
End;WritelnEnd;Writeln('Сума елементів вища за гл. діагоналі равнаV ', S)
End.
Якщо модель даних в якому-небудь завданні не може звестися до лінійної або плоскої таблиці, то можуть використовуватися масиви довільної розмірності. N -мерный масив характеризується N індексами. Формат опису такого типу даних :
Type
<Ім'я типу>=Array[<діапазон индекса1>,<діапазон индекса2>,..<діапазон індексу N>] Of <тип компонент>;
Окремий елемент іменується так:<Ім'я масиву>[<Індекс 1>,<Індекс 2>,..,<Індекс N>]
Процедури і функції
При рішенні складних об'ємних завдань часто доцільно розбивати їх на простіші. Метод послідовної деталізації дозволяє скласти алгоритм з дій, які, не будучи простими, самі є досить самостійними алгоритмами. В цьому випадку говорять про допоміжні алгоритми або підпрограми. Використання підпрограм дозволяє зробити основну програму наочнішою, зрозумілішою, а у разі, коли одна і та ж послідовність команд зустрічається в програмі кілька разів, навіть коротшою і ефективнішою.
У мові Паскаль існує два види підпрограм : процедури і функції, визначувані програмістом. Процедурою в Паскале називається іменована послідовність інструкцій, що реалізовує деяку дію. Функція відрізняється від процедури тим, що вона повинна обов'язково виробити значення певного типу.
Процедури і функції, використовувані в програмі, мають бути відповідним чином описані до першої їх згадки. Виклик процедури або функції робиться по їх імені.
Підпрограми в мові Паскаль можуть мати параметри (значення, що передаються в процедуру або функцію в якості аргументів). При описі вказуються так звані формальні параметри (імена, під якими фігуруватимуть передавані дані усередині підпрограми) і їх типи. При виклику підпрограми разом з її ім'ям мають бути задані усі необхідні параметри в тому порядку, в якому вони знаходяться в описі. Значення, що вказуються при виклику підпрограми, називаються фактичними параметрами.
Розділ описів може мати такі ж підрозділи, як і розділ описів основної програми (опис процедур і функцій - у тому числі). Проте усі описані тут об'єкти "видимі" лише в цій процедурі. Вони тут локальні також, як і імена формальних параметрів. Об'єкти, описані раніше в розділі описів основної програми і не перевизначені в процедурі, називаються глобальними для цієї підпрограми і доступні для використання.
Легко помітити схожість структури програми цілком і будь-якій з її процедур. Дійсно, адже і процедура і основна програма реалізують деякий алгоритм, просто процедура не дає рішення усієї задачі. Відмінність в заголовку і в знаку після End.
Формат опису функції :
Function <Ім'я функції> (<Ім'я форм. параметра 1>:<Тип>;
< Ім'я форм. параметра 2>:<Тип>?) : <Тип результату>;
<Розділ описів>
Begin <Тіло функції> End;
У тілі функції обов'язково має бути хоч би команда привласнення такого виду : <Ім'я функції>:=<Вираження>;
Вказане вираження повинне призводити до значення того ж типу, що і тип результату функції, описаний вище.
Виклик процедури представляє в програмі самостійну інструкцію:
Типи фактичних параметрів мають бути такими ж, що і у соответсвующих ним формальних.
Виклик функції повинен входити у вираження. При обчисленні значення такого вираження функція буде викликана, дії, що знаходяться в її тілі, будуть виконані, у вираження буде підставлено значення результату функції.
Наведемо простий приклад використання підпрограми.
Завдання: "Знайти максимальне з трьох введених чисел". Для вирішення скористаємося описом функції, що набуває значення максимального з двох чисел, які передаються в неї у вигляді параметрів.
Program Fn;
VarA, B, C : Real;
Function Max(A, B: Real) : Real; {Описуємо функцію Max з формальними}Begin {параметрами A і B, яка приймає }
If A>B Then Max :=A {значення максимальногоиз них }