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

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

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

11

Глускер А. И.

23 Удаление элементов равных номеру элемента в исходном спике, добавление после каждого элемента числа его единиц,

нахождение минимума из оставшихся элементов списка.

24 Удаление элементов, пропорциональных последней цифры, добавление после каждого элемента его номера (каким

бы он был после удаления элементов), нахождение максимума из оставшихся элементов списка.

25 Удаление элементов – однозначных чисел, добавление после каждого элемента его последней цифры, нахождение

суммы оставшихся элементов списка.

26 Нахождение суммы всех положительных элементов исходного списка, удаление всех элементов, меньших 0, добавление

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

27 Нахождение произведения всех положительных элементов исходного списка, удаление всех элементов, больших 0,

добавление на единицу большего элемента после каждого четного элемента списка, полученного после завершения
предыдущих преобразований.

28 Нахождение максимума всех отрицательных элементов исходного списка, удаление всех нечетных элементов, добав-

ление числа, на единицу меньшего, чем элемент списка, после каждого элемента списка.

29 Нахождение минимума всех положительных элементов исходного списка, удаление всех четных элементов, добавление

после каждого элемента исходного списка его номера (каким он был в исходном списке).

30 Нахождение максимума всех нечетных элементов исходного списка, удаление всех четных элементов и добавление

после каждого элемента списка, являющегося кубом целого числа, значения −1.

31 Нахождение суммы всех элементов исходного списка, удаление всех элементов, равных 0, добавление квадрата эле-

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

32 Нахождение произведения всех элементов исходного списка, удаление всех элементов, меньших 0, добавление единицы

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

33 Нахождение максимума всех элементов исходного списка, удаление всех четных элементов, добавление копии элемента

перед каждым элементом списка, пропорциональным 3.

34 Нахождение минимума всех элементов исходного списка, удаление всех нечетных элементов, добавление перед каж-

дым элементом исходного списка его номера (каким он был в исходном списке).

35 Нахождение суммы всех четных элементов исходного списка, удаление всех чисел, оканчивающихся на 0, из списка,

добавление перед каждым элементом списка квадрата этого элемента.

36 Нахождение максимума всех четных элементов исходного списка, удаление всех нечетных элементов и добавление

перед каждым элементом списка, являющимся квадратом целого числа, значения −1.

37 Нахождение минимума всех элементов, больших нуля; удаление всех отрицательных элементов и добавление перед

каждым элементом списка числа, на единицу большего.

38 Нахождение суммы всех элементов; удаление всех элементов, пропорциональных двум, добавление перед каждым

элементом списка куба этого элемента.

39 Нахождение суммы всех элементов, меньших нуля; удаление всех элементов, последняя цифра которых равна 5,

добавление перед каждым элементом списка числа, равного последней цифре данного элемента.

40 Нахождение наименьшего четного числа; удаление всех элементов, больших 10, добавление перед каждым элементом

списка квадрата данного числа.

41 Нахождение наименьшего числа, кратного трем; удаление всех элементов – двузначных натуральных чисел, добав-

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

42 Нахождение наибольшего номера элемента списка (в исходном списке) числа, кратного трем; удаление всех элементов,

в которых последние две цифры совпадают, добавление перед каждым элементом числа, на единицу меньшего.

43 Нахождение суммы чисел, кратных трем; удаление всех элементов, оканчивающихся на 5, добавление перед каждого

положительного элемента, копии этого числа.

44 Нахождение произведения однозначных натуральных чисел; удаление всех элементов, меньших по модулю 5, добав-

ление перед каждым отрицательным элементом, копии этого числа.

45 Нахождение наибольшего номера элемента списка (в исходном списке) двузначного числа; удаление всех элементов,

в которых последняя цифра больше 5, добавление перед каждым элементом числа, на единицу большего.

46 Нахождение суммы всех чисел, кратных 5; удаление элементов, являющихся квадратом натурального числа, добав-

ление перед каждым положительным элементом его копии.

11


background image

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

12

Глускер А. И.

47 Нахождение произведения всех чисел, кратных 5; удаление элементов, стоящих на позиции, номер которой (в исходном

списке) совпадает с самим элементом, добавление перед каждым элементом его копии, уменьшенной в 10 раз (целой
части полученного частного).

48 Нахождение наименьшего числа, кратного десяти; удаление всех двузначных натуральных чисел, добавление перед

трехзначными натуральными числами копии.

49 Нахождение наибольшего числа, кратного десяти; удаление всех чисел, в которых разряд десятков и единиц совпадает,

добавление после каждого числа, пропорционального последней цифре частного от деления числа на последнюю
цифру.

50 Нахождение количества чисел, у которых последняя цифра – 5; удаление всех чисел, стоящих после числа, на единицу

большего (в исходном списке), добавление после положительных чисел элемента списка, равного единице.

51 Нахождение произведения однозначных чисел списка; удаление чисел, меньших предыдущего (в исходном списке),

добавление перед каждым элементом остатка от деления его на 3.

52 Нахождение суммы всех четных чисел списка; удаление чисел, в которых разряд сотен равен разряду единиц, встав-

ление перед каждым элементом списка суммы его и первого элемента списка.

53 Удаление элементов равных номеру элемента в исходном спике, добавление перед каждым элементом числа его

единиц, нахождение минимума из оставшихся элементов списка.

54 Удаление элементов, пропорциональных последней цифры, добавление перед каждым элементом его номера (каким

бы он был после удаления элементов), нахождение максимума из оставшихся элементов списка.

55 Удаление элементов – однозначных чисел, добавление перед каждым элементом его последней цифры, нахождение

суммы оставшихся элементов списка.

56 Нахождение суммы всех положительных элементов исходного списка, удаление всех элементов, меньших 0, добавление

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

57 Нахождение произведения всех положительных элементов исходного списка, удаление всех элементов, больших 0,

добавление на единицу большего элемента после каждого четного элемента списка, полученного после завершения
предыдущих преобразований.

58 Нахождение максимума всех отрицательных элементов исходного списка, удаление всех нечетных элементов, добав-

ление числа, на единицу меньшего, чем элемент списка, перед каждым элементом списка.

59 Нахождение минимума всех положительных элементов исходного списка, удаление всех четных элементов, добавление

перед каждым элементом исходного списка его номера (каким он был в исходном списке).

60 Нахождение максимума всех нечетных элементов исходного списка, удаление всех четных элементов и добавление

перед каждым элементом списка, являющегося кубом целого числа, значения −1.

6

Практическая работа №5. Компоновка программ, написанных на различ-
ных языках программирования (2 часа)

Теоретическое введение

При вызове подпрограмм используются различные соглашения о способе их вызова. Транслятор gcc по умолчанию исполь-
зует следующее соглашение для функций, имеющих три аргумента целого типа (ABI SysV):

• при использовании 32-битного режима для передачи параметров используется стек: в него записываются аргументы

в обратном порядке (на каждый аргумент по 4 байта), после чего осуществляется вызов функции (при котором в
стек заносится адрес возврата, занимающий также 4 байта). Таким образом первый аргумент расположен по адресу
[4+ESP], второй – [8+ESP] и так далее. Возвращаемое значение передается через регистр EAX.

• при использовании 64-битного режима для передачи параметров используются регистры процессора: rdi, rsi, rdx;

результат возвращается через регистр rax.

Для простоты в ваших программах рекомендуется сохранять значения всех регистров, кроме eax (rax).
Для трансляции объектного файла в исходном коде FASM записывается строка: FORMAT ELF (FORMAT ELF64) для

32-битного и 64-битного режима соответственно. Функция задается меткой, при этом необходимо написать строчку

public <название функции>

где название функции указывается без угловых скобок. В программе на языке Си указывается объявление вашей функции,
описанной на языке Ассемблера.

Линковку следует осуществлять с помощью команды

gcc <список объектных файлов> -o <исполняемый файл>

12


background image

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

13

Глускер А. И.

Задание

1. Цель работы: практическое закрепление знаний о редакторах связей и программах автоматизации сборки при ис-

пользовании различных языков программирования

2. Порядок выполнения:

(a) напишите программу, осуществляющую ввод трех чисел и вызов подпрограммы, описанной в другом объектном

файле;

(b) напишите исходный файл на языке ассемблера, предназначенный для вычисления функции согласно вашему

варианту;

(c) напишите Makefile для компиляции ваших исходных файлов

(d) проведите компиляцию исходных файлов, попутно осуществляя тестирование и отладку.

Индивидуальные варианты:

1 (x+2*y+3*z)/4

2 (3*x+z*y)%4

3 (x-y*z+3)/5

4 x/5+y*2-3*z

5 (x-2*y)/z

6 (2*x+z)%y

7 x%2-y/z

8 x*x+z%y

9 (x/y+z)%x

10 ((10-x)*(y+2)%z

11 (x*y-z%5)/2

12 (x%5+y|z)*3

13 (x-y&(z+15))%10

14 (3-x%5)/(y+2*z)

15 (x+(y<<2)%5+z)

16 (x/3+(y>>3)*z)

17 (x|3+y&(~3))%125

18 ((x*y*y-z)%65)

19 (x/4+y%z)<<2

20 (x%5+z/y)>>2

21 (x|(y&z))%125

22 (x<<2+y>>2+z%3)

23 (x/(y/z)+y*3)

24 (x|(~y))/z-23

25 (y&(x|5)-z%256)

3. Содержание отчета:

(a) цель работы;

(b) Исходный текст программы

(c) Разработанный Makefile

(d) Протокол git

(e) Протокол системы отслеживания ошибок

(f) Ответ на контрольные вопросы

4. Контрольные вопросы:

(a) Как осуществляется компиляция и сборка программ, разбитых на несколько исходных файлов с использованием

gcc и fasm?

(b) Как передаются аргументы в функцию, реализованную на языке Си?

(c) Опишите использованные вами команды языка Ассемблера.

13


background image

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

14

Глускер А. И.

7

Практическая работа №6. Автоматизация тестирования GUI (2 часа)

1. Цель работы: практическое овладение инструментом автоматизации тестирования AutoIT.

2. Порядок выполнения:

(a) С помощью средства AutoIt проведите тестирование любой формы в вашем приложении (из курсовой работы

или дипломного проекта). Форма должна содержать хотя бы три активных элемента управления.

3. Содержание отчета:

(a) цель работы;

(b) исходный текст скрипта AutoIt;

(c) изображение экрана с тестируемой программой;

(d) ответ на контрольный вопрос.

4. Контрольные вопросы:

(a) опишите методику работы с программой AutoIT.

8

Практическая работа №7. Средства управления требованиями (2 часа)

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

2. Порядок выполнения:

(a) осуществите внесение списка требований к вашему курсовому или дипломному проекту с использованием спе-

циализированного инструментального средства (например, [ProR]http://www.eclipse.org/rmf/pror/).

(b) разработайте дополнительный список требований на основе требований, разработанных в предыдущем пункте,

описывающий способ их реализации с точки зрения проектировщика/программиста (эту часть работу достаточ-
но осуществить в рамках отведенного времени на работу). Свяжите исходные требования с требованиями из
дополнительного списка.

3. Содержание отчета:

(a) цель работы;

(b) экранные копии списка требований.

(c) ответы на контрольные вопросы.

4. Контрольные вопросы:

(a) опишите методику работы с выбранным вами средством управления требованиями;

(b) ответы на контрольные вопросы.

9

Практическая работа №8. Средство создания документации (2 часа)

1. Цель работы: практическое овладение средством создания документации (технология DOCBOOK).

2. Порядок выполнения:

(a) с использованием технологии DOCBOOK создайте пользовательскую документации для курсового проекта или

для дипломного проекта (в процессе работы исходный текст необходимо создавать «руками»). Размер докумен-
тации должен соответствовать тому, что на работу отводится одна пара. Для выполнения работы достаточно
ознакомиться со статьей http://www.osp.ru/os/2005/03/185403/

3. Содержание отчета:

(a) цель работы;

(b) исходный текст пользовательской документации на языке DOCBOOK;

(c) экранная копия результата его преобразования в формат HTML, WORD или PDF;

(d) ответы на контрольные вопросы.

4. Контрольные вопросы:

(a) опишите методику работы с DOCBOOK;

(b) перечислите и опишите использованные элементы и атрибуты DOCBOOK.

14


background image

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

15

Глускер А. И.

10

Практическая работа №9 Инструментальные средства проектирования (4
часа)

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

2. Порядок выполнения:

(a) выберите инструментальное средство проектирования, использующее нотацию UML, позволяющее осуществить

автоматическую генерацию исходного кода на выбранном вами языке программирования (рекомендуется Umbrello);

(b) осуществите проектирование путем разработки диаграммы классов для индивидуального задания с использова-

нием всех принятых в сообществе программистов соглашений (приватность свойств, использование инкапсуля-
ции, наследования, полиморфизма);

(c) осуществите автоматическую генерацию исходного кода на выбранном вами языке программирования;

(d) допишите программу в соответствии с вашим заданием (проверять корректность исходных данных не требуется).

Варианты задания:

1 Товары Интернет-магазина – книги и диски. Все товары определяются ценой, книги имеют название, автора,

количество страниц; диски – название, количество треков. Выведите на экран все товары со стоимостью меньше
100 рублей.

2 Преподаватели определяются ФИО. Для тех, кто имеют диссертацию дополнительно вводится ее название; для

остальных – стаж работы. Вывести всех преподавателей, у которых ФИО начинается на букву «А».

3 Телефоны определяются названием модели. Проводные телефоны дополнительно определяются типом номеро-

набирателя (диск или кнопки); а беспроводные – дальностью действия радиосигнала. Вывести все телефоны,
название которых начинается на «А».

4 Покатушки определяются названием и расстоянием. Однодневные катушки дополнительно определяются пла-

новым временем поездки (в часах). Многодневные катушки определяются количеством дней и категорией слож-
ности похода (от 1 до 6). Вывести все покатушки длиной более 100 км.

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

стихов. Выведите информацию о всех композициях, у которых композитор начинается на букву «А».

6 Олимпиада определяется названием. Если олимпиада участвует в программе приема в ВУЗы дополнительно

указывается уровень олимпиады (1–3), если олимпиада – этап всероссийской, то указывается название этапа
(школьная, окружная, региональная, всероссийская), в остальных случаях – размер призового фонда. Выведите
все олимпиады, название которых начинается на букву «А».

7 Проездной билет определяется стоимостью. Билет на количество поездок определяется количеством поездок.

Билет на неограниченное количество поездок определяется сроком действия (1 день, 5 дней, 10 дней, 15 дней,
месяц, три месяца, 6 месяцев, год). Выведите информацию о билетах, стоимостью меньше 300 рублей.

8 Информация о студенте определяется ФИО. Для студентов, не имеющих автомата, указывается балл, получен-

ный на экзамене (2–5); для студентов, имеющих автомат указывается основание (олимпиада или контрольные
работы). В случае, если контрольная работа – то также указывается средний балл за к/р. Выведите всю инфор-
мацию о студентах с фамилией, начинающейся на буквы от А до К.

9 Сотовый телефон определяется названием. Для смартфонов указывается операционная система. А для других

телефонов – наличие браузера. Выведите информацию о телефонах, название которых содержит слово «Nokia».

10 Куртка определяется названием модели, наличием капюшона. Для мембранных курток указывается степень

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

11 Жесткий диск определяется названием и емкостью. Внешние жесткие диски определяются дополнительно на-

личием системы, смягчающей последствия падения. Внутренние жесткие диски – размером (2.5/3.5 дюйма).
Выведите информацию о дисках, емкостью больше 200 Гб.

12 Велосипед определяется названием модели. Горному велосипеду соответствует количество скоростей, BMX –

тип конструкции (фривил, кассетная, фрикостер). Выведите информацию обо всех велосипедах, содержащих в
названии «Norco».

13 Электронная книга определяется названием и размером экрана. Для EInk-дисплея указывается поколение (pearl,

vizplex); для LCD – количество поддерживаемых цветов. Выведите информацию о всех книгах с размером экрана
не менее 7 дюймов.

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

крепления; для автомобильных – поддержка отображения пробок и наличие радар-детектора. Выведите инфор-
мацию обо всех GPS с размером экрана менее 7 дюймов.

15 Пылесос определяется названием модели. Для обычного пылесоса указывается мощность, для пылесоса-робота

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

15