Задание 2 Для какого из приведённых имён ложно высказывание: НЕ (Первая буква согласная) ИЛИ НЕ (Последняя буква гласная)? 1. Иван 2. Михаил 3. Вера 4. Любовь
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.
var s : string[50]; i, j, k : word; f : boolean; function isSpace(ch : char) : boolean; begin isSpace := false; if ch = ' ' then isSpace := true; end; begin f := false; repeat j := 0; writeln('введите строку, состоящую из 2 слов'); readln(s); for i := 1 to length(s) do if isSpace(s[i]) then begin inc(j); k := i; end; if j =1 then f := true; until f; write(copy(s, k + 1, length(s)), ' ', copy(s, 1, k - 1)); end. недавно такую писала :)
по идеи Иван
Объяснение:
потому что он единственный к кому подходит это