![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() ![]() |
![]() |
art88 |
![]()
Сообщение
#1
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 40 Пол: Мужской Реальное имя: Артём Репутация: ![]() ![]() ![]() |
Люди, помогите плз.!
---------------------------- Задача такая дана последовательность из 30-ти чисел(одномерный массив). Если числа в нем стоят в порядке неубывания или невозрастания, то не производить с ним никаких действий, иначе удалить из последовательности элементы м индексом, кратым четырём. ------------------------------ Программу я написал но она работает не корректно. Прикрепленные файлы ![]() |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
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 div 4)] of real;
i, j: integer;
_to_delete: boolean;
direction: boolean;
begin
for i:=1 to n do begin
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) do begin
if direction then _to_delete := (a[i] <= a[i + 1])
else _to_delete := (a[i] >= a[i + 1]);
inc(i)
end;
if _to_delete then begin
writeln('array ( B ):');
j := 1;
for i := 1 to n do
if i mod 4 <> 0 then begin
b[j] := a[i]; write(b[j]:5:0);
inc(j);
end;
end
else begin
writeln('array not changed ...')
end;
readln;
end.
Обрати внимание: мои исходный массив не является НИ монотонно возрастающим (этому мешает второе число 22 вместо 26), ни монотонно убывающим (само собой ![]() |
art88 |
![]()
Сообщение
#3
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 40 Пол: Мужской Реальное имя: Артём Репутация: ![]() ![]() ![]() |
Большое спасибо, volvo!!! :D
|
![]() ![]() |
![]() |
Текстовая версия | 28.07.2025 11:10 |