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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Татьяна0205
0 / 0 / 0
Регистрация: 26.12.2012
Сообщений: 18
#1

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

06.01.2013, 22:44. Просмотров 394. Ответов 3
Метки нет (Все метки)

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++
Седловой точкой матрицы назовём такой элемент, который является одновременно максимальным в столбце и минимальным в строке. Найти одну,...

прога которая содержащий не более 10 строк, в каждой строке не более 80 символов и эти символы вводятся с клавиатуры - C++
здравструйте, помогите написать прогу которая содержащий не более 10 строк, в каждой строке не более 80 символов и эти символы вводятся с...

Найти слова, которые состоят из 3х и более букв и имеют более 2х гласных - C++
Написать функцию, которая выводит слова, которые состоят из 3 х и более букв и имеющих более 2х гласных. Результат сохранить в файл...

По некоторому количеству строк (не более N) найти пары строк с общим словом - C++
По некоторому количеству строк (не более N) найти пары строк с общим словом. помогите, пожалуйста. слишком быстро перескочили и со...

Определить разность между наибольшим числом и наименьшим числом последовательности - C++
вот задание и сама программа,в ней ошибка ,но незнаю какая. Помогите пожалуйста! Даны вещественные числа A1, A2, A3, ... . Признак...

Проверка является ли строка числом полностью числом или нет? - C++
как проверить является ли строка типа &quot;23уар&quot; полностью числом или нет?

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
yoghurt92
374 / 345 / 22
Регистрация: 17.05.2012
Сообщений: 1,049
07.01.2013, 00:00     Найти седловую точку целочисленной матрицы с числом строк не более 12, числом столбцов не более 20 (ООП) #2
Татьяна0205, и?
David Sylva
1285 / 947 / 51
Регистрация: 17.05.2012
Сообщений: 2,687
07.01.2013, 00:08     Найти седловую точку целочисленной матрицы с числом строк не более 12, числом столбцов не более 20 (ООП) #3
Татьяна0205, Я думаю в данном случае под объектным-программированием подразумевается реализация данной задачи с помощью классов.Воспользуйтесь поиском найдите реализацию класса матрица и допилите под своё условие. Кстати ваш код это код на СИ.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.01.2013, 03:36     Найти седловую точку целочисленной матрицы с числом строк не более 12, числом столбцов не более 20 (ООП)
Еще ссылки по теме:

Найти седловую точку в матрице. Использование функций - C++
Элемент матрицы является седловой точкой, если он является наименьшим в своей строке и наибольшим в своем столбце (или наоборот: наибольшим...

Среди столбцов заданной целочисленной матрицы, заполненной случайными числами, порядка n* n, найти столбец с элементами - C++
что не так? Среди столбцов заданной целочисленной матрицы, заполненной случайными числами, порядка n* n, найти столбец с элементами...

Классы. База данных с динамическим числом столбцов - C++
Добрый день, вопрос такой: У меня база данных, построенная на двусвязном списке. Там в классе я закладывал 5 полей. Следовательно, моя...

Найти строку, содержащую наибольший элемент матрицы и заменить все отрицательные элементы этой строки числом 0 - C++
Здравтсвуйте! помогите пжл решить задачу. Найти строку, содержащую наибольший элемент матрицы и заменить все отрицательные элементы...

Найти количество строк массива, не содержащих нулей и максимальное число, встречающееся более одного раза - C++
Написать программу как можно проще 1. Консольный ввод/вывод целочисленного массива размером 5*5. 2. Определение количества строк, не...

Найти среди строк заданной целочисленной матрицы D строку с максимальным произведением элементов - C++
Составьте программу на языке С++, позволяющую находить среди строк заданной целочисленной матрицы D размера 4*4, компоненты которой не...


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

Или воспользуйтесь поиском по форуму:
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 (ООП)
Ответ Создать тему
Опции темы

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