Массив - Turbo Pascal (249002)

Узнай цену своей работы

Формулировка задачи:

Вариант 5. В одномерном массиве, состоящем из n вещественных элементов, вычислить: 1.Максимальный элемент массива. 2. Сумму элементов массива, расположенных до последнего положительного элемента. 3. Сжать массив, удалив из него элементы, модуль которых находится в интервале [a,b]. Освободившиеся в конце массива элементы заполнить нулями.

Решение задачи: «Массив»

textual
Листинг программы
const n=8; W=7; D=2;
var
  x: array [1..n] of Real;
  a, b, s, ts, mx: Real;
  i, j: Integer;
begin
  Randomize;
  for i:=1 to n do x[i]:=-50+100*Random;
  Write('X ='); for i:=1 to n do Write(' ',x[i]:W:D); WriteLn;
  Write('a b: '); ReadLn(a,b);
  mx:=x[1]; {j:=0;}
  for i:=1 to n do begin
    if x[i]>0 then begin
      s:=s+ts; ts:=0;
    end;
    ts:=ts+x[i];
    if mx<x[i] then mx:=x[i];
    if not ((a<=Abs(x[i])) and (Abs(x[i])<=b)) then begin
      Inc(j); x[j]:=x[i];
    end;
  end;
  for i:=j+1 to n do x[i]:=0;
  WriteLn('max = ',mx:W:D);
  WriteLn('sum до последнего >0 = ',s:W:D);
  Write('X''='); for i:=1 to n do Write(' ',x[i]:W:D); WriteLn;
end.

Объяснение кода листинга программы

В этом коде:

  1. Объявляются переменные:
    • n — количество элементов в массиве (8);
    • W, D — параметры вывода чисел с плавающей точкой (7, 2 соответственно);
    • x — массив из n элементов типа Real;
    • a, b, s, ts, mx — переменные типа Real;
    • i, j — целочисленные переменные для обозначения индексов.
  2. Инициализируются случайные значения для всех элементов массива x с помощью цикла for и функции Random.
  3. Выводятся на экран все элементы массива x с помощью цикла for и функции Write.
  4. Считываются значения a и b с помощью функции ReadLn.
  5. Переменная mx инициализируется значением первого элемента массива x.
  6. Цикл for проходит по всем элементам массива x. Если значение элемента положительное, то к сумме s прибавляется значение элемента ts, а ts обнуляется. Если максимальное значение из всех элементов меньше текущего, то оно присваивается переменной mx. Если текущий элемент выходит за пределы диапазона, заданного значениями a и b, то он не учитывается, а вместо него на соответствующем индексе массива x хранится ноль.
  7. Цикл for проходит по элементам массива x, начиная с индекса j+1 до конца массива, и всем элементам присваивается значение 0.
  8. Выводится на экран максимальное значение из элементов массива x с помощью функции Write.
  9. Выводится на экран сумма элементов массива x, больших нуля, с помощью функции Write.
  10. Выводится на экран строка X''=, а затем все элементы массива x с помощью цикла for и функции Write.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 4.091 из 5
Похожие ответы