Консультация № 165412
20.04.2009, 14:00
60.00 руб.
0 1 1
Здравствуйте, прошу помочь мне. Задача:
В одномерном массиве, состоящем из 35 вещественных элементов вычислить:
а) номер максимального элемента массива.
б) приобразовать массив таким образом, чтоб в первой его половине располагались элементы, стоявшие в нечетных , во второй половине в четных позициях.
Большое спасибо.

Обсуждение

давно
Профессор
401888
1232
20.04.2009, 19:21
общий
это ответ
Здравствуйте, Ложкин Иван Дмитриевич!
Решение задачи с комментариями в приложении.

Приложение:
uses crt;
const n=35;{размер массива}
var a:array[1..n] of real;{тип массива}
i,k,j,imx:byte;{счетчики циклов и номер максимального}
mx,x:real;{максимальный и буфер для обмена элементов}
begin
clrscr;
randomize;
writeln('Массив:');
a[1]:=10*random;
{присваиваем значение первому элементу массива, случайное вещественное число в интервале (0;10)}
write(a[1]:5:2);{выводим его}
mx:=a[1];imx:=1;{пока оно максимальное и номер его=1}
for i:=2 to n do{остальной массив}
begin
a[i]:=10*random;{присваиваем значения}
if a[i]>mx then{если больше предыдущего максимального}
begin
mx:=a[i];{это максимум}
imx:=i;{его номер}
end;
write(a[i]:5:2);{выводим остальной массив}
end;
writeln;
writeln('Номер максимального=',imx);
k:=0;{перестановок пока нет}
for i:=2 to n do{идем по массиву, первое переставлять не надо}
if odd(i)then {если индекс нечетный}
begin
x:=a[i];{запомним число}
k:=k+1;{считаем перестановку}
for j:=i downto k+1 do{от этого номера до предыдущего переставленного+1}
a[j]:=a[j-1];{сдвигаем все на 1 вправо}
a[k+1]:=x;{на освободившееся место ставим запомненное число}
end;
writeln('Перестановка:');
for i:=1 to n do
write(a[i]:5:2);
readln
end.
Форма ответа