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

Найти седловую точку целочисленной матрицы с числом строк не более 12, числом столбцов не более 20 (ООП) - C++

Восстановить пароль Регистрация
 
Татьяна0205
0 / 0 / 0
Регистрация: 26.12.2012
Сообщений: 18
06.01.2013, 22:44     Найти седловую точку целочисленной матрицы с числом строк не более 12, числом столбцов не более 20 (ООП) #1
1. Найти седловую точку целочисленной матрицы с числом строк не более 12, числом столбцов не более 20. Найти произведение ненулевых элементов столбца, в котором окажется седловая точка. Формат числа ц.
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
# include <stdio.h>
# include <conio.h>
# include <stdlib.h>
int input(int (*B)[20], int xi, int xj);
void print(int (*C)[20], int yi, int yj);
void sedl(int (*D)[20], int zi, int zj);
void main ()
{
int M,N;
int A[12][20];
printf("Vvedite kol-vo strok(m<=12)\n");
scanf("%d",&M);
printf("Vvedite kol-vo stolbcov (n<=20)\n");
scanf("%d",&N);
clrscr();
randomize();
input(A,N,M);
clrscr();
printf("Massiv A:\n");
print(A,N,M);
sedl(A,N,M);
 
}
 
void print(int (*C)[20], int yi, int yj)
{int i,j;
for (i=1;i<=yi;i++)
{
for (j=1;j<=yj;j++)
{
printf("%2d  ",C[i][j]);
}
printf("\n");
}
}
 
int input(int (*B)[20], int xi, int xj)
{int i,j;
for (i=1;i<=xi;i++)
{
for (j=1;j<=xj;j++)
{
B[i][j]=random(9)+1;
}
printf("\n");
}
}
 
void sedl(int (*D)[20], int zi, int zj)
{
int i,j,mij,maj,Pa,Pi;
int maxi[12],mini[12],maxj[20],minj[20];
for (i=1;i<=zi;i++)
{
maxi[i]=0;
mini[i]=101;
for (j=1;j<=zj;j++)
{
if (D[i][j]>maxi[i])
{maxi[i]=D[i][j];}
if (D[i][j]<mini[i])
{mini[i]=D[i][j];
}
}
}
 
for (j=1;j<=zj;j++)
{
maxj[j]=0;
minj[j]=101;
for (i=1;i<=zi;i++)
{
if (D[i][j]>maxj[j])
{maxj[j]=D[i][j];
}
if (D[i][j]<minj[j])
{minj[j]=D[i][j];}
}
}
printf("\n");
 
for (i=1;i<=zi;i++)
{
for (j=1;j<=zj;j++)
{
if (D[i][j]==mini[i] & D[i][j]==maxj[j])
{printf("Sedlovaia tochka = %d\n",D[i][j]);
maj=0;
maj=j;
}
else if (D[i][j]==minj[j] & D[i][j]==maxi[i])
{printf("Sedlovaia tochka = %d\n",D[i][j]);
mij=0;
mij=j;}
}
}
Pi=1;
Pa=1;
for (i=1;i<=zi;i++)
{
if (D[i][maj]!=0)
{Pa*=D[i][maj];
}
if (D[i][mij]!=0)
{Pi*=D[i][mij];
}
}
if (Pa!=1)
printf("Proizvedenie[%d] = %d\n",maj,Pa);
if (Pi!=1)
printf("Proizvedenie[%d] = %d\n",mij,Pi);
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.01.2013, 22:44     Найти седловую точку целочисленной матрицы с числом строк не более 12, числом столбцов не более 20 (ООП)
Посмотрите здесь:

C++ По некоторому количеству строк (не более N) найти пары строк с общим словом
C++ Найти седловую точку матрицы!
C++ прога которая содержащий не более 10 строк, в каждой строке не более 80 символов и эти символы вводятся с клавиатуры
Среди столбцов заданной целочисленной матрицы, заполненной случайными числами, порядка n* n, найти столбец с элементами C++
C++ Найти седловую точку в матрице. Использование функций
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
yoghurt92
373 / 344 / 22
Регистрация: 17.05.2012
Сообщений: 1,049
07.01.2013, 00:00     Найти седловую точку целочисленной матрицы с числом строк не более 12, числом столбцов не более 20 (ООП) #2
Татьяна0205, и?
David Sylva
 Аватар для David Sylva
1280 / 942 / 51
Регистрация: 17.05.2012
Сообщений: 2,686
07.01.2013, 00:08     Найти седловую точку целочисленной матрицы с числом строк не более 12, числом столбцов не более 20 (ООП) #3
Татьяна0205, Я думаю в данном случае под объектным-программированием подразумевается реализация данной задачи с помощью классов.Воспользуйтесь поиском найдите реализацию класса матрица и допилите под своё условие. Кстати ваш код это код на СИ.
asidorchenko
379 / 205 / 25
Регистрация: 09.04.2012
Сообщений: 635
07.01.2013, 03:36     Найти седловую точку целочисленной матрицы с числом строк не более 12, числом столбцов не более 20 (ООП) #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
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
# include <stdio.h>
# include <conio.h>
# include <stdlib.h>
# include <time.h>
 
class matrix
{
 private:
 int M,N;
 int A[12][20];
 
 void print(int (*C)[20], int yi, int yj)
 {
  int i,j;
  for (i=1;i<=yi;i++)
  {
   for (j=1;j<=yj;j++)
   {
    printf("%2d  ",C[i][j]);
   }
   printf("\n");
  }
 };
 
 void input(int (*B)[20], int xi, int xj)
 {
  srand(time(NULL));
  int i,j;
  for (i=1;i<=xi;i++)
  {
   for (j=1;j<=xj;j++)
   {
    B[i][j]=(rand()%9)+1;
   }
   printf("\n");
  }
 };
 
 void sedl(int (*D)[20], int zi, int zj)
 {
  int i,j,mij,maj,Pa,Pi;
  int maxi[12],mini[12],maxj[20],minj[20];
  for (i=1;i<=zi;i++)
  {
   maxi[i]=D[i][1];
   mini[i]=D[i][1];
   for (j=1;j<=zj;j++)
   {
    if (D[i][j]>maxi[i])
     {maxi[i]=D[i][j];}
    if (D[i][j]<mini[i])
     {mini[i]=D[i][j];}
   }
  }
 
  for (i=1;i<=zi;i++)
   printf("%d ", maxi[i]);
  printf("\n");
 
  for (i=1;i<=zi;i++)
   printf("%d ", mini[i]);
  printf("\n");
 
  for (j=1;j<=zj;j++)
  {
   maxj[j]=D[1][j];
   minj[j]=D[1][j];
   for (i=1;i<=zi;i++)
   {
    if (D[i][j]>maxj[j])
     {maxj[j]=D[i][j];}
    if (D[i][j]<minj[j])
     {minj[j]=D[i][j];}}
   }
   printf("\n");
 
  for (j=1;j<=zj;j++)
   printf("%d ", maxj[j]);
  printf("\n");
 
  for (j=1;j<=zj;j++)
   printf("%d ", minj[j]);
  printf("\n");
 
 
   for (i=1;i<=zi;i++)
   {
    for (j=1;j<=zj;j++)
    {
     if (D[i][j]==mini[i] & D[i][j]==maxj[j])
      {
       printf("Sedlovaia tochka = %d\n",D[i][j]);
       maj=0;
       maj=j;
      }
     else if (D[i][j]==minj[j] & D[i][j]==maxi[i])
      {
       printf("Sedlovaia tochka = %d\n",D[i][j]);
       mij=0;
       mij=j;
      }
    }
   }
 };
 
public:
 void main()
 {
  printf("Vvedite kol-vo strok(m<=12)\n");
  scanf("%d",&M);
  printf("Vvedite kol-vo stolbcov (n<=20)\n");
  scanf("%d",&N);
  input();
  printf("Massiv A:\n");
  print();
  sedl();
 };
 void print(){ print(A,N,M);};
 void input(){ input(A,N,M);};
 void sedl(){ sedl(A,N,M);};
};
 
 
 
 
int main ()
{
 matrix t;
 t.main();
 return 0;
}
Yandex
Объявления
07.01.2013, 03:36     Найти седловую точку целочисленной матрицы с числом строк не более 12, числом столбцов не более 20 (ООП)
Ответ Создать тему
Опции темы

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