![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Всем привет!
Помогите разобраться... Имеется массив чисел : M: Array[0..999] of word; Пример: 567, 324, 12, 478, 455, 11 Как разобрать его по-парам?, чтобы вышло: 567, 324 12, 478 455, 11 ... И далее работать с этими числами ... Но и это ещё не всё! Массив может содержать нечётное количество элементов. В этом случае, нужно также разобрать его по-парам, а остаток обрабатывать отдельно. Есть идеи? Админ: Предупреждение за излишние выделения текста жирным Последний раз редактировалось Admin, 04.12.2021 в 17:50. |
|
#2
|
|||
|
|||
|
Ну вот так, например (не оптимально с точки зрения управления памятью, но более понятно):
Код:
type
TArrayPair = record
First : WORD;
Second : WORD;
end;
var
A : Array Of WORD;
B : Array Of TArrayPair;
C : WORD;
I : Integer;
begin
I := 0;
SetLength(B,0);
C := 0; // 0 is not in initial array, just assumption
While (I < Length(A) div 2) Do
Begin
SetLength(B,Length(B)+1);
B[High(B)].First := A[i];
B(High(B)].Second := A[I+1];
I := I + 2;
End;
If (Length(A) mod 2) = 1 Then C := A[High(A)];
end; |