Линейные алгоритмы и ветвления
ЗАДАНИЯ ПО КУРСУ
«ПРОГРАММИРОВАНИЕ»
ВАРИАНТ А
МИНСК
ОГЛАВЛЕНИЕ
1 семестр............................................................................................. 4
1. Линейные алгоритмы и ветвления......................................... 5
1.1. Вычисления по формулам. Использование стандартных математических функций 5
1.2. Целочисленная арифметика. приведение типов............................................ 6
1.3. Логические выражения.................................................................................... 8
1.4.Условный оператор............................................................................................. 9
1.5. Области на плоскости..................................................................................... 10
1.6. Графики на плоскости.................................................................................... 12
1.7. Ветвления......................................................................................................... 15
1.8. Логическое выражение в условном операторе.......................................... 17
1.9. Побитовые операции....................................................................................... 18
2. Циклы............................................................................................ 19
2.1. Простые циклы................................................................................................ 19
2.2. Циклы с условием........................................................................................... 20
2.3. Нахождение делителей числа........................................................................ 22
2.4. Вложенные циклы............................................................................................ 23
2.5. Вычисление значения многочлена.................................................................. 24
2.6. Перебор значений............................................................................................... 25
2.7. Простые числа..................................................................................................... 26
2.8. Условные циклы............................................................................................... 27
2.9. Пошаговый ввод данных................................................................................ 28
3. Массивы........................................................................................ 29
3.1. Одномерный массив...................................................................................... 29
3.2. Индексы одномерных массивов................................................................. 30
3.3. Обработка одномерных массивов............................................................... 31
3.4. Простейшие действия над элементами матриц.......................................... 32
3.5. Вложенные циклы с переменными границами........................................ 34
3.6. Заполнение матрицы значениями, зависящими от индексов............... 35
3.7. Символьные матрицы........................................................................................ 36
3.8. Преобразование матриц.................................................................................... 37
4. Строки........................................................................................... 39
4.1. Обработка последовательностей символов................................................ 39
4.2. Выделение слов в строке............................................................................. 40
4.3. Перевод из одной cистемы счисления в другую................................... 41
2 семестр............................................................................................. 42
5. Функции....................................................................................... 43
5.1. Использование функций в выражениях....................................................... 43
5.2. Передача параметров по значению и по ссылке......................................... 43
5.3. Передача массивов в качестве параметров.................................................. 43
5.4. Передача массивов в качестве параметров.................................................. 43
5.5. Передача строк в качестве параметров........................................................ 43
5.6. Сортировка массивов.................................................................................... 44
5.7. Перегрузка и шаблон функций...................................................................... 45
5.8. Передача имени функции в качестве параметра. Вычисление корня уравнения 46
5.9. Рекурсия........................................................................................................... 48
6. Структуры. Файлы..................................................................... 49
6.1. Текстовый и бинарный файлы чисел............................................................ 49
6.2. Массивы структур.......................................................................................... 50
6.3. Бинарный файл структур............................................................................... 50
6.4. Текстовый файл структур............................................................................... 50
7. Динамические структуры данных............................................. 51
7.1. Динамическое выделение памяти для одномерных массивов..................... 51
7.2. Динамическое выделение памяти для одномерных массивов структур.... 52
7.3. Динамическое выделение памяти для двумерных массивов........................ 52
7.4. Стек..................................................................................................................... 53
7.5. Очередь............................................................................................................... 53
8. Классы........................................................................................... 54
8.1. Строки string........................................................................................................ 54
8.2. Класс «натуральное число».............................................................................. 55
8.3. Класс «ГЕОМЕТРИЧЕСКАЯ ФИГУРА на плоскости»................................ 56
8.4. Класс «вектор».................................................................................................. 57
8.5. Перегрузка операций........................................................................................ 59
9. Наследование............................................................................... 60
9.1. Наследование.................................................................................................... 60
Семестр
Занятий
оценка | количество задач |
№ | тема | № задач | ||
1. Линейные алгоритмы | 1.1 1.2 | 1.6 | ||
1.3 | 1.7 | |||
1.4 | 1.8 | |||
1.5 | 1.9 | |||
2. Циклы | 2.1 2.2 | |||
2.3 | 2.6 | |||
2.4 | 2.7 | 2.8 | ||
2.5 | 2.9 | |||
3. Массивы | 3.1 | 3.3 | ||
3.2 | 3.6 | |||
3.4 | 3.7 | |||
3.5 | 3.8 | |||
4. Строки | 4.1 | 4.2 | ||
4.3 | ||||
Зачет |
Линейные алгоритмы и ветвления
Вычисления по формулам. Использование стандартных математических функций
Написать программу, вычисляющую значение функции для различных значений аргумента x, задавая его как целое число, как вещественное число с фиксированной точкой и с плавающей точкой.
Обеспечить варианты: ввода данного с клавиатуры, инициализации данного в тексте программы.
Проанализировать результат выполнения программы при x = 0, x =-1 .
1. ;
2. ;
3. ;
4. ;
5. ;
6. ;
7. ;
8. ;
9. ;
10. ;
11. ;
12. .
Логические выражения
1.3.1. Присвоить логической переменной значение логического выражения, истинного при выполнении следующего условия и ложного в противном случае:
1.год с порядковым номером y является високосным;
2.целоечисло p делится нацело на число q;
3.целые n и k имеют одинаковую четность;
4.целые числа x, y, z равны между собой;
5.только одна из логических переменных a и b имеет значение true;
6.логическая переменная а имеет значение true, логическая переменная b имеет значение false;
7.только одна из логических переменных a, b и с имеет значение true;
8.ни одно из целых чисел x, y, z не является положительным;
9.хотя бы одно из целых чисел x, y, z положительно;
10.каждое из целых чисел x, y, z положительно;
11.только одно из целых чисел x, y, z положительно;
12.из целых чисел x, y, z только два равны между собой.
1.3.2. Объяснить результат и вывести на экран результат логического выражения T = S для заданных значений логических переменных a, b, c.
+ логическое сложение (логическое «или»)
· логическое умножение (логическое «и»)
¯ логическое отрицание (логическое «не»)
1.
;
2. ;
;
3. ;
;
4. ;
;
5. ;
;
6. ;
;
7.
;
8. ;
;
9.
10. ;
11.
12.
;
Условный оператор
Выполнить задания двумя способами: с использованием оператора if и с использованием условного оператора ?.
1.Даны действительные числа x, y, z. Вычислить min(x , y , z) + max(x, y).
2.Даны действительные числа x, y, z. Вычислить max(x , y , z) + min(x, y).
3.Даны вещественные x1, x2, x3, x4 . Поменять значения переменных так, чтобы x1< x2и x3< x4 .
4.Даны вещественные x1, x2, x3, x4 . Поменять значения переменных так, чтобы x1 > x2а x3< x4 .
5.Даны вещественные x1, x2, x3, x4 . Поменять значения переменных так, чтобы x1³ x2и x3 ³ x4 .
6.Даны вещественные x1, x2, x3, x4 . Поменять значения переменных так, чтобы x1 < x2а x3 > x4 .
7.Даны вещественные x, y, z. Поменять значения переменных так, чтобы x < y < z.
8.Даны действительные числа x, y, z. Поменять значения переменных так, чтобы x ³ y ³ z.
9.Даны действительные числа x1, y1, x2, y2. Вычислить max(x1, y1, x2, y2).
10.Даны действительные числа x1, y1, x2, y2. Вычислить min(x1, y1, x2, y2).
11.Даны действительные числа x1, y1, x2, y2. Вычислить
min(x1, y1, x2, y2)+min(x1,x2,y1).
12.Даны действительные числа x1, y1, x2, y2. Вычислить
max(x1, y1, x2, y2)+max(x1,x2,y1).
Области на плоскости
Даны вещественные числа x, y. Определить, принадлежит ли точка с координатами x, y заштрихованной части плоскости.
1. 2.
1
-1 1 -1 1
-1 -1
3. 4.
1 2
![]() |
1 2
![]() | |||
![]() | |||
5.1 6.1
1 1
7. 8.
1 1
-1 1 -1 1
9. 10.1
-1 1
-1 -1
-1
11. 12.
1 1
2 -2
Графики на плоскости
Написать программу, которая по введенному значению аргумента вычисляет значение функции, заданной в виде графика. Параметр R вводится с клавиатуры.
![]() |
1.
![]() |
2.
![]() |
3.
![]() |
4.
5.
![]() |
6.
![]() |
![]() |
7.
![]() |
8.
9.
![]() |
10.
![]() |
11.
![]() |
12.
![]() |
Ветвления
Выполнить задания двумя способами: с использованием оператора if и с использованием условного оператора ?.
2.Даны вещественные числа a, b, c, d. Если a £ b £ c £ d, то каждое число заменить наибольшим, если a > b > c > d, то числа оставить без изменений, в противном случае – все числа заменить их квадратами.
3.Даны вещественные x, y, z. Вычислить: .
4.Считая, что функции sin и cos применимы только к аргументам в диапазоне [0, p/2], вычислить y = cos(x) для любого заданного вещественного числа x.
5.Даны x, y, z – вещественные числа. Существует ли треугольник с длинами сторон x,y, z? Если существует, то ответить, является ли он остроугольным.
6.Если сумма трех попарно различных вещественных x, y, z < 1, то наименьшее из этих трех чисел заменить полусуммой двух других, в противном случае заменить меньшее из x и y полусуммой двух оставшихся.
7.Считая, что функции sin и cos применимы только к аргументам в диапазоне [0, p/2], вычислить y = sin(x) для любого заданного вещественного числа x.
8.Даны вещественные числа a1, b1, c1, a2, b2, c2. Найти координаты точки пересечения двух прямых, описываемых уравнениями a1x + b1y = c1 и a2x + b2y = c2 , либо сообщить: прямые совпадают, не пересекаются, не существуют.
9.Даны вещественные числа x, y. Если x и y отрицательны, то каждое значение заменить его модулем. Если отрицательно только одно из них, то оба значения увеличить на 0,5. Если оба значения неотрицательны и не одно из них не принадлежит отрезку [0,5; 2,0], то оба значения уменьшить в 10 раз; в остальных случаях x и y оставить без изменения.
10.Считая, что функции sin и cos применимы только к аргументам в диапазоне [0, p/2], вычислить y = tg(x) для любого заданного вещественного числа x.
11.Даны вещественные числа x, y. Если x и y положительны, то каждое значение заменить его отрицательным значением. Если положительно только одно из них, то оба значения уменьшить на 2,5. Если оба значения отрицательны и одно из них принадлежит отрезку [–5,0; –2,0], то оба значения увеличить в 10 раз; в остальных случаях x и y оставить без изменения.
12.Даны вещественные числа x, y. Если x и y разного знака, то каждое значение заменить их абсолютными значениями. Если оба значения положительны, то уменьшить их на 10,5. Если оба значения отрицательны и одно из них принадлежит отрезку [–2,0; –1,0], то оба значения увеличить в 10 раз; в остальных случаях x и y оставить без изменения.
13.Даны a, b, c – вещественные числа. Исследовать биквадратное уравнение ax4+ bx2 + c = 0, т.е. определить все действительные корни данного уравнения, если они есть.
Побитовые операции
Вычислить, объяснить результат выражения, используя поразрядные операции, для заданных значений целых переменных a, b, c.
+ поразрядное сложение (побитовое «или»)
· поразрядное умножение (побитовое «и»)
¯ поразрядное отрицание (побитовое «не»)
поразрядное сложение по модулю 2(побитовое «исключающее или»)
1. a · b + c; a = 1, b = 0, c = 2; a = 1, b = 2, c = 0; a = 1; b = 1; c = 1.
2. a + b · c; a = 1, b = 0, c = 2; a = 0, b = 2, c = 1; a = 1; b = 1; c = 1.
3. ; a = 1, b = 0, c = 1; a = 0, b = 1, c = 1; a = 1; b = 1; c = 1.
4. ; a = 1, b = 0, c = 1; a = 0, b = 1, c = 1; a = 1; b = 1; c = 1.
5. ; a = 1, b = 0, c = 1; a = 0, b = 1, c = 0; a = 1; b = 1; c = 1.
6. ;.a = 1, b = 0, c = 1; a = 0, b = 1, c = 0; a = 1; b = 1; c = 1.
7. ; a = 1, b = 0, c = 1; a = 0, b = 1, c = 0; a = 1; b = 1; c = 1.
8. ; a = 1, b = 0; a = 1, b = 1; a = 1; b = 2.
9. ; a = 1, b = 0, с=1; a = 0, b = 1, c = 0; a = 1, b = 2, c = 1.
10. ; a = 1, b = 0, с=1; a = 0, b = 1, c = 0; a = 1, b = 2, c = 1.
11. ; a = 0, b = 0; a = 1, b = 0; a = 0, b = 1; a = 1, b =1.
12. ; a = 0, b = 0; a = 1, b = 0; a = 0, b = 1; a = 1, b =1.
Циклы
2.1. Простые циклы
1.Найдите сумму первых n натуральных чисел, которые являются степенью числа 5.
2 Найдите сумму первых n натуральных чисел, которые делятся на 3.
3.Найдите сумму первых n натуральных чисел, которые являются числами Фиббоначчи.
4.Найдите сумму первых n натуральных чисел, которые являются полными квадратами.
5. Найдите сумму первых n натуральных чисел, которые являются степенью числа 3.
6. Найдите сумму первых n натуральных чисел, которые делятся на 5.
7. Найдите сумму первых n натуральных чисел, которые делятся на 6.
8. Найдите сумму первых n натуральных чисел, которые делятся на 9.
9. Найдите сумму первых n натуральных чисел, которые делятся на 3 и 5.
10. Найдите сумму первых n натуральных чисел, которые делятся на 3 и 10.
11. Найдите сумму первых n натуральных чисел, которые делятся на 2 или 5.
12. Найдите сумму первых n натуральных чисел, которые делятся на 3 или 5.
Циклы с условием
Записать 3 варианта (с циклами while, do, for) программы вычисления условной функции в точках хi Î [х0; хn], хi = х0 + iDх, i = 0,1,… Вывод результатов обеспечить в виде таблиц с указанием номера ветви, для которой он получен.
1. х0 = 0,8; хn =2; Dх = 0,1; a = 1,5.
2. х0 = 0; хn =3; Dх = 0,1; a = 1,65.
3. х0 = 0; хn =3; Dх = 0,1; a = – 0,5.
4. х0 = 1; хn = 2; Dх = 0,05; a = 2,8.
5. х0 = 0,2; хn = 2,8; Dх = 0,2; a = 2,3.
6. х0 = 0,1; хn = 2; Dх = 0,2; a = 2,2.
7. х0 = 0,5; хn = 2; Dх = 0,1; a = 20,3.
8. х0 = 0,2; хn = 2; Dх = 0,2; a = 1,2.
9. х0 = 2; хn = 5; Dх = 0,25.
10. х0 = 1; хn = 5; Dх = 0,5; a = 2,5.
11. х0 = 0,8; хn = 2; Dх = 0,1; a = 0,9.
12. х0 = 0; хn = 7; Dх = 0,5; a = 2,6.
Нахождение делителей числа
1. Дано натуральное число n. Получить все его натуральные делители.
2. Даны натуральные числа n, m. Получить их общие делители.
3. Даны натуральные числа n, m. Получить все общие кратные, меньшие m×n.
4. Вычислить наибольший общий делитель (НОД) натуральных чисел а, b.
5. Даны натуральные числа n, m. Получить наименьшее общее кратное (НОК) чисел n, m. НОК(n, m) = n × m / НОД(n, m).
6. Найти наибольший общий делитель для трех заданных натуральных чисел.
7. Даны натуральные числа n, m. Получить сумму их общих делителей.
8. Найти натуральное число от n до m с максимальной суммой делителей (n, m – натуральные числа).
9. Даны натуральные числа n, m. Получить все числа меньше m взаимно простые с n.
10. Найти натуральное число из диапазона [n, m](n, m – натуральные числа), которое имеет наибольшее количество делителей.
11. Найти все совершенные числа, меньшие n (n – натуральное число). Число – совершенное, если оно равно сумме всех своих делителей, за исключением самого числа.
12. Найти все пары дружественных чисел от n до m (n, m – натуральные числа). Два числа называются дружественными, если каждое из них равно сумме всех делителей другого, кроме самого этого числа.
Вложенные циклы
Задано натуральное n, вещественное x. Вычислить сумму.
1. ; 2.
.
3. ; 4.
;
5. ; 6.
;
7. ; 8.
;
9. ; 10.
;
11. ; 12.
;
Перебор значений
1. Определить количество трехзначных натуральных чисел, сумма цифр которых равна n.
2. Ввести с клавиатуры натуральное число n. Определить все способы выплаты суммы n с помощью купюр достоинством 1, 5, 10, 20 и 100 условных единиц.
3. Ввести с клавиатуры целое число n. Определить все способы выплаты суммы n с помощью монет достоинством в 1, 5, 10, 15, 20, 50 копеек.
4. Два двузначных числа, записанных подряд, образуют четырехзначное число, которое нацело делится на их произведение. Найти все такие числа.
5. Вывести на экран в возрастающем порядке все трехзначные числа, в десятичной записи которых нет одинаковых цифр.
6. Даны натуральные числа m, n. Получить все натуральные числа меньшие n, квадрат суммы цифр которых равен m.
7. Найти все натуральные числа, не превосходящие заданного числа N и неделящиеся нацело не на одну из своих цифр.
8. Найти все пары двухзначных натуральных чисел М, N таких, что значение произведения М × N не изменится, если поменять местами цифры каждого из сомножителей.
9. Найти все натуральные числа, не превосходящие заданного числа N, десятичная запись которых есть строго возрастающая последовательность цифр.
10. Найти все натуральные числа, не превосходящие заданного числа N, десятичная запись которых есть строго убывающая последовательность цифр.
11. Построить таблицу всех различных разбиений заданного натурального числа N на сумму трех натуральных слагаемых (разбиения, отличающиеся порядком слагаемых, различными не считаются).
12. Найти все натуральные числа, не превосходящие заданного числа N и делящиеся нацело на каждую из своих цифр.
Простые числа
1. Найти все простые числа, не превосходящие заданного натурального числа n.
2. Дано натуральное n. Получить все его простые делители.
3. Среди всех четырехзначных чисел получить все простые числа, у каждого из которых сумма первых двух цифр равна сумме двух последних цифр.
4. Дана последовательность натуральных чисел длины n. Вычислить сумму тех из них, порядковые номера которых – простые числа.
5. Дана последовательность натуральных чисел длины n. Вычислить сумму тех из них, которые – простые числа.
6. Получить 100 первых простых чисел.
7. Получить m первых простых чисел.
8. Дано натуральное число n. Среди чисел n, n + 1, …, 2n найти все числа-близнецы: простые числа, разность между которыми равна 2.
9. Найти все простые числа, не превосходящие заданного натурального числа n, сумма цифр которых меньше m.
10. Определить количество простых чисел, попадающих в диапазон допустимых значений типа unsigned short int.
11. Определить количество простых чисел, попадающих в диапазон допустимых значений типа unsigned int.
12. Натуральное число, записанное в десятичной системе счисления, называется сверхпростым, если оно остается простым при любой перестановке своих цифр. Найти двузначные сверхпростые числа.
Условные циклы
1. Определить, какую наибольшую степень числа 100 можно вычислить, пользуясь типом int.
2. Определить, какую наибольшую степень числа 3 можно вычислить, пользуясь типом short int.
3. Определить, для какого наибольшего n можно вычислить значение n!, пользуясь типом int.
4. Определите номер максимального элемента последовательности Фиббоначчи, попадающего в диапазон допустимых значений типа unsigned char.
5. Определить, для какого наибольшего n можно вычислить значение (2n)!! (произведение всех четных натуральных чисел, не превышающих 2n), пользуясь типом int.
6. Определить, для какого наибольшего n можно вычислить значение (2n+1)!! (произведение всех нечетных натуральных чисел, не превышающих 2n+1), пользуясь типом unsigned int.
7. Определить, какую наибольшую степень числа 7 можно вычислить, пользуясь типом signed short.
8. Определить, какую наибольшую степень числа 10 можно вычислить, пользуясь типом Longint.
9. Определить, для какого наибольшего n можно вычислить значение n!, пользуясь типом unsigned long.
10. Определите номер максимального элемента последовательности Фиббоначчи, попадающего в диапазон допустимых значений типа unsigned char.
11. Определить, для какого наибольшего n можно вычислить значение (2n)!! (произведение всех четных натуральных чисел, не превышающих 2n), пользуясь типом long.
12. Определить, для какого наибольшего n можно вычислить значение (2n+1)!! (произведение всех нечетных натуральных чисел, не превышающих 2n+1), пользуясь типом unsigned int.
Пошаговый ввод данных
Выполнить задание без хранения последовательности значений..
1. Вводятся натуральное число n, целые числа а1, ..., an. Вычислить сумму: а1 + а2 2+ ... + ann.
2. Вводятся натуральное число n, целые числа x1, x2, ..., xn. Вычислить:
.
3. Заданы натуральные числа m, n. Вводятся целые числа а1, ..., an.
Вычислить b1 + ... + bm, где
b1 = а1 + а2 + ... + an; b2 = а12 + а22+ ... + an2; ... bm= а1 m + а2 m + ... + anm .
4. Заданы натуральные числа m, n, вводятся действительные числа а1, ..., anm. Вычислить: .
5. Вводится последовательность из n ненулевых целых чисел. Определить, сколько раз в этой последовательности меняется знак чисел.
6. Вводится последовательность из n вещественных чисел. Найти порядковый номер того из них, которое наиболее близко к какому-либо целому.
7. Вводится последовательность из n вещественных чисел. Определить, сколько из них больше своих соседей, т. е. предыдущего и последующего.
8. Вводится n целых чисел x1, x2, ..., xn. Вычислить величину:
.
9. Вычислить для заданных n и целых числах с1, с2, ..., сn и s1, s2, ..., sn:
.
10. Вычислить для заданных значений натурального n, действительных а1, а2, ..., аn: .
11. Вычислить для заданных значений натурального n, действительных а1, а2, ..., аn: .
12. Вычислить для заданных значений натурального n, действительных а1, а2, ..., аn:
.
Массивы
Одномерный массив
Для тестирования предусмотреть возможность задавать элементы массива различным образом: при описании с инициализацией, присвоением значений (в том числе случайных), или вводом необходимых значений.
1. Определите сумму элементов массива, расположенных до минимального.
2. Определите сумму элементов массива, расположенных до максимального.
3. Определите сумму элементов массива, расположенных между минимальным и максимальным значениями.
4. Определите сумму элементов массива, расположенных до минимального значения.
5. Определите сумму элементов массива, расположенных до максимального значения.
6. Определите сумму элементов массива, расположенных после максимального значения.
7. Определите сумму элементов массива, расположенных после максимального по модулю значения.
8.Определите сумму элементов массива, расположенных после минимального по модулю значения.
9.Определите сумму элементов массива, расположенных до минимального по модулю значения.
10. Найти сумму чисел, расположенных между максимальным и минимальным элементами (включая сами числа).
11. Найти сумму чисел, расположенных между максимальным и минимальным по модулю элементами (не включая сами числа).
12. Найти сумму чисел, расположенных между минимальным положительным и максимальным отрицательным элементами (включая сами числа).
Индексы одномерных массивов
Для тестирования предусмотреть возможность задавать элементы массива различным образом: при описании с инициализацией, присвоением значений (в том числе случайных), или вводом необходимых значений.
1. Вывести на экран все числа заданной последовательности, индексы которых есть степени двойки. Определить в заданной последовательности целых чисел количество чисел, которые являются степенью двойки.
2. Вывести на экран все числа заданной последовательности, индексы которых есть степени тройки. Определить в заданной последовательности целых чисел количество чисел, которые являются степенью тройки.
3. Вывести на экран элементы последовательности, индексы которых являются степенями пятерки. Определить в заданной последовательности целых чисел количество чисел, которые являются степенью пятерки.
4. Вывести на экран все числа заданной последовательности, индексы которых есть полные квадраты. Определить в заданной последовательности целых чисел количество чисел, которые являются полными квадратами.
5. Вывести на экран все числа заданной последовательности, индексы которых есть простые числа. Определить в заданной последовательности целых чисел количество чисел, которые являются простыми числами.
6. Вывести на экран все числа заданной последовательности, индексы которых есть числа Фибоначчи. Определить в заданной последовательности целых чисел количество чисел Фибоначчи.
7. Получить: max (a1 + an, a2 + an-1, ..., an/2 + an/2+1).
8. Получить: min (a1 + an, a2 + an-1, ..., an/2 + an/2+1).
9. Получить: a1a2 + a