Числовые линейные массивы - Pascal ABC

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

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

кто знает как это решать?

Решение задачи: «Числовые линейные массивы»

textual
Листинг программы
const n=25;
var b:array[1..n] of integer;
    i,j,imax,s1,s2,x:integer;
begin
randomize;
writeln('Исходный вектор');
s1:=0;
imax:=1;
for i:=1 to n do
 begin
  b[i]:=10+random(90);
  write(b[i]:3);
  if(i mod 2=0)and(b[i] mod 2=0) then s1:=s1+b[i];
  if b[i]>b[imax] then imax:=i;
 end;
writeln;
writeln('Сумма четных элементов на четных местах=',s1);
writeln('Максимальный элемент b[',imax,']=',b[imax]);
if imax in[n-1,n] then s2:=0
else
 begin
  s2:=0;
  for i:=imax+1 to n-1 do
  s2:=s2+b[i];
 end;
writeln('Сумма между последним и максимальным элементами=',s2);
if imax=1 then writeln('Максимальный элемент первый, обмена нет')
else
 begin
  x:=b[1];
  b[1]:=b[imax];
  b[imax]:=x;
  writeln('Обмен первого и максимального');
  for i:=1 to n do
  write(b[i]:3);
  writeln;
 end;
for i:=1 to n-1 do
for j:=i+1 to n do
if b[i]<b[j] then
 begin
  x:=b[i];
  b[i]:=b[j];
  b[j]:=x;
 end;
writeln('Вектор отсортирован по убыванию');
for i:=1 to n do
write(b[i]:3);
end.

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

Список действий в коде:

  1. Инициализация переменных и массива
    • const n=25; - объявление константы n равной 25
    • var b:array[1..n] of integer; - объявление массива b размером n для хранения целых чисел
    • var i,j,imax,s1,s2,x:integer; - объявление шести переменных типа integer для выполнения различных операций
  2. Инициализация начального вектора
    • randomize; - инициализация генератора случайных чисел
    • writeln('Исходный вектор'); - вывод заголовка для раздела, содержащего исходный вектор
    • for i:=1 to n do - начало цикла, который выполняется n раз, где n - размер массива
    • b[i]:=10+random(90); - присваивание каждому элементу массива b случайного числа в диапазоне от 10 до 99
    • write(b[i]:3); - вывод каждого элемента массива в формате трехзначного числа
    • if(i mod 2=0)and(b[i] mod 2=0) then s1:=s1+b[i]; - проверка, является ли текущий элемент четным и если да, то прибавление его к сумме четных элементов s1
    • if b[i]>b[imax] then imax:=i; - проверка, является ли текущий элемент максимальным и если да, то обновление индекса imax
    • end; - конец цикла
  3. Вывод суммы четных элементов на четных местах и максимального элемента
    • writeln('Сумма четных элементов на четных местах=',s1); - вывод суммы четных элементов на четных местах
    • writeln('Максимальный элемент b[',imax,']=',b[imax]); - вывод индекса и значения максимального элемента
  4. Проверка, является ли максимальный элемент первым, и если нет, то обмен первого и максимального элементов
    • if imax=1 then writeln('Максимальный элемент первый, обмена нет') - вывод сообщения, если максимальный элемент находится на первом месте
    • else - начало условного блока
    • x:=b[1]; - присваивание переменной x значения первого элемента массива b
    • b[1]:=b[imax]; - присваивание первому элементу массива значения максимального элемента
    • b[imax]:=x; - присваивание максимальному элементу значения переменной x
    • writeln('Обмен первого и максимального'); - вывод сообщения об обмене первого и максимального элементов
    • end; - конец условного блока
  5. Сортировка вектора в порядке убывания
    • for i:=1 to n-1 do - начало внешнего цикла, который выполняется n-1 раз
    • for j:=i+1 to n do - начало внутреннего цикла, который выполняется n-i раз
    • if b[i]<b[j] then - проверка, является ли элемент b[i] меньше элемента b[j]
    • begin - начало условного блока
    • x:=b[i]; - присваивание переменной x значения элемента b[i]
    • b[i]:=b[j]; - присваивание элементу b[i] значения элемента b[j]
    • b[j]:=x; - присваивание элементу b[j] значения переменной x
    • end; - конец условного блока
    • end; - конец внешнего цикла
  6. Вывод отсортированного вектора
    • writeln('Вектор отсортирован по убыванию'); - вывод сообщения о сортировке вектора
    • for i:=1 to n do - начало цикла, который выполняется n раз
    • write(b[i]:3); - вывод каждого элемента массива в формате трехзначного числа
    • end; - конец цикла

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


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

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

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