Ребят уже все вохдные сижу не могу найти баг, где надо элементы на четных местах удалить. Я принял, что i=1(А по нашему, если просто взглянуть на массив будет индекс 2).. Кидаю весь код.. Чтоб удобней тестить было... Проблема в последнем элементе, или прога его зануляет, или не переставляет перебором.. Помогите.. Завтра уже сдавать надо... Если баг только, в том, что я принял нечетный индекс за четный по виду, то можете изменить.. Самое главное, чтоб прога правильно работу выполняла..
Код | begin writeln('vvedite chislo testov'); readln(d); for c:=1 to d do begin flag:=true; writeln('test nomer ',c); writeln('vvedite chislo elementov massiva'); readln(n); setlength(a,n); writeln('vvedite sposob zapolnenia 1:generatorom cluch chisel 2:s klaviatury'); readln(d); case d of 1: begin randomize; for i:=0 to n-1 do begin d:=round(random(2)); if(d=0)then a[i]:=round(random(100))+1 else a[i]:=-1*round(random(100))-1; end; end; 2: begin writeln('vvodite massiv'); read(a[0]); for i:=1 to n-1 do read(a[i]); readln; end else begin writeln('vvedena nedopustimaia komanda'); flag:=false; end; end; if(flag)then begin writeln('vvedennyi massiv'); for i:=0 to n-1 do write(a[i]:4); writeln; if(n>4)then begin i:=1; repeat a[i]:=0; i:=i+2; until(i>n-1); if(n mod 2=0 )then n:=n-1; i:=1; repeat if(a[i]=0)then begin for d:=i to n-2 do a[d]:=a[d+1]; n:=n-1; end; i:=i+1; until(i>=n-2); n:=n-1; end; writeln('izmenennyi vtoroi massiv'); for i:=0 to n-1 do write(a[i]:4); writeln; end; writeln; end; readln; end.
|
|