- Определить , какая из букв “е” или “о”
встречается в предложении чаще.
-
- {определить
какая из букв "о" или "е" встречается чаще}
-
program
zad2;
-
var
-
str
: string;
-
i,
ke, ko : integer;
-
begin
-
i :=
1; ke := 0; ko := 0;
-
writeln('Введите
строку');
-
readln(str);
-
for
i := 1 to length(str) do
-
begin
-
if
str[i] = 'е' then inc(ke); {если символ "е" ke + 1}
-
if
str[i] = 'о' then inc(ko); {аналогично ko + 1}
-
end;
-
- writeln('В
введённой строке символов "е" = ', ke);
-
writeln;
-
writeln('
Символов "о" = ', ko);
-
writeln;
-
write('
Соответсвенно ');
-
- if
ke > ko then writeln('больше "е".');
-
if
ke < ko then writeln('больше "о".');
-
if
ke = ko then writeln('одинаково.');
-
- readln;
-
- end.
-
- Решение
приведённое выше работает только для русских букв, а если
пользователь забудет переключить клавиатуру? Попробуем
усовершенствовать. (Скачать решение 1.)
-
- program
zad2;
-
var
-
str
: string;
-
i,
ke, ko : integer;
-
begin
-
i :=
1; ke := 0; ko := 0;
-
writeln('Введите
строку');
-
readln(str);
-
for
i := 1 to length(str) do
-
begin
-
if
(str[i] = 'е') or (str[i] = 'e') then inc(ke); {если символ "е"
ke + 1}
-
if
(str[i] = 'о') or (str[i] = 'o') then inc(ko); {аналогично ko + 1}
-
end;
-
- writeln('В
введённой строке символов "е" = ', ke);
-
writeln;
-
writeln('
Символов "о" = ', ko);
-
writeln;
-
write('
Соответсвенно ');
-
- if
ke > ko then writeln('больше "е".');
-
if
ke < ko then writeln('больше "о".');
-
if
ke = ko then writeln('одинаково.');
-
- readln;
-
- end.
-
- Во
втором варианте решения добавлен оператор or
и
строка также сравнивается с символами «о» и «е»
только в английской раскладке клавиатуры. (скачать
решение 2.)
- Но
данную задачу можно еще усовершенствовать, в последнем варианте мы
сами спросим у пользователя какие символы будем сравнивать.
-
- {определить
какая из введённых пользователем букв встречается чаще}
-
program
zad2;
-
var
-
str
: string;
-
s1,
s2 : string[1];
-
i,
ke, ko : integer;
-
begin
-
i :=
1; ke := 0; ko := 0;
-
writeln('Введите
первую букву.');
-
readln(s1);
-
writeln('Введите
вторую букву.');
-
readln(s2);
-
writeln('Введите
строку');
-
readln(str);
-
for
i := 1 to length(str) do
-
begin
-
if
(str[i] = s1) then inc(ke); {если символ "е" ke + 1}
-
if
(str[i] = s2) then inc(ko); {аналогично ko + 1}
-
end;
-
- writeln('В
введённой строке символов ', s1, ' = ', ke);
-
writeln;
-
writeln('
Символов ', s2, ' = ', ko);
-
writeln;
-
write('
Соответсвенно ');
-
- if
ke > ko then writeln('больше ', s1, '.');
-
if
ke < ko then writeln('больше ', s2, '.');
-
if
ke = ko then writeln('одинаково.');
-
- readln;
-
- end.
-
- Дополнительные
символы s1, s2 это то, что мы будем искать. Они определены как
string[1], т.е. В данную переменную можно записать только 1 символ,
если пользователь случайно или намеренно введёт несколько символов,
то программа обработает толко первый из введённых.
-
- (Скачать
решение 3.)
-