Обработка одномерных массивов - Turbo Pascal (249028)

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

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

помогите доделать программу,преподаватель обнаружил ошибку
В одномерном массиве, состоящем из n вещественных элементов, вычислить: 1.Номер максимального элемента массива. 2. Произведение элементов массива, расположенных между первым и вторым нулевыми элементами. 3. Преобразовать массив таким образом, чтобы в первой его половине располагались элементы, стоявшие на нечетных позициях, а во второй половине - элементы, стоявшие на четных позициях.

Решение задачи: «Обработка одномерных массивов»

textual
Листинг программы
uses crt;
const n=10;
var b:array [1..n] of real;
    i,j,k,pos:integer;
    p:real;
begin
clrscr;
writeln('Введите элементы массива, вещественные числа, в том числе ноли');
for i:=1 to n do
 begin
  write('b[',i,']=');
  readln(b[i]);
 end;
clrscr;
writeln('Исходный массив');
pos:=1;
j:=0;
k:=0;
for i:=1 to n do
 begin
  write(b[i]:0:2,' ');
  if b[i]>b[pos]then pos:=i;
  if b[i]=0 then
   begin
    if j=0 then j:=i
    else if k=0 then k:=i;
   end;
 end;
writeln;
writeln('Максимальный элемент=',b[pos]:0:3,'  его номер=',pos);
if j=0 then writeln('В массиве нет нулевых элементов')
else if k=0 then writeln('В массиве нет двух нулевых элементов');
if k-i=1 then writeln('Между 1 и 2 нулевыми элементами нет других элементов')
else
 begin
  p:=1;
  for i:=j+1 to k-1 do
  p:=p*b[i];
  writeln('Произведение между 1 и 2 нулевыми элементами=',p:0:3);
 end;
k:=0;
for i:=1 to n do
if odd(i) then
 begin
  k:=k+1;
  p:=b[i];
  for j:=i downto k+1 do
  b[j]:=b[j-1];
  b[k]:=p;
 end;
for i:=1 to n do
write(b[i]:0:2,' ');
readln
end.

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

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

  1. Объявление переменных:
    • n (количество элементов массива)
    • b (массив для хранения вещественных чисел)
    • i, j, k, pos (для обозначения индексов в цикле)
    • p (для хранения произведения между 1 и 2 нулевыми элементами)
  2. Ввод элементов массива с помощью цикла for и функции readln.
  3. Отображение исходного массива с помощью цикла for и функции write.
  4. Поиск максимального элемента массива и его номера с помощью переменных pos и i.
  5. Поиск первого нулевого элемента массива и его номера с помощью переменных j и k.
  6. Проверка наличия других нулевых элементов между первым и вторым нулевыми элементами с помощью условного оператора if.
  7. Вычисление произведения между 1 и 2 нулевыми элементами и его отображение с помощью переменных p и i.
  8. Перемещение элементов массива для отображения только четных и нечетных элементов с помощью цикла for и условного оператора if.
  9. Отображение отсортированного массива с помощью цикла for и функции write.
  10. Завершение работы программы с помощью функции readln.

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


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

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

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