Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
УП Технология программирования.doc
Скачиваний:
20
Добавлен:
11.06.2015
Размер:
1.69 Mб
Скачать

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

Шаблоны используются специальными методами (см. п. 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" и т.д.; так что шаб* – эквивалент (шаб+)?

Пример: Удаление лишних пробелов с помощью шаблонов

  1. Метод split: n = s.split(/ +/).join(" ");

  2. Метод 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++.