Главная страница
Навигация по странице:

  • КУРСОВАЯ РАБОТА «

  • СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ

  • 1 Задание №3 1.1 Цель задания

  • 1.2 Блок-схема Рисунок 1 – Блок-схема, задача №3 6 1.3 Листинг программы

  • 1.4 Результат выполнения Рисунок 2 – Консоль отладки, задача №3 7 2 Задание №11 2.1 Цель задания

  • 2.4 Результат выполнения Рисунок 4 – Консоль отладки, задача №11 10 3 Задание №39 3.1 Цель задания

  • 4.4 Результат выполнения Рисунок 8 – Консоль отладки, задача № 48 14 5 Задание №49 5.1 Цель задания

  • 5.4 Результат выполнения Рисунок 10 – Консоль отладки, задача №49 17 6 Задание №50 6.1 Цель задания

  • 6.4 Результат выполнения Рисунок 12 – Консоль отладки, задача №50 20 7 Задание №51 7.1 Цель задания

  • 7.2 Блок-схема Рисунок 13 – Блок-схема, задача №51 21 7.3 Листинг программы

  • 7.4 Результат выполнения Рисунок 14 – Консоль отладки, задача №51 22 8 Задание №76 8.1 Цель задания

  • 8.4 Результат выполнения Рисунок 14 – Консоль отладки, задача №76 24 9 Задание №97 9.1 Цель задания

  • 9.4 Результат выполнения Рисунок 16 – Консоль отладки, задача №97 27 10 Задание №108 10.1 Цель задания

  • 10.3 Листинг программы а

  • 10.4 Результат выполнения Рисунок 18 – Консоль отладки а, задача №108 29 10.5 Блок-схема б

  • 10.6 Листинг программы б

  • 10.7 Результат выполнения Рисунок 22 – Консоль отладки б, задача №108 31 10.8 Блок-схема в

  • 10.9 Листинг программы в

  • 10.10 Результат выполнения Рисунок 24 – Консоль отладки в, задача №108 33 ЗАКЛЮЧЕНИЕ

  • СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ Стандарты и другие нормативные документы

  • Электронные ресурсы 2. Чтение и запись текстовых файлов. [Электронный ресурс] //ru.wikipedia.org; code-live.ru/tag/cpp-manual/. Книги

  • КУРСОВОЙ ИНФОРМАТИКА. Курсовая работа Структурное программирование в языке С


    Скачать 1.8 Mb.
    НазваниеКурсовая работа Структурное программирование в языке С
    Дата08.06.2021
    Размер1.8 Mb.
    Формат файлаpdf
    Имя файлаКУРСОВОЙ ИНФОРМАТИКА.pdf
    ТипКурсовая
    #215420

    Федеральное государственное автономное
    Образовательное учреждение
    Высшего образования
    «СИБИРСКИЙ ФЕДЕРАЛЬНЫЙ УНИВЕРСИТЕТ»
    Институт инженерной физики и радиоэлектроники
    Кафедра «Приборостроение и наноэлектроника»
    КУРСОВАЯ РАБОТА
    «Структурное программирование в языке С++»
    Руководитель
    Маринушкин П.С. подпись, дата инициалы, фамилия
    Студент
    РФ20-37Б
    Мартынова К.Е номер группы, подпись, дата инициалы, фамилия
    Красноярск 2021

    2
    СОДЕРЖАНИЕ
    ВВЕДЕНИЕ .......................................................................................................... 4 1 Задание №3 ........................................................................................................ 5 1.1 Цель задания ................................................................................................ 5 1.2 Блок-схема ................................................................................................... 5 1.3 Листинг программы .................................................................................... 6 1.4 Результат выполнения ................................................................................. 6 2 Задание №11 ...................................................................................................... 7 2.1 Цель задания ................................................................................................ 7 2.2 Блок-схема ................................................................................................... 7 2.3 Листинг программы .................................................................................... 8 2.4 Результат выполнения ................................................................................. 9 3 Задание №39 ................................................................................................. 10 3.1 Цель задания .............................................................................................. 10 3.2 Блок-схема ................................................................................................. 10 3.3 Листинг программы .................................................................................. 11 3.4 Результат выполнения ............................................................................... 11 4 Задание №48 ................................................................................................. 12 4.1 Цель задания .............................................................................................. 12 4.2 Блок-схема ................................................................................................. 12 4.3 Листинг программы .................................................................................. 13 4.4 Результат выполнения ............................................................................... 13 5 Задание №49 ................................................................................................. 14 5.1 Цель задания .............................................................................................. 14 5.2 Блок-схема ................................................................................................. 14 5.3 Листинг программы .................................................................................. 15 5.4 Результат выполнения ............................................................................... 16 6 Задание №50 ................................................................................................. 17 6.1 Цель задания .............................................................................................. 17 6.2 Блок-схема ................................................................................................. 17 6.3 Листинг программы .................................................................................. 18 6.4 Результат выполнения ............................................................................... 18

    3 7 Задание №51 ................................................................................................. 20 7.1 Цель задания .............................................................................................. 20 7.2 Блок-схема ................................................................................................. 20 7.3 Листинг программы .................................................................................. 21 7.4 Результат выполнения ............................................................................... 21 8 Задание №76 .................................................................................................... 22 8.1 Цель задания .............................................................................................. 22 8.2 Блок-схема ................................................................................................. 22 8.3 Листинг программы .................................................................................. 23 8.4 Результат выполнения ............................................................................... 23 9 Задание №97 .................................................................................................... 24 9.1 Цель задания .............................................................................................. 24 9.2 Блок-схема ................................................................................................. 24 9.3 Листинг программы .................................................................................. 25 9.4 Результат выполнения ............................................................................... 26 10 Задание №108 ................................................................................................ 27 10.1 Цель задания ............................................................................................ 27 10.2 Блок-схема а............................................................................................. 27 10.3 Листинг программы а .............................................................................. 28 10.4 Результат выполнения ............................................................................. 28 10.5 Блок-схема б ............................................................................................ 29 10.6 Листинг программы б.............................................................................. 30 10.7 Результат выполнения ............................................................................. 30 10.8 Блок-схема в ............................................................................................ 31 10.9 Листинг программы в .............................................................................. 32 10.10 Результат выполнения ........................................................................... 32
    ЗАКЛЮЧЕНИЕ .................................................................................................. 33
    СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ .................................... 34

    4
    ВВЕДЕНИЕ
    Программирование является одним из основных дисциплин для инженерных направлений. В данной работе необходимо выполнить 10 заданий функционального программирования на языке С++. В ходе выполнения работы было решение выполнять все 10 задач в одном исполняемом файле, таким образом есть возможность использовать пользовательские функции, которые необходимы практический в каждом задании.

    5
    1 Задание №3
    1.1 Цель задания
    Написать программу шифрования и расшифровки файла с использованием ключевой строки. В этом методе каждый символ заменяется по правилу циклического сдвига на соответствующий код из ключевой строки.
    1.2 Блок-схема
    Рисунок 1 – Блок-схема, задача №3

    6
    1.3 Листинг программы
    void TaskOne() { ofstream sampleFile("sample.txt"); // создаём объект класса ofstream и связываем его с файлом cppstudio.txt string text; //строка текста вводимая пользователем string code;//ключевая строка int k = 0; string textout; //строка текста получаемая из файла cout << "Enter text\n"; getline(cin, text);//получение всей строки текста из консоли и запись в text cout << "Enter \"key-word\"\n"; cin >> code;
    //зашифровка for (int i = 0; i < size(text); i++)
    { text[i] += code[k]; k++; if (k == size(code)) { k = 0; }
    } cout << "coded text:" << text << endl; sampleFile << text << endl; //передача текста в файл sampleFile.close();//закрыли файл ifstream fin("sample.txt"); //открытие файла для получения данных getline(fin, textout); // считали строку из файла в переменную textout fin.close(); // закрываем файл
    //расшифровка k = 0; for (int i = 0; i < size(textout); i++)
    { textout[i] -= code[k]; k++; if (k == size(code)) { k = 0; }
    } cout << "decoded text from file: " << textout << endl << endl;
    }
    1.4 Результат выполнения
    Рисунок 2 – Консоль отладки, задача №3

    7
    2 Задание №11
    2.1 Цель задания
    С одномерным массивом, состоящим из n вещественных элементов, выполнить следующее:
    Преобразовать массив таким образом, чтобы сначала располагались все элементы, равные нулю, а потом – все остальные.
    2.2 Блок-схема
    начало int n, i, j = 0;
    cout << "Vvedite kolichestvo elementov\n";
    cin >> n;
    float* massiv = new float[n];
    massiv cout << ' ' << n << ' ' << "elemetov\n";
    i = 0;
    cout << "Najmite klavishu dlya zaversheniya programmi\n";
    return 0;
    NO
    YES
    i < n int i = 0
    cin >> *(massiv + i)
    i++
    YES
    NO
    i < n float* massiv2 = new float[n];
    cout << *(massiv + i)
    i++
    YES
    NO
    massiv2
    i = 0
    cout << "Najmite klavishu dlya zaversheniya programmi\n";
    return 0;
    NO
    YES
    i < n massiv[i] == 0
    i = 0
    NO
    YES
    massiv2[j] = massiv[i];
    j++;
    i++
    YES
    NO
    i < n massiv[i] == 0
    massiv2[j] = massiv[i];
    j++;
    i++
    YES
    NO
    YES
    int j = 0
    j < n
    NO
    cout << '\n' << massiv2[j] << ' ';
    delete[] massiv;
    delete[] massiv2;
    j++
    YES
    NO
    КОНЕЦ
    Рисунок 3 – Блок-схема, задача №11

    8
    2.3 Листинг программы
    int n, i, j = 0; cout << "Vvedite kolichestvo elementov\n"; cin >> n; float* massiv = new float[n]; if (!massiv)
    { cout << "Najmite klavishu dlya zaversheniya programmi\n"; return 0;
    } cout << "Vvedite massiv iz" << ' ' << n << ' ' << "elemetov\n"; for (i = 0; i < n; i++) cin >> *(massiv + i); for (int i = 0; i < n; i++) cout << *(massiv + i) << ' '; float* massiv2 = new float[n]; if (!massiv2)
    { cout << "Najmite klavishu dlya zaversheniya programmi\n"; return 0;
    } for (i = 0; i < n; i++) if (massiv[i] == 0)
    { massiv2[j] = massiv[i]; j++;
    } for (i = 0; i < n; i++) if (massiv[i] != 0)
    { massiv2[j] = massiv[i]; j++;
    } for (int j = 0; j < n; j++) cout << '\n' << massiv2[j] << ' '; delete[] massiv; delete[] massiv2; }

    9
    2.4 Результат выполнения
    Рисунок 4 – Консоль отладки, задача №11

    10
    3 Задание №39
    3.1 Цель задания
    Дан массив размера N и число k (0 < k < 5, k < N). Осуществить циклический сдвиг элементов массива влево на k позиций.
    3.2 Блок-схема
    НАЧАЛО
    template
    void rot(T first, T mid, T last)
    reverse(first, last);
    reverse(first, mid);
    reverse(mid, last);
    int main(int argc, const char* argv[])
    string s = "abcdefghij";
    rot(s.begin(), s.begin() + 3, s.end());
    cout << s << endl;
    rotate(s.begin(), s.begin() + 3, s.end());
    cout << s << endl;
    КОНЕЦ
    Рисунок 5 – Блок-схема, задача №39

    11
    3.3 Листинг программы
    #include
    #include
    #include
    #include using namespace std; template void rot(T first, T mid, T last)
    { reverse(first, last); reverse(first, mid); reverse(mid, last);
    } int main(int argc, const char* argv[])
    { string s = "abcdefghij"; rot(s.begin(), s.begin() + 3, s.end()); cout << s << endl; rotate(s.begin(), s.begin() + 3, s.end()); cout << s << endl;
    }
    3.4 Результат выполнения
    Рисунок 6 – Консоль отладки, задача №39

    12
    4 Задание №48
    4.1 Цель задания
    С одномерным массивом, состоящим из n вещественных элементов, выполнить следующее: Сжать массив, удалив из него все элементы, модуль которых не превышает 1. Освободившиеся в конце массива элементы заполнить нулями.
    4.2 Блок-схема
    НАЧАЛО
    cout << "Vvedite kolichestvo elementov\n";
    cin >> n;
    float* massiv = new float[n];
    massiv cout << "Vvedite massiv iz" << ' ' << n << ' ' << "elemetov\n";
    i = 0
    cout << "Najmite klavishu dlya zaversheniya programmi\n";
    return 0;
    NO
    YES
    i < n cin >> *(massiv + i)
    int i = 0
    YES
    NO
    i++
    i < n cout << *(massiv + i) << ' ';
    float* massiv2 = new float[n];
    YES
    NO
    i++
    massiv2
    i = 0
    cout << "Najmite klavishu dlya zaversheniya programmi\n";
    return 0;
    NO
    YES
    i < n i = 0
    fabs(massiv[i]) > 1
    NO
    YES
    massiv2[j] = massiv[i];
    j++;
    i++
    YES
    NO
    i < n int j = 0
    massiv2[j] = 0;
    j++
    i++
    j < n cout << '\n' << massiv2[j] << ' '
    delete[] massiv;
    delete[] massiv2
    ;
    i++
    YES
    NO
    КОНЕЦ
    Рисунок 7 – Блок-схема, задача №48

    13
    4.3 Листинг программы
    #include using namespace std; int main()
    { int n, i, j = 0; cout << "Vvedite kolichestvo elementov\n"; cin >> n; float* massiv = new float[n]; if (!massiv)
    { cout << "Najmite klavishu dlya zaversheniya programmi\n"; return 0;
    } cout << "Vvedite massiv iz" << ' ' << n << ' ' << "elemetov\n"; for (i = 0; i < n; i++) cin >> *(massiv + i); for (int i = 0; i < n; i++) cout << *(massiv + i) << ' '; float* massiv2 = new float[n]; if (!massiv2)
    { cout << "Najmite klavishu dlya zaversheniya programmi\n"; return 0;
    } for (i = 0; i < n; i++) if (fabs(massiv[i]) > 1)
    { massiv2[j] = massiv[i]; j++;
    } for (i = 0; i < n; i++)
    { massiv2[j] = 0; j++;
    } for (int j = 0; j < n; j++) cout << '\n' << massiv2[j] << ' '; delete[] massiv; delete[] massiv2;
    }
    4.4 Результат выполнения
    Рисунок 8 – Консоль отладки, задача № 48

    14
    5 Задание №49
    5.1 Цель задания
    Заданы два одномерных массива различных размеров. Объединить их в один массив, включив второй массив между k-м и k+1 -ым элементами первого (k задано).
    5.2 Блок-схема
    НАЧАЛО
    cout << "Enter Num of Elements (n<=10) :" << endl;
    cin >> n;
    i = 0
    i < n cout << endl << "Mas:" << endl;
    i = 0
    a[i] = rand() % 256;
    i++
    NO
    YES
    i < n cout << endl << "Enter Num of Elements (n<=10) :" << endl;
    cin >> k;
    i = 0
    cout << a[i] << " ";
    i++
    NO
    YES
    i < k
    YES
    b[i] = rand() % 128
    NO
    cout << endl << "Mas2:" << endl;
    i = 0
    i++
    i < k cout << b[i] << " ";
    cout << endl << "N-ber el of ins:" << endl;
    cin >> f;
    (i = 0
    i++
    YES
    NO
    i < f c[i] = a[i];
    i = f i++
    YES
    NO
    i < f + k c[i] = b[i - f];
    i = f + k i++
    YES
    NO
    i <= n + k cout << endl << "Result:" << endl;
    i = 0
    c[i] = a[i - k];
    i++
    YES
    NO
    i < n + k
    КОНЕЦ
    cout << c[i] << " "
    NO
    YES
    i++
    Рисунок 9 – Блок-схема, задача №49

    15
    5.3 Листинг программы
    int i, n, k, f; double a[12], b[12], c[25]; void main()
    { cout << "Enter Num of Elements (n<=10) :" << endl; cin >> n; for (i = 0; i < n; i++) a[i] = rand() % 256; cout << endl << "Mas:" << endl; for (i = 0; i < n; i++) cout << a[i] << " "; cout << endl << "Enter Num of Elements (n<=10) :" << endl; cin >> k; for (i = 0; i < k; i++) b[i] = rand() % 128; cout << endl << "Mas2:" << endl; for (i = 0; i < k; i++) cout << b[i] << " "; cout << endl << "N-ber el of ins:" << endl; cin >> f; for (i = 0; i < f; i++)
    { c[i] = a[i];
    } for (i = f; i < f + k; i++)
    { c[i] = b[i - f];
    } for (i = f + k; i <= n + k; i++)
    { c[i] = a[i - k];
    } cout << endl << "Result:" << endl; for (i = 0; i < n + k; i++) cout << c[i] << " ";
    }

    16
    5.4 Результат выполнения
    Рисунок 10 – Консоль отладки, задача №49

    17
    6 Задание №50
    6.1 Цель задания
    Матрица размещена в одномерном массиве по строкам. Поменять местами 1-ю и 2-ю строки матрицы. Результат вывести по строкам.
    6.2 Блок-схема
    НАЧАЛО
    setlocale(
    LC_ALL
    ,
    "Russian"
    );
    int n, m;
    const int size = 100; int
    Array[size];
    int matrix[size][size];
    cout
    <<
    "Введите размер матрицы:"
    <<
    endl; cin
    >>
    n;
    cout
    <<
    "Введите одномерный массив:"
    <<
    endl;
    int i
    i < n * n
    YES
    cin
    >>
    Array[i];
    i++
    NO
    cout
    <<
    "Сформированная матрица:"
    <<
    endl;
    int j = 0
    j < n
    NO
    A
    YES
    int i = 0
    i < n cout
    <<
    endl;
    j++
    NO
    YES
    matrix[i][j] = Array[i + j * n];
    cout
    <<
    matrix[i][j]
    <<
    " "
    i++
    А
    cout
    <<
    "Измененная матрица:"
    <<
    endl;
    int j = 0
    j < n
    NO
    return 0;
    КОНЕЦ
    YES
    j == 0
    NO
    j == 1
    m = 1;
    YES
    NO
    YES
    m = 0;
    m = j;
    int i = 0
    i < n cout
    <<
    matrix[i][j]
    <<
    " "
    i++
    YES
    cout
    <<
    endl;
    j++
    NO
    Рисунок 11 – Блок-схема, задача №50

    18
    6.3 Листинг программы
    #include // заголовочный файл с классами, функциями и переменными для организации ввода-вывода в языке программирования C++.
    #include // содержит в себе функции, занимающиеся выделением памяти, контролем процесса выполнения программы, преобразованием типов using namespace std; // сообщает компилятору, что нужно использовать группу функций, которые являются частью стандартной библиотеки std int main() //это строка сообщяет компилятору что есть функция main
    { setlocale(LC_ALL, "Russian"); int n, m; const int size = 100; //размерность заполняемых матриц int Array[size]; //сюда заполняются значения из терминала(консоли) int matrix[size][size]; //сюда заполняется полученая матрица из введеного массива cout << "Введите размер матрицы:" << endl; //просим ввести размер матрицы cin >> n; //получаем размер матрицы из терминала cout << "Введите одномерный массив:" << endl; //просим ввести одномерный маасив for (int i = 0; i < n * n; i++) //считываем значение одномерного массива из терминала
    { cin >> Array[i]; //записываем значения из терминала
    } cout << "Сформированная матрица:" << endl;
    //формируем матрицу из одномерного массива for (int j = 0; j < n; j++) // переключение строк для заполнения
    { for (int i = 0; i < n; i++) // заполнение строки в матрице
    { matrix[i][j] = Array[i + j * n]; // получение значения из одномерного массива cout << matrix[i][j] << " "; //вывод в терминал элемента матрицы поэлементно
    } cout << endl; //перенос каретки в терминале на следующую строку
    } cout << "Измененная матрица:" << endl; for (int j = 0; j < n; j++)
    { if (j == 0) //при условии, что j = 0, m приравнивается к 1 m = 1; // m - номер строки else if (j == 1) //при условии, что j = 1, m приравнивается к 0 m = 0; else m = j; // при других условиях они равны

    19 for (int i = 0; i < n; i++)
    { cout << matrix[i][m] << " "; // вывод матрицы в терминал поэлементно
    } cout << endl;
    } return 0;
    6.4 Результат выполнения
    Рисунок 12 – Консоль отладки, задача №50

    20
    7 Задание №51
    7.1 Цель задания
    Задан одномерный массив A. Получить среднее арифметическое всех чётных элементов массива, стоящих на нечётных местах.
    7.2 Блок-схема
    Рисунок 13 – Блок-схема, задача №51

    21
    7.3 Листинг программы
    void TaskFive() { cout << " 5. Задача № 51\n Задан одномерный массив A.\n Получить среднее арифметическое всех чётных элементов массива, стоящих на нечётных местах.\n\n"; int* array ; int a, counter = 0; float sum = 0; cout << "Enter dimension: "; cin >> a; cout << "Enter integer array:"; array = iarrayIn(a); for (int i = 1; i < a; i++)
    { if (array[i] % 2 == 0)
    { sum += array[i]; counter++;
    } i++;
    } cout << "\nsum " << sum << "\ncounter " << counter << "\nresult " << sum / counter << endl; delete[] array;
    }
    7.4 Результат выполнения
    Рисунок 14 – Консоль отладки, задача №51

    22
    8 Задание №76
    8.1 Цель задания
    Заменить все отрицательные элементы целочисленного массива размера 10 на минимальное значение элементов массива.
    8.2 Блок-схема
    НАЧАЛО
    int n, min = 0;
    cout << "n="; cin >> n;
    int* a = new int[n];
    cout << "Enter " << n
    << " elements:\n";
    int i = 0
    i < n
    NO
    cout << "Enter " << n << " elements:\n";
    int i
    YES
    cin >> a[i];
    i == 0 || a[i] < min
    YES
    min = a[i];
    NO
    i++
    i < n
    NO
    cout << "\n";
    delete[]a; system("pause");
    return 0;
    YES
    a[i] < 0
    КОНЕЦ
    NO
    cout << a[i] << " ";
    YES
    a[i] = min;
    i++
    Рисунок 13 – Блок-схема, задача №76

    23
    8.3 Листинг программы
    #include using namespace std; int main()
    { int n, min = 0; cout << "n="; cin >> n; int* a = new int[n]; cout << "Enter " << n << " elements:\n"; for (int i = 0; i < n; i++)
    { cin >> a[i]; if (i == 0 || a[i] < min) min = a[i];
    } cout << "min=" << min << "\n"; for (int i = 0; i < n; i++)
    { if (a[i] < 0) a[i] = min; cout << a[i] << " ";
    } cout << "\n"; delete[]a; return 0;
    }
    8.4 Результат выполнения
    Рисунок 14 – Консоль отладки, задача №76

    24
    9 Задание №97
    9.1 Цель задания
    Для заданной квадратной матрицы сформировать одномерный массив из ее диагональных элементов. Найти след матрицы, суммируя элементы одномерного массива.
    9.2 Блок-схема
    НАЧАЛО
    int n;
    int temp = 0;
    int summ = 0;
    cout << "Kolvo elementov: \n";
    cin >> n;
    int* pArr = new int[n];
    int** pMatr = new int* [n];
    int i = 0
    i < n int i = 0
    pMatr[i] = new int[n];
    i++
    NO
    YES
    i < n int i = 0
    int j = 0
    YES
    j < n cout << i << " " << "stroka" << " " << j << " " << "stolb" << " :";
    cin >> temp;
    pMatr[i][j] = temp;
    i++
    NO
    YES
    j++
    NO
    i < n pArr[i] = pMatr[i][i];
    cout << "res Array: ";
    int i = 0
    YES
    i++
    NO
    i < n cout << "summ Array: ";
    int i = 0
    cout << pArr[i] << " ";
    NO
    YES
    i++
    i < n summ += pArr[i];
    cout << summ;
    int i = 0
    YES
    NO
    i++
    i < n int j = 0
    cout << "\n " << "poluch. matr" << "\n";
    int i = 0
    YES
    NO
    j < n i++
    NO
    (i + 1) % 2 == 0
    YES
    j++
    NO
    pMatr[i][j] /= summ;
    YES
    i < n system("PAUSE");
    return 0;
    int j = 0
    КОНЕЦ
    NO
    YES
    j < n cout << "\n"
    cout << pMatr[i][j] << " ";
    i++
    NO
    YES
    j++
    Рисунок 15 – Блок-схема, задача №97

    25
    9.3 Листинг программы
    int n; int temp = 0; int summ = 0; cout << "Kolvo elementov: \n"; cin >> n; int* pArr = new int[n]; int** pMatr = new int* [n]; for (int i = 0; i < n; i++)
    { pMatr[i] = new int[n];
    } for (int i = 0; i < n; i++)
    { for (int j = 0; j < n; j++)
    { cout << i << " " << "stroka" << " " << j << " " << "stolb" << " :"; cin >> temp; pMatr[i][j] = temp;
    }
    } for (int i = 0; i < n; i++)
    { pArr[i] = pMatr[i][i];
    } cout << "res Array: "; for (int i = 0; i < n; i++)
    { cout << pArr[i] << " ";
    } cout << "summ Array: "; for (int i = 0; i < n; i++)
    { summ += pArr[i];
    } cout << summ; for (int i = 0; i < n; i++)
    { for (int j = 0; j < n; j++)
    { if ((i + 1) % 2 == 0) pMatr[i][j] /= summ;
    }
    } cout << "\n " << "poluch. matr" << "\n"; for (int i = 0; i < n; i++)
    { for (int j = 0; j < n; j++)
    { cout << pMatr[i][j] << " ";

    26
    } cout << "\n";
    } return 0;
    9.4 Результат выполнения
    Рисунок 16 – Консоль отладки, задача №97

    27
    10 Задание №108
    10.1 Цель задания
    Дана квадратная матрица порядка M. Заменить нулями элементы матрицы, лежащие: а) ниже главной диагонали, б) выше главной диагонали, в) ниже побочной диагонали.
    10.2 Блок-схема а
    НАЧАЛО
    int i = 0
    i < N
    cout << endl int j = 0
    NO
    YES
    A
    j < N
    cout << Matr[i][j] << " ";
    cout << "\n";
    j++
    i++
    YES
    NO
    A
    double Matrix[N][N] =
    {
    {1,2,1},
    {2,3,1},
    {1,2,2}
    };
    cout << "Исходная матрица:\n";
    PrintMatr(Matrix);
    int i = 0
    i < N
    cout << "Полученный результат:" << endl;
    PrintMatr(Matrix);
    system("pause");
    return 0;
    NO
    int j = 0
    YES
    j <= i i++
    NO
    Matrix[i][j] = 0
    YES
    Matrix[i][j] = 0
    j++
    NO
    YES
    КОНЕЦ
    Рисунок 17 – Блок-схема а, задача №108

    28
    10.3 Листинг программы а
    #include
    #define N 3 using namespace std; void PrintMatr(double Matr[N][N])
    { for (int i = 0; i < N; i++) { for (int j = 0; j < N; j++) { cout << Matr[i][j] << " ";
    } cout << "\n";
    } cout << endl;
    } int main()
    { double Matrix[N][N] =
    {
    {1,2,1},
    {2,3,1},
    {1,2,2}
    }; cout << "Исходная матрица:\n";
    PrintMatr(Matrix);
    //Преобразование матрицы for (int i = 0; i < N; i++) { for (int j = 0; j <= i; j++) { if (Matrix[i][j] = 0) Matrix[i][j] = 0;
    }
    } cout << "Полученный результат:" << endl;
    PrintMatr(Matrix); return 0;
    }
    10.4 Результат выполнения
    Рисунок 18 – Консоль отладки а, задача №108

    29
    10.5 Блок-схема б
    НАЧАЛО
    srand(time(0));
    int N;
    int** a;
    cout << "Enter N: ";
    cin >> N;
    a = new int* [N];
    cout << "Tram:" << endl;
    int i = 0
    i < N
    a[i] = new int[N];
    int j = 0
    YES
    j < N
    cout << setw(4) << (a[i][j]
    = rand() % 101);
    cout << endl;
    ++j
    ++i
    YES
    NO
    int i = 0
    NO
    i < N
    int j = 0
    cout << "pam-pam:" << endl;
    int i = 0
    YES
    j < N
    a[i][j] = 0;
    cout << endl;
    ++i
    NO
    YES
    ++j
    NO
    i < N
    int j = 0
    NO
    return 0
    YES
    КОНЕЦ
    j < N
    NO
    cout << setw(4) << a[i][j];
    YES
    ++j
    Рисунок 21 – Блок-схема б, задача №108

    30
    10.6 Листинг программы б
    int main()
    { srand(time(0)); int N; int** a; cout << "Enter N: "; cin >> N; a = new int* [N]; cout << "Tram:" << endl; for (int i = 0; i < N; ++i)
    { a[i] = new int[N]; for (int j = 0; j < N; ++j) cout << setw(4) << (a[i][j] = rand() % 101); cout << endl;
    } for (int i = 0; i < N; ++i) for (int j = i; j < N; ++j) a[i][j] = 0; cout << "pam-pam:" << endl; for (int i = 0; i < N; ++i)
    { for (int j = 0; j < N; ++j) cout << setw(4) << a[i][j]; cout << endl;
    } return 0;
    }
    10.7 Результат выполнения
    Рисунок 22 – Консоль отладки б, задача №108

    31
    10.8 Блок-схема в
    КОНЕЦ
    const int M = 5;
    int i, j, mas[M][M];
    cout << "Enter mas[M][M]:\n";
    i = 0
    i < M
    j = 0
    YES
    j < M
    NO
    i++
    YES
    cin >> mas[i][j];
    j++
    cout << "\n";
    i = M - 1
    i >= 0
    NO
    i = 0
    system("pause");
    return 0;
    КОНЕЦ
    YES
    j = M - i
    --i
    YES
    mas[i][j] = 0;
    j < M
    NO
    j++
    i < M
    NO
    j = 0
    YES
    j < M
    cout << mas[i][j] << ' '
    YES
    cout << endl i++
    NO
    j++
    Рисунок 23 – Блок-схема в, задача №108

    32
    10.9 Листинг программы в
    int main()
    { const int M = 5; int i, j, mas[M][M]; cout << "Enter mas[M][M]:\n"; for (i = 0; i < M; i++) for (j = 0; j < M; j++) cin >> mas[i][j]; cout << "\n"; for (i = M - 1; i >= 0; --i) for (j = M - i; j < M; ++j) mas[i][j] = 0; for (i = 0; i < M; i++)
    { for (j = 0; j < M; j++) cout << mas[i][j] << ' '; cout << endl;
    } return 0;
    }
    10.10 Результат выполнения
    Рисунок 24 – Консоль отладки в, задача №108

    33
    ЗАКЛЮЧЕНИЕ
    Данная курсовая работа помогает закрепить навыки и знания функционального программирования полученные в течении курса
    «Информационные технологии в электронике, радиотехнике и системах связи».
    Полученная информация и навыки будет полезна при программировании микроконтроллеров и решении математических задач, которые могут возникнуть в процессе обучения.

    34
    СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
    Стандарты и другие нормативные документы
    1. СТО 4.2-07-2014 Система менеджмента качества. Общие требования к построению, изложению и оформлению документов учебной деятельности. – Введ 2014. – Красноярск : СФУ, 2014. – 60 с.
    Электронные ресурсы
    2. Чтение и запись текстовых файлов. [Электронный ресурс] //
    ru.wikipedia.org; code-live.ru/tag/cpp-manual/.
    Книги
    3. Язык программирования С++ . Лекции и упражнения : Пер. с англ. -
    М . : Издательский дом "Вильяме" , 2013. - 960 с


    написать администратору сайта