Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 06.03.2018
Сообщений: 22
1

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

22.06.2018, 11:54. Показов 877. Ответов 3
Метки нет (Все метки)

На вход программе в первой строке подается количество пришедших sms-сообщений N. В каждой из последующих N строк записано название фильма в виде текстовой строки. Длина строки не превосходит 100 символов, название фильма может содержать буквы, цифры, пробелы и знаки препинания.
Пример входных данных:
6
Белое солне пустыни
Бриллиантовая рука
Белое солнце пустыни
Белое солнце пустыни
Гараж
Бриллиантовая рука
Пример выходных данных для приведенного выше примера входных данных:
Белое солнце пустыни 3
Бриллиантовая рука 2
Гараж 1

Прошу помочь реализовать данную программу на Delphi, есть код на паскале, но я не могу адаптировать его под делфи, почему-то все ломается... :c

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

Вот мой код:

Delphi
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
program kino;
var a:array[1..10] of string;
 b:array[1..10] of integer;
 N,c,k,i:integer;
 z:string;
 da:boolean;
begin
for i:=1 to 10 do begin
a[i]:=''; b[i]:=0;
end;
readln(N); c:=1;
for i:=1 to N do begin
da:=true;
readln(z);
for k:=1 to 10 do
 if a[k]=z then begin
 b[k]:=b[k]+1;
 da:=false;
 end;
if da then begin
 a[c]:=z; b[c]:=b[c]+1; c:=c+1;
end;
end;
for i:=1 to c-1 do
writeln(a[i],' ',b[i]);
end.
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.06.2018, 11:54
Ответы с готовыми решениями:

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

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

Вывести список неуспевающих студентов в порядке убывания количества пропущенных ими занятий
Сама задача: Группе студентов в результате полусеместровой аттестации были выставлены оценки по...

Вывести список слов в порядке убывания количества вхождений слов
Доброго времени суток. Задание такое: вывести на стандартный выходной поток список всех различных...

3
Почетный модератор
64089 / 47498 / 32734
Регистрация: 18.05.2008
Сообщений: 115,182
22.06.2018, 13:01 2
Насчет 2 Эдит это Вы загнули.
Будет чуть сложнее.
Delphi
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
//создание списка фильмов
procedure TForm1.Button1Click(Sender: TObject);
var n,i:integer;
    s:string;
begin
n:=strtoint(Edit1.Text);
Memo1.Clear;
for i:=1 to n do
 begin
  s:=inputbox('','Введите название фильма','Гараж');
  //если забудем ввести, то выведет Гараж
  Memo1.Lines.Add(s);
 end; 
end;
//вычисление их рейтинга
procedure TForm1.Button2Click(Sender: TObject);
var i,j,k:integer;
    t:TStringList;
    s:string; 
begin
t:=TStringList.Create;
t.Text:=Memo1.Text;
Memo2.Clear;
i:=0;
while i<t.Count do
 begin
  s:=t[i];
  k:=0;
  for j:=t.Count-1 downto i do
  if t[j]=s then
   begin
    inc(k);
    t.Delete(j);
   end;
  Memo2.Lines.Add(s+' '+inttostr(k));
 end;
end;
Вложения
Тип файла: rar Фильмы.rar (162.6 Кб, 3 просмотров)
1
Почетный модератор
64089 / 47498 / 32734
Регистрация: 18.05.2008
Сообщений: 115,182
22.06.2018, 13:21 3
Можно конечно и с массивами, но это уж сами.
1
Модератор
7481 / 4895 / 2047
Регистрация: 21.01.2014
Сообщений: 20,825
Записей в блоге: 3
23.06.2018, 05:09 4
JakiCS, в том примере, который Вы привели, результат будет не тот, который Вы ожидаете:
Ваш пример:
Белое солне пустыни
Бриллиантовая рука
Белое солнце пустыни
Белое солнце пустыни
Гараж
Бриллиантовая рука
Результат:
Белое солне пустыни 1
Белое солнце пустыни 2
Бриллиантовая рука 2
Гараж 1
почему всегда и говорят, что доверять что-то вводить пользователю - верный способ нажить себе головную боль. Пользователю можно доверить выбрать один из предложенных вариантов и на основании выбора формировать список, но никак не писать руками!
Ну а когда готовый список есть, с ним можно поступить следующим образом...
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
procedure TForm1.Button1Click(Sender: TObject);
var L: TStringList;
    i, k: integer;
begin
 Memo2.Clear;
 L := TStringList.Create;
 for i := 0 to Memo1.Lines.Count - 1 do
  begin
   k := L.IndexOf(Memo1.Lines[i]);
   if k = -1
   then L.AddObject(Memo1.Lines[i], TObject(1))
   else L.Objects[k] := TObject(integer(L.Objects[k]) + 1);
  end;
 for i := 0 to L.Count  - 1 do
  Memo2.Lines.Add(Format('%s - %d', [L.Strings[i], integer(L.Objects[i])]));
 L.Free;
end;
Миниатюры
Вывести список всех фильмов, встречающихся в списке, в порядке убывания количества голосов, отданных за этот фильм  
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.06.2018, 05:09

Составить список учащихся в списке в порядке убывания
Имеется список учащихся класса с указанием роста каждого из них. Выяс- нить, перечислены ли...

Составить в алфавитном порядке список всех слов, встречающихся в тексте
Дан файл содержащий текст на русском языке. Составить в алфавитном порядке список всех слов,...

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

Составить в алфавитном порядке список всех слов, встречающихся в тексте
Дан файл, содержащий текст на русском языке. Составить в алфавитном порядке список всех слов,...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru