- •Федеральное государственное учреждение
- •©Российская таможенная академия, 2008
- •Ростовский филиал
- •© Крицкий с.П.
- •Содержание
- •Введение
- •Основные понятия программирования
- •Классификация языков программирования
- •Характеристика систем программирования на языкахJavaScript/Jscript
- •Типы значений в языкеJavaScript
- •Числовые литералы и значения и их организация в памяти Литералы целых чисел
- •Литералы вещественных чисел (чисел с плавающей точкой)
- •Логические литералы и значения и их организация в памяти
- •Строковые литералы, значения и их организация в памяти
- •Массивы и их организация в памяти. Многомерные массивы, матрицы
- •Записи и их организация в памяти
- •Операции над различными типами данных
- •Арифметические операции
- •Строковые операции
- •Логические операции
- •Операции сравнения
- •Операции выборки
- •Переменные, выражения, условия Переменные
- •Выражения
- •Вызовы функций и методов
- •Порядок вычисления выражения
- •Операции присваивания
- •Автоматическое преобразование типов значений. Функции преобразования и проверки типов
- •Ввод и вывод значений
- •Понятие оператора. Простые и составные операторы. Блок-схемы программ и модулей Операторы и модули
- •Блок-схемы
- •Составные операторы (последовательность, условные). Их синтаксис, блок-схемы и правила выполнения Последовательность операторов
- •Условный операторif … else
- •Операторы цикла (while, do-while и for). Их синтаксис, блок-схемы и правила выполнения. Операторыbreakиcontinue Оператор циклаwhile
- •Операторbreak
- •Операторcontinue
- •Оператор циклаdo…while
- •Оператор циклаfor
- •Функции. Определение и вызов. Выход из функцииreturn. Массив аргументовarguments Определение функции – операторfunction
- •Выход из функции – операторreturn
- •Определение переменной – операторvar
- •Отладка программ. Трассировка, отладочная печать. Тестирование программы
- •Основные понятия объектного подхода
- •ОбъектMath, назначение, свойства, методы. Значения NaN, Infinity, null, undefined.
- •Свойства объектаMath– константы:
- •Методы объекта Math
- •Специальные константы
- •Массивы как объекты в языкеJavaScript. Конструкторы, свойства и методы массивов. Задача копирования массива вJavaScript
- •Конструктор объектов типаArray
- •Свойство объектов типаArray
- •Методы объектов типаArray
- •Типичные задачи с массивами: линейная алгебра
- •Скалярное произведение векторов
- •Произведение матриц
- •Транспонирование квадратной матрицы
- •Типичные задачи с массивами: сортировка. Сортировка вставками. Методsort
- •Сортировка вставками
- •Методsort
- •Типичные задачи с массивами: поиск. Двоичный поиск в упорядоченном массиве
- •Обработка строк. Конструкторы, свойства, методы строк
- •Конструктор объектов типаString
- •Свойство объектов типаString
- •Методы объектов типаString
- •Шаблоны и регулярные выражения. Их использование методами строк.
- •Простые шаблоны
- •Составные шаблоны
- •Пользовательский интерфейс программ. Общее понятие
- •Html-страница как средство интерфейса для программ на языкеJavaScript. Тэги и атрибутыHtml
- •ОбъектыHtml-страниц иWeb-браузера, их свойства и методы. События и их обработка Объектные модели
- •Объекты страницы
- •Объекты браузера
- •СтилиHtml-объектов. Свойства позиционирования объектов страницы
- •Таймеры, примеры использования
- •Понятие ссылочной структуры данных. Односвязный список. Запись списков с помощью литералов.
- •Понятие стека. Функции для стека
- •Двухсвязный список, его структура
- •Понятие очереди и дека, их организация
- •Понятие дерева как ссылочной структуры. Бинарные деревья. Представление дерева литералом
- •Обработка деревьев. Рекурсия
- •Обход дерева «в глубину»
- •Обход дерева «в ширину»
- •Файлы и файловая система
- •Работа с текстовыми файлами
- •Объекты типа TextStream
- •Управление файлами и папками
- •Коллекции дисков, папок и файлов
- •Технология и методология создания программ
- •Жизненный цикл программы
- •Организация процесса разработки
- •Методологии проектирования программ
- •Заключение
- •Приложение 1. Теги, атрибуты и соответствующие свойства Общая структура html-документа
- •Форматирование текста
- •Вставка графики
- •Гиперссылки и карты
- •Приложение 2. События вHtmLи их источники
- •Приложение 3. Атрибуты и свойства стилейCss
- •Приложение 4. Работа с файловой системой вJScript
- •Свойства, методы и коллекции объектов файловой системы
- •Список литературы
- •Словарь терминов
- •If (условие) оператор1 [else оператор2]
- •Основы программирования
Шаблоны и регулярные выражения. Их использование методами строк.
Шаблоны используются специальными методами (см. п. 26) для поиска подходящих (matched) подстрок в строке. Каждый шаблон определяет множество подходящих строк.
Шаблоны бывают:
полные («регулярные выражения») – аргументы методов,
простые – определяют односимвольные подстроки,
составные – построены из простых с помощью специальных операций.
Дальше под шаблоном будем понимать только простые и составные шаблоны, а полные шаблоны будем называть регулярными выражениями.
Регулярное выражение – это одно из двух:
строка (если литерал, то в кавычках)
/шаблон/[уточнение]
Уточнение – одно из трёх:
g искать везде (globally search)
i игнорировать регистр (ignore case)
gi искать везде, игнорируя регистр
Простые шаблоны
символ совпадает только с самим собой
. точка, совпадает с любым символом, кроме "\n"
[сим1сим2…симn] совпадает с любым из указанных символов, но только с одним (пробелы также рассматриваются как возможные символы)
[сим1–сим2] совпадает с любым символом из указанного интервала (но только с одним)
\символ – совпадает со спецсимволом или знак \ «экранирует» следующий символ:
\n совпадает с символом новой строки "\n"
\s «пробельный» символ – эквивалент шаблона [\f\n\r\t\v]
\d совпадает с цифрой (digit – цифра) – эквивалент шаблона [0‑9]
\w совпадает с символом слова – эквивалент шаблона [a-zA-Z0-9_]
\\ совпадает с символом "\"
\. совпадает с символом "."
\/ совпадает с символом "/"
\| \? \+ \* \( \) \[ \] и т.д.
Составные шаблоны
шаб1шаб2, или (шаб1)шаб2 , или шаб1(шаб2), или (шаб1)(шаб2) – совпадает со строкой, начало которой совпадает с шаб1, а конец – с шаб2; скобки ставятся для разграничения шаблонов, если нужно
шаб1|шаб2 – совпадает со строкой, совпадающей с шаб1 или с шаб2; скобки ставятся для соединения шаблонов, если нужно; так, [abcd] – эквивалент a|b|c|d или [a-d]
шаб? – совпадает с одной строкой, совпадающей с шаб, или с пустой строкой – эквивалент (шаб|)
шаб+ – совпадает с последовательностью строк, каждая из которых совпадает с шаб; так zo+ совпадает с "zo", с "zoo", с "zooo" и т.д., но не с "z" (операция + применяется к о, а не к zo)
шаб* – совпадает пустой строкой или с последовательностью строк, каждая из которых совпадает с шаб; так zo* совпадает с "z", с "zo", с "zoo", с "zooo" и т.д.; так что шаб* – эквивалент (шаб+)?
Пример: Удаление лишних пробелов с помощью шаблонов
Метод split: n = s.split(/ +/).join(" ");
Метод replace: n = s.replace(/ +/g," ");
Пользовательский интерфейс программ. Общее понятие
Интерфейсом называется совокупность средств и методов взаимодействия элементов системы. В компьютерных системах выделяют:
интерфейс между устройствами – аппаратный интерфейс,
интерфейс между устройствами и программами – программно-аппаратный интерфейс,
интерфейс между программами, программными модулями – программный интерфейс,
интерфейс между программой или устройством и пользователем – пользовательский интерфейс.
Пользовательский интерфейс предполагает обмен информацией и физическими воздействиями между человеком и программой через посредство специальных программно-аппаратных средств – интерфейсных подсистем (устройств ввода-вывода, их адаптеров и драйверов и т.п.).
По физическому способу взаимодействия пользовательский интерфейс может быть визуальным, акустическим, сенсомоторным, тактильным. В большинстве программ в настоящее время преобладает визуальный способ отображения информации на экране – экранный интерфейс. Все другие формы взаимодействия отображаются на экране и управляются с использованием экрана. На экране отображается текст, вводимый с клавиатуры, специальные устройства – координатные указатели (мыши, джойстики, тачпады и пр.) – предназначены для выполнения различных манипуляций на экране, сам экран становится чувствительным к касаниям (тачскрин – сенсорный экран) и способным тактильно или акустически отвечать на касания вибрацией.
Известны следующие виды экранного интерфейса:
текстовый или консольный, при котором происходит только обмен текстовой информацией (пользователь вводит текст с клавиатуры, сочетание интерфейсных устройств дисплей-клавиатура называлось консолью);
псевдографический, когда с помощью символов псевдографики можно изобразить на экране рамки, окна, кнопки, полосы прокрутки, размещать в них текст, активировать их с помощью клавиши Tab или мыши;
графический, в котором элементами интерфейса являются произвольные визуальные объекты, построенные из пикселов, а не из символов.
Многие операционные системы поддерживают текстовый интерфейс. Так, в Windows XP можно вызвать консольное окно, запустив программу cmd.exe из папки WINDOWS/system32 на системном диске. Этой консолью пользуются обычно только системные администраторы. ОС Unix обладает более развитым текстовым интерфейсом, поэтому он более популярен среди обычных программистов. В текстовом интерфейсе впервые появилось понятие меню и контекстного меню, а также понятие «горячих клавиш». Эти средства сохранились и получили развитие и в последующих видах интерфейса.
Псевдографический интерфейс ввёл такие понятия, как окно задачи (программы), диалоговое окно, полосы прокрутки и прогресса выполнения, элементы управления – поля и области ввода и вывода текста, кнопки, списки выбора, флажки, счётчики, гиперссылки и т.п., составляющие важную часть и более позднего графического интерфейса. Было введено и новое средство программирования – события и их обработка. Примером программы с псевдографическим интерфейсом является файловый менеджер Norton Commander для операционной системы DOS. Удобство и популярность этой программы были так велики, что её аналоги Far и Windows Commander часто используются в графических ОС Windows вместо стандартного файл-менеджера «Проводник».
Графический интерфейс современных многозадачных операционных систем и прикладных программ взял на вооружения все лучшие достижения в этой области и новый, объектный подход к программам. Он позволяет использовать не только плоскую, двумерную графику (2D-графику), но и объёмную, трёхмерную (3D-графику). Графический интерфейс активно развивается и трудно предсказать его будущее.
Для программирования графического интерфейса в каждом языке программирования созданы средства описания интерфейса, а также средства его визуальной разработки, например,Visual Studio C++.
