Disclaimer: Во всех задачах подразумевается (если не сказано обратного), что функции тестируются и запускаются в main().
Создать проект в Visual Studio и загрузить на github.
- Программа git https://git-scm.com/
- Учебник по работе с git: Pro Git book, written by Scott Chacon and Ben Straub. https://git-scm.com/book/ru/v2
- Продвинутый текстовый редактор Notepad++ https://notepad-plus-plus.org/downloads/
- Гайд по работе с сайтом GitHub (на английском, гугл транслейт в помощь) https://guides.github.com/activities/hello-world/
- Основные моменты работы с git: git-tutorial.md
- Написать функцию, переставляющую значения своих трех вещественных параметров по циклу.
- Написать функцию, которая принимает 5 параметров (первые три — по значению, остальные два — по ссылке). Первые три параметра — длины двух диагоналей параллелограмма и угол между ними, остальные — длины сторон параллелограмма, которые функция должна вычислять.
- Написать функцию с тремя вещественными параметрами, заменяющую значение каждого параметра на среднее арифметическое значений двух других параметров.
До 27.02
- Доделать. Написать функцию, принимающую в качестве параметра массив целых чисел типа ar из любого числа элементов и его длину и умножающую элементы этого массива с четными индексами на 2, а с нечетными — на 3.
- Написать функцию, принимающую в качестве параметров три массива, первые два по 50 элементов каждый, третий из 100 элементов, и записывающую элементы из первых двух массивов в третий в порядке возрастания (предполагается, что в первых двух массивах элементы также записаны в порядке возрастания).
- Написать функцию, принимающую массив целых чисел и его длину, а также число n, и осуществляющую циклический сдвиг его элементов вправо на n позиций, без использования дополнительных массивов.
- Ввести 15 целых чисел и вывести максимальную длину подпоследовательности, являющейся арифметической прогрессией. Члены подпоследовательности должны идти в исходной последовательности подряд (между ними не допускается других членов исходной последовательности).
- Написать функцию, которая принимает в качестве параметра двумерный массив 20 × 20 (квадратную матрицу) и возвращает ее след (сумму диагональных элементов).
- Написать функцию, принимающую в качестве параметра двумерный массив и заменяющую в нем каждый элемент на сумму его соседей сверху, снизу, справа и слева (отсутствующие соседи считаются равными нулю; все элементы должны меняться одновременно, т. е. во всех суммах участвуют старые значения элементов).
- Написать функцию, принимающую в качестве параметра квадратную матрицу 7×7 и печатающую ее элементы по спирали, начиная с центрального элемента (первое звено спирали идет вверх).
До 05.03
- Написать функцию, принимающую в качестве параметров динамический двумерный массив и заполняющий её случайными числами от -100 до 100. Случайное, целое число от 0 до RAND_MAX (32767), можно получить функцией rand(), а привести к нужному отрезку можно используя арифметические операции.
- Написать функцию, принимающую в качестве параметров двумерный массив и два целых числа (номера строк), и меняющую местами две строки с указанными номерами в массиве-параметре.
- Написать функцию, принимающую в качестве параметров двумерный массив, два целых числа (номера строк) и вещественное число (коэффициент), и вычитающую в массиве-параметре строку с первым номером, умноженную на коэффициент, из строки со вторым номером.
- Написать процедуру, приводящую матрицу из вещественных чисел к ступенчатому виду при помощи элементарных преобразований над строками (см. задачи 2 и 3). Ступенчатый вид матрицы — такой, при котором каждая следующая строка начинается с большего числа нулей, чем предыдущая, кроме, возможно, нескольких последних строк матрицы, полностью состоящих из нулей.
- Пользуясь решением задачи 4, написать функцию, вычисляющую определитель квадратной матрицы.
В задачах 1-5 использовать динамический массив типа double
До 12.03
- Написать функцию с парамтером переменной длины, вычисляющий сумму всех элементов типа int, последний элемент задается как null. Например,
funcName(2, 3.0, "text", 'c', 3, null);
должен выдать результат \5. - Написать функцию с обобщенным типом (шаблоном) и содержающий два параметра, вычисляющую корень первого числа в степени второго числа. Добавить проверку, что действительно типы в параметре являются числом.
- Написать функцию f(x) = sin^2 x и функцию, вычисляющую приближенное значение определенного интеграла по формуле средних трапеций, а также функцию main, выводящую на экран приближенное значение интеграла. Формула средних трапеций:
Функцию integral перегрузить с указателем на функцию f и обобщенным типом F.
- Написать функцию, принимающую в качестве параметра указатель на функцию типа double(double) и строящую ее график (в текстовом режиме при помощи звездочек; ось x направлена вниз, ось y — вправо, начало координат — в середине экрана). При помощи этой функции построить график: а) 30cos(x/4); б) 30sin(x/4); в) 10*tg(x/10).
- Написать функцию, принимающую в качестве параметра указатель на функцию типа double(double) и два числа a и b, и возвращающую корень этой функции на отрезке [a,b] (корень, с точностью до 10−10, находится методом половинного деления; если на концах этого отрезка значения функции имеют одинаковые знаки, выдается сообщение об ошибке). При помощи этой функции найти корень уравнения e^x = 5 sin x на отрезке [0,1].
До 19.03
- Реализовать программы, которые были на занятии, в частности, определение через define значения функции f(x) = x^3 + x^2 - 5x + 3. Вычисление факториала и чисел Фибоначчи используя рекурсию.
1. Comming soon... (пронесло)
До 30.03
- Решить задачу diceSum, выводящяя на экран все комбинации заданного числа кубиков и определенной суммой.
- Решить задачу "8 королев".
Как сделать из мухи слона. Реализовать игру цепочки слов, задача игроков — превратить одно слово в другое с наименьшим количеством промежуточных звеньев. Например, МУХА — МУРА — ТУРА — ТАРА — КАРА — КАРЕ — КАФЕ — КАФР — КАЮР — КАЮК — КРЮК — УРЮК — УРОК — СРОК — СТОК — СТОН — СЛОН.
стук -> слон
стук -> [стул, сток, стык]
стул -> [стол]
сток -> [стон]
стон -> [слон]
К заданию прилагается словарь слов, состоящих из 4 букв.
Реализовать сортировку вектора строк (vector<string>
), методом:
- Пузырька.
- Вставками.
Для сравнения использовать std::string::compare()
.