Шешімі: Обработка строки в цикле
В приведённом ниже фрагменте алгоритма, записанном на алгоритмическом языке, переменные $a$, $b$, $c$ имеют тип «строка», а переменные $i$, $k$ — тип «целое». Используются следующие функции:
Длина($a$) возвращает количество символов в строке $a$.
Извлечь($a, i$) возвращает $i$-й слева символ в строке $a$.
Склеить($a, b$) возвращает строку, в которой записаны сначала все символы строки $a$, а затем все символы строки $b$.
Значения строк записываются в одинарных кавычках. Фрагмент алгоритма:
$i := \text{Длина}(a)$
$k := 1$
$b := \text{‘П’}$
пока $i > 0$
нц
$c := \text{Извлечь}(a, i)$
$b := \text{Склеить}(b, c)$
$i := i - k$
кц
Какое значение будет у переменной $b$ после выполнения фрагмента алгоритма, если значение переменной $a$ было ‘РОЗА’?
Шешім по шагам
3 қадамВ строке ‘РОЗА’ четыре символа, поэтому сначала $i = 4$. При $k = 1$ значение $i$ на каждом шаге уменьшается на единицу.
$$i=4,3,2,1$$Символы извлекаются справа налево: сначала ‘А’, затем ‘З’, ‘О’ и ‘Р’.
$$a_4=\text{‘А’},\ a_3=\text{‘З’},\ a_2=\text{‘О’},\ a_1=\text{‘Р’}$$К начальному значению $b = \text{‘П’}$ последовательно присоединяются извлечённые символы.
$$\text{‘П’}+\text{‘А’}+\text{‘З’}+\text{‘О’}+\text{‘Р’}=\text{‘ПАЗОР’}$$Где здесь ошибаются
Извлекать символы слева направо, начиная с первого.
Забыть, что начальное значение переменной $b$ равно ‘П’.
Остановить цикл после извлечения символа с индексом 1.