В задании Proc21 описываем функцию вычисления суммы целых чисел от А до В; в Proc22 вычисляем результат арифметического действия с двумя числами А и В; Proc23 описывает функцию определения четверти, в которой находится точка с заданными координатами.
Proc21. Описать функцию SumRange(A, B) целого типа, находящую сумму всех целых чисел от A до B включительно (A и B — целые). Если A > B, то функция возвращает 0. С помощью этой функции найти суммы чисел от A до B и от B до C, если даны числа A, B, C.
{ Функция возвращает сумму всех целых чисел
от X до Y включительно (X и Y — целые) }
function SumRange(X, Y: integer): integer;
var
i, S: integer;
begin
S := 0; //начальное значение суммы
for i := X to Y do //для всех чисел от X до Y
S := S + i; //сумму увеличиваем на i
SumRange := S; //значение суммы в конце
end;
{ Основная программа }
var
A, B, C: integer;
begin
{ Вводим числа А, В и С: }
write(' A = ');
readln(A);
write(' B = ');
readln(B);
write(' C = ');
readln(C);
{ Вызываем функцию и выводим результат: }
writeln('Сумма чисел от ', A, ' до ', B, ': ', SumRange(A, B));
writeln('Сумма чисел от ', B, ' до ', C, ': ', SumRange(B, C));
end.
**type** integer;
: Представляет 32-битовое целое число со знаком.Диапазон значений: -2 147 483 648 .. 2 147 483 647**type** integer;
: Представляет 32-битовое целое число со знаком.Диапазон значений: -2 147 483 648 .. 2 147 483 647**type** integer;
: Представляет 32-битовое целое число со знаком.Диапазон значений: -2 147 483 648 .. 2 147 483 647**type** integer;
: Представляет 32-битовое целое число со знаком.Диапазон значений: -2 147 483 648 .. 2 147 483 647 Proc22. Описать функцию Calc(A, B, Op) вещественного типа, выполняющую над ненулевыми вещественными числами A и B одну из арифметических операций и возвращающую ее результат. Вид операции определяется целым параметром Op: 1 — вычитание, 2 — умножение, 3 — деление, остальные значения — сложение. С помощью Calc выполнить для данных A и B операции, определяемые данными целыми N1, N2, N3.
{ Функция возвращает результат выполнения одной из
арифметических операций над вещественными числами А и В }
function Calc(A, B: real; Op: byte): real;
begin
{ Проверять переданное в функцию значение Op
будем с помощью оператора выбора case: }
case Op of
1: Calc := A - B; //1 — вычитание
2: Calc := A * B; //2 — умножение
3: Calc := A / B //3 — деление
else Calc := A + B; //остальные значения — сложение
end
end;
{ Основная программа }
var
A, B: real;
N1, N2, N3: byte;
begin
{ Вводим числа А и В: }
write(' A = ');
readln(A);
write(' B = ');
readln(B);
{ Вводим номер операции N1, N2, N3 и вызываем функцию: }
write(' N1 = ');
readln(N1);
writeln('Результат: ', Calc(A, B, N1));
write(' N2 = ');
readln(N2);
writeln('Результат: ', Calc(A, B, N2));
write(' N3 = ');
readln(N3);
writeln('Результат: ', Calc(A, B, N3));
end.
**type** real;
: Представляет число двойной точности с плавающей запятой.Размер: 8 байт Количество значащих цифр: 15 - 16 Диапазон значений: -1.8∙10308 .. 1.8∙10308**type** byte;
: Представляет 8-битовое целое число без знака.Диапазон значений: 0..255**type** real;
: Представляет число двойной точности с плавающей запятой.Размер: 8 байт Количество значащих цифр: 15 - 16 Диапазон значений: -1.8∙10308 .. 1.8∙10308**type** real;
: Представляет число двойной точности с плавающей запятой.Размер: 8 байт Количество значащих цифр: 15 - 16 Диапазон значений: -1.8∙10308 .. 1.8∙10308**type** byte;
: Представляет 8-битовое целое число без знака.Диапазон значений: 0..255 * * *
Вариант 2 для задания Proc22:
{ Функция возвращает результат выполнения одной из
арифметических операций над вещественными числами А и В }
function Calc(A, B: real; Op: byte): real;
begin
{ Сообщаем о названии арифм. действия и вычисляем результат: }
case Op of
1: begin write(' вычитание: '); Calc := A - B end;
2: begin write(' умножение: '); Calc := A * B end;
3: begin write(' деление: '); Calc := A / B end
else begin write(' сложение: '); Calc := A + B end
end
end;
{ Основная программа }
const
Q = 3; //количество вычислений
var
A, B: real;
N, i: byte;
begin
for i := 1 to Q do begin
write('Введите А и В: ');
readln(A, B);
write('Номер операции: N', i, ' = ');
readln(N);
writeln(Calc(A, B, N)); //вызываем функцию
writeln
end
end.
**type** real;
: Представляет число двойной точности с плавающей запятой.Размер: 8 байт Количество значащих цифр: 15 - 16 Диапазон значений: -1.8∙10308 .. 1.8∙10308**type** byte;
: Представляет 8-битовое целое число без знака.Диапазон значений: 0..255**type** real;
: Представляет число двойной точности с плавающей запятой.Размер: 8 байт Количество значащих цифр: 15 - 16 Диапазон значений: -1.8∙10308 .. 1.8∙10308**type** real;
: Представляет число двойной точности с плавающей запятой.Размер: 8 байт Количество значащих цифр: 15 - 16 Диапазон значений: -1.8∙10308 .. 1.8∙10308**type** byte;
: Представляет 8-битовое целое число без знака.Диапазон значений: 0..255 Сравните задачу Proc22 с заданием Case5.
Proc23. Описать функцию Quarter(x, y) целого типа, определяющую номер координатной четверти, в которой находится точка с ненулевыми вещественными координатами (x, y). С помощью этой функции найти номера координатных четвертей для трех точек с данными ненулевыми координатами.
{ Функция возвращает номер координатной четверти, в которой
находится точка с ненулевыми вещественными координатами (x, y) }
function Quarter(x, y: real): byte;
begin
if x > 0 then
if y > 0 then Quarter := 1 //1-я четверть
else
if y < 0 then Quarter := 4 //4-я четверть
else writeln('Точка лежит на оси OX')
else
if x < 0 then
if y > 0 then Quarter := 2 //2-я четверть
else
if y < 0 then Quarter := 3 //3-я четверть
else writeln('Точка лежит на оси OX')
else
if y <> 0 then writeln('Точка лежит на оси OY')
else writeln('Точка лежит в начале координат')
end;
{ Основная программа }
const
n = 3; //количество пар (x, y) для проверки
var
x, y: real; //координаты
i, number: byte;
begin
for i := 1 to n do begin
writeln('Введите координаты:');
write(' x = ');
readln(x);
write(' y = ');
readln(y);
number := Quarter(x, y); //вызываем ф-ю и вычисляем number
if number > 0 then writeln('Номер четверти: ', number);
writeln;
end
end.
**type** real;
: Представляет число двойной точности с плавающей запятой.Размер: 8 байт Количество значащих цифр: 15 - 16 Диапазон значений: -1.8∙10308 .. 1.8∙10308**type** byte;
: Представляет 8-битовое целое число без знака.Диапазон значений: 0..255**type** real;
: Представляет число двойной точности с плавающей запятой.Размер: 8 байт Количество значащих цифр: 15 - 16 Диапазон значений: -1.8∙10308 .. 1.8∙10308**type** byte;
: Представляет 8-битовое целое число без знака.Диапазон значений: 0..255 Сравните задачу Proc23 с заданиями Точка (x, y) в координатной четверти и If21, If22