sphinx2001

"сжатие" массива

Nov 17th, 2019
151
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pascal 0.87 KB | None | 0 0
  1. program one;
  2. var
  3. a,b,i,j:integer;
  4. l,e:integer;
  5. h:array[1..10] of integer;
  6. begin
  7. //readln(a,b);//вводим интервал
  8. l := 10;
  9. a := 3;
  10. b := 6;
  11. {заполняем и выводим исходный}
  12. for i:=1 to 10 do
  13. begin
  14.   h[i]:=i;
  15.   write(h[i], ' ');
  16. end;
  17. writeln;
  18. {Тут будем пытаться "сжать" массив}
  19. {сначала обнулим числа в интервали от [a,b]}
  20. for i:=1 to l do
  21. begin
  22.   if ((a<=h[i]) and (h[i]<=b)) then
  23.   begin
  24.     h[i]:=0;    
  25.   end;
  26. end;
  27. {двигаем}
  28. for i := 1 to l do
  29. begin
  30.   if h[i] = 0 then
  31.   begin
  32.     j := i;
  33.     while (h[j] = 0) and (j < l) do
  34.     begin
  35.       j := j + 1;
  36.     end;
  37.     if j <= l then
  38.     begin
  39.       h[i] := h[j];
  40.       h[j] := 0;
  41.     end;
  42.   end;
  43. end;
  44. {выводим результат}
  45. for i:=1 to l do
  46.   write(h[i], ' ');
  47. writeln;
  48. end.
Add Comment
Please, Sign In to add comment