Разработка и экспериментальное исследование редактора схем программ
Дипломная работа - Компьютеры, программирование
Другие дипломы по предмету Компьютеры, программирование
bsp;
6.3.4.2 Побитовые операторы
Побитовые операторы: 1) & - and, 2) | - or, 3) ^ - xor, 4) >>, >>>, << - побитовые сдвиги.
Все побитовые операции работают с 4-байтовым signed int.
Операция >>> сдвигает побитово вправо, а слева дополняет нулями. В результате эффект тот же, что и при простом сдвиге >> для положительных чисел.
Для отрицательных чисел - все по-другому. Например, -9 в битовом виде выглядит как: 11111111111111111111111111110111.
Операция >>> даст эффект: -9 >>> 2 будет в битовом виде 00111111111111111111111111111101, то есть 1073741821.
.3.4.3 Сравнение
Операторы сравнения: 1) ==, 2) !=, 3) =, 7)===, 8)!==.
Операторы больше-меньше также работают со строками, сравнивая их лексикографически, т.е посимвольно, например:
"B">"a",
"bc" < "bd".
Сравнение = = делается с приведением типов, а = = = без приведения типов, например:
== false // верно,
!== false //типы разные.
6.3.5 Массивы
Javascript поддерживает[17] два вида структуры "массив":
) ассоциативный массив (хеш), где данные хранятся по произвольному ключу;
) числовой массив Array, где данные хранятся по номерам.
Javascript - очень гибкий язык, поэтому технически в Array можно хранить произвольные ключи, как в Object. Но лучше использовать типы по назначению.
Для хранения данных по номеру предназначен тип Array, например:
var arr = new Array(),.test = 5,[1] = "new".
В типе Array есть специальные методы, ориентированные именно на работу с числовыми ключами.
.3.5.1 Создание и изменение массивов
Есть два эквивалентных способа создания массива:
var a = new Array(),a = [].
Или сразу со значениями
var a = new Array("a", 1, true), a = ["a", 1, true].
Эти способы работают одинаково, кроме объявления вида new Array(10), когда у конструктора есть единственный аргумент-число.
Такое объявление создаст пустой массив (все элементы undefined) длиной 10. По возможности, не используйте new Array.
Отсчет элементов в массиве начинается с нуля.
.3.5.2 Перебор элементов
Перебор элементов обычно (когда индексы непрерывные) осуществляется простым циклом:
var arr = [ "array", "elements", "here" ],(var i=0; i<arr.length; i++) {
... сделать что-то с arr[i] ...
}.
Если индексы - с разрывами, то перебор осуществляется так же, как в объектах:
var arr = [],[1] = 123,[9999] = 456,(var i in arr) {(!arr.hasOwnProperty(i)) continue;
... сделать что-то с arr[i] ...
}.
6.3.6 Функции
6.3.6.1 Создание функций
Существует два способа создать функцию[18]. Основное отличие в результате их работы - в том, что именованная функция видна везде, а анонимная - только после объявления. Способы создания функций представлены в таблице 6.2.
Таблица 6.2 - Способы задания функций
Именованные (FunctionDeclaration)Анонимные (FunctionExpression)function имя(параметры) { ... }var имя = function(параметры) {тАж} ... var имя = new Function(параметры, ...)Именованные функции доступны везде в области видимостиАнонимные - доступны только с момента объявления. Синтаксис new Function используется редко, в основном для получения функции из текста, например, динамически загруженного с сервера в процессе выполнения скриптов./* функция sum определена ниже */ var a = sum(2,2) function sum(x,y) { return x+y }/* будет ошибка, т.к sum еще не существует */ var a = sum(2,2) var sum = function(x,y) { return x+y }
.3.5.2 Функции - объекты
В javascript функции являются полноценными объектами встроенного класса Function. Именно поэтому их можно присваивать переменным, передавать и у этих функций есть свойства, например:
function f() {...},.test = 6,
...
alert(f.test) // 6.
Свойства функции доступны и внутри функции, так что их можно использовать как статические переменные, например:
function func() {
var funcObj = arguments.callee
funcObj.test++
alert(funcObj.test),
},
func.test = 1,
func(),
func().
В начале работы каждая функция создает внутри себя переменную arguments и присваивает arguments.callee ссылку на себя.
.3.5.3 Параметры функции
Функции можно запускать с любым числом параметров.
Если функции передано меньше параметров, чем есть в определении, то отсутствующие считаются undefined.
Непосредственно перед входом в тело функции, автоматически создается объект arguments, который содержит:
) аргументы вызова, начиная от нуля;
) длину в свойстве length;
) ссылку на саму функцию в свойстве callee.
7. Описание системы
Нами было создано приложение программа-редактор схем. С помощью этой программы можно создавать, сохранять, редактировать блок-схему программы, а также выполнять исходный код, который генерируется по ходу редактирования схемы. Главное окно приложения показано на рисунке 7.1:
Рисунок 7.1 - Внешний вид главной формы приложения
На главной форме приложения расположены следующие компоненты, определяющие функциональность программы:
) главное меню;
) панель инструментов и операций;
) окно с исходным кодом программы, соответствующей построенной схеме;
) окно с результатом выполнения программы.
.1 Описание главного меню
Главное меню программы имеет три раздела Файл, Правка и Код программы.
Раздел Файл представлен на рисунке 7.2:
Рисунок 7.2 - раздел Файл главного меню программы
В разделе Файл главного меню приложения есть следующие функции:
) новая схема - создать новую схему;
) открыть - открыть существующую схему из формата XML;
) сохранить - сохранить блок-схему в уже открытый файл (если файл был открыт) иначе сохранить