Учебные материалы по математике | Интерполирование скаляров в строках | Matematiku5
Вузы по математике Готовые работы по математике Как писать работы по математике Примеры решения задач по математике Решить задачу по математике online

Интерполирование скаляров в строках


Интерполирование скаляров в строках

Это подстановка вместо имени переменной ее значения для строк в двойных кавычках

$a = “fred”;

$b = “text of $a”; $b = “text of fred”

$c = “text of $d”; $c = “text of”

т. к. $d не определена

Внимание!

Двойной подстановки нет.

$x = “$fred”;

$y = “hey $x”; $y = “hey $fred”

т. е. подставленный текст не просматривается.

Для предотвращения подстановки надо:

—  либо поставить часть строки в одинарные кавычки;

—  либо перед знаком $ поставить .

$a = “hi”;

$b = “a test of” . ‘$a’;

$c = “a test of $a”;

Будет:

$b = $c = “a test of $a”

Если в тексте есть $a и $aa, то будет подстановка для более длинного имени.

Чтобы сделать для короткого имени надо:

—  заключить имя переменной в фигурные скобки {};

—  завершить часть строки и начать другую часть строки знаком конкатенации.

Пример:

$a = “day”;

$aa = “Sunday”;

$b = “It’s $aa”;

$c = “It’s ${a}a”;

$d = “It’s $a”.”a”;

Получим:

$b = “It’s Sunday”

$c = “It’s daya”

$d = “It’s daya”

Ввод и вывод

Для ввода с клавиатуры применяется стандартный ввод <STDIN>, например:

$a = <STDIN>;

читаем текст

chomp($a);

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

Можно так:

Chomp($a = <STDIN>);

Для вывода функция print.

Print(“hellon”);

Print “hellon”;

Результат один и тот же:

Hello

Массивы и списки

Список – это упорядоченные скалярные данные.

Массив – переменная, которая содержит список.

! Отличие данного списка от списков в других языках состоит в том, что элемент массива – отдельная скалярная переменная.

Min массив – без элементов.

Max массив – заполняет всю память.

Имя переменной массива начинается со знака @.

@fred – массив

$fred – скаляр

Эти имена не пересекаются.

Списки задаются значениями, отделенными друг от друга запятыми и заключенными в круглые скобки:

(1,2,3)

(“fred”,1,2) т. е. типы элементов могут быть разными, как и в языке JavaScript:

(17,$a,$a+$b)

() – пустой список

(1..5) = (1,2,3,4,5)

(1.2..5.2) = (1.2,2.2,3.2,4.2,5.2)

Если

(1.3..5.1) то (1.3,2.3,3.3,4.3)

Чтобы не записывать

@a = (“fred”,”betty”,”lena”,”kolya”);

применяют функцию

gw:

—  слова, заключенные в круглые скобки, должны быть разделены пробелами;

—  функция заключает каждое слово в двойные кавычки.

@a = gw(fred betty lena kolya);

Список может быть аргументом функции print:

Print(“The answer “,”is”,$a,”n”);

Это 4-х элементный список.

Присваивание

@a = (1,2,3);

@b = @a;

Получили массив из 3-х элементов и скопировали его в @b

Массивы м. б. элементами

@a = gw(one two);

@b = (4,5,@a,6,7) @b = (4,5,”one”,”two”,6,7)

@b = (8,@a); # в начало списка добавляется 8.

@b = (@a,”last”); # в конец списка добавляется “last”.

Список из переменных м. б. использован в левой части оператора присваивания:

($a,$b,$c) = (1,2,3); $a=1, $b=2, $c=3

($a,$b) = ($b,$a) поменять местами $a и $b

($d,@fred) = ($a,$b,$c);

$d = $a

@fred = ($b,$c)

($e,@fred) = @fred;

$e = $b;

@fred = ($c)

Если в правой части оператора присваивания значений больше, чем в левой, то лишние значения отбрасываются.

Если в левой части переменных больше, чем в правой, то лишние получают значение undef.

Если в левой части переменная – скаляр, а в правой переменная массив, то присваиваемое число – это размер массива.

@fred = (1,2,3,4,5);

$a = @fred;

$a = 5.

Т. е. текущий размер массива.

Пример

$a = @fred;

$a) = @fred;

В чем различие?

В первом случае $a – это размер массива.

Во втором — $a – это первый элемент массива @fred.

Обращение к элементам списка

Элементы массива нумеруются:

—  целыми числами;

—  начиная с нуля;

—  с шагом 1;

—  элемент массива обозначается скалярной переменной с индексом в квадратных скобках

@fred = (1,2,3);

$b = $fred[0];

$b = 1;

$fred[0]=5;

@fred = (5,2,3)

Элементы массива могут участвовать в разных операциях

Срез – обращение к списку элементов одного массива. Для этого вводится специальное обозначение:

@fred[0,1]; º

$fred[0],$fred[1]

@fred[0,1] = @fred[1,0];

поменяли первые два элемента местами.

@fred[1,2] = (9,10);

замена последних 2-х элементов.

@who = (gw(fred betty lena lera))[2,3]

это как:

@x = gw(fred betty lena lera);

@who = @x[2,3];

@who = (“lena”,”lera”);

В качестве индекса может быть переменная:

$a = 2;

@fred = (7,8,9);

$b = $fred[$a];

$b = 9.

Это же самое можно сделать при помощи среза:

$b = (7,8,9)[$a];

В качестве индекса может быть массив.

@a = (7,8,9);

@b = (2,1,0);

@c = @a[@b];

@c = (9,8,7), т. е.

$a[2],$a[1],$a[0]

Присваивание значения элементу, который за пределами текущего массива расширяет его автоматически.

@a = (1,2,3);

$a[6] = “oh”;

@a = (1,2,3,undef, undef, undef,”oh”)

Для получения индекса последнего элемента массива применяют операцию $#:

@fred = (1,2,3,5);

$a = $#fred;

$a = 3;

Отрицательный индекс – это отсчет от последнего элемента массива

-1 – последний

-2 – предпоследний

Пример

@fred = (“lena”,”lera”,”eva”);

print $fred[-1];

выводит “eva”

print $#fred; 2

print $fred[$#fred]; “eva”

Функции push и pop

Добавляют и удаляют значение с правой стороны списка.

А. push(@list,$newvalue);

Теперь @list = (@list,$newvalue)

Б. $old = pop(@list);

—  $old = $newvalue, то-есть в $old получили удаленный элемент;

—  в @list последний элемент удален;

—  размер @list уменьшился на 1.

Если в pop аргумент – пустой список, то она возвращает undef без всяких сообщений.

В push может быть список значений.

@list = (1,2,3);

push(@list,4,5,6);

@list = (1,2,3,4,5,6)

В функциях push и pop первый аргумент – это всегда переменная – массив.

Функции shift и unshift

Они делают аналогичную работу pop и push в левой части массива

unshift(@fred,$a);

@fred = ($a,@fred)

unshift(@fred,$a,$b);

@fred = ($a,$b,@fred)

$x = shift(@fred);

—  $x = $fred[0];

—  первый элемент удалился;

Наташа

Автор

Наташа — контент-маркетолог и блогер, но все это не мешает ей оставаться адекватным человеком. Верит во все цвета радуги и не верит в теорию всемирного заговора. Увлекается «нефрохиромантией» и тайно мечтает воссоздать дома Александрийскую библиотеку.

Распродажа дипломных

 Скидка 30% по промокоду Diplom2020

А ты боишься COVID-19?

 Пройди опрос и получи промокод