Форум программистов, компьютерный форум, киберфорум
Наши страницы
Free Pascal
Войти
Регистрация
Восстановить пароль
 
OnikS228
3 / 2 / 6
Регистрация: 23.01.2016
Сообщений: 98
#1

Ошибка в программе - Free Pascal

21.03.2017, 00:05. Просмотров 258. Ответов 6
Метки нет (Все метки)

Здравствуйте, помогите пожалуйста разобраться в решении. В тестирующей системе проходит только половину тестов.

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
uses crt;
var
   n,i,j,k:integer;
   ss:string[50];
   s:array[1..100] of string[50];
   chet:array[1..100] of integer;
   f:text;
   flag:boolean;
begin
 assign(f,'input.txt');
 reset(f);
 readln(f,n);
 j:=1;
 for i:=1 to n do
  begin
    readln(f,ss);
    if j=1
     then begin s[j]:=ss; chet[j]:=chet[j]+1;j:=j+1; end
     else
      begin
      flag:=false;
       for k:=1 to j-1 do
        if s[k]=ss then begin chet[k]:=chet[k]+1;flag:=true end;
      if not flag
         then  begin s[j]:=ss; chet[j]:=chet[j]+1;j:=j+1; end
      end
  end;
  close(f);
  for k:=1 to j-2 do
   for i:=k+1 to j-1 do
    if chet[k]<chet[i]
     then
      begin
       n:=chet[k];
       chet[k]:=chet[i];
       chet[i]:=n;
       ss:=s[k];
       s[k]:=s[i];
       s[i]:=ss;
      end;
  for k:=1 to j-1 do
   writeln(s[k]);
end.
Задача:

Имеется список результатов голосования избирателей за несколько партий (не более 100 партий), в виде списка названий данных партий. На вход программе в первой строке подается количество избирателей в списке N(N <= 10000). В каждой из последующих N строк записано название партии, за которую проголосовал данный избиратель, в виде текстовой строки. Длина строки не превосходит 50 символов, название может содержать буквы, цифры, пробелы и прочие символы. Программа должна вывести список всех партий, встречающихся в исходном списке, в порядке убывания количества голосов, отданных за эту партию. При этом название каждой партии должно быть выведено ровно один раз, вне зависимости от того, сколько голосов было отдано за данную партию.

Входные данные
На вход программе в первой строке подается количество избирателей в списке N. В каждой из последующих N строк записано название партии, за которую проголосовал данный избиратель, в виде текстовой строки. Длина строки не превосходит 50 символов, название может содержать буквы, цифры, пробелы и прочие символы.

Выходные данные
Программа должна вывести список всех партий(каждая партия с новой строки), встречающихся в исходном списке, в порядке убывания количества голосов, отданных за эту партию. Партии с одинаковым количеством голосов надо выводить в алфавитном порядке.

Примеры
входные данные
6
Party one
Party two
Party three
Party three
Party two
Party three
выходные данные
Party three
Party two
Party one
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.03.2017, 00:05
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Ошибка в программе (Free Pascal):

Ошибка в программе
Нужно было составить программу по задаче: в 2008 году отец положил сыну на счет...

ошибка в программе
Уважаемые программисты! Помогите, пожалуйста с программкой на FreePascal! Код:...

Ошибка в программе
program prvdv2; uses crt; var a10:integer; b2:string; begin clrscr;...

Ошибка в программе построения графика
имеется программа для постоениия графика функции y = 1 / (x+1). но при запуске...

Ошибка в программе, список студентов (подобие БД)
Суть задания заключается в том, чтобы сделать программу к которой подключался...

Ошибка в программе из под компилятора FPC
Люди помогите с кодом. При компиляции в FPC, программа завершает работу с...

6
Joy
Эксперт Pascal/Delphi
2119 / 1159 / 1418
Регистрация: 29.08.2014
Сообщений: 4,221
21.03.2017, 11:07 #2
аналогично: http://www.cyberforum.ru/pascalabc/thread1438289.html
0
OnikS228
3 / 2 / 6
Регистрация: 23.01.2016
Сообщений: 98
21.03.2017, 17:27  [ТС] #3
Смотрел те варианты, они тоже не проходят все тесты
0
Joy
Эксперт Pascal/Delphi
2119 / 1159 / 1418
Регистрация: 29.08.2014
Сообщений: 4,221
21.03.2017, 19:44 #4
OnikS228, что за тестирующая система?

Добавлено через 8 минут
Цитата Сообщение от OnikS228 Посмотреть сообщение
Смотрел те варианты, они тоже не проходят все тесты
а размерности массивов исправлял?

и вывод должен быть в алфавитном порядке(в случае равенства голосов), в указанных программах это не реализовано.

Не по теме:

я давал ссылку(да и ты код сдул) для аналогичного (не точно такого-же) условия.

0
Alexandr212
21.03.2017, 19:50
  #5

Не по теме:

Тестирующая система - informatics.mccme.ru
Задача - G. 112432.
OnikS228, угадал?

0
Joy
Эксперт Pascal/Delphi
2119 / 1159 / 1418
Регистрация: 29.08.2014
Сообщений: 4,221
22.03.2017, 08:47 #6
OnikS228,
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
type party=record
        p:string;
        v:integer;
     end;
var
  n,i,j,k:integer;
  p:array[1..100] of party;
  f:boolean;
  s:string;
  t:party;
begin
  readln(n);j:=0;
  for i:=1 to n do begin
    f:=false;
    readln(s);
    for k:=1 to j do
      if p[k].p=s then begin
        inc(p[k].v);
        f:=true;
        break
      end;
    if not (f) then begin
      inc(j);
      p[j].p:=s;
      inc(p[j].v);
    end;
  end;
  for i:=1 to j-1 do
    for k:=i to j do
      if p[i].v<p[k].v then begin
        t:=p[i];
        p[i]:=p[k];
        p[k]:=t;
      end;
  for i:=1 to j-1 do
    for k:=i to j do
      if (p[i].v=p[k].v) and (p[i].p>p[k].p) then begin
        t:=p[i];
        p[i]:=p[k];
        p[k]:=t;
      end;
  for i:=1 to j do writeln(p[i].p);
end.
прошло все тесты
0
OnikS228
24.03.2017, 19:58  [ТС]     Ошибка в программе
  #7

Не по теме:

Alexandr212,

0
24.03.2017, 19:58
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.03.2017, 19:58
Привет! Вот еще темы с ответами:

Ошибка в программе, не могу понять в чем
Всем доброго времени суток! Есть одна программа, которая не поддается для меня...

Динамические переменные, ошибка в небольшой программе
Компилируются нормально. После ввода второго числа неизвестная ошибка. ...

Ошибка в программе после ввода названия файла
Помогите найти проблему в небольшой программе. Вылетает с ошибкой 217 после...

Ошибка в программе с e-olimp 514 Время для Николая
Васильку известно, что святой Николай начинает развозить подарки когда...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru