- •1 Средства разработки программ на языке Free Pascal
- •1.1 Процесс разработки программы
- •1.2 Среда программирования Free Pascal
- •1.2.1 Работа в текстовом редакторе Free Pascal
- •1.2.2 Запуск программы в среде Free Pascal и просмотр результатов
- •1.3 Текстовый редактор Geany
- •1.4 Среда визуального программирования Lazarus
- •1.4.1 Установка Lazarus в ОС Linux
- •1.4.2 Установка Lazarus под управлением ОС Windows
- •1.4.3 Среда Lazarus
- •1.4.4 Главное меню Lazarus
- •1.4.5 Окно формы
- •1.4.6 Окно редактора Lazarus
- •1.4.7 Панель компонентов
- •1.4.8 Инспектор объектов
- •1.4.9 Первая программа в Lazarus
- •1.4.10 Полезная программа
- •1.4.11 Консольное приложение среды Lazarus
- •1.4.12 Операторы ввода - вывода данных
- •2 Общие сведения о языке программирования Free Pascal
- •2.1 Структура проекта Lazarus
- •2.2 Структура консольного приложения
- •2.3 Элементы языка
- •2.4 Данные в языке Free Pascal
- •2.4.1 Символьный тип данных
- •2.4.2 Целочисленный тип данных
- •2.4.3 Вещественный тип данных
- •2.4.4 Тип дата-время
- •2.4.5 Логический тип данных
- •2.4.6 Создание новых типов данных
- •2.4.7 Перечислимый тип данных
- •2.4.8 Интервальный тип
- •2.4.9 Структурированные типы
- •2.4.10 Указатели
- •2.5 Операции и выражения
- •2.5.1 Арифметические операции
- •2.5.2 Операции отношения
- •2.5.3 Логические операции
- •2.5.4 Операции над указателями
- •2.6 Стандартные функции
- •2.7 Задачи для самостоятельного решения
- •3 Операторы управления
- •3.1 Основные конструкции алгоритма
- •3.2 Оператор присваивания
- •3.3 Составной оператор
- •3.4 Условные операторы
- •3.4.1 Условный оператор if…then…else
- •3.4.2 Оператор варианта case
- •3.5 Обработка ошибок. Вывод сообщений в среде Lazarus
- •3.6 Операторы цикла
- •3.6.1 Оператор цикла с предусловием while .. do
- •3.6.2 Оператор цикла с постусловием repeat … until
- •3.6.3 Оператор цикла for … do
- •3.7 Операторы передачи управления
- •3.8 Решение задач с использованием циклов
- •3.9 Ввод данных из диалогового окна в среде Lazarus
- •3.10 Задачи для самостоятельного решения
- •3.10.1 Разветвляющийся процесс
- •3.10.2 Циклический процесс
- •4 Подпрограммы
- •4.2 Формальные и фактические параметры. Передача параметров в подпрограмму
- •4.3 Процедуры
- •4.4 Функции
- •4.5 Решение задач с использованием подпрограмм
- •4.6 Рекурсивные функции
- •4.7 Особенности работы с подпрограммами
- •4.7.1 Параметры-константы
- •4.7.2 Процедурные типы
- •4.8 Разработка модулей
- •4.9 Задачи для самостоятельного решения
- •5 Использование языка Free Pascal для обработки массивов
- •5.1 Общие сведения о массивах
- •5.2 Описание массивов
- •5.3 Операции над массивами
- •5.4 Ввод-вывод элементов массива
- •5.4.2 Ввод-вывод данных в визуальных приложениях
- •5.5 Вычисление суммы и произведения элементов массива
- •5.6 Поиск максимального элемента в массиве и его номера
- •5.7 Сортировка элементов в массиве
- •5.7.1 Сортировка методом «пузырька»
- •5.7.2 Сортировка выбором
- •5.8 Удаление элемента из массива
- •5.9 Вставка элемента в массив
- •5.10 Использование подпрограмм для работы с массивами
- •5.11 Использование указателей для работы с динамическими массивами
- •5.11.1 Работа с динамическими переменными и указателями
- •5.11.2 Работа с динамическими массивами с помощью процедур getmem и freemem
- •5.12 Примеры программ
- •5.13 Задачи для самостоятельного решения
- •6 Обработка матриц во Free Pascal
- •6.1 Ввод-вывод матриц
- •6.2 Алгоритмы и программы работы с матрицами
- •6.3 Динамические матрицы
- •6.4 Задачи для самостоятельного решения
- •7 Обработка файлов средствами Free Pascal
- •7.1 Типы файлов
- •7.2 Работа с типизированными файлами
- •7.2.1 Процедура AssignFile
- •7.2.2 Процедуры reset, rewrite
- •7.2.3 Процедура СloseFile
- •7.2.4 Процедура rename
- •7.2.5 Процедура erase
- •7.2.6 Функция eof
- •7.2.7 Чтение и запись данных в файл
- •7.3 Бестиповые файлы в языке Free Pascal
- •7.4 Обработка текстовых файлов в языке Free Pascal
- •7.5 Задачи для самостоятельного решения
- •8 Работа со строками и записями
- •8. 1 Обработка текста
- •8.2 Работа с записями
- •8.3 Задачи для самостоятельного решения по теме «Строки»
- •8.4 Задачи для самостоятельного решения по теме «Записи»
- •9.1 Основные понятия
- •9.2 Инкапсуляция
- •9.3 Наследование и полиформизм
- •9.4 Перегрузка операций
- •9.5 Задачи для самостоятельного решения
- •10 Графика во Free Pascal
- •10.1 Средства рисования в Lazarus
- •10.2 Построение графиков
- •10.3 Задачи для самостоятельного решения
Алексеев Е.Р., Чеснокова О.В., Кучер Т.В. Самоучитель по программированию на Free Pascal и Lazarus |
282 |
procedure TForm1.Button3Click(Sender: TObject); begin
Close;
end; initialization {$I unit1.lrs} end.
Рисунок 5.49: Окно с результатами решения задачи 5.11
5.13Задачи для самостоятельного решения
1.Записать положительные элементы массива Х подряд в массив Y. Вычислить сумму элементов массива X и произведение элементов массива Y. Из массива Y удалить элементы, расположенные между максимальным и минимальным элементами.
2.Сформировать массив В, записав в него элементы массива А с нечетными индексами. Вычислить среднее арифметическое элементов массива B и удалить из него максимальный, минимальный и пятый элементы.
3.Дан массив целых чисел Х. Переписать пять первых положительных элементов массива и последних два простых элемента в массив Y. Найти максимальный отрицательный элемент массива X.
Алексеев Е.Р., Чеснокова О.В., Кучер Т.В. Самоучитель по программированию на Free Pascal и Lazarus |
283 |
4. Записать элементы массива Х, удовлетворяющие условию 1≤xi≤2 , подряд в массив Y. Поменять местами максимальный и минимальный элементы в массиве Y.
5.Переписать элементы массива целых чисел X в обратном порядке в массив Y. Вычислить количество четных, нечетных и нулевых элементов массива Y.
6.Определить максимальный и минимальный элементы среди положительных нечетных элементов целочисленного массива X. Удалить из массива все нулевые элементы.
7.Переписать элементы целочисленного массива X=(x1, x2, …,x12)
вмассив Y = (y1, y2, …, y12), сдвинув элементы массива X вправо на три позиции. При этом три элемента с конца массива X перемещают-
ся в начало: (y1, y2, …, y12) = (x10, x11, x12, x1, x2, …, x9). Определить номера максимального простого и минимального положительного эле-
ментов в массивах X и Y.
8. Записать элементы массива X = (x1, x2, …, x15) в массив Y = (y1, y2 , …, y15), сдвинув элементы массива X влево на четыре позиции.
При этом четыре элемента, стоящие в начале массива X, перемещают-
ся в конец: (y1, y2, …, y15) = (x5, x6, …, x15, x1, x2, x3, x4). Поменять местами минимальный и максимальный элементы массива Y.
9.В массиве X определить количество элементов меньших среднего арифметического значения. Удалить из массива положительные элементы, расположенные между максимальным и минимальным.
10.Вычислить среднее арифметическое элементов массива X, расположенных между его минимальным и максимальным значениями. Если минимальный элемент размещается в массиве раньше максимального, то упорядочить массив на данном промежутке по возрастанию его элементов.
11.Определить, содержит ли заданный массив группы элементов, расположенные в порядке возрастания их значений. Если да, то определить количество таких групп.
12.В заданном массиве целых чисел найти самую маленькую серию подряд стоящих нечетных элементов.
13.Удалить из массива целых чисел все простые числа, расположенные до максимального значения.
14.Удалить из массива предпоследнюю группу элементов, представляющих собой знакочередующийся ряд.
Алексеев Е.Р., Чеснокова О.В., Кучер Т.В. Самоучитель по программированию на Free Pascal и Lazarus |
284 |
15.Задан массив целых положительных чисел X. Определить количество совершенных чисел в массиве. Удалить из массива последних два отрицательных числа. Сформировать массив Y, куда записать номера элементов массива X, являющихся простыми числами.
16.Переписать положительные элементы массива целых чисел X
вобратном порядке в массив Y. Вычислить процент четных, нечетных и нулевых элементов массива Y. Перевести элементы массива Y в двоичную систему счисления.
17.Определить максимальный и минимальный элементы среди положительных четных элементов целочисленного массива X. Удалить из массива X совершенные числа, расположенные после максимального значения.
18.Заданы массивы вещественных чисел X и Y. Сформировать
массив Z, куда записать положительные элементы массивов Y и Z в семеричной системе счисления. Определить номера максимального и минимального элементов в массиве Z.
19.Записать четные положительные элементы целочисленных массивов X и Y в массив Z. Поменять местами минимальный и максимальный элементы массива Z. Вывести элементы массива Z в четверичной системе счисления.
20.Из целочисленного массива X удалить все числа, превышающие среднее арифметическое простых элементов массива.
21.В массивах вещественных чисел X и Y записаны координаты точек на плоскости. Найти две точки, расстояние между которыми наименьшее.
22.Определить, содержит ли заданный массив вещественных чисел группы элементов, расположенные в порядке убывания их значений. Если да, то определить группу наименьшей длины.
23.В заданном массиве целых чисел найти самую большую серию подряд стоящих четных элементов.
24.Удалить из массива целых чисел все элементы, которые в пятеричном представлении не содержат нулей.
25.Из массивов вещественных чисел А и В сформировать массив С, записав в него элементы массивов А и В, которые не содержат «семерок» в восьмеричном представлении.