Каждый из N (N – заданное число) опрошенный назвал одну, две или три страны, как возможных претендентов на победу в чемпионате мира по футболу. Определить страну, которая является по мнению опрошенных наиболее вероятным победителем. Напечатать список таких стран, в случае, если в ходе опроса они получили одинаковое количество голосов.
Разобраться никак не могу как ее делать (((((((((((
passat
17.03.2009 17:36
Цитата(mashka-promakashka @ 17.03.2009 14:29)
Вот условия задачи:
Каждый из N (N – заданное число) опрошенный назвал одну, две или три страны, как возможных претендентов на победу в чемпионате мира по футболу. Определить страну, которая является по мнению опрошенных наиболее вероятным победителем. Напечатать список таких стран, в случае, если в ходе опроса они получили одинаковое количество голосов.
Разобраться никак не могу как ее делать (((((((((((
Ну так и печатайте. Массив для стран. Индекс массива может быть именем или кодом страны. За каждый голос элемент массива увеличивается на единицу. Потом сортировка по неубыванию и - вуаля.
mashka-promakashka
17.03.2009 18:54
А можно примерный код?
mashka-promakashka
19.03.2009 19:45
program opros; const respondents=''; var t:text; i,n:integer; s:string;
for i:=1 to n do begin writeln('Vvedite otvet ',i,'-go oproshennogo'); readln(s); writeln(t,s); end;
close(t);
reset(t);
end.
Вот, данные вводятся в текстовый файл. Подскажите как найти наиболее часто встречающееся слово?
Lapp
20.03.2009 8:53
Цитата(mashka-promakashka @ 19.03.2009 15:45)
Вот, данные вводятся в текстовый файл. Подскажите как найти наиболее часто встречающееся слово?
В твоем файле каждая страна записывается на новую строку, и тем самым не сохраняется информация о том, какой именно опрашиваемый назвал какую страну. Конечно, именно для сформулированной цели это и не нужно, но... Неправильно это как-то. Например, может понадобиться добавить веса (однв страна названа - вес 1, две - по 0.5, три - по 30%). Сечешь фишку?
Вот, смотри. Я в файле помещаю ответы одного человека на одну строку. Вот так:
Russia France Ukraine Germany USA Russia Japan France Italy USA Poland England England France Germany Russia Japan Ukraine France Russia Russia Israel Antarctida
Создай такой файл в простом редакторе (типа блокнота, а можно и в самой среде паскалевской). Не нужно для его создания делать отдельую прогу - это жутко неудобно, ибо невозможно редактировать. Назови его poll.txt (извини, не люблю латиницу, предпочитаю английские слова). Вот программа, которая этот файл обрабатывает:
begin Assign(f,'poll.txt'); ReSet(f); m:=0; while not EoF(f) do begin Inc(m); ReadLn(f,Vote[m]) end; Close(f); n:=0; WriteLn('Participating in poll are ',m,' people'); for i:=1 to m do begin t:=Vote[i]; repeat while t[1]=' ' do Delete(t,1,1); l:=Pos(' ',t); if l=0 then l:=Length(t) else Dec(l); s:=Copy(t,1,l); j:=1; while (j<=n)and(Country[j].Name<>s) do Inc(j); with Country[j] do if j>n then begin Inc(n); Name:=s; Rate:=1 end else Inc(Rate); Delete(t,1,l) until t='' end; for i:=n-1 downto 1 do for j:=i to n-1 do if Country[j].Rate<Country[j+1].Rate then begin b:=Country[j]; Country[j]:=Country[j+1]; Country[j+1]:=b end; for i:=1 to n do with Country[i] do WriteLn(Name,Rate:20-Length(Name)); ReadLn end.
Что непонятно - спрашивай, отвечу. Успехов
mashka-promakashka
21.03.2009 2:40
Спасибо огромное, если что будет непонятно напишу ))
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.