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

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

Войти
Регистрация
Восстановить пароль
 
Fish24
0 / 0 / 0
Регистрация: 24.11.2013
Сообщений: 46
#1

Найти минимум среди сумм модулей элементов диагоналей, параллельных побочной диагонали матрицы. - C++

18.12.2013, 16:07. Просмотров 821. Ответов 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
int _tmain(int argc, _TCHAR* argv[])
 
{ int n,k;
int m[10][10],i,j, s= 0,a =0, y_otr;
cout <<"n=";
cin>>n;
cout <<"k=";
cin>>k;
for (i = 0; i < n; i++)
for (j = 0; j< n; j++)
cin>> m[i][j];
for (i = 0; i < k; i++)
for (j = 0; j< k; j++)
{y_otr=false;
for ( i = 0; i < k; i++)
if (m[i][j]<0)
y_otr=true; 
if (!y_otr)
for (i = 0; i < n; i++)
s+=m[i][j];
cout <<s;
s=0; 
}
 
system ("pause");
return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.12.2013, 16:07
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Найти минимум среди сумм модулей элементов диагоналей, параллельных побочной диагонали матрицы. (C++):

Найти минимум среди сумм модулей элементов диагоналей, параллельных побочной диагонали матрицы - C++
Код программы,который должен вычислять минимум среди сумм модулей элементов диагоналей, параллельных побочной диагонали матрицы, но в ней...

Найти минимум среди сумм модулей элементов диагоналей, параллельных побочной диагонали матрицы - C++
Дана целочисленная квадратная матрица. Определить: 1.) сумму элементов в тех столбцах, которые не содержат отрицательных элементов; ...

Найти минимум среди сумм модулей элементов диагоналей, параллельных побочной диагонали матрицы - C++
Дана целочисленная квадратная матрица. Определить: 2) минимум среди сумм модулей элементов диагоналей, параллельных побочной диагонали...

Найти минимум среди сумм модулей элементов диагоналей, параллельных побочной диагонали матрицы - C++
Доброго времени суток. Помогите создать процедуру, которая найдет минимум среди сумм модулей элементов диагоналей, параллельных побочной...

Найти минимум среди сумм модулей элементов диагоналей, параллельных побочной диагонали матрицы - C++
Помогите написать код! Задача: Дана целочисленная квадратная матрица. Определить минимум среди сумм модулей элементов диагоналей,...

Для заданной матрицы найти минимум среди сумм модулей элементов диагоналей, параллельных побочной диагонали. - C++
Помогите разобрать в С++ нешарю: Для заданной матрицы найти минимум среди сумм модулей элементов диагоналей, параллельных побочной...

4
Fish24
0 / 0 / 0
Регистрация: 24.11.2013
Сообщений: 46
22.12.2013, 14:32  [ТС] #2
Помогите, пожалуйста, сделать второе задание. Только нужно, чтобы 1 и 2 задание были выполнены одним кодом.

Дана целочисленная квадратная матрица.
Определить:
1)сумму элементов в тех столбцах, которые не содержат отрицательных элементов;
2)минимум среди сумм модулей элементов диагоналей, параллельных побочной диагонали матрицы.

1 задание:

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
int _tmain(int argc, _TCHAR* argv[])
 
{ int n,k;
int m[10][10],i,j, s= 0,a =0, y_otr;
cout <<"n=";
cin>>n;
cout <<"k=";
cin>>k;
for (i = 0; i < n; i++)
for (j = 0; j< n; j++)
cin>> m[i][j];
for (i = 0; i < k; i++)
for (j = 0; j< k; j++)
{y_otr=false;
for ( i = 0; i < k; i++)
if (m[i][j]<0)
y_otr=true; 
if (!y_otr)
for (i = 0; i < n; i++)
s+=m[i][j];
cout <<s;
s=0; 
}
 
system ("pause");
return 0;
}
0
Fish24
0 / 0 / 0
Регистрация: 24.11.2013
Сообщений: 46
23.12.2013, 20:50  [ТС] #3
Задание:
Дана целочисленная квадратная матрица.
Определить:
1)сумму элементов в тех столбцах, которые не содержат отрицательных элементов;
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
#include "stdafx.h"
#include <iostream>
using namespace std;
 
int _tmain(int argc, _TCHAR* argv[])
 
{ int n,k;
int m[10][10],i,j, s= 0,a =0, y_otr;
cout «"n="; //
cin»n; // вводим n
cout «"k="; //выводим к
cin»k; //вводим к
for (i = 0; i < n; i++)
for (j = 0; j< n; j++)
cin» m[i][j];
for (i = 0; i < k; i++)
for (j = 0; j< k; j++)
{y_otr=false;
for ( i = 0; i < k; i++)
if (m[i][j]<0)
y_otr=true; 
if (!y_otr)
for (i = 0; i < n; i++)
s+=m[i][j];
cout «s;
s=0; } //обнуление суммы.
{int minimum = m[0][0];
for (i = 0; i<n; i++)
{
int sum = 0;
for(j = i; j>=0; j--)
{
sum += abs(m[j][i-j]);
}
minimum = min(minimum, sum);
}
for (i = 1; i<n; i++)
{
int sum = 0;
for (j = k-1; j > i-1; j--)
{
sum += abs(m[i+n-1-j][j]);
}
minimum = min(minimum, sum);
}
}


Но программа должна выводить минимум среди модулей сумм и первое задание, а получается что-то непонятное. Что не так? Помогите, пожалуйста, разобраться(((
0
Fish24
0 / 0 / 0
Регистрация: 24.11.2013
Сообщений: 46
23.12.2013, 22:02  [ТС] #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
#include "stdafx.h"
#include <iostream>
 
const int k = 3;
void sum(int mas[k][k]);
void max(int matrix[k][k]);
 
 
int main(){
    int arr[k][k];
    int i, j;
 
    for (i = 0; i < k; i++){
        for (j = 0; j < k; j++){
            printf("arr[%d][%d] = ", i + 1, j + 1);
            scanf("%d", &arr[i][j]);
        }
    }
 
    printf("\n-----------------------\n");
    for (i = 0; i < k; i++)
    for (j = 0; j < k; j++)
        printf((j < (k - 1)) ? "%d\t" : "%d\n", arr[i][j]);
 
    printf("\n Summa elementov v teh strokah,kotorye ne soderjat otricatelnyh elementov:");
    sum(arr);
    printf("\n \n Minimum sredi summ elementov diagonalej,parallelnyh pobochnoy diagonali matricy: ");
    max(arr);
    fflush(stdin);
    char c = getchar();
    return 0;
}
 
void sum(int mas[k][k])
{
    int i, j, a, sum, n;
    for (i = 0; i<k; i++)
    {
        a = 0;
        for (j = 0; j<k; j++)
        if (mas[i][j]<0) a++;
        if (a == 0)
        {
            sum = 0;
            for (n = 0; n<k; n++)
                sum += mas[i][n];
            printf("\n stroka %d: %d", (i + 1), sum);
        }
    }
}
int sumDiagonal(int matrix[k][k], int currentDiagonal)
{
    int sum = 0;
    if (currentDiagonal < k)
    for (int i = -1; i != currentDiagonal; ++i)
        sum += matrix[currentDiagonal - i - 1][i + 1];
    else
    for (int i = currentDiagonal - k + 1, j = k; i < k; ++i)
        sum += matrix[--j][i];
    return sum;
}
void max(int matrix[k][k])
{
    int min = sumDiagonal(matrix, 0);
    for (int i = 1, cnt; i < k + k - 1; ++i)
    {
        cnt = sumDiagonal(matrix, i);
        if (cnt < min)
            min = cnt;
    }
    printf("%d\n", min);
}
Пытаюсь разобраться в этом коде. Что нужно вводить в консольном окне?
0
Fish24
0 / 0 / 0
Регистрация: 24.11.2013
Сообщений: 46
25.12.2013, 12:05  [ТС] #5
Задание: минимум среди сумм модулей элементов диагоналей, параллельных побочной диагонали матрицы.


Вот набросок алгоритма:

Пусть дана матрица размером n*n
A – матрица
k – смещение от побочной диагонали

1) Найдем минимум среди сумм модулей элементов диагоналей ниже побочной диагонали – min1.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
min1=0;
x = 2;
for (k=1; k<=n-2; k++) //пока k меньше или равно n-2
{
summa=0;
for (i=x; i<=n; i++)
{
summa=summa+модуль(A[i,(n+k)-i+1]);
}
if (min1=0)
{
min1=summa;
}
else //(иначе)
{
if (summa<min1)
{
min1=summa;
}
}
x=x+1;
}
2) Найдем минимум среди сумм модулей элементов диагоналей выше побочной диагонали – min2.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
min2=0;
x = n-1;
for (k=1; k<=n-2; k++)
{
summa=0;
for (i=1; i<=x; i++)
{
summa=summa+модуль(A[i,(n-k)-i+1]);
}
if (min2=0)
{
min2=summa;
}
else // (иначе)
{
if (summa<min2)
{
min2=summa;
}
}
x=x-1;
}
3) Находим наименьшее из min1 и min2.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.12.2013, 12:05
Привет! Вот еще темы с ответами:

Минимум среди сумм модулей элементов диагоналей, параллельных побочной диагонали матрицы - C++
Ребят, программа работает, проверьте только на чистоту кода, пожалуйста Дана целочисленная квадратная матрица. Определить: 1) сумму...

Определить минимум среди сумм модулей элементов диагоналей, параллельных побочной диагонали матрицы - C++
дана целочисленная квалратная матрица:задается с экрана либо генерируется в пределах от -20 до 20. определить минимум среди сумм модулей...

Опеределить минимум среди сумм модулей элементов диагоналей, параллельных побочной диагонали матрицы - C++
Дана целочисленная квадратная матрица. Определить: Минимум среди сумм модулей элементов диагоналей параллельных побочной диагонали...

Определить минимум среди сумм модулей элементов диагоналей параллельных побочной диагонали - C++
Дана целочисленная квадратная матрица. Определить: минимум среди сумм модулей элементов диагоналей параллельных побочной диагонали матрицы....


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

Или воспользуйтесь поиском по форуму:
5
Yandex
Объявления
25.12.2013, 12:05
Ответ Создать тему
Опции темы

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