Program Zadacha;
Uses Crt;
Const n=10; d=-0.93;
Var
i1,i2,i:integer;
x,z:real;
A:Array[1..n] of real;
Begin
ClrScr;
Randomize;
For i:=1 to n do
A:=random;
{находим 4-ый ненулевой элемент}
i:=0; z:=0;
Repeat
i:=i+1;
if (A<>0) then
z:=z+1;
Until z>=4;
if (i>n) then
writeln('Ненулевого элемента в массиве нет') else
if (A<0) then writeln('Ненулевой меньше 0');
{Перставляем*все ненулевые элементы в конец}
For i1:=1 to n do
for i2:=1 to (n-i1) do
if (A[i2]=0) then
begin
z:=A[i2];
A[i2]:=A[i2+1];
A[i2+1]:=z;
end;
For i:=1 to n do
Writeln('A[',i,']=',A:3:2,' ;');
Readkey;
end.
Задача на массив
Пусть A - одномерный массив N вещественных чисел:
а) Поменять местами минимальный по модулю элемент и элемент, максимально удаленный от числа -0.93.
б) Проверить, является ли четвертый ненулевой элемент отрицательным, а если такого элемента нет - вывести сообщение.
в) Переставить все нулевые элементы в конец массива.
Я вроде бы все сделал кроме пункта а.
Код:
Код:
min:=abs(a[1]);
j:=1;
k:=1;
max:=abs(d-a[1]);
for i:=1 to n do
begin
if abs(a)<min then begin min:=abs(a); j:=i;end;
if abs(d-a)>max then begin max:=abs(d-a); k:=i; end;
end;
swap:=a[j];
a[j]:=a[k];
a[k]:=swap;
j:=1;
k:=1;
max:=abs(d-a[1]);
for i:=1 to n do
begin
if abs(a)<min then begin min:=abs(a); j:=i;end;
if abs(d-a)>max then begin max:=abs(d-a); k:=i; end;
end;
swap:=a[j];
a[j]:=a[k];
a[k]:=swap;
kosfiz, спасибо!