0 / 0 / 0
Регистрация: 29.06.2009
Сообщений: 3
1

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

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

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

Т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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.06.2009, 00:47
Ответы с готовыми решениями:

Дан текст и некоторая буква. Найти слово, содержащее эту букву наиболее количество раз
Помогите, пожалуйста Дан текст и некоторая буква. Найти слово, содержащее эту букву наиболее...

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

Найти слово, содержащее наибольшее количество указанных букв
program lab81; var c:char; s:string; f:text; begin writeln('--- Ваш текст ---'); ...

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

4
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
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
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
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
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.06.2009, 14:21
Помогаю со студенческими работами здесь

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

В заданных текстовых файлах найти слово содержащее наибольшее количество указанных букв
даны файлы содержащий текст и некоторые буквы найти слово содержанее наибольшее количество...

Дана строка и буква. Найти слово, содержащее наибольшее количество этих букв паскаль
Как продолжить ? Program rar; const n=6; var s:string; p, n:integer; begin write('Введите...

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


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

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

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