Вывести множество значений функции, удовлетворяющих условию, и подсчитать количество остальных значений - Pascal
Формулировка задачи:
Дана целочисленная функция f(k)= K^3-25K^2+50K+1000 определена только для целых значений аргумента К. Составить программу вычисления значений функции f(k) для 20 значений аргумента К в интервале (-30,60) с выводом лишь тех значений, которые удовлетворяют заданному условию, и подсчетом остальных ее значений. Задать А=30000, В=60000, М=4.
Значение f(K) заключено либо между значениями T1=-a-sqrt(b+m), T2=sqrt(a+b+m) , но не равно 0
Решение задачи: «Вывести множество значений функции, удовлетворяющих условию, и подсчитать количество остальных значений»
textual
Листинг программы
type
int = integer;
function f(k:int):int; //Сама функция
begin
f:= k * k * k - 25 * k * k + 50 * k + 1000;
end;
function cheque(a, b, m, k:int):boolean; //Проверка условия
var v:int;
begin
v:= f(k);
cheque:= ((v <> 0) and (v > (-a - sqrt(b + m))) and (v < sqrt(a + b + m)));
end;
const n = 20;
var q, w, a, b, m, cur, i:int;
begin
q:= -30;
w:= 60;
a:= 30000;
b:= 60000;
m:= 4;
for i:= 1 to 20 do
begin
randomize;
cur:= random(w - q + 1) + q;
write('Проверяем значение f(k) при k = ', cur, ': ');
if (cheque(a, b, m, cur)) then
writeln('значение ', f(cur), ' в границах диапазона')
else
writeln('значение ', f(cur), ' вне границ диапазона');
end;
end.
Объяснение кода листинга программы
- Объявление типа данных
intкак синонима для целочисленного типа данныхinteger. - Определение функции
fс аргументомkтипаintи возвращаемым значением типаint, которая вычисляет значение кубической функции для заданного значенияk. - Определение функции
chequeс аргументамиa,b,mиkтипаintи возвращаемым значением типаboolean, которая проверяет условие, зависящее от результата функцииf(k). - Объявление константы
nи присвоение ей значения 20. - Объявление переменных
q,w,a,b,m,cur,iтипаint. - Начало основной программы.
- Присвоение переменной
qзначения -30. - Присвоение переменной
wзначения 60. - Присвоение переменной
aзначения 30000. - Присвоение переменной
bзначения 60000. - Присвоение переменной
mзначения 4. - Цикл
forот 1 до 20.- Генерация случайного числа
curв пределах отqдоw. - Вывод сообщения о проверке значения
f(k)приk = cur. - Проверка значения
f(cur)с помощью функцииcheque(a, b, m, cur)и вывод результата на экран. Таким образом, код вычисляет значения функцииf(k)для случайно сгенерированных значенийkв указанном диапазоне и проверяет их соответствие заданному условию, затем выводит результаты проверки в виде сообщений.
- Генерация случайного числа
- Присвоение переменной