Задать вопрос
22 января, 16:29

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

+1
Ответы (1)
  1. 22 января, 18:50
    0
    Вариант для тех, кто любит и понимает множества.

    const

    cs='бвгджз';

    var

    s:string;

    i:integer;

    c:char;

    p, csg:set of char;

    begin

    Writeln ('Введите текст, разделяя слова запятыми, в конце поставьте точку') ;

    Readln (s) ;

    p:=[];

    for i:=1 to Length (cs) do Include (csg, cs[i]) ; { инициализация множества }

    s:=LowerCase (s) ; { приведение к нижнему регистру }

    i:=1; c:=s[1];

    while c'.' do begin

    { обработка нечетного слова }

    while not (c in [',','.']) do begin

    if (c in csg) and not (c in p) then Include (p, c) ;

    i:=i+1;

    c:=s[i]

    end;

    { обработка четного слова }

    if c'.' then begin i:=i+1; c:=s[i] end;

    while not (c in [',','.']) do begin

    if (c in csg) and (c in p) then Exclude (p, c) ;

    i:=i+1;

    c:=s[i]

    end;

    if c'.' then begin i:=i+1; c:=s[i] end

    end;

    s:='';

    for i:=1 to Length (cs) do if cs[i] in p then Write (cs[i])

    end.

    Тестовое решение:

    Введите текст, разделяя слова запятыми, в конце поставьте точку

    Это, пример, текста, созданного, для, проверки, программы.

    гд

    Вариант для тех, кто с множествами не дружит:

    const

    cs='бвгджз';

    var

    s, p:string;

    i, n:integer;

    c:char;

    begin

    Writeln ('Введите текст, разделяя слова запятыми, в конце поставьте точку') ;

    Readln (s) ;

    p:=''; n:=Length (cs) ;

    s:=LowerCase (s) ; { приведение к нижнему регистру }

    i:=1; c:=s[1];

    while c'.' do begin

    { обработка нечетного слова }

    while (c',') and (c'.') do begin

    if (Pos (c, cs) >0) and (Pos (c, p) = 0) then p:=p+c;

    i:=i+1;

    c:=s[i]

    end;

    { обработка четного слова }

    if c'.' then begin i:=i+1; c:=s[i] end;

    while (c',') and (c'.') do begin

    if (Pos (c, cs) >0) and (Pos (c, p) = 1) then p[Pos (c, p) ]:='*';

    i:=i+1;

    c:=s[i]

    end;

    if c'.' then begin i:=i+1; c:=s[i] end

    end;

    for i:=1 to Length (cs) do if Pos (cs[i], p) >0 then Write (cs[i])

    end.

    Тестовое решение:

    Введите текст, разделяя слова запятыми, в конце поставьте точку

    Данная, фраза, предлагается, для, тестирования.

    вг
Знаете ответ?
Сомневаетесь в ответе?
Найдите правильный ответ на вопрос ✅ «Pascal. Дана непустая последовательность слов из строчных русских букв; между соседними словами - запятая, за последним словом - точка. ...» по предмету 📘 Информатика, а если вы сомневаетесь в правильности ответов или ответ отсутствует, то попробуйте воспользоваться умным поиском на сайте и найти ответы на похожие вопросы.
Смотреть другие ответы
Похожие вопросы по информатике
Дана непустая последовательность слов из строчных латинских букв; между соседними словами - запятая, за последним словом - точка. Напечатать все буквы, которые входят в наибольшее количество слов этой последовательности. Писать на Pascal.
Ответы (1)
Дан текст, содержащий не более 10 слов, из строчных русских букв, между соседними словами - запятая, за последним словом - точка.
Ответы (1)
Дана последовательность, содержащая от 2 до 30 слов, в каждом из от 1 до 8 символов строчных латинских букв между соседними словами-не менее одного пробела, за последним словом-точка.
Ответы (1)
Дана непустая последовательность непустых слов из латинских букв, соседние слова отделены друг от друга запятой, за последним словом записана точка. Определить количество слов, которые начинаются с буквы "а".
Ответы (1)
1) дана строка S определить и напечатать сколько символов * 2) дана строка S вместо каждого символа * записать символы 0 Напечатать полученную строку 3) дана строка S получить и напечатать строку Т образуемую путем прочтения строки S начиная с ее
Ответы (1)