Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Замечание.

Читайте также:
  1. Но он, казалось, уже пожалел, что обронил последнее замечание.

Стандарт языка требует, чтобы все параметры подпрограмм были типизированы (принадлежали конкретным заранее объявленным типам) однако, применять конструкторы типов в заголовке подпрограммы запрещено. Нельзя записать заголовок в таком виде:

 

Procedure ReadArray(N: 1..9; var A: array[1..9] of real). {ТАК НЕЛЬЗЯ ПИСАТЬ}

 

Необходимо в разделе объявлений сконструировать новые типы – например:

 

Type Int = 1..9; Vector = array[ Int ] of Real;

Procedure ReadArray(N: Int; var A: Vector); { чтение массива}

Пример вызова процедуры: m:= 5; ReadArray(5, B); ReadArray(5*m, C);
Var i: Int;

Begin

For i:= 1 to N do

Begin

Write(‘введи ’, i, ‘ элемент ‘); Read(A[i])

End;

End;

 

Параметры подпрограмм можно условно разделить на входные (посредством которых данные попадают в подпрограммы) и выходные (посредством которыхизвлекаются результаты).

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

Параметры – переменные могут бать входными и выходными.

 

 
 

 


Procedure Demo(x, y: Real; i, m: Integer; var ch, sh, th: Real; var k: Integer);

 

 
 

 


1. Параметры функции всегда входные.

2. Выходным параметром является имя функции, оно содержит результат.

3. В теле функции необходима инструкция присваивания имени функции некоторого значения (результата).

 

 
 

 

 


Function Exp1(x, delta: Real): Real;

 
 

 

 


Параметрами подпрограмм могут быть подпрограммы.

Введение процедурного типа позволяет подпрограммы интерпретировать как разновидность переменных.

Например:

Type Func = Function (x, y: Real): Real; {процедурный тип – функция двух аргументов}

 

Procedure csth(x: Real; F1: Func; var ch, sh, th: Real);

Var ep, em, r: Real;

Пример вызова процедуры: z:= 0.3; csth(z, Exp1, a, b, c); y:= a – c1;
Begin

ep:= F1(x, 1e-6); em:= 1/ep;

ch:= (ep + em)*0.5;

sh:= (ep - em)*0.5;

th:= sh/ch

End;

 

В этом примере формальным параметром процедуры csth является переменная F1, тип которой Func – функция двух параметров. При вызове процедуры csth в программе формальный параметр F1 заменен фактическим именем функции Exp1 (функция предназначена для вычисления экспоненты).

 

Задачи для классной и домашней работы (не менее 3 в классе и 3-6 дома). 6.1 – 6.49.

 

 


Дата добавления: 2015-08-21; просмотров: 77 | Нарушение авторских прав


Читайте в этой же книге: Что спрашивать у студента из теории? | Вызов процедуры как инструкция. | Переменных | Инструкция присваивания. | Что спрашивать у студента из теории? | Инструкция выбора CASE. | Итог. Контрольная работа по всем разделам темы 2. | Инструкция циклического повторения FOR-TO-DO. | Тип переменных – множество. | Тип переменных – файл. |
<== предыдущая страница | следующая страница ==>
Объявление подпрограмм.| Модуль камеры

mybiblioteka.su - 2015-2024 год. (0.006 сек.)