Форум программистов, компьютерный форум, киберфорум
Turbo Pascal
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 19.01.2012
Сообщений: 9
1

Найти все группы букв, содержащие наибольшее количество гласных английских букв

25.04.2012, 11:23. Показов 1246. Ответов 1
Метки нет (Все метки)

Нужна помощь с задачей по строкам.
Рассматривается непустая строка, содержащая не более 80 символов. Каждый символ строки может быть малой английской буквой, цифрой или одним из знаков + (плюс), * (звездочка). Группой букв будет называется такая совокупность последовательно расположенных букв, которой непосредственно не предшествует и за которой непосредственно не следует буква. Аналогично определяется группа знаков и группа цифр. Требуется написать программу, которая находит и печатает все группы букв, содержащие наибольшее количество гласных английских букв (a, e, i,). Если в строке нет групп букв, содержащих гласные английские буквы то напечатать сообщение: "В строке нет ни одной искомой группы букв". Если нет ни одной группы букв, то напечатать сообщение: "В строке нет ни одной группы букв". Исходная строка вводится с клавиатуры.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.04.2012, 11:23
Ответы с готовыми решениями:

Найти все группы букв, содержащие сочетание английских букв 'mn'
Рассматривается непустая строка,содержащая не более 80 символов.Каждый символ строки может быть...

Найти все слова, содержащие наибольшее количество гласных латинских букв (a, e, i, o, u)
Через строки: Дан текст. Группы символов, разделенные пробелом (1 или несколько) не содержащие...

Найти все слова, содержащие наибольшее количество гласных латинских букв
Можете помочь с задачей?? "Дан текст. Группы символов, разделенные пробелами (одним или...

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

1
Модератор
63380 / 47073 / 32446
Регистрация: 18.05.2008
Сообщений: 114,102
25.04.2012, 13:59 2
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
uses crt;
const b=['a'..'z'];
      z=['0'..'9','+','-','*'];//мне кажется Вы пропустили знак минус,
      gl=['a','e','i','o','u']; //во всех таких задачах есть и не все гласные
var ds:set of char;
    c:char;
    s,s1:string;
    n,i,j,p,g,mx,k:byte;
begin
writeln('Введите строку из малых английских букв и знаков +  * ');
writeln('длиной до 80 символов, окончание ввода Enter');
s:='';
n:=0;{длина строки}
ds:=b+z;{допустимые символы}
repeat
c:=readkey;{читаем код клавиши}
if c in ds then{если допустимый}
 begin
  n:=n+1;{считаем}
  s:=s+c;{добавляем к строке}
  write(c);{выводим на экран}
 end;
if (c=#13)or(n=80) then writeln;{если Enter или 80, на новую строку}
until (c=#13)or(n=80);{конец ввода}
p:=0;{нет слов с гласными буквами}
g:=0;{нет групп букв}
{будем искать максимальное количество данных букв}
i:=1;
mx:=0;
while i<=n do{пока не конец строки}
if(s[i] in b)and((i=1)or(s[i-1] in z)) then{если буква и она первая или перед ней знак}
 begin
  g:=1;{есть группы букв}
  s1:='';{слово}
  j:=i;
  while(j<=n)and(s[j] in b) do{пока не конец и не знак}
   begin
    s1:=s1+s[j];{составляем слово}
    j:=j+1;
   end;
  k:=0;
  for j:=1 to length(s1) do
  if s1[j] in gl then k:=k+1;{если гласные, считаем}
  if k>mx then
   begin
    p:=1; {есть с гласными}
    mx:=k;
   end;
  i:=i+length(s1);{перешагиваем через слово}
 end
else i:=i+1;{если знак, пропускаем}
if g=0 then write('Нет групп букв')
else if p=0 then write('Нет слов с гласными буквами')
else  {иначе будем искать все слова с максим. кол. гласн.}
 begin
  writeln('Группы букв с максимальным количеством гласных');
  i:=1;
  while i<=n do{пока не конец строки}
  if(s[i] in b)and((i=1)or(s[i-1] in z)) then{если буква и она первая или перед ней знак}
   begin
    s1:='';{слово}
    j:=i;
    while(j<=n)and(s[j] in b) do{пока не конец и не знак}
     begin
      s1:=s1+s[j];{составляем слово}
      j:=j+1;
     end;
    k:=0;
    for j:=1 to length(s1) do
    if s1[j] in gl then k:=k+1;{если гласные, считаем}
    if k=mx then  writeln(s1);
    i:=i+length(s1);{перешагиваем через слово}
   end
  else i:=i+1;{если знак, пропускаем}
 end;
end.
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.04.2012, 13:59

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Напечатать все группы букв, содержащее наименьшее количество согласных английских букв
Рассматривается непустая строка, содержащая не более 80 символов. Каждый символ строки может быть...

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

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

Подсчитать количество гласных и согласных английских букв в тексте файла
В файле input.txt содержится произвольный текст. Подсчитать количество гласных и согласных...


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

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

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