Рассмотрим алгоритм решения задачи, в которой нужно подсчитать количество вхождений символа «а» в строку. Используем компоненты классов TEdit и TMemo для ввода строки и вывода результата.
Var s: string;
i, k: integer;
Procedure TForm1.Button1Click(Sender: TObject);
Begin
s:=edit1.text; //ввод строки
For i:=1 to length(s) do //идем по строке
If s[i]=’a’ then k:=k+1; {если i-ый символ а, тогда увеличивай счетчик k}
Memo1.text:=IntToStr(k) //вывод результата
End;
Пусть форма будет выглядеть следующим образом:
Задания для самостоятельной работы:
1. Дана строка s: Найти количество вхождений букв a,c,d в строку.
2. Найти количество цифр в строке.
3. Сцепить несколько строк в одну.
4. Из данной строки выбрать цифры и сформировать из них новую строку.
5. Найти количество слов, начинающихся на букву с.
6. Подсчитать количество слов в строке.
7. Определить начинается и заканчивается ли слово одной буквой.
8. Удалить каждую четную букву в строке.
9. Проверить одинаковое ли число открытых и закрытых скобок в строке.
10. По введенным: фамилии, имени, отчеству выводить информацию о том, является ли пользователь автором программы, его теской или являются ли теской отец автора и пользователя программы.
Программирование циклических алгоритмов. Циклы «до» и «пока»
Как уже говорилось, известны три типа циклических алгоритмических структур. Была рассмотрена только одна из них – цикл с параметром. Поговорим об остальных:
- цикл с предусловием
- цикл с постусловием
Существуют операторы для их реализации.
1.Цикл с предусловием (цикл-«пока») - наиболее универсальная циклическая структура. Реализуется оператором While. Формат оператора:
While <логическое выражение> do <тело цикла>
Пока значение логического выражения истинно (true), выполняется тело цикла, тело может быть простым или составным оператором.
2.Цикл с постусловием (цикл-«до»)имеет формат
Repeat < тело цикла > until < логическое выражение >
Повторяется выполнение тело цикла. Цикл заканчивается, когда логическое выражение становится истинным. Тело цикла с постусловием выполняется хотя бы один раз. Использование операторных скобок для ограничения тела цикла не требуется.
Для гибкого управления циклическими операторами используют следующие процедуры:
Break – реализует немедленный выход из цикла
Continue – обеспечивает досрочное завершение очередного прохода цикла.