Найти остаток от деления целой части значения функции на число

Задача

Найти остаток от деления целой части значения функции y = ln(x²+ab) на 7 и, в зависимости от его величины, напечатать сообщение об одном из дней недели, пронумеровав их от 0 до 6. Значения переменных а, b, x получить случайным образом на произвольном интервале (границы интервала ввести с клавиатуры).

Решение

Алгоритм решения задачи: 

  1. Сгенерировать случайные значения переменных x, a и b в диапазоне от min до max. Для этого используется выражение random() * (max - min) + minmax - min - размер диапазона; умножив на него случайное число от 0 до 1, получим случайное число от 0 до числа-размера диапазона. Прибавив затем минимум, сдвинем диапазон в нужную сторону.
  2. Вычислить значение функции.
  3. Отбросить дробную часть значения функции и затем найти остаток от деления на 7. Присвоить результат переменной n.
  4. Из массива-констранты извлечь значение по индексу n.

Программа на языке Паскаль: 

const
    day: array[0..6] of string = ('пн','вт','ср','чт','пт','сб','вс');
var
    min,max,x,a,b,y: real;
    n: byte;
begin
    randomize;
    write('min: '); readln(min);
    write('max: '); readln(max);
    x := random() * (max - min) + min;
    a := random() * (max - min) + min;
    b := random() * (max - min) + min;
    y := ln(x*x + a*b);
    writeln('y = ',y:6:2);
    n := trunc(y) mod 7;
    writeln(day[n]);
end.

Примеры выполнения программы:

min: -2.5
max: 8.9
y =   0.79
пн
min: 1
max: 32000
y =  19.60
сб

Тема

Одномерные массивы

Уровень

Комбинированные задачи

Добавить комментарий