Програмування: Функції, процедури та підпрограми, Детальна інформація
Програмування: Функції, процедури та підпрограми
При обчисленні останнього виразу спочатку виконується "внутрішній" виклик min(d1, d2). Значення, обчислене при його виконанні, стає аргументом у "зовнішньому" виклику.
Задачі
1). Написати функцію обчислення за дійсним параметром x:
а) його знака (sign(x)=-1, 0 або 1 відповідно при x<0, x=0, x>0);
б)* ceil(x) – найменшого цілого, що не менше, ніж значення параметра (для від'ємних значень параметра можливі два варіанти означення).
2). Написати програму обчислення периметра й площі трикутника за координатами його вершин.
3). Написати тригонометричні функції з дійсним параметром, значення якого вимірюються в градусах.
4). Написати функцію означення за довжинами трьох відрізків, чи утворюють вони трикутник З її використанням написати програму обчислення, скільки трикутників можна утворити з чотирьох заданих різних відрізків.
2.Процедури, підпрограми та параметри
Розглянемо задачу: довільні значення трьох змінних a, b, c переставити за необхідності так, щоб вони були упорядковані за неспаданням, тобто щоб мали місце нерівності a? b? c. Алгоритм розв'язання цієї задачі простий:
якщо a>b, то обміняти значення змінних a і b;
{гарантовано, що a? b}
якщо b>c, то обміняти значення змінних b і c;
{гарантовано, що b? c і a? c; але нерівність a? b не гарантована, тому:}
якщо a>b, то обміняти значення змінних a і b.
Обмін значень двох змінних, наприклад, a і b, задається трьома операторами з допоміжною змінною: t:=a; a:=b; b:=t. Мовою Паскаль алгоритм записується так:
program sort3(input, output);
var a, b, c, t : integer;
begin
writeln('задайте три цілих'); readln(a, b, c);
if a>b then begin t:=a; a:=b; b:=t end;
if b>c then begin t:=b; b:=c; c:=t end;
if a>b then begin t:=a; a:=b; b:=t end;
writeln('упорядкування: ', a, ' ', b, ' ', c)
end.
Проте три майже однакові складені оператори, що задають ті самі дії, тільки з різними змінними – це нудно. Аналогічно функціям,
можна один раз описати обмін значень двох змінних, представлених параметрами, дати ім'я цьому опису, а потім тільки позначати його, тобто вказувати ім'я опису й змінні, чиї значення повинні обмінятися.
На відміну від функцій, при обміні відбувається не обчислення якогось одного значення, а змінюється стан пам'яті програми (недарма обмін заданий складеним оператором). Тому такий опис оформляється й використовується інакше. Опис обміну задається процедурою, а її виклик являє собою окремий оператор.
Процедура має загальний вигляд
procedure ім'я(означення параметрів);
Задачі
1). Написати функцію обчислення за дійсним параметром x:
а) його знака (sign(x)=-1, 0 або 1 відповідно при x<0, x=0, x>0);
б)* ceil(x) – найменшого цілого, що не менше, ніж значення параметра (для від'ємних значень параметра можливі два варіанти означення).
2). Написати програму обчислення периметра й площі трикутника за координатами його вершин.
3). Написати тригонометричні функції з дійсним параметром, значення якого вимірюються в градусах.
4). Написати функцію означення за довжинами трьох відрізків, чи утворюють вони трикутник З її використанням написати програму обчислення, скільки трикутників можна утворити з чотирьох заданих різних відрізків.
2.Процедури, підпрограми та параметри
Розглянемо задачу: довільні значення трьох змінних a, b, c переставити за необхідності так, щоб вони були упорядковані за неспаданням, тобто щоб мали місце нерівності a? b? c. Алгоритм розв'язання цієї задачі простий:
якщо a>b, то обміняти значення змінних a і b;
{гарантовано, що a? b}
якщо b>c, то обміняти значення змінних b і c;
{гарантовано, що b? c і a? c; але нерівність a? b не гарантована, тому:}
якщо a>b, то обміняти значення змінних a і b.
Обмін значень двох змінних, наприклад, a і b, задається трьома операторами з допоміжною змінною: t:=a; a:=b; b:=t. Мовою Паскаль алгоритм записується так:
program sort3(input, output);
var a, b, c, t : integer;
begin
writeln('задайте три цілих'); readln(a, b, c);
if a>b then begin t:=a; a:=b; b:=t end;
if b>c then begin t:=b; b:=c; c:=t end;
if a>b then begin t:=a; a:=b; b:=t end;
writeln('упорядкування: ', a, ' ', b, ' ', c)
end.
Проте три майже однакові складені оператори, що задають ті самі дії, тільки з різними змінними – це нудно. Аналогічно функціям,
можна один раз описати обмін значень двох змінних, представлених параметрами, дати ім'я цьому опису, а потім тільки позначати його, тобто вказувати ім'я опису й змінні, чиї значення повинні обмінятися.
На відміну від функцій, при обміні відбувається не обчислення якогось одного значення, а змінюється стан пам'яті програми (недарма обмін заданий складеним оператором). Тому такий опис оформляється й використовується інакше. Опис обміну задається процедурою, а її виклик являє собою окремий оператор.
Процедура має загальний вигляд
procedure ім'я(означення параметрів);
The online video editor trusted by teams to make professional video in
minutes
© Referats, Inc · All rights reserved 2021