Главная » Все файлы » Просмотр файлов из архивов » PDF-файлы » Ничушкина Т.Н., Гуренко В.В. - Разработка алгоритмов простейших программ

Ничушкина Т.Н., Гуренко В.В. - Разработка алгоритмов простейших программ, страница 6

PDF-файл Ничушкина Т.Н., Гуренко В.В. - Разработка алгоритмов простейших программ, страница 6 Языки интернет-программирования (17405): Книга - 5 семестрНичушкина Т.Н., Гуренко В.В. - Разработка алгоритмов простейших программ: Языки интернет-программирования - PDF, страница 6 (17405) - СтудИзба2017-12-28СтудИзба

Описание файла

PDF-файл из архива "Ничушкина Т.Н., Гуренко В.В. - Разработка алгоритмов простейших программ", который расположен в категории "". Всё это находится в предмете "языки интернет-программирования" из 5 семестр, которые можно найти в файловом архиве МГТУ им. Н.Э.Баумана. Не смотря на прямую связь этого архива с МГТУ им. Н.Э.Баумана, его также можно найти и в других разделах. Архив можно найти в разделе "книги и методические указания", в предмете "языки интернет-программирования" в общих файлах.

Просмотр PDF-файла онлайн

Текст 6 страницы из PDF

«Разработка алгоритмов простейших программ»41Рисунок 3.13 – Схема алгоритма слияния отсортированных массивов3.1.6. Поиск в массиве элемента, отвечающего заданному условиюКэтомуклассуотносятся,например,следующиезадачи:поискпервогоотрицательного, первого положительного и любого первого элемента, отвечающегонекоторому условию, поиск первого или единственного элемента, равного некоторомуконкретному значению, а также поиск всех элементов массива, отвечающих заданномуусловию. В рамках настоящего учебного пособия ограничимся задачей поиска первого илиединственного элемента, удовлетворяющего условию.ОглавлениеНичушкина Т.Н., Гуренко В.В. «Разработка алгоритмов простейших программ»42Особенностью задачи является отсутствие необходимости просмотра всего массива:перебор элементов нужно закончить сразу, как только требуемый элемент будет найден.При этом может выполнять как поэлементный просмотр, так и выборочную обработкумассива.

Однако в худшем случае для поиска элемента потребуется полный перебор всехэлементов массива. Такой поиск называется линейным. Если размер массива невелик, тозатратами времени на линейный поиск можно пренебречь. Однако в больших массивахполный перебор приводит к заметным затратам машинного времени. Следовательно,требуется оптимизация поискового алгоритма. Примерами оптимизирующих алгоритмовмогут служить поиск с «барьером» и двоичный (бинарный) поиск.Чаще всего при программировании поисковых задач используются циклы с предили постусловием, которое фактически представляет собой конъюнкцию двух условий:первое – пока искомый элемент не найден, второе – пока массив не исчерпан.

Послевыхода из цикла осуществляется проверка, по какому из условий произошел выход.Рассмотрим следующие примеры.Пример 3.10. Задан массив из n целых чисел. Присвоить переменной k значение true,если в массиве существуют два равных элемента, стоящих рядом, и false в противномслучае.Задачу можно решить, если, например, последовательно сравнить каждый элементмассива с последующим. Так как в худшем случае пара одинаковых элементов можетнаходиться в самом конце массива или вовсе не существовать, то одним из условийявляется достижение конца массива, а другим – обнаружение двух одинаковых соседнихэлементов. Схему алгоритма решения данной задачи см.

на рисунке 3.14.ОглавлениеНичушкина Т.Н., Гуренко В.В. «Разработка алгоритмов простейших программ»43Рисунок 3.14 – Схема алгоритма поиска пары одинаковых элементов в массивеПример 3.11. Среди элементов массива, стоящих на четных местах, найти первыйотрицательный элемент.Логика решения задачи ясна из схемы алгоритма, показанной на рисунке 3.15.Рисунок 3.15 – Схема алгоритма поиска в массиве первого отрицательного элемента на четном местеОглавлениеНичушкина Т.Н., Гуренко В.В. «Разработка алгоритмов простейших программ»443.2.

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

Это значит, что в каждом классе имеется гораздо большеразличных вариантов решений, да и самих задач также. Каждая конкретно поставленнаязадача обработки матрицы содержит целый ряд подзадач, относящихся к разным классам.3.2.1. Последовательная обработка элементов матрицыК данному типу задач относятся не только те, при решении которых требуетсяобработать все элементы матрицы, но также и задачи по обработке отдельно строк илиотдельно столбцов.

Кроме того, к этому классу могут быть отнесены и задачиввода-вывода матриц. Особенности программирования в данном случае, в основном, теже, что и для одномерных массивов (см. раздел 4.1.1).Рассмотрим некоторые типовые алгоритмы задач первого класса.Пример 3.12. Дана целочисленная квадратная матрица порядка n.

Найти наибольшийэлемент матрицы и количество таких элементов.Для решения задачи необходимо организовать цикл для перебора всех элементовматрицы. Так как матрица является двумерным массивом, то потребуются два цикла: одинпо строкам, второй – по столбцам. Один из циклов, обычно тот, в котором перебираютсяэлементы столбцов, должен быть вложенным в другой, то есть для каждой строкиматрицы перебираются принадлежащие ей элементы всех столбцов.

В остальном алгоритмрешения задачи (см. рисунок 3.16) схож с алгоритмом нахождения наибольшего элементаодномерного массива.ОглавлениеНичушкина Т.Н., Гуренко В.В. «Разработка алгоритмов простейших программ»45Рисунок 3.16 – Схема алгоритма поиска наибольших элементов матрицыПример 3.13. Дана целочисленная матрица A(n, m). Вычислить сумму каждой строкии результат записать в массив B(n).Для нахождения суммы элементов строки с номером i необходимо организоватьцикл, перебирающий все ее элементы. Поэтому параметром этого цикла следует выбратьномер столбца j.

Перед циклом с параметром j необходимо задать начальное значениесуммы S=0. После окончания цикла результат присваивается элементу массива B(i). Дляобеспечения обхода всех строк матрицы параметром внешнего цикла назначаемпеременную i – индекс строки. Схема алгоритма показана на рисунке 3.17).ОглавлениеНичушкина Т.Н., Гуренко В.В. «Разработка алгоритмов простейших программ»46Рисунок 3.17 – Схема алгоритма вычисления суммы элементов каждой строки матрицы3.2.2.

Изменение порядка следования элементов матрицыЗдесь, как и в задачах, рассмотренных в разделе 3.1.3, размер исходной матрицысохраняется, меняется лишь порядок следования ее элементов. В качестве примера задачданного класса рассмотрим задачу перемещения элементов матрицы.Пример 3.14. Дана действительная квадратная матрица порядка 2n. Получить новуюматрицу, переставляя ее блоки размера nn в соответствии с показанной схемой:Для решения данной задачи, как и других подобных задач, необходимопроанализировать, как будет происходить модификация индексов элементов матрицы всоответствии с поставленным условием изменения порядка их следования, и выработатьправило преобразования индексов.

Будем считать, что после преобразования исходнойматрицы А получается новая квадратная матрица В того же порядка 2n. ИзучивОглавлениеНичушкина Т.Н., Гуренко В.В. «Разработка алгоритмов простейших программ»47соответствиемеждуэлементамиматрицAиB,получаемследующийзаконпреобразования: A(i  n, j  n), A(i  n, j  n),B(i , j )   A(i  n, j  n), A(i  n, j  n),еслиi  n, j  n;еслиi  n, j  n;еслиi  n, j  n;еслиi  n, j  n.Схема алгоритма решения задачи представлена на рисунке 3.18.Рисунок 3.18 – Схема алгоритма перестановки элементов матрицыСледует отметить, что приведенные примеры не охватывают всего многообразиязадач на обработку матрицам.

Как было отмечено выше, в процессе алгоритмическогорешения многих из них используются приемы, применяемые при обработке одномерныхмассивов. Однако существуют и специфические приемы, относящиеся именно кматрицам. Они требуют отдельного, более детального рассмотрения, что выходит запределы задачи, которую ставили перед собой авторы настоящего учебного пособия.ОглавлениеНичушкина Т.Н., Гуренко В.В. «Разработка алгоритмов простейших программ»48Контрольные вопросы1. Что называют массивом? Каким образом определяется место каждого элемента в массиве?2.

Какие классы задач обработки массивов можно выделить?3. Какой тип цикла наиболее подходит для последовательной обработки всех элементовмассива? Приведите примеры задач данного класса.4. В чем состоит основная особенность алгоритмизации задач выборочной обработкиэлементов массива? Приведите примеры подобного рода задач.5. В чем заключается задача сортировки одномерного массива? Какие методы сортировки вызнаете?6. Сформулируйте основные алгоритмические особенности каждого из рассмотренныхметодов сортировки одномерных массивов.7. Перечислите основные особенности алгоритмов решения задач переформирования массива сизменением его размера. Приведите примеры таких задач.8.

Каковы особенности алгоритмизации задач, связанных с одновременной обработкойнескольких массивов?9. Какова особенность алгоритмического решения задач поиска в массиве элемента,отвечающего заданному условию? Какие типы циклов при этом чаще всего используются?10. В чем состоит специфика обработки матриц по сравнению с приемами обработкиодномерных массивов?11. В чем состоит особенность организации циклического процесса при последовательнойобработке всех элементов матрицы?12. Какую аналитическую работу необходимо выполнить перед составлением алгоритмарешения задачи, связанной с изменением порядка следования элементов в матрице?ОглавлениеНичушкина Т.Н., Гуренко В.В.

«Разработка алгоритмов простейших программ»49Литература1. Иванова Г.С. Программирование: учебник. – М.: КНОРУС, 2013. – 432 с. – (Бакалавриат).2. Демидович Б.П., Марон И.А. Основы вычислительной математики. М.: Изд-во «Лань»,2009. – 672 с.ОглавлениеНичушкина Т.Н., Гуренко В.В. «Разработка алгоритмов простейших программ».

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