-->

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

На нашем литературном портале можно бесплатно читать книгу Прикладные свободные программы и системы в школе, Отставнов Максим-- . Жанр: Программное обеспечение. Онлайн библиотека дает возможность прочитать весь текст и даже без регистрации и СМС подтверждения на нашем литературном портале bazaknig.info.
Прикладные свободные программы и системы в школе
Название: Прикладные свободные программы и системы в школе
Дата добавления: 16 январь 2020
Количество просмотров: 211
Читать онлайн

Прикладные свободные программы и системы в школе читать книгу онлайн

Прикладные свободные программы и системы в школе - читать бесплатно онлайн , автор Отставнов Максим

Курс лекций, включенных в брошюру, знакомит читателя с популярными свободными программами и системами, полезными при преподавании информатики в средней школе. В обзор вошли основы открытых операционных систем, сведения о пакете «офисных» программ OpenOffice.org, коммуникационном пакете Mozilla, графическом редакторе GIMP, современных графических средах GNOME и KDE и других программах.

Использован текст лекций, публиковавшихся автором в приложении к газете «Первое сентября» «Информатика» (http://inf.1september.ru) в 2002-3 г., материалы брошюры «Прикладные свободные программы в школе» (М.: 2003 г.), а также фрагменты статей, ранее публиковавшихся в журналах «Компьютерра» и «Домашний компьютер».

Материалы, представленные в этой книге, также доступны в Интернет на странице www.otstavnov.com/fsft на условиях Свободной лицензии ГНУ на документацию (GNU FDL). Все прочие права сохраняются за автором.

Внимание! Книга может содержать контент только для совершеннолетних. Для несовершеннолетних чтение данного контента СТРОГО ЗАПРЕЩЕНО! Если в книге присутствует наличие пропаганды ЛГБТ и другого, запрещенного контента - просьба написать на почту [email protected] для удаления материала

1 ... 19 20 21 22 23 24 25 26 27 ... 47 ВПЕРЕД
Перейти на страницу:

В учебной обстановке, не ориентированной на профессиональную подготовку, такого императива, полагаем, нет, поэтому методисты и преподаватели вольны выбрать наиболее адекватный инструмент для демонстрации возможностей текстовых редакторов, если задача состоит только в знакомстве учащегося с таковыми. Выбор огромен, но остановится он, скорее всего, или на «vi», или на «Emacs».

Редактирование «без редакторов»

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

Прикладные свободные программы и системы в школе - _1_71.png
Рис. 1-71

Допустим, в файле note сохранен текст записки:

В мае 2001 г. в Кремле состоится встреча с ветеранами Великой отечественной войны.

Откроет встречу Президент Российской Федерации Борис Ельцин.

Если ситуация изменилась (и мы отдаем себе отчет, как именно), можно открыть файл с этим текстом в текстовом редакторе, например, vi (Рис. 1), и издать команду:

:s/Борис Ельцин/Владимир Путин/g

Текст (предсказуемо) приобретет вид:

В мае 2001 г. в Кремле состоится встреча с ветеранами Великой отечественной войны.

Откроет встречу Президент Российской Федерации Владимир Путин.

Однако, то же самое действие можно выполнить и «без редактора», а точнее, без интерактивного редактора, с помощью редактора потокового. Стандартный потоковый редактор называется sed, и синтакис его команд схож с синтаксисом командного режима стандартного интерактивного редактора vi, команда при этом издается непосредственно из командной строки:

$sed -n 's/Борис Ельцин/Владимир Путин/g' note

Если у нас подготовлен не один файл, а множество (например, note.1, note.2, note.3), и нужно внести в них единообразные замены (и ничего не пропустить, и нигде не ошибиться), мы обойдемся также всего одной командой.

$sed -n 's/Ельцин/Березовский/g' note.*

Если файлов будет тысяча, а требуемые изменения будут посложнее, нам, скорее всего, понадобится опять-таки всего одна команда (хотя, возможно, и потребуется серьезное изучение синтаксиса). Это называется потоковым редактированием, и оно интенсивно применяется, например, для наложения «заплаток» на исходные тексты программ (однако, как было продемонстрировано, с успехом может использоваться и для обработки текста на естественном языке).

Автоматизированная обработка текстов

ОС «Юникс» была во многом «рождена для обработки текстов» (прежде всего, это была система для программистов, а программы – это тексты). Набор служебных программ (утилит) современных стандартных ОС продолжает эту традицию, и в их составе можно найти десятки программ, ориентированных на работу с текстом. Многие из них (но не все) являются построчно-ориентированными, то есть текст понимается как последовательность строк.

Команда «grep» выводит строки, содержащие заданную подстроку, команда «sort» сортирует строки по алфавиту, «uniq» удаляет неуникальные (дублирующиеся) строки, «split» разделяет файлы, «cat» соединяет и т.п. Подробное описание команд потоковой обработки текста может занять отдельную толстую книгу.

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

Базовые регулярные выражения

Многими стандартными утилитами (такими как «sed», «grep», «vi») для поиска, замены, выбора текста, используются базовые регулярные выражения.

Регулярное выражение – это последовательность символов. При использовании (передаче в качестве аргумента программе или вводе в ходе сеанса редактирования) регулярное выражение (шаблон) обычно [60] окружается ограничителями – двумя одинаковыми символами, обозначающими его начало и конец, но не являющимися частью самого выражения. За исключением особых случаев в качестве ограничителей принято брать прямую косую черту (/, слэш), она окружает выражения и во всех нижеприведенных примерах.

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

В буквальном значении символ автонимен, т.е. обозначает сам себя. /а/ обозначает букву «а», /слово/ означает слово «слово».

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

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

Квадратные скобки ([ и ]) так же, как и при «глоббинге», используются для задания списков и диапазонов.

Знак каретки (^) имеет специальное значение в первой позиции внутри квадратных скобок. В этом случае он означает отрицание: /[А-Яа-я]/ соответствует «любой букве русского алфавита», а /[^А-Яа-я]/ – «любому символу, кроме букв русского алфавита». Чтобы включить его в список, достаточно поместить его в любую другую позицию: /[~`^]/ – это «тильда, апостроф или знак каретки».

Специальные значения, которые слишком сложны, чтобы их здесь рассматривать, в первой позиции внутри квадратных скобок имеют также: точка (.), знак равенства (=) и двоеточие (:).

Каретка в начале выражения означает начало строки: ^T найдет заглавное «Т», начинающее строку. Подобно этому знак доллара ($) в конце выражения означает конец строки.

Звездочка тоже используется в значении «нуля или более вхождений символа», но по-другому – для этого она должна следовать за таким символом. Шаблон /A*/ соответствует «A», «AA», «AAA» и т.д. Звездочка может следовать и за выражением, например, /[А-Яа-я]*/ означает «любую последовательность букв русского алфавита». Любая последовательность любых символов может быть обозначена /.*/.

Обратная косая черта (, «бэкслэш») «экранирует» следующий за нею символ, то есть отменяет его специальное значение. /./ означает точку, /*/ – звездочку, а /\/ – обратную косую черту. Обратная косая черта, за которой следует цифра, также имеет специальное значение, которое здесь не рассматривается.

Кроме того, регулярные выражения могут включать скобочные конструкции. В качестве скобок используются последовательности ( и ) (это совершенно нелогичное обратное (не отменяющее специальное значение следующего символа, а, наоборот, придающее ему специальное значение) значение бэкслэша обусловлено чисто историческими причинами: скобочные выражения вводились в синтаксис регулярных выражений, когда он уже устоялся). Например, шаблон /(аб)*/ соответствует строкам «аб», «абаб», «абабаб» и т.д. Скобочные конструкции могут быть вложенными.

1 ... 19 20 21 22 23 24 25 26 27 ... 47 ВПЕРЕД
Перейти на страницу:
Комментариев (0)
название