![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Я написал, но ответ не тот который нужен. Где ошибка?
Код:
var
a:array[0..4] of integer;
i,j,l,k,max,min:integer;
begin
for i:=0 to 4 do
a[i]:=StrToInt(StringGrid1.Cells[i,0]);
for i:=0 to 4 do begin
min:=1;
if (a[i]<1) then
for j:=i+1 to 4 do if (a[i]<a[Min]) then min:=j;
s:=a[i];
a[i]:=a[Min];
a[min]:=s;
end;
for i:=0 to 4 do begin
max:=1;
if (a[i]>1) then
for l:=i+1 to 4 do if (a[i]>a[Max]) then max:=l;
k:=a[i];
a[i]:=a[Max];
a[max]:=k;
StringGrid2.Cells[i,0]:=IntToStr(a[i]);
end;
end; |
|
#2
|
|||
|
|||
|
непонятно, что конкретно нужно сделать.
Просто переместить те элементы, которые < 1, в начало массива? Типа так: Код:
var
I, J, tmp : Integer;
A : Array [0..4] Of Integer;
begin
// read and array
for i:=0 to 4 do
a[i]:=StrToInt(StringGrid1.Cells[i,0]);
// "sorting"
For I := 0 To 4 Do
If A[i] >= 1 Then
For J := I + 1 To 4 Do
If A[J] < 1 Then
Begin
tmp := A[J];
A[J] := A[i];
A[i] := tmp;
Break;
End;
// Print array
for i:=0 to 4 do
StringGrid1.Cells[i,0] := IntToStr(a[i])
end; |
|
#3
|
|||
|
|||
|
Вот задание "Превратить массив таким образом, чтобы сначала расположились все элементы модуль которых не превышает 1, а затем все остальные". Не в начале а которые меньше 1.Я так понял или я ошибся?
|
|
#4
|
|||
|
|||
|
Ты ошибся.
Причем в 2х местах. 1. У тебя должно быть не integer, а как минимум Double для типа элементов массива 2. Сравнение идет по модулю, т.е. абсолютному значению Должно быть как-то так: Код:
var
I, J : Integer;
tmp : Double;
A : Array [0..4] Of Double;
begin
// read and array
for i:=0 to 4 do
a[i]:=StrToFloat(StringGrid1.Cells[i,0]);
// "sorting"
For I := 0 To 4 Do
If Abs(A[i]) >= 1 Then
For J := I + 1 To 4 Do
If Abs(A[J]) < 1 Then
Begin
tmp := A[J];
A[J] := A[i];
A[i] := tmp;
Break;
End;
// Print array
for i:=0 to 4 do
StringGrid1.Cells[i,0] := FloatToStr(a[i])
end; |
|
#5
|
|||
|
|||
|
Так тогда не понял задание, можете объяснить. Я использовал ваш код, ввёл числа: 3 разных числа, 1 и 0. И поменялось 1 число на 0. В чём смысл задания?
|
|
#6
|
|||
|
|||
|
Видимо, смысл в том, что бы перенести значения от -1 до 1 (по модулю меньше 1) в начало массива.
|