Форум программистов, компьютерный форум, киберфорум
Turbo Pascal
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.81/43: Рейтинг темы: голосов - 43, средняя оценка - 4.81
0 / 0 / 0
Регистрация: 02.05.2014
Сообщений: 18

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

07.06.2014, 01:02. Показов 8581. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Дан текст из строчных латинских букв, за которым следует точка. Напечатать: все звонкие согласные буквы, которые входят более чем в одно слово.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
07.06.2014, 01:02
Ответы с готовыми решениями:

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

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

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

3
0 / 0 / 2
Регистрация: 07.06.2014
Сообщений: 27
07.06.2014, 04:15
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
uses crt;
type let=' а'..'я';
var sogl:set of let;
text: set of char;
c:char;
s:string;
i:byte;
begin
writeln('введите текст, заканчивающийся  точкой');
readln(s);
if s[length(s)]<>'.' then s:=s+'.';
text:=[];
sogl :=['б','в','г','д','ж','з','л','м','н','р'];
repeat
if s[i] in sogl then text:=text+[s[i]];
i:=i+1;
until s[i]='.';
for c:='a'  to 'я' do if c  in text then write(c);
readln;
end.
0
 Аватар для Mawrat
13116 / 5897 / 1708
Регистрация: 19.09.2009
Сообщений: 8,809
07.06.2014, 18:01
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

tanya2k, этот код делает совсем не то, что надо. Эта программа находит все звонкие согласные буквы, которые присутствуют в тексте. А нужно другое - найти те звонкие согласные буквы, которые входят более, чем в одно слово.

Вот, как можно решить эту задачу:
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
program Project1;
 
{Дан текст на русском языке. напечатать в алфавитном порядке все звонкие
согласные буквы, которые входят более чем в одно слово.
 
Примеры:
1.
Дана строка: 'бвг, джз, лмн, р'
Ответ: Нет ни одной буквы, которая входила бы более, чем в одно слово.
2.
Дана строка: 'бвгд, джзр, лмн, р'
Ответ: Перечень звонких согласных букв, которые входят более, чем
  в одно слово: 'д', 'р'.}
 
const
  {Множество разделителей слов.}
  D = ['.', ',', ':', ';', '!', '?', '-', ' ', #9, #10, #13];
  {Множество звонких согласных букв.}
  Da = [
    'Б', 'В', 'Г', 'Д', 'Ж', 'З', 'Л', 'М', 'Н', 'Р',
    'б', 'в', 'г', 'д', 'ж', 'з', 'л', 'м', 'н', 'р' ];
var
  S : String;
  Dw, Ds, Dr : set of Char;
  Ch : Char;
  i, Len : Integer;
begin
  repeat
    Writeln('Задайте строку:');
    Readln(S);
 
    Len := Length(S);
    Dw := []; {Множество согласных звонких букв в текущем слове.}
    Ds := []; {Множество согласных звонких букв, обнаруженных в предыдущих словах.}
    Dr := []; {Множество согласных звонких букв, которые присутствуют более, чем в одном слове.}
    for i := 1 to Len do {Перебор всех символов строки.}
      {Если символ не является разделителем, значит он принадлежит слову.}
      if not (S[i] in D) then
      begin
        if S[i] in Da then
          Dw := Dw + [S[i]]; {Добавляем символ во множество звонких согласных букв слова.}
        if (i = Len) or (S[i + 1] in D) then {Если обнаружен конец слова.}
        begin
          {Dw * Ds - это множество звонких согласных букв, которые есть в текущем
          слове и которые присутствуют в каких-то словах, обработанных ранее.
          Т. е., Dw * Ds - это, как раз, часть множества звонких согласных букв,
          которые присутствуют более, чем в одном слове. Так, обрабатывая слово
          за словом мы соберём сведения о всех таких буквах в тексте.}
          Dr := Dr + Dw * Ds;
          Ds := Ds + Dw;
          Dw := [];
        end;
      end;
 
    {Распечатка звонких согласных букв, которые входят более, чем в одно слово.}
    if Dr = [] then
      Writeln('Нет ни одной буквы, которая входила бы более, чем в одно слово.')
    else
    begin
      Writeln('Перечень звонких согласных букв, которые входят более, чем в одно слово:');
      for Ch := 'Б' to 'р' do
        if Ch in Dr then
          Write(Ch, ' ');
      Writeln;
    end;
 
    Writeln('Повторить - Enter. Выход - любой символ + Enter.');
    Readln(S);
  until S <> '';
end.
0
 Аватар для Mawrat
13116 / 5897 / 1708
Регистрация: 19.09.2009
Сообщений: 8,809
09.06.2014, 01:10
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Добавил приведение букв к верхнему регистру.
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
77
78
79
80
81
82
83
84
85
86
program Project1;
 
{Дан текст на русском языке. Напечатать в алфавитном порядке все звонкие
согласные буквы, которые входят более, чем в одно слово.
 
Примеры:
1.
Дана строка: 'бвгаи, джзое, лмн, раиое'
Ответ: Нет ни одной буквы, которая входила бы более, чем в одно слово.
2.
Дана строка: 'бвгдаи, джзраи, лмн, раиое'
Ответ: Перечень звонких согласных букв, которые входят более,
  чем в одно слово: 'Д', 'Р'.}
 
{Перевод букв строки в верхний регистр.}
procedure UpCaseRu(var S : String);
var
  i : Integer;
begin
  for i := 1 to Length(S) do
    if S[i] in ['а'..'п'] then
      S[i] := Chr(Ord(S[i]) - 32)
    else if s[i] in ['р'..'я'] then
      S[i] := Chr(Ord(S[i]) - 80)
    else if S[i] = 'ё' then
      S[i]:='Ё'
    else
      S[i] := UpCase(S[i]);
end;
 
const
  {Множество разделителей слов.}
  D = ['.', ',', ':', ';', '!', '?', '-', ' ', #9, #10, #13];
  {Множество звонких согласных букв.}
  Da = ['Б', 'В', 'Г', 'Д', 'Ж', 'З', 'Л', 'М', 'Н', 'Р'];
var
  S : String;
  Dw, Ds, Dr : set of Char;
  Ch : Char;
  i, Len : Integer;
begin
  repeat
    Writeln('Задайте строку:');
    Readln(S);
 
    UpCaseRu(S); {Перевод букв строки в верхний регистр.}
 
    Len := Length(S);
    Dw := []; {Множество согласных звонких букв в текущем слове.}
    Ds := []; {Множество согласных звонких букв, обнаруженных в предыдущих словах.}
    Dr := []; {Множество согласных звонких букв, которые присутствуют более, чем в одном слове.}
    for i := 1 to Len do {Перебор всех символов строки.}
      {Если символ не является разделителем, значит он принадлежит слову.}
      if not (S[i] in D) then
      begin
        if S[i] in Da then
          Dw := Dw + [S[i]]; {Добавляем символ во множество звонких согласных букв слова.}
        if (i = Len) or (S[i + 1] in D) then {Если обнаружен конец слова.}
        begin
          {Dw * Ds - это множество звонких согласных букв, которые есть в текущем
          слове и которые присутствуют в каких-то словах, обработанных ранее.
          Т. е., Dw * Ds - это, как раз, часть множества звонких согласных букв,
          которые присутствуют более, чем в одном слове. Так, обрабатывая слово
          за словом мы соберём сведения о всех таких буквах в тексте.}
          Dr := Dr + Dw * Ds;
          Ds := Ds + Dw;
          Dw := [];
        end;
      end;
 
    {Распечатка звонких согласных букв, которые входят более, чем в одно слово.}
    if Dr = [] then
      Writeln('Нет ни одной буквы, которая входила бы более, чем в одно слово.')
    else
    begin
      Writeln('Перечень звонких согласных букв, которые входят более, чем в одно слово:');
      for Ch := 'Б' to 'Р' do
        if Ch in Dr then
          Write(Ch, ' ');
      Writeln;
    end;
 
    Writeln('Повторить - Enter. Выход - любой символ + Enter.');
    Readln(S);
  until S <> '';
end.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
09.06.2014, 01:10
Помогаю со студенческими работами здесь

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

Напечатать в алфавитном порядке все звонкие согласные, которые входят в слово 2 и более раз
Звонкие согласные- б в г д ж з л м н р. Case написал а со множеством застрял. Помогите плиз.

Напечатать в алфавитном порядке: Все звонкие согласные, которые входят хотя бы в одно четное слово.
Program mn_3; uses crt; type let=' а'..'я'; var sogl:set of let; text: set of char; c:char; s:string; i:byte; begin ...

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

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


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru