0 / 0 / 0
Регистрация: 22.10.2014
Сообщений: 5

Получить новую матрицу путем деления всех элементов данной матрицы на ее наибольший по модулю элемент

22.10.2014, 22:33. Показов 5969. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
помогите с задачей,надо написать код на с++

Дана действительная матрица размером m×n, в которой не все
элементы равны нулю. Получить новую матрицу путем деления всех эле-
ментов данной матрицы на ее наибольший по модулю элемент.

надо в статическом и динамическом вариантах
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
22.10.2014, 22:33
Ответы с готовыми решениями:

Получить новую матрицу путем деления всех элементов данной матрицы на ее наибольший по модулю элемент
Получить новую матрицу путем деления всех элементов данной матрицы на ее наибольший по модулю элемент

Получить новую матрицу путем деления всех элементов данной матрицы на её наибольший по модулю элемент
Дана действительная матрица размера n*m, в которой не все элементы равны нулю. Получить новую матрицу путем деления всех элементов данной...

Получить матрицу путем деления всех элементов данной матрицы на ее наибольший по модулю элемент
Задание: написать программу согласно заданию. Дана целочисленная матрица размера 5х5. Получить новую матрицу путем деления всех...

2
 Аватар для lawr
385 / 279 / 478
Регистрация: 09.05.2014
Сообщений: 769
23.10.2014, 12:15
Лучший ответ Сообщение было отмечено Eugeniia как решение

Решение

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <iostream>
#include <math.h>
void main()
{
    const int m=3, n=4;
    int i, j;
    float A[m][n], max=0;
    for (i=0; i<m; i++)
        for (j=0; j<n; j++)
        {
            std::cin>>A[i][j];
            if (fabs(A[i][j])>fabs(max))
                max=A[i][j];
        }
    for (i=0; i<m; i++)
    {
        std::cout<<std::endl;
        for (j=0; j<n; j++)
        {
            A[i][j]/=max;
            std::cout<<A[i][j]<<"\t";
        }
    }
}
0
Диванный эксперт
Эксперт С++
 Аватар для Max Dark
2550 / 2062 / 971
Регистрация: 09.10.2013
Сообщений: 4,790
Записей в блоге: 4
23.10.2014, 13:16
extern_c.h
C
1
2
3
4
5
6
7
8
9
10
11
12
#ifndef EXTERN_C_H
#define EXTERN_C_H
 
#ifdef __cplusplus
#define extern_c_start extern "C" {
#define extern_c_stop }
#else
#define extern_c_start
#define extern_c_stop
#endif // C++
 
#endif
matrix_t.h
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#ifndef MATRIX_T_H
#define MATRIX_T_H
 
#include <stdlib.h>
#include <stdio.h>
#include "extern_c.h"
 
extern_c_start
 
typedef double number_t;
typedef struct{
    number_t** data;
    size_t row_count, col_count;
} matrix_t;
 
matrix_t* matrix_sq_create(size_t size);
matrix_t* matrix_create(size_t row_count, size_t col_count);
matrix_t* matrix_read(FILE* in);
void matrix_free(matrix_t* m);
void matrix_print(const matrix_t* m, FILE* out);
matrix_t* matrix_multi(const matrix_t* a, const matrix_t* b);
 
extern_c_stop
 
#endif
matrix_t.c
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
#include "matrix_t.h"
#define _CRT_SECURE_NO_WARNINGS
#pragma warning(disable : 4996)
 
matrix_t* matrix_sq_create(size_t size) {
    return matrix_create(size, size);
}
matrix_t* matrix_create(size_t row_count, size_t col_count) {
    matrix_t* m = NULL;
    void* mem_block = NULL;
    size_t    row = 0;
 
    m = (matrix_t*)malloc(sizeof(matrix_t));
    if (m) {
        m->row_count = row_count;
        m->col_count = col_count;
        // выделяем один блок под ссылки на строки и собственно данные, т.е. матрица у нас выходит одномерная
        //    память: под ссылки                   под данные
        m->data = (number_t**)mem_block = malloc(row_count*sizeof(number_t*) + row_count*col_count*sizeof(number_t));
        if (m->data) {
            mem_block = m->data + m->row_count;
            for (row = 0; row < row_count; ++row) {
                m->data[row] = ((number_t*)mem_block) + row*col_count; // запоминаем ссылки на начало строк, приводим матрицу к 2-мерному массиву
            }
        }
        else {
            free(m);
            m = NULL;
        }
    }
    return m;
}
 
void matrix_free(matrix_t* m) {
    if (m) {
        if (m->data) {
            free(m->data);
        }
        free(m);
    }
}
 
void matrix_print(const matrix_t* m, FILE* out) {
    size_t j, i;
    // для квадратной матрицы выводим только колво строк
    fprintf(out, "%z", m->row_count);
    if (m->row_count != m->col_count)
        fprintf(out, " %z", m->col_count);
    fprintf(out, "\n");
 
    for (i = 0; i < m->row_count; i++) {
        for (j = 0; j < (m->col_count - 1); j++) {
            fprintf(out, "%lf ", m->data[i][j]);
        }
        fprintf(out, "%lf\n", m->data[i][j]);
    }
}
 
static int is_endl(FILE* in) {
    int c;
    if ((c = fgetc(in)) == '\n')
        return 1;// ignore it
    else // push it back
        ungetc(c, in);
    return 0;
}
 
matrix_t* matrix_read(FILE* in) {
    matrix_t* m;
    size_t i, j, row, col;
 
    fscanf(in, "%z", &row);
    if (is_endl(in))
        col = row;
    else {
        fscanf(in, "%z", &col);
        is_endl(in);
    }
    if (m = matrix_create(row, col)){
        for (i = 0; i < m->row_count; ++i) {
            for (j = 0; j < m->col_count; ++j) {
                fscanf(in, "%ld", m->data[i]+j);
            }
            is_endl(in);
        }
    }
    return m;
}
matrix_t* matrix_multi(const matrix_t* a, const matrix_t* b) {
    matrix_t* result = NULL;
    size_t i, j, k;
 
    if (a->col_count != b->row_count)
        return NULL;
    if (result = matrix_create(a->row_count, b->col_count)) {
        for (i = 0; i < result->row_count; ++i) {
            for (j = 0; j <result->col_count; ++j) {
                result->data[i][j] = 0;
                for (k = 0; k < a->col_count; ++k) {
                    result->data[i][j] += a->data[i][k] * b->data[k][j];
                }
            }
        }
    }
    return result;
}
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#include "extern_c.h"
extern_c_start
 
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include "matrix_t.h"
 
number_t matrix_amax(const matrix_t* m) {
    number_t result;
    size_t i, j;
    result = m->data[0][0];
    for (i = 0; i < m->row_count; ++i) {
        for (j = 0; j < m->col_count; ++j) {
            if (fabs(m->data[i][j]) > fabs(result))
                result = m->data[i][j];
        }
    }
    return result;
}
void matrix_foreach(matrix_t* m) {
    number_t amax;
    size_t i, j;
 
    amax = matrix_amax(m);
    for (i = 0; i < m->row_count; ++i) {
        for (j = 0; j < m->col_count; ++j) {
            m->data[i][j] /= amax;
        }
    }
}
int main() {
    matrix_t* m;
    m = matrix_read(stdin);
    matrix_foreach(m);
    matrix_print(m, stdout);
    matrix_free(m);
    return 0;
}
 
extern_c_stop
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
23.10.2014, 13:16
Помогаю со студенческими работами здесь

Получить новую матрицу путем деления всех элементов исходной матрицы на ее наибольший по модулю элемент
2)Задан двумерный массив А. Получить новую матрицу путем деления всех элементов исходной матрицы на ее наибольший по модулю элемент.

Получить новую матрицу путем умножения всех элементов данной матрицы на ее наибольший по модулю элемент
Помогите написать код для следующей программы, пожалуйста, ++реп гарантирован. Составить алгоритм обработки матрицы А типа short...

Получить новую матрицу путём деления всех элементов данной матрицы на наибольший по модулю элемент
Дана действительная матрица размером n*m. Получить новую матрицу путём деления всех элементов данной матрицы на наибольший по модулю...

Получить новую матрицу путем деления всех элементов на ее наибольший по модулю элемент
Помогите написать программу на c++, задание: Дана действительная матрица размера n×m , в которой не все элементы равны нулю....

Получить новую матрицу путем умножения всех элементов данной матрицы на ее наименьший по модулю элемент
Получить новую матрицу путем умножения всех элементов данной матрицы на ее наименьший по модулю элемент


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

Новые блоги и статьи
Angular vs Svelte - что лучше?
Reangularity 09.07.2025
Сегодня рынок разделился на несколько четких категорий: тяжеловесы корпоративного уровня (Angular), гибкие универсалы (React), прогрессивные решения (Vue) и новая волна компилируемых фреймворков. . .
Code First и Database First в Entity Framework
UnmanagedCoder 09.07.2025
Entity Framework дает нам свободу выбора, предлагая как Code First, так и Database First подходы. Но эта свобода порождает вечный вопрос — какой подход выбрать? Entity Framework — это. . .
Как использовать Bluetooth-модуль HC-05 с Arduino
Wired 08.07.2025
Bluetooth - это технология, созданная чтобы заменить кабельные соединения. Обычно ее используют для связи небольших устройств: мобильных телефонов, ноутбуков, наушников и т. д. Работает она на частоте. . .
Руководство по структурам данных Python
AI_Generated 08.07.2025
Я отчетливо помню свои первые серьезные проекты на Python - я писал код, он работал, заказчики были относительно довольны. Но однажды мой наставник, взглянув на мою реализацию поиска по огромному. . .
Тестирование энергоэффективности и скорости вычислений видеокарт в BOINC проектах
Programma_Boinc 08.07.2025
Тестирование энергоэффективности и скорости вычислений видеокарт в BOINC проектах Опубликовано: 07. 07. 2025 Рубрика: Uncategorized Автор: AlexA Статья размещается на сайте с разрешения. . .
Раскрываем внутренние механики Android с помощью контекста и манифеста
mobDevWorks 07.07.2025
Каждый Android-разработчик сталкивается с Context и манифестом буквально в первый день работы. Но много ли мы задумываемся о том, что скрывается за этими обыденными элементами? Я, честно говоря,. . .
API на базе FastAPI с Python за пару минут
AI_Generated 07.07.2025
FastAPI - это относительно молодой фреймворк для создания веб-API, который за короткое время заработал бешеную популярность в Python-сообществе. И не зря. Я помню, как впервые запустил приложение на. . .
Основы WebGL. Раскрашивание вершин с помощью VBO
8Observer8 05.07.2025
На русском https:/ / vkvideo. ru/ video-231374465_456239020 На английском https:/ / www. youtube. com/ watch?v=oskqtCrWns0 Исходники примера:
Мониторинг микросервисов с OpenTelemetry в Kubernetes
Mr. Docker 04.07.2025
Проблема наблюдаемости (observability) в Kubernetes - это не просто вопрос сбора логов или метрик. Это целый комплекс вызовов, которые возникают из-за самой природы контейнеризации и оркестрации. К. . .
Проблемы с Kotlin и Wasm при создании игры
GameUnited 03.07.2025
В современном мире разработки игр выбор технологии - это зачастую балансирование между удобством разработки, переносимостью и производительностью. Когда я решил создать свою первую веб-игру, мой. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru