Лабораторная работа №1
Массивы в языке Object Pascal
Решить одну из следующих задач, использовав языковые средства Object Pascal:
1 Дан вектор A(n). Найти наибольшее из четных и количество нечетных элементов вектора.
2 Дан вектор A(n). Получить новый вектор путем умножения элементов стоящих перед минимальным элементом на максимальный элемент вектора.
3 Дан вектор A(n). Найти число ненулевых элементов вектора.
4 Дан вектор A(n). Все компоненты вектора, которые больше семи, заменить на 7.
5 Дан вектор А(n). Получить новый вектор путем умножения элементов стоящих за максимальным элементом на минимальный элемент вектора.
6 Дан вектор A(n). Получить max(a1, a1a2, a2a3, . . . ,an-1an,an)..
7 Дан вектор A(n). Все элементы вектора, предшествующие первому наименьшему элементу умножить на 10, если элемент минимальный по величине встречается в векторе более одного раза. В противном случае вектор оставить без изменения.
8 Дан вектор A(2n). Получить количество удвоенных нечетных среди a1,a2,...,a2n. Если оно меньше n, то ко всем числам с четными индексами добавить 1. В противном случае последовательность оставить без изменения.
9 Дан вектор A(2n). Если сумма S1=a1+a2+...+an равна сумме S2=an+1+ an+2+...+ a2n, то поменять местами первый и последний элементы вектора.
10 Дан вектор A(3n). Определить число соседств двух положительных чисел и если оно превышает n, то ко всем элементам с нечетными номерами добавить 1, а ко всем элементам с четными номерами добавить -1.
11 Дан вектор A(n). Найти наименьший четный элемент вектора и поменять его местами с первым элементом.
12 Дан вектор A(n). Поменять местами первый отрицательный элемент вектора с последним положительным элементом вектора.
13 Дан вектор A(n). Если у вектора A=(a1, a2,...,an) хотя бы один компонент меньше, чем -2, то все отрицательные компоненты заменить их квадратами, оставив все остальные без изменения. В противном случае вектор A умножить на 0.1.
14 Дан вектор A(n). Поменять местами первый четный элемент вектора с последним нечетным элементом.
15 Дан целочисленный вектор A(n). Найти произведение нечетных элементов, имеющих четный индекс.
16 Дан вектор A(n). Найти количество элементов вектора, больших среднего арифметического значения всех его элементов.
17 Дан вектор A(2n). Получить количество удвоенных нечетных элементов вектора. Если оно меньше n, то ко всем числам с четными индексами добавить 1. В противном случае вектор оставить без изменения.
18 Дан вектор A(n). Все элементы вектора, предшествующие первому наименьшему элементу умножить на 10, если элемент минимальный по величине встречается в последовательности более чем один раз. В противном случае вектор оставить без изменения.
19 Дан вектор A(n). Получить новый вектор путем деления элементов стоящих на нечетных местах на элемент, наибольший по абсолютной величине.
20 Дан вектор A(n). Все компоненты с нечетными индексами, предшествующие наибольшему элементу домножить на наименьший элемент вектора.
21 Дан вектор A(n). Найти наибольший из четных и количество нечетных элементов вектора.
22 Дан целочисленный вектор А(n). Подсчитать количество таких i, что А [i] не меньше всех предыдущих элементов вектора (А [1], А[2],..., А[i-1])
23 Дан вещественный вектор А(n). Найти количество элементов этой таблицы, больше среднего арифметического всех ее элементов.
24 Дан целочисленный вектор А(n). Построить вектор B(n), i-ый элемент которого равен среднему арифметическому первых i-элементов вектора А : В [i] = ( А [1] +...+ А [i] )/i
25 Дан целочисленный вектор А(n). Подсчитать сколько раз встречается в этом векторе максимальное по величине число.
26 Дан целочисленный вектор А(n). Проверьте, есть ли в нем элементы равные 0. Если есть, найдите номер первого из них, то есть наименьшее i, при котором А[i] = 0.
27 Дан целочисленный вектор А(n). Проверьте, есть ли в ней отрицательные элементы. Если есть, найдите наибольшее i, при котором А [i] < 0.
28 Дан целочисленный вектор А(n). Подсчитайте наибольшее число одинаковых идущих в ней подряд элементов.
29 Дан целочисленный вектор А(n). Подсчитайте количество различных чисел, встречающихся в векторе. Повторяющиеся числа учитывать один раз.
30 Дан целочисленный вектор А(n). Построить вектор B(n), который содержит те же числа, что и вектор А, но в которой все отрицательные элементы предшествуют всем неотрицательным.
Лабораторная работа №2
Строки в языке Object Pascal
Решить одну из следующих задач, использовав языковые средства Object Pascal:
31 Удалить из предложения все слова все слова, содержащие заданный символ.
32 Все лексемы во введенной строке вывести в обратном порядке.
33 Увеличение кода каждого символа на константу и вывод новой строки. Константа вводится с клавиатуры.
34 Подсчитать сумму длин лексем во введенном предложении и вывести полученную величину.
35 Распечатать слова из введенного предложения, у которых либо буквы упорядочены по алфавиту, либо каждая буква входит в слово не менее двух раз (т.е. слова типа BEER, ABBA).
36 Распечатать введенную строку, удалив из неe лексемы с нечетными номерами и перевернув лексемы с четными номерами.
37 Сдвиг во введенной строке четных символов на 2 позиции вправо. Сдвиг полагать кольцевым.
38 Поиск самого длинного слова в строке и вывод этого слова в обратном порядке.
39 Поменять в лексемах введенного предложения буквы местами (парно).
40 Поменять в лексемах введенного преложения буквы на нечетных позициях с прописных на строчные.
41 Дано предложение. Все нечетные лексемы перевернуть и вывести новое предложение.
42 Дано предложение. Определить, является ли числовая последовательность из длин слов неубывающей.
43 Вводится строка, содержащая цифры и символы. Подсчитать и вывести сумму квадратов всех чисел в исходной строке.
44 Распечатать в порядке, обратном алфавитному, все буквы, которые входят в текст не менее трех раз.
45 Вводится строка, содержащая цифры и символы. Подсчитать и вывести сумму всех чисел в исходной строке.
46 Замена во введенной строке S лексемы a на лексему b. Лексемы a и b вводятся с клавиатуры.
47 Дано преложение. Вывести все слова заданной длины.
48 Замена во введенной строке, начиная с 3-й позиции, 1-о символа на второй.
49 Удалить из предложения все символы, стоящие на чтеных позициях в лексемах.
50 Подсчитать суммы кодов символов лексем во введенном предложении и проверить, является ли полученный числовой ряд невозрастающей последовательностью.
51 Поиск самого короткого слова в строке и вывод количества повторений его в исходной строке.
52 Подсчет числа слов во введенном предложении. Полагать, что слова разделяются пробелами, число пробелов между словами - произвольное.
53 Во введенном предложении поменять все символы местами (парно)
54 Дана строка и символ. Подсчитать число вхождений символа в нечетных лексемах.
55 Вывести число повторений введенной лексемы в строке. Строка вводится с клавиатуры.
56 Подсчет числа слов с четным количеством букв.
57 Распечатать, начиная с последнего, перевёрнутыс слова введенного предложения.
58 Вводится две строки. В первой строке все буквы сделать прописными, во второй - заменить символ 'a' на 'b'. Вывести строку, полученную в результате слияния преобразованных строк.
59 Из введенной строки удаляем все вхождения лексемы.Лексема вводится с клавиатуры.
60 Удалить из предложения все пробелы между лексемами. Вывести новое предложение.
61 Во введенной строке найти самое длинное симметричное слово и вывести его.
62 По заданному натуральному числу определить и вывести его последнюю и первую цифры.
Лабораторная работа №3
Объектная модель в языке Object Pascal
Описать два объекта реального мира, один из которых является специализацией другого, в виде базового и производного класса с использованием объектной модели Object Pascal.
Требования к реализации:
63 Обязательно использование в классах механизма свойств и виртуальных методов с последующим их перекрытием.
64 Необходимо определение конструктора и деструктора в базовом классе и последующее их перекрытие в классе-наследнике.
65 Классы должны быть описаны в отдельных модулях.
66 Для тестирования классов создать оконное приложение, в котором организовать независимое тестирование классов.
Для запуска теста класса использовать обработчик объекта TButton, в котором происходит создание класса, присваивание значений свойствам, вывод значений в окно приложения и разрушение объектов.
В качестве базовых и производных классов взять следующие пары объектов реального мира:
1 человек, студент;
2 диск, оптический привод;
3 млекопитающее, кошка;
4 клавиатура для ПЭВМ, мультимедийная клавиатура для ПЭВМ;
5 стереосистема, акустическая система стандарта 2.1;
6 железо, сталь;
7 металл, ртуть;
8 нагревательный прибор, масляный радиатор;
9 монитор, TFT-монитор;
10 компьютер, сервер;
11 осветительный прибор, настольная лампа;
12 заведующий кафедрой, декан факультета;
13 средство химической защиты, противогаз;
14 оптический носитель информации, диск CD-RW;
15 фотоаппарат, цифровой фотоаппарат;
16 карта памяти, карта Secure Digital;
17 огнетушитель, порошковый огнетушитель;
18 военный корабль, авианосец;
19 парусное судно, шхуна;
Лабораторная работа №4
Использование VCL для создания интерфейса приложения
Разработать информационно-справочную систему, обеспечивающую работу со списком объектов производного класса из лабораторной работы №3.
Требования к реализации:
1 Приложение должно иметь несколько окон;
2 Для визуализации справочника использовать объект TStringGrid.
3 Приложение должно иметь иерархическое и всплывающее меню.
4 При старте приложение в списке должно быть три объекта..
5 Приложение должно обеспечивать создание нового элемента списка, редактирование и удаление существующего элемента списка.
6 Для занесения нового элемента списка и изменение существующего использовать отдельное окно ввода данных.
7 Обеспечить вывод количества элементов списка объектов.
Лабораторная работа №5
Файловый ввод-вывод в Object Pascal
Информационно-справочную систему, разработанную в лабораторной работе №4, обеспечить возможностью чтения/сохранения списка объектов в файле.
Требования к реализации. Для чтения/сохранения списка объектов в файле использовать текстовый файл.
Лабораторная работа №6
Разработка структур данных средствами языка Object Pascal
Необходимо реализовать структуру данных в соответствии со своим вариантом.
Вариант 1.
Элемент структуры: комплексное число.
Структура данных: вектор.
Вариант 2.
Элемент структуры: строка.
Структура данных: стек.
Вариант 3.
Элемент структуры: вещественное число.
Структура данных: очередь.
Вариант 4.
Элемент структуры: точка в пространстве R3.
Структура данных: дек.
Вариант 5.
Элемент структуры: строка.
Структура данных: кольцевой список (добавление и удаление в конец списка).
Вариант 6.
Элемент структуры: целое число.
Структура данных: двухсвязный список (добавление и удаление в начало списка).
Вариант 7.
Элемент структуры: точка в пространстве R3.
Структура данных: стек.
Вариант 8.
Элемент структуры: комплексное число.
Структура данных: вектор.
Вариант 9.
Элемент структуры: строка.
Структура данных: дек.
Вариант 10.
Элемент структуры: точка в пространстве R3.
Структура данных: кольцевой список.
Вариант 11.
Элемент структуры: комплексное число.
Структура данных: дек.
Вариант 12.
Элементом является целое число.
Структура данных: вектор.
Вариант 13.
Элемент структуры: строка.
Структура данных: очередь.
Вариант 14.
Элемент структуры: вещественное число.
Структура данных: стек.
Вариант 15.
Элемент структуры: точка в пространстве R3.
Структура данных: кольцевой список.
Требования к реализации:
1 Для построения класса структуры данных запрещается использовании готовые структуры данных в выбранном для реализации языке программирования (языки Object Pascal и Delphi – классы TCollection, TList, TStack и др.).
2 Для реализации элемента структуры и самой структуры использовать классы с функциональностью, требуемой определением структуры данных.
3 Для размещения данных использовать механизм динамической памяти.
4 Организовать тестирование разработанных классов посредством консольного приложения. При выполнении каждой операции класса структуры осуществлять вывод состояния структуры данных на консоль.
Лабораторная работа №7
Реализация алгоритма сортировки средствами
средствами языка Object
Pascal
В соответствии со своим вариантом реализовать алгоритм сортировки в целочисленном массиве.
1 Сортировка с помощью прямого включения.
2 Сортировка с помощью двоичного включения.
3 Сортировка выбором.
4 Сортировка методом «пузырька».
5 Шейкерная сортировка.
6 Сортировка слиянием.
7 Сортировка с помощью разделения (быстрая сортировка).
8 Быстрая сортировка с выбором первого элемента в качестве опорного.
9 Быстрая сортировка со случайным выбором опорного элемента.
10 Быстрая сортировка с выбором опорного элемента, как элемента наиболее близкого к среднему арифметическому максимального и минимального элемента.
11 Сортировка с помощью прямого включения.
12 Сортировка с помощью двоичного включения.
13 Сортировка выбором.
14 Сортировка методом «пузырька».
15 Сортировка слиянием.
Требования к реализации. Для реализации алгоритма сортировки использовать консольное приложение, использующее ввод с клавиатуры и вывод на консоль.
Лабораторная работа №8
Разработка приложения локальной базы
данных
средствами Borland Delphi
Для предметной области в соответствии со своим вариантом создать базу данных и приложение созданной базы данных, реализующее информационно-поисковую систему.
Варианты:
1 Учет продажи или производства автомобилей.
2 Работа общежития.
3 Учебная нагрузка на кафедре.
4 Страны Западной Европы (полит., эконом., географич.)
5 Учет развития биологических объектов (растений, животных).
6 Функционирование предприятия общественного питания.
7 Применение, производство и учет лекарственных препаратов.
8 Функционирование медицинского учреждения (поликлиники, больницы).
9 Спортивные олимпиады (архив).
10 Классификация высших учебных заведений и их специальностей в Беларуси.
11 Функционирование троллейбусного парка.
12 Функционирование железнодорожного транспорта.
13 Функционирование ЗАГС.
14 Функционирование детского летнего лагеря.
15 Функционирование склада (базы) промышленных товаров.
16 Классификация аппаратного и программного обеспечения ПК.
17 Классификация животного мира Беларуси.
18 Астрология, составление гороскопа с учетом лунного календаря.
19 Функционирование судов.
20 Рыболовное хозяйство
21 Художественный салон.
22 Функционирование ателье.
23 Функционирование автошколы.
24 Функционирование музея.
25 Работа детского сада.
26 Функционирование центров занятости населения.
Требования к реализации:
1 Наличик двух связанных таблицы в структуре базы данных отношением «главная-подчиненная».
2 Обязательно использование экземпляра класса TDataModule в приложении.
3 Приложение должно обладать возможностью генерации отчета, созданного с помощью компонентов Quick Reports или Rave Reports (на выбор).