є собою об'єкт постійної і цілком заслуженої його критики. Розробники Турбо Паскаля не ризикнули кардинально змінити властивості базової мови, але, тим не менш, включили в нього деякі засоби, що дозволяють до певної міри пом'якшити зазначені недоліки.
Насамперед, в середовищі Турбо Паскаля можна встановити режим компіляції, при якому відключається контроль над збігом довжини фактичного і формального параметра-рядка. Це дозволяє легко вирішити питання про передачу підпрограмі рядки довільної довжини. При передачі рядка меншого розміру формальний параметр буде мати ту ж довжину, що і параметр звернення; передача рядка більшого розміру приведе до її усікання до максимального розміру формального параметра. Слід сказати, що контроль включається тільки при передачу рядки, оголошеної як формальний параметр-змінна. Якщо відповідний параметр оголошений параметром-значенням, ця опція ігнорується і довжина не контролюється.
Значно складніше йде справа з передачею масивів довільної довжини. Вирішити цю проблему при допомоги не типізованих параметрів
Процедурні типи
Процедурні типи - це нововведення фірми Borland (у стандартному Паскалі таких типів немає). Основне призначення цих типів - дати програмісту гнучкі засоби передачі функцій і процедур в якості фактичних параметрів звернення до інших процедур і функцій.
Для оголошення процедурного типу використовується заголовок процедур, в якому опускається її ім'я, наприклад:
type
Proc = Procedure (a, b, с: real; Var d: real);
Proc2 = Procedure (var a, b);
РгосЗ = Procedure;
У програмі можуть бути оголошені змінні процедурних типів, наприклад, так:
var
р1: Proc;
ар: array [1 .. N] of Proc2;
Змінним процедурних типів допускається привласнювати в якості значень імена відповідних підпрограм. Після такого присвоювання ім'я змінної стає синонімом імені підпрограми.
На відміну від стандартного Паскаля, в Турбо Паскалі дозволяється використовувати в переданої процедури як параметри-значення, так і параметри-змінні.
Нетипізовані параметри-змінні
Ще одне і дуже корисне нововведення фірми Borland - можливість використання нетипізований параметрів. Параметр вважається нетипізовані, якщо тип формального параметра-змінної в заголовку підпрограми не зазначений, при цьому відповідний йому фактичний параметр може бути змінною будь-якого типу. Зауважимо, нетипізований можуть бути тільки параметри-змінні. p> Нетипізовані параметри зазвичай використовуються у випадку, коли тип даних неістотний. Такі ситуації найчастіше виникають різного роду Копіювання однієї області пам'яті в іншу. Нетипізовані параметри дуже зручно використовувати для передачі підпрограмі одновимірних масивів змінної довжини. br/>
Параметри-складні типи даних
Розгля...