Будь умным!


У вас вопросы?
У нас ответы:) SamZan.net

массивы. При использовании массивов в качестве параметров необходимо учитывать одно ограничение при описа

Работа добавлена на сайт samzan.net:

Поможем написать учебную работу

Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 9.11.2024

Билет 3

Особенности использования параметров в процедуре и функции

Параметры являются основным механизмом связи процедур и функций с вызывающей подпрограммой, поэтому важно иметь возможность использовать в качестве параметров  широкий класс конструкций программы.

Параметры-массивы. При использовании массивов в качестве параметров необходимо учитывать одно ограничение при описании формальных параметров: типом любого формального параметра может быть только либо стандартный тип, либо тип, который объявлен ранее в вызывающей подпрограмме. Это означает, что нельзя использовать описание типа array непосредственно в списке формальных параметров. Это ограничение, конечно, справедливо и для строк. Для строк также важно, что объявленные длины формального и фактического строкового параметра-переменной должны совпадать.

Нетипизированные параметры-переменные. Формальный параметр-переменная может быть описан без указания типа. Такой параметр называется нетипизированным. Соответствующий ему фактический параметр может быть переменной любого типа. Этот случай полезен, если тип данных несущественен. Нетипизированные параметры можно использовать также для передачи в подпрограммы одномерных массивов переменной длины (до  64 КБайт).

Параметры - открытые массивы.  В качестве параметров подпрограмм можно использовать открытые массивы, т.е. одномерные массивы, указываемые без описания их размера (а только с указанием типа элементов). Открытые массивы позволяют передавать как параметры статические массивы любого размера.

Параметры-процедуры и параметры-функции. Процедуры и функции также могут быть параметрами других процедур или функций, что часто используется. В Турбо Паскале имеется весьма гибкий механизм передачи процедур и функций в качестве параметра. Он основан на введении процедурных типов.

Процедурный тип - тип, представляющий семейство процедур или функций для их использования в программе. Как и любой тип Турбо Паскаля, процедурный тип должен быть описан, а затем может быть использован для работы с переменными процедурного типа (или константами). Описание процедурных типов имеет форму заголовка процедуры (или функции) с опущенным её именем. При описании подпрограммы с процедурными параметрами такие параметры указываются формальным именем и соответствующим процедурным типом. В программе, где описаны процедурные типы, могут быть объявлены переменные этих типов, которым можно присваивать имена соответствующих подпрограмм, описанных в данной программе, либо эти имена можно использовать как константы при вызове подпрограмм с процедурными параметрами. Стандартные процедуры и функции нельзя непосредственно передавать таким способом, но их можно "подменить" подпрограммами с другими именами.

Если в прямоугольной матрице все суммы элементов строк

попадают на заданный отрезок, определить номер строки

с максимальной суммой элементов, иначе определить номера строк,

сумма элементов которых не попала на заданный отрезок.

Program z433_3;

uses z433_3;

Var A:matr;

   S:mass;

   L:inmass;

   b:boolean;

   xn,xk:real;

   i,j,k:integer;

BEGIN

for i := 1 to n do

for j := 1 to m do

readln(A[i,j]);

writeln('Введите границы отрезка: ');

readln(xn,xk);

Sum(A,S);

InArea(S,xn,xk,L,k,b);

if b then writeln('Строка с максимальной суммой элементов: ',Maximum(S):5)

    else Begin

         writeln('Номера строк, сумма элементов которых выходит за пределы отрезка: ');

         for i := 1 to k do

         write(L[i],' ');

         end;

readln;

END.

Unit Z433_3;

interface

Const n = 3;

     m = 4;

Type matr = array[1..n,1..m] of real;

    mass = array[1..n] of real;

    inmass = array[1..n] of integer;

procedure Sum(A:matr; Var S:mass);

{Записывает в массив S суммы элементов строк матрицы A}

procedure InArea(S:mass; xn,xk:real; Var L:inmass; Var k:integer; Var b:boolean);

{b = true, если все элементы массива S попадают в отрезок [xn,xk], иначе

b = false и целочисленный массив L содержит k номеров элементов S,

не попавших в отрезок}

function Maximum(S:mass):integer;

{Возвращает номер максимального элемента массива S}

implementation

procedure Sum(A:matr; Var S:mass);

Var i,j:integer;

   ss:real;

Begin

for i := 1 to n do

 Begin

 ss := 0;

 for j := 1 to m do

 ss := ss + A[i,j];

 S[i] := ss;

 end;

end;  {Sum}

procedure InArea(S:mass; xn,xk:real; Var L:inmass; Var k:integer; Var b:boolean);

Var i:integer;

Begin

k := 0;

for i := 1 to n do

L[i] := 0;

for i := 1 to n do

if (S[i] < xn) or (S[i] > xk) then

 Begin

 k := k + 1;

 L[k] := i;

 end;

if k = 0 then b := true

        else b := false;

end;  {InArea}

function Maximum(S:mass):integer;

Var max:real;

   i,k:integer;

Begin

k := 1;

max := S[1];

for i := 2 to n do

if S[i] > max then

 Begin

 max := S[i];

 k := i;

 end;

Maximum := k;

end;  {Maximum}

begin

END.




1. Психодіагностика в роботі соматичних лікувальних закладів
2. Теория общего равновесия т
3. Красноярский государственный медицинский университет имени профессора В
4. 11 класс 5 декабря 2013 года
5. Тульский государственный университет Кафедра Финансы и менеджмент СОЦИАЛЬНАЯ ЭКОНОМИЧЕСКАЯ ГЕО
6. ГТБ к.г.н. доцент Зиганшин И.html
7. 1830 годы параллельно романтизму формируется новое литературное направление ~ реализм
8. Исследование бухгалтерского учета и аудита материалов на примере организации ООО
9. Автоматизация учета продажи товаров в ООО Мастер-СД
10. Основы фехтования
11. Адаптація учнів 5х кл
12. Буддизм и индуизм в Индии особенности отношений
13. Тема- Word Рисование
14. Задание Таблица 1
15. Курсовая работа- Амнистия и помилование в Российской Федерации
16. Тема- Введение Вопросы- 1
17. Экономический эффект от создания проектируемого оборудования для восстановления деталей двигателей методом железнения натиранием
18. ОХОРОНА ПРАЦІ ТА БЕЗПЕКА В НАДЗВИЧАЙНИХ СИТУАЦІЯХ
19. Термины
20. на тему- Финансовое стимулирование развития малого бизнеса направление 080105 Финансы и кредит Специал