Книжная полка Сохранить
Размер шрифта:
А
А
А
|  Шрифт:
Arial
Times
|  Интервал:
Стандартный
Средний
Большой
|  Цвет сайта:
Ц
Ц
Ц
Ц
Ц

Сборник задач по программированию

Покупка
Артикул: 103180.03.99
Доступ онлайн
140 ₽
В корзину
Структура пособия соответствует учебной программе дисциплины «Информатика и программирование». Первая часть содержит около 600 задач по теории программирования и языкам программирования Visual Basic и Pascal. Вторая часть (занимает более половины объема пособия) включает решение значительного числа задач или указания к их решению. Представлены краткий перечень необходимых понятий и список рекомендуемой литературы. Для студентов, обучающихся по специальности «Прикладная информатика в экономике» и по смежным специальностям, а также для учащихся старших классов колледжей и лицеев систем общего образования. Может быть использовано для самостоятельной внеаудиторной работы, а также при дистанционном обучении.
Мишенин, А. И. Сборник задач по программированию : учебное пособие / А. И. Мишенин. - Москва : Финансы и Статистика, 2021. - 224 с. - ISBN 978-5-00184-039-8. - Текст : электронный. - URL: https://znanium.com/catalog/product/1541948 (дата обращения: 22.11.2024). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов
ФИНАНСЫИСТАТИСТИКА
МОСКВА
2021

ÝËÅÊÒÐÎÍÍÎÅ ÈÇÄÀÍÈÅ

УДК 004.4(076.1)
ББК 32.973.26-018.2я73
М71

Структура пособия соответствует учебной программе дисциплины «Информатика и программирование». Первая часть содержит около 600 задач по
теории программирования и языкам программирования Visual Basic и Pascal.
Вторая часть (занимает более половины объема пособия) включает решение
значительного числа задач или указания к их решению. Представлены краткий перечень необходимых понятий и список рекомендуемой литературы.
Для студентов, обучающихся по специальности «Прикладная информатика в экономике» и по смежным специальностям, а также для учащихся
старших классов колледжей и лицеев систем общего образования. Может
быть использовано для самостоятельной внеаудиторной работы, а также при
дистанционном обучении.

УДК 004.4(076.1)
ББК 32.973.26-018.2я73

Р Е Ц Е Н З Е Н Т Ы :

кафедра «Информационные технологии»
Федерального государственного образовательного учреждения
высшего профессионального образования
«Финансовая академия при Правительстве
Российской Федерации»;
В.П. Грибанов,
профессор кафедры
«Математическое обеспечение и технологии программирования»
Московского государственного университета экономики,
статистики и информатики (МЭСИ)

Мишенин А.И.
Сборник задач по программированию: учеб. пособие /
А.И. Мишенин. – Эл. изд. – 1 файл pdf: 224 с. – М.: Финансы и статистика, 2021. – Текст: электронный.
ISBN 978-5-00184-039-8

М 71

© Мишенин А.И., 2009, 2021
© ООО «Издательство «Финансы
ISBN 978-5-00184-039-8
и статистика», 2021

Предисловие

Пособие предназначено для студентов вузов, изучающих программирование в рамках дисциплин «Информатика» и «Информатика и программирование», но может использоваться и учащимися лицеев, колледжей и других учебных заведений системы
общего образования, в том числе школьниками старших классов. Может быть полезно также при самостоятельном изучении
программирования.
Сборник состоит из двух частей: первая часть содержит около 600 задач различного уровня сложности, а вторая часть (она
занимает более половины объема данного издания) – решение
задач на языках программирования Visual Basic и Pascal и указания к их решению.
В пособии реализован методический подход «от простого –
к сложному». Задачи разделов 1 и 2 рекомендуется решать в том
порядке, в котором они приведены в книге, а задачи разделов
3–5 можно выбирать самостоятельно.
Значительное число задач сопровождается решениями или
указаниями к их решению. Решение дано в тех случаях, когда
впервые используется важный прием программирования либо
когда в условии задачи встречается новое понятие. Задачи, для
которых во второй части книги приводятся указания, обозначены буквой У в скобках, а задачи, для которых даны решения, –
буквой Р (также в скобках).
Наличие решений предоставляет возможность применять
данный сборник задач для самостоятельной внеаудиторной работы, а также в образовательных системах открытого образования и дистанционного обучения.
Сложность задач оценивается тремя уровнями, обозначенными звездочками:
первый уровень * –
простая задача;
второй уровень ** – задача средней сложности;
третий уровень *** – трудная задача.
Естественной границей для трудных задач служит длина программы.
Хорошее овладение практикой программирования достигается, если учащийся самостоятельно решает все задачи первого
и второго уровней, а также некоторые задачи третьего уровня.

В условии задачи зачастую не указывается, какие данные
следует определять в программе. Эти вопросы необходимо продумать самостоятельно, так как в ряде случаев подобная информация может служить подсказкой при решении задачи. Указанием на вводимые величины служит слово «дано». Кроме того,
в большинстве задач нужно предусмотреть выдачу сообщений о
нестандартных ситуациях завершения программы. Если в условии задачи приводятся какие-то ограничения для исходных данных, то не нужно проверять их в начале программы.
Следует обратить внимание на то, что термины «одномерный массив», «массив» и «вектор» употребляются как синонимы, синонимами являются также термины «двумерный массив»
и «матрица». Данные более высокой размерности в задачах не
используются.
Кроме того, необходимо иметь в виду, что решение задачи
обычно предполагает разделение ее на части и предпочтение не
отдается «оптимальной программе». Решение, приведенное автором, как правило, не является единственно возможным.
В конце книги представлены краткий перечень понятий,
необходимых для решения задач, и список рекомендуемой литературы.

Часть первая

ЗАДАЧИ ПО ОСНОВНЫМ РАЗДЕЛАМ
ПРОГРАММИРОВАНИЯ

Раздел 1
Простейшие программы

1.1*. Дано число Х. Если оно натуральное, то вывести на
экран сообщение «Х – натуральное число», иначе – сообщение
«Х – действительное число».

1.2** (Р). Даны два целых числа Х и Т. Если они имеют
разные знаки, то присвоить Х значение произведения этих чисел, а Т – значение их разности по модулю, иначе присвоить Х
значение разности по модулю исходных чисел, а Т – значение
произведения этих чисел. Новые значения Х и Т вывести на
экран.

1.3*. Даны три целых числа А, В, С. Если существует треугольник со сторонами А, В, С, то вывести на экран сообщение
«Треугольник существует», иначе – сообщение «Треугольник не
существует».

1.4*. Дан треугольник со сторонами А, В, С (А, В, С – целые
числа). Вывести на экран значения трех высот треугольника.
Предварительно убедиться в существовании треугольника, как в
задаче 1.3.

1.5**. Дан треугольник с вершинами в точках (1,0), (–1,0) и
(0,1). Даны действительные координаты Х и Y точки M(X,Y).
Если точка М находится внутри  треугольника, то вывести на
экран сообщение «Точка внутри треугольника», иначе – сообщение «Точка вне треугольника».

1.6*(Р). Даны три целых числа А, В, С. Провести расчет среднего арифметического для этих чисел. При указанных условиях
среднее арифметическое всегда существует. Результат вывести
на экран.

1.7*. Даны четыре целых числа А, В, С, D. Вывести на экран
те числа, для которых модуль разности числа и среднего арифметического значения всех чисел меньше двух.

1.8*(У). Даны три целых числа А, В, С. Вывести на экран
максимальное из этих чисел.

1.9**(У). Даны три целых числа А, В, С. Вывести на экран
максимальное отрицательное число.

1.10*. Даны четыре целых числа А, В, С, D. Вывести на экран количество чисел, равных максимальному числу.

1.11**(Р). Даны три целых числа А, В, С. Вывести на экран
среднее арифметическое для четных чисел. Если четных чисел
нет, то вывести на экран сообщение «Нет четных чисел».

1.12*. Даны три целых числа А, В, С. Если минимум для А и
В больше, чем минимум для А и С, то присвоить переменной Т
значение 0, иначе – значение 1. Вывести на экран значение Т.

1.13*(У). Даны три целых числа А, В, С. Отсортировать эти
числа по возрастанию и вывести на экран.

1.14*(У). Даны четыре целых числа А, В, С, D. Отсортировать эти числа по убыванию и вывести на экран.

1.15*. Даны четыре целых числа А, В, С, D. Вывести на экран наибольшее из этих чисел или сообщение «Нет», если среди
указанных чисел нет наибольшего.

1.16*. Даны четыре целых числа А, В, С, D. Вывести на экран количество пар равных чисел.

1.17*. Даны четыре целых числа А, В, С, D. Если какая-то
перестановка этих чисел составляет пропорцию (например, А/В =
= С/D), то вывести на экран сообщение «Пропорция существует», иначе – сообщение «Пропорция не существует».

1.18*. Дан квадрат с центром в начале координат и сторонами, образующими угол 45° с осями координат. Сторона квадрата

равна заданному действительному числу В. Дана точка М с действительными координатами (X, Y). Если точка М находится
внутри квадрата, то вывести на экран сообщение «Да», иначе –
сообщение «Нет».

1.19*. Даны три произвольных числа А, В, С. Если хотя бы
одно из этих чисел является квадратом целого числа, то вывести
на экран сообщение «Да», иначе – сообщение «Нет».

1.20*. Даны три целых числа А, В, С. Если два из них являются отрицательными и четными, то вывести на экран сообщение «Да», иначе – сообщение «Нет».

1.21**. Даны три целых числа А, В, С. Если все числа различные, то заменить меньшее на сумму двух других. Вывести на
экран новые значения чисел А, В, С.

1.22**. Даны три целых числа А, В, С. Вывести на экран
произведение двух наибольших чисел или сообщение «Нет», если
два максимальных числа равны.

1.23**. Даны три целых числа А, В, С, причем все числа
различные. Если полусумма максимума и минимума меньше,
чем оставшееся число, то вывести на экран сообщение «Да»,
иначе – сообщение «Нет».

1.24*(У). Даны действительные числа a, b, c, d, e, f, которые
являются координатами R(a,b), S(c,d), T(e,f) трех точек R, S и T
на плоскости. Если эти точки располагаются на одной прямой,
то вывести на экран сообщение «Да», иначе – сообщение «Нет».

1.25*(У). Даны действительные числа a, b, c, d, e, f, g, h, i,
которые являются координатами R(a, b, c), S(d, e, f), T(g, h, i)
трех точек R, S и T в пространстве. Если эти точки располагаются на одной прямой, то вывести на экран сообщение «Да», иначе – сообщение «Нет».

1.26*(У). Даны действительные числа a, b, c, d, e, f, g, h, i,
которые являются координатами R(a, b, c), S(d, e, f), T(g, h, i)
трех точек R, S и T в пространстве. Рассмотрим уравнение плоскости, проходящей через точки R, S и T в виде X1 ⋅ x + Y1 ⋅ y +
+ Z1 ⋅ z = E, где x, y, z – координаты в пространстве. Вывести на
экран значения коэффициентов X1, Y1, Z1 и Е.

1.27*. Даны три целых числа А, В, С. Если среди них два
одинаковых, то вывести на экран сообщение «Да», иначе – сообщение «Нет».

1.28*. Даны четыре целых числа А, В, С, D. Написать программу для вычисления max {min {A, B, C}, min {A, B, D}, min {A,
C, D}, min {B, C, D}}. Результат вывести на экран.

1.29*. Даны три целых числа А, В, С. Если какая-то перестановка этих чисел соответствует арифметической прогрессии,
вывести на экран сообщение «Да», иначе – сообщение «Нет».

1.30**. Даны первый прямоугольник со сторонами А, В и второй прямоугольник со сторонами С, D. Если первый прямоугольник помещается внутри второго так, что один из углов совпадает,
вывести на экран сообщение «Да», иначе – сообщение «Нет».

1.31**. Рассмотрим область |х| + |y| ≤ 1 и прямую Ах + Ву = 1.
Даны числа А и В. Если область и прямая имеют общую точку,
то вывести на экран сообщение «Да», иначе – сообщение «Нет».

1.32**. Даны шесть действительных чисел a, b, c, d, e, f, которые являются координатами R(a,b), S(c,d), T(e,f) трех точек R,
S и T на плоскости. Если точка Т лежит выше прямой, проходящей через две другие точки, то вывести на экран сообщение
«Да», иначе –  сообщение «Нет».

1.33*. Даны три целых числа А, В, С. Если все модули разностей этих чисел меньше заданного числа К, то вывести на экран
сообщение «Да», иначе – сообщение «Нет».

1.34*. Даны четыре натуральных трехзначных числа А, В, С,
D. Если во всех числах вторая цифра является нулем, то вывести
на экран сообщение «Да», иначе – сообщение «Нет».

1.35**. Даны шесть действительных чисел a, b, c, d, e, f, которые являются координатами R(a,b), S(c,d), T(e,f) трех точек R,
S и T. Если эти точки являются вершинами равнобедренного
треугольника, то вывести на экран сообщение «Да», иначе –
сообщение «Нет».

1.36**. Даны четыре целых числа А, В, С, D. Если какие-то
три из них образуют арифметическую прогрессию, то вывести
на экран сообщение «Да», иначе – сообщение «Нет».

1.37**. Даны четыре целых числа А, В, С, D. Если сумма
каких-то двух чисел равна сумме двух оставшихся, то вывести
на экран сообщение «Да», иначе – сообщение «Нет».

1.38*. Даны два натуральных числа А и В. Максимальное из
чисел возвести в квадрат, из минимального извлечь квадратный
корень. Если числа равны – возвести А в степень В. Результаты
вывести на экран.

1.39**. Даны шесть действительных чисел X, Y, Z, W, V, U
в качестве координат трех точек А(X, Y), В(Z, W), С(V, U), образующих треугольник на плоскости. Вывести на экран угол между высотой и медианой, которые проходят через точку А.

Раздел 2
Циклы и  массивы

2.1*(У). Написать программу для вычисления

(
1)...(
)
(
, )
.
1 2 ...
N N
N
k
F N k
k
−
−
=
⋅
⋅
⋅

Здесь N и k – заданные натуральные числа (N > k). Результат
вывести на экран.

2.2**. Написать программу для вычисления

2
3
1!
2!
3!
!
(
, )
1
...
N
N
F N x
х
х
х
x
=
−
+
−
+
±

для заданного действительного х >> 10. Здесь N – заданное натуральное число. Через N! обозначено произведение 1 ⋅ 2 ⋅ 3 ⋅ … ⋅ N,
называемое «N факториал». Результат вывести на экран.

2.3**(Р). Даны действительные числа s и Е < 1.

Вычислить 

1

2
= 
!

n n

n
F
s
n

∞

=∑
 для s < 1, пока очередное слагаемое

не станет меньше точности Е. Результат вывести на экран.

2.4*. Написать программу для вычисления суммы

1 2
3 4
85 86
...
.
3 4
5 6
87 88
S
⋅
⋅
⋅
=
+
+
+
⋅
⋅
⋅

Результат вывести на экран.

2.5**. Написать программу для вычисления суммы

2
4
2
...
,
3 4!
5 6!
(2
1)(2
2)!
n
S
n
n
=
+
+
+
⋅
⋅
+
+

где n – заданное натуральное число. Вывести на экран значение S.

2.6*. Написать программу для вычисления суммы

1
,
!

i N

i

i
x
S
i

=

=

+
= ∑

где x – заданное действительное число и N – заданное натуральное число. Вывести на экран значение S.

2.7*. Написать программу для вычисления суммы

2
2
2
2
1
1
1
1
1
...
... 
2
3
4
S
N
=
+
−
+
−
±
∓
,

пока последнее слагаемое не станет по модулю меньше заранее
заданного действительного числа Е < 1. Вывести на экран значение S.

2.8**(P). Написать программу для вычисления суммы

3
3
3
3
1
1
1
1
1
...
 ... 
2
3
4
S
N
=
+
−
+
−
±
∓
,

пока разность предпоследнего и последнего слагаемых не станет по модулю меньше заранее заданного действительного числа
Е < 1. Вывести на экран значение S.

Доступ онлайн
140 ₽
В корзину