Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Ракитин Р.Ю. ООП в Turbo Delphi

.PDF
Скачиваний:
55
Добавлен:
18.03.2015
Размер:
3.59 Mб
Скачать

191

Лабораторная работа № 4. Работа со строками

Цель: Изучить основы работы с текстовой информацией в Delphi.

Задания:

1.Создать алгоритм решения задачи со строками. Реализовать задачу средствами языка Pascal.

2.При выполнении задания обязательно использовать следующие компоненты: RichEdit и Edit (ввод данных), Memo и Edit (вывод результатов), Label (вывод пояснений), MainMenu (главное меню программы), Button (кнопка расчета, выход из программы).

3.Ввод данных в программу и необходимый расчет осуществлять после нажатия кнопки Enter в поле компонента ввода (RichEdit) или нажатии на компонент Button.

4.C помощью главного меню реализовать очистку компонентов от введенных данных и продублировать основные действия программы.

5.Предусмотреть подтверждение закрытия приложения.

6.В модальном окне вывести информацию о создателе программы.

Варианты заданий к лабораторной работе:

1.Дана строка, подсчитать сколько раз встречается определенная буква.

2.Даны символы S1, S2, ..., Sn (вводятся одной строкой). Подсчитать, сколько раз среди данных символов встречается определенная буква или символ.

3.Дана последовательность S1, S2, ..., Sn (вводятся одной строкой), заменить в ней некоторый символ, на другой введенный символ.

4.Даны символы S1, S2, ..., Sn (вводятся одной строкой). Выяснить, имеются ли в последовательности S1, S2, ..., Sn такие члены последовательности Si и Si+1, что Si это один введенный символ, Si+1 другой введенный символ.

5.Даны символы S1, S2, ..., Sn (вводятся одной строкой).

а) подсчитать наибольшее количество идущих подряд введенных символов;

б) выяснить, верно ли, что в последовательности S1, S2, ..., Sn имеются пять идущих подряд введенного символа.

6.Найти самое длинное слово и самое коротное слово (длиной не менее введенного числа) в предложении.

7.Найти n-е симметричное слово в предложении.

8.Заменить заданное слово предложения на другое слово. Слова вводятся в

одной строке.

9.Напечатать слова предложения в алфавитном порядке, в обратном порядке.

10.Напечатать различные слова предложения, указав для каждого из них число его вхождений.

11.Дана строка. Необходимо преобразовать её удалив каждый символ строки совпадающий с введенным, и повторив каждый символ отличный от введенного.

12.Найти в предложении слова, которые начинаются на одну и ту же букву.

192

13.Дано предложение. Пределить слова которые начинаются или заканчиваются на заданную букву.

14.Дано предложение. Исключить последовательность символов, заключенную между двумя определенными символами.

15.Дано предложение. Есть ли в нем определенные слова из строки, например «Я Вас любил», слова могут идти не обязательно подряд, но обязательно в том же порядке, что и в строке.

16.Дано предложение. В нем ошибочно набраны лишние знаки (набор вводится строкой), удалить их.

17.Дано арифметическое выражение. Проверить правильность записи этого выражения и вывести, те символы, которые являются ошибочными. Допустимые символы выражении определяются строкой.

18.Дано предложение. Проверить в нем правописание (на выбор) «у» – «ю», «и» – «ы» и «а» – «я» после шипящих.

19.Дана строка, в которой есть двоеточие. Получить все символы, расположенные до (после) первого двоеточия включительно. Получить все символы, расположенные между первым и вторым двоеточиями. Если второго двоеточия нет, то получить все символы после первого двоеточия.

20.Даны символы S1, S2, ..., Sn. Известно что среди S1, S2, ..., Sn есть по крайней мере один определенный символ. Найти такое натуральное i, что: а) Si первый по порядку этот символ; б) Si последний по порядку символ.

21.Найти n-е слово в самом коротком предложении. Если такого слова нет вывести последнее слово.

22.Дано слово, оканчивающее определенным символом. Вставьте некоторую заданную букву после буквы с заданным номером.

23.Дано слово. Переставить его s-ю букву на место k-й (s > k). При этом k-ю, (k +1)-ю, …, (s-1)-ю буквы сдвинуть вправо на одну позицию.

24.Дано предложение Удалить из него определенные символы (вводятся в

строке), стоящие на четных, нечетных местах.

25.Дана строка. Группы символов, разделённых пробелами (одним или несколькими) и не содержащим пробелов внутри себя будем называть словами.

а) подсчитать количество определенных символов в последнем/первом слове данной последовательности.

б) подсчитать количество слов в данной последовательности. в) найти длину самого длинного/короткого слова.

г) удалить все символы, не являющиеся буквами.

193

Лабораторная работа № 5. Работа с файловой системой

Цель: Изучить основы работы с файловой системой Windows.

Задания:

1.Придумать и организовать список типа запись согласно условию задачи.

2.Для ввода и вывода данных использовать компоненты Edit.

3.Загрузка и сохранение файлов осуществлять посредством диалогов. Файл сохранять с определенным расширением (придумайте самостоятельно). В строке состояния вывести имя загруженного файла.

4.При сохранении файла проверить, не существует ли файл с указанным именем. Если файл существует, то запросить о действии пользователя.

5.Предусмотреть подтверждение закрытия приложения.

6.В модальном окне вывести информацию о создателе программы.

Варианты заданий к лабораторной работе:

1.В магазине формируется список лиц, записавшихся на покупку товара. Каждая запись этого списка содержит: порядковый номер, Ф.И.О., домашний адрес покупателя и дату постановки на учет. Удалить из списка все повторные записи, проверяя Ф.И.О. и домашний адрес.

2.Список товаров, имеющихся на складе, включает в себя наименование товара, количество единиц товара, цену единицы и дату поступления товара на склад. Вывести в алфавитном порядке список товаров, хранящихся больше месяца, стоимость которых превышает 1000000 руб.

3.Для получения места в общежитии формируется список студентов, который включает Ф.И.О. студента, группу, средний балл, доход на члена семьи. Общежитие в первую очередь предоставляется тем, у кого доход на члена семьи меньше двух минимальных зарплат, затем остальным в порядке уменьшения среднего балла. Вывести список очередности предоставления мест в общежитии.

4.В справочной автовокзала хранится расписание движения автобусов. Для каждого рейса указаны его номер, тип автобуса, пункт назначения, время отправления и прибытия. Вывести информацию о рейсах, которыми можно

воспользоваться для прибытия в пункт назначения раньше заданного времени.

5.Информация о сотрудниках фирмы включает: Ф.И.О., табельный номер, количество проработанных часов за месяц, почасовой тариф. Рабочее время свыше 144 часов считается сверхурочным и оплачивается в двойном размере. Вывести размер заработной платы каждого сотрудника фирмы за вычетом подоходного налога, который составляет 12% от суммы заработка.

6.Информация об участниках спортивных соревнований содержит: наименование страны, название команды, Ф.И.О. игрока, игровой номер, возраст, рост, вес. Вывести информацию о самой молодой команде.

194

7.Для книг, хранящихся в библиотеке, задаются: регистрационный номер книги, автор, название, год издания, издательство, количество страниц. Вывести список книг с фамилиями авторов в алфавитном порядке, изданных после заданного года.

8.Различные цехи завода выпускают продукцию нескольких наименований. Сведения о выпущенной продукции включают: наименование, количество, номер цеха. Для заданного цеха необходимо вывести количество

выпущенных изделий по каждому наименованию в порядке убывания количества.

9.Информация о сотрудниках предприятия содержит: Ф.И.О., номер отдела, должность, дату начала работы. Вывести списки сотрудников по отделам в порядке убывания стажа.

10.Ведомость абитуриентов, сдавших вступительные экзамены в университет, содержит: Ф.И.О., адрес, оценки. Определить количество абитуриентов, проживающих в г.Минске и сдавших экзамены со средним баллом не ниже 4.5, вывести их фамилии в алфавитном порядке.

11.В справочной аэропорта хранится расписание вылета самолетов на следующие сутки. Для каждого рейса указаны: номер рейса, тип самолета, пункт назначения, время вылета. Вывести все номера рейсов, типы

самолетов и времена вылета для заданного пункта назначения в порядке возрастания времени вылета.

12.У администратора железнодорожных касс хранится информация о свободных местах в поездах дальнего следования на ближайшую неделю в следующем виде: дата выезда, пункт назначения, время отправления, число свободных мест. Оргкомитет международной конференции обращается к администратору с просьбой зарезервировать m мест до города N на k-й день недели с временем отправления поезда не позднее t часов вечера. Вывести

время отправления или сообщение о невозможности выполнить заказ в полном объеме.

13.Ведомость абитуриентов, сдавших вступительные экзамены в университет, содержит: Ф.И.О. абитуриента, оценки. Определить средний балл по университету и вывести список абитуриентов, средний балл которых выше среднего балла по университету. Первыми в списке должны идти студенты, сдавшие все экзамены на 5.

14.В радиоателье хранятся квитанции о сданной в ремонт радиоаппаратуре. Каждая квитанция содержит следующую информацию: наименование группы изделий(телевизор, радиоприемник и т. п.),марку изделия, дату приемки в ремонт, состояние готовности заказа (выполнен, не выполнен).

Вывести информацию о состоянии заказов на текущие сутки по группам изделий.

15.На междугородной АТС информация о разговорах содержит дату разговора, код и название города, время разговора, тариф, номер телефона в этом городе и номер телефона абонента. Вывести по каждому городу общее время разговоров с ним и сумму.

195

16.Некоторое разведывательное управление имеет досье на своих агентов, в котором предусмотрены такие разделы: Ф.И.О., клички, список выполненных заданий, вознаграждение за каждое задание. Составить программу, позволяющую а) вывести полный список агентов;

б) агента, имеющего наибольшее количество кличек; в) агента, имеющего наибольшую общую сумму вознаграждения.

17.Багаж пассажира характеризуется количеством вещей и общим весом вещей. Сформировать переменную Bagaj, содержащую сведения о багаже нескольких пассажиров. Сведения о багаже каждого пассажира представляют собой запись с двумя полями: одно поле целого типа (количество вещей) и одно-действительное (вес в килограммах).

а) Найти багаж, средний вес одной вещи в котором отличается не более, чем на 0,3 кг от общего среднего веса одной вещи.

б) Найти число пассажиров, имеющих более двух вещей и число пассажиров, количество вещей которых превосходит среднее число вещей. в) Выяснить, имеется ли пассажир, багаж которого состоит из одной вещи весом менее 30 кг.

18.Упорядочить сведения о багаже, записанные в переменной bagaje(см. предыдущую задачу) по невозрастанию веса багажа. Предполагается, что число пассажиров, зарегистрировавших багаж, известно заранее и равно п (некоторая константа), при этом п не слишком велико. Указание. Перенести сведения о багаже из переменной багаж в массив B1,...Bn, затем упорядочить этот массив, используя то, что для переменных х, у одного и

того же комбинированного типа можно использовать оператор присваивания х:=у После этого переписать элементы массива BI, ..., Bn в переменную Bagaje.

19.Требуется удалить из данной переменной Bagaje сведения о багаже, общий вес вещей в котором меньше, чем 10 кг. Использовать вспомогательную переменную F.

20.Переписать сведения о багаже из переменной Bagaj в переменную Bag. В переменной Bag сведения о багаже каждого пассажира представляются массивом из двух целых чисел - числа вещей и общего веса вещей, выраженного в граммах. Составить также программу обратного преобразования: переписи сведений о багаже из переменной Bag в переменную Bagaj.

21.Сформирована переменная bibl, содержащий сведения о книгах. Сведения о каждой из книг это фамилия автора, название и год издания.

а) Найти названия книг данного автора, изданных с 1960 года; б) Определить имеется ли книга с названием "Информатика". Если да, то

сообщить фамилию автора и год издания. Если таких книг несколько, то сообщить сведения обо всех этих книгах.

196

22.Дана переменная, которая содержит номера телефонов сотрудников учреждения: Указывается фамилия сотрудника, его инициалы и номер телефона. Найти номер телефона сотрудника по его фамилии и инициалам.

23.Сформирована переменная типа запись, содержащая различные даты. Каждая дата - это число, месяц и год. Найти:

а) год с наименьшим номером; б) все весенние даты; в) самую позднюю дату.

24.Сформировать переменную Tovar, содержащую сведения об экспор- тируемых товарах: Указывается наименование товара, страна импортирующая товар, и объем поставляемой партии в штуках. Составить список стран, в которые экспортируется данный товар, и общий объем его экспорта.

25.Сформирована переменная Assortim, содержащая сведения об игрушках: указано название игрушки, ее стоимость в рублях, и возрастные границы. Получить следующие сведения:

а) название игрушек цена которых не превышает 4 руб., и которые подходят детям 5 лет; б) цену самого дорогого конструктора;

в) название наиболее дорогих игрушек. (цена которых отличается не более чем на 1 руб. от самой дорогой.); г) название игрушек которые подходят как детям 4 лет так и детям 10 лет;

д) можно ли подобрать игрушку, любую кроме мяча, подходящую ребенку 3 лет, и дополнительно мяч, так, чтобы суммарная стоимость игрушек не превосходила 5 руб.?

197

Лабораторная работа № 6. Стандартные элементы управления

Цель: Изучить стандартные компоненты управления в Delphi.

Задания:

1.Продумать интерфейс приложения. При реализации программы обязательно использовать следующие компоненты: TMainMenu, TPopUpMenu,

TStatusBar, TPageControl, TImageList.

2.По возможности организовать работу с файлами для загрузки или сохранения данных.

3.В модальном окне вывести информацию о создателе программы.

Варианты заданий к лабораторной работе:

1.Программа «Простой калькулятор».

2.Калькулятор в двоичной системе счисления.

3.Калькулятор в шестнадцатеричной системе счисления.

4.Программа «Решение уравнений».

5.Текстовый редактор.

6.Графический редактор.

7.Программа «Конвертор единиц измерения и систем счисления».

8.Программа «Просмотр фотографий».

9.Будильник (время, секундомер, таймер, сигнал на определенное время).

10.База данных магазина.

11.Программа «Напоминание о событиях».

12.Игра «Пятнашки».

13.Программа реализующее численное интегрирование для заданных функций (отобразить график).

14.Записная книжка с выводом сообщения о наступившем событии.

15.Часы аналоговые и электронные, с выбором часового пояса.

16.Программы-шутки: «Убегающее окошко», «Надоедливая надпись» (выводится сообщение, закрытие которого возможно только при определенном сочетании клавиш), «Афоризмы» (из текстового файла выводятся в случайном порядке афоризмы; вывод производить через определенное время).

17.Игра «Ханойская башня» (предусмотреть ручной сбор с помощью мыши).

18.Игра «Крестики-нолики» (предусмотреть возможность игры с компьютером).

19.Эмулятор «Движение тела, брошенного под углом к горизонту».

20.Программа «Работа с матрицами».

198

Лабораторная работа № 7. Работа с графикой

Цель: Изучить графические возможности языка Object Pascal

Задания:

1.Построить график функции согласно вашему варианту. Исходные данные: a, b, с, а также шаг построения расчета значений h на отрезке [m, n]. Ввод исходных данных организовать через окна TEdit. Окно ввода шага h, связано с компонентом TUpDown.

2.Через модальное окно организовать выбор:

цвета холста и графика, используя компонент TColorDialog;

толщины и типа линии графика, используя компонент TComboBox.

3.График выводить используя компонент TImage.

4.Реализовать сохранение графика в файл.

5.При вводе данных провести проверку корректности ввода с помощью обработки исключительной ситуации EErrorConvert в случае ошибки

вывести диалоговое окно с предупреждением о не правильности введенного значения.

6.Расчет и перерисовку графика осуществить при нажатии Кнопки или при щелчке на Image.

7.В модальном окне вывести информацию о разработчике.

8.Предусмотреть подтверждение закрытия приложения.

Варианты заданий к лабораторной работе:

1. ;

2.;

3.;

4.;

5.;

6. ;

7.;

8. ;

9.;

10.;

199

11.;

12.;

13.;

14.;

15.;

16.;

17.;

18.;

19.;

20.

 

 

 

 

 

 

 

 

 

 

 

 

 

;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

( )

 

 

 

 

 

21.

 

 

 

 

;

 

 

 

 

 

 

 

 

 

 

22.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

23.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

24.

 

 

 

 

 

 

 

 

 

 

 

 

 

;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

25.

 

 

 

 

 

 

 

 

 

 

 

.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

200

Лабораторная работа № 8. Работа с таблицами

Цель: Изучить основы организации данных с помощью таблиц в Delphi.

Задания:

1.Реализовать алгоритм задачи, согласно вашему варианту.

2.Входные, промежуточные и выходные данные организовать, используя компонент StringGrid.

3.Ввод данных реализовать тремя способами: вручную, случайно и из файла.

Для выбора одного из вариантов ввода использовать компоненты

RadioButton, ComboBox или SpeedButton.

4.Все необходимые переменные для работы программы, должны быть запрошены через компоненты Edit.

5.Результаты работы приложения отобразить на экране и сохранить в текстовый файл.

6.В модальном окне вывести информацию о разработчике.

7.Предусмотреть подтверждение закрытия приложения.

Варианты заданий к лабораторной работе:

1.Используя интерфейс программы, задать одномерный статический массив из N элементов произвольного значения. Провести поиск заданного по значению элемента массива методом простого перебора.

2.Используя интерфейс программы, задать одномерный статический массив из N элементов произвольного значения. Провести сортировку массива методом прямого обмена.

3.Задать две матрицы (два двумерных статических массива) NxM. Перемножить две матрицы.

4.Задать две матрицы (два двумерных статических массива) NxM. Сложить две матрицы.

5.Задать матрицу (один двумерный статический массив) NxM. Найти определитель матрицы.

6.Даны целые числа A1, ..., AN , целочисленная квадратная матрица порядка M. Заменить нулями в матрице те элементы с четной суммой индексов, для которых имеются равные среди A1, ..., AN .

7.Даны действительные числа A1, ..., AN , действительная квадратная матрица порядка M. Получить действительную матрицу, вставив в исходную

матрицу между L и L+1 столбцами новый столбец с элементами A1, ..., AN .