пятница, 24 марта 2017 г.

Подготовка к контрольной работе по теме "Программирование в С++"


Список теоретических вопросов

  1. Структуры программы на языке С++.
  2. Запись алгоритма с помощью блок-схемы.
  3. Базовые типы данных  в С++:  bool, char, int, short int, unsigned int, float, double. Их описание, допустимые значения, размер в памяти компьютера.
  4. Объявление переменной, присваивание и инициализация: что это за действия и в чем разница?
  5. Что такое препроцессорная директива?
  6. Библиотеки iostream, math, vector и их назначение.
  7. Стандартный ввод - вывод в С++. Правила организации вывода данных. непечатаемые символы.
  8. Стандартные арифметические операции. Зависимость результата арифметической операции от типа операндов.
  9. Основные математические функции
  10. Оператор ветвления: полное и неполное ветвление. Синтаксис операции ветвления и обозначение с помощью блок-схем.
  11. Операторы сравнения. Логические операторы. Сложные условия.
  12. Оператор цикла while. Отличие оператора с предусловием от оператора с постусловием. Синтаксис цикла while и do..while. Запись циклического алгоритма с помощью блок-схем.
  13. Задача анализа цифр числа: поиск количества цифр в числе, их суммы, наибольшей или наименьшей цифры в числе.
  14. Оператор цикла for. Синтаксис оператора, запись в виде блок-схем. Взаимозаменяемость конструкции цикла  for и while. Сокращенная форма арифметических операций.
  15. Операторы break и continue. Назначение операторов, принцип использования, синтаксис.
  16. Алгоритм Евклида поиска НОД двух чисел. Блок-схема и реализация на языке С++.
  17. Массив. Определение. Структура массива. Объявление и работа с элементами вектора.
  18. Методы работы с вектором: размер, добавление и удаление элемента в конец вектора.
  19. Алгоритм ввода элементов массива с клавиатуры.
  20. Генератор случайных чисел. Генерация случайного числа в заданном диапазоне. Генерация случайной десятичной дроби. Необходимые библиотеки для использования генератора случайных чисел.
  21. Генерация массивы случайных чисел в заданном диапазоне.
  22. Подпрограммы в С++. Определение, назначение и  различие функций и процедур. Синтаксис описания функций и процедур.
  23. Передача параметров по ссылке и по значению. Как определить, когда следует передавать параметры по ссылке, а когда - по значению?
  24. Локальные и глобальные переменные. Области видимости переменных.

Список задач


  1. Определить и вывести на экран наибольшее среди трех введенных чисел.
  2. Определить и вывести на экран наименьшее среди трех введенных чисел.
  3. Поменять местами значение в двух переменных, не прибегая к использованию третьей переменной.
  4. Определить принадлежность точки A(x,y) одной из координатных четвертей.
  5. Даны координаты трех точек: A(x1,y1), B(x2, y2), C(x3, y3). Определить наиболее удаленную от начала координат точку.
  6. Определить и вывести на экран корни квадратного уравнения ax2+bx+c = 0.
  7. Определить и вывести на экран корень линейного уравнения kx+b = 0.
  8. Проверить, является ли число простым.
  9. Найти наибольший делитель данного натурального числа.
  10. Найти количество делителей данного натурального числа.
  11. Подсчитать количество разрядов(цифр) данного натурального числа.
  12. Подсчитать сумму цифр данного натурального числа.
  13. Определить максимальную цифру данного натурального числа.
  14. Определить минимальную цифру данного натурального числа.
  15. Определить максимальную четную цифру данного натурального числа.
  16. Определить минимальную нечетную цифру данного натурального числа.
  17. Дано натуральное число N. Определить, сколько четных цифр встречается в записи этого числа.
  18. Подсчитать, сколько раз в данном числе встречается заданная цифра.
  19. Дано натуральное число. Определить, встречается ли в записи числа заданная цифра. Сперва вводят число, затем - цифру. Вывести YES или NO.
  20. Определить, сколько в записи числа “замкнутых областей”: так цифры 0, 9, 6, 4 дают по одной замкнутой области, цифра 8 - дает две замкнутые области. Например, число 3489 содержит четыре замкнутые области.
  21. Подсчитайте, сколько среди данных N чисел нулей, положительных чисел, отрицательных чисел.
  22. Вычислите сумму данных N натуральных чисел.
  23. По заданным сторонам треугольника a, b, c проверить, можно ли составить треугольник и рассчитать его площадь по формуле Герона.
  24. Рассчитать НОД двух натуральных чисел.
  25. Дана простая дробь вида a/b. Требуется сократить эту дробь и вывести ответ на экран.
  26. Рассчитать НОК двух натуральных чисел.
  27. Рассчитать НОД трех натуральных чисел.
  28. По данному натуральному n вычислите сумму 12+22+...+n2.
  29. Вводятся 4 числа: a, b, c и d. Выведите все числа на отрезке от a до b, дающие остаток c при делении на d. Если таких чисел не существует, то ничего выводить не нужно.
  30. Вычислите N! ("эн-факториал") – произведение всех натуральных чисел от 1 до N ( N!=1∙2∙…∙ N).
  31. Вводятся целые числа a и b. Выведите все числа на отрезке от a до b, оканчивающиеся числом 7. Если таких чисел нет, то ничего выводить не нужно.
  32. Напишите программу, вычисляющую 2N. Модуль math.h подключать нельзя!
  33. Напишите программу, вычисляющую aN. Модуль math.h подключать нельзя!
  34. Вычислите сумму данных N натуральных чисел. (Вводится число N, а затем N чисел, сумму которых необходимо вычислить.)
  35. Найдите все целые решения уравнения ax3 + bx2 + cx + d = 0 на отрезке [n1,n2] и выведите их в порядке возрастания.  Если на данном отрезке нет ни одного решения, то ничего выводить не нужно. В программу вводятся числа a, b, c, d, n1, n2.
  36. По данному действительному числу a и натуральному n вычислите сумму числового ряда вида:
    1,   a,  a2, … ,an.
  37. Напишите программу, которая вводит два целых числа и находит их произведение, не используя операцию умножения. Учтите, что числа могут быть отрицательными.
  38. Напишите программу, которая вводит натуральные числа a и b , и выводит квадраты натуральных чисел в диапазоне [ a , b ] .
  39. Натуральное число называется числом Армстронга, если сумма цифр числа, возведенных в K -ю степень (где K – количество цифр в числе) равна самому числу. Например,
    153 = 13 + 53 + 33.
    Напишите программу, которая находит все числа Армстронга на отрезке [ a , b ] .
  40. Натуральное число называется автоморфным , если оно равно последним цифрам своего квадрата. Например,  252 = 625. Напишите программу, которая находит все автоморфные числа на отрезке [ a , b ] .
  41. Напишите программу, которая определяет, верно ли, что введённое число содержит две одинаковых цифры, стоящие рядом (как, например, 221).
  42. Напишите программу, которая определяет, верно ли, что введённое число состоит из одинаковых цифр (как, например, число 222).
  43. Совершенным называется число, равное сумме всех своих делителей, меньших его самого (например, число 6=1+2+3). Напишите программу, которая вводит натуральное число N и определяет, является ли число N совершенным.
  44. В некоторых видах спорта выступление каждого спортсмена оценивается несколькими судьями, затем из всех оценок удаляются минимальная и максимальная, а из оставшихся берется среднее арифметическое. Если максимальную или минимальную оценку поставили несколько судей, то удаляется только одна из них. Вам дано количество судей и все оценки, которые они дали. Выведите оценку, которая пойдет в зачет данному спортсмену.
  45. Напишите программу, которая заполняет массив квадратами натуральных чисел от 1 до N.
  46. Напишите программу, которая заполняет массив кубами натуральных чисел от N до 1.
  47. Напишите программу, которая заполняет массив первыми N натуральными числами в обратном порядке (начиная с последнего) и выводит его.
  48. Напишите программу, которая заполняет массив из N элементов степенями числа 2, начиная с 21 до 2N
  49. Дано N. Сгенерировать и вывести на экран массив случайных чисел в диапазоне [0, 100]. Определить есть ли в массиве элементы, отличающиеся от минимального ровно на 1
  50. Дано N. Сгенерировать и вывести на экран массив случайных чисел в диапазоне [0, 1000]. Определить сколько элементов в массиве начинаются с заданной цифры.
  51. Дано N. Сгенерировать и вывести на экран массив случайных чисел в диапазоне [0, 100]. Определить, сколько в массиве  элементов, у которых в разряде десятков стоит четная цифра. Сам массив обязательно вывести на экран!
  52. Дано N. Сгенерировать и вывести на экран массив случайных чисел в диапазоне [-100, 100]. Найти самый маленький элемент массива.
  53. Дано N. Сгенерировать и вывести на экран массив случайных чисел в диапазоне [-100, 100]. Найти самый большой элемент массива.
  54. Дано N. Сгенерировать и вывести на экран массив случайных чисел в диапазоне [-100, 100]. Найти самый маленький по модулю элемент массива.
  55. Дано N. Сгенерировать и вывести на экран массив случайных чисел в диапазоне [-100, 100]. Напишите программу, которая находит в массиве количество элементов, равных максимальному.
  56. Дано N. Сгенерировать и вывести на экран массив случайных чисел в диапазоне [-100, 100]. Напишите программу, которая находит в массиве номера элементов, равных минимальному.
  57. Дано N. Сгенерировать и вывести на экран массив случайных чисел в диапазоне [-100, 100]. Напишите программу, которая переставляет соседние элементы массива: 1-й со 2-м, 3-й с 4-м и т.д. Нумерация элементов начинается с единицы.
  58. Напишите программу, которая находит в массиве самую длинную цепочку одинаковых элементов. Программа должна вывести значение элемента, который встречается наибольшее число раз подряд, и длину этой цепочки. Если в массиве есть несколько цепочек максимальной длины, нужно вывести данные по первой из них
  59. Напишите программу, которая выполняет реверс массива: меняет местами первый и последний элементы, второй и предпоследний и т.д.
  60. Реверс массива – это перестановка элементов в обратном порядке: меняются местами первый и последний элементы, второй и предпоследний и т.д. Напишите программу, которая выполняет реверс двух половин массива по отдельности.
  61. Дано N. Сгенерировать и вывести на экран массив случайных чисел в диапазоне [0, 100]. Найти самый большой четный элемент массива.
  62. Дано N. Сгенерировать и вывести на экран массив случайных чисел в диапазоне [-100, 100].  Определить сумму элементов массива
  63. Дано N. Сгенерировать и вывести на экран массив случайных чисел в диапазоне [-100, 100]. Определить среднее арифметическое всех элементов массива.
  64. Дано N. Сгенерировать и вывести на экран массив случайных чисел в диапазоне [0, 100]. Определить сумму всех четных элементов массива.
  65. Дано N. Сгенерировать и вывести на экран массив случайных чисел в диапазоне [0, 100]. Определить количество элементов массива, содержащих в разряде десятков цифру 1.
  66. Дано N. Сгенерировать и вывести на экран массив случайных чисел в диапазоне [-100, 100]. Определить элемент, меньше всего отличающийся от минимального в массиве.
  67. Дано N. Сгенерировать и вывести на экран массив случайных чисел в диапазоне [-100, 100]. Определить элемент, меньше всего отличающийся от среднего арифметического всех элементов в массиве.
  68. Дано N. Сгенерировать и вывести на экран массив случайных чисел в диапазоне [-100, 100]. Определить элемент, больше всего отличающийся от среднего арифметического всех элементов в массиве.
  69. Дано N. Сгенерировать и вывести на экран массив случайных чисел в диапазоне [-100, 100]. Определить второй по величине элемент в массиве. (*Решить задачу за один проход по массиву)
  70. Дано N. Сгенерировать и вывести на экран массив случайных чисел в диапазоне [-100, 100]. Определить второй минимальный элемент в массиве. (*Решить задачу за один проход по массиву)
  71. Дано N. Сгенерировать и вывести на экран массив случайных чисел в диапазоне [-100, 100]. Определить, есть ли в массиве пара соседних элементов, сумма которых дает 0.
  72. Дано N. Сгенерировать и вывести на экран массив случайных чисел в диапазоне [-100, 100]. Определить, есть ли в массиве пара элементов, сумма которых дает 0.
  73. Дано N. Сгенерировать и вывести на экран массив случайных чисел в диапазоне [-100, 100]. Вставить число x после элемента с номером k.
  74. Дано N. Сгенерировать и вывести на экран массив случайных чисел в диапазоне [-100, 100]. Вставить число x в начало массива.
  75. Дано N. Сгенерировать и вывести на экран массив случайных чисел в диапазоне [-100, 100]. Вставить число x после каждого четного элемента массива.
  76. Дано N. Сгенерировать и вывести на экран массив случайных чисел в диапазоне [-100, 100]. Вставить число x на каждую четную позицию в массиве.
  77. Дано N. Сгенерировать и вывести на экран массив случайных чисел в диапазоне [-100, 100]. Удалить из массива элемент с номером k.
  78. Дано N. Сгенерировать и вывести на экран массив случайных чисел в диапазоне [-100, 100]. Удалить из массива первый элемент.
  79. Дано N. Сгенерировать и вывести на экран массив случайных чисел в диапазоне [-100, 100]. Удалить из массива элемент с номером k.
  80. Дано N. Сгенерировать и вывести на экран массив случайных чисел в диапазоне [-100, 100]. После каждого отрицательного элемента массива вставить 0.
  81. Дано N. Сгенерировать и вывести на экран массив случайных чисел в диапазоне [-100, 100]. Удалить из массива элементы начиная с номера n1 до номера n2 включительно.
  82. Ряд чисел Фибоначчи задается следующим образом: первые два числа равны 1 ( F1 = F2 = 1 ), а каждое следующее равно сумму двух предыдущих: Fi = Fi - 1 + Fi - 2 . Напишите программу, которая вводит натуральное число N и заполняет массив из N элементов первыми N числами Фибоначчи.
  83. Дан массив, длина и элементы которого введены с клавиатуры. Определить образуют ли элементы массива монотонно возрастающую последовательность (то есть каждый элемент не меньше, чем предыдущий)
  84. Дан массив, длина и элементы которого введены с клавиатуры. Определить образуют ли элементы массива монотонно убывающую последовательность (то есть каждый элемент не больше, чем предыдущий)
  85. Дан массив, длина и элементы которого введены с клавиатуры. Определить образуют ли элементы массива монотонную  последовательность (последовательность может быть как возрастающей, так и убывающей)
  86. Дан массив, длина и элементы которого введены с клавиатуры. Определить количество в массиве локальных максимумов: то есть элементов, больших обоих своих соседей.
  87. Дан массив, длина и элементы которого введены с клавиатуры. Определить количество в массиве локальных минимумов: то есть элементов, меньших обоих своих соседей.
  88. По данному натуральному числу создать массив, содержащий цифры этого числа.
  89. Дано N. Сгенерировать и вывести на экран массив случайных чисел в диапазоне [-100, 100]. Выполнить циклический сдвиг всех элементов массива вправо на один. При этом  первый элемент переместится на второе место, второй - на третье и т.п. Последний элемент должен переместиться на первое место.
  90. Дано N. Сгенерировать и вывести на экран массив случайных чисел в диапазоне [-100, 100]. Выполнить циклический сдвиг всех элементов массива влево на один.
  91. Найдите максимальный и минимальный элементы в массиве и поменяйте их местами.
  92. Распечатайте те элементы массива, которые равны сумме двух своих соседей. Первый и последний элементы имеют только по одному соседу, поэтому искомыми быть не могут.
  93. На вход программе подается последовательность чисел от 1 до 9, заканчивающаяся нулем. Всего будет введено не более 100 чисел. Подсчитайте в этой последовательности количество единиц, количество двоек, количество троек и т.д. и выдайте результат.
  94. Дано N. Сгенерировать и вывести на экран массив случайных чисел в диапазоне [-100, 100]. Найдите два числа, произведение которых максимально. (*Вложенные циклы не используйте.)
  95. Дано N. Сгенерировать и вывести на экран массив случайных чисел в диапазоне [-100, 100]. После этого во второй строке распечатайте только те значения элементов массива, которые встречаются в нем ровно один раз. Элементы следует распечатывать в том порядке, в котором они встречаются в массиве.

Комментариев нет:

Отправить комментарий