Исследование возможностей стандартных классов VAST. Основы визуального программирования в VAST

 

Государственное образовательное учреждение высшего профессионального образования

«Московский государственный институт радиотехники, электроники и автоматики (технический университет)» МИРЭА








Объектно-ориентированное программирование

Отчет по лабораторной работе №2

Исследование возможностей стандартных классов VAST.

Основы визуального программирования в VAST




Выполнил

Студент группы ИТВ-2-10

Ковалев А.В.

Проверил

Ст. преп. каф. ВТ

Смирнов С.С.






Москва - 2012г.

Содержание


1. Цель лабораторной работы

. Общая постановка задачи

. Конкретизация задачи

. Решение

.1 Исследование метода «detect: ifNone:» класса Set

.1.1 Разработка визуальной композиции

.1.2 Разработка метода «for:»

.1.3 Тестирование программы

.2 Исследование метода «to:by:do:» класса Number

.2.1 Разработка визуальной композиции

.2.2 Разработка метода «for:by:do:»

.2.3 Тестирование программы

4.3 Исследование метода «copy: ReplaceFrom: to: with:» класса OrderedCollection

.3.1 Разработка визуальной композиции

.3.2 Разработка пользовательского метода «for: copyReplaceFrom: to: with:»

.3.3 Тестирование программы


1. Цель лабораторной работы


Исследовать функциональные возможности стандартных классов представления данных на примерах использования избранных методов.

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


2. Общая постановка задачи


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

Величины (Magnitude) и его подклассы:

ПараКлючЗначение (Association);

Символ (Character);

Дата (Date);

Время (Time);

Число (Number) и его подклассы

Наборы (Collection) и его подклассы:

НаборСДублями (Bag);

НаборБезДублей (Set);

Словарь (Dictionary);

УпорядоченныйНабор (OrderedCollection);

ОтсортированныйНабор (SortedCollection);

Массив (Array);

Строка (String);

и т.д.

Среди множества публичных методов данных классов выбрать несколько (3-4 штуки), принадлежащих разным классам, и продемонстрировать их работу, для чего разработать в среде VAST приложение, обладающее оконным пользовательским интерфейсом, обеспечивающим:

ввод данных, необходимых для тестирования выбранных методов;

вызов выбранных методов и передачу им необходимых параметров;

вывод результатов обработки данных.

3. Конкретизация задачи


В соответствии с пунктом 2, написать программу для тестирования следующих выбранных методов:

Класс Set метод экземпляра

Detect:ifNone:

"Answer the first element of the receiver forthe evaluation of the one argument block, aBlock returns true.no such element is detected, answer the result of evaluatingwith no arguments.if aBlock is not a one-argument Blockif aBlock does not evaluate to a Booleanif no element is found and exceptionBlock is not aargument Block."

Number vtnjl 'rptvgkzhf to^by^do

"Answer an Interval from the receiver up toNumber, stop incrementing by a Number,. Evaluate the Block, aBlock, for eachof the interval. Answer stop.if stop is not a type of Number.if step is not a type of Number.if aBlock is not a one-argument Block."


Класс OrderedCollection метод экземпляра copyReplaceFrom: start to: stop with: replacementCollection

"Answer a SequenceableCollection which is a copy of the receiver in which the elements etween the Integer index start and theindex stop have each been replaced by the elementsthe SequenceableCollection replacementCollection. This methodbe used to perform insertion, replacement and to append.and stop are first adjusted to be within the bounds of the. If stop > start then the elements at indices are replacedreplacementCollection. If stop < start, then this is an insertion.will occur before the element at the index represented by. If start > receiver size, this means append after the last.if start in not an Integerif stop is not an Integer."


4. Решение


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

Постановка задач не предполагает использование сложных моделей данных или алгоритмов их обработки, поэтому все задачи могут быть решены в пределах одного класса с пользовательским интерфейсом. Создадим класс как визуальный компонент и назовем его Laba1 (рис. 1).


Рис. 1


.1 Исследование метода detect:ifNone: класса Set


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


.1.1 Разработка визуальной композиции

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

Рис. 2


Описание использованных связей:

. Связь «событие действие» между событием «clicked» кнопки и методом «add:» элемента OrderedCollection.

. Связь «атрибут как параметр» между свойством «object» текстового поля ввода и параметром «value» связи №1.

. Связь «событие действие» между событием «clicked» кнопки и свойством «object» элемента Label.

. Связь «параметр код» между свойством «anObject» связи №3 и методом «for:».

. Связь «атрибут как параметр» между свойством «self» элемента OrderedCollection и параметром «parametr1» связи №4.


.1.2 Разработка метода «for:»

Вызов исследуемого метода detect:ifNone: класса Set осуществим посредством пользовательского метода «for:», который имеет следующий код (рис. 3)


Рис.№3


Метод получает значение массива collection. Далее этому массиву отправляется сообщение asSet которое убирает все повторения элементов. Затем идёт исследуемый метод detect:ifNone: который, для примера, ищет в массиве элемент «6», и возвращает «Yes» если такой элемент найден и «No» если такой элемент не обнаружен.


.1.3 Тестирование программы

Введем тестовые данные для тестирования работы программы (числа 1 3 6) (рис. 4).


Рис. 4


Получен верный результат.


.2 Исследование метода to:by:do: класса Number


Метод применяется для обработки числа, в качестве аргумента требует значение, до которого будет вестись счёт, значение шага (на которое будет увеличиваться исходное число с каждым шагом) и элемент aBlock, писывающий действие на каждом шаге. Первые 2 параметра, а так же обьект, к которому этот метод применяется должны быть класса Number.


.2.1 Разработка визуальной композиции

Для тестирования метода необходимо создать 3 текстовых окна: для исходного элемента и для параметров stop и step. А также Label для вывода результата и кнопку, запускающую метод.


Рис. 5

. Связь «событие действие» между событием «clicked» кнопки и свойством «value» элемента Label.

. Связь «параметр код» между свойством «anObject» связи №1 и методом «from:to:by:».

Связь «атрибут как параметр» между свойством «object» текстового поля ввода и параметром «parametr1» связи №2.

. Связь «атрибут как параметр» между свойством «object» текстового поля ввода и параметром «parametr2» связи №2.

. Связь «атрибут как параметр» между свойством «object» текстового поля ввода и параметром «parametr3» связи №2.


.2.2 Разработка метода «from:by:to:»

Вызов исследуемого метода «to:by:do:» класса number осуществим посредством пользовательского метода «from:by:to:», который имеет следующий код (рис. 6)


Рис. 6


Данный метод будет применяться к первому заданному параметру «start» и иметь заданные аргументы «stop» и «step». Данный метод, для примера, за счёт переменной «sum» и действия описанного в аргументе «do:» будет находить сумму всех элементов начиная от «start», заканчивая «stop», с шагом «step» между ними.

Для примера start = 1, stop = 4, step = 1


1 + 2 + 3 + 4 = 10


.2.3 Тестирование программы

Запустим программу и заполним исходные данные (рис. 7).


Рис. 7


Результат верен. (рис.8).


Рис. 8


4.3. Исследование метода copyReplaceFrom:to:with: класса OrderedCollection


Метод обрабатывает массив. В параметры метода входят 2 числа и 1 массив, с заменяемыми значениями. Сам метод удаляет в обрабатываемом массиве элементы начиная с 1го парметра, до 2го параметра и вставляет на это место элементы массива 3го параметра.


.3.1 Разработка визуальной композиции

Для тестирования метода нужны 2 массива и 2 числа, зададим 2 массива с помощью 2 невизуальных элементов OrderedColelction и добавим каждому систему добавления элементов, в виде кнопки и текстового поля ввода, 2 числа зададутся прсотыми текстовыми полями. Далее потребуется Label для вывода результата и кнопка для запуска пользовательского метода «for: copyReplaceFrom: to: :»


Рис. 9

Используемые связи:

. Связь «событие действие» между событием «clicked» кнопки и методом «add:» элемента OrderedCollection1.

. Связь «атрибут как параметр» между свойством «object» текстового поля ввода и параметром «value» связи №1.

. Связь «событие действие» между событием «clicked» кнопки и методом «add:» элемента OrderedCollection2.

. Связь «атрибут как параметр» между свойством «object» текстового поля ввода и параметром «value» связи №3.

. Связь «событие действие» между событием «clicked» кнопки и свойством «value» элемента Label.

. Связь «параметр код» между свойством «anObject» связи №5 и методом «for: copyReplaceFrom: to: with:»

Связь «атрибут как параметр» между свойством «object» текстового поля ввода и параметром «parametr2» связи №6.

. Связь «атрибут как параметр» между свойством «object» текстового поля ввода и параметром «parametr3» связи №6.

. Связь «атрибут как параметр» между свойством «self» элемента OrderedCollection1 и параметром «parametr1» связи №4.

. Связь «атрибут как параметр» между свойством «self» элемента OrderedCollection2 и параметром «parametr4» связи №4.


4.3.2 Разработка метода «for: copyReplaceFrom: to: with»

Вызов исследуемого метода «copyReplaceFrom:to:with:» класса number осуществим посредством пользовательского метода «for: copyReplaceFrom: to: with», который имеет следующий код (рис. 10)

Рис. 10

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

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


.3.3 Тестирование программы

Введем начальные данные, первый массив (1 2 3 4 5), второй массив (0 0) и зададим удаление со 2 элемента по 4 (рис. 11).


Рис. 11

Тестирование показало, что работа метода корректна. (рис. 12).


Рис. 11

1.


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

Больше работ по теме:

КОНТАКТНЫЙ EMAIL: [email protected]

Скачать реферат © 2017 | Пользовательское соглашение

Скачать      Реферат

ПРОФЕССИОНАЛЬНАЯ ПОМОЩЬ СТУДЕНТАМ