Форум программистов, компьютерный форум, киберфорум
Наши страницы
Free Pascal
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
Ov3rfl0w
0 / 0 / 1
Регистрация: 17.05.2013
Сообщений: 5
1

Дана последовательность. Расположить отрицательные элементы последовательности, стоящие на четных местах по убыванию

17.05.2013, 13:07. Просмотров 642. Ответов 4
Метки нет (Все метки)

Дана последовательность а1, а2, ... ,а20. Расположить отрицательные элементы последовательности, стоящие на четных местах по убыванию.
Помогите пожалуйста
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.05.2013, 13:07
Ответы с готовыми решениями:

Дана последовательность а1 ,а2,...,а20. Расположить положительные элементы последовательности,стоящие на нечетных местах по возрастанию.
Дана последовательность а1 ,а2,...,а20. Расположить положительные элементы...

Расположить по возрастанию четные элементы последовательности, стоящие на четных местах.
Дана последовательность x1,x2,...,x20. Расположить по возрастанию четные элементы...

дана последовательность а1...а20. Расположить нечётные эл-ты последовательности по убыванию.
дана последовательность а1...а20. Расположить нечётные эл-ты последовательности по убыванию.

Отсортировать элементы вектора, на нечетных местах - по убыванию, на четных местах - по возрастанию
дан вектор размера n состоящий из целых положительных и отрицательных элементов отсортировать...

Дана строка символов разделенных пробелом. Удалить все символы стоящие на четных местах
Дана строка символов разделенных пробелом.удалить все символы стоящие на четных местах Помогите...

4
volvo
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
26327 / 17659 / 6996
Регистрация: 22.10.2011
Сообщений: 31,074
Записей в блоге: 6
18.05.2013, 03:41 2
Вот так, например:
Pascal
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
26
27
28
29
30
31
32
33
34
35
36
37
const
   n = 10;
   a : array[1 .. n] of integer =
     (1, -21, 3, -24, 5, 6, 7, -12, 9, 10);
   (*
     (1, -12, 3, -21, 5, 6, 7, -24, 9, 10); { sorted }
   *)
 
var
   i, j, T, prev : Integer;
begin
   for i := 1 to n do
      write(a[i]:4);
   writeln;
 
   for i := 1 to (n div 2) - 1 do
      for j := (n div 2) downto i + 1 do
      begin
         if a[2*j] >= 0 then continue; { нас интересуют только отрицательные, остальные пропускаем }
 
         { Так, значит a[2*j] - отрицательное. Теперь надо найти предыдущее отрицательное }
         { число на четной позиции }
         prev := 2 * j;
         repeat dec(prev, 2) until (prev < 2) or (a[prev] < 0);
 
         { Тут 2 варианта. Либо prev = 0, значит, перед элементом с индексом 2*j нет отрицательных }
         { либо prev > 0, и это четный индекс найденного отрицательного числа }
         if (prev > 0) and (a[2*j] > a[prev]) then
         begin
            T := a[2*j]; a[2*j] := a[prev]; a[prev] := T; { тогда просто меняем эти 2 элемента местами }
         end;
      end;
 
   for i := 1 to n do
      write(a[i]:4);
   writeln;
end.
1
Ov3rfl0w
0 / 0 / 1
Регистрация: 17.05.2013
Сообщений: 5
18.05.2013, 06:44  [ТС] 3
Цитата Сообщение от UI Посмотреть сообщение
Вот так, например:
Выдает ошибку в 30й строке: Невозможно присвоить константному объекту
0
volvo
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
26327 / 17659 / 6996
Регистрация: 22.10.2011
Сообщений: 31,074
Записей в блоге: 6
18.05.2013, 14:31 4
Это зависит от компилятора, который надо было указывать. Если FPC или еще какой 32-битный, то в настройках нужно выставить Assignable Typed Constants, а вообще... Данные - только для примера, чтобы некоторые не говорили, что "сортируется не так, как нужно" я сразу показываю, что есть, и что должно быть в результате. Опиши A как переменную, и вводи свои данные:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
const
   n = 10;
 
var
   a : array[1 .. n] of integer; 
   i, j, T, prev : Integer;
begin
   for i := 1 to n do
   begin
      write('a[', i:2, '] = '); readln(a[i]);
   end;
   { дальше - без изменений: }
   for i := 1 to n do
      write(a[i]:4);
   writeln;
   { ... }
Только перед тем, как сказать, что работает неправильно, внимательно перечитай задание, и пойми, что от тебя требовалось!!!
1
Ov3rfl0w
0 / 0 / 1
Регистрация: 17.05.2013
Сообщений: 5
18.05.2013, 16:34  [ТС] 5
Спасибо огромное!Все работает
0
18.05.2013, 16:34
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.05.2013, 16:34

Упорядочить по возрастанию отдельно элементы, стоящие на четных местах
Упорядочить по возрастанию отдельно элементы, стоящие на четных местах, и элементы, стоящие на...

Одномерные массивы. Удалить элементы, стоящие на четных местах
помогите разобраться.что я сделала не так. Вводятся длина вектора, состоящего из целых чисел, и...

В одномерном массиве поменять местами соседние элементы, стоящие на четных и нечетных местах
В заданном одномерном массиве поменять местами соседние элементы, стоящие на четных местах, с...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru