Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <iomanip>
- using namespace std;
- //============================================Задание 1=================================================================
- // Написать функцию, добавляющую столбец двумерному массиву по указанному индексу.
- void AddColumn(int** arr, int lines, int& cols, int index) {
- for (int i = 0; i < lines; ++i) {
- int* temp = new int[cols + 1];
- for (int j = 0; j < index; j++) {
- temp[j] = arr[i][j];
- }
- temp[index] = 0;
- for (int j = index; j < cols; j++) {
- temp[j + 1] = arr[i][j];
- }
- delete[] arr[i];
- arr[i] = temp;
- }
- cols++;
- }
- int main()
- {
- int lines = 5;
- int cols = 5;
- int** arr = new int* [lines];
- for (int i = 0; i < lines; i++) {
- arr[i] = new int[cols];
- }
- for (int i = 0; i < lines; i++) {
- for (int j = 0; j < cols; j++) {
- arr[i][j] = j + i * cols;
- }
- }
- for (int i = 0; i < lines; i++) {
- for (int j = 0; j < cols; j++) {
- cout << setw(4) << arr[i][j];
- }
- cout << std::endl;
- }
- cout << std::endl;
- AddColumn(arr, lines, cols, 3);
- for (int i = 0; i < lines; i++) {
- for (int j = 0; j < cols; j++) {
- cout << setw(4) << arr[i][j];
- }
- cout << std::endl;
- }
- for (int i = 0; i < lines; i++) {
- delete[] arr[i];
- }
- delete[] arr;
- }
- //============================================Задание 2=================================================================
- // Написать функцию, удаляющую столбец двумерного массива по указанному индексу.
- void DelColumn(int** arr, int lines, int& cols, int index) {
- for (int i = 0; i < lines; ++i) {
- int* temp = new int[cols - 1];
- for (int j = 0; j < index; j++) {
- temp[j] = arr[i][j];
- }
- for (int j = index + 1; j < cols; j++) {
- temp[j - 1] = arr[i][j];
- }
- delete[] arr[i];
- arr[i] = temp;
- }
- cols--;
- }
- int main()
- {
- int lines = 5;
- int cols = 5;
- int** arr = new int* [lines];
- for (int i = 0; i < lines; i++) {
- arr[i] = new int[cols];
- }
- for (int i = 0; i < lines; i++) {
- for (int j = 0; j < cols; j++) {
- arr[i][j] = j + i * cols;
- }
- }
- for (int i = 0; i < lines; i++) {
- for (int j = 0; j < cols; j++) {
- cout << setw(4) << arr[i][j];
- }
- cout << std::endl;
- }
- cout << std::endl;
- DelColumn(arr, lines, cols, 3);
- cols--;
- for (int i = 0; i < lines; i++) {
- for (int j = 0; j < cols; j++) {
- cout << setw(4) << arr[i][j];
- }
- cout << std::endl;
- }
- for (int i = 0; i < lines; i++) {
- delete[] arr[i];
- }
- delete[] arr;
- }
- //============================================Задание 3=================================================================
- // Создайте структуру, описывающую комплексное число. Реализуйте арифметические операции с комплексными числами: сумму, разность, умножение, деление.
- struct complex_number {
- double a;
- double b;
- };
- complex_number addition(const complex_number& x, const complex_number& y) {
- return complex_number{ (x.a + y.a), (x.b + y.b) };
- }
- complex_number deduction(const complex_number& x, const complex_number& y) {
- return complex_number{ (x.a - y.a), (x.b - y.b) };
- }
- complex_number multiplication(const complex_number& x, const complex_number& y) {
- return complex_number{ (x.a * y.a - x.b * y.b), (x.a * y.b + y.a * x.b) };
- }
- complex_number division(const complex_number& x, const complex_number& y) {
- return complex_number{ ((x.a * y.a + x.b * y.b) / (y.a * y.a + y.b * y.b)), ((y.a * x.b - x.a * y.b) / (y.a * y.a + y.b * y.b)) };
- }
- int main() {
- complex_number x = { 3,4 }, y = { 5,10 };
- complex_number result;
- result = addition(x, y);
- cout << "addition: result.a = " << result.a << " result.b = " << result.b << endl;
- result = deduction(x, y);
- cout << "deduction: result.a = " << result.a << " result.b = " << result.b << endl;
- result = multiplication(x, y);
- cout << "multiplication: result.a = " << result.a << " result.b = " << result.b << endl;
- result = division(x, y);
- cout << "division: result.a = " << result.a << " result.b = " << result.b << endl;
- }
- //==================================================пример использования sizeof()================================
- #include <iostream>
- using namespace std;
- int main() {
- char line1[20]{ "hello" };
- char line2[20];
- int arr1[20]{ 1,2,3,4 };
- int arr2[20];
- cout << "Размер массива: " << sizeof(line1) / sizeof(char) << "элементов" << endl;
- cout << "Размер массива: " << sizeof(line2) / sizeof(char) << "элементов" << endl;
- cout << "Размер массива: " << sizeof(arr1) / sizeof(int) << "элементов" << endl;
- cout << "Размер массива: " << sizeof(arr2) / sizeof(int) << "элементов" << endl;
- }
- //==============================================пример использования auto / decltype====================================
- #include <iostream>
- using namespace std;
- int minF() {
- int a = 20;
- int b = 10;
- if (a < b) {
- return a;
- }
- else {
- return b;
- }
- }
- int myF()
- {
- int a = 20;
- return a + 5;
- }
- int main() {
- // стандартная инициализация
- double myVar;
- myVar = 4.2;
- double myVar2 = 4.2;
- // варианты инициализации с auto
- auto myVar3 = 4.2;
- auto myExpr = 2 + 5;
- auto ptr = &myVar;
- auto myMin = minF();
- // варианты инициализации с decltype
- int x = 1;
- decltype(x) j;
- //cout << j << endl;
- int x2 = 1; // аналогично тому что выше но в этом случае j2 сразу
- auto j2 = x2; // инициализирована значением, хранящимся в x2
- //cout << j2 << endl;
- int y = 10;
- int& r = y;
- decltype(r) var = y; // var становится ссылкой на y
- var = 12;
- //cout << y << endl;
- int y2 = 10;
- int& r2 = y2;
- auto var2 = r2; // var становится переменной типа int
- var = 12;
- //cout << y2 << endl;
- decltype(myF()) varF = 3; // можно получить тип возвращаемого функцией значения
- cout << varF << endl;
- }
Advertisement
Add Comment
Please, Sign In to add comment