
- •Занятие 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
- •Стандартный подход к работе с файлами
- •Описание файловой переменной
- •Открытие файлов
- •Запись в файл
- •Считывание из файла
- •Закрытие файла
- •Установка новой позиции в файле
- •Текстовые файлы
- •Конец файла
- •Стандартные подпрограммы для работы с файлами и каталогами
- •Пример работы с нетипизированными файлами
- •Пример работы с типизированными файлами
- •Пример работы с текстовыми файлами
- •Объектный подход к работе с файлами
- •Задания для самостоятельной работы
- •Контрольные вопросы
Занятие 8. Массивы
Для решения многих задач приходится работать с однотипными данными, причем обработка этих данных часто выполняется по одному и тому же закону. Например, дана тысяча вещественных чисел, каждое число требуется увеличить на 2. Если решать эту задачу традиционным способом, следует описать 1000 переменных, назначить им начальные значения, это 1000 операторов, затем каждую переменную увеличить на 2, это еще 1000 операторов. Для более компактного описания подобного алгоритма можно использовать массивы.
Одномерные массивы
Под одномерным массивом понимается набор однотипных данных с общим именем, доступ к каждому элементу массива выполняется по порядковому номеру элемента в массиве. Номер элемента в массиве носит название индекса массива. Количество элементов в массиве называется размером массива.
Перед использованием массив необходимо описать. Массивы, как и переменные, описываются в разделе описаний процедуры или программы. При описании массива указывается его имя, диапазон изменения индекса, тип элемента.
Синтаксис описания массива:
<ИмяМассива> : array[<ДиапазонИндекса>] of <тип>;
Ключевое слово array позволяет описать массив.
Ключевое слово of – используется для задания типа элемента массива.
При задании типа массива можно использовать любой тип Pascal.
Например, для решения задачи, приведенной выше, следует описать такой массив:
Var
Mas : array[1..1000] of real;
Диапазон изменения индекса массива задается двумя числами, первое задает начальное значение индекса массива, второе задает конечное значение индекса массива.
Этот массив можно описать также таким образом:
Const
N=1000
Var
Mas : array[1..N] of real;
Последний способ хорош тем, что при изменении размера массива нужно изменить только одну константу N.
Для доступа к элементу массива используется следующий синтаксис:
<Имя массива>[ИндексЭлемента ]:=<Значение>;
Например:
Mas[30]:=25;
Где 30-тому элементу массива присваивается значение 25.
Выше приведенную задачу, но с десятью вещественными числами, значения которых инициализируются случайным способом, можно решить, например, так:
Const
N=10;
Var
Mas : array[1..N] of real;
i:integer;
str:string;
Begin
Str:=’’;
For i:=1 to N do
Begin
Mas[i]:= random(200) + random;
Mas[i]:= Mas[i] + 2;
Str:=Str + FloatToStr(Mas[i]) + ‘ ‘;
End;
ShowMessage(str);
End;
Наряду с одномерными массивами часто используются двумерные массивы.
Двумерные массивы
Данные могут быть организованы в виде таблицы (матрицы), где расположение каждого элемента матрицы определяется номером строки и столбца. Например, место в зрительном зале задается указанием номера ряда и номера места в ряду. Такие данные удобно описывать как двумерный массив. В отличие от одномерного массива каждому элементу двумерного массива соответствует пара индексов. Первый индекс – это номер строки, второй – номер столбца, где расположен элемент массива.
Размер двумерного массива задается парой чисел, первое задает число строк в массиве, второе число столбцов. Например, описать двумерный массив, размером 5 строк и 4 столбца:
Var
Table : array[1..5,1..4] of integer;
Элемент Table[3,2] расположен в третьей строке и втором столбце.