|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Поясните пожалуйста
Есть код :
Код:
begin edit1.clear; edit2.clear; Randomize; n:=StrToInt(edit8.text); SetLength(ar,n+1); for i:=1 to n do begin ar[i]:=-40+random(71); edit1.text:=edit1.text+' '+inttostr(ar[i]); end; i:=1; while i<=n do begin x:=abs(ar[i]); if (x<10) or (ar[i] mod 10 = ar[i] div 10) then begin if i=n then n:=n-1 else begin for j:=i to n-1 do ar[j]:=ar[j+1]; n:=n-1; end; end else i:=i+1; end; if n=0 then Edit2.Text:='Все элементы удалены' else for i:=1 to n do Edit2.Text:=Edit2.Text+' '+inttostr(ar[i]); end; Непонятна вот эта часть Код:
i:=1; while i<=n do begin x:=abs(ar[i]); if (x<10) or (ar[i] mod 10 = ar[i] div 10) then begin if i=n then n:=n-1 else begin for j:=i to n-1 do ar[j]:=ar[j+1]; n:=n-1; end; end else i:=i+1; end; |
#2
|
|||
|
|||
Это удаление всех чисел из массива по поределенному условию (должно быть меньше 10 или с одинаковыми цифрами, например 77). С соответсвующей компрессией исходного массива.
|