Форум программистов, компьютерный форум CyberForum.ru

Построить матрицу - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.75
craftsman
 Аватар для craftsman
0 / 0 / 0
Регистрация: 25.11.2010
Сообщений: 16
26.11.2010, 16:31     Построить матрицу #1
Здравствуйте. Помогите пожалуйста с программой. Задание: "Пусть задана матрица A, размерностью
n x n. Необходимо построить матрицу B, причём элементы матрицы являются средним значением всех элементов матрицы A в заштрихованной области, где область указана на рисунке."
Миниатюры
Построить матрицу  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.11.2010, 16:31     Построить матрицу
Посмотрите здесь:

Построить матрицу заданного вида C++
Построить матрицу вида порядка n C++
C++ Построить квадратную матрицу по образцу
C++ Построить матрицу по образцу
C++ Ввести с клавиатуры, построить матрицу
Построить вещественную матрицу по образцу C++
Построить квадратную матрицу порядка n C++
Построить квадратную матрицу порядка n C++
Как построить матрицу инцидентности? C++
Построить матрицу по заданному алгоритму C++
C++ Построить матрицу по заданной формуле
построить матрицу C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
craftsman
 Аватар для craftsman
0 / 0 / 0
Регистрация: 25.11.2010
Сообщений: 16
07.12.2010, 18:26  [ТС]     Построить матрицу #2
Эта программа делает половину. Кто-нибудь подправьте пожалуйста, чтобы нормально считала сумму и счётчик элементов!!!
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
#include "stdafx.h"
#include "iostream"
using namespace std;
 
#define m 7
 
void main()
{
    {void rus();{setlocale(0,"");}
    int i,j,k,l,n,s,p,d,x;
    float a[m][m],b[m][m];
    char c;
    do{
        s=0;
        p=0;
        d=0;
        x=0;
        do{
            cout<<"Введите размерность матрицы m"<<endl;
            scanf("%d",&n);
        }while(!(n>0 && n<=m));
        for(i=1;i<=n;i++)
            for(j=1;j<=n;j++)
            {printf("Введите a(%d,%d)=",i,j);
             cout<<"a["<<i<<"]["<<j<<"]=";scanf("%f",&a[i-1][j-1]);}
        cout<<"Исходная матрица:"<<endl;
        for(i=1;i<=n;i++)
        {for(j=1;j<=n;j++)
        printf("%5.1f",a[i-1][j-1]);
        printf("\n");}//Конец печати исходной матрицы
        for(i=1;i<=n;i++)
        {for(j=1;j<=n;j++)
               for(k=1;k<=n;k++)
               for(l=j-i+k;l<=j+i-k;l++)
               if(l>=1 && l<=n)
        s=s+a[i-1][j-1];
               p++;}p=p+2;
            cout<<"Сумма верхнего:"<<s<<endl;
            cout<<"Число:"<<p<<endl;
        for(i=1;i<=n;i++)
        {for(j=1;j<=n;j++)
               for(k=1;k<=n;k++)
               for(l=j+i-k;l<=j-i+k;l++)
               if(l>=1 && l<=n)
        d=d+a[i-1][j-1];
               x++;}x=x+2;
            cout<<"Сумма нижнего:"<<d<<endl;
            cout<<"Число:"<<x<<endl;
           if(n%2==0)//вычисление другой матрицы
           {for(i=1;i<=n;i++)
            for(j=1;j<=n;j++)
            {b[i-1][j-1]=(s+d)/(p+x);}}
           else
           {for(i=1;i<=n;i++)
            for(j=1;j<=n;j++)
            {b[i-1][j-1]=(s+d)/(p+x+1);}}
        printf("Полученная матрица\n");
        for(i=1;i<=n;i++)
        {for(j=1;j<=n;j++)
        printf("%5.1f",b[i-1][j-1]);
        printf("\n");}
        cout<<"Перезапустить программу? Y/N"<<endl;
        cin>>c;}
    while(c=='y' || c=='Y');
}}
alex256
Сообщений: n/a
10.12.2010, 15:51     Построить матрицу #3
Да жестокие задачки а мне надо из той же книжки только 6 рисунок, но тоже 2 задание)))
craftsman
 Аватар для craftsman
0 / 0 / 0
Регистрация: 25.11.2010
Сообщений: 16
16.12.2010, 17:12  [ТС]     Построить матрицу #4
Вот, сам додумал! Правильное, стопроцентное решение:
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
#include "stdafx.h"
#include "iostream"
using namespace std;
 
#define m 7
 
int main()
{
    {void rus();{setlocale(0,"");}
    int i,j,k,l,n,s,p;
    float a[m][m],b[m][m];
    char c;
    do{
        do{
            cout<<"Введите размерность матрицы m"<<endl;
            scanf("%d",&n);
        }while(!(n>0 && n<=m));
        for(i=1;i<=n;i++)
            for(j=1;j<=n;j++)
            {printf("Введите a(%d,%d)=",i,j);
             cout<<"a["<<i<<"]["<<j<<"]=";
             cin>>a[i-1][j-1];}
        cout<<"Исходная матрица:"<<endl;
        for(i=1;i<=n;i++)
        {for(j=1;j<=n;j++)
        printf("%7.1f",a[i-1][j-1]);
        printf("\n");}//Конец печати исходной матрицы
        printf("Полученная матрица\n");
        for(i=1;i<=n;i++)
        {for(j=1;j<=n;j++)
        {s=0;
         p=0;
        for(k=1;k<=n;k++)
           for(l=j-i+k;l<=j+i-k;l++)
               {if(l>=1 && l<=n)
           {s=s+a[k-1][l-1];
        p++;}}
           s=s-a[i-1][j-1];
           p--;
        for(k=1;k<=n;k++)
           for(l=j+i-k;l<=j-i+k;l++)
               {if(l>=1 && l<=n)
           {s=s+a[k-1][l-1];
        p++;}}
           b[i-1][j-1]=s/p;}}
        for(i=1;i<=n;i++)
        {for(j=1;j<=n;j++)
        printf("%7.1f",b[i-1][j-1]);
        printf("\n");}
        cout<<"Перезапустить программу? Y/N"<<endl;
        cin>>c;}
    while(c=='y' || c=='Y');
    return 0;}}
Yandex
Объявления
16.12.2010, 17:12     Построить матрицу
Ответ Создать тему
Опции темы

Текущее время: 07:11. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru