Розробити власний модуль з застосуванням класу для обчислення площі круга радіуса R, з якого вирізали круг меншого радіуса r. Значення радіусів вводяться з клавіатури.
Вначале определим, что такое кодирование (также и кодирование сообщений) методом RLE:
"Кодирование длин серий (англ. run-length encoding, RLE) или кодирование повторов — алгоритм сжатия данных, заменяющий повторяющиеся символы (серии) на один символ и число его повторов. Серией называется последовательность, состоящая из нескольких одинаковых символов. При кодировании (упаковке, сжатии) строка одинаковых символов, составляющих серию, заменяется строкой, содержащей сам повторяющийся символ и количество его повторов." Если внимательно это прочитать, то сразу становится понятно, как решать ваше задание:
1.) ИВВВ111у - 1И3В311у4ф
2.) еВпппВ11уфффуугггддд - 1е1В3п1В211у3ф2у3г3д
3.) РРппВ12уллл3336 - 2Р2п1В11121у3л4р3316
(жирным шрифтом обозначено количество одинаковых символов в строке, обозначается повторяющийся символ сразу после числа, прописаного жирным шрифтом).
Также можно сосчитать во сколько раз уменьшилась строка (то есть эффективность данной кодировки):
Для первой строки: 12÷10 = 1.2 (эффект присутствует)
Для второй строки: 20÷20 = 1 (никакого эффекта, к сожалению)
Для третей строки: 19÷20 = 0.95 (лучше бы не кодировали
q1 - указатель. В начале программы указывает на второй элемент последовательности
Программа говорит, что если указатель q1 указывает на единицу, то надо ее исправить на единицу и сместиться вправо... т.е. указатель будет двигаться вправо до тех пор, пока не встретит ноль.
Таким образом в конце выполнения первого правила указатель q1 сместится в конец последовательности (до нуля)
Далее, если указатель q1 показывает на ноль, то меняем ноль на единицу, меняем указатель q1 на q2 и сдвигаемся влево.
После выполнения второго правила получаем последовательность 0111111 и указатель q2 на предпоследнюю единицу.
Третьим правилом q2 - сдвигается влево до достижения нуля
После его выполнения получаем последовательность 0111111 и указатель q2 на первый ноль
Четвертое правило заменяет указатель q2 на q0 и сдвигается вправо
Таким образом получаем в конце программы последовательность 0111111 и указатель q0 на первую единицу.
Объяснение:
Вначале определим, что такое кодирование (также и кодирование сообщений) методом RLE:
"Кодирование длин серий (англ. run-length encoding, RLE) или кодирование повторов — алгоритм сжатия данных, заменяющий повторяющиеся символы (серии) на один символ и число его повторов. Серией называется последовательность, состоящая из нескольких одинаковых символов. При кодировании (упаковке, сжатии) строка одинаковых символов, составляющих серию, заменяется строкой, содержащей сам повторяющийся символ и количество его повторов." Если внимательно это прочитать, то сразу становится понятно, как решать ваше задание:
1.) ИВВВ111у - 1И3В311у4ф
2.) еВпппВ11уфффуугггддд - 1е1В3п1В211у3ф2у3г3д
3.) РРппВ12уллл3336 - 2Р2п1В11121у3л4р3316
(жирным шрифтом обозначено количество одинаковых символов в строке, обозначается повторяющийся символ сразу после числа, прописаного жирным шрифтом).
Также можно сосчитать во сколько раз уменьшилась строка (то есть эффективность данной кодировки):
Для первой строки: 12÷10 = 1.2 (эффект присутствует)
Для второй строки: 20÷20 = 1 (никакого эффекта, к сожалению)
Для третей строки: 19÷20 = 0.95 (лучше бы не кодировали
q1 - указатель. В начале программы указывает на второй элемент последовательности
Программа говорит, что если указатель q1 указывает на единицу, то надо ее исправить на единицу и сместиться вправо... т.е. указатель будет двигаться вправо до тех пор, пока не встретит ноль.
Таким образом в конце выполнения первого правила указатель q1 сместится в конец последовательности (до нуля)
Далее, если указатель q1 показывает на ноль, то меняем ноль на единицу, меняем указатель q1 на q2 и сдвигаемся влево.
После выполнения второго правила получаем последовательность 0111111 и указатель q2 на предпоследнюю единицу.
Третьим правилом q2 - сдвигается влево до достижения нуля
После его выполнения получаем последовательность 0111111 и указатель q2 на первый ноль
Четвертое правило заменяет указатель q2 на q0 и сдвигается вправо
Таким образом получаем в конце программы последовательность 0111111 и указатель q0 на первую единицу.
Объяснение: