
- •Занятие 1. Введение Почему именно Delphi?
- •Что мы видим на экране
- •Контрольные вопросы:
- •Занятие 2. Мое первое приложение в Delphi Вывести текст в окне
- •Задания для самостоятельной работы
- •Кнопки. Какие они бывают и зачем они?
- •Задания для самостоятельной работы
- •Поле редактирования
- •Задания для самостоятельной работы
- •Контрольные вопросы
- •Занятие 3. Введение в язык программирования Pascal
- •Понятие алгоритма
- •Структура процедуры
- •Правила задания имен языка Pascal
- •Задания для самостоятельной работы
- •Тип данных
- •Числовой тип данных. Целые числа
- •Числовой тип данных. Вещественные числа
- •Описание данных
- •Задания для самостоятельной работы
- •Операции
- •Присвоение значения переменной. Оператор присваивания
- •Задания для самостоятельной работы
- •Задача «Простой калькулятор»
- •Встроенные функции
- •Задания для самостоятельной работы
- •Контрольные вопросы
- •Занятие 4. Разветвляющийся алгоритм
- •Логический тип данных
- •Описание данных логического типа
- •Логические выражения
- •Разветвляющийся алгоритм
- •Оператор if
- •Оператор выбора case
- •Задания для самостоятельной работы
- •Списки. Компоненты ListBox и ComboBox
- •Зависимые переключатели. Компоненты RadioButton, RadioGroup
- •Задание для самостоятельной работы
- •Добавление формы к проекту
- •Структура модуля Pascal
- •Как открыть форму
- •Задание для самостоятельной работы
- •Способность форм ссылаться друг на друга
- •Задание для самостоятельной работы
- •Просмотр форм и ассоциированных с ними модулей
- •Основные свойства, методы и события формы
- •Менеджер проектов
- •Опции пpоекта
- •Упpавление пpоектами
- •Компиляция и сборка проекта
- •Выполнение и отладка проекта
- •Задания для самостоятельной работы
- •Контрольные вопросы
- •Занятие 6. Начинаем рисовать
- •Рисование линий
- •Задание цвета
- •Рисование фигур
- •Свойства класса tBrush
- •Вывод текста
- •События формы OnPaint и OnResize
- •Задания для самостоятельной работы
- •Занятие 7. Циклы
- •Цикл со счетчиком: for
- •Цикл с предусловием: while
- •Цикл с постусловием: repeat..Until
- •Использование операторов Continue и Break в циклах
- •Задание случайных чисел. Функция Random. Процедура Randomize
- •Вложенные циклы
- •Задания для самостоятельной работы
- •Контрольные вопросы
- •Занятие 8. Массивы
- •Одномерные массивы
- •Двумерные массивы
- •Компонент tStringGrid
- •Задание для самостоятельной работы
- •Контрольные вопросы
- •Занятие 9. Строки и символы
- •Символьный тип данных
- •Строковый тип данных
- •Сравнение текстовой информации
- •Функции для работы с текстовой информацией
- •Задания для самостоятельной работы
- •Контрольные вопросы
- •Занятие 10. Работа с изображениями
- •Редактор Image Editor
- •Как отобразить рисунок в форме
- •Компонент Timer
- •Как заставить картинку двигаться
- •Случайное движение
- •Задание для самостоятельной работы.
- •Движение по закону
- •Задание для самостоятельной работы
- •Управляемое движение
- •Задание для самостоятельной работы
- •Как совместить разные виды движения
- •Задание для самостоятельной работы
- •Использование мыши
- •Занятие 11. Процедуры и функции
- •Описание и вызов процедуры
- •Описание и вызов функции
- •Где описывать процедуры(функции)
- •Передача параметров по ссылке и по значению
- •Контрольные вопросы
- •Задание для самостоятельной работы
- •Занятие12. Еще про компоненты Еще раз про списки
- •Функция MessageDlg
- •Задание для самостоятельной работы
- •Главное меню приложения. Компонент MainManu
- •Задание для самостоятельной работы
- •Кнопочная панель. Компонент ToolBar
- •Область редактирования. Компонент Memo
- •Контекстное меню. Компонент PopupMenu
- •Диалоговые окна Windows
- •Задание для самостоятельной работы
- •Занятие 13. Объектно-ориентированный подход (ооп) в программировании Основные понятия ооп
- •Основные принципы ооп
- •Тип данных запись (структура)
- •Задание для самостоятельной работы
- •Классы и объекты в Delphi
- •Задание для самостоятельной работы
- •Контрольные вопросы
- •Занятие 14. Работа с файлами
- •Общая технология работы с файлами в Delphi
- •Стандартный подход к работе с файлами
- •Описание файловой переменной
- •Открытие файлов
- •Запись в файл
- •Считывание из файла
- •Закрытие файла
- •Установка новой позиции в файле
- •Текстовые файлы
- •Конец файла
- •Стандартные подпрограммы для работы с файлами и каталогами
- •Пример работы с нетипизированными файлами
- •Пример работы с типизированными файлами
- •Пример работы с текстовыми файлами
- •Объектный подход к работе с файлами
- •Задания для самостоятельной работы
- •Контрольные вопросы
Задания для самостоятельной работы
Используя материал предыдущих занятий решить следующие задачи. Каждую задачу оформлять в виде отдельного приложения. Рекомендуется каждое приложение сохранять в отдельной папке. Продумывать интерфейс с пользователем, чтобы пользователю было удобно работать с вашим приложением. Для разработки интерфейса использовать интерфейсные компоненты Windows: Label, Edit, Bitton.
Hайти минимальное из 5-ти чисел. Вывести результат.
Введите четыре веществ числа. Определите можно ли построить четырехугольник с длинами сторон, равными этим числам.
Заданы тарифы на оплату электроэнергии. Если использовано от 1 до 100 киловатт-час (кВт. час), то плата А рублей за каждый кВт. час. Если использовано больше 100 кВт. час, то за каждый кВт. час от 101 до 200 - плата B руб. а за каждый кВт. час свыше 200 - плата C руб. Составьте алгоритм, вычисляющий, сколько надо заплатить за использование N кВт. часов электроэнергии.
Введите порядковый номер дня недели. Выдайте название дня недели.
Ввели 6-ти значное число. Является ли оно счастливым, т.е. равна ли сумма первых 3-х цифр сумме 3-х последних.
Ввели 6-ти значное число. Является ли оно перевертышем, т.е. одинаково читается как справа налево, так и слева направо.
Заданы тарифы на перевозки грузов. За перевозку тонны груза на расстояние от 1 до 1000 километров (км) плата А рублей за каждый км. Если груз перевозится на расстояние больше 1000 км, то за каждый км от 1001 до 2001 перевозка тонны груза стоит B рублей за каждый км., а за каждый км свыше 2000 перевозка тонны груза стоит C руб. за км. Составьте алгоритм, вычисляющий, сколько надо заплатить за перевозку одной тонны груза на N км.
Электронные часы показывают P часов, M минут, S секунд. Напишите программу, вычисляющую время в часах, минутах и секундах, которое будут показывать часы через 2 минуты 10 секунд.
Поле шахматной доски определяется парой (m, n) натуральных чисел (m от 1 до 8, n от 1 до 8). Первое число - номер строки (номер горизонтали), второе число - номер столбца (номер вертикали). Даны натуральные числа k, l, m, n, каждое из которых не больше 8. Определить:
а) являются ли поля (m,n) и (k,l) полями одного цвета;
б) угрожает ли полю (m,n) ферзь, находящийся на поле (k,l).
в) угрожает ли конь, стоящий на поле (k,l) полю (m,n).
В кассе имеются только 3-х и 5-ти рублевые купюры (как это было в 1980 году). Составить программу, которая бы "выплачивала" такими купюрами любую сумму более 7 рублей.
Ввести коэффициенты квадратного трехчлена, вывести значения корней квадратного уравнения. В случае, если корни не существуют выдать сообщение.
Списки. Компоненты ListBox и ComboBox
Для создания удобного интерфейса с пользователем используются списки выбора. Мы познакомимся с двумя видами списков: ComboBox, ListBox. Списки содержат элементы, которые могут быть выбраны при помощи клавиатуры или мыши. Компоненты TListBox и TComboBox отличаются внешним видом на экране. TListBox – это прокручиваемый список возможных выборов, на экране видны несколько элементов списка. TComboBox – это выпадающий или компактный список выборов, на экране видим только один элемент, при распахивании списка вы можете видеть несколько элементов. Отличие состоит еще и в том, что компонент TComboBox – это поле редактирования со списком, т.е. пользователь может либо ввести нужное значение вручную, либо выбрать его из списка. То, что пользователь ввел в TComboBox, будет содержаться в свойстве Text. TListBox не позволяет добавлять новые элементы в список. Ниже перечислены основные свойства списков.
Таблица
Основные свойства компонентов ListBox и ComboBox
Свойство |
Описание |
1 |
2 |
Align |
Выравнивание внутри формы ( для ListBox). |
BorderStyle |
Стиль границы ( для ListBox). |
Color |
Цвет фона. |
Columns |
Число столбцов в списке ( для ListBox). |
Ctl3D |
Придать трехмерный вид. |
ExtendedSelect |
Только для ListBox, определяет, можно ли выбрать несколько последовательно расположенных элементов. Работает совместно со свойством MultiSelect. С помощью клавиш Shift – смежные выделения; Ctrl – несмежные выделения. |
MultiSelect |
Только для ListBox; разрешены ли выделения нескольких элементов. |
Selected |
Массив, позволяющий определить, какие элементы списка выбраны. |
ItemIndex |
Содержит порядковый номер выделенного элемента списка, нумерация с нуля. |
Items |
Объект типа TString, массив строк, содержащий элементы списка, имеет свои методы для работы со списком: |
Text |
Только для TComboBox, содержит текст, введенный пользователем, позволяет задавать элемент, который первоначально будет видим в списке. |
Style |
Задает стиль списка. Может принимать одно из следующих значений: DropDownList – для ComboBox, в список нельзя вводить новые значения; Standart – нормальный строковый, все строки одинаковой высоты; OwnerDrawFixed – каждый элемент имеет вы- соту, определенную свойством ItemHeight; OwnerDrawVariable – элементы списка могут иметь переменную высоту. |
Самое важное при работе со списком – это задание элементов списка и определение элемента, выбранного пользователем. Для задания элементов списка можно использовать свойство Items, доступ к которому можно получить с помощью Инспектора объектов.
Для ввода значений в это свойство необходимо щелкнуть на трех точках, при этом открывается окно редактора свойств (String List Editor), в котором и вводятся значения списка, по одному на каждой строчке:
Для определения выбранного элемента используется свойство ItemIndex, которое содержит номер выбранного элемента, нумерация с нуля.
Для демонстрации работы списка выполним следующее упражнение: в форме создадим список, содержащий названия времен года: зима, весна, лето, осень. С помощью функции ShowMessage отобразим выбор пользователя. Вид формы:
По кнопке «Ввод» работает обработчик:
procedure TForm1.Button1Click(Sender: TObject);
begin
case ComboBox1.ItemIndex of
0: ShowMessage ('Зима');
1: ShowMessage ('Весна');
2: ShowMessage ('Лето');
3: ShowMessage ('Осень');
end;
end;