
Лабораторные работы по Delphi
Лабораторная работа 1. Линейные программы
Напишите программу для расчета по двум формулам. Предварительно подготовьте тестовые примеры с помощью калькулятора (результаты вычисления по обеим формулам должны совпадать). Отсутствующие функции выразите через имеющиеся.
Лабораторная работа 2. Организация циклов
Вычислить и вывести на экран значение функции, заданной с помощью ряда Тейлора, для х, введенного с экрана, с точностью ε. Строка вывода должна содержать значение аргумента, значение функции и количество просуммированных членов ряда.
Лабораторная работа 3. Одномерные массивы
Вариант 1
В одномерном массиве, состоящем из n вещественных элементов, вычислить:
сумму отрицательных элементов массива;
произведение элементов массива, расположенных между максимальным и минимальным элементами.
Упорядочить элементы массива по возрастанию.
Вариант 2
В одномерном массиве, состоящем из п вещественных элементов, вычислить:
сумму положительных элементов массива;
произведение элементов массива, расположенных между максимальным по модулю и минимальным по модулю элементами.
Упорядочить элементы массива по убыванию.
Вариант 3
В одномерном массиве, состоящем из n целочисленных элементов, вычислить:
произведение элементов массива с четными номерами;
сумму элементов массива, расположенных между первым и последним нулевыми элементами.
Преобразовать массив таким образом, чтобы сначала располагались все положительные элементы, а потом – все отрицательные (элементы, равные нулю, считать положительными).
Вариант 4
В одномерном массиве, состоящем из n вещественных элементов, вычислить:
сумму элементов массива с нечетными номерами;
сумму элементов массива, расположенных между первым и последним отрицательными элементами.
Сжать массив, удалив из него все элементы, модуль которых не превышает единицу. Освободившиеся в конце массива элементы заполнить нулями.
Вариант 5
В одномерном массиве, состоящем из п вещественных элементов, вычислить:
максимальный элемент массива;
сумму элементов массива, расположенных до последнего положительного элемента.
Сжать массив, удалив из него все элементы, модуль которых находится в интервале [а, b]. Освободившиеся в конце массива элементы заполнить нулями.
Вариант 6
В одномерном массиве, состоящем из п вещественных элементов, вычислить:
минимальный элемент массива;
сумму элементов массива, расположенных между первым и последним положительными элементами.
Преобразовать массив таким образом, чтобы сначала располагались все элементы, равные нулю, а потом – все остальные.
Вариант 7
В одномерном массиве, состоящем из п целочисленных элементов, вычислить:
номер максимального элемента массива;
произведение элементов массива, расположенных между первым и вторым нулевыми элементами.
Преобразовать массив таким образом, чтобы в первой его половине располагались элементы, стоявшие в нечетных позициях, а во второй половине – элементы, стоявшие в четных позициях.
Вариант 8
В одномерном массиве, состоящем из п вещественных элементов, вычислить:
номер минимального элемента массива;
сумму элементов массива, расположенных между первым и вторым отрицательными элементами.
Преобразовать массив таким образом, чтобы сначала располагались все элементы, модуль которых не превышает единицу, а потом — все остальные.
Вариант 9
В одномерном массиве, состоящем из п вещественных элементов, вычислить:
максимальный по модулю элемент массива;
сумму элементов массива, расположенных между первым и вторым положительными элементами.
Преобразовать массив таким образом, чтобы элементы, равные нулю, располагались после всех остальных.
Вариант 10
В одномерном массиве, состоящем из п целочисленных элементов, вычислить:
минимальный по модулю элемент массива;
сумму модулей элементов массива, расположенных после первого элемента, равного нулю.
Преобразовать массив таким образом, чтобы в первой его половине располагались элементы, стоявшие в четных позициях, а во второй половине – элементы, стоявшие в нечетных позициях.
Вариант 11
В одномерном массиве, состоящем из п вещественных элементов, вычислить:
номер минимального по модулю элемента массива;
сумму модулей элементов массива, расположенных после первого отрицательного элемента.
Сжать массив, удалив из него все элементы, величина которых находится в интервале [а, b]. Освободившиеся в конце массива элементы заполнить нулями.
Вариант 12
В одномерном массиве, состоящем из п вещественных элементов, вычислить:
номер максимального по модулю элемента массива;
сумму элементов массива, расположенных после первого положительного элемента.
Преобразовать массив таким образом, чтобы сначала располагались все элементы, целая часть которых лежит в интервале [а, b], а потом – все остальные.
Вариант 13
В одномерном массиве, состоящем из п вещественных элементов, вычислить:
количество элементов массива, лежащих в диапазоне от A до В;
сумму элементов массива, расположенных после максимального элемента. Упорядочить элементы массива по убыванию модулей.
Вариант 14
В одномерном массиве, состоящем из п вещественных элементов, вычислить:
количество элементов массива, равных нулю;
сумму элементов массива, расположенных после минимального элемента. Упорядочить элементы массива по возрастанию модулей.
Вариант 15
В одномерном массиве, состоящем из п вещественных элементов, вычислить:
количество элементов массива, больших С;
произведение элементов массива, расположенных после максимального по модулю элемента.
Преобразовать массив таким образом, чтобы сначала располагались все отрицательные элементы, а потом – все положительные (элементы, равные нулю, считать положительными).
Вариант 16
В одномерном массиве, состоящем из п вещественных элементов, вычислить:
количество отрицательных элементов массива;
сумму модулей элементов массива, расположенных после минимального по модулю элемента.
Заменить все отрицательные элементы массива их квадратами и упорядочить элементы массива по возрастанию.
Вариант 17
В одномерном массиве, состоящем из п целочисленных элементов, вычислить:
количество положительных элементов массива;
сумму элементов массива, расположенных после последнего элемента, равного нулю.
Преобразовать массив таким образом, чтобы сначала располагались все элементы, целая часть которых не превышает единицу, а потом – все остальные.
Вариант 18
В одномерном массиве, состоящем из п вещественных элементов, вычислить:
количество элементов массива, меньших С;
сумму целых частей элементов массива, расположенных после последнего отрицательного элемента.
Преобразовать массив таким образом, чтобы сначала располагались все элементы, отличающиеся от максимального не более чем на 20%, а потом – все остальные.
Вариант 19
В одномерном массиве, состоящем из п вещественных элементов, вычислить:
произведение отрицательных элементов массива;
сумму положительных элементов массива, расположенных до максимального элемента.
Изменить порядок следования элементов в массиве на обратный.
Вариант 20
В одномерном массиве, состоящем из п вещественных элементов, вычислить:
произведение положительных элементов массива;
сумму элементов массива, расположенных до минимального элемента.
Упорядочить по возрастанию отдельно элементы, стоящие на четных местах, и элементы, стоящие на нечетных местах.
Лабораторная работа 4. Простейшие классы
Каждый разрабатываемый класс должен содержать следующие элементы: поля, конструкторы с параметрами и без параметров, методы. Методы должны обеспечивать непротиворечивый, полный, минимальный и удобный интерфейс класса. При возникновении ошибок должны выбрасываться исключения. В программе должна выполняться проверка всех разработанных элементов класса.
Вариант 1
Описать класс, реализующий десятичный счетчик, который может увеличивать или уменьшать свое значение на единицу в заданном диапазоне. Предусмотреть инициализацию счетчика значениями по умолчанию и произвольными значениями. Счетчик имеет два метода: увеличения и уменьшения. При выходе за границы диапазона выбрасываются исключения. Написать программу, демонстрирующую все разработанные элементы класса.
Вариант 2
Описать класс, реализующий шестнадцатеричный счетчик, который может увеличивать или уменьшать свое значение на единицу в заданном диапазоне. Предусмотреть инициализацию счетчика значениями по умолчанию и произвольными значениями. Счетчик имеет два метода: увеличения и уменьшения. При выходе за границы диапазона выбрасываются исключения. Написать программу, демонстрирующую все разработанные элементы класса.
Вариант 3
Описать класс, представляющий треугольник. Предусмотреть методы для создания объектов, перемещения на плоскости, изменения размеров и вращения на заданный угол. При невозможности построения треугольника выбрасывается исключение. Написать программу, демонстрирующую все разработанные элементы класса.
Вариант 4
Построить описание класса, содержащего информацию о почтовом адресе организации. Предусмотреть возможность раздельного изменения составных частей адреса и проверки допустимости вводимых значений. В случае недопустимых значений полей выбрасываются исключения. Написать программу, демонстрирующую все разработанные элементы класса.
Вариант 5
Составить описание класса для представления комплексных чисел. Обеспечить выполнение операций сложения, вычитания и умножения комплексных чисел. Написать программу, демонстрирующую все разработанные элементы класса.
Вариант 6
Составить описание класса для вектора, заданного координатами его концов в трехмерном пространстве. Обеспечить операции сложения и вычитания векторов с получением нового вектора (суммы или разности), вычисления скалярного произведения двух векторов, длины вектора, косинуса угла между векторами. Написать программу, демонстрирующую все разработанные элементы класса.
Вариант 7
Составить описание класса прямоугольников со сторонами, параллельными осям координат. Предусмотреть возможность перемещения прямоугольников на плоскости, изменение размеров, построение наименьшего прямоугольника, содержащего два заданных прямоугольника, и прямоугольника, являющегося общей частью (пересечением) двух прямоугольников. Написать программу, демонстрирующую все разработанные элементы класса.
Вариант 8
Составить описание класса для представления даты. Предусмотреть возможности установки даты и изменения ее отдельных полей (год, месяц, день) с проверкой допустимости вводимых значений. В случае недопустимых значений полей выбрасываются исключения. Создать методы изменения даты на заданное количество дней, месяцев и лет. Написать программу, демонстрирующую все разработанные элементы класса.
Вариант 9
Составить описание класса для представления времени. Предусмотреть возможности установки времени и изменения его отдельных полей (час, минута, секунда) с проверкой допустимости вводимых значений. В случае недопустимых значений полей выбрасываются исключения. Создать методы изменения времени на заданное количество часов, минут и секунд. Написать программу, демонстрирующую все разработанные элементы класса.
Вариант 10
Составить описание класса многочлена вида ах2 + bх + с. Предусмотреть методы, реализующие:
вычисление значения многочлена для заданного аргумента;
операцию сложения, вычитания и умножения многочленов с получением нового объекта-многочлена;
вывод на экран описания многочлена.
Написать программу, демонстрирующую все разработанные элементы класса.
Вариант 11
Описать класс, представляющий треугольник. Предусмотреть методы для создания объектов, вычисления площади, периметра и точки пересечения медиан. При невозможности построения треугольника выбрасывается исключение. Написать программу, демонстрирующую все разработанные элементы класса.
Вариант 12
Описать класс, представляющий круг. Предусмотреть методы для создания объектов, вычисления площади круга, длины окружности и проверки попадания заданной точки внутрь круга. Написать программу, демонстрирующую все разработанные элементы класса.
Вариант 13
Описать класс для работы со строкой, позволяющей хранить только двоичное число и выполнять с ним арифметические операции. Предусмотреть инициализацию с проверкой допустимости значений. В случае недопустимых значений выбрасываются исключения. Написать программу, демонстрирующую все разработанные элементы класса.
Вариант 14
Описать класс дробей – рациональных чисел, являющихся отношением двух целых чисел. Предусмотреть методы сложения, вычитания, умножения и деления дробей. Написать программу, демонстрирующую все разработанные элементы класса.
Вариант 15
Описать класс «файл», содержащий сведения об имени, дате создания и длине файла. Предусмотреть инициализацию с проверкой допустимости значений полей. В случае недопустимых значений полей выбрасываются исключения. Описать метод добавления информации в конец файла. Написать программу, демонстрирующую все разработанные элементы класса.
Вариант 16
Описать класс «комната», содержащий сведения о метраже, высоте потолков и количестве окон. Предусмотреть инициализацию с проверкой допустимости значений полей. В случае недопустимых значений полей выбрасываются исключения. Описать методы вычисления площади и объема комнаты. Написать программу, демонстрирующую все разработанные элементы класса.
Вариант 17
Описать класс, представляющий нелинейное уравнение вида ах- cos(x) = 0. Описать метод, вычисляющий решение этого уравнения на заданном интервале методом деления пополам и выбрасывающий исключение в случае отсутствия корня. Написать программу, демонстрирующую все разработанные элементы класса.
Вариант 18
Описать класс, представляющий квадратное уравнение вида ах2 + bх + с = 0. Описать метод, вычисляющий решение этого уравнения и выбрасывающий исключение в случае отсутствия корней. Написать программу, демонстрирующую все разработанные элементы класса.
Вариант 19
Описать класс «процессор», содержащий сведения о марке, тактовой частоте, объеме кэша и стоимости. Предусмотреть инициализацию с проверкой допустимости значений полей. В случае недопустимых значений полей выбрасываются исключения. Описать класс «материнская плата», включающий класс «процессор» и объем установленной оперативной памяти. Предусмотреть инициализацию с проверкой допустимости значений поля объема памяти. В случае недопустимых значений поля выбрасывается исключение. Написать программу, демонстрирующую все разработанные элементы классов.
Вариант 20
Описать класс «цветная точка». Для точки задаются координаты и цвет. Цвет описывается с помощью трех составляющих (красный, зеленый, синий). Предусмотреть различные методы инициализации объекта с проверкой допустимости значений. Допустимым диапазоном для каждой составляющей является [0, 255]. В случае недопустимых значений полей выбрасываются исключения. Описать метод изменения цвета. Написать программу, демонстрирующую все разработанные элементы класса.
Лабораторная работа 5. Создание Windows-приложений
Общая часть задания: написать Windows-приложение, заголовок главного окна которого содержит Ф. И. О., группу и номер варианта. В программе должна быть предусмотрена обработка исключений, возникающих из-за ошибочного ввода пользователя.
Вариант 1
Создать меню с командами Ввод, Счет и Выход. При выборе команды Ввод открывается диалоговое окно, содержащее:
три компонента Edit (поля ввода длин трех сторон треугольника);
группу из двух компонентов CheckBox (флажки Периметр и Площадь);
компонент Button (кнопку Пуск).
Обеспечить возможность:
ввода длин трех сторон треугольника;
выбора режима с помощью флажков: подсчет периметра и/или площади треугольника.
При выборе команды Счет открывается диалоговое окно с результатами. При выборе команды Выход приложение завершается.
Вариант 2
Создать меню с командами Размер, Цвет, Рисовать, Выход. Команда Рисовать недоступна. При выборе команды Выход приложение завершается. При выборе команды Размер открывается диалоговое окно, содержащее:
два компонента Edit (поля ввода длин сторон прямоугольника);
группу из трех компонентов CheckBox (флажки Red, Green, Blue);
компонент Button (кнопку Пуск).
Обеспечить возможность:
ввода длин сторон прямоугольника в пикселах в поля ввода;
выбора его цвета с помощью флажков.
После задания параметров команда Рисовать становится доступной. При выборе команды Рисовать в главном окне приложения выводится прямоугольник заданного размера и сочетания цветов или выдается сообщение, если введенные размеры превышают размер окна.
Вариант 3
Создать меню с командами Ввод, Работа, Выход. При выборе команды Выход приложение завершает работу. При выборе команды Ввод открывается диалоговое окно, содержащее:
три компонента Edit (поля ввода) с метками Радиус, Высота, Плотность;
группу из двух компонентов CheckBox (флажки Объем, Масса);
компонент Button (кнопку Пуск).
Обеспечить возможность:
ввода радиуса, высоты и плотности конуса;
выбора режима с помощью флажков: подсчет объема и/или массы конуса.
При выборе команды Работа открывается окно сообщений с результатами.
Вариант 4
Создать меню с командами Ввод, Счет, Рисовать, Выход. При выборе команды Выход приложение завершает работу. При выборе команды Ввод открывается диалоговое окно, содержащее:
компонент Edit (поле ввода) с меткой Радиус;
группу из двух компонентов CheckBox (флажки Площадь, Длина);
компонент Button (кнопку Пуск).
Обеспечить возможность:
ввода радиуса окружности;
выбора режима с помощью флажков: подсчет площади круга и/или длины окружности.
При выборе команды Счет открывается окно сообщений с результатами. При выборе команды Рисовать в центре главного окна выводится круг введенного радиуса или выдается сообщение, что рисование невозможно (если диаметр превышает размеры рабочей области).
Вариант 5
Создать меню с командами Ввод, Счет, О программе. При выборе команды О программе открывается окно с информацией о разработчике. При выборе команды Ввод открывается диалоговое окно, содержащее:
три компонента Edit (поля ввода) с метками Число 1, Число 2, Число 3;
группу из двух компонентов CheckBox (флажки Сумма, НОК);
компонент Button (кнопку Пуск).
Обеспечить возможность ввода трех чисел и выбора режима вычислений с помощью флажков: подсчет суммы трех чисел (Сумма) и/или наименьшего общего кратного двух первых чисел (НОК). При выборе команды Счет открывается диалоговое окно с результатами.
Вариант 6
Создать меню с командами Ввод, Счет, Выход. Команда Счет недоступна. При выборе команды Выход приложение завершается. При выборе команды Ввод открывается диалоговое окно, содержащее:
два компонента Edit (поля ввода) с метками Число 1, Число 2;
группу из двух компонентов CheckBox (флажки Сумма, НОД, Произведение);
компонент Button (кнопку Пуск).
Обеспечить возможность:
ввода двух чисел;
выбора режима вычислений с помощью флажков (можно вычислять в любой комбинации такие величины, как сумма, наибольший общий делитель и произведение двух чисел).
При выборе команды Счет открывается окно сообщений с результатами.
Вариант 7
Создать меню с командами Начать, Помощь, О программе. При выборе команды О программе открывается окно с информацией о разработчике. При выборе команды Начать открывается диалоговое окно, содержащее:
компонент Edit (поле ввода) с меткой Ввод;
компонент Label (метку) для вывода результата;
группу из трех компонентов RadioButton (2, 8, 16);
два компонента Button (кнопки Выполнить и ОК).
Обеспечить возможность:
ввода числа в десятичной системе в поле Ввод;
выбора режима преобразования с помощью переключателей: перевод в двоичную, восьмеричную или шестнадцатеричную систему счисления.
При щелчке на кнопке Выполнить должен появляться результат перевода.
Вариант 8
Создать меню с командами Ввод цвета, Изменить, Выход, Помощь. При выборе команды Выход приложение завершает работу. При выборе команды Ввод цвета открывается диалоговое окно, содержащее:
три компонента Edit (поля ввода) с метками Red, Green, Blue;
группу из двух компонентов CheckBox (флажки Left, Right);
компонент Button (кнопку Пуск).
Обеспечить возможность ввода RGB-составляющих цвета. При выборе команды Изменить цвет главного окна изменяется на заданный (левая, правая или обе половины окна в зависимости от установки флажков).
Вариант 9
Создать меню с командами Ввод размера, Задать, Изменить, Выход. При выборе команды Выход приложение завершает работу. Команда Изменить недоступна. При выборе команды Ввод размера открывается диалоговое окно, содержащее:
два компонента Edit (поля ввода) с метками Размер X, Размер Y;
компонент Button (кнопку Пуск).
При выборе команды Задать открывается диалоговое окно, содержащее:
группу из двух компонентов RadioButton (Увеличить, Уменьшить);
компонент Button (кнопку Пуск).
Обеспечить возможность ввода значений в поля Размер X и Размер Y. Значения интерпретируются как количество пикселов, на которое надо изменить размеры главного окна (увеличить или уменьшить в зависимости от положения переключателей). После ввода значений команда Изменить становится доступной. При выборе этой команды размеры главного окна увеличиваются или уменьшаются на введенное количество пикселов.
Вариант 10
Создать меню с командами Начало, Работа, О программе. При выборе команды О программе открывается окно с информацией о разработчике. При выборе команды Начало открывается диалоговое окно, содержащее:
компонент Edit (поле ввода) с меткой Введите слово;
группу из двух компонентов RadioButton (Верхний регистр, Нижний регистр);
компонент Button (кнопку Пуск).
Обеспечить возможность ввода слова и выбора режима перевода в верхний или нижний регистр в зависимости от положения переключателей. При выборе команды Работа открывается диалоговое окно с результатом перевода.
Вариант 11
Создать меню с командами Ввод цвета, Изменить, Очистиь. При выборе команды Ввод цвета открывается диалоговое окно, содержащее:
группу из двух компонентов CheckBox (флажки Вверх, Вниз);
группу из трех компонентов RadioButton (Red, Green, Blue);
компонент Button (кнопку Пуск).
Обеспечить возможность:
выбора цвета с помощью переключателей;
ввода режима, определяющего, какая область закрашивается: все окно, его верхняя или нижняя половина.
При выборе команды Изменить цвет главного окна изменяется на заданный (верхняя, нижняя или обе половины в зависимости от введенного режима). При выборе команды Очистить восстанавливается первоначальный цвет окна.