Задать вопрос
12 апреля, 10:32

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

+2
Ответы (1)
  1. 12 апреля, 12:03
    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)