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

Определить количество слов, которые содержат ровно три буквы "А"

20.11.2013, 04:19. Показов 1654. Ответов 2
Метки нет (Все метки)

помогите пожалуйста, написал программу по заданию:
дана строка, состоящая из слов, разделенных пробелами ( одним или несколькими). Определить количество слов, которые содержать ровно три буквы ≪А≫. все работает, но не совсем правильно. распознает на англ текст, но когда вожу на русском, то он не находит слов с 3 буквами А.
вот код программы
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
procedure TForm1.Button1Click(Sender: TObject);
var
  i, j: Integer;
  txt: String;
  counter: Integer;
 
  procedure WordFound(s: string);
  var
    c, n: Integer;
  begin
    c := 0;
    for n := 1 to Length(s) do
      if (s[n] = 'A') or (s[n] = 'a') then Inc(c);
 
    if c = 3 then
      Inc(counter);
  end;
 
begin
  counter := 0;
  txt := StringReplace(Memo1.Lines.Text, #13#10, ' ', [rfReplaceAll]) + ' ';
  j := 1;
  for i := 1 to Length(txt) do
  begin
    if (txt[i] = ' ') then
    begin
       if i <> j then
          WordFound(Copy(txt, j, i - j));
       j := i + 1;
       Continue;
    end;
  end;
 
  ShowMessage('Количество слов с ровно тремя буквами "А" - ' + IntToStr(counter));
end;
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.11.2013, 04:19
Ответы с готовыми решениями:

Считать текст из файла, заменить в нем буквы "о" на "а" и записать файл
Здравствуйте, форумчане! Выручайте! Надо переделать код из паскаля в лазарус для курсовой 1) ...

Вычисление суммы мест, на которых в слове стоят буквы "в" и "п"
составьте программу вычисления суммы мест, на которых в слове стоят буквы «в» и «п». Lazarus

Реализация дерева ключевых слов ("Бор", "Trie")
Помогите реализовать алгоритм дерева ключевых слов(бор) на lazarus

Определить количество слов, которые содержат ровно три буквы "А"
Дана строка, состоящая из русских слов, разделенных пробелами (одним или несколькими). Определить...

2
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
32242 / 20882 / 8086
Регистрация: 22.10.2011
Сообщений: 36,119
Записей в блоге: 7
20.11.2013, 05:01 2
Лучший ответ Сообщение было отмечено volvo как решение

Решение

Вот тут: Cколько слов начинается с той же буквы, которой закончилось предыдущее слово? я объяснял, почему нельзя работать подобным образом со строками. Замени функцию WordFound вот на такую:

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
  procedure WordFound(s: string);
  var
    c, n: Integer;
    Ch : string;
  begin
    c := 0;
    for n := 1 to UTF8Length(s) do
    begin
      Ch := UTF8UpperCase(UTF8Copy(s, n, 1));
      if Ch = 'А' then Inc(c); // Здесь А - русская, не латинская
    end;
 
    if c = 3 then
      Inc(counter);
  end;
, она будет искать русские символы "А" в строке. Не забудь добавить LCLProc в секцию Uses...
1
0 / 0 / 0
Регистрация: 20.11.2013
Сообщений: 3
20.11.2013, 06:40  [ТС] 3
огромное спасибо
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.11.2013, 06:40
Помогаю со студенческими работами здесь

Определить количество слов, которые содержат ровно три буквы "А"
Дана строка, состоящая из русских слов, разделенных пробелами (одним или несколькими). Определить...

Определить количество слов, которые содержат ровно три буквы "А"
Дана строка, состоящая из русских слов, разделенных пробелами (одним или несколькими). Определить...

Определить количество слов в строке, которые содержат ровно три буквы "А"
Дана строка, состоящая из русских слов, разделенных пробелами (одним или несколькими). Определить...

Определить в строке количество слов, которые содержат ровно три буквы "А"
C# Тема: Строки Дана строка, состоящая из русских слов, разделенных пробелами (одним или...


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

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

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