Студопедия
Главная страница | Контакты | Случайная страница

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Лабораторная работа №5. Составить рекурсивную команду и доказать правильность ее работы

Читайте также:
  1. D триггеры, работающие по фронту.
  2. II. Поработать с лекционным материалом по теме занятия, выучить глоссарий.
  3. II. Работа с акварелью, гуашью, восковыми мелками, школьным мелом
  4. III. Работа по теме.
  5. III. Работа с природным материалом
  6. IV. Контрольная работа №1.
  7. IV. Лабораторная диагностика ВИЧ-инфекции
  8. IV. Работа с тканью, нитками
  9. IV. Совместное открытие знаний. Работа в парах.
  10. V. Положение о контрольных работах

Составить рекурсивную команду и доказать правильность ее работы. Команда копирует содержимое изнанки листа и переносит ее на лицевую сторону задом наперед.

 

Алгоритм:

1. Переместить курсор на позицию за последним символом текста изнанки листа.

2. Если позиция курсора не равна нулю (текст еще остался), то скопировать символ перед курсором и вставить его на лицевую сторону. Переместить курсор влево на один символ и перейти к шагу 2. Иначе закончить работу программы.

 

Результат работы функции invert — текст до курсора с одной стороны листа инвертируется и переносится на другую сторону листа в место, следующее за положением курсора.

 

Код программы:

to invert

if textpos > 0 [

select

cb

copy

flip

paste

flip

invert ]

end

 

to main

bottom

invert

end

 

Результат работы:


 

Доказательство правильности работы:

1. База индукции. Пусть курсор находится в позиции 0. Тогда условие textpos > 0 — ложно, и функция завершает свою работу. В итоге текст на лицевой стороне окажется прежним. Функция дает правильный результат.

2. Предположение индукции. Пусть функция работает правильно, когда курсор находится в любой позиции, не большей k от начала текста.

3. Предположим, что курсор находится в позиции k+1. В этом случае условие textpos > 0 — справедливо. Далее выполнится команда копирования-вставки символа перед курсором и команда перемещения курсора на одну позицию влево, после чего курсор окажется в позиции k и дальнейшее выполнение функции верно по предположению индукции. В итоге получится, что на лицевой стороне листа окажутся:

1. символ перед курсором, находящегося в позиции k+1;

2. инвертированный текст с изнанки листа от его начала до позиции k;

А это и есть инвертированный текст с изнанки листа от начала текста до позиции k+1. Следовательно, функция работает правильно, когда курсор находится в позиции k+1, что и требовалось доказать. Следовательно, функция работает правильно всегда.

Лабораторная работа №5

Тема: Создание ящика электронной почты и настройка его параметров.

Цель работы. Изучение информационной технологии создания почтового ящика и работы с электронной почтой.

 

План

1) Изучить теоретические понятия электронной почты

2) Выполнить создание и настройку почтового ящика web-почты

3) Ответить на контрольные вопросы

 




Дата добавления: 2014-11-24; просмотров: 88 | Поможем написать вашу работу | Нарушение авторских прав




lektsii.net - Лекции.Нет - 2014-2025 год. (0.007 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав