M: Additional Tasks

Домашние задания

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


Задачи на линейные вычисления

ML: Задачи на линейные вычисления
KM: Задачи из журнала "Квант"

Линейные алгоритмы предполагают последовательную (линейную) запись без ветвлений или повторов. Это самый простой для восприятия тип алгоритмов. Пример решения задачи на использование такого типа алгоритмов можно найти здесь. С помощью таких структурно несложных алгоритмов мы сможем потренироваться в решении задач. Во всех задачах этого раздела входные данные необходимо читать из стандартного потока ввода, а выводить результаты в стандартный поток вывода.

Линейные вычисления

Это первая практическая тема при изучении программирования. Предварительно следует проработать как минимум главу 2 и 4 учебника С.Липпмана. Обратите внимание, что умница-переводчик и операции и операторы называет одинаково операторами. Т.е. каждый раз встречая в главе 4 слово «оператор» выполняйте замену на «операция». Или сразу читайте английский вариант, где operator = операция, а statement = оператор. … Continue reading

нет комментариев

Задачи на алгоритмы с ветвлением

Алгоритмы с ветвлением предполагают наличие (точек принятия решения) в которых происходит выбор пути по которому пойдёт вычислительный процесс. После исключения из практики программирования операторов перехода goto (из-за запутывания кода и сложности его восприятия человеком), ветвление стало самым «нежелательным» элементом программирования. Однако пока его использование неизбежно. Но старайтесь не злоупотреблять им. Всегда хорошо продумывайте структуру ветвлений и делайте ее читаемой.Для реализации ветвления в Java обычно используют условный оператор (if, if-else) или оператор выбора или оператор-переключатель (switch). Оператор switch обычно используют, когда нужно разветвить вычислительный процесс на количество веток более чем две. Практически это множественный оператор условного перехода на одну из меток в программе в зависимости от значения некоторого выражения. Этим он кардинально отличается от условного оператора в котором ветки полностью изолированы друг от друга. Т.е. после перехода на соответствующую метку, программа продолжает выполняться дальше по всем записанным ниже веткам. Для изменения такого поведения приходится в нужных местах расставлять оператор break. Потренируйтесь в написании оператора переключателя на этой несложной задаче. Близкой к операторам ветвления является тернарная условная операция ?:. Однако цель её использования несколько иная. Тернарная условная операция возвращает значение своего второго или третьего операнда в зависимости от истинности логического выражения, которое стоит на месте первого операнда. Т.е. фактически ветвление происходит внутри скрытой от нас реализации этой операции, но не в нашей программе. Не используйте условный оператор там, где можно использовать тернарную условную операцию. Например, если необходимо напечатать слова «четный»/»нечетный» в зависимости от значения числа, то условному оператору здесь не место.

Mif: Задачи на алгоритмы с ветвлением

Программы с ветвлением

В этом разделе нам придется писать программы в которых вычислительный процесс проходит по-разному в зависимости от выполнения или нарушения некоторого условия. Условия будут иногда довольно сложные. Организовать такое ветвление мы можем либо при помощи условного выражения (тернарной операции __?__:__), либо при помощи условного оператора (if(__)…else…). Обратите внимание, что если в зависимости от некоторого условия значение … Continue reading

нет комментариев

Обработка потоков данных

MS: Потоковая обработка информации

Потоковая обработка

Так называют группу задач в которых производится циклическая обработка большого объёма данных следующих во входном потоке без их запоминания в программе. К таким задачам относится, например, суммирование всех чисел из входного потока. А также поиск максимума или минимума этих чисел. Существенным признаком таких задач является однократный просмотр каждого элемента данных без возможности вернуться к нему … Continue reading

нет комментариев

Задачи на циклы

MLoop: Цикл


D: Частные суммы рядов
MLoops: Циклы

Циклы

Циклические, повторяющиеся много раз однотипные вычисления позволяют наилучшим образом продемонстрировать вычислительные возможности компьютеров. Ради этого их изначально и создавали. В задачах этого раздела желательно снова перечитать параграф 5.4 из праймера посвященный «итерационным операторам» (так они назвали семейство из нескольких операторов цикла). Часть 5.4.3 можете пока пропустить, поскольку мы еще не изучали структур данных для которых … Continue reading

нет комментариев

Разное

Задачи M1-M18

Мазурок Игорь Евгеньевич

Мазурок Игорь Евгеньевич

Разработчик программного и информационного обеспечения.
Доцент Одесского национального университета имени И.И.Мечникова
Учёный в области защиты и противодейтствия в интеллектуальных информационных системах
Мазурок Игорь Евгеньевич

Latest posts by Мазурок Игорь Евгеньевич (see all)