1. Заголовок темы должен быть информативным. В противном случае тема удаляется ... 2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения. 3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали! 4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора). 5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM! 6. Одна тема - один вопрос (задача) 7.Проверяйте программы перед тем, как разместить их на форуме!!! 8.Спрашивайте и отвечайте четко и по существу!!!
ввести строку (латинские буквы) и подсчитать кол-во букв 'а' в ней
Я думаю, это будет выглядеть как-то так:
Код
program hg; var st:string; k:integer; begin for 1 to length(st) do k:=ord(st,'a') if k:=160 {esli ne owibayus' eto kod bykvy 'a'} then k:=k+1 else writeln('bykv 'a' v stroke net'); end.
У меня есть предложение зайти с другой стороны)). В условии сказано:
Цитата
подсчитать кол-во букв 'а' в ней
- заметьте: букв, а не символов. И это при некоторой фантазии можно понять как наличие как маленьких, так и больших букв 'a'. Хотя, это еще не дает достаточно доводов в пользу использования Ord. Но если мы добавим в программу некоторую универсальность (а именно, чтобы код изменялся самым минимальным образом при изменении 'a' на 'b' или еще что-то) - вот тут наш пресловутый Ord заявит о себе во весь голос.
При этом условие практически то же (а может, и более точно), требуемая функция использована, и функциональность кода повышена (на случай дописывания).
--------------------
я - ветер, я северный холодный ветер я час расставанья, я год возвращенья домой
Но если мы добавим в программу некоторую универсальность (а именно, чтобы код изменялся самым минимальным образом при изменении 'a' на 'b' или еще что-то) - вот тут наш пресловутый Ord заявит о себе во весь голос.
Не понял. Минимальное изменение программы, это когда она при смене буквы вообще не меняется (а нужная буква, скажем, вводится с клавиатуры или из конфигурационного файла). И в этом случае не понимаю, как замена символьной константы на символьную переменную может привенсти к использованию оператора ord.
program hg; var st:string; I,k:integer; ch : char; begin write('Vvedite strokyy'); readln(st); write('Vvedite bukvu dl''a poiska'); readln(ch);
k:=0; for I:=1 to length(st) do If st[I]=ch then inc(k);
If k=0 then writeln('bykv ',ch,' v stroke net') else writeln('Bykv ',ch,' v stroke:', k); end.