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

Дана строка, слова разделены пробелом, напечатать в алфавитном порядке все гласные, которые входят хотя бы в одно слово, кроме первого. Помогите с задачкой в Паскале.
Гость
Ответ(ы) на вопрос:
Гость
const   gl = 'аеёиоуыэюя'; var   s: string;   f: array[1..10] of boolean;   i, m: integer; begin   Write('Введите фразу: '); Readln(s);   m := Pos(' ', s);   if m = 0 then Writeln('В строке отсутствуют пробелы')   else begin     for i := 1 to 10 do f[i] := False;     for i := m + 1 to length(s) do       case s[i] of         'А', 'а': f[1] := True;         'Е', 'е': f[2] := True;         'Ё', 'ё': f[3] := True;         'И', 'и': f[4] := True;         'О', 'о': f[5] := True;         'У', 'у': f[6] := True;         'Ы', 'ы': f[7] := True;         'Э', 'э': f[8] := True;         'Ю', 'ю': f[9] := True;         'Я', 'я': f[10] := True       end;     Write('Найдены гласные: ');     for i := 1 to 10 do       if f[i] then Write(gl[i], ' ');     Writeln   end end. Тестовое решение: Введите фразу: Это проверочная фраза "Мама мыла раму". Конец теста. Найдены гласные: а е о у ы я В Pascal.ABC можно написать и короче: const   gl = 'аеёиоуыэюя'; var   s: string;   f: array[1..10] of boolean;   i, m, p: integer; begin   Write('Введите фразу: '); Readln(s);   m := Pos(' ', s);   if m = 0 then Writeln('В строке отсутствуют пробелы')   else begin     for i := 1 to 10 do f[i] := False;     s := LowerCase(s); { перекодировать к нижнему регистру }     for i := m + 1 to length(s) do     begin       p := Pos(s[i], gl);       if p > 0 then f[p] := True     end;     Write('Найдены гласные: ');     for i := 1 to 10 do       if f[i] then Write(gl[i], ' ');     Writeln   end end.
Не нашли ответ?
Ответить на вопрос
Похожие вопросы