Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.05.2013, 15:12   #1
миляуша2013
Пользователь
 
Аватар для миляуша2013
 
Регистрация: 11.03.2013
Сообщений: 10
По умолчанию Turbo Pascal

упорядочить элементы массива стоящие на четных позициях по возрастанию обратных значений..
поняла что делать,но как это в Паскаль организовать не знаю.. помогите пожалуйста написать этот кусочек программы
миляуша2013 вне форума Ответить с цитированием
Старый 28.05.2013, 17:08   #2
VIK_aka_TOR
Участник клуба
 
Аватар для VIK_aka_TOR
 
Регистрация: 30.01.2011
Сообщений: 1,578
По умолчанию

если для обратным по возрастанию, значит для обычных по убыванию
х и 1/х , чем больше х, тем меньше обратное ему
Код:
for i:=1 to n div 2 do
   for j:=1 to n div 2 - 2 do
      if (mas[j*2] > mas[j*2 + 2]) then
         begin
            buf := mas[j*2];
            mas[j*2] := mas[j*2 + 2];
            mas[j*2 + 2] := buf;
         end;
наверное так... если я с обратными не попутал...
пишу код не только за печеньки
VIK_aka_TOR вне форума Ответить с цитированием
Старый 28.05.2013, 17:34   #3
миляуша2013
Пользователь
 
Аватар для миляуша2013
 
Регистрация: 11.03.2013
Сообщений: 10
По умолчанию

а не нужно выводить четные позиции массива как a[i] mod 2 = 0 ???
миляуша2013 вне форума Ответить с цитированием
Старый 28.05.2013, 17:46   #4
VIK_aka_TOR
Участник клуба
 
Аватар для VIK_aka_TOR
 
Регистрация: 30.01.2011
Сообщений: 1,578
По умолчанию

Цитата:
Сообщение от миляуша2013 Посмотреть сообщение
а не нужно выводить четные позиции массива как a[i] mod 2 = 0 ???
не путайте позицию со значением...
для проверки значения на четность, у вас подходит, я же для вывода четных позиций, попросту поделил нацело размерность массива, а элемент беру как индекс*2 то бишь будет 1*2, 2*2 , 3*2 и т.д...
сортировка обычным пузырьком тут...
пишу код не только за печеньки
VIK_aka_TOR вне форума Ответить с цитированием
Старый 28.05.2013, 18:15   #5
миляуша2013
Пользователь
 
Аватар для миляуша2013
 
Регистрация: 11.03.2013
Сообщений: 10
По умолчанию

спасибо большое)
миляуша2013 вне форума Ответить с цитированием
Старый 28.05.2013, 18:26   #6
миляуша2013
Пользователь
 
Аватар для миляуша2013
 
Регистрация: 11.03.2013
Сообщений: 10
По умолчанию

а как быть если нечетные позиции? и можно ли написать 1/mas[j*]<mas[j*2+2]
миляуша2013 вне форума Ответить с цитированием
Старый 28.05.2013, 18:42   #7
VIK_aka_TOR
Участник клуба
 
Аватар для VIK_aka_TOR
 
Регистрация: 30.01.2011
Сообщений: 1,578
По умолчанию

для нечетных примерно так
Код:
for i:=1 to n do
   for j:=1 to n -2 do
     if j mod 2 <> 0 then   // если текущее j нечетное то 
        if (mas[j] > mas[j + 2]) then 
          // кусок кода с обменом мест значений элементов массива
пишу код не только за печеньки
VIK_aka_TOR вне форума Ответить с цитированием
Старый 28.05.2013, 18:48   #8
миляуша2013
Пользователь
 
Аватар для миляуша2013
 
Регистрация: 11.03.2013
Сообщений: 10
По умолчанию

простите конечно за множество вопросов( может я что то не так делаю, но когда я вывожу массив отсортированным,почему то последняя четная позиция остается без изменений( как быть?
миляуша2013 вне форума Ответить с цитированием
Старый 28.05.2013, 18:51   #9
VIK_aka_TOR
Участник клуба
 
Аватар для VIK_aka_TOR
 
Регистрация: 30.01.2011
Сообщений: 1,578
По умолчанию

Цитата:
Сообщение от миляуша2013 Посмотреть сообщение
простите конечно за множество вопросов( может я что то не так делаю, но когда я вывожу массив отсортированным,почему то последняя четная позиция остается без изменений( как быть?
Код:
for i:=1 to n div 2 do
   for j:=1 to n div 2 - 1 do // или for j:=1 to (n - 2) div 2 do
      if (mas[j*2] > mas[j*2 + 2]) then
         begin
            buf := mas[j*2];
            mas[j*2] := mas[j*2 + 2];
            mas[j*2 + 2] := buf;
         end;
описку малость сделал...
пишу код не только за печеньки
VIK_aka_TOR вне форума Ответить с цитированием
Старый 28.05.2013, 18:54   #10
миляуша2013
Пользователь
 
Аватар для миляуша2013
 
Регистрация: 11.03.2013
Сообщений: 10
По умолчанию

работает=)спасибо вам огромное)
миляуша2013 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
pascal abc, pascal turbo. выборка данных из одного .txt в другой ТипичныйСтудент Помощь студентам 6 27.04.2013 15:29
Задача turbo pascal на тему: файлы с произвольным доступом в Pascal ExCiTeC Паскаль, Turbo Pascal, PascalABC.NET 0 28.01.2013 20:36
Turbo Pascal и Free Pascal , в чем разница? antoxann Паскаль, Turbo Pascal, PascalABC.NET 31 09.11.2011 07:52
Turbo Pascal or Pascal ABC Ikram Паскаль, Turbo Pascal, PascalABC.NET 0 27.04.2010 13:44
а free pascal не читает задачи которые написаны на turbo pascal? demonara Паскаль, Turbo Pascal, PascalABC.NET 3 25.05.2009 16:28