Обработка одномерных массивов - 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.
Объяснение кода листинга программы
Список действий в коде:
- Объявление переменных:
- n (количество элементов массива)
- b (массив для хранения вещественных чисел)
- i, j, k, pos (для обозначения индексов в цикле)
- p (для хранения произведения между 1 и 2 нулевыми элементами)
- Ввод элементов массива с помощью цикла for и функции readln.
- Отображение исходного массива с помощью цикла for и функции write.
- Поиск максимального элемента массива и его номера с помощью переменных pos и i.
- Поиск первого нулевого элемента массива и его номера с помощью переменных j и k.
- Проверка наличия других нулевых элементов между первым и вторым нулевыми элементами с помощью условного оператора if.
- Вычисление произведения между 1 и 2 нулевыми элементами и его отображение с помощью переменных p и i.
- Перемещение элементов массива для отображения только четных и нечетных элементов с помощью цикла for и условного оператора if.
- Отображение отсортированного массива с помощью цикла for и функции write.
- Завершение работы программы с помощью функции readln.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д