- •Объектно-ориентированное программирование на языке Delphi
- •Алгоритмы и исполнители
- •Основные понятия объектно-ориентированного программирования
- •TButton
- •Проверочная работа №1. Алгоритмы и исполнители. Основные понятия ооп
- •Форма и размещение на ней простейших объектов
- •Лабораторная работа №1
- •Расположение объектов на форме
- •Лабораторная работа №2
- •Дополнительные возможности при работе с объектами Edit, Memo. Кнопка с изображением BitBtn
- •Лабораторная работа №3. MainMenu - главное меню формы
- •Проверочная работа №2. Работа с компонентами.
- •Арифметические операции в ооп
- •Лабораторнаяработа № 4
- •Лабораторная работа №5. Алгоритм решения математический задачи на языке.
- •Стандартные арифметические функции
- •Лабораторная работа № 6
- •Флажки (CheckBox) и переключатели (RadioButton). Условный оператор
- •Лабораторная работа №7
- •Проверочная работа №3. Условный оператор.
- •Оператор варианта
- •Лабораторная работа №8
- •Работа со строками в объектно-ориентированном программировании. Оператор цикла с параметрами
- •Лабораторная работа №9
- •Программирование циклических алгоритмов. Циклы «до» и «пока»
- •Лабораторная работа №10
- •Проверочная работа №4. Строки. Циклы
- •Рассмотрение дополнительных компонентов для ввода/вывода строк
- •Оператор присоединения (With)
- •Графические компоненты
- •Лабораторная работа №11
- •Работа с таблицами
- •Лабораторная работа №12
- •Массивы
- •Лабораторная работа №13
- •Проверочная работа №5. Массивы
- •Обработка событий мыши. Регулировка прозрачности формы
- •Процедуры и функции вызова диалоговых окон
- •Лабораторная работа №14
- •Работа с датой и временем
- •Лабораторная работа №15
- •Контрольная работа
- •Список рекомендуемой литературы
Лабораторная работа №9
Рассмотрим алгоритм решения задачи, в которой нужно подсчитать количество вхождений символа «а» в строку. Используем компоненты классов 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;
Пусть форма будет выглядеть следующим образом:
Задания для самостоятельной работы:
Дана строка s: Найти количество вхождений букв a,c,d в строку.
Найти количество цифр в строке.
Сцепить несколько строк в одну.
Из данной строки выбрать цифры и сформировать из них новую строку.
Найти количество слов, начинающихся на букву с.
Подсчитать количество слов в строке.
Определить начинается и заканчивается ли слово одной буквой.
Удалить каждую четную букву в строке.
Проверить одинаковое ли число открытых и закрытых скобок в строке.
По введенным: фамилии, имени, отчеству выводить информацию о том, является ли пользователь автором программы, его теской или являются ли теской отец автора и пользователя программы.
Программирование циклических алгоритмов. Циклы «до» и «пока»
Как уже говорилось, известны три типа циклических алгоритмических структур. Была рассмотрена только одна из них – цикл с параметром. Поговорим об остальных:
цикл с предусловием
цикл с постусловием
Существуют операторы для их реализации.
1. Цикл с предусловием (цикл-«пока») - наиболее универсальная циклическая структура. Реализуется оператором While. Формат оператора:
While <логическое выражение> do <тело цикла>
Пока значение логического выражения истинно (true), выполняется тело цикла, тело может быть простым или составным оператором.
2. Цикл с постусловием (цикл-«до») имеет формат
Repeat < тело цикла > until < логическое выражение >
Повторяется выполнение тело цикла. Цикл заканчивается, когда логическое выражение становится истинным. Тело цикла с постусловием выполняется хотя бы один раз. Использование операторных скобок для ограничения тела цикла не требуется.
Для гибкого управления циклическими операторами используют следующие процедуры:
Break – реализует немедленный выход из цикла
Continue – обеспечивает досрочное завершение очередного прохода цикла.
Лабораторная работа №10
Задача: Вывести 5 одинаковых надписей: «Программа цикла»
Для вывода повторяющегося действия нам понадобиться описать переменную i целого типа, обработать события OnClick для кнопки Button1. В теле процедуры необходимо описать нижеследующий метод:
procedure TForm1.Button1Click(Sender: TObject);
begin
for i:=1 to 5 do
Memo1.Lines.Add('Программа цикла')
end;
Рассмотрим пример решения задачи: найти сумму ряда s=1+1/2+1/3+…+1/k.
Для задачи наиболее оптимальным алгоритмом решения будет цикл. Для того чтобы выделить повторяющие части запишем ряд следующим образом: s=1/1+1/2+1/3+…+1/k.
Заметим, что числители постоянен и равен 1. Знаменатели постоянно увеличиваются на 1 в интервале от 1 до k. Таким образом, общий вид элемента ряда = 1/i, где i – изменяющийся знаменатель. Следовательно, запишем метод решения задачи:
Var k,i: integer; s: real;
Begin
k:=StrToInt(Edit1.Text); s:=0;
For i:=1 to k do s:=s+1/i; {i пробегает все значения знаменателя от 1 до k (1, 2, 3, …, k) изначально s=0, при k=1 s=0+1/1, s становится равным 1; при k=2 s=1+1/2, s становится равным 1,5 и т.д.}
Memo1.Text:=FloatToStr(s);
End;
Задания для самостоятельной работы:
Вывести таблицу умножения на любое число, введенное с клавиатуры.
Вывести таблицу значений функции y=sin(x) в интервале 0..1
Вывести 4 надписи: «На окне сидело n кошек», 1n4.
В интервале [0,20] подсчитать количество четных чисел и чисел, которые делятся на 3.
Вычислить сумму натурального ряда чисел от 1 до n.
Вычислить сумму чисел s=1/(p+2)+2(p+2)+3/(p+2)+…+p/(p+2).
Вычислить произведение чисел кратных 5 ряда от 1 до n.
8*. Вычислить сумму чисел s=(1+3+5+…+2*n-1)3-(2+4+6+…+2*n)2.
9*. Составить программу для проверки утверждения: «Результатами вычислений по формуле х2+х+17 при 0≤х≤15 являются простые числа». Все результаты вывести на экран (простое число – число которое делится только на себя и на единицу).
10*. Покупатель должен заплатить в кассу s рублей. У него имеются 1, 2, 5, 10, 50, 100, 500, 1000-рублевые купюры. Сколько купюр разного достоинства отдаст покупатель, если он начнет платить с самых крупных? (использовать процедуру Continue).
11*. Написать программу, которая запрашивает исходные данные и производит над ними выбранное пользователем действие. Выбор действий осуществляется с помощью меню. Исходные данные – числа a и b. Меню действий:
– сложить
– умножить
– вычесть
– разделить
– выход
Результат выводить после каждого действия