Паскаль: типи дійсних, оператори розгалуження, функції та їх виклики, процедури, під задачі
3.15. Написати програму обчислення периметра й площі трикутника за координатами його вершин.
3.16. Написати тригонометричні функції з дійсним параметром, значення якого вимірюються в градусах.
3.17. Написати функцію означення за довжинами трьох відрізків, чи утворюють вони трикутник З її використанням написати програму обчислення, скільки трикутників можна утворити з чотирьох заданих різних відрізків.
4. Процедури, підпрограми та параметри
Розглянемо задачу: довільні значення трьох змінних 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.
Проте три майже однакові складені оператори, що задають ті самі дії, тільки з різними змінними – це нудно. Аналогічно функціям,
можна один раз описати обмін значень двох змінних, представлених параметрами, дати ім'я цьому опису, а потім тільки позначати його, тобто вказувати ім'я опису й змінні, чиї значення повинні обмінятися.
На відміну від функцій, при обміні відбувається не обчислення якогось одного значення, а змінюється стан пам'яті програми (недарма обмін заданий складеним оператором). Тому такий опис оформляється й використовується інакше. Опис обміну задається процедурою, а її виклик являє собою окремий оператор.