Вопрос задан 23.06.2023 в 02:29. Предмет Информатика. Спрашивает Тексамин Игорь.

100 баллов. Срочно! оба задания 1) упорядочить одномерный вещественный массив из 20 элементов по

убыванию методом перебора. 2) Сформировать вещественную матрицу 5х5. Вычислить произведение отрицательных элементов, находящихся над и под главной диагональю матрицы. Язык С++
0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Милютин Коля.

Ответ:

#include <iostream>

#include <iomanip>

#include <time.h>

#include <cstdlib>

const int size(5);                              //размер матрицы (квадратной)

//выставляем цветконсоли и текста (6 - коричневый цвет фона, 7 - цвет текста)

const int NotUsed = system( "color 67" );

//рандомно заполняем матрицу случайными числами от 0 до 50

void random(int _mas[][size]){

   for(int i = 0; i < size; ++i)

       for(int j = 0; j < size; ++j)

           _mas[i][j] = rand() % 51;

}

//вывод матрицы на консоль

void print(int _mas[][size]){

   std::cout << "Matrix:\n";

   for(int i = 0; i < size; ++i){

       std::cout << "\n\t";

       for(int j = 0; j < size; ++j){

           std::cout << std::setw(3) << _mas[i][j] << ' ';

       }

   }

   std::cout << std::endl << std::endl;

}

//функция упорядочивания строк матрицы по возрастанию

void regularize(int _mas[][size]){

   for(int i = 0; i < size; ++i)

       for(int j = 0; j < size - 1; ++j)

           for(int k = j + 1; k < size; ++k)

               if(_mas[i][j] > _mas[i][k]){

                   int temp = _mas[i][j];

                   _mas[i][j] = _mas[i][k];

                   _mas[i][k] = temp;

               }

}

//создаем массив массив из элементов главной диагонали матрицы

void create_mas(int _mas[][size]){

   int arr[size];

   for(int i = 0; i < size; ++i)

       arr[i] = _mas[i][i];

   std::cout << "Array: ";

   for(int i = 0; i < size; ++i)

       std::cout << arr[i] << ' ';

   std::cout << std::endl << std::endl;

}

//среднее арифметическое элементов побочной диагонали матрицы

void diagonal(int _mas[][size]){

   double sum(0);

   for(int i = size - 1, j = 0; i >= 0; --i, ++j)

       sum += _mas[j][i];

   std::cout << "Mean: " << sum / size << std::endl;

}

int main()

{

   srand(time(nullptr));           //чтобы рандомные числа не повторялись

   int mas[size][size];            //матрицы 5х5

   //вызовы функций

   random(mas);

   print(mas);

   regularize(mas);

   print(mas);

   create_mas(mas);

   diagonal(mas);

   std::cout << std::endl << std::endl;

   return 0;

}

Объяснение:

0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Для выполнения задачи на языке C++, вы можете воспользоваться следующим кодом:

  1. Упорядочить одномерный вещественный массив по убыванию методом перебора:
cpp
#include <iostream> void bubbleSortDescending(float arr[], int size) { for (int i = 0; i < size - 1; i++) { for (int j = 0; j < size - i - 1; j++) { if (arr[j] < arr[j + 1]) { // Обмен элементов, если текущий больше следующего float temp = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = temp; } } } } int main() { float arr[20] = {3.0, 1.5, 2.7, 4.1, 0.9, 5.2, 6.0, 1.3, 2.0, 7.3, 3.9, 5.7, 2.2, 0.8, 4.4, 6.1, 1.2, 3.5, 2.8, 4.6}; int size = 20; bubbleSortDescending(arr, size); std::cout << "Отсортированный массив по убыванию: "; for (int i = 0; i < size; i++) { std::cout << arr[i] << " "; } return 0; }
  1. Сформировать вещественную матрицу 5x5 и вычислить произведение отрицательных элементов над и под главной диагональю матрицы:
cpp
#include <iostream> int main() { float matrix[5][5] = { {1.0, -2.0, 3.0, 4.0, -5.0}, {6.0, 7.0, -8.0, 9.0, 10.0}, {-11.0, 12.0, 13.0, -14.0, 15.0}, {16.0, -17.0, 18.0, 19.0, -20.0}, {21.0, 22.0, -23.0, 24.0, 25.0} }; float product_above_diagonal = 1.0; float product_below_diagonal = 1.0; for (int i = 0; i < 5; i++) { for (int j = 0; j < 5; j++) { if (i < j) { if (matrix[i][j] < 0) { product_above_diagonal *= matrix[i][j]; } } else if (i > j) { if (matrix[i][j] < 0) { product_below_diagonal *= matrix[i][j]; } } } } std::cout << "Произведение отрицательных элементов над главной диагональю: " << product_above_diagonal << std::endl; std::cout << "Произведение отрицательных элементов под главной диагональю: " << product_below_diagonal << std::endl; return 0; }

Этот код создает матрицу 5x5, вычисляет произведение отрицательных элементов над и под главной диагональю и выводит результаты.

0 0

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос