Файл: ИСР. Практические работы.pdf

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
background image

ИС разработки ПО, практические работы

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


background image

ИС разработки ПО, практические работы

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


background image

ИС разработки ПО, практические работы

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


background image

ИС разработки ПО, практические работы

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