Люди, помогите плз.! ---------------------------- Задача такая дана последовательность из 30-ти чисел(одномерный массив). Если числа в нем стоят в порядке неубывания или невозрастания, то не производить с ним никаких действий, иначе удалить из последовательности элементы м индексом, кратым четырём. ------------------------------ Программу я написал но она работает не корректно.
volvo
9.10.2005 3:30
art88, я бы делал вот так (проверялось с закомментированными значениями):
program borlpasc;
const
n = 30;
(*
a: array [1 .. n] of real = (
1, 2, 3, 4, 5, 6, 7, 8, 9, 10,
11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
21, 22, 23, 24, 25, 22, 27, 28, 29, 30
);
*)var
a: array[1 .. n] of real;
b: array[1 .. n - (n div4)] of real;
i, j: integer;
_to_delete: boolean;
direction: boolean;
beginfor i:=1to n dobegin
write ('a[',i,']='); readln(a[i]);
end;
_to_delete := false;
i := 1;
while (a[i] = a[i + 1]) and (i < n) do inc(i);
direction := (a[i] > a[i + 1]);
while (i < n) and (not _to_delete) dobeginif direction then _to_delete := (a[i] <= a[i + 1])
else _to_delete := (a[i] >= a[i + 1]);
inc(i)
end;
if _to_delete thenbegin
writeln('array ( B ):');
j := 1;
for i := 1to n doif i mod4 <> 0thenbegin
b[j] := a[i]; write(b[j]:5:0);
inc(j);
end;
endelsebegin
writeln('array not changed ...')
end;
readln;
end.
Обрати внимание: мои исходный массив не является НИ монотонно возрастающим (этому мешает второе число 22 вместо 26), ни монотонно убывающим (само собой ), поэтому массив будет изменен... Если поставить все числа по порядку, то массив станет НЕубывающим, и изменяться не будет... :yes:
art88
9.10.2005 19:14
Большое спасибо, volvo!!! :D
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.