Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка по программированию.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
618.5 Кб
Скачать

Лабораторная работа № 9. Функции и процедуры

Цель работы: Приобретение навыков в построении и использовании процедур и функций.

Задачи:

  • понять, что такое процедура и способы ее задания;

  • понять, что такое функция и способы ее задания

  • определить, в каких случаях целесообразно использовать процедуры, а в каких - функции.

Порядок выполнения работы:

  1. Перед выполнением работы, обязательно, прочитать конспект лекций по теме «Процедуры и функции».

  2. Ознакомиться с представленными в лабораторной работе теоретическими сведениями.

  3. Получить дополнительные теоретические знания из источников: [3: Глава 6], [4: Тема 8], [7: Занятие 11, 12], [10: Глава 8].

  4. Реализовать на ЭВМ разобранные примеры.

  5. Самостоятельно выполнить предложенные задачи.

Внимание: переходить к выполнению пунктов 4 и 5 только после тщательной проработки пунктов 1 – 3.

Основные теоретические сведения

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

  • для передачи данных в функцию или процедуру надо использовать только параметры (глобальные переменные, т. е. переменные, объявленные вне функции, применять не рекомендуется);

  • среди выполняемых инструкций функции обязательно должна быть инструкция присваивания имени функции значения функции;

  • тип каждого фактического параметра (константы или переменной) в инструкции вызова функции или процедуры должен быть таким же, как тип соответствующего формального параметра, указанного при объявлении функции;

  • если в инструкции объявления функции или процедуры перед именем формального параметра не стоит слово var, то при вызове функции или процедуры можно использовать в качестве формального параметра константу или переменную соответствующего типа. Если слово var указано, то формальным параметром может быть только переменная;

  • если параметры функции используются для возврата результата в программу, вызвавшую функцию, то в объявлении функции перед именем соответствующего параметра должно присутствовать слово var.

Примеры решения задач

Задача 1. Даны действительные числа a, b, c. Вычислить

Система тестов:

Значение A

Значение B

Значение C

Результаты

1

1

2

3

1

2

1

-2

-3

0,25

Решение задачи:

Program Max_X_Y;

var

a, b, c, s : Real;

function f_max(x, y : real) : real; {описание функции}

begin {начинается тело функции}

if X>y then

f_max:=x

else

f_max:=y;

end;

begin {начинается тело программы}

Writeln('Введите a, b, c ');

Read(a,b,c);

s:= (f_max(a, a+b) + f_max(a, b+c)) / (1+f_max(a+b*c, 5));

Writeln('S= ',s);

Readln;

end.

Задача 2. Даны три вектора А, В, С, заданные своими координатами. Найти сумму А*В+B*С+A*C.

Система тестов:

Значение A

Значение B

Значение C

Результаты

1

1,1,1

1,1,1

1,1,1

9

2

1,2,0

0,1,2

2,1,1

9

Решение задачи:

Program Vectors;

Type

Vect=array[1..3] of real; {объявление структуры типа вектора}

var

A,B,C:Vect;

function ProizvVect(x, y : Vect) : real;

var {объявлениелокальных переменных I и p}

i:integer; {I и p могут быть ипользаваны только в теле}

P:real; {функции}

Begin {начало тела функции}

For i:=1 to 3 do

P:=P+x[i]*y[i];

ProizvVect:=P;

end;

procedure ReadVect(var x:Vect); {процедура чтения массива}

var

i : integer;

begin

Writeln('Введите координаты вектора?');

For i:=1 to 3 do

read(x[i]);

end;

begin {начинается тело программы}

ReadVect(A);

ReadVect(B);

ReadVect(C);

Writeln('S= ', ProizvVect(A,B)+ProizvVect(B,C)+ProizvVect(A,C));

Readln;

Readln;

end.

Варианты заданий для самостоятельной работы

  1. Даны натуральные числа n,m. Получить

S=(n!+(n-1)!+(n-2)!)/m!, n>=2;

  1. Даны натуральные числа n. Получить

  1. Даны три вектора А, В, С, заданные своими координатами. Найти сумму S=А+B+A+C (Описать процедуру сложения векторов).

  2. Даны три вектора А, В, С, заданные своими координатами. Найти сумму 3А+2В+4С (Описать процедуру умножения вектора на число.).

  3. По заданным 5-элементным вещественным массивам A, B и C вычислить:

здесь запись min – означает минимум по всем элементам массива.

  1. По заданным 5-элементным вещественным массивам A, B и C вычислить:

здесь запись Sum(X,n) – означает сумму n первых элементов массива.

  1. Дан четырехугольник ABCD, заданный координатами его вершин на плоскости. Найти кратчайший путь от точки A до точки С.

  2. Дан массив 10x10 (Array[1..10, 1..10] of char)- образ экрана. Определите процедуры построения:

а) горизонтальной линии;

b) вертикальной линии.

Нарисовать два прямоугольника на «экране».

  1. Даны числа a, b, c, ….. Выяснить в каком из них сумма цифр больше (определить функцию.)

  2. Дан массив целых чисел x [10]. Вывести на экран представление каждого из этих чисел в двоичной системе счисления (определить функцию.)