AOP_Tom1 (1021736), страница 79

Файл №1021736 AOP_Tom1 (Полезная книжка в трёх томах) 79 страницаAOP_Tom1 (1021736) страница 792017-07-10СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 79)

АЗ. [Сложение коэффициентов.) (Найдены члены с одинаковыми степенями.) Если АВС(Р) < О, выполнение алгоритма прекращается. В противном случае установить СОЕР(Ц) +- СОЕР(Ц) + СОЕР(Р), Теперь, если СОЕР(Ц) = О, перейти к шагу А4; в противном случае установить Р +- ЫМК(Р), Ц1 +- Ц, Ц е- 1.1ИК(Ц) и перейти к шагу А2.

(Любопытно, что последние операции идентичны шагу А1.) А4. [Удаление нулевого члена.) Установить Ц2 е- Ц, ЫМК(Ц1) < — Ц +- ЫМК(Ц) и АЧА11 с.= Ц2. (Порожденный на шаге АЗ нулевой член удален из многочлена (Ц) .) Установить Р +- ЫИК(Р) и вернуться к шагу А2. АЗ.

[Вставка нового члена.] (Многочлен (Р) содержит член, который отсутствует в многочлене (Ц), поэтому его необходимо вставить в многочлен (Ц).) Установить Ц2 с= АЧАП., СОЕР(Ц2) е — СОЕР(Р), АВС(Ц2) е — АВС(Р), 11МК(Ц2) +- Ц, ЫМК(Ц1) +- Ц2, Ц1+- Ц2, Р+ — ЫИК(Р) и вернуться к шагу А2. ) Одна нз наиболее замечательных особенностей алгоритма А заключается в способе следования указателя Ц1 за указателем Ц в списке.

Этот способ типичен для алгоритмов обработки списков, и мы не раз еще встретим алгоритмы с такой же особенностью. Может ли читатель объяснить, почему данная идея использовалась в алгоритме А? Читателю с небольшим опытом работы со связанными списками будет очень полезно внимательно изучить алгоритм А, например в качестве упражнения попробовать сложить многочлены х + у+ х и х — 2у — г. г Зная алгоритм А, можно удивительно просто создать следующий алгоритм для операции умножения. Алгоритм М (Умножение многочленов). Этот алгоритм аналогичен алгоритму А и заменяет многочлен (Ц) суммой многочлен (Ц) + многочлен (И) х многочлен (Р). М1.

[Следующий множитель.] Установить И е — 1.1ИК(И). Если АВС(И) < О, то выполнение алгоритма прекращается. М2. [Цикл умиожения.] Выполнить алгоритм А, но всякий раз, когда появляется обозначение "АВС(Р)", заменить его командой "если АВС(Р) < О, то -1; в противном случае АВС(Р)+АВС(И)"; когда появляется обозначение "СОЕР(Р)", заменить его командой" "СОЕР(Р) х СОЕР(И)". Затем перейти к шагу М1. $ Программирование алгоритма А на языке компьютера И1Х вновь демонстрирует легкость, с которой компьютер может манипулировать связанными списками. В приведенном ниже коде предполагается, что ори возникновении переполнения (ОЧЕНР10М) вызывается подпрограмма, которая либо завершает выполнение программы (из-за нехватки памяти), либо находит свободное пространство и выходит на г8 — 2.

Программа А (Слоэгсение многочленов). Эта подпрограмма (рнс. 10) создана так, чтобы ее можно было использовать вместе с подпрограммой умножения (см. упр. 15). Вызов: 1ИР А 00. Состояние до вызова: гП = Р, г12 = Ц. Состояние после вызова: Многочлен (Ц) заменяется суммой: многочлен (Ц) + многочлен (Р); гП и г12 остаются неизменными; все другие регистры имеют неопределенное содержимое. Рис. 10. Сложение многочленов. В приведенном ниже коде Р ЕК гП, Ц = г12г Ц1 = г13 и Ц2 = г16 для принятых в алгоритме А обозначений. 1 1+ ага 1+ пг'~ 1Ч-Р 1+И Р'+ Ч' г) Ч Ч пг -ь 1 01 1.1МК 08 АВС 08 А00 01 1Н ОБ Об ОН 07 ЯМ1 08 2Н ОУ 10 11 18 18 11 ЗН 18 ЯМ2 1б ЕЦО 4:Ь ЕЦО 0:3 ЯТЗ ЗР ЕМТЗ 0,2 102 1,3(1.1МК) 1.01 1,1(1.1МК) 10А 1,1 СИРА 1,2(АВС) ЛЕ ЗР 10 ЯР ЕМТЗ 0,2 1.02 1,3(1.1МК) ЗИР 2В )АМ ЫА 0,1 АОО 0,2 Определение поля 1.1ИК.

Определение поля АВС. Вход в подпрограмму. гг~е ьгк г, Ц +- 11ИК(01). Р +- 1.1МК(Р). гА(0:3) +- АВС(Р). ггг. г~гг шгэг, Если равно, перейти к шагу АЗ. Если больше, перейти к шагу А5. Если меньше, установить 01 +- Ц. Ц ь- 11ИК(Ц1). Повторить. АЗ. Сложение коз и нентов.

СОЕР(Р) + СОЕР(Ц) -+ СОЕР(Ц). Если не равно нулю, совершить переход. А4. У аление и левого члена. Ц2 ь- Ц. Ц <- ЫИК(Ц) ЫИК021) +- Ц. Перейти с продвижением указателя Р. А5. Вставка нового члена. Ц2 ~ АЧАТ) АВС(Ц2) <- АВС(Р). гА +- СОВР(Р). СОЕР(Ц2) +- гА. ЫИК(Ц2) +- Ц. ЫИХ(Ц1) +- Ц2. 01+- 02, Перейти с продвижением указателя Р. Обратите внимание, что в алгоритме А предусмотрен только однократный проход каждою списка, причем для их обработки не пришлось выполнять несколько циклов. Используя закон Кнрхгофа, без особого труда найдем, что количество команд н время выполнения зависят от следующих четырех величин: т' — количество подобных членов, которые взаимно сокращаются; гл" — количество подобных членов, которые нельзя сократить; )1 — количество членов в многочлене (Р), для которых нет подобных членов в многочлене(Ц); д' — количество членов в многочлене (Ц), для которых нет подобных членов в многочлене (Р).

Анализ программы А с помощью обозначений т = т' + т", р = т + р', д = т + д', х = 1 + т + р' ч- д' позволяет получить следующую оценку времени ее выполнения на компьютере М1Х: (27т'+ 18т" + 27р'+ 8о' + 13)и. Минимальное количество узлов в пуле, которые необходимы для выполнения алгоритма, равно 2+ р + д, а максимальное — равно 2+р+д+р. УПРАЖНЕНИЯ 1. [21] В начале этого раздела было предложено представлять пустой циклический список с помощью указателя РТЕ = Л. Однако согласно идеологии создания циклических списков для обозначении пустого списка более последовательно было бы использовать значение РТЕ = 1.ОС(РТЕ).

Упрощает ли такое условие выполнение операций (а) — (с), которые описаны в начале этого раздела? 2. [20[ Нарисуйте схемы состояний "до" и "после", которые демонстрируют результат выполнения операции конкатенации (3) при условии, что РТВ~ и РТЕэ не равны Л. 17 1В 19 2О 21 22 22 2А 25 Еб ЯН 27 2В 29 бб 21 ЯИЗ 22 Уу .14 бб уб ЯТА 0,2 ЗАМЕ 1В ЕМТ6 0,2 ЕР2 1,2(ЫМКУ 1.0Х АЧАУЛ. ЯТХ 1,60 1МК) ЯТ6 АЧА1 ЯТ2 1„3(1,1МК) ЗМР ОВ 106 АЧА1) З62 ОЧЕВРЬОИ ЕВХ 1,6(ЫМК) БТХ АЧШ БТА 1,6 ЕРА 0,1 ЯТА 0,6 ЯТ2 1,6(ЫМК) БТ6 1,3(1.|МК) ЕМТЗ 0,6 ЗМР ОВ т т' т' т' т' т' т' т' Р Р' Р Р Р Р Р Р Р Р Р 3. [20] Каким будет результат выполнения операции (3), если оба указателя РТЕг и РТЯэ направлены на узлы одного а тяго хсг циклического списка? 4.

[ЯО] Сформулируйте операции вставки и удаления, которые в результате позволят использовать список (4) как стгьЬ ° б. [31] Создайте алгоритм, который обращает циклический список, т. е. направления всех стрелок на схеме (1). б. [10] Нарисуйте схему представления следующих многочленов в виде списков: (а) хг — 3; (Ь) О. Т. [10] В чем заключается преимущество расположения членов многочлена в порядке убывания значений поля АВС? Я. [10] В чем заключается преимущество следования указателя Ц1 за указателем О в алгоритме А? ° 9. [Еу] Будет ли алгоритм А функционировать правильно, если Р = О (т.

е. оба указателя указывают на один н тот же многочлен)? В каком случае алгоритм М будет работать правильно: если Р = Н, если Р = Ц или если И = Ц? ° 10. [ЯО] При создании алгоритмов в данном разделе предполагалось, что в многачленах используются три переменные х, р и г, а их степени по отдельности никогда не превышают Ь вЂ” 1 (где 6 — размер байта в компьютере И1Х).

Вместо этого предположим. что осуществляется сложение и умножение многочленов от одной переменной, х, степень которой может достигать значения Ь вЂ” 1. Какие изменения следует внести в алгоритмы А и М? 11. [Ед] (Назначение этого упражнения и многих следующих заключается в создании пакета подпрограмм арифметики многочленов для совместной работы с программой А.) Поскольку алгоритмы А и М изменяют многочлен (О), иногда полезно иметь подпрограмму, которая делала бы копию исходного многочлена. Напишите программу для компьютера НТХ со следующими заданными спецификациями. Вызов; Л(Р СОРТ.

Состояние до вызова: г11 = Р. Состояние после вызова: Н2 указывает на вновь созданный многочлен, равный многочлену (Р); г11 остается неизменным; другие регистры не определены. 12. [Я)] Сравните время выполнения программы из упр, 11 и время выполнения алгоритма А, если многочлен(О) = О. 13. [ЯО] Напишите подпрограмму для компьютера Н1Х со следующими спецификациями. Вызов: УИР ЕЕАЯЕ, Состояние до вызова: г11 = Р.

Характеристики

Тип файла
DJVU-файл
Размер
7,53 Mb
Тип материала
Высшее учебное заведение

Список файлов книги

Свежие статьи
Популярно сейчас
Как Вы думаете, сколько людей до Вас делали точно такое же задание? 99% студентов выполняют точно такие же задания, как и их предшественники год назад. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6458
Авторов
на СтудИзбе
304
Средний доход
с одного платного файла
Обучение Подробнее