Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.01.2022, 18:37   #1
sa1nts_eye
Пользователь
 
Регистрация: 24.01.2022
Сообщений: 23
По умолчанию c++ вод, вывод матрицы, вычисление нормы и вычисление индекса и максимального элемента оформить в виде функций, воспользовавшись формулой

Даны матрицы А(2,2), B(3,3), С(4,4). Найти третью норму для каждой из
них и индекс и максимального элемента. Результаты передать через
параметры функции и распечатка. Ввод, вывод матрицы,
вычисление нормы и вычисление индекса и максимального элемента
оформить в виде функций, воспользовавшись формулой:
Изображения
Тип файла: png 123456.PNG (4.2 Кб, 26 просмотров)
sa1nts_eye вне форума Ответить с цитированием
Старый 24.01.2022, 18:49   #2
sa1nts_eye
Пользователь
 
Регистрация: 24.01.2022
Сообщений: 23
По умолчанию

Пример похожей задачи:

Код:
#include <iostream>  
#include <windows.h> 
using namespace std;

const int n = 4;
const int m = 4;

void enterArray(double[][m], int, int, char);
void printArray(double[][m], int, int, char);
void changeArray(double[][m], int, int, double&);
int main()
{
	SetConsoleOutputCP(1251);
	double array[n][m], maxElm;

	cout << " Дано матриці А(4,3) та B(3,4). Для кожної з \n";
	cout << " них знайти найбільший елемент та вивести \n";
	cout << " його, а також записати 1 на те місце, де він \n";
	cout << " знаходиться. Результати передати через \n";
	cout << " параметри функції й роздрукувати. Уведення, \n";
	cout << " виведення матриці, знаходження найбільшого \n";
	cout << " елементу й запис на його місце 1 оформити \n";
	cout << " у вигляді функцій. \n";

	cout << "\n Введіть масив А(4,3):" << endl;
	enterArray(array, n, 3, 'A');
	changeArray(array, n, 3, maxElm);
	printArray(array, n, 3, 'A');
	cout << "\n Макс. елемент масива А(4,3) = " << maxElm <<
		endl;
	cout << endl;

	cout << "\n Введіть масив B(3,4):" << endl;
	enterArray(array, 3, m, 'B');
	changeArray(array, 3, m, maxElm);
	printArray(array, 3, m, 'B');
	cout << "\n Макс. елемент масива B(3,4) = " << maxElm <<
		endl;
	cout << endl;
	return 0;
}
	void enterArray(
		double array[][m],
		int n,
		int m,
		char ch
	) {

		for (int i = 0; i < n; i++)
			for (int j = 0; j < m; j++) 
			{
				cout << ch << "[" << i << "]["
					<< j << "] = ";
				cin >> array[i][j];
			}
	}


	void printArray(
		double array[][m],
		int n,
		int m,
		char ch
	) {

		for (int i = 0; i < n; i++)
			for (int j = 0; j < m; j++)
				cout << " " << ch << "[" << i
				<< "][" << j << "] = "
				<< array[i][j];
		cout << endl;
	}

	void changeArray(
		double array[][m],
		int n,
		int m,
		double& maxElm
	) {
		int iMax = 0,
			jMax = 0;
		maxElm = array[0][0];


		for (int i = 0; i < n; i++)
			for (int j = 0; j < m; j++)
				if (maxElm < array[i][j])
				{

					maxElm = array[i][j];

					iMax = i;
					jMax = j;
				}

		for (int j = 0; j < m; j++)
			array[iMax][j] = 1.0;

		for (int i = 0; i < n; i++)
			array[i][jMax] = 1.0;
	}

Последний раз редактировалось sa1nts_eye; 24.01.2022 в 18:52.
sa1nts_eye вне форума Ответить с цитированием
Старый 25.01.2022, 04:58   #3
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,289
По умолчанию

Имея такой код, вам осталось буквально чуть-чуть исправить, чтобы решить свое задание. Добавить в функцию changeArray еще два параметра для возврата iMax и jMax. При этом убрать код, который записывает единицы в строку и столбец. Добавить еще одну функцию, аналогичную changeArray, внутри которой проходить по матрице, считать сумму квадратов элементов, вычислять корень от этой суммы и возвращать его. Останется чуть-чуть изменить ввод в функции main, чтобы запрашивать 3 матрицы, а не 2, как сейчас.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 27.01.2022, 00:23   #4
sa1nts_eye
Пользователь
 
Регистрация: 24.01.2022
Сообщений: 23
По умолчанию

Ответ :

Код:
#include <iostream> // підключаємо бібліотеку вводу-виводу
#include <cmath>
#include <math.h>
using namespace std; // оголошуємо простір імен std

const int n = 4; // кількість рядків з двох матриць max = 4
const int m = 4; // кількість стовпців з двох матриць max = 4



// Прототипи функцій:
void enterArray(double[][m], int, int, char); // ввод масива
void printArray(double[][m], int, int, char); // вивід масива
void findMaxElementFromMatrix(double[][m], int, int, char); // обробка
void findThirdNormForMatrix(double[][m], int, int, char); // обробка

int main() {
    double array[n][m];
    char nameOfMatrix;

    // Виводимо завдання:
    cout << " Дано матриці А(2,2), B(3,3) та С(4,4). Для кожної з \n";
    cout << " них знайти третю норму та найбільший елементи матриці. \n";
    cout << " Результати передати через \n";
    cout << " параметри функції й роздрукувати. Уведення, \n";
    cout << " виведення матриці, максимального елемента оформити у вигляді функцій. \n";

    // Працюємо з матрицею А(2,2):
    cout << "\n Введіть масив А(2,2):" << endl;
    enterArray(array, 2, 2, 'A');
    printArray(array, 2, 2, 'A');
    findMaxElementFromMatrix(array, 2, 2, 'A');
    findThirdNormForMatrix(array, 2, 2, 'A');
    cout << endl;

    // Працюємо з матрицею B(3,3):
    cout << "\n Введіть масив B(3,3):" << endl;
    enterArray(array, 3, 3, 'B'); // вводимо масив
    printArray(array, 3, 3, 'B'); // виводимо масив
    findMaxElementFromMatrix(array, 3, 3, 'B'); // обробляємо його
    findThirdNormForMatrix(array, 3, 3, 'B'); // обробляємо його

    cout << endl;

    // Працюємо з матрицею C(4,4):
    cout << "\n Введіть масив C(4,4):" << endl;
    enterArray(array, 4, 4, 'C'); // вводимо масив
    printArray(array, 4, 4, 'C'); // виводимо масив
    findMaxElementFromMatrix(array, 4, 4, 'C'); // обробляємо його
    findThirdNormForMatrix(array, 4, 4, 'C'); // обробляємо його

    cout << endl;

    return 0;
}

void enterArray(double array[][m], int n, int m, char nameOfMatrix) {
    for (int i = 0; i < n; i++) {
        for (int j = 0; j < m; j++) {
            cout << nameOfMatrix << "[" << i << "][" << j << "] = ";
            cin >> array[i][j];
        }
    }

    cout << endl;
}

void printArray(double array[][m], int n, int m, char nameOfMatrix) {
    for (int i = 0; i < n; i++) {
        for (int j = 0; j < m; j++) {
            cout << array[i][j] << " " ;

        }

        cout << endl;
    }

    cout << endl;
}

/**
 *  Функція пошуку максимального елемента:
 *  array - оброблюваний масив
 *  n - кількість рядків масиву
 *  m - кількість стовпців масиву
 *  minElm -
 *  maxElm - максимальний елемент
 */
// Функція пошуку максимального елемента:
void findMaxElementFromMatrix(double array[][m], int n, int m, char nameOfMatrix) {
    double maxElement;
    maxElement = array[0][0];

    // Проходимо всі елементи масиву:
    for (int i = 0; i < n; i++) {
        for (int j = 0; j < m; j++) {
            if (maxElement < array[i][j]) {
                maxElement = array[i][j];
            }
        }
    }

    cout << "\n Max. elemnt of array: " << nameOfMatrix << " " << maxElement << endl;
}

void findThirdNormForMatrix(double array[][m], int n, int m, char nameOfMatrix) {
    double summ, result;
    summ, result = 0;

    // Проходимо всі елементи масиву:
    for (int i = 0; i < n; i++) {
        for (int j = 0; j < m; j++) {
            summ += pow(array[i][j], 2);
        }
    }
    
    result = sqrt(summ);

    cout << "\n Find third normal for array: " << nameOfMatrix << " " << result << endl;
}

Последний раз редактировалось BDA; 27.01.2022 в 00:31.
sa1nts_eye вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
VBA. Напишите процедуру на языке VBA, которая определяет сократимость дроби a/b (b≠0) . Вычисление наибольшего общего делителя (НОД) чисел a и b оформить в виде функции. Lizka Microsoft Office Excel 2 23.04.2017 11:07
Вычислить сумму элементов матрицы в заштрихованной области. Ввод и вывод матрицы оформить в виде процедур. KrokaKrola Помощь студентам 1 15.04.2015 15:17
Подсчитать значение функции, значение х вводится с клавиатуры, вычисление f(x) оформить в виде подпрограммы Safok Помощь студентам 0 15.12.2014 17:54
Вычисление нормы матрицы. Yakoff Помощь студентам 13 03.12.2012 01:08
Вычисление нормы матрицы Monomah Общие вопросы C/C++ 2 05.12.2010 17:27