1 / 1 / 1
Регистрация: 04.12.2012
Сообщений: 27
1

Программирование с использованием подпрограмм общего вида

10.12.2012, 22:02. Показов 828. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Вот эта задача:
Заданы матрицы A=[ai,j] (i=1, 2, 3; j=1, 2, 3), B=[bi,j] (i=1, 2, 3; j=1, 2, 3), то есть матрицы А и В - 3x3.
Расставить в порядке возрастания элементы в главных диагоналях каждой матрицы. Затем A и B сложить. Расстановку в порядке возрастания элементов оформить в виде подпрограммы.
Вот, что у меня вышло:
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
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
#include <iostream.h>
#include <math.h>
#include <iomanip.h>
#include <cstdlib>
#include <ctime>
float sum(float**x,const int n,const int m);
int n,m,n1,m1;
int main();
 
 
{
    int i,j,k,l;
    float**a,**b;
    double x1,x2,x;
    void swap(float &x, float &y)
{
      float temp=x;
      x=y;
      y=temp;
} 
    void diagonal(float**a, float**b,int n, int m, int n1, int m1){
    //RUCHNOY VVOD I VIVOD MATRICI A
    cout<<"Kol-vo strok matrici A n=";
    cin>>n;
    cout<<"Kol-vo stolbcov matrici A m=";
    cin>>m;
    a=new float*[n];
    for(i=0;i<n;i++)
        a[i]=new float[m];
    cout<<"\nVvedi elementi matrici A\n";
    for(i=0;i<n;i++)
        for(j=0;j<m;j++)
            cin>>a[i][j];
    cout<<"\nSformirovannaya Matrica A\n";
    for(i=0; i<n; i++)
    {
        for(j=0; j<m; j++)
            cout<<setw(5)<<a[i][j]<<"  ";
            cout<<"\n";
    }
    
    
    //RUCHNOY VVOD I VIVOD MATRICI B
    cout<<"\nKol-vo strok matrici B n1=";
    cin>>n1;
    cout<<"Kol-vo stolbcov matrici B m1=";
    cin>>m1;
    b=new float*[n1];
    for(i=0;i<n1;i++)
        b[i]=new float[m1];
    cout<<"\nVvedi elementi matrici B\n";
    for(i=0;i<n1;i++)
        for(j=0;j<m1;j++)
            cin>>b[i][j];
    cout<<"\nSformirovannaya Matrica B\n";
    for(i=0; i<n1; i++)
    {
        for(j=0; j<m1; j++)
            cout<<setw(5)<<b[i][j]<<"  ";
            cout<<"\n";
    }
 
 
    //SORTIROVKA GLAVNIH DIAGONALEY MASSIVOV PO VOZRASTANIYU
    cout<<"Otsortirovanniy massiv\n";
     for (i=0; i<n; i++) 
           for (j=0; j<m; j++)
             if (i==j)
              for (k=0; k<n; k++) 
                 for (l=0; l<m; l++)
                if (k==l)
                          if (a[i][j]<a[k][l])
                             swap(a[i][j],a[k][l]);
     for (i=0; i<n1; i++) 
           for (j=0; j<m1; j++)
             if (i==j)
              for (k=0; k<n1; k++) 
                 for (l=0; l<m1; l++)
                if (k==l)
                         if (b[i][j]<b[k][l])
                             swap(b[i][j],b[k][l]);
 
    
    //VIVOD OTSORTIROVANNIH MASSIVOV A B
    for(i=0; i<n; i++)
    {
        for(j=0; j<m; j++)
            cout<<setw(5)<<a[i][j]<<"  ";
            cout<<"\n";
    }
    cout<<"\n";
    for(i=0; i<n1; i++)
    {
        for(j=0; j<m1; j++)
            cout<<setw(5)<<b[i][j]<<"  ";
            cout<<"\n";
    }
    }
 
    diagonal(a,b,n,m,n1,m1);
 
    //SUMMA ELEMENTOV OTSORTIROVANNOGO MASSIVA A
    x1=sum(a,n,m);
    cout<<"\nSumma elementov matrici A ravna "<<x1; 
    
    //SUMMA ELEMENTOV OTSORTIROVANNOGO MASSIVA B
    x2=sum(b,n1,m1);
    cout<<"\nSumma elementov matrici B ravna "<<x2;
  
    //SUMMA OTSORTIROVANNIH MASSIVOV A B
    cout<<"\n";
    x=x1+x2;
    cout<<"\nSumma matric A B ravna "<<x;
    cout<<"\n";
return 0;
}
float sum(float**x,const int n,const int m)
{
    int i,j;
    float s;
    s=0;
    for(i=0;i<n;i++)
        for(j=0;j<m;j++)
            s=s+x[i][j];
return s;
}
Выходит ошибка (работаю на MS Visual C++):
--------------------Configuration: 12 - Win32 Debug--------------------
Compiling...
12.cpp
E:\progr\12.cpp(11) : error C2447: missing function header (old-style formal list?)
Error executing cl.exe.

12.obj - 1 error(s), 0 warning(s)

Исправьте, где не так, пож-таа.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.12.2012, 22:02
Ответы с готовыми решениями:

Программирование с использованием подпрограмм общего вида типа PROCEDURE
Помогите с задачей, слаб в подпрограммах, относительно недавно начали изучать. Вот задача: Заданы...

Программирование с использованием подпрограмм.
Ноль в delphi! ПОМОГИТЕ составить программу. Вот задание: Из TStringGrid ввести 2 квадратные...

Программирование с использованием массивов и подпрограмм
Дана целая прямоугольная матрица размерности NxM. Найти наименьший элемент в каждой строке и...

Программирование с использованием подпрограмм и модулей
Создать программу для расчета суммы из х первых натуральных чисел . Результат имеет исчисляться в...

2
433 / 368 / 149
Регистрация: 06.08.2012
Сообщений: 961
10.12.2012, 23:15 2
C++
1
2
#include <iostream>
#include <iomanip>

Не по теме:

C++
1
#include <time>

0
1 / 1 / 1
Регистрация: 04.12.2012
Сообщений: 27
11.12.2012, 00:22  [ТС] 3
Вот мой код, всё пашет, делаю на MS Visual 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
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
#include <iostream>
#include <math.h>
#include <iomanip>
#include <cstdlib>//???????????????????????????????????????????????
#include <ctime>//???????????????????????????????????????????????
using namespace std;//???????????????????????????????????????????????
float sum(float**x,const int n,const int m);//???????????????????????????????????????????????
void swap(float &x, float &y)
{
float temp=x;
x=y;
y=temp;
} 
 
 
///////////////////////////
void diagonal(float**a, float**b,int n, int m, int n1, int m1)//???????????????????????????????????????????????
{}                             //Почему здесь надо только эти скобки оставить??? Если я их убираю, то ничего не работает. Грамотно ли я поставил? Хотя если их оставить как есть, то программа отлично работает. Объясните, пож-та.
///////////////////////////
 
 
int main()
{
int i,j,k,l,n,m,n1,m1;
float**a,**b;//???????????????????????????????????????????????
float x1,x2,x; //???????????????????????????????????????????????
 
/////////////////////////////////////////////////////////Ручной ввод элементов и вывод матрицы А
cout<<"Kol-vo strok matrici A n=";
cin>>n;
cout<<"Kol-vo stolbcov matrici A m=";
cin>>m;
a=new float*[n];//???????????????????????????????????????????????
for(i=0;i<n;i++)
a[i]=new float[m];//???????????????????????????????????????????????
cout<<"\nVvedi elementi matrici A\n";
for(i=0;i<n;i++)
for(j=0;j<m;j++)
cin>>a[i][j];
cout<<"\nSformirovannaya matrica A\n";
for(i=0; i<n; i++)
{
for(j=0; j<m; j++)
cout<<setw(5)<<a[i][j]<<" ";
cout<<"\n";
}
 
/////////////////////////////////////////////////////////Сортировка по главной диагонали матрицы А
for (i=0; i<n; i++) 
for (j=0; j<m; j++)
if (i==j)
for (k=0; k<n; k++) 
for (l=0; l<m; l++)
if (k==l)
if (a[i][j]<a[k][l])
swap(a[i][j],a[k][l]);
 
/////////////////////////////////////////////////////////Вывод матрицы А после сортировки
cout<<"Otsortirovannaya matrica А\n";
for(i=0; i<n; i++)
{
for(j=0; j<m; j++)
cout<<setw(5)<<a[i][j]<<" ";
cout<<"\n";
}
cout<<"\n";
 
////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////
 
/////////////////////////////////////////////////////////Ручной ввод элементов и вывод матрицы В
cout<<"\nKol-vo strok matrici B n1=";
cin>>n1;
cout<<"Kol-vo stolbcov matrici B m1=";
cin>>m1;
b=new float*[n1];
for(i=0;i<n1;i++)
b[i]=new float[m1];
cout<<"\nVvedi elementi matrici B\n";
for(i=0;i<n1;i++)
for(j=0;j<m1;j++)
cin>>b[i][j];
cout<<"\nSformirovannaya Matrica B\n";
for(i=0; i<n1; i++)
{
for(j=0; j<m1; j++)
cout<<setw(5)<<b[i][j]<<" ";
cout<<"\n";
}
 
/////////////////////////////////////////////////////////Сортировка по главной диагонали матрицы В
for (i=0; i<n1; i++) 
for (j=0; j<m1; j++)
if (i==j)
for (k=0; k<n1; k++) 
for (l=0; l<m1; l++)
if (k==l)
if (b[i][j]<b[k][l])
swap(b[i][j],b[k][l]);
 
/////////////////////////////////////////////////////////Вывод матрицы В после сортировки
cout<<"Otsortirovannaya matrica B\n";
for(i=0; i<n1; i++)
{
for(j=0; j<m1; j++)
cout<<setw(5)<<b[i][j]<<" ";
cout<<"\n";
}
 
diagonal(a,b,n,m,n1,m1);//???????????????????????????????????????????????
 
 
/////////////////////////////////////////////////////////Сумма элементов отсортированной матрицы А
x1=sum(a,n,m);
cout<<"\nSumma elementov matrici A ravna "<<x1; 
 
/////////////////////////////////////////////////////////Сумма элементов отсортированной матрицы В
x2=sum(b,n1,m1);
cout<<"\nSumma elementov matrici B ravna "<<x2;
 
/////////////////////////////////////////////////////////Сумма матриц А и В
cout<<"\n";
x=x1+x2;
cout<<"\nSumma matric A B ravna "<<x;
cout<<"\n";
return 0;
}
 
 
 
//ВСЁ, ЧТО НИЖЕ, ОБЪЯСНИТЕ, ЗАЧЕМ ОНО НУЖНО?
float sum(float**x,const int n,const int m)
{
int i,j;
float s;
s=0;
for(i=0;i<n;i++)
for(j=0;j<m;j++)
s=s+x[i][j];
return s;
}
0
11.12.2012, 00:22
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.12.2012, 00:22
Помогаю со студенческими работами здесь

Программирование с использованием подпрограмм - функций,ошибку не найду
24. Заданы три массива: W={w1, w2, w3}, Y={y1, y2, y3,y4}, Z={z1, z2, z3, z4, z5}. Решить...

Программирование арифметических выражений с использованием подпрограмм, размещаемых в модуле без формы
Добрый вечер всем,нужна помощь в написании программы с подпрограммой в делфи.Не понимаю как создать...

Подпрограммы общего вида
Совставить подпрограмму сортировки элементов по убыванию одномерного вещественного массива. С...

Дерево общего вида
Задание: Динамическое дерево произвольной размерности(ссылочная часть узла-список) знаю как...

Деревья общего вида
Доброго времени суток! Долгое время пытаюсь найти информацию о том, как построить дерево общего...

Деревья общего вида
Дан указатель P1 на корень непустого дерева общего вида. Вывести значения всех вершин дерева в...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru