
KTNI_Козлов(ответы) / Linux
.pdf24. Язык Perl. Основные правила программирования. Элементы Perl: модули, ввод и вывод данных, дескрипторы, переменные, массивы и списки. Понятие ассоциативных массивов. Управляющие структуры. Операции сравнениния и циклы. Ответ:
Язык программирования Perl (Practical Extraction and Report Language) - это язык сценариев, который изначально предназначался для формирования отчетов и обработки файлов большого объема. Этот язык реализован в виде ядра, к которому легко добавлять новые функции. В настоящее время с помощью Perl можно проверять сетевые соединения, контролировать взаимодействие между процессами и даже управлять базами данных.
Любой оператор Perl может быть вызван из командной строки. С этой целью применяется команда perl с опцией -е. Выполняемый оператор интерпретатора заключается в одинарные кавычки. Пример:
Perl -e 'print "hello";'
Таким образом, Perl можно использовать для выполнения простых действий, подобно однострочным командам gawk. В отличие от утилиты gawk, Perl-программы по умолчанию не считывают данные из стандартного ввода. Считывание обычно задается с помощью цикла while. Пример:
cat books | perl -e 'while (<STDIN>) { if (/Dickens/) { print; }}'
Обычно операторы Perl помещаются в файл, а затем считываются и выполняются с помощью команды perl. Файлы, содержащие команды Perl, должны иметь расширение .pl. Существует два способа выполнения сценариев Perl с помощью команды perl. Согласно первому способу в командной строке интерпретатора shell указывается команда perl с именем сценария Perl. Затем интерпретатор Perl считывает и выполняет введенные команды. В следующем примере выполняется сценарий Perl под названием hello.pl:
$ perl hello.pl
Теперь рассмотрим второй способ. В файл сценария Perl помещается команда perl. В этом случае автоматически вызывается интерпретатор Perl, выполняющий введенные команды. Путь /usr/bin/perl определяет местоположение команды perl в системе OpenLinux. В других системах команда perl может находиться в каталоге /usr/local/bin. Команда which perl возвращает местоположение интерпретатора Perl в системе. В первой строке файла сценария следует указывать полное имя команды запуска интерпретатора, например:
#!/usr/bin/perl
Управляющий символ |
Описание символа |
\а |
Подача звукового сигнала |
\b |
Возврат курсора на один символ |
\cC |
Управляющая комбинация символов Control + С. Символы \cD соответствуют комбинации клавиш |
|
[Control+D] |
\f |
Переход на следующую страницу |
\e |
Символ Esc |
\n |
Переход на новую строку |
\r |
Переход в начало текущей строки (возврат каретки) |
\t |
Символ табуляции (переход к следующей позиции табуляции) |
\\ |
Символ обратной косой черты |
\" |
Кавычки |
\uC |
Переводит символ С в верхний регистр |
\lC |
Переводит символ С в нижний регистр |
\Lтекст\E |
Переводит все символы текста, находящиеся между парами символов \L и \Е, в нижний регистр |
\Uтекст\E |
Переводит все символы текста, содержащиеся между парами символов \L и \Е, в верхний регистр |
Модули Perl. Фрагменты программы на Perl можно поместить в отдельные файлы, а затем использовать в основной программе, указывая имена файлов в операторе use. Такие файлы имеют расширение .pm и называются пакетами (packages) либо модулями (modules). Чаще всего в модуль помещают набор операторов, предназначенный для решения некоторой задачи, например для обработки файла либо поиска текста. Стандартный набор модулей и пакетов Perl находится в каталоге /usr/lib/perl5. Следующий оператор языка Perl задает использование модуля find.pm, который содержит программу, аналогичную shell-команде find. Эта команда служит для выполнения поиска в каталогах.
use /usr/lib/perl5/File/find.pm;
Для использования модуля в составе сценария Perl следует ввести ключевое слово use, а затем указать полное имя модуля. Имя модуля состоит из двух частей, разделенных двумя символами двоеточия. В левой части указывается имя категории модуля, а в правой — собственно имя. Например, имя модуля, предназначенного для выполнения шифрования с помощью шифра Блоуфиш (Blowfish), имеет вид Crypt::Blowfish. Фактически эта запись служит указанием каталога, где находится модуль (в данном случае Crypt), и имени файла модуля — Blowfish.pm. Применить этот модуль в сценарии позволит следующая строка:
use Crypt::Blowfish;
Ввод и вывод в Perl. Данные для сценария Perl могут поступать из различных источников; файлов, потока стандартного ввода и каналов. Поэтому в программе необходимо идентифицировать источник входной информации. Для стандартного ввода используется дескриптор файла STDIN.
Ситуация аналогична и при выводе данных. Интерпретатор Perl может выводить информацию в файлы и каналы, а также на стандартный вывод. Дескрипторы применяются для идентификации файлов и каналов как при вводе, так и при выводе данных.
Дескриптор файла STDOUT идентифицирует стандартный вывод, а дескриптор файла STDERR используется для обозначения стандартного потока сообщений об ошибках. Сначала рассмотрим, как Perl использует стандартный ввод и вывод данных, а затем обсудим методы выполнения операций с определенными файлами.
Perl может считывать данные со стандартного ввода либо из любого указанного файла. Команда чтения входной информации состоит из символов «меньше чем» (<) и «больше чем» (>). Чтобы обеспечить чтение информации из файла, между этими символами помещается имя дескриптора файла — <MYFILE>. Для считывания данных со стандартного ввода достаточно воспользоваться дескриптором файла STDIN, который действует подобно команде read оболочки BASH shell.
<STDIN>
Чтобы воспользоваться данными, считанными с помощью оператора <STDIN>, следует присвоить их переменной. Можно обратиться к переменной, определенной пользователем, либо к переменной $_, заданной по умолчанию, как показано в следующем примере. У многих команд значением по умолчанию является значение переменной $_.
myread |
|
#! /usr/bin/perl |
|
# Программа, |
предназначенная для чтения и отображения данных, введенных с клавиатуры. |
$_ = <STDIN>; |
# Чтение данных из стандартного потока ввода |
print "This is what I entered: $_"; # Вывод считанных данных в качестве части строки.
Оператор print можно применять для записи данных в файл или в стандартный поток вывода. Имена дескрипторов файлов указываются после ключевого слова print перед выводимыми данными. Если дескрипторы файлов не заданы, оператор print помещает данные в стандартный поток вывода.
Дескрипторы файлов Perl. Для создания дескриптора файла или канала предназначен оператор open. Этот оператор имеет два аргумента: имя создаваемого дескриптора файла и имя файла. Имя дескриптора принято вводить в верхнем регистре. В качестве второго аргумента может выступать не только имя файла, но и имя переменной, содержащей название файла. Также указываются различные режимы открытия файла. По умолчанию файл открывается для чтения, но его также можно открыть для записи, для добавления данных либо для выполнения обеих операций. Ниже приведен пример синтаксиса оператора open:
open (дескриптор-файла, строка-имени-файла);
В следующем примере пользователь открывает файл reports с дескриптором REPS: open (REPS, "reports");
Довольно часто имя файла является значением переменной. Для обозначения файла в этом случае употребляются символ $ и имя переменной. В следующем примере имя файла «reports» содержится в переменной filen:
$filen = "reports"; open (REPS, $filen );
Чтобы открыть файл в определенном режиме, необходимо предварить имя файла соответствующими символами. Эти два компонента разделяются пробелом. Так, символ > употребляется, если файл должен быть открыт для записи, а символ +> — для чтения и записи. В следующем примере задано открытие файла reports для чтения и записи.
open (REPS, "+> reports");
Если для хранения имени файла используется переменная, то эта же переменная применяется для задания имени файла, как показано ниже:
open (REPS, "+> $filen");
Чтобы прочитать информацию из открытого файла, нужно указать его дескриптор между символами < и >. Дескриптор <REPS> употребляется для считывания строки из файла reports. Программа myreport открывает файл reports и выводит его содержимое на экран.
myreport.pl
#!/usr/bin/perl
# Программа чтения строк из файла reports и вывода их на экран open(REPS, "<reports"); # Открытие файла reports только для чтения while ($ldat = <REPS>) # Прочитать строку из файла reports
{
print $ldat; # Вывести последнюю из прочитанных строк на экран
}
close REPS; # Закрыть файл
Переменные и выражения Perl. Переменные Perl могут быть числовыми или строковыми. Признаком переменной в программе, как и при работе в shell, служит символ $ перед ее именем.
Операторы, например присваивания, используются как со строковыми, так и с числовыми переменными. В следующем примере переменной myname присваивается строковое значение «Larisa». Роль оператора присваивания играет символ =.
$myname = "Larisa"; $mynum = 45; $price = 54.72;
Perl поддерживает и арифметические выражения. Он допускает выполнение всех стандартных арифметических операций, производимых при работе с другими языками программирования. В качестве операндов могут выступать числовые константы, числовые переменные или другие числовые выражения. В следующих примерах переменной $mynum присваивается результат сложения двух чисел. Ее значение затем используется в другом арифметическом выражении, результат которого присваивается переменной $price.
$mynum = 3 + 6;
$price = (5 * ($mynum / 3);
Операции ++ и — выполняют инкремент и декремент содержимого переменной. Операция += увеличивает, а операция -= уменьшает Значение переменной. Например, оператор i++ эквивалентен оператору i = i + 1, а оператор i += 5 соответствует i = i + 5. Операция инкремента широко применяется в циклах.
Арифметическая операция |
Описание |
* |
Умножение |
/ |
Деление |
+ |
Сложение |
- |
Вычитание |
% |
Модуль – результат представляет собой остаток от деления |
** |
Возведение в степень |
Операции сравнения |
Описание |
> |
Больше чем |
< |
Меньше чем |
>= |
Больше или равно |
<= |
Меньше или равно |
= = |
Равно |
!= |
Не равно |
Операции инкремента и декремента |
Описание |
++ |
Увеличение значения переменной на единицу |
- - |
Уменьшение значения переменной на единицу |
Операции арифметического присваивания |
Описание |
+= |
Увеличение на определенное значение |
-= |
Уменьшение на определенное значение |
В следующем примере данные, считанные со стандартного ввода, присваиваются переменной $mydata: $mydata = <STDIN>;
Массивы и списки. Процесс создания массива в Perl состоит в том, что переменной, обозначающей массив, присваивается список значений. В чем специфика этого списка в Perl? Значения заключаются в круглые скобки и разделяются запятыми. В следующем примере представлен список из четырех значений:
(23, 41, 92, 7)
Чтобы присвоить значения списка элементам массива, необходимо предварить имя массива знаком @. Значения присваиваются в том порядке, в котором они представлены в списке.
@mynums = (23, 41, 92, 7);
Нумерация элементов массива начинается с 0, а не с 1. В следующем примере выводятся значения первого и четвертого элементов. Заметьте, что перед названием массива стоит символ $.
print $mynums[0] ; print $mynums[2] ;
Любому элементу можно присвоить новое значение. Обратите внимание: перед отдельным элементом массива ставится знак $, а не
@.$mynums[2] = 40;
Число элементов в массиве не ограничено. Для того чтобы добавить новый элемент, нужно просто присвоить ему значение. В результате выполнения следующей операции присваивания в массив mynums добавляется пятый элемент.
$myrmms [4] = 63;
С каждым массивом связана специальная переменная, обозначаемая следующим образом: # имя_массива. Значением этой переменной является текущее число элементов массива. Например, значение переменной #mynums — это число элементов в массиве mynums. В следующем примере задан вывод на экран количества элементов этого массива.
print "$#mynums";
Значения в списке, присваиваемые элементам массива, не обязательно должны иметь один тип. Это могут быть числа, строки и даже переменные. В этом случае элементы массива также будут разного типа (числовыми, строковыми и т. п.). В следующем примере элементам массива myvar присваиваются разнотипные значения.
@myvar = ("aleina", 11, 4.5, "a new car");
Символ @ употребляется вместо символа $, потому что массив не является простой переменной. Он содержит список значений, а в качестве переменных выступают отдельные элементы массива. Символ @ употребляется и во время присваивания значений одного массива другому. В следующем примере значения всех элементов массива mynums присваиваются соответствующим элементам массива newnums.
@newnums = @mynums;
Список значений массива может использоваться в строке символов, как и значение переменной. В следующем примере значения элементов массива встраиваются в строку, которая затем присваивается переменной myreport. Заметьте: в качестве префикса в имени массива @mynums употребляется знак @.
$myreport = "Here are the numbers I have: @mynums \n"; print $myreport;
Функции обработки массивов: операции над списками. В Perl существует набор функций, которые облегчают обработку массивов пользователем. С помощью простых команд можно выполнять базовые операции с массивами: получать список значений массива, сортировать элементы массива, последовательно обращаться к ним и т. д. Таким образом, массив можно рассматривать как список, а функции — как операции над списками.
Операции |
со |
скалярными |
Назначение |
массивами |
|
|
|
push (@массив, список-значений) |
Добавление элемента в конец массива |
||
pop (@массив) |
|
|
Удаление последнего элемента массива |
shift (@массив, список-значений) |
Добавление элемента в начало массива |
||
unshift (@массив) |
|
Удаление первого элемента массива |
|
sort (@массив) |
|
|
Сортировка элементов массива по возрастанию |
reverse (@массив) |
|
Сортировка элементов массива по возрастанию |
|
split (разделитель, строка) |
Разбивка строки на элементы |
||
join (разделитель, @массив) |
Объединение элементов массива в одну строку |
||
grep (@массив, шаблон) |
|
Поиск образца среди элементов массива |
|
splice (@массив, индекс) |
|
Удаление указанного элемента из массива. |
|
splice (@массив, индекс, число) |
Удаление из массива указанного элементов |
||
splice (@массив, число, 0, строка) |
Вставка в массив элемента со значением строка |
||
splice (@массив, $targv, 0, строка) |
Добавление нового элемента в конец массива |
Ассоциативные массивы. В ассоциативном массиве для индексации элементов вместо числовых значений применяются строки. Индексную строку можно считать ключевым словом, которое используется для поиска элемента. В Perl ассоциативный массив определяется с помощью символа %, указываемого перед его именем. Список присваиваемых значений состоит из пар «индексная строка—значение элемента». В приведенном ниже примере определяется ассоциативный массив city, состоящий из четырех элементов, каждый из которых имеет целочисленное значение и индексную строку в виде названия города.
%city = ('Sacramento', 4, 'Fallen', 86, 'Napa', 7, 'Alameda', 53 ) ;
Для установления ссылки на элемент ассоциативного массива применяется его индексная строка. Индексная строка заключается в одинарные кавычки и фигурные скобки (не круглые!).
print $city{'Fallon'};
Чтобы добавить в ассоциативный массив новый элемент, необходимо задать индекс в виде строки и значение этого элемента. $city{'LA'} = 45;
Признаком списка значений ассоциативного массива является символ %, который ставится перед именем массива. В следующем примере задан вывод на экран всех значений массива city:
print %city;
Операции с ассоциативными массивами |
Назначение |
keys (%ассоц.массив) |
Генерирование списка всех индексных строк в ассоц.массива |
values (%ассоц.массив) |
Генерирование списка значений всех элементов в ассоц.массива |
each (%ассоц.массив) |
Возврат значения следующего элемента и его инд.строки |
delete (%ассоц.массив, индекс-строка) |
Удаление из ассоц.массива элемента с указанным индексом |
Общие операции над массивами |
Назначение |
undef (массив) |
Удаление всего массива (скалярного или ассоциативного) |
Управляющие структуры. Управляющие структуры языка Perl подобны управляющим структурам языков gawk и С, а также интерпретатора TCSH. В Perl-сценариях используются циклы, обеспечивающие повторение команд, а также условия, которые позволяют выбирать команду из нескольких заданных.
Операции сравнения. В языке Perl для сравнения строковых и числовых значений применяются различные наборы операторов. Строковые операторы записываются в виде двухбуквенных кодов, как в интерпретаторе BASH shell, например: eq (проверка
идентичности двух строк), gt (сопоставление размеров строк). В качестве операторов сравнения числовых значений выступают символы, которые употребляются и в других языках программирования (в частности, в С): > — больше чем, = = — равно и т. д.
В операциях сравнения используются также шаблоны. Оператор строкового шаблона, =~, выполняет проверку соответствия строки шаблону. Правый операнд является шаблоном, а левый представляет собой строку. Шаблоном может быть любое регулярное выражение, что делает эту операцию универсальной.
Шаблоны сравниваются либо с заданной строкой, либо с содержимым специальной переменной — $_. Оператор шаблона состоит из двух символов «/», между которыми указывается шаблон для поиска (любое регулярное выражение): /шаблон/.
Язык Perl поддерживает логические операции И, ИЛИ и НЕ. Каждая из них имеет два варианта: стандартный и применяемый при обработке списков. К категории стандартных логических операторов принадлежат ss, | | и !. Оператор && соответствует логической операции И, || — ИЛИ, ! — НЕ.
Операции сравнения строк |
Описание |
gt |
Больше чем |
lt |
Меньше чем |
qe |
Больше или равно |
le |
Меньше или равно |
eq |
Равно |
ne |
Не равно |
Проверка файлов |
Описание |
-e |
Файл существует |
-f |
Файл существует и является обычным |
-s |
Файл не пуст |
-z |
Файл пуст и имеет нулевой размер |
-r |
Файл читаемый |
-w |
Возможна запись в файл и его модификация |
-х |
Файл исполняемый |
-d |
Именем файла является имя каталога |
-b |
Бинарный файл |
-Т |
Текстовый файл |
Циклы. В языке Perl имеются следующие циклы: while, do-until, for и foreach. Цикл while является универсальным, в то время как циклы for и foreach служат для решения специфических задач. Цикл foreach представляет собой удобное средство обработки списков и массивов. Циклы while, do-until и for во многом подобны их эквивалентам в языке С. Так, цикл for поддерживает те же три формата выражений. Цикл foreach похож на одноименный цикл в интерпретаторе С shell и облегчает обработку списков элементов.
Цикл while можно адаптировать для работы с массивами. Для управления таким циклом (и индексирования элементов массива) применяют переменную, которую помещают внутрь цикла.
Цикл foreach представляет собой эффективное средство обработки массивов. В этом цикле надлежит либо использовать имя массива со списком всех возможных значений, либо указать диапазон допустимых значений.
Проверка условий: if, eisif, unless и switch. Структуры if-else и elsif применяются для выбора одного из нескольких вариантов. Можно ограничиться использованием оператора if, если вариант один, либо объединить его с else или elsif, если на выбор предлагается ряд вариантов.
Управляющие структуры |
Описание |
|||
МЕТКА: { операторы; } |
Блок представляет собой набор операторов, заключенных в фигурные скобки. |
|||
|
|
|
|
Операторы выполняются последовательно. Блок может иметь метку |
if |
(выражение) { операторы; } |
Операторы выполняются, если проверочное выражение возвращает истинное |
||
|
else |
(выражение) { операторы; } |
значение. В противном случае выполняются операторы в блоке else Необходимо, |
|
|
|
|
|
чтобы операторы находились внутри блока. |
if |
(выражение) |
|
Ключевое слово elsif позволяет создавать вложенные структуры if и выбирать один |
|
{операторы; } |
|
из нескольких вариантов. При обнаружении первого истинного if-выражения |
||
elsif |
(выражение) |
{ операторы; } |
выполняются соответствующие операторы, а управление передается операторам, |
|
|
else |
(выражение) |
{ операторы; } |
следующим за структурой elsif. Операторы выполняются, если проверочное |
unless (выражение) { операторы; } |
выражение возвращает ложное значение. |
|||
METKA: while (выражение) |
Операторы выполняются, пока проверочное выражение возвращает истинное |
|||
{ операторы; } |
|
значение. МЕТКА не обязательна. |
||
do { операторы; } |
|
Операторы выполняются, пока проверочное выражение возвращает ложное |
||
until (выражение) { операторы; } |
значение. |
|||
foreach переменная (список значений) |
Цикл foreach предназначен для обработки списков значений, например массивов. |
|||
{ операторы; } |
|
Операнду переменная последовательно присваиваются указанные значения. |
||
for (начальное выражение; выражение; выражение |
Операторы выполняются, пока выражение возвращает истинное значение. |
|||
инкрементирования) |
Первое выражение, начальное выражение, выполняется до начала цикла, а |
|||
{ операторы; } |
|
третье выражение, выражение инкрементирования, вычисляется внутри цикла |
||
|
|
|
|
после выполнения операторов. |
МЕТКА: блок-или-цикл |
Блоку или циклу назначается МЕТКА. |
Операторы цикла: while, until, for, foreach |
Описание |
next |
Этот оператор указывает пропустить оставшуюся часть цикла и начать новую итерацию. |
|
Он похож на оператор continue языка С; блок оператора continue выполняется |
continue {операторы;} |
Задает блок команд, которые выполняются даже в том случае, если задана новая |
|
итерация посредством оператора next |
redo МЕТКА |
Задает повторное выполнение цикла, даже если условие выполнения цикла не |
|
соблюдается. Блок оператора continue пропускается |
last МЕТКА |
Служит для выхода из блока или цикла. Блок оператора continue пропускается. Этот |
|
оператор подобен оператору break языка С |
25. Утилита awk. Поиск по шаблону. Переменные, операторы и массивы. Выполнение арифметических действий. Управляющие структуры и циклы. Ответ:
awk – интерпретируемый скриптовой язык обработки текстовых данных из файлов и из входного потока. gawk – GNU-реализация AWK.
Интерпретатор awk вызывает из командной строки. Синтаксис: awk ‘шаблон {действие}’ <имена файлов>
если считывание данных производится из файлов, или awk ‘шаблон {действие}’
если считывание данных производится из входного потока.
AWK работает с записями, т.е. со строками, в которых данные разделены специальными символами (пробелами, символами табуляции и др.). Пример:
awk ‘/automobile/ {print}’ Enviroment.txt
отображает все записи в файле Enviroment.txt, содержащие комбинацию символов “automobile”.
Специальные символы:
^ - начало записи $ - конец записи
. – один любой символ [] – набор символов
* - любое количество чисел + - один или несколько экземпляров какого-либо символа
? – ни одного или один экземпляр символа.
Вawk существуют переменные для обозначения полей, специальные переменные и пользовательские переменные.
Переменные для обозначения полей: $0 – содержит всю запись $1 – содержит первое поле записи
$2 – содержит второе поле записи и т.д.
Пользовательские переменные определяются с помощью команды присвоения “=”. awk ‘{var=$0; print var}’
Арифметические операции:
+, -, *, /, % Массивы, подобно переменным, определяются автоматически при первом вызове. Пример:
awk ‘{arr[1]=1/3; arr[2]=234} END {print arr[1],arr[2]}’ Программа на awk может иметь и другую структуру:
awk ‘BEGIN {<действия до начала обработки>} {<действия во время обработки>} END {< действия после обработки>}’
Вawk есть управляющие структуры.
Команда условного перехода:
if (<условие>) <действия, если условие верно> else <действия, если условие неверно>
Условный цикл while:
while (<условие>) <действия, если условие верно>
Цикл for:
for (<инициализация>; <условие>; <изменение>) <действие>
26. Язык Tcl/Tk. Сценарии Perl. Ввод и вывод данных. Выражения и переменные. Управляющие переменные и дескрипторы файлов. Элементы управления. Ответ:
Tcl (Tool Command Language) – скриптовой язык программирования высокого уровня.
Язык Tcl не является компилируемым. Программы на Tcl запускаются на исполнение программой-интерпретатором (tclsh, wish). Программы на Tcl состоят из набора команд. Синтаксис команд:
<имя команды> <параметр 1> <параметр 2> <параметр 3> <…> Команда представляет из себя строку из слов. Первым словом является имя команды. Остальные слова выступают в качестве
параметров. Разделителем между словами является один или несколько пробелов. Об окончании команды свидетельствует символ точки с запятой или символ перевода на новую строку.
В синтаксисе Tcl важны понятия группировки и подстановки. Группировка позволяет объединять наборы символов, разделенных пробелами в одно слово. Подстановка позволяет вставлять в команды значения переменных и специальные символы. Важно, что группировка происходит перед подстановкой. Функцию группировки выполняют фигурные скобки { } и двойные кавычки “ “. Фигурные скобки запрещают подстановку, двойные кавычки разрешают подстановку.
Команда назначения переменных set. Синтаксис: set <имя переменной> <значение>
например:
set a b set a 123
set a {Hello, world!} set a “Hello, world!”
set {this is variable} {this is value} set set set
Запись вида
set <имя переменной> возвращает значение переменной.
Значение переменной можно получить, используя символ подстановки $. Например: set b $a
set b “$a”
присвоение переменной b значение переменной a. Но set b {$a}
присвоение переменной b строку “$a” (без двойных кавычек), т.к. подстановка внутри фигурных скобок запрещена. Команда удаления переменной unset. Синтаксис:
unset <имя переменной>
Команда печати строки на экран puts. Синтаксис: puts <строка>
Команда считывания строки gets. Синтаксис: gets <имя потока> <имя переменной>
В качестве имени потока можно написать stdin: gets stdin <имя переменной>
Математические операции производятся с помощью команды expr. Синтаксис: expr <математическое выражение>
Команда expr возвращает результат операции. Для подстановки возвращаемого значения одной команды в другую команду используют квадратные скобки [ ]. Например:
set a [expr {1+2}] присвоение переменной a значение 3.
set b [expr {$a+13}] присвоение переменной b значение 16.
set b {$a+13}
присвоение переменной b значение “$a+13” (двойных кавычек). set b [set a]
присвоение переменной b значение переменной a (эквивалентно set b $a).
При использовании команды expr рекомендуется математическое выражение заключать в фигурные скобки. Команда целочисленного увеличения/уменьшения значения переменной incr. Синтаксис:
incr <имя переменной> <прибавляемое число>
или
incr <имя переменной>
(по умолчанию, прибавляемое число = 1).
Tcl позволяет работать с файлами. Для открытия файла используется команда open. Синтаксис: open <имя файла> <режим доступа>
Команда open возвращает дескриптор файла. Режимы открытия файла: r – открытие файла на чтение. Файл должен существовать.
r+ - открытие файла на чтение и запись. Файл должен существовать.
w – открытие файла на запись. Файл создается или перезаписывается существующий.
w+ - открытие файла на чтение и запись. Файл создается или перезаписывается существующий. a – режим добавления. Файл должен существовать.
a+ - режим чтения и добавления. Если файл не существует, то создается. Если существует, то дескриптор устанавливается в конец файла.
Чтение из файла:
gets <имя дескриптора файла> <имя переменной> Закрытие файла:
close <имя дескриптора>
Примеры:
set fileid [open “file.dat” w+] gets $fileid var
close $fileid
В Tcl имеются средства управления. Команда условного перехода if. Синтаксис:
if <условие> then <действия, если условие верно> else <действия если условие неверно> или
if <условие> <действия, если условие верно> <действия если условие неверно> Пример:
if {1>2} {puts yes} {puts no} Условный цикл while. Синтаксис:
while <условие> <действия, если условие верно> Пример:
set i 0
while {$i<5} {incr i} Цикл for. Синтаксис
for <предустановка> <условие> <изменение> <действия, если верно условие> Пример:
for {set i 0} {$i<5} {incr i} {puts $i}
27. Потоковый редактор Sed. Общие сведения, регулярные выражения. Ответ: Редактор sed – неинтерактивный строчный редактор. Синтаксис:
sed [-n] [-e script] [-f script_file] [files]
script – набор команд редактирования, который может содержать до 200 команд или до 10000 байт. script_file – файл со скриптом SED.
files – файлы, предназначенные для SED-редактирования.
-n – указывает, что в output выводятся не все строки, но только те, к которым применялась команда p. Флаг –e может быть опущен если он присутствует один.
Команда SED:
[address[,address]] function [arguments]
где квадратные скобки указывают на необязательность аргументов. С помощью адресации происходит отбор строк для редактирования. Адрес:
∙десятичный номер строки;
∙$ - последняя строка input;
∙регулярное выражение.
Если адреса не указаны, то команда применяется ко всем записям. Регулярные выражения.
∙регулярное выражение указывается в разделителях “/ /”;
∙любой символ (кроме специальных: \ [ . ^ * $ ) является регулярным выражением себя;
∙^ в начале регулярного выражения указывает на пустой символ в начале регулярного выражения (т.е. на начало строки);
∙$ в конце регулярного выражения указывает на пустой символ в конце регулярного выражения (т.е. на конец строки);
∙\n – вставленная новая строка (newline);
∙. – любой символ (кроме обыкновенного newline);
∙* - стоящая за регулярным выражение означает любую последовательность вхождений этого выражения, начиная с 0;
∙[ ] – указывает на один из символ, приведенных внутри;
∙[^ ] – указывает на один символ, кроме приведенных внутри;
∙\ - перед любым символом, кроме цифр и “(“ и “)”, означает этот символ. (Экранирование специальных символов).
∙\(x\) -, где x – регулярное выражение, указывает на x;
∙\d -, где d – цифра, указывает копию d-того выражения, которое заключалось в скобки “\(“ и “\)”;
∙конкатенация регулярных выражений является регулярным выражением.
28.Основные сведения об Интернет. Интернет-провайдеры. Соединение с интернет. Протоколы передачи
данных. Понятие сервер, рабочая станция, роутер, маршрутизатор, шлюз, концентратор, коммутатор (хаб, свитч), сервер удаленного доступа, модемы. Сервисы Интернет. Ответ:
Интернет – всемирная система объединенных компьютерных сетей, построенная на использовании протокола IP и маршрутизации пакетов данных. Интернет образует глобальное информационное пространство, служит физической основой для Всемирной паутины и множества других систем (протоколов) передачи данных.
Интернет-провайдер – организация, предоставляющая услуги доступа к сети Интернет и иные связанные с Интернетом услуги. Сервером называется компьютер, выделенный из группы персональных компьютеров (или рабочих станций) для выполнения какойлибо сервисной задачи без непосредственного участия человека.
Рабочая станция – комплекс аппаратных и программных средств, предназначенных для определенного круга задач.
Роутер (или маршрутизатор) – сетевое устройство, пересылающее пакеты данных между различными сегментами сети и принимающее решение на основании о топологии сети и определенных правил, задаваемых администратором.
Шлюз – аппаратный маршрутизатор или программное обеспечение для сопряжения компьютерных сетей, использующих разные протоколы (например, локальной и глобальной).
Концентратор – сетевое устройство, предназначенное для объединения нескольких устройство Ethernet в общий сегмент сети. Коммутатор (хаб, свитч) – устройство, предназначенное для соединения нескольких узлов компьютерной сети в пределах одного или нескольких сегментов сети.
Сервер удаленного доступа – обеспечивают пользователя консольным доступом к удаленной сети, через соответствующую клиентскую программу, Модем – устройство, применяющееся в системах связи для физического сопряжения информационного сигнала со средой его
распространения, где он может существовать без адаптации, и выполняющее функцию модуляции и демодуляции этого сигнала.
29. Виды компьютерных сетей. Сетевые технические средства. Ответ:
Компьютерные сети бывают двух типов – одноранговые и сети на основе сервера.
Одноранговая сеть – это компьютерная сеть, основанная на равноправии участников. В такой сети отсутствуют выделенные серверы, а каждый узел является как клиентом, так и сервером. В отличии от архитектуры клиент-сервера, такая организация позволяет сохранять работоспособность сети при любом количестве и любом сочетании доступных узлов. Участниками сети являются пиры.
Сеть на основе сервера – это локальная вычислительная сеть (LAN), в которой сетевые устройства централизованы и управляются одним или несколькими серверами. Индивидуальные рабочие станции должны обращаться к ресурсам сети через серверы.
Сетевые технические средства – это различные устройства, обеспечивающие объединение компьютеров в единую компьютерную сеть.
Базовые компоненты и технологии, связанные с архитектурой локальных или территориально-распределенных сетей, могут включать в себя:
∙кабели;
∙серверы;
∙сетевые интерфейсные платы;
∙концентраторы (хаб);
∙коммутаторы (свитч);
∙маршрутизаторы (роутер);
∙серверы удаленного доступа;
∙модемы.
30.Локальные сети. Накопление информации по научной тематике. Хранение, передача и обработка
данных. Ответ:
Локальная вычислительная сеть – компьютерная сеть, покрывающая, обычно относительно небольшую территорию или небольшую группу зданий. Также существуют локальные сети, узлы которых разнесены географически на расстояния более 12500 км.
Компьютеры могут соединяться между собой, используя различные среды доступа: медные проводники, оптические проводники и через радиоканал. Проводные связи устанавливаются через Ethernet, беспроводные – через Wi-Fi, Bluetooth, GPRS и прочие средства. Отдельная локальная вычислительная сеть может иметь шлюзы с другими локальными сетями, а также быть частью глобальной вычислительной сети или иметь подключение к ней.
Процессы, связанные с поиском, хранением, передачей, обработкой и использованием информации, называются информационными процессами.
Хранение данных – это способ распространения информации в пространстве и времени. Способ хранения зависит о ее носителя. ЭВМ предназначен для компактного хранения информации с возможностью быстрого доступа к ней Передача данных – процесс обмена между источником данных и приемником.
Обработка данных – преобразование информации из одного вида в другой, осуществляемое по строгим формальным правилам.
31. Интернет-браузеры как инструмент поиска научной информации. Ответ:
Интернет-браузер – программное обеспечение для просмотра веб-сайтов, а именно для запроса веб-страниц (у веб-сервера), их обработки, вывода и перехода от одной страницы к другой. Основная функция веб-браузера – отображение гипертекста.
Веб-сервер - программа, запускаемая на подключённом к сети компьютере. В простейшем виде такая программа получает по сети HTTP-запрос на определённый ресурс, находит соответствующий файл на локальном жёстком диске и отправляет его по сети запросившему компьютеру.
Гипертекст (Hypertext) – это документ или система документов с перекрестными ссылками (гиперссылками).
Для создания, хранения и отображения гипертекста используется язык HTML (HyperText Markup Language), язык разметки гипертекста. Все информационные ресурсы, расположенные в интернете имеют свой идентификатор URI (Uniform Resource Identifier).
URI — это символьная строка, позволяющая идентифицировать какой-либо ресурс: документ, изображение, файл, службу, ящик электронной почты и т. д.
URI = URL + URN
URL — (англ. Uniform Resource Locator) это часть URI, которая определяет адрес хоста сетевого ресурса (для несетевых ресурсов эта часть может опускаться).
URN — (англ. Uniform Resource Name), это часть URI, которая определяет имя ресурса на хосте в локальном пространстве имён (и, соответственно, в определённом контексте).
Пример:
URI = ftp://ftp.dlink.ru/pub/ADSL/ где:
URL = ftp://ftp.dlink.ru/ URN = pub/ADSL/
Находить информацию в Интернете, используя адресную строку интернет-браузера, можно при помощи различных сервисов: поисковых машин (поисковиков), каталогов-рейтингов (рубрикаторов), тематических списков ссылок, онлайновых энциклопедий и словарей.
32. Интернет поисковые системы Scirus, Google, Yandex, Yahoo, Rambler, Mail, Aport, AltaVista. Критерии поиска. Отображение результата. Ответ:
Поисковая система состоит из двух частей: так называемого поискового робота (или паука), который обходит серверы Сети и формирует базу данных, и механизма поиска релевантных запросу пользователя ссылок в базе. Следует отметить, что, отрабатывая конкретный запрос пользователя, поисковая система оперирует именно внутренней базой данных (а не пускается в путешествие по Сети).
Запрос - формализованный способ выражения информационных потребностей пользователем системы. Объект запроса - информационная сущность, которая хранится в базе автоматизированной системы поиска. Наиболее распространенный объект запроса – текстовый документ. Помимо текстовой информации возможен поиск изображений, музыки и другой мультимедиа информации.
Релевантный документ - документ, смысловое содержание которого соответствует информационному запросу.
Scirus http://www.scirus.com/ - Универсальная научная поисковая система. Осуществляет полнотекстовый поиск по статьям журналов большинства крупных иностранных издательств (17 млн. статей), статьям в крупных архивах статей и препринтов, научным ресурсам Интернет. Лучшая специализированная поисковая система.
Google Scholar http://scholar.google.com/ -поисковая система по научной литературе. Включает статьи крупных научных издательств, архивы препринтов, публикации на сайтах университетов, научных обществ и других научных организаций. Ищет статьи, в том числе на русском языке, рассчитывает индекс цитирования публикаций и позволяет находить статьи, содержащие ссылки на те, что уже найдены.
Для более точного поиска можно использовать язык запросов, использующий метасимволы и опции, а также критерии поиска, которые задаются опционально в расширенном поиске.
Ранжирование результатов поисковой выдачи зависит от «авторитетности» сайта, оцененной в Page Rank (Google) или тИЦ (Яндекс).
33. Компьютерные программы тестирования знаний обучающихся. Ответ:
Компьютерная программа тестирования знаний обучающихся, предназначена для:
∙внедрения в учебный процесс элементов дистанционного обучения,
∙удешевления процесса обучения,
∙упрощения контроля знаний,
∙ускорение процесса проверки знаний,
∙повышения объективности при оценке знаний,
∙уменьшения субъективности в оценке знаний.
Система тестирования, по сути, является веб-сайтом с динамическим содержимым, хранящим информацию в базе данных. Система предоставляет возможность:
∙размещать информацию (лента новостей),
∙статьи (в форматах: текст, HTML, файл или ссылка),
∙проводить тестирование и анкетирование,
∙отображать информацию о пройденных тестах,
∙осуществлять поиск по хранящимся статьям,
∙осуществлять поиск по библиотечному каталогу,
∙проставлять оценки,
∙отображать хранящуюся информацию по студенту (анкета, оценки).
Всистеме должно быть предусмотрено как минимум 3 группы доступа к системе:
∙администраторы,
∙преподаватели,
∙студенты.
Пример:
http://orioks.miet.ru
http://indigotech.ru
www.intuit.ru
34. Электронная почта. Почтовые сервера и клиенты. Списки рассылки. Ответ:
Электронная почта – технология и предоставляемые ею услуги по пересылке и получению электронных сообщений (называемых «письма» или «электронные письма») по распределённой (в том числе глобальной) компьютерной сети.
Почтовый сервер – это компьютерная программа, которая передаёт сообщения от одного компьютера к другому. Посредник между почтовым ящиком и почтовым клиентом.
Почтовый клиент – программное обеспечение, устанавливаемое на компьютере пользователя и предназначенное для получения, написания, отправки и хранения сообщений электронной почты одного или нескольких пользователей.
Список рассылки – штатная возможность многих серверов электронной почты, а также функция специализированных программ для рассылки. Сервер принимает сообщение от любого подписчика на специализированный адрес, после чего перенаправляет это сообщение всем подписчикам списка рассылки. Эта технология позволяет организовать общение между собой группы людей (аналог телеконференции). Обычно такое ПО позволяет подписчикам управлять своими настройками (подписка, отписка, изменение формата, изменение адреса, запрос пропущенных сообщений и т. п.) через отправку сообщений электронной почты.
35. Удаленный доступ. Передача данных по FTP. Ответ:
Восновном удаленный доступ подразумевает под собой удаленное взаимодействие с рабочим столом компьютера. Помимо этого, удалённый доступ может подразумевать под собой управление всеми процессами удаленного объекта, что бывает необходимым в системном администрировании локальных сетей.
Воперационной системе Windows удаленный доступ к рабочему столу можно осуществлять средствами самой системы.
FTP (англ. File Transfer Protocol — протокол передачи файлов) — протокол, предназначенный для передачи файлов в компьютерных сетях. FTP позволяет подключаться к серверам FTP, просматривать содержимое каталогов и загружать файлы с сервера или на сервер.
Протокол FTP относится к протоколам прикладного уровня и для передачи данных использует транспортный протокол TCP. Команды и данные, в отличие от большинства других протоколов, передаются по разным портам. Исходящий порт 20, открываемый на стороне сервера, используется для передачи данных, порт 21 для передачи команд. Порт для приема данных клиентом определяется в диалоге согласования. В случае, если передача файла была прервана по каким-либо причинам, протокол предусматривает средства для докачки файла, что бывает очень удобно при передаче больших файлов.
Доступ к FTP-серверу можно осуществить несколькими способами: через окно браузера, через стандартный «Проводник», через специализированные файловые менеджеры (Total Commander).
Протокол не шифруется, при аутентификации передаются логин и пароль открытым текстом.
36. Назначение СУБД Access. Основы работы. Ответ:
Система управления базами данных (СУБД) – это программа, позволяющая создавать базы данных, а также обеспечивающая обработку (сортировку) и поиск данных.
СУБД Access – стандартная СУБД входящая в состав MS Office.
В Access используется стандартный для среды Windows&Offiсе многооконный интерфейс, но в отличие от других приложений, не многодокументный. Единовременно может быть открыта только одна база данных, содержащая обязательное окно базы данных и окна для работы с объектами базы данных.
Окно базы данных - один из главных элементов интерфейса Access. Здесь систематизированы все объекты БД: таблицы, запросы, формы, отчеты, макросы и модули.
Таблица. В базах данных вся информация хранится в двумерных таблицах. Это базовый объект БД, все остальные объекты создаются на основе существующих таблиц (производные объекты). Каждая строка в таблице - запись БД, а столбец - поле. Запись содержит набор данных об одном объекте, а поле - однородные данные обо всех объектах.
Запросы. В СУБД запросы являются важнейшим инструментом. Главное предназначение запросов - отбор данных на основании заданных условий. С помощью запроса из базы данных можно выбрать информацию, удовлетворяющую определенным условиям.
Формы. Формы позволяют отображать данные, содержащиеся в таблицах или запросах, в более удобном для восприятия виде. При помощи форм можно добавлять в таблицы новые данные, а также редактировать или удалять существующие. Форма может содержать рисунки, графики и другие внедренные объекты.
Отчеты. Отчеты предназначены для печати данных, содержащихся в таблицах и запросах, в красиво оформленном виде.
Макросы. Макросы служат для автоматизации повторяющихся операций. Запись макроса производится так же, как в других приложениях, например как в приложении Word.
Модули. Модули также служат для автоматизации работы с БД. Модули еще называют процедурами обработки событий и пишутся на языке VBA.
37. Системы оптического распознавания. Назначение, виды, возможность, примеры. Ответ:
Оптическое распознавание символов (англ. optical character recognition, OCR) — механический или электронный перевод изображений рукописного, машинописного или печатного текста в последовательность кодов, использующихся для представления в текстовом редакторе.
Назначение: конвертация книг и документов в электронный вид, Оптическое распознавание текста позволяет редактировать текст, осуществлять поиск слова или фразы, хранить его в более
компактной форме, демонстрировать или распечатывать материал, не теряя качества, анализировать информацию, а также применять к тесту электронный перевод, форматирование или преобразование в речь.
FineReaderOnline – коммерческая программа, доступ осуществляется через бразуер Online OCR-сервис, позволяющий распознать многоязычный текст из отсканированного документа или фотографии. Конвертирует результат в редактируемые форматы (PDF, DOC, RTF, XLS, TXT). На данный момент до 10 страниц в день можно распознавать бесплатно.
Существует множество других программ и сервисов для ОРС: img2txt, OnlineOCR.ru, NewOCR.com, COCR2 и т.д.
38. Компьютерные вирусы как инструмент противодействия научным исследованиям. Классификация вирусов. Примеры из практики. Ответ:
Компьютерный вирус — разновидность компьютерных программ, отличительной особенностью которых является способность к размножению (саморепликация). В дополнение к этому вирусы могут без ведома пользователя выполнять прочие произвольные действия, в том числе наносящие вред пользователю и/или компьютеру.
Классификация вирусов:
∙по поражаемым объектам (файловые вирусы, загрузочные вирусы, скриптовые вирусы, макровирусы, вирусы, поражающие исходный код);
∙по поражаемым операционным системам и платформам (DOS, MS Windows, Unix, Linux);
∙по технологиям, используемым вирусом (полиморфные вирусы, стелс-вирусы, руткиты);
∙по языку, на котором написан вирус (ассемблер, высокоуровневый язык программирования, скриптовый язык и др.);
∙по дополнительной вредоносной функциональности (бэкдоры, кейлоггеры, шпионы, ботнеты и др.).
Примеры:
С распространением сетей и Интернета файловые вирусы всё больше ориентируются на них как на основной канал работы (ShareFun, 1997 — макровирус MS Word, использующий MS-Mail для распространения, Win32.HLLP.DeTroie, 1998 — семейство вирусов-шпионов, Melissa, 1999 — макровирус и сетевой червь, побивший все рекорды по скорости распространения). Эру расцвета «троянских коней» открывает утилита скрытого удаленного администрирования BackOrifice (1998) и последовавшие за ней аналоги (NetBus, Phase).
39. Состав и методы теоретических исследований (ТИ). Компьютерная поддержка ТИ. Ответ:
Основной задачей ТИ является создание теории по теме исследований. Состав ТИ:
1)Постановка задачи
2)Функциональное изучение объекта
3)Выбор методов построения модели
4)Разработка алгоритмов и программных средств для реализации модели
5)Выполнение математических расчетов и обработка информационных алгоритмов
6)Анализ полученных результатов с помощью логических рассуждений и выводов Методы ТИ:
1)Общенаучные методы (? нет пункта в лекциях )
2)Математические – аналитика, численные методы
3)Эвристические
Компьютерная поддержка ТИ:
1)Библиотеки программ для численного анализа
2)Специальные системы математических расчетов, графического управления данными
3)Диалоговые системы математических вычислений с внутренними языками
4)Электронные таблицы
40. Задачи и состав экспериментальных исследований (ЭИ). Обработка результатов ЭИ с помощью компьютерных средств. Приложения пакета MS Office. Средства MatLab и MathCad. Ответ:
Задачи ЭИ:
1)Целенаправленное наблюдение за функционированием объекта для детального изучения его свойств
2)Установление зависимостей
Состав ЭИ:
1)Подготовительный этап
2)Определение целей и задач ЭИ
3)Разработка методик и программ выполнения
4)Подбор оборудования
Word — текстовый процессор.
Excel — табличный процессор.
Outlook — персональный коммуникатор. В состав Outlook входят: календарь, планировщик задач, записки, менеджер электронной почты, адресная книга.
Access — приложение для управления базами данных.
InfoPath — приложение сбора данных и управления ими — упрощает процесс сбора сведений.
Communicator — предназначен для организации всестороннего общения между людьми, обеспечивает возможность общения посредством простого обмена мгновенными сообщениями, а также проведения голосовой и видеобеседы.
Publisher — приложение для подготовки публикаций.
Visio — приложение для работы с бизнес-диаграммами и техническими диаграммами — позволяет преобразовывать концепции и обычные бизнес-данные в диаграммы.
Project — управление проектами.
Query — просмотр и отбор информации из баз данных.
OneNote — приложение для записи заметок и управления ими.