Компания ALT Linux
Опубликован: 07.03.2015 | Доступ: свободный | Студентов: 2134 / 486 | Длительность: 24:14:00
Лекция 4:

Использование функций при программировании на C++

4.10 Задачи для самостоятельного решения

4.10.1 Применение функций при работе с последовательностями чисел

Разработать программу на языке C++ для следующих заданий:

  1. Вводится последовательность целых положительных чисел, 0 — конец последовательности. Для каждого элемента последовательности определить и вывести на экран число, которое получится после записи цифр исходного числа в обратном порядке.
  2. Вводится последовательность целых чисел, 0 — конец последовательности. Определить, содержит ли последовательность хотя бы одно совершённое число. Совершённое число равно сумме всех своих делителей, не превосходящих это число. Например, 6 = 1 + 2 + 3 или 28 = 1 + 2 + 4 + 7 + 14.
  3. Вводится последовательность из N целых положительных элементов. Определить, содержит ли последовательность хотя бы одно простое число. Простое число не имеет делителей, кроме единицы и самого себя.
  4. Вводится последовательность из N целых положительных элементов. Посчитать количество чисел-палиндромов. Числа-палиндромы симметричны относительно своей середины, например, 12021 или 454.
  5. Вводится последовательность из N целых положительных элементов. Подсчитать количество совершённых и простых чисел в последовательности.
  6. Поступает последовательность целых положительных чисел, 0 — конец последовательности. Определить, в каком из чисел больше всего делителей.
  7. Поступает последовательность целых положительных чисел, 0 — конец последовательности. Определить, в каком из чисел больше всего цифр.
  8. Вводится последовательность из N целых положительных элементов. Проверить, содержит ли последовательность хотя бы одну пару соседних дружественных чисел. Два различных натуральных числа являются дружественными, если сумма всех делителей первого числа (кроме самого числа) равна второму числу. Например, 220 и 284, 1184 и 1210, 2620 и 2924, 5020 и 5564.
  9. Поступает последовательность целых положительных чисел, 0 — конец последовательности. Каждый элемент последовательности представляет собой номер m одного из чисел Фибоначчи. Вычислить и вывести на экран m-е число Фибоначчи. Напомним, что в последовательности Фибоначчи каждое последующее число представляет собой сумму двух предыдущих (0, 1, 1, 2, 3, 5, 8, 13, 21, 34,...). Например, четвёртое число Фибоначчи равно 3, седьмое — 13, а девятое — 34.
  10. Вводится последовательность из N целых положительных элементов. Найти число с минимальным количеством цифр.
  11. Вводится последовательность из N целых элементов. Для всех положительных элементов последовательности вычислить значение факториала. Вывести на экран число и его факториал.
  12. Поступает последовательность целых положительных чисел, 0 — конец последовательности. Вывести на экран все числа последовательности, являющиеся составными и их делители. Составное число имеет более двух делителей, то есть не является простым.
  13. Вводится последовательность из N целых положительных элементов. Определить, содержит ли последовательность хотя бы одно число Армстронга. Число Армстронга — натуральное число, которое равно сумме своих цифр, возведённых в степень, равную количеству его цифр. Например, десятичное число 153 — число Армстронга, потому что: 13+ 33+ 53=1 + 27 + 125 = 153.
  14. Поступает последовательность целых положительных чисел, 0 — конец последовательности. Найти среднее арифметическое простых чисел в этой последовательности. Простое число не имеет делителей, кроме единицы и самого себя.
  15. Вводится последовательность из N целых положительных элементов. Определить, сколько в последовательности пар соседних взаимно простых чисел. Различные натуральные числа являются взаимно простыми, если их наибольший общий делитель равен единице.
  16. В последовательности из N целых положительных элементов найти сумму всех недостаточных чисел. Недостаточное число всегда больше суммы всех своих делителей за исключением самого числа.
  17. Вводится последовательность из N целых положительных элементов. Посчитать количество элементов последовательности, имеющих в своём представлении цифру 0.
  18. Вводится N пар целых положительных чисел a и b. В случае, если a > b вычислить: C=\frac{a!}{b!\cdot (a-b)!}.
  19. Вводится последовательность из N целых элементов. Для каждого элемента последовательности найти среднее значение его цифр.
  20. Вводится последовательность целых положительных чисел, 0 — конец последовательности. Для каждого элемента последовательности определить и вывести на экран число, которое получится, если поменять местами первую и последнюю цифры исходного числа.
  21. Вводится последовательность из N целых элементов. Для каждого элемента последовательности вывести на экран количество цифр и количество делителей.
  22. Вводится последовательность из N целых положительных элементов. Среди элементов последовательности найти наибольшее число-палиндром. Числа-палиндромы симметричны относительно своей середины, например, 12021 или 454.
  23. Поступает последовательность целых положительных чисел, 0 — конец последовательности. Для каждого элемента последовательности вывести на экран сумму квадратов его цифр.
  24. Вводится последовательность из N целых положительных элементов. Для простых элементов последовательности определить сумму цифр. Простое число не имеет делителей, кроме единицы и самого себя.
  25. Вводится последовательность целых положительных чисел, 0 — конец последовательности. Среди элементов последовательности найти наименьшее составное число. Составное число имеет более двух делителей, то есть не является простым.

4.10.2 Применение функций для вычислений в различных системах счисления

Разработать программу на языке C++ для решения следующей задачи. Заданы два числа — A и B, первое в системе счисления с основанием p, второе в системе счисления с основанием q. Вычислить значение C по указанной формуле и вывести его на экран в десятичной системе счисления и системе счисления с основанием r. Исходные данные для решения задачи представлены в табл. 4.1.

Таблица 4.1. Задания для решения задачи о различных системах счисления
Вариант p q C r
1 2 8 A^{2}\cdot (A+B) 3
2 3 4 2\cdot (A^{2}+B^{2}) 4
3 4 6 2\cdot B^{2}\cdot (A+B) 5
4 5 2 (A-B)^{2}+3\cdot A 6
5 6 4 A^{2}+A\cdot B 7
6 7 3 (5\cdot B-2\cdot A)^{2} 8
7 8 2 (2\cdot A-3\cdot B)^{2} 5
8 3 8 (B-A)^{2}+2\cdot A 6
9 4 7 B^{3}-B^{2}+2\cdot A 2
10 5 6 A^{3}-A^{2}+3\cdot B 8
11 6 5 (2\cdot A-3\cdot B)^{2} 3
12 7 4 A^{2}+2\cdot A+B^{2} 5
13 8 3 A^{2}+3\cdot B+B^{2} 7
14 4 2 A^{2}-2\cdot A+B 6
15 5 8 3\cdot B^{2}-2\cdot B+A 3
16 6 7 A^{2}+(B-A)^{2} 2
17 7 6 3\cdot B^{2}+2\cdot A\cdot B 8
18 8 5 2\cdot A^{2}+3\cdot A\cdot B 7
19 2 4 B^{3}-2\cdot B+A 3
20 3 8 A^{3}-2\cdot A+B 4
21 4 7 (5\cdot A-2\cdot B)^{2} 5
22 5 6 (B^{2}-3\cdot A)^{2} 7
23 6 5 (A^{2}-2\cdot B)^{2} 8
24 7 4 A^{2}\cdot B^{2}-A\cdot B 6
25 8 3 A\cdot B+A^{2}-B 2

4.10.3 Применение функций для решения нелинейных уравнений

Разработать программу на языке C++ для вычисления одного из корней уравнения f (x) = 0 методами, указанными в задании. Для решения задачи предварительно определить интервал изоляции корня графическим методом. Вычисления проводить с точностью \varepsilon=10^{-4}. Оценить степень точности путём подсчёта количества итераций, выполненных для достижения заданной точности. Исходные данные для решения задачи представлены в табл. 4.2.

Таблица 4.2. Задания к задаче о решении нелинейных уравнений
Уравнение f (x) = 0 Методы решения
1 x-0.2\cdot \sin (x+0.5)=0 метод половинного деления, метод хорд
2 x^2-\lg(x+2)=0 метод касательных, метод простой итерации
3 x^2-20\cdot \sin (x)=0 метод хорд, метод касательных
4 \ln (x)+(x+1)^3=0 метод дихотомии, метод простой итерации
5 x^2-\sin(5x)=0 метод половинного деления, метод касательных
6 e^x+x^2-2=0 метод хорд, метод простой итерации
7 0.8\cdot x^{2}-\sin (10\cdot x)=0 метод половинного деления, метод хорд
8 \sin (7\cdot x)+2\cdot x-6=0 метод касательных, метод простой итерации
9 x\cdot \ln (x)-1=0 метод хорд, метод касательных
10 2\cdot \lg(x)+0.5\cdot x=0 метод дихотомии, метод простой итерации
11 e^{-x}-x^2=0 метод половинного деления, метод касательных
12 x^2-3\cdot \cos (x^2)=0 метод хорд, метод простой итерации
13 \sin (7\cdot x)-x^2+15=0 метод половинного деления, метод хорд
14 (x-1)^2-0.5\cdot e^x=0 метод касательных, метод простой итерации
15 2\cdot \ln (x)-0.2\cdot x+1=0 метод хорд, метод касательных
16 2-x\cdot e^x=0 метод дихотомии, метод простой итерации
17 0.1\cdot x^3+3\cdot x^2-10\cdot x-7=0 метод половинного деления, метод касательных
18 0.1\cdot x^2-e^x=0 метод хорд, метод простой итерации
19 e^{-2\cdot x}-2\cdot x+1=0 метод половинного деления, метод хорд
20 x^2-3+0.5^x=0 метод касательных, метод простой итерации
21 \lg(4\cdot x)-\cos (x)=0 метод хорд, метод касательных
22 \ln(x)-\cos^2(x)=0 метод дихотомии, метод простой итерации
23 \frac{4}{x}-0.2\cdot e^x=0 метод половинного деления, метод касательных
24 \sqrt{x+6.5}-e^x=0 метод хорд, метод простой итерации
25 0.5^x+1-(x-2)^2=0 метод половинного деления, метод хорд
Сергей Радыгин
Сергей Радыгин

Символы кириллицы выводит некорректно. Как сделать чтобы выводился читабельный текст на русском языке?

Тип приложения - не Qt,

Qt Creator 4.5.0 основан на Qt 5.10.0. Win7.

 

Юрий Герко
Юрий Герко

Кому удалось собрать пример из раздела 13.2 Компоновка (Layouts)? Если создавать проект по изложенному алгоритму, автоматически не создается  файл mainwindow.cpp. Если создавать этот файл вручную и добавлять в проект, сборка не получается - компилятор сообщает об отсутствии класса MainWindow. Как правильно выполнить пример?