Определить , какая из букв “е” или “о” встречается в предложении чаще.

{определить какая из букв "о" или "е" встречается чаще}
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.)

Hosted by uCoz