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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.04.2013, 07:34   #11
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

Тоесть задача сводится к получению предложений, удалению из них лишних пробелов, занесения в массив, а затем :
Код:
for i := 1 to n do begin
   cnt := 0;
   for j := 1 to n do
        if a[i] = a[j] then
           Inc (cnt);
   WriteLn (a[i], ' : ', cnt-1)
end;
?
А нельзя ли тут что-то придумать чтобы в конце избежать сложности O(N^2)
Poma][a вне форума Ответить с цитированием
Старый 20.04.2013, 07:50   #12
Mad_Cat
Made In USSR!
Старожил
 
Аватар для Mad_Cat
 
Регистрация: 01.09.2010
Сообщений: 3,657
По умолчанию

вот так попробуй)
Код:
for i := 1 to n-1 do begin
   cnt := 0;
   for j := i+1 to n do
так как при твоем коде предложения с одинаковыми i,j -по сути одно и тоже предложение будут считаться одинаковыми что не есть гуд
upd и еще
3 одинаковых предложения при помощи твоего кода будут считаться 2 раза (ответ выдаст 5 хотя по идее должно выдать 1)
поэтому нужен флажок что это предложение уже посчитано, например массив с предложениями должен быть 2-мерным и во 2 строчке проставляться считали мы его уже или нет!!!!
что то вроде этого должно получиться
Код:
var a:array[1..255,1..2] of string[255];
i,j:integer;
n:integer;
cnt:integer;
begin
N:=8;
a[1,1]:='Коля';a[1,2]:='0';
a[2,1]:='Толя';a[2,2]:='0';
a[3,1]:='Воля';a[3,2]:='0';
a[4,1]:='Коля';a[4,2]:='0';
a[5,1]:='Вася';a[5,2]:='0';
a[6,1]:='Коля';a[6,2]:='0';
a[7,1]:='Вася';a[7,2]:='0';
a[8,1]:='Коля';a[8,2]:='0';
cnt:=0;
for i:=1 to n-1 do
begin
for j:=i+1 to n do
if (a[i,1]=a[j,1]) and (a[j,2]='0') and (a[i,2]='0') then
begin
a[i,2]:='1';
a[j,2]:='1';
inc(cnt);
end
else 
if (a[i,1]=a[j,1]) then a[j,2]:='1';
end;
writeln(cnt);
end.
как видно всего 2 одинаковых это 'Коля' и 'Вася', хотя может я и не прав и ТС нужно чтобы выдало 6)
"...В жизни я встречал друзей и врагов.В жизни много всего перевидал.Солнце тело мое жгло, ветер волосы трепал,но я смысла жизни так и не узнал..."
(c) Юрий Клинских aka "Хой"

Последний раз редактировалось Mad_Cat; 20.04.2013 в 08:15.
Mad_Cat вне форума Ответить с цитированием
Старый 20.04.2013, 10:21   #13
s-andriano
Старожил
 
Аватар для s-andriano
 
Регистрация: 08.04.2012
Сообщений: 3,229
По умолчанию

Цитата:
Сообщение от 'Poma
А нельзя ли тут что-то придумать чтобы в конце избежать сложности O(N^2)
Можно, конечно.
1. Отсортировать массив строк - O(N*log(N)).
2. Попарно сравнивать только соседние - O(N).
s-andriano вне форума Ответить с цитированием
Старый 20.04.2013, 15:11   #14
Trampoline
 
Регистрация: 04.03.2013
Сообщений: 8
По умолчанию

Mad_Cat, а обязательно указывать количество возможных строк в коде программы? Что если попробовать объявить ввод строк и там уже смотреть?

Последний раз редактировалось Trampoline; 20.04.2013 в 15:14.
Trampoline вне форума Ответить с цитированием
Старый 20.04.2013, 15:40   #15
Trampoline
 
Регистрация: 04.03.2013
Сообщений: 8
По умолчанию

Serge_Bliznykov, я постараюсь его написать, но, боюсь, что у меня ничего не получится.
Trampoline вне форума Ответить с цитированием
Старый 20.04.2013, 16:32   #16
Mad_Cat
Made In USSR!
Старожил
 
Аватар для Mad_Cat
 
Регистрация: 01.09.2010
Сообщений: 3,657
По умолчанию

Цитата:
а обязательно указывать количество возможных строк в коде программы
мой код просто пример! как хотите так и указывайте!
"...В жизни я встречал друзей и врагов.В жизни много всего перевидал.Солнце тело мое жгло, ветер волосы трепал,но я смысла жизни так и не узнал..."
(c) Юрий Клинских aka "Хой"
Mad_Cat вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
(Turbo Pascal)Обработка текста и числа!Составьте программу,определяющую.. Swetic Помощь студентам 2 21.01.2013 08:27
Turbo Pascal поворт текста на 90 градусов F1Book Фриланс 4 21.10.2010 17:21
Turbo Pascal. Формирование и обработка одномерного массива мирЗвонка Помощь студентам 2 04.11.2009 12:17
Обработка строк в языке Turbo Pascal Vad56 Помощь студентам 6 26.10.2009 21:18
[Turbo Prolog] Анализатор текста на языке Pascal Arkuz Помощь студентам 1 04.05.2009 20:41