ВУЗ: Московский государственный университет технологий и управления им. К.Г. Разумовского
Категория: Методичка
Дисциплина: Программирование
Добавлен: 16.02.2019
Просмотров: 1695
Скачиваний: 15
ИС разработки ПО, практические работы
16
Глускер А. И.
16 Туры определяются названием. Для пляжного тура указывается тип пляжа (галечный, песок); для экскурсион-
ного – количеством экскурсий. Выведите информацию обо всех турах, содержащих слово Египет.
17 Язык программирования определяется названием. Алгоритмические языки определяются поддержкой ООП (от-
сутствует, на классах, прототипная), остальные языки – типом (функциональный, логический, стиль ). Выведите
информацию обо всех языках, название которых начинается с буквы «А».
18 Контрагенты определяются названием. Индивидуальные предприниматели дополнительно определяются нали-
чием счета в банка, а юридические лица – формой организации (ООО, ОАО. ЗАО). Выведите информацию обо
всех контрагентах, название которых начинается с буквы «А».
19 Счет в банке определяется номером. Для текущего счета указывается плата за обслуживание, для сберегательно-
го счета – проценты годовых и наличие капитализации. Выведите информацию обо всех счетах, номер которого
начинается с 408178...
20 Автомобильная дорога определяется названием и километражем. Бесплатная дорога определяется статусом ав-
томагистрали (автомагистраль или нет), а платная – стоимостью за километр для обычных пользователей. Вы-
ведите информацию о дорогах, длина которых менее 100 км.
21 Офисное здание определяется адресом. В случае наличия стоянки указывается количество машиномест и стои-
мость аренды за месяц. Выведите информацию о зданиях, в адресе которых присутствует слово Тверская.
22 Товары Интернет-магазина – GPS-навигаторы и карты. Все товары определяются ценой и названием, GPS-
навигаторы имеют назначение (ручной, автомобильный) и признак возможности загрузки карт; карты – разме-
ром (в Мб). Выведите информацию о всех товарах со стоимостью менее 4000 рублей.
23 Товары Интернет-магазина – чаи и кофе. Все товары определяются ценой, названием и весом, кофе – типом
(растворимый, молотый, в зернах), чаи – типом (черный, зеленый). Выведите информацию о всех товарах с
весом менее 150 г.
24 Объекты продаваемые в коттеджном поселке: участки (определяются площадью, стоимостью, наличием подря-
да), дома (определяются этажностью, площадью и стоимостью). Выведите все объекты со стоимостью меньше
1000000 рублей.
25 Вопросам теста соответствует формулировка и количество баллов за правильный ответ. Вопросам с варианта-
ми правильных ответов соответствует 4 варианта ответа и номер правильного ответа; остальным вопросам –
формулировка правильного ответа. Выведите все вопросы, оцениваемые в 10 баллов и выше.
26 Слова определяются собственно словом. Для существительных указывается род, для глаголов – спряжение.
Выведите информацию обо всех словах, начинающихся на букву «А».
27 Операционная система определяется названием. Для операционной системы на базе Linux указывается назва-
ние менеджера пакетов; для остальных – стоимость лицензии. Вывести все операционные системы, у которых
название начинается на букву «A».
28 Рюкзаки определяются названием модели и емкостью. Для городских рюкзаков указывается наличие «венти-
лируемой спины» для походных – количество отделений и наличие крепления для трекинговых палок. Вывести
информацию обо всех рюкзаках, в названии которых присутствует слово «Trek».
29 Автостоянка определяется названием, количеством машиномест. Для крытой автостоянки указывается количе-
ство этажей. Для открытой стоянки – наличие охраны. Вывести информацию обо всех автостоянках с количе-
ством мест больше 20.
30 Партия определяется названием. Для тех партий, что финансируются из бюджета указывается размер ассиг-
нований, а для остальных – количество депутатов в каких-либо представительных органах власти. Вывести
информацию обо всех партиях с названиями, начинающимися на буквы от «А» до «К».
3. Содержание отчета:
(a) цель работы;
(b) печатная копия диаграммы классов;
(c) исходный код разработанного программного изделия;
(d) ответ на контрольный вопрос.
4. Контрольные вопросы:
(a) опишите элементы UML, используемые в диаграммах классов.
11
Практическая работа №10. Средства автоматизированного программиро-
вания (4 часа)
1. Цель работы: практическое ознакомление со средствами автоматизированного программирования
2. Порядок выполнения:
16
ИС разработки ПО, практические работы
17
Глускер А. И.
(a) создайте исходный файл для программы flex в соответствии с вашим заданием (простейшей правильное решение
занимает не более 10 строк);
(b) создайте исходный файл для программы yacc в дополнение к исходному файлу, созданному в первой части
задания (по желанию);
(c) осуществите трансляцию исходных файлов с помощью flex, yacc, транслятора языка C;
(d) осуществите тестирование и отладку программного изделия.
Варианты задания:
1 Программа проверки правильности оператора case с переменной-селектором типа char (без else), в который вло-
жены операторы присваивания переменной строковой константы.
2 Программа проверки правильности оператора присваивания, в правой части которого допустимы операции сло-
жения, вычитания, умножения, деления, переменные, целые и вещественные числа (включая показательную
форму).
3 Программа проверки правильности описания массива, у которого индексы могут иметь тип-название (например,
boolean), ограниченный тип (для integer), а тип-элемента – название типа (идентификатор).
4 Программа проверки правильности описания массива, у которого индексы могут иметь тип-название (например,
boolean), перечислимый тип, а тип-элемента – ограниченный тип для integer.
5 Программа проверки правильности описания массива, у которого индексы могут иметь тип-название (например,
boolean), ограниченный тип (для char), а тип-элемента – перечислимый тип.
6 Программа проверки описания перечислимого и ограниченного типа (для integer, char). Строка должна начи-
наться со слова type.
7 Программа проверки правильности оператора write(ln), у которого в качестве аргументов могут участвовать
строковый литералы, целые и вещественные числа, выражения над числами, соединенные операциями сложения,
вычитания, умножения и деления. Может также быть указан формат вывода.
8 Проверка правильности последовательности операторов read(ln), присваивания и write(ln). У writeln возможные
аргументы – строковые литералы; у read(ln) – названия переменных, элементы массивов. У оператора присваи-
вания слева название переменной или элемент массива, справа число (целое или вещественное).
9 Проверка правильности оператора for, у которого начальным и конечным значениями могут быть как целые
числа, так и символы, а тело цикла – оператор write(ln), у которого аргументы – целые и вещественные числа и
переменные.
10 Проверка правильности оператора if, у которого условие имеет вид:
<переменная><знак><число> , при этом
знак – это знак больше, меньше, больше или равно, меньше или равно, равно, не равно; число – целое или
вещественное. Как в части then, так и в else (может быть опущен) указывается оператор write(ln) с аргументами
– переменными и строками.
11 Проверка правильности последовательности операторов присваивания, правая часть которых – выражения, в
которых используются литералы типа «множество» со значениями типа integer, переменные и операции +,-,*.
12 Проверка правильности последовательности операторов присваивания, правая часть которых – выражения, в
которых используются литералы типа «множество» со значениями типа char, переменные и операции +,-,*.
13 Проверка правильности оператора while, у которого условие имеет вид: <переменная><знак><число> , при этом
знак – это знак больше, меньше, больше или равно, меньше или равно, равно, не равно; число – целое или
вещественное. Телом цикла является либо снова оператор while, либо оператор присваивания, в правой части
которого могут быть представлены целые числа, либо переменные.
14 Проверка правильности оператора if, у которого условие имеет вид:
<переменная><знак><строка> , при этом
знак – это знак больше, меньше, больше или равно, меньше или равно, равно, не равно. Как в части then, так и в
else (может быть опущен) указывается оператор присваивания, правая часть которого – выражение, содержащее
переменные, целые и вещественные числа и знаки операций +,-,*,/.
15 Проверка правильности оператора repeat..until, у которого условие имеет вид:
<переменная><знак><число> ,
при этом знак – это знак больше, меньше, больше или равно, меньше или равно, равно, не равно; число – целое
или вещественное. Телом цикла является либо снова оператор repeat..until, либо оператор присваивания, в правой
части которого могут быть представлены целые числа, либо переменные.
16 Программа проверки правильности оператора case с переменной-селектором перечислимого типа (без else), в
который вложены операторы присваивания переменной константы типа integer.
17 Проверка правильности последовательности операторов присваивания, правая часть которых – выражения, в
которых используются литералы типа «множество» со значениями перечислимого типа, переменные и операции
+, -, *.
18 Проверка правильности оператора for, у которого начальным и конечным значениями могут быть значения пере-
числимого типа, а тело цикла – оператор присваивания, в правой части которого записана числовая константа.
17
ИС разработки ПО, практические работы
18
Глускер А. И.
19 Проверка правильности оператора if, у которого условие – это логическое выражение над переменными логиче-
ского типа. Как в части then, так и в else (может быть опущен) указывается оператор write(ln) с аргументами –
переменными и числами.
20 Проверка правильности оператора while, у которого условие – это логическое выражение над переменными ло-
гического типа. Телом цикла является оператор присваивания, правая часть которого – выражение, содержащее
целые константы и операции сложения, вычитания, умножения и деления.
21 Проверка правильности оператора repeat..until, у которого условие – это логическое выражение над перемен-
ными логического типа. Телом цикла является оператор присваивания, правая часть которого – выражение,
содержащее целые константы и операции сложения, вычитания, mod и div.
22 Проверка правильности оператора repeat..until, у которого условие имеет вид: <переменная><знак><строка> ,
при этом знак – это знак больше, меньше, больше или равно, меньше или равно, равно, не равно; строка –
литерал типа string. Телом цикла является либо снова оператор repeat..until, либо оператор writeln, аргументами
которого являются целые и вещественные числа, возможно, с указанием формата.
23 Проверка правильности оператора while, у которого условие имеет вид: <переменная><знак><строка> , при этом
знак – это знак больше, меньше, больше или равно, меньше или равно, равно, не равно; строка – литерал типа
string. Телом цикла является либо снова оператор while, либо оператор writeln, аргументами которого являются
выражения, содержащие целые числа, имена переменных и операции +, -, *. /.
24 Программа проверки правильности оператора write(ln), у которого в качестве аргументов могут участвовать
строковый литералы и переменные, соединенные операцией сложения; целые числа и переменные, соединенные
операциями сложения, вычитания, mod и div. Может также быть указан формат вывода.
25 Проверка правильности последовательности операторов присваивания, правая часть которых – выражения, в
которых используются строковые литералы и переменные, соединенные знаком +; а также выражения, в которых
используются литералы типа integer, переменные и операции сложения, вычитания, div и mod.
3. Содержание отчета:
(a) цель работы;
(b) исходные тексты для flex и, возможно, yacc;
(c) ответ на контрольный вопрос.
4. Контрольные вопросы:
(a) опишите синтаксис и семантику исходного текста для программы flex (и для программы yacc при ее использо-
вании).
(b) в чем смысл использования flex?
12
Практическая работа №11. Средства обратной разработки (2 часа)
1. Цель работы: практическое ознакомление со средствами обратной разработки
2. Порядок выполнения:
(a) Путем декомпиляции программы, выданной преподавателем, определите по какой формуле осуществляется рас-
чет программой (вычисление осуществляет функция f, ее аргументы называются x, y и z). Указание: деком-
пиляцию можно осуществить с помощью утилиты objdump (опция -d).
3. Содержание отчета:
(a) цель работы;
(b) экранная копия содержимого функции f в средстве обратной разработки;
(c) формула, вычисляемая в программе (с использованием синтаксиса языка C);
(d) ответы на контрольные вопросы.
4. Контрольные вопросы:
(a) опишите команды ассемблера, встретившиеся в вашей работе и их роль в результирующей формуле
18
ИС разработки ПО, практические работы
19
Глускер А. И.
A
Список используемого программного обеспечения
1. Современная ОС на базе GNU Linux
2. gcc (Linux)
3. bitbucket.org (облачный сервис)
4. https://libcheck.github.io/check/ (Linux)
5. cppcheck (Linux)
6. automake (Linux)
7. autoconf (Linux)
8. git (Linux)
9. ar (Linux)
10. fasm (Linux)
11. valgrind (Linux)
12. autoit (Windows)
13. xsltproc (Linux)
14. docbook-xsl (Linux)
15. objdump (Linux)
16. flex (Linux)
17. Umbrello
B
Список источников
1. Руководство по созданию статических и динамических библиотек: https://www.opennet.ru/docs/RUS/zlp/003.html
2. Руководство по gcc https://www.opennet.ru/docs/RUS/gcc/
3. Введение в make www.opennet.ru/base/dev/mini_make.txt.html
4. Руководство cppcheck http://cppcheck.sourceforge.net/manual.pdf (англ.)
5. Руководство git https://git-scm.com/book/ru/v1
6. Пошаговая инструкция по использованию autotools http://blablacode.ru/linux/500)
7. Руководство по libcheck https://libcheck.github.io/check/doc/check_html/check_3.html (англ.)
8. Введение в valgrind http://www.opennet.ru/base/dev/valgrind_memory.txt.html
9. Введение в gcov http://www.linux-mag.com/id/1409/ (англ.)
10. Перевод документации autoit http://azjio.narod.ru/autoit3_docs
11. Обзор docbook http://www.osp.ru/os/2005/03/185403/
12. Лекция, описывающая flex http://csc.sibsutis.ru/sites/csc.sibsutis.ru/files/courses/spo/Lecture_8.pdf
19