Форум программистов, компьютерный форум, киберфорум
Наши страницы

Free Pascal

Войти
Регистрация
Восстановить пароль
 
OnikS228
3 / 2 / 0
Регистрация: 23.01.2016
Сообщений: 98
#1

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

21.03.2017, 00:05. Просмотров 206. Ответов 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):

Ошибка в программе - Free Pascal
Нужно было составить программу по задаче: в 2008 году отец положил сыну на счет в банке 400 евро. Каждый год сумма увеличивается на 10% от...

Ошибка в программе - Free Pascal
program prvdv2; uses crt; var a10:integer; b2:string; begin clrscr; writeln('vvedite chislo!'); readln(a10); if a10 &lt;&gt; 0...

ошибка в программе - Free Pascal
Уважаемые программисты! Помогите, пожалуйста с программкой на FreePascal! Код: uses crt; type mas=array of string; procedure...

Ошибка в программе построения графика - Free Pascal
имеется программа для постоениия графика функции y = 1 / (x+1). но при запуске пишет exitcode 201 вот сам код uses graph; const ...

Ошибка в программе из под компилятора FPC - Free Pascal
Люди помогите с кодом. При компиляции в FPC, программа завершает работу с ошибкой Runtime error 216, при компиляции кода в BP7 программа...

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

6
Joy
Эксперт Pascal/Delphi
2075 / 1115 / 838
Регистрация: 29.08.2014
Сообщений: 4,059
21.03.2017, 11:07 #2
аналогично: Написать программу про избирателей от каждой партии
0
OnikS228
3 / 2 / 0
Регистрация: 23.01.2016
Сообщений: 98
21.03.2017, 17:27  [ТС] #3
Смотрел те варианты, они тоже не проходят все тесты
0
Joy
Эксперт Pascal/Delphi
2075 / 1115 / 838
Регистрация: 29.08.2014
Сообщений: 4,059
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
2075 / 1115 / 838
Регистрация: 29.08.2014
Сообщений: 4,059
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
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.03.2017, 19:58
Привет! Вот еще темы с ответами:

Динамические переменные, ошибка в небольшой программе - Free Pascal
Компилируются нормально. После ввода второго числа неизвестная ошибка. Program Srednee; Type point=^integer; vect=array...

Ошибка в программе после ввода названия файла - Free Pascal
Помогите найти проблему в небольшой программе. Вылетает с ошибкой 217 после того, как ввожу название файла. И вообще я не знаю на сколько...

Ошибка в программе вычисления значения ф-ции, заданной в виде бесконечного разложения - Free Pascal
Здравствуйте. Написал такую вот программу {$n+} Program kkr2; uses crt; var a, b, e, h: real; x, ak, chisl, znam, f:...

Ошибка в программе - Pascal
program zadacha2_2; uses crt; Var m,n:integer; function fact(n:integer):real; Var i:integer; p:real; Begin p:=1; for i:=1...


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

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

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