Хелпикс

Главная

Контакты

Случайная статья





Таблица 3. Вариант решения задачи на языке Паскаль. Вопросы и задания



Таблица 3

n
Исходные данные
Обработка по заданному алгоритму
n3-количество ‘3’
n8-количество ‘8’

 

Можно заметить, что количество полученных в результате преобразования исходных данных «троек» и «восьмерок» можно получить, применив к исходной длине строки формулы целочисленного деления:

n3 = n div 3

n8 = n mod 3

Пусть n >= 9

Таблица 4

n
Исходные данные 8888888888 888888888888888 8888888888888888888888
Преобразования 38888888 338888 3338 3888888888888 33888888888 333888888 38888888888888888888 338888888888888888 3338888888888888 88888888888888 388888888888 3388888888 33388888
n8
n3

 

Каждые девять цифр 8 заменяются на одну, т.е. обрабатываемая строка уменьшается на восемь символов. Таким образом, какое бы исходное значение n мы не взяли, после выполнения числа шагов k кратных четырем, получим количество цифр 8, определяемое по формуле

n8 = n mod 8

 

Вариант решения задачи на языке Паскаль

program Editor3;

var i, n, n3, n8: integer;

begin

write('n= '); readln(n);

if (n>=3) then

begin

n:=n mod 8;

n3:=n div 3;

n8:=n mod 3;

for i:=1 to n3 do write('3');

for i:=1 to n8 do write('8');

end

else for i:=1 to n do write('8');

end.

Потребовалось всего 4 переменные целого типа! При этом длина исходной строки ограничена значением максимального целого числа в компьютере.

 

Вопросы и задания

12. Ниже приведен программа для исполнителя Редактор.

НАЧАЛО

ПОКА нашлось (19) ИЛИ нашлось(299) ИЛИ нашлось(3999)

заменить(19, 2)

заменить(299, 3)

заменить(3999, 1)

КОНЕЦ ПОКА

КОНЕЦ

Составьте программу на языке Паскаль, которая определит результат применения программы для исполнителя Редактор к строке некоторой длины n, состоящей из цифры 1, 2 или 3, за которой следуют (n – 1) идущих подряд цифр 9?

Например, если на вход этой программе подаётся строка длины 101, состоящая из цифры 2, за которой следуют 100 идущих подряд цифр 9, то программа должна вывести 399.

Если на вход этой программе подаётся строка длины 94, состоящая из цифры 3, за которой следуют 93 идущих подряд цифр 9, то программа должна вывести 1.

 

13. Ниже приведена программа для исполнителя Редактор:

НАЧАЛО

ПОКА нашлось(555) ИЛИ нашлось(888)

ЕСЛИ нашлось(555)

ТО заменить(555, 8)

КОНЕЦ ЕСЛИ

ПОКА нашлось(888)

заменить(888, 5)

КОНЕЦ ПОКА

ЕСЛИ нашлось(555)

ТО заменить(555, 8)

КОНЕЦ ЕСЛИ

КОНЕЦ ПОКА

КОНЕЦ

Составьте программу на языке Паскаль, которая определит результат применения программы для исполнителя редактор к строке некоторой длины n, причем известно, что первые п1 цифр — восьмерки, а остальные — пятерки.

 

14. На странице http://kpolyakov.spb.ru/school/ege.htm приведена Программа для решения задач с РедакторомEditor14.zip. Сохраните программу на компьютере, распаковав архив. Познакомьтесь с её работой.

 

15. Выполните тест, перейдя по ссылке

http://kpolyakov.spb.ru/school/egetest/b14-e.htm

 



  

© helpiks.su При использовании или копировании материалов прямая ссылка на сайт обязательна.