На этом форуме отвечают на конкретные вопросы. Фраза «я не понимаю, как решать» — это не вопрос. На вопрос «как решить задачу №X» вас отошлют к материалам сайта kpolyakov.spb.ru. За бессвязный поток слов и неспособность формулировать свои мысли — бан.

Если у вас не сходится ответ на какую-то задачу, пожалуйста сразу представляйте свое «правильное» решение.
Программы "заворачивайте" в тэг [pre2]...[/pre2], при этом сохраняются все отступы и применяется моноширинный шрифт. Если у вас используется сочетание "[i]" для обозначения элемента массива или строки, ставьте пробел после открывающей скобки. Иначе система выделит все дальнейшее курсивом.

Для регистрации на форуме щелкните по ссылке «Вход-регистрация» вверху страницы. В открывшееся окошко «ник» введите свою фамилию на русском языке (например, Иванов). В окошко «пароль» введите придуманный вами пароль, состоящий из латинских букв и цифр. Поставьте галочку в окошке «зарегистрироваться, я новый участник» и нажмите кнопку «ОК».

АвторСообщение
постоянный участник




Сообщение: 19
ссылка на сообщение  Отправлено: 21.03.12 14:45. Заголовок: [С4] задача 4


Зачем в этой задаче хранить всех участников? Мне кажется проще считать повторяющиеся фамилии.

 цитата:

var Info: array[1..100] of record
name: string;
count: integer;
end;
i, k, p, N, c: integer;
s: string;
not_exist: boolean;
begin
readln(N);
c := 1;
for i:=1 to N do begin
not_exist:=true;
readln(s);
p := Pos(' ', s);
s := Copy(s,1,p-1);
k:=1;
while (k<=c) and not_exist do begin
if s = Info[k].name then
begin
Info[k].count := Info[k].count + 1;
writeln(Info[k].name,Info[k].count);
not_exist:=false;
end;
k:=k+1;
end;
if not_exist then
begin
Info[c].name := s;
Info[c].count := 1;
writeln(Info[c].name);
c:=c+1;
end;
end;
end.



Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 2 [только новые]


Администратор




Сообщение: 194
ссылка на сообщение  Отправлено: 21.03.12 16:07. Заголовок: oval пишет: Зачем в ..


oval пишет:
 цитата:
Зачем в этой задаче хранить всех участников? Мне кажется проще считать повторяющиеся фамилии.

Обычно сначала все вводим, потом выводим результаты. Смешивать ввод и вывод в одном цикле не очень хорошо, особенно если это консоль. Кроме того, что выиграли? Объем памяти не изменился. Быстродействие тоже.

___________________________________________________
Имей мужество пользоваться собственным умом. (И. Кант)
Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Сообщение: 20
ссылка на сообщение  Отправлено: 21.03.12 19:58. Заголовок: Поляков пишет: Быст..


Поляков пишет:

 цитата:
Быстродействие тоже


ну, количество-то итераций внутреннего цикла уменьшилось, вместо i-1 рассмотренных ранее, перебираем только с отличающихся, и нет еще одного просмотра массива, хотя и так и так будет сложность O(n2)

Спасибо: 0 
ПрофильЦитата Ответить
Ответ:
1 2 3 4 5 6 7 8 9
видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 233
Права: смайлы да, картинки да, шрифты нет, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет