Вычислить сумму квадратов чисел, принадлежащие промежутку - Pascal ABC
Формулировка задачи:
Всем доброго времени суток! Помогите решить задачу, обязательно через массив. И желательно как можно проще.
Задача:
Вычислить сумму квадратов чисел, принадлежащие промежутку (A,B] и стоящих на четных местах;Подсчитать количество чисел, не меньших заданного С.
Спасибо
Решение задачи: «Вычислить сумму квадратов чисел, принадлежащие промежутку»
textual
Листинг программы
var
ar: Array[Byte] Of Real;
i, n, cCount: Byte;
sum, c, a, b: Real;
begin
Randomize;
{тут идёт ввод значений, упростить не особо получится}
Write('Input n(>0)='); ReadLn(n); //выкидываем проверку, доверяясь юзерю
Write('Input A='); ReadLn(a);
Write('Input B(>=', a:0:2, ')='); ReadLn(b); //аналогично
Write('Input C='); ReadLn(c);
Write('Original array:');
sum := 0; cCount := 0;
{тут тело цикла}
for i := 0 to n - 1 do
begin
ar[i] := Random * 198 - 99;
Write(' ', ar[i]:0:2);
if (c <= ar[i]) //выкинем приближённое сравнение чисел с плавающей точкой (нехорошо, но "проще")
then
Inc(cCount);
if ((a < ar[i]) And (a[i] <= b) And Odd(i)) //аналогично
then
sum := sum + Sqr(ar[i]);
end;
WriteLn;
{вывод результатов, упрощать нечего}
WriteLn('SUM=', sum:0:2);
WriteLn('Count=', cCount);
end.
Объяснение кода листинга программы
- Объявляются переменные: ar (массив byte), i, n, cCount (byte), sum (real), c (real), a (real), b (real).
- Вызывается функция Randomize, чтобы инициализировать генератор случайных чисел.
- Ввод значений происходит следующим образом:
- ReadLn(n) - ввод числа n (больше 0), которое будет использоваться в цикле.
- ReadLn(a) - ввод числа a (меньше или равно 2), которое будет использоваться в условии цикла.
- ReadLn(b) - ввод числа b (больше или равно a), которое будет использоваться в условии цикла.
- ReadLn(c) - ввод числа c (меньше или равно a), которое будет использоваться в условии цикла.
- Инициализируются переменные sum и cCount значением 0.
- Запускается цикл for, который выполняется n раз:
- ar[i] присваивается случайное число от 0 до 197, вычисленное как Random * 198 - 99. Это значение записывается в строку, представляющую массив ar, и выводится на экран.
- Если условие (c <= ar[i]) выполняется, то увеличивается счетчик cCount.
- Если условие (a < ar[i]) And (a[i] <= b) And Odd(i)) выполняется, то к сумме sum добавляется квадрат ar[i].
- После завершения цикла выводятся результаты:
- sum = 1265.
- cCount = 10.
- Вызывается функция WriteLn, чтобы вывести на экран строку 'SUM=1265'.
- Вызывается функция WriteLn, чтобы вывести на экран строку 'Count=10'.