Хелпикс

Главная

Контакты

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





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



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

program Editor1;

const n=125;          {длинацепочки}

var s: string[n];

i, p3, p8: integer;

begin

s:='8';                     {исходнаястрока}

for i:=1 to n-1 do s:=s+'8';

p3:=Pos ('333', s);  {ищем 333}

p8:=Pos ('888', s);  {ищем 888}

while (p3>0) or (p8>0) do

begin

if p3>0 then           {если нашлось 333}

begin         {заменить(333, 8)}

s[p3]:='8';

Delete(s, p3+1, 2);

p8:=0;

end;

if p8>0 then           {если нашлось 888}

begin        {заменить (888, 3)}

s[p8]:='3';

Delete(s, p8+1, 2);

end;

p3:=Pos ('333', s);

p8:=Pos ('888', s);

end;

writeln(s);         {вывод результата}

end.

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

1. Какое максимальное значение длины цепочки (n) можно использовать в программе Editor1 при решении задач, аналогичных задаче 1?

 

2. Протестируйте программу Editor1 при различных значениях n. Результаты запишите в таблицу 1.

Таблица 1

n Результат   n Результат
     
       
         
         

 

3. Ниже приведены некоторые наборы символов. Подчеркните те из них, которые нельзя получить в результате работы программы Editor1.

3, 8, 38, 83, 88, 338, 383,388, 883, 3388, 8833, 8883.

 

4. В результате работы программы Editor1 получили в ответе 338. Какова минимальная длина исходной строки?

 

5. Какая строка будет выведена на экран монитора в результате применения программы Editor1 к строке, состоящей из 127 идущих подряд цифр «9»? В ответе запишите полученную строку.

 

6. Ниже приведен фрагмент программы Editor1, в двух строках которого были внесены изменения. Для Вашего удобства внесенные изменения выделены полужирным шрифтом.

fori:=1 to n-1 do s:=s+'8';

p3:=0;                        {ищем 333}

p8:=1;                        {ищем 888}

while (p3>0) or (p8>0) do …

Можно ли внесенные изменения считать правильными? (Приведите развернутый ответ)

 

7. В программе Editor1 есть два похожих фрагмента, которые приведены ниже. Фрагменты существенно отличаются оператором присваивания p8:=0. Для Вашего удобства оператор выделен полужирным шрифтом. Объясните необходимость оператора p8:=0 в программе.

Фрагмент 1:   Фрагмент 2:
If p3>0 then {если нашлось 333} begin   {заменить(333, 8)} s[p3]:='8'; Delete( s, p3+1, 2); p8:=0; end;   If p8>0 then {если нашлось 888} begin  {заменить(888, 3)} s[p8]:='3'; Delete( s, p8+1, 2); end;  

 

8. Измените программу Editor1 так, чтобы в процессе её работы

а) выводились промежуточные состояния строки данных (вывод «по шагам»);

б)пользователь во время диалога с компьютером мог ввести длину исходной строки, определяющий её вид символ, образец для поиска и образец для замены.

 



  

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