ПОЯСНИТЕЛЬНАЯ ЗАПИСКА
Данная разработка предназначена для использования при прохождении темы «Нестандартные функции в Паскале» в курсе «Программирование» и ориентирована на учащихся школ с гуманитарным профилем.
При минимальном количестве часов, отведенных на предмет Информатика, сложностях при знакомстве с программированием, но обязательном (по программе) освоением этой темы, предложенный вариант объяснения давал неплохие результаты при его использовании.
Предварительные знания:
1. Подпрограмма (п/п) – это повторяющаяся группа операторов, оформленная в виде самостоятельной программной единицы. Она записывается однократно, а в соответствующих местах основной программы обеспечивается лишь обращением к ней по имени.
Или: Подпрограмма – специальным образом оформленная программа, к которой можно обращаться из любой точки основной программы.
2. Использование п/п позволяет:
- сократить объем программы;
- улучшить структуру программы с точки зрения ее читаемости и наглядности;
- облегчает процесс отладки.
3. В Паскале подпрограммы реализованы в виде Функций и Процедур
4. Все переменные, а также другие объекты, описанные в подпрограмме, являются локальными и действуют только внутри этой подпрограммы. Никакой связи между ними и объектами вызывающей программы (основной), имеющими такие же имена, нет.
5. Параметры, указанные в описании подпрограммы называются формальными.
6. Обращение к подпрограмме записывается в виде имени подпрограммы, за которым следует заключенный в скобки список параметров, отделенных друг от друга запятыми. Эти параметры называются фактическими и их количество, последовательность и тип должны совпадать с типом, количеством и последовательностью формальных параметров.
НЕСТАНДАРТНЫЕ ФУНКЦИИ
Если в программе несколько раз встречается выражение, которое укладывается в одну формулу, то для экономии памяти и упрощения программы целесообразно создать свою функцию.
Если в программу включается новая, нестандартная функция, то ее необходимо описать в тексте программы. После этого такая функция может использоваться подобно стандартной.
FUNCTION имя_функции (перечень формальных параметров и их тип): тип результата;
begin
… составной оператор (шаблон, по которому обрабатываются параметры)
end;
- В тексте программы описание функции всегда следует за описанием переменных.
- Результат вычисления функции (значение функции) присваивается имени функции, поэтому среди входящих в функцию операторов должен обязательно входить оператор присваивания, в левой части которого стоит имя данной функции.
- Параметры, указанные в описании функции, называются формальными.
-
Обращение к функции записывается в виде имени функции, за которым следует заключенный в скобки список параметров, отделенных друг от друга запятыми.
Эти параметры называются фактическими и их количество, последовательность и тип должны совпадать с типом, количеством последовательностью формальных параметров. - Фактическими параметрами могут быть константы, значения переменных, результат работы функции.
Примеры:
Описание функции выбора большего из двух аргументов.
Function MAX (A, B: real): real;
begin
if a>b then MAX:=a else MAX:=b;
end;
Наберите программу:
PROGRAM PRIMER;
var b: integer;
function tri (a:integer):integer; {функция, утраивающая значение параметра, а – формальный параметр}
begin
tri:=3*a; {результат работы функции д.б. обязательно присвоен имени функции}
end;
BEGIN
Writeln (tri (4)); {вызов функции, 4 – фактический параметр}
Writeln ('введите любое целое число, которое вы хотите утроить');
readln (b);
writeln (tri(b));
writeln (tri (2)+tri (4));
END.
Вариант №1
Что появится на экране?
Program prim
Var a, b: integer;
C: real;
Function pr(x, y: real): real;
Begin pr: =(x + y)/2 end ;
BEGIN
A: =4; b: =6;
Writeln (pr (a, 2):1:0);
C: =pr (pr (b, 6), 4);
Writeln (c:1:0)
END.
Вариант№2
Что появится на экране?
Program prim;
Var a, b, c: integer;
Function pr (x, y: integer): integer;
begin pr: =x*y+2 end;
BEGIN
A: =4; b: =2;
Written (pr (a, b));
C: =pr (pr (b, 6), a);
Writeln (c);
END.
Вариант№3
Что появится на экране?
Program prim;
Var a, b, c: integer;
Function pr (x, y: integer): integer;
begin pr: =x +(y div 2) end;
BEGIN
A: =4; b: =6;
Writeln (pr (a, 2));
C: =pr (pr (b, 6), 4);
Writeln (c);
END.
Вариант №4
Что появится на экране?
Program prim;
Var a, b, c: integer;
Function pr (x, y: integer):integer;
Begin pr:=x+2*y end;
BEGIN
A:=2; b: =1;
Writeln (pr (a, 2), 2);
C: =pr (pr (b, 2), 2);
Writeln (c);
END.
В архиве ещё 12 вариантов
Задания на оформление функций:
- Описать функцию, рассчитывающую определенный процент от числа.
- Описать функцию, рассчитывающую площадь прямоугольника.
- Описать функцию, переводящую рубли в доллары с учетом меняющегося курса доллара.
- Описать функцию, рассчитывающую площадь треугольника по основанию и высоте (по формуле Герона).
- Описать функцию, рассчитывающую площадь треугольника по формуле Герона.
- Описать функцию, рассчитывающую гипотенузу по катетам.
- Описать функцию, определяющую какое количество пассажиров, весом 80 кг, может поднять лифт задаваемой грузоподъемности.
- Описать функцию, определяющую количество оставшихся карандашей после их расфасовки по 25 штук.
- Описать функцию, которая задает номер цвета 2 (зеленый), если число отрицательное и – 4 (красный), если число положительное.
- Описать функцию, выдающую 0 или 1 в зависимости от того, делится ли рассматриваемое целое число на 5 или нет (делится – 1, не делится – 0)
Функции с локальными переменными:
- Описать функцию, рассчитывающую произведение задаваемого количества натуральных чисел (1*2*3*4*…*N)
Разбор задания:
Function pr(x: integer): integer;
var i, p: integer;
begin
p:=1;
for i:=1 to x do
p:=p*I;
pr:=p
end;
- Описать функцию, рассчитывающую сумму задаваемого количества натуральных чисел (1+2+3+4+…+N).
- Описать функцию, рассчитывающую среднее арифметическое задаваемого количества натуральных чисел.