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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 13.11.2007, 20:45   #1
Bagsi
Пользователь
 
Регистрация: 24.10.2007
Сообщений: 21
Сообщение На Паскале

Дана последовательность из n целых чисел(n=20). Определить количество инверсий в этой последовательности (т.е. таких пар элементов, в которых большее число находиться слева от меньшего: xi>xj при i<j).
Bagsi вне форума Ответить с цитированием
Старый 13.11.2007, 20:53   #2
Alex21
With best regards
Участник клуба
 
Регистрация: 20.04.2007
Сообщений: 1,448
По умолчанию

на чем застряли?
Alex21 вне форума Ответить с цитированием
Старый 13.11.2007, 20:54   #3
_Dmitry
Участник клуба
 
Аватар для _Dmitry
 
Регистрация: 02.09.2007
Сообщений: 1,193
По умолчанию

Вам за последние пол месяца решили шесть задач, может пора и самому начать думать. Начни писать программу, если что-то не получается то код в студию, поможем.
_Dmitry вне форума Ответить с цитированием
Старый 13.11.2007, 20:56   #4
Teksa
Пользователь
 
Регистрация: 24.08.2007
Сообщений: 88
По умолчанию

перебор массива, при этом проверять все члены массива которые имеют меньший номер, увеличивать счетчик. ИМХО так
Teksa вне форума Ответить с цитированием
Старый 13.11.2007, 21:16   #5
Tayfun
Форумчанин
 
Аватар для Tayfun
 
Регистрация: 24.06.2007
Сообщений: 351
По умолчанию

Эмм... Енто у нас получаетсья упорядочивание по возрастанию...
Делаете упорядование по возрастанию и в условии, где образно выражаясь
Код:
a[i]<a[j] then begin p:=a[i];a[i]:=a[j]; a[j]:=p; t:=t+1; end;
Как видите добавилось t- это и есть наш счетчик
Осталось дело только за оформлением
Я не маюсь бездельем, я от него тащусь!
Tayfun вне форума Ответить с цитированием
Старый 13.11.2007, 21:30   #6
Teksa
Пользователь
 
Регистрация: 24.08.2007
Сообщений: 88
По умолчанию

Хмм про упорядочивание я не говорил, массив никто не трогает порядок элементов не меняет.

Код:
for i:=0 to 19 do
  begin
     for j:=0 to i do
         if mass[i]<mass[j] then schet:=schet+1;
  end;

что то типа этого правда возникает вопрос -цикл от 0 до 0)) но это лечится, вроде бы должно работать.

ЗЫ сам нифига не умею так что АХТУНГ.

*)) первый цикл тупо начинаем с 1, туплю((

Последний раз редактировалось Teksa; 13.11.2007 в 21:39.
Teksa вне форума Ответить с цитированием
Старый 13.11.2007, 23:06   #7
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Что-то вы ребята в трех соснах блудите. Решение в две строчки:
Код:
for i:=1 to 19 do
    if a[i]>a[i+1] then k:=k+1;
puporev вне форума Ответить с цитированием
Старый 14.11.2007, 14:31   #8
_Dmitry
Участник клуба
 
Аватар для _Dmitry
 
Регистрация: 02.09.2007
Сообщений: 1,193
По умолчанию

Это если j=i+1, но в условии дано i<j, поэтому цифры не обязательно находятся рядом

Последний раз редактировалось _Dmitry; 14.11.2007 в 14:40.
_Dmitry вне форума Ответить с цитированием
Старый 14.11.2007, 14:43   #9
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Вот условие "на пальцах":
Дано 2 1 3 5 2
Получить 1 2 3 2 5
Вот полный код.
Код:
program invers;
uses crt;
var a: array[1..20] of integer;
    i,k:integer;
begin
   clrscr;
   randomize;
   for i:=1 to 20 do
     a[i]:= random(9)+1;
   for i:=1 to 20 do
     write(a[i],' ');readln;
   for i:=1 to 19 do
      if a[i]>a[i+1] then k:=k+1;
      write('k = ',k);readln;
end.
puporev вне форума Ответить с цитированием
Старый 14.11.2007, 18:57   #10
Tayfun
Форумчанин
 
Аватар для Tayfun
 
Регистрация: 24.06.2007
Сообщений: 351
По умолчанию

Цитата:
Вот условие "на пальцах":
Дано 2 1 3 5 2
Получить 1 2 3 2 5
Цитата:
т.е. таких пар элементов, в которых большее число находиться слева от меньшего: xi>xj при i<j
А теперь берем получившуюся последовательность...
Цитата:
Получить 1 2 3 2 5
А здесь инверсия... Ее ненужно рассматривать-?
Я не маюсь бездельем, я от него тащусь!
Tayfun вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Строки в Паскале istragon Помощь студентам 6 28.12.2009 18:18
помогите в Паскале Povar Помощь студентам 2 19.04.2008 09:54
Переводчик на Паскале gred Помощь студентам 13 11.04.2008 13:00
ДОС в паскале nikleb Паскаль, Turbo Pascal, PascalABC.NET 2 07.03.2008 22:50
прога в паскале rav_ Помощь студентам 2 24.11.2007 11:54