Помощь - Поиск - Пользователи - Календарь
Полная версия: Последовательность чисел
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Римус
И еще одна задача, если можно. Не представляю как решать.
Условие
. Даны натуральное число n, действительные числа a1,..,an.В последовательности a1,....,an все неотрицательные члены, нo принадлежащие отрезку [a,b] (a>=0, a<b) -удалить.

У меня получилось неправильно
program pract10_1;
const WG=50;
type tmasm=array[1..WG] of integer;
var i,j,k,a,b,n:byte; z,ud:tmasm;
begin
   writeln('vvedite kol. elementov');
   readln(n);
   for i:=1 to n do 
      begin
      writeln('wwedite ',i,' element');
      read(z[i]);
      end;
writeln('vvedite a and b');
writeln('a=');read(a);
writeln('b=');read(b);
k:=0;
for I:=1 to n do
while a>=0 do
if (z[i]>0) and (z[i]>a) and (z[i]<b) then inc(k);z[k]:=z[i];
J:=0;I:=0;
  repeat
while z[i]=ud[i] do
  begin
    J:=1;
    repeat
    z[j]:=z[j+1];J:=j+1;
    until J>=n;
     n:=n-1;
   end;
until i>=n;
for i:=n+1 to n do z[i]:=0;
writeln('poluchenia massiv:');
for i:=1 to n do write(' ',z[i]);writeln;readln;
end.
.
volvo
  ...
  write('a=');readln(a);
  write('b=');readln(b);

  i := 1;
  while i <= n do begin

    if (z[i]>0) and (z[i]>=a) and (z[i]<=b) then begin { <--- интервал открытый, или закрытый ??? }
      for j := i to n - 1 do z[j] := z[j + 1];
      n := n - 1;
    end;

    inc(i);
  end;

  writeln('poluchenia massiv:');
  for i:=1 to n do write(' ', z[i]);
  writeln;
  readln;
  ...
Этого вполне достаточно...

Добавлено через 3 мин.
Кстати,
Цитата
действительные числа a1,..,an
- у тебя определен массив целых
Римус
Спасибо за замечания и решение.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.