А.А.Быков Программирование на языке С++
А.А.Быков
Сборник задач по программированию с
решениями
А.А.Быков
Сборник задач по программированию с решениями
Общие положения
Часть 1, С++ без классов
1. Простейшие функции
Задачи
Решения
Вычисление гипотенузы треугольника
Вычисление расстояния между двумя точками..................9
Перегруженные функции
Функция swap(…) с передачей указателей
Функция swap(…) с передачей параметров по ссылке....11 2. Рекурсивные функции
Задачи
Решения
Рекурсивные функции
3. Десятичные целые числа
Задачи
Решения
Вычисление времени в секундах
Функция с параметрами по умолчанию
Вычисление значения натурального числа.
Вычисление цифр двузначного числа через ссылки........ Вычисление цифр двузначного числа через указатели.... Выделение цифры многозначного числа
Изменение цифр десятичных чисел
Проверка пятизначных палиндромов
Поиск пятизначных палиндромов
4. Условные операторы и циклы
Задачи
Версия 2, 30 мая А.А.Быков Программирование на языке С++ Решения
Вычисление наименьшего из трех чисел.
Подбор кода сейфа
5. Простейшие операторы ввода из файла
Задачи
Решения
Ввод чисел из файла.
Ввод отдельных символов из файла.
Ввод символов из файла
6. Случайные числа
Задачи
Решения
Генерирование случайных чисел
Исследование набора случайных чисел
Генерирование набора различных случайных чисел....... Одновременное бросание 4 игральных костей................. 7. Случайное блуждание
Задачи
Решения
Случайное блуждание по прямой
Случайное блуждание по плоскости
8. Случайные процессы
Задачи
Решения
Задача случайного обстрела без прогноза
9. Одномерные массивы постоянного размера
Задачи
Решения
Вычисление суммы элементов одномерного массива..... Ввод из файла и анализ одномерного массива................. Сортировка одномерного массива
10.
Задачи
Решения
Сортировка с помощью функции сравнения.
Версия 2, 30 мая А.А.Быков Программирование на языке С++ Сортировка двух одномерных массивов разного типа одновременно
Сортировка одномерного текстового массива.................. Динамические одномерные массивы
11.
Задачи
Гистограмма одномерного массива
12.
Задачи
Решения
Простая гистограмма одномерного массива
Сложная гистограмма одномерного массива
Двумерные массивы с постоянной размерностью....... 13.
Задачи
Решения
Сумма элементов в строке двумерного массива.............. Одновременный анализ нескольких двумерных массивов
Двумерные массивы с переменной размерностью....... Задачи
Решения
Динамические двумерные массивы
Двумерный массив треугольной формы
Символьные массивы
Задачи
Решения
Статический массив указателей на строки
Динамический массив указателей на строки
Символьные массивы
Форматированный ввод и вывод
Задачи
Решения
Форматированный ввод и вывод.
Форматированный ввод и вывод.
Анализ данных
Задачи
Решения
Контрольно–обучающая система
Текстовые задачи
Задачи
Решения
Задача массового обслуживания
Пример экзаменационного билета
Задачи
1. Вычисление наименьшего из трех чисел.
2. Анализ нескольких двумерных массивов
3. Задача случайного обстрела без прогноза
Общие положения Экзамен по курсу «Программирование на языке С++» проводится в терминальном классе с установленным программным обеспечением, Microsoft Visual Studio или Borland C++ Builder по выбору экзаменуемого. Экзаменационный билет содержит три задания.
1) [1] Простое задание, для выполнения которого достаточно знакомства с основными конструкциями языка С++, в том числе иметь понятие об основных типах объектов, знать арифметические, логические и условные операторы if, операторы цикла for, одномерные и двумерные массивы с постоянной размерностью. Время выполнения: 30 минут.
2) [2] Задание средней сложности, для выполнения которого достаточно знания всех конструкций языка С++, включая одномерные и двумерные массивы с переменными границами (операторы new и delete), логические операторы, оператор switch, операторы цикла while и do, умение работать с текстовыми переменными и константами, знать основные стандартные функции для работы со строками, уметь выводить информацию в файл и считывать информацию из файла с помощью операторов >. Время выполнения: 60 минут.
3) [3] Сложное задание, для выполнения которого требуется свободное владение всеми конструкциями языка в рамках программы первого семестра обучения, а также умение соВерсия 2, 30 мая ставить простейшую модель объекта. Время выполнения: Общая продолжительность экзамена составляет не более минут в терминальном классе. Студент, выполнивший первое задание, получает оценку не ниже 3. Студент, выполнивший второе задание, получает оценку не ниже 4. Студент, выполнивший третье задание, получает оценку 5. Во время выполнения заданий студент может использовать любые пособия, а также свои записи лекций и практических занятий. Можно использовать также любые файлы (в том числе C++ файлы), которые заранее должны быть сохранены на локальном диске в рабочей директории студента. В случае необходимости студент может обратиться за помощью к преподавателю. Преподаватель помогает студенту исправить ошибки в коде. В этом случае оценка не ставится. Если курсант обращается за помощью несколько раз, не ставится оценка выше 3.
Список типовых задач объявляется заранее не позже чем за месяц до экзамена. Типовые задания разбираются на лекциях и отрабатываются на практических занятиях. Первое (простое) задание на экзамене может незначительно отличаться от типового задания из данного списка. Второе (средней сложности) задание также выбирается из данного списка и видоизменяется так, чтобы ход его решения ненамного отличался от типового. Например, если в типовом задании сказано, что оценка каждого курсанта потока за каждую неделю обучения в течение семестра хранится в двумерном массиве и требуется найти среднюю оценку каждого курсанта за весть семестр, то на экзамене может быть поставлена задача: найти среднюю оценку всего потока за каждую неделю обучения.
Третье задание (сложное) будет похоже на одно из отработанных на лекциях или ПЗ заданий, но будет содержать новые элементы, которые студент должен разработать самостоятельно.
Задания из этого списка следует выполнять в среде Microsoft Visual Studio или Borland C++ Builder. При создании проекта указывайте опции “Win32 application” и “Console”. Вывод в файл осуществляйте с помощью оператора myofs, где myofs – объект типа ofstream, связанный с файлом с помощью оператора myofs.open(“имя файла”), myifs – объект типа ifstream, связанный с файлом с помощью оператора myifs.open(“имя файла”). После завершения работы с файлом не забудьте его закрыть, например,