Партнерка на США и Канаду по недвижимости, выплаты в крипто
- 30% recurring commission
- Выплаты в USDT
- Вывод каждую неделю
- Комиссия до 5 лет за каждого referral
9. В двумеpном массиве A(4,4) пpоизвольных чисел вычислить количество элементов, модуль разности индексов котоpых pавен 2.
10. В двумеpном массиве пpоизвольных чисел А(10,10) найти наибольший элемент главной диагонали.
11. В двумеpном массиве пpоизвольных чисел А(10,10) найти наименьший элемент побочной диагонали.
12. В двумеpном массиве пpоизвольных чисел В(5,7) взаимно поменять местами 3-ю и 5-ю стpоки. Вывести исходный массив и массив, полученный после пеpестановки.
13. В двумеpном массиве пpоизвольных чисел В(4,7) взаимно поменять местами 2-й и 5-й столбцы. Вывести исходный массив и массив, полученный после пеpестановки.
14. Элементами двумерного массива 5х4 являются оценки 5 учащихся по биологии. Определить средний балл каждого ученика.
15. Заполнить двумерный массив температурами 4 недель месяца. Определить на какую неделю приходится максимальная средняя температура.
§9. Функции и процедуры
При создании программы для решения более или менее сложной задачи выполняется разделение этой задачи на подзадачи, этих подзадач – на более мелкие подзадачи и так далее до тех пор, пока подзадачи не станут легко программируемыми. Для такой организации используются подпрограммы. Кроме этого, в программах часто приходится повторять некоторые аналогичные действия многократно. Используя подпрограммы, можно единожды описать действия в подпрограмме, а затем лишь только вызывать ее. Такой принцип дефрагментации программы называется нисходящим программированием и соответствует принципам структурного программирования, в основу которого и положено понятие подпрограммы. Таким образом, с помощью подпрограмм можно улучшить структуру программы, а также избавиться от необходимости многократного повторения в тексте программы аналогичных фрагментов. Все это делает программу более надежной, повышается ее устойчивость к ошибкам программирования и непредвиденным последствиям при модификации.
Любая последовательность команд являющаяся частью основного алгоритма и имеющая собственное имя называется подпрограммой.
Использование подпрограмм:
- дает возможность записать повторяющуюся часть алгоритма только один раз, а затем вызывать ее по имени в нужном месте программы; позволяет конструировать программу как набор отдельных подпрограмм – метод пошаговой детализации; позволяет сложную программу сделать более понятной и удобной.
Подпрограммы очень похожи на программы. Каждая подпрограмма представляет собой независимый алгоритм решения определенной небольшой задачи. Обычно подпрограмма имеет один или несколько входных параметров, для которых нужно решить данную задачу. После выполнения подпрограммы получается определенный результат. Это может быть один или несколько выходных параметров. В Паскале можно выделить два основных вида подпрограмм:
1) функции;
2) процедуры.
Функции
Паскаль позволяет выполнить сложные математические вычисления, при этом можно использовать различные элементарные функции. Эти функции называются стандартными, их можно использовать в алгебраических выражениях в любом месте программы.
При решении некоторых задач нужно вычислить функцию, не входящую в число стандартных функций. Для этого есть возможность самим определить эту функцию в программе. Если в программе необходимо многократно вычислять значение функции, которая не является стандартной функцией Паскаль, то можно самим определить эту функцию и потом использовать ее в своей программе наравне со стандартными функциями. Функции описываются в разделе описаний после служебного слова FUNCTION.
Формат описания:
function <имя>(<аргументы>:<тип>):<тип функции>;
{раздел описания локальных параметров}
begin
<тело функции>
<имя>:=<выражение>; {обязательный оператор}
end;
<имя> - это идентификатор функции, по которому можно обращаться к функции и использовать ее;
<аргументы> - аргументы функции;
<тип> - тип аргументов функции;
<тип функции> - тип значения функции;
<тело функции> - простой или составной операторы.
В общем случае функция может содержать описание констант, переменных и прочих объектов, используемых функцией для ее внутренних вычислений.
Причем:
а) в левой части оператора присваивания стоит идентификатор функции;
б) тело функции заканчивается оператором присваивания.
Аргументы, указанные в описании функции, называют формальными, чтобы подчеркнуть, что они получают смысл только после задания фактических аргументов при использовании (обращении) к функции.
Примеры
а) Опишем функцию вычисления расстояния между двумя точками (x1, y1) и (x2, y2)
function rast(x1,y1,x2,y2: real): real;
begin
rast:=sqrt(sqr(x1–x2)+sqr(y1–y2));
end;
б) Зададим сложную функцию t(x), определяемую следующими формулами:
; где
; 
function t(x: real): real;
var y, z: real;
begin
y:=sqrt(x+5)/2;
z:=(exp(3*ln(x))–3)/(abs(x)+1);
t:=sqr(x)+sqrt(y)/x–(sqr(y)+exp(1/3*ln(z)));
end;
Для использования функций в программе нужно указать имя функции и фактические аргументы в круглых скобках через запятую.
Примеры:
а) Для вычисления периметра треугольника по координатам его вершин (xa, ya), (xb, yb), (xc, yc) запишем следующий фрагмент программы, использующей пользовательскую функцию RAST:
. . .
r1:=RAST(xa, ya, xb, yb);
r2:=RAST(xa, ya, xc, yc);
r3:=RAST(xb, yb, xc, yc);
p:=r1+r2+r3;
. . .
б) Для вычисления суммы сложных функций в трех точках a, b, c, используем следующую запись оператора присваивания
. . .
sum:=T(a)+T(b)+T(c);
. . .
Функция может иметь любое число аргументов. Они определяются как список имен переменных любого типа, разделенных запятыми и заключенных в скобки. В описании функции аргументы являются формальными и реально не существуют.
При вызове функции каждому формальному аргументу присваивается значение фактического аргумента. Значения фактических аргументов используются в выражении (формуле) самой функции и значение этого выражения считается результатом функции. Фактические аргументы должны по числу и расположению в списке, а также типу, соответствовать списку формальных аргументов.
Особенности функций:
1) результатом работы функции всегда является одно значение;
2) функция не может выполняться самостоятельно, а обязательно в составе какого-либо оператора;
3) значение функции может быть получено только с помощью идентификатора, соответствующего имени функции.
Пример: Вычислить сумму и произведение функций y(x) = LN(x2 + Öx + 1) и
f(x) = x2 - 2x + 5 при x=5; разность и частное этих функций при х=-6.
Program func;
uses crt;
var x, s,p, r,ch: real;
function y(t: real): real;
begin
y:=ln(sqr(t)+sqrt(t)+1);
end;
function f(t: real): real;
begin
f:=sqr(t)-2*t+5;
end;
Begin
clrscr;
s:=y(5)+f(5); p:=y(5)*f(5);
writeln(‘Сумма функций в точке ‘,x:5:3,’равна’,s:5:3);
writeln(‘Произведение функций в точке ‘,x:5:3,’равно’,p:5:3);
x:=-6;
r:=y(x)-f(x); ch:=y(x)/f(x);
writeln(‘Разность функций в точке ‘,x:5:3,’равна’,r:5:3);
writeln(‘Частное функций в точке ‘,x:5:3,’равно’,ch:5:3);
End.
Вопросы
Что такое подпрограмма? Что такое нисходящее программирование? В чем преимущество использования подпрограмм? Приведите примеры использования подпрограмм. Какие виды подпрограмм используются в Паскаль? Какие стандартные функции Паскаль Вы знаете? Для чего используются пользовательские функции? Где и как описывается функция? Что такое формальный аргумент функции? Что такое фактический аргумент функции? Как используются функции в основной программе? Опишите выполнение функций. В чем особенности пользовательских функций?Задания
1. Составить программу вычисления площади треугольника по координатам его вершин.
2. Составить программу вычисления функции
при заданном Х.
3. Три спортсмена одновременно начинают движение из одной точки. Первый спортсмен начинает движение со скоростью V11 км/час и увеличивает ее за T1 часов до V21 км/час. Аналогичные параметры второго спортсмена: V12, T2, V22, третьего спортсмена: V13, T3, V23. Определить, какой спортсмен пройдет больший путь через m часов, n часов, k часов?
4. Известны длины сторон произвольного треугольника. Вычислить его углы с помощью теоремы косинусов.
Процедуры
Процедура позволяет выделить повторяющиеся операторы в самостоятельную часть программы и многократно обращаться к ней по мере необходимости.
Самостоятельный характер процедур позволяет поручать их написание разным программистам. Использование процедур позволяет экономить память, так как память для хранения формальных переменных процедуры, выделяется только на время работы процедуры. Процедуры, в отличие от функций пользователя могут вырабатывать несколько значений.Процедуры описываются в разделе описаний после служебного слова PROCEDURE.
Формат записи:
procedure <имя>(<аргументы>:<тип_ар>; VAR <значения>:<тип_зн>);
{раздел описания локальных параметров}
begin
<тело процедуры>;
end;
<имя> - идентификатор процедуры, по которому можно обращаться к процедуре и использовать ее;
<аргументы> - аргументы процедуры (входные параметры);
<тип_ар> - тип аргументов процедуры;
<значения> - значения процедуры (выходные параметры);
<тип_зн> - тип значений процедуры;
<тело процедуры> - совокупность операторов, реализующих действия процедуры.
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |


