Форум программистов, компьютерный форум, киберфорум
Наши страницы
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.94/18: Рейтинг темы: голосов - 18, средняя оценка - 4.94
Timecool
0 / 0 / 0
Регистрация: 29.06.2009
Сообщений: 3
1

Дан текст на русском языке и некоторая буква. Найти слово, содержащее наибольшее количество указанных букв.

29.06.2009, 00:47. Просмотров 3345. Ответов 4
Метки нет (Все метки)

Дан текст на русском языке и некоторая буква. Найти слово, содержащее наибольшее количество указанных букв.

Тeкст в Мемо1, Буква в Edit2, вывод в Label3

Собственно вопрос что не так, компиляция проходит нормально, прин нажатии на кнопку ошибка Access violation at address 00403E10 in module 'Project1.exe'. Read of address 00000004
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
procedure TForm1.Button1Click(Sender: TObject);
Var a:array of string;
s,s1,s4,s2,s3,z:string;
n,x,j,i,f,h,y,r:integer;
begin
z:=Edit2.Text;
f:=0;
s4:=' ';
With memo1 do begin
              For n:=0 to lines.count-1 do
                begin s:=Lines[n];
                i:=1;
                r:=0;
                while i<>length(s) do
                  If s[i]=s4 then
                    begin
                      r:=r+1;
                      a[r]:=copy(s,1,i);
                      delete(s,1,i);
                      i:=1;
                    end else i:=i+1;
                end;
              end;
h:=0;
y:=0;
For i:=1 to r do begin s2:=a[i];
                       for j:=1 to length(s2) do If s2[j]=z then
                       h:=h+1;
                       If h>y then begin y:=h;
                                        s3:=s2;
                                    end;
                end;
label3.Caption:='Искомое слово "'+s3+'". Буква "'+s1+'" встречается '+inttostr(y)+' раз';
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.06.2009, 00:47
Ответы с готовыми решениями:

Дан текст на русском языке. Найти количество гласных букв в первом слове
Дан текст на русском языке. Найти количество гласных букв в первом слове.Паскаль

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

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

Дан текст на русском языке. Определить сколько раз в нем встречается самое длинное слово
Дан текст на русском языке. Определить сколько раз встречается самое длинное...

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

4
VampireKB
36 / 35 / 3
Регистрация: 12.06.2009
Сообщений: 211
29.06.2009, 00:58 2
Ну во-первых не
Delphi
1
For n:=0 to lines.count-1 do
а
Delphi
1
For n:=1 to lines.count-1 do
во вторых,что тебе мешает воспользроваться данным алгоритмом:
берём текст memo.lines.text
втыкаем 3-ых переменных типа string и 2-е типа integer ,а далее совершаем простую фигню:
1-ая переменная = в memo.lines.text
for a:=1 to length(1-ая переменная) do

и выполняешь постановку во вторую переменную.
Если обнаружин пробел " ",и нужная нам буква попадалась,то сравниваем кол-во найденных букв с кол-вом букв в 3-ей переменной.И ,если больше, проставляем туда.

вконце выдаём параметры третьей переменной
1
Timecool
0 / 0 / 0
Регистрация: 29.06.2009
Сообщений: 3
29.06.2009, 01:39  [ТС] 3
Цитата Сообщение от VampireKB Посмотреть сообщение
Если обнаружин пробел " ",и нужная нам буква попадалась,то сравниваем кол-во найденных букв с кол-вом букв в 3-ей переменной.И ,если больше, проставляем туда.
Код бы а то у самого не выходит чет

Добавлено через 14 минут 50 секунд
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Var s1,s2,s3,s4:string;
x,y,i:integer;
begin
s1:=Memo1.Lines.Text;
x:=0;
y:=0;
For i:=1 to length(s1) do
  begin
    If s1[i]=' ' then
                    begin s2:=copy(s1,1,i);
                          delete(s1,1,i);
                          If x>y then begin s3:=s2;
                                            y:=x;
                                      end;
                    end
                          else If s1[i]=s4 then x:=x+1;
 
   end;
 
Edit2.Text:=s3;
end;
0
VampireKB
36 / 35 / 3
Регистрация: 12.06.2009
Сообщений: 211
29.06.2009, 09:43 4
Код я писать не буду,сам подумай ))Иначе не научишься (да и меня никто не обучал..сам с нуля..)

основная ф-ция,которая тебе пригодится это:
Delphi
1
2
3
for a:=1 to length(stringvar2) do
begin
stringvar1:=stringvar2[a]
а далее делаешь if\else систему,которая тебе будет расфасовывать всё по-полочкам )
1
Timecool
0 / 0 / 0
Регистрация: 29.06.2009
Сообщений: 3
29.06.2009, 14:21  [ТС] 5
Цитата Сообщение от VampireKB Посмотреть сообщение
Код я писать не буду,сам подумай ))Иначе не научишься (да и меня никто не обучал..сам с нуля..)

основная ф-ция,которая тебе пригодится это:
Delphi
1
2
3
for a:=1 to length(stringvar2) do
begin
stringvar1:=stringvar2[a]
а далее делаешь if\else систему,которая тебе будет расфасовывать всё по-полочкам )
Честно говоря я вообще не понимаю как можно решить эту задачу без разделения текста на массив слов из текста, а уже потом брать по слову с массива и смотреть сколько в нем той или иной буквы, найдя слово содержащее максимальное количество заданных букв его вывести. Так вот в первом посте я это и пытался сделать... Люди гляньте что вызывает ошибку в коде при пошаговом запуске ошибка выходит на
Delphi
1
a[r]:=copy(s,1,i);
0
29.06.2009, 14:21
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.06.2009, 14:21

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

Дан текст на русском языке с разделителями. Записать его в разрядку через пробел
Помогите пожалуйста. Текст записан в мемо1, надо записать измененный текст в...

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


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

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

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