Домашнее задание для ПО 2.11 по системному программированию от 02.05.20
учебно-методическое пособие

Склемин Алексей Анатольевич

Составить программу, которая будет генерировать случайные числа в интервале [a;b] и заполнять ими двумерный массив размером 10 на 10. В массиве необходимо найти номер строки с минимальным элементом. Поменять строки массива местами, строку с минимальным элементом и первую строку массива. Организовать удобный вывод на экран.

Скачать:

ВложениеРазмер
Microsoft Office document icon 50.doc32 КБ

Предварительный просмотр:

Пятидесятое задание

Составить программу, которая будет генерировать случайные числа в интервале [a;b] и заполнять ими двумерный массив размером 10 на 10. В массиве необходимо найти номер строки с минимальным элементом. Поменять строки массива местами, строку с минимальным элементом и первую строку массива. Организовать удобный вывод на экран.


#include

#include

//#include

#include

using namespace std;

 

int main()

{

    srand(time(NULL));

    double a, b; // границы отрезка [a,b]

    cout << "Введите число а: ";

    cin >> a;

    cout << "Введите число в: ";

    cin >> b;

 

    double matrix[10][10]; // матрица случайных чисел

 

    // инициализация двумерного массива случайными числами

    for (int counter_rows = 0; counter_rows < 10; counter_rows++)

        for (int counter_columns = 0; counter_columns < 10; counter_columns++)

            matrix[counter_rows][counter_columns] = (double(rand()) / RAND_MAX) * (b - a) + a; // генерация случайных вещестчвенных чисел равномерно распределённых на отрезке [a,b]

 

    cout << "\nСгенерированный массив вещественных чисел" << endl;

    // вывод сгенерированного массива

    for (int counter_rows = 0; counter_rows < 10; counter_rows++)

    {

        for (int counter_columns = 0; counter_columns < 10; counter_columns++)

            cout << setw(7) << fixed << setprecision(3) <

        cout << endl;

    }

 

    double min = matrix[0][0]; // переменная, для хранения минимального значения

    int nom; // порядковый номер строки с минимальным элеиентом

 

    // поиск минимального элемента в массиве

    for (int counter_rows = 0; counter_rows < 10; counter_rows++)

    {

        for (int counter_columns = 0; counter_columns < 10; counter_columns++)

        {

            if (matrix[counter_rows][counter_columns] < min )

            {

                min = matrix[counter_rows][counter_columns]; // сохраняем значение минимального элемента

                nom = counter_rows; // запоминаем номер строки

            }

        }

    }

 

    cout << "\nНомер строки с минимальным элементом: " << (nom + 1) << endl;

    cout << "Минимальный элемент: " << min << endl;

    // перестановка строк

    if (nom != 0) // если минимальный элемент не содержится в первой строке

    {

        double temp[10]; // временный массив для хранения первой строки

        for (int counter_columns = 0; counter_columns < 10; counter_columns++)

                temp[counter_columns] = matrix[0][counter_columns]; // сохраняем значения первой строки во временный массив

 

        for (int counter_columns = 0; counter_columns < 10; counter_columns++)

                matrix[0][counter_columns] = matrix[nom][counter_columns]; // сохраняем значения строки с минимальным элементом в перой строке двумерного масссива

 

        for (int counter_columns = 0; counter_columns < 10; counter_columns++)

                matrix[nom][counter_columns] = temp[counter_columns]; // перемещаем значения из временного массива на место строки с мин элементом

 

        // вывод массива с перестановленными строками

        cout << "\nМассив с перестановленными строками" << endl;

        for (int counter_rows = 0; counter_rows < 10; counter_rows++)

        {

            for (int counter_columns = 0; counter_columns < 10; counter_columns++)

                cout << setw(7) << fixed << setprecision(3) << matrix[counter_rows][counter_columns];

            cout << endl;

        }

 

    } // конец if

 

    return 0;

}


По теме: методические разработки, презентации и конспекты

Домашнее задание для ПО 1.11 по системному программированию от 04.02.20

Шестнадцатеричное представление Представим, что необходимо просмотреть содержимое некотоpых байт в памяти. Требуется oпределить содержимое четырех последовательных байт (двух слов), которые имеют двои...

Домашнее задание для ПО 1.11 по системному программированию от 11.02.20

Сегменты Сегментом называется область, которая начинается на границе параграфа, то есть, по любому адресу, который делится на 16 без остатка. Хотя сегмент может располагаться в любом месте памяти и им...