На ленте расположен массив из 2n меток составить программу по которой машина раздвинет

две половины данного массива. Головка расположена над массивом.

Ответы

Будь первым, кто ответит на вопрос

Как добавить хороший ответ?

Что необходимо делать:

  • Написать правильный и достоверный ответ;
  • Отвечать подробно и ясно, чтобы ответ принес наибольшую пользу;
  • Писать грамотно, поскольку ответы без грамматических, орфографических и пунктуационных ошибок лучше воспринимаются.

Что делать не стоит:

  • Списывать или копировать что-либо. Высоко ценятся ваши личные, уникальные ответы;
  • Писать не по сути. «Я не знаю». «Думай сам». «Это же так просто» — подобные выражения не приносят пользы;
  • Писать ответ ПРОПИСНЫМИ БУКВАМИ;
  • Материться. Это невежливо и неэтично по отношению к другим пользователям.

Пример вопроса

Русский язык

7 минут назад

Какой синоним к слову «Мореплаватель»?

Пожаловаться

Хороший ответ

Вася Иванов

Мореплаватель — имя существительное, употребляется в мужском роде. К нему может быть несколько синонимов.

ВЫВОД МАССИВА В ОБРАТНОМ ПОРЯДКЕ C# | РАБОТА С МАССИВАМИ | СИ ШАРП УРОКИ | ДОМАШНИЕ ЗАДАНИЯ # 7


1. Моряк. Старый моряк смотрел вдаль, думая о предстоящем опасном путешествии;
2. Аргонавт. На аргонавте были старые потертые штаны, а его рубашка пропиталась запахом моря и соли;
3. Мореход. Опытный мореход знал, что на этом месте погибло уже много кораблей, ведь под водой скрывались острые скалы;
4. Морской волк. Старый морской волк был рад, ведь ему предстояло отчалить в долгое плавание.

Источник: uchi.ru

3. Ориентация на ленте

12 На ленте имеется некоторое множество меток (общее количество меток не менее 1). Между метками множества могут быть пропуски, длина которых составляет одну ячейку. Заполнить все пропуски метками.

13. На ленте имеется массив из n отмеченных ячеек. Каретка обозревает крайнюю левую метку. Справа от данного массива на расстоянии в m ячеек находится еще одна метка. Составьте для машины Поста программу, придвигающую данный массив к данной ячейке.

1. X 2 (удаляем левую метку массива)

3. ? 4; 2 (передвигаем каретку к концу массива)

4. V 5 (ставим справа от массива метку, раннее нами была удалена самая левая метка)

6. ? 7; 10 (проверяем, передвинули ли мы уже наш массив к заданной метке)

8. ? 9; 7 (идем к левой метке массива)

9. –> 1 (и начинаем все сначала)

14. Известно, что на ленте машины Поста находится метка. Напишите программу, которая находит ее.

Решение. Этот алгоритм решения заимствован из замечательной книги В.А. Успенского “Машина Поста”. Мы не знаем, в какую сторону нам надо двигаться, но, в какую бы сторону мы ни пошли, может случиться, что метка стоит в другой стороне. Очевидно, что нам надо двигаться попеременно, то в одну сторону, то в другую, постоянно увеличивая размах своих колебаний.

Создание и заполение массива на Си

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

1. V 2 (выставили левую метку)

4. ! (нашли метку, конец)

5. V 6 (выставили правую метку)

8. X 9 (стираем левую метку)

11. V 12 (передвигаем левую метку)

12. –> 13 (ищем правую метку)

14. X 15 (стираем правую метку)

15. –> 3 (повторяем действия)

4. Действия над заданным на ленте множеством меток

15. Дан массив меток. Каретка располагается где-то над массивом, но не над крайними метками. Стереть все метки, кроме крайних, и поставить каретку в исходное положение.

Решение. Метку, которую мы обозреваем в начальный момент времени, мы сотрем самой последней, т.к. нам нужно будет вернуть каретку в начальное положение. Мы можем, к примеру, сначала стереть все метки массива, кроме крайней справа от исходного положения, затем стереть все метки, кроме крайней слева от исходного положения. Потом вернуться к оставленной нами в самом начале метке.

Читайте также:
Временная приостановка основной программы для обработки запроса от внешнего устройства это

4. ? 5, 2 (удаляем метки справа от исходного положения)

12. ? 13; 10 (удаляем метки слева от исходного положения)

16. ? 15; 17 (возвращаемся к исходному положению)

17. X 18 (удаляем метку, соответствующую исходному положению каретки)

16. На ленте машины Поста расположен массив из n меток (метки расположены через пробел). Нужно сжать массив так, чтобы все n меток занимали n расположенных подряд ячеек.

Решение. Идея решения состоит в последовательном придвижении каждой отдельной метки к уже сформированному массиву. Считаем, что каретка находится над левой меткой массива. Программа решения данной задачи эквивалентна программе сложения произвольного количества чисел (см. задачу 6).

17. Дано несколько массивов меток. Удалить четные массивы. Каретка находится над первым массивом.

2. ? 3; 1 (идем до конца нечетного массива)

4. ? 5; 6 (смотрим, есть ли еще массивы)

5. ! (массивов больше нет — завершение)

6. X 7 (удаляем четный массив)

10. ? 5; 1 (смотрим: есть ли еще массивы)

18. На ленте машины Поста расположено n массивов меток, отделенных друг от друга свободной ячейкой. Каретка находится над крайней левой меткой первого массива. Определить количество массивов.

Решение. Идея решения такова: будем “считать” массивы слева направо, удаляя каждый “посчитанный” массив. При этом слева от последовательности оставшихся массивов будем держать массив меток, длина которого соответствует числу “посчитанных” массивов.

19. На ленте машины Поста расположен массив из 2n – 1 меток. Составить программу удаления средней метки массива.

Решение. Идея решения состоит в следующем: во вторых ячейках от каждого края массива ставим “маячки-пузырьки” (эти ячейки делаем пустыми). Далее последовательно перемещаем к центру левый и правый пузырьки. Эти пузырьки встретятся ровно на центральном элементе исходного массива. При реализации программы надо отдельно учесть три случая: n = 1, n = 3, n > 3. Считаем, что в начале работы каретка стоит на самой левой метке массива.

11. Х 12 (n > 3)

Источник: studfile.net

Иванов И.В. Машина Поста и Тьюринга

10. На ленте задан массив. Вычи слить остаток от деления длины заданного массива на 3.

Каретка располагается над первой ячейкой массива.

11. На ленте машины Поста расположен массив из n меток. Составить программу,

действуя по которой машина выяснит, делится ли число n на 3. Если да, то после массива

через одну пустую ячейку поставить метку.

Решение . Нужно проверить, что массив состоит не менее чем из трех меток, сместиться

правее них и снова решать ту же задачу. Если правее очередных трех меток окажется

пробел, то за ним поставить еще одну метку.

3. Ориентация на ленте

12 На ленте имеется некоторое множество меток (общее количество меток не менее 1).

Между метками множества могут б ыть пропуски, длина которых сост авляет одну ячейку.

Заполнить все пропуски метками.

13. На ленте и меется массив из n отмеченных ячеек. Карет ка обозревает крайнюю левую

метку. Справа от данного массива на расстоянии в m ячеек находится еще одна метка.

Составьте для машины Поста программу, придвигающую данный массив к данной ячейке.

1. X 2 (удаляем левую метку массива)

3. ? 4; 2 (передвигаем каретку к концу массива)

4. V 5 (ставим справа от массива метку, раннее нами была удалена самая левая метка)

6. ? 7; 10 (проверяем, передвинули ли мы уже наш массив к заданной метке)

8. ? 9; 7 (идем к левой метке массива)

9. –> 1 (и начинаем все сначала)

14. Известно, чт о на лент е маши ны Поста находитс я метк а. Напиш ите программу, котора я

находит ее.

Решение . Этот алгоритм решения заимствован из замечательной книги В.А. Успенского

Читайте также:
Составьте программу которая предлагает ввести с клавиатуры две строки

“Машина Поста”. Мы не знаем, в какую сторону нам надо двигаться, но, в какую бы

сторону мы ни пошли, может случиться, что мет ка стоит в другой стороне. Очевидно, что

нам надо двигаться попеременно, то в одну сторону, то в другую, постоянно увеличивая

размах своих колебаний. Но как определить момент, когда надо поворачивать, т.е. менять

направление? Выход из положения есть. Вначале работы выставим метки слева и справа

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

1. V 2 (выставили левую метку)

4. ! (нашли метку, конец)

5. V 6 (выставили правую метку)

6. <– 7 (ищем левую метку)

8. X 9 (стираем левую метку)

11. V 12 (передвигаем левую метку)

12. –> 13 (ищем правую метку)

14. X 15 (стираем правую метку)

15. –> 3 (повторяем действия)

4. Действия над заданным на ленте множеством меток

15. Дан массив меток. Каретка располагается где-то над массивом, но не над крайними

метками. Стереть все метки, кроме крайних, и поставить каретку в исходное положение.

Решение . Метку, которую мы обозреваем в начальный момент времени, мы сотрем самой

последней, т.к. нам нужно будет вернуть каретку в начальное положение. Мы можем, к

примеру, сначала стереть все мет ки масси ва, к роме крайней сп рава от исходного

положения, затем ст ереть в се метки, кроме крайней слева от исходного положен ия. Потом

вернуться к оставленной нами в самом начале метке.

4. ? 5, 2 (удаляем метки справа от исходного положения)

7. <– 8 (возвращаемся к исходному положению)

12. ? 13; 10 (удаляем метки слева от исходного положения)

16. ? 15; 17 (возвращаемся к исходному положению)

17. X 18 (удаляем метку, соответствующую исходному положению каретки)

16. На ленте машины Поста расположен массив из n меток (метки расположены через

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

Решение . Идея решения состоит в последовательном придвижении каждой отдельной

метки к уже сформированному массиву. Считаем, чт о каретка находится над левой метк ой

массива. Программа решения данной задачи эквивалентна программе сложения

произвольного количества чисел (см. задачу 6).

17 . Дано несколько массивов меток. Удалить четные массивы. Каретка находится над

первым массивом.

2. ? 3; 1 (идем до конца нечетного массива)

4. ? 5; 6 (смотрим, есть ли еще массивы)

5. ! (массивов больше нет — завершение)

6. X 7 (удаляем четный массив)

10. ? 5; 1 (смотрим: есть ли еще массивы)

18. На ленте машины Поста расположено n массивов меток, отделенных друг от друга

свободной ячейкой. Каретка находится над крайней левой меткой первого массива.

Определить количество массивов.

Решение . Идея решения такова: будем “считать” массивы слева направо, удаляя каждый

“посчитанный” массив. При этом слева от последовательности оставшихся массивов

будем держат ь массив меток, длина которого соответст вует числу “посчитанных”

19. Н а ленте машины Поста расположен массив из 2 n – 1 меток. Составить программу

удаления средней метки массива.

Решение . Идея решения состоит в следующем: во вторых ячейках от каждого края

массива ставим “маячки-пузырьки” (эти ячейки делаем пустыми). Далее последовательно

перемещаем к центру левый и правый пузырьки. Эти пузырьки встретятся ровно на

центральном элементе исходного массива. При реализации программы надо отдельно

учесть три случая: n = 1, n = 3, n > 3. Счит аем, что в начале работы каретка стоит на самой

левой метке массива.

3. <– 4 ( n = 1)

11. Х 12 ( n > 3)

14. V 15 (дошли до левого конца)

19. V 9 (дошли до правого конца)

20. ! (стерли центральную метку, конец)

20. На ленте машины Поста расположен массив из 2 n ячеек. Составить программу, по

которой машина Поста раздвинет на расстояние в одну ячейку две половины данного

Читайте также:
Лучшая программа для учета трафика интернета

Решение . Идея решения состоит в следующем. Сначала между двумя левыми и двумя

правыми метками ставим “маячки” — пустые клетки. Первым ставим левый маячок.

Затем поочередно сдвигаем эти маячки к центру. Как только маячки сомкнутся, вместо

правого маячка ставим метку, идем к правому краю массива и удаляем самую правую

метку. Для простоты решения считаем, что каретка стоит под самой левой меткой.

21. Написать программу, которая осуществляет преобразование 1

Решение . Правый массив длины m остается на месте, левый массив переносится слева

направо относительно неподвижного массива.

5. Сравнение

22. На ленте расположены два массива разной длины. Каретка обозревает крайний

элемент одного из них. Составьте программу для машины Поста, сравнивающую длины

массивов и стирающую больший из них. Отдельно продумайте случай, когда длины

массивов равны.

Решение аналогично нахождению разности двух чисел.

23. На ленте машины Поста находятся два массива в m и n меток. Составить программу

выяснения, одинаковы ли массивы по длине.

Решение аналогично нахождению разности двух чисел.

24. Дано N массивов меток. Массивы разделены тремя пустыми ячейками. Количество

меток в массиве не меньше двух. Если количество меток в массиве кратно трем, то стереть

метки в этом массиве через одну, в противном случае стереть весь массив. Каретка

находится над крайней левой меткой первого массива.

Решение . В задаче присутствует большое количество условий. Вместе с тем реализация

этих условий требует лишь внимательного составления программы.

Машина Тьюринга

Во многих учебниках по информатике при изучении понятия и свойств алгоритма

присутствуют фразы такого содержания: “…существует много разных способов для

записи одного и того же алгоритма, например, запись в в иде текста, запись в в иде блок-

схемы, запись на каком-либо алгоритмическом языке, представление алгоритма в виде

машины Тьюринга или машины Поста…”. К сожалению, такого типа ф раз ы являются

единственными, где упоминается машина Тьюринга. Без сомнения, объем часов,

отводимых на изучение алгоритмов, не позволяет включать в эту тему еще и изучение

способов записи алгоритма в виде машины Тьюринга. Но эта тема крайне интересна,

важна и полезна для школьников, особенно увлекающихся информатикой.

Тема “Машина Тьюринга” может изучаться в 8–11-х классах в рамках темы

“Информационные процессы. Обработка информации”, на факультативных занятиях, в

системе дополнительного образования, например, в школах юны х программистов.

Изучение этой темы может сопровождаться компьютерной поддержкой, если у учителя

есть программный тренажер-имитатор “Машина Тьюринга”. В классах с углубленным

изучением программирования школьники могут самостоятельно написать программу

“Машина Тьюринга ”. В рамках этой статьи вашему вни манию предлагается практ икум по

решению задач на тему “Машина Тьюринга”. Те оретический материал по данной теме не

раз печатался на страницах газеты “Информатика”, например, в № 3/2004 статья И.Н.

Фалиной “Элементы теории алгоритмов”.

Краткий теоретический материал

Машина Тьюринга — это строгое математическое построение, математический аппарат

(аналогичный, например, аппарату дифференциальн ых уравнений), созданный для

решения определенных задач. Этот математический аппарат бы л назван “машиной” по

той причине, что по описанию его составляющих частей и функционированию он похож

на вычислительную машину. Принципиальное отличие машины Тьюринга от

вычислительных машин состоит в том, что ее запоминающее устройство представляет

собой бесконечную ленту: у реальных вычислительных машин запомина ющее устройство

может быть как угодно большим, но обязательно конечным. Машину Тьюринга нельзя

реализовать именно из- з а бесконечности ее ленты. В этом смысле она мощнее любой

вычислительной машины.

В каждой машине Тьюринга есть две части:

1) неограниченная в обе стороны лента , разделенная на ячейки;

2) автомат (головка для считывания/записи, управляемая программой).

С каждой машиной Тьюринга связаны два конечных алфавита : алфавит входных

Источник: www.studmed.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru