Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ВЦ ОП.doc
Скачиваний:
7
Добавлен:
17.11.2019
Размер:
5.31 Mб
Скачать

19. 4.2 Расширенный синтаксис вызова функций

В Паскале есть возможность вызывать функцию и не использовать то значение, которое она возвращает.

Иными словами, вызов функции может внешне выглядеть как вызов процедуры, например:

{$Х+} {Включаем расширенный синтаксис}

Function My.Func (var x : Integer) : Integer; 

begin

if x<0 then x:=0 

else MyFunc := x+10 

end; {MyFunc} 

var

i : Integer; 

begin {main} 

i := 1;

i := 2*MyFunc(i) -100; {Стандартный вызов функции} 

MyFunc ( i ) {Расширенный синтаксис вызова} 

end. {main}

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

С помощью расширенного синтаксиса нельзя вызывать стандартные функции.

Компиляция с учетом расширенного синтаксиса включается активным состоянием опции EXTENDED SYNTAX диалогового окна OPTIONS/COMPILER или глобальной директивой компилятора {$Х+}.

19.4.3 Решить задачу, используя рекурсивную подпрограмму

Номер

варианта

Выражение

1

Найти сумму цифр заданного натурального числа

2

Подсчитать количество цифр в заданном натуральном числе

3

Описать функцию С(m,n), где 0≤m≤n, для вычисления биномиального коэффициента Сmn по следующей формуле: С0nnn =1; Сmnmn-1m-1n-1 при

0<m<n

4

Описать рекурсивную функцию Root(a,b,ε), которая методом деления отрезка пополам находит с точностью ε корень уравнения f(x)=0 на отрезке [a,b] (считать , что ε>0, a<b), f(a)f(b)<0 и f(x) непрерывная и монотонная на отрезке [a,b] функция).

5

Описать функцию min(x) для определения минимального элемента линейного массива X?

Введя вспомогательную рекурсивную функцию min1(k), находящую минимум среди последних элементов массива X, начиная с k- того.

6

Описать рекурсивную логическую функцию Simm(S,I,J), проверяющую, является ли симметричной часть строки S, начинающаяся i- м и

заканчивающаяся j- м ее элементами.

7

Составить программу для вычисления наибольшего общего делителя двух натуральных чисел.

8

Составить программу для нахождения числа, которое образуется из

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

Например для числа 1234 получаем результат 4321.

9

Составить программу для перевода данного натурального числа в

двоичной системе счисления (2≤ p ≤9).

10

Дана символьная строка, представляющая собой запись натурального

числа p- ичной системе счисления (2≤ p ≤9).

Составить программу для перевода этого числа в десятичную систему счисления.

11

Составить программу для вычисления суммы:

1!+2!+3!+…..+n! (n≤15)

Примечание. Тип результата значения функции – LongInt.

12

Составить программу для вычисления суммы: 2!+4!+6!+…..+n!

(n≤16, n- четное)

Примечание. Тип результата значения функции – LongInt

13

Дано n различных натуральных чисел. Напечатать все перестановки этих чисел.

14

Логическая функция возвращает true, если ее аргумент - простое число.

15

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