Var t:real; //промежуточная переменная

      Комментарии к записи Var t:real; //промежуточная переменная отключены

Лабораторная работа №7

Разработка, отладка и испытание алгоритмов и программ с использованием процедур и функций

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

ОПИСАНИЕ ПРОЦЕДУРЫ

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

Procedure[(Список формальныхпараметров)]; Разделы описаний процедуры Begin Тело процедуры End;

При вызове процедуры ее формальные параметры заменяются на фактические — это параметры, которые передаются процедуре при ее вызове. Фактические и формальные параметры должны соответствовать:

  • потипу,
  • попорядку следования
  • поколичеству.

Формальные параметры описываются в заголовке процедуры. Они делятся на параметры-значения — это входные данные. Перед ними не ставится служебное слово Var.

Парметры-переменные — это выходные и входные данные. Перед ними ставится служебное слово Var.

В процедуре может быть любое конечное количество выходных данных (результатов). Все переменные делятся на глобальные (описываются в разделе описаний основной программы) и локальные (описываются в разделе описаний подпрограммы). Локальные переменные «живут» только во время работы подпрограммы.

Вызов процедуры

Вызов процедуры осуществляется путем указания имени процедуры с указанием фактических параметров. Например, Summa(a,150,s).

Пример . Найти значение выражения y=3×10+2×5+x3.

Решение. Для решения данной задачи воспользуемся процедурой, вычисляющей степень аn .

Var x, y, s1, s2, s3: integer; {x, y, s1, s2, s3 — глобальные переменные}

Procedure St (a, n: integer; Var s: integer);
{a, n, S — формальные параметры}

{a,n — параметры- значения, S — параметр -переменная }

Var i: integer; {i— локальная переменная}

Begin

S:=1;

For i:=1 to N do s:=s*a;

End; {ProcedureSt }

BEGIN

Read(x);

ST(x, 10,s1); ST(x, 5,s2); ST(x, 3,s3);

Y:=3*s1+2*s2+s3;

Write(y);

End.

Описание функции

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

! В теле функции обязательно должен быть один и только один операторприсваивания, в левой части которого стоит имя функции, а в правой — ее значение.Иначе значение функции не определено.

Таким образом, общий вид описания функции следующий:

Function Имя [ (Список формальных параметров)]: Тип результата;

Begin

End;

Вызов функции

Вызов функции осуществляется в выражениях с указанием имени и фактических параметров: например, y: =f(1,x)+f(2*x,3).

Пример . Найти

Решение.

Var n: integer;

c: integer;

Function Factor (n:integer): integer;

Var i:integer; rez: integer;

Begin

Rez:=1;

For i:=1 to N do

rez:=rez*i;

Factor:=rez;

End;

Begin

Readln (n);

с:=factor(n);

Writeln (c);

End.

Задания

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

2.С помощь следующей процедуры произведите обмен значениями между двумя переменными:

procedure Swap (var x,y: real);

var t:real; //промежуточная переменная

Begin

t:=x; //запоминаем значение x

x:=y; //переменной x присваиваем значение y

y:=t; //переменной y присваиваем t, равное x

end;

  1. Опишитефункцию, определяющую максимальное из двух чисел, и с помощью этой функциивычислите значение выражения: .
  2. Данызначения c,d,l,k. Напишите функцию min для вычислениязначения следующего выражения: .
  3. Ввести 3 целых массива из n чиселкаждый: А, В, С. Вычислить значение , где max(A) — максимальный элемент массиваА (аналогично max(B) и max(C)). Вычислениемаксимального элемента массиваоформить в виде подпрограммы. Формула имеет смысл, если max(C)0.
  4. Треугольникзадан длинами своих сторон. Найдите длины его медиан. Вычисление длинымедианы оформить в виде подпрограммы ( – длина медианы,проведенной из вершины B).

***

Статьи к прочтению:

Why does the universe exist? | Jim Holt


Похожие статьи:

  • Определение строковой переменной

    Рис. 12. Данные строкового типа в памяти Последовательность \0 называется нулевымсимволом и рассматривается как один символ. Как вы помните, язык Си не…

  • Переменные, константы и их типы

    Данные в компьютере можно рассматривать как ячейки памяти, имеющие свои имена (идентификаторы). Все данные в программе на языке Delphi должны быть…