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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.03.2013, 13:11   #1
Salamandra_r07
Пользователь
 
Регистрация: 23.03.2013
Сообщений: 10
По умолчанию По трём заданным матрицам А(m,m), В(m,m) и С(m,m) построить матрицу Х

По трём заданным матрицам А(m,m), В(m,m) и С(m,m) построить матрицу Х того же размера, каждый элемент которой вычисляется по формуле xi j = max { ai j , bi j , ci j }
Salamandra_r07 вне форума Ответить с цитированием
Старый 23.03.2013, 13:21   #2
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,285
По умолчанию

Что вызывает трудности?
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 23.03.2013, 13:23   #3
Salamandra_r07
Пользователь
 
Регистрация: 23.03.2013
Сообщений: 10
По умолчанию

НЕ знаю как программу написать на С++. Я только 2 недели назад начала изучать этот язык
Salamandra_r07 вне форума Ответить с цитированием
Старый 23.03.2013, 13:55   #4
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,285
По умолчанию

Код:
#include <iostream>
#include <cmath>
#include <cstdlib>
#include <iomanip>

#define M 5

using namespace std;

int
max(const int x, const int y)
{
    return (x > y) ? x : y;
}

int
main()
{
    int A[M][M], B[M][M], C[M][M], X[M][M];
    for (int i = 0; i < M; ++i) {
        for (int j = 0; j < M; ++j) {
            A[i][j] = rand() % 11 - 5;
            B[i][j] = rand() % 11 - 5;
            C[i][j] = rand() % 11 - 5;
            X[i][j] = max(max(A[i][j], B[i][j]), C[i][j]);
        }
    }
    cout << "A: " << endl;
    for (int i = 0; i < M; ++i) {
        for (int j = 0; j < M; ++j) {
            cout << setw(3) << A[i][j];
        }
        cout << endl;
    }
    cout << "B: " << endl;
    for (int i = 0; i < M; ++i) {
        for (int j = 0; j < M; ++j) {
            cout << setw(3) << B[i][j];
        }
        cout << endl;
    }
    cout << "C: " << endl;
    for (int i = 0; i < M; ++i) {
        for (int j = 0; j < M; ++j) {
            cout << setw(3) << C[i][j];
        }
        cout << endl;
    }
    cout << "X: " << endl;
    for (int i = 0; i < M; ++i) {
        for (int j = 0; j < M; ++j) {
            cout << setw(3) << X[i][j];
        }
        cout << endl;
    }
    system("PAUSE");
    return 0;
}
На первый раз вот программа, но в следующий раз без наработок ни-ни.
Разберитесь хорошенько.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 23.03.2013, 14:03   #5
Salamandra_r07
Пользователь
 
Регистрация: 23.03.2013
Сообщений: 10
По умолчанию

Спасибо. А это программа подойдет для С?
Salamandra_r07 вне форума Ответить с цитированием
Старый 23.03.2013, 14:41   #6
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,285
По умолчанию

Для Си она не подойдет, так как используется много того, что есть только в С++.
Идея останется та же, только нужно заменить пару строчек.
Код:
#include <stdlib.h>
#include <math.h>
#include <stdio.h>

#define M 5

int
max(const int x, const int y)
{
    return (x > y) ? x : y;
}

int
main()
{
    int A[M][M], B[M][M], C[M][M], X[M][M], i , j;
    for (i = 0; i < M; ++i) {
        for (j = 0; j < M; ++j) {
            A[i][j] = rand() % 11 - 5;
            B[i][j] = rand() % 11 - 5;
            C[i][j] = rand() % 11 - 5;
            X[i][j] = max(max(A[i][j], B[i][j]), C[i][j]);
        }
    }
    printf("A: \n");
    for (i = 0; i < M; ++i) {
        for (j = 0; j < M; ++j) {
            printf("%3d", A[i][j]);
        }
        printf("\n");
    }
    printf("B: \n");
    for (i = 0; i < M; ++i) {
        for (j = 0; j < M; ++j) {
            printf("%3d", B[i][j]);
        }
        printf("\n");
    }
    printf("C: \n");
    for (i = 0; i < M; ++i) {
        for (j = 0; j < M; ++j) {
            printf("%3d", C[i][j]);
        }
        printf("\n");
    }
    printf("X: \n");
    for (i = 0; i < M; ++i) {
        for (j = 0; j < M; ++j) {
            printf("%3d", X[i][j]);
        }
        printf("\n");
    }
    getch();
    return 0;
}
Лучше так:
Код:
#include <stdlib.h>
#include <math.h>
#include <stdio.h>

#define M 5

int
max(const int x, const int y)
{
    return (x > y) ? x : y;
}

void
printmatrix(const char *str, const int Z[M][M])
{
    int i, j;
    printf("%s: \n", str);
    for (i = 0; i < M; ++i) {
        for (j = 0; j < M; ++j) {
            printf("%3d", Z[i][j]);
        }
        printf("\n");
    }
}

int
main()
{
    int A[M][M], B[M][M], C[M][M], X[M][M], i , j;
    for (i = 0; i < M; ++i) {
        for (j = 0; j < M; ++j) {
            A[i][j] = rand() % 11 - 5;
            B[i][j] = rand() % 11 - 5;
            C[i][j] = rand() % 11 - 5;
            X[i][j] = max(max(A[i][j], B[i][j]), C[i][j]);
        }
    }
    printmatrix("A", A);
    printmatrix("B", B);
    printmatrix("C", C);
    printmatrix("X", X);
    getch();
    return 0;
}
Цитата:
добавить, а то компилятор на getch(); ругается
Code::Blocks не стал ругаться.
Цитата:
Извините, я на VS 2008 компилировал
Может быть, Ваше замечание поможет ТС скомпилировать
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )

Последний раз редактировалось BDA; 23.03.2013 в 15:13.
BDA вне форума Ответить с цитированием
Старый 23.03.2013, 14:54   #7
Bugrimov
C/C++, Java
Участник клуба
 
Аватар для Bugrimov
 
Регистрация: 28.03.2012
Сообщений: 1,680
По умолчанию

BDA красота....
Маленькая поправка
Код:
#include <conio.h>
добавить, а то компилятор на getch(); ругается
"Keep it simple" - придерживайтесь простоты!
Уильям Оккам - "Не следует множить сущее без необходимости"
Сложность - враг простоты и удобства!

Последний раз редактировалось Bugrimov; 23.03.2013 в 15:06.
Bugrimov вне форума Ответить с цитированием
Старый 23.03.2013, 15:07   #8
Bugrimov
C/C++, Java
Участник клуба
 
Аватар для Bugrimov
 
Регистрация: 28.03.2012
Сообщений: 1,680
По умолчанию

Цитата:
Сообщение от BDA Посмотреть сообщение

Code::Blocks не стал ругаться.
Извините, я на VS 2008 компилировал......
Цитата:
Сообщение от BDA Посмотреть сообщение
Может быть, Ваше замечание поможет ТС скомпилировать
Мне уже ничто не поможет.....
"Keep it simple" - придерживайтесь простоты!
Уильям Оккам - "Не следует множить сущее без необходимости"
Сложность - враг простоты и удобства!

Последний раз редактировалось Bugrimov; 23.03.2013 в 15:20.
Bugrimov вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Построить график функции F(x) на заданном интервале с заданным шагом и вывести значения х и функции F(x) в таблицу в графическом р Proskurina Паскаль, Turbo Pascal, PascalABC.NET 8 12.11.2012 21:57
Построить матрицу А Золото Паскаль, Turbo Pascal, PascalABC.NET 0 05.06.2012 15:39
Построить матрицу С (6*6) соответствующего вида hartman Паскаль, Turbo Pascal, PascalABC.NET 1 06.11.2011 16:04
Вычислить площадь треугольника по трём точкам [Паскаль] Canavar Помощь студентам 8 08.12.2010 17:35
VBA построить квадратную матрицу Марат707 Microsoft Office Word 11 09.12.2008 07:31