if a > b then
a:= a mod b Else b:= b mod a; until (a = 0) or (b = 0); nod:= a + b; end; Begin writeln ('Введите два числа: '); readln (k, l); n:= nod (k, l); writeln ('НОД = ', n); readln end.
Обмен значений переменных Алгоритм решения задачи: От пользователя требуется ввод двух чисел. Эти значения должны быть присвоены двум переменным, причем значение первой должно быть меньше второй. Конечно, можно предупредить об этом пользователя, но возможно ему удобней будет и не знать о требованиях программы. В коде программы можно реализовать процедуру, производящую обмен значений двух переменных, и вызывать ее после каждого очередного ввода пользователя. Программа на языке Паскаль: Var k, l: integer; procedure exchange (var a,b: integer); var c: integer; Begin If a > b then begin c:= a; a:= b; b:= c; end; end; Begin writeln ('Введите два числа: '); readln (k, l); exchange (k, l); writeln ('k = ', k,'; l = ', l); readln end.
Функции вычисления площади геометрических фигур Алгоритм решения задачи: Паскаль сам по себе не предоставляет функции, вычисляющей площадь круга по фактическому параметру – диаметру круга. Однако такую функцию легко определить самостоятельно. После этого функцию, например, circle можно использовать в программе точно так же, как ранее использовались функции sqr или trunc. В первой строке определения функции параметр d как бы говорит «Делай то, что делается со мной, но используй значение, которое будет на моем месте». При вызове функции на место d ставится число, которое таким образом возводится в квадрат, затем результат умножается на 3.14159 и делится на 4.0. Параметр d – это формальный параметр, тогда как конкретное число – фактический параметр. В основной программе, обращающейся к функции circle, можно использовать имя d как имя переменной (или любого другого объекта), не опасаясь помех со стороны функции. Также приведены функции, вычисляющие площади прямоугольника и треугольника; их параметрами являются длины сторон. Все эти функции могут быть вызваны из программы в любой последовательности и любое количество раз. Обратите внимание на то, что функции вызываются с фактическими параметрами x, y, z, тогда как формальные параметры в их определениях – a, b, c, d. Переменная a в основной программе никак не связана с формальным параметром a в функциях. Точно так же отсутствует связь переменной x в основной программе и локальной переменной x в функции triangle. Определенные здесь функции различаются по числу параметров. В функциях может быть любое фиксированное число параметров; определить функцию с переменным числом параметров (например, как в случае read(a), read(a, b), read(a, b, c)) нельзя – такой возможностью пользуется только сам Pascal. Программа на языке Паскаль: Var choice: char; a, x, y, z: real; function circle(d: real): real; const pi = 3.14159; Begin circle:= pi * sqr(d) / 4.0; end; function rectangle(a, b: real): real; Begin rectangle:= a * b end; function triangle(a, b, c: real): real; var x: real; Begin x:= (a + b + c) / 2; triangle:= sqrt(x * (x - a) * (x - b) * (x - c)) end; Begin Repeat read(choice); Case choice of 'c': begin readln(x); a:= circle(x) end; 'r': begin readln(x, y); a:= rectangle(x, y) end; 't': begin readln(x, y, z); a:= triangle(x, y, z) End end; writeln('Square: ', a:8:2); until choice = 'q'; readln end.
"Заем". Арифметические выражения, возведение в степень Алгоритм решения задачи: Месячная выплата m по займу в s рублей на n лет под процент pвычисляется по формуле: Программа, вычисляющая значение m (месячную выплату) по известным s (сумме займа), p (проценту) и n (количеству лет), может выглядеть так: Программа на языке Паскаль: Var m, s, p, n, r, a: real; Begin write('Величина заема: '); readln(s); write('Процент: '); readln(p); write('Количество лет: '); readln(n); r:= p / 100; a:= exp(ln(1 + r) * n); m:= (s * r * a) / (12 * (a - 1)); m:= trunc(100 * m + 0.5) / 100; writeln; writeln('Месячная выплата: ', m:5:2); writeln('Прибыль банка: ', m * 12 * n - s:5:2); readln end. Примечания: Выражение exp(ln(1 + r) * n) вычисляет (1 + r)n.
|