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

Задачи на матрицы - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 5.00
Maks86
0 / 0 / 0
Регистрация: 03.01.2009
Сообщений: 10
03.01.2009, 15:45     Задачи на матрицы #1
Дана целочисленная квадратная матрица. Определить:1)сумму элементов в тех столбцах, которые не содержат отрицательных элементов
2)минимум среди сумм модулей элементов диагоналей, паралельных побочной диагонали матрицы

Заранее спасибо
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.01.2009, 15:45     Задачи на матрицы
Посмотрите здесь:

с++ задачи на массивы и матрицы C++
Задачи на матрицы и структуры C++
Две задачи про матрицы. C++
C++ Три задачи на матрицы
C++ Задачи на матрицы
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ISergey
Maniac
Эксперт С++
 Аватар для ISergey
1331 / 864 / 50
Регистрация: 02.01.2009
Сообщений: 2,622
Записей в блоге: 1
03.01.2009, 16:00     Задачи на матрицы #2
Maks86, Ну ты хоть что-то сделай, остальные помогут.
Maks86
0 / 0 / 0
Регистрация: 03.01.2009
Сообщений: 10
03.01.2009, 16:03  [ТС]     Задачи на матрицы #3
я даже не знаю с чего начать
ISergey
Maniac
Эксперт С++
 Аватар для ISergey
1331 / 864 / 50
Регистрация: 02.01.2009
Сообщений: 2,622
Записей в блоге: 1
03.01.2009, 16:33     Задачи на матрицы #4
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
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
#include <iostream>
using namespace std;
const int n = 5;
 
void outArr(const int arr[n][n]);
int  sumEll(const int arr[n][n]);
 
int main()
{
    int arr[n][n] = { { 3,1,1,1},
                      { 1,1,1,1},
                      { 0,-2,0,0},
                      { 0,0,0,0},
                      { 0,0,0,0}};
    int sum;
    outArr(arr);
    sum = sumEll(arr);
    cout<<sum<<endl;
    return 0;
}
 
void outArr(const int arr[n][n])
{
    for(int i = 0 ; i<n; i++)
    {
        if(i>0) cout<<"]"<<endl;
        cout<<"[ ";
        for(int j = 0; j<n; j++)
        {
            cout<<arr[i][j]<<" ";
        }
    }
    cout<<"]"<<endl;
}
 
int  sumEll(const int arr[n][n])
{
    int  sum = 0;
    int  s   = 0;
    bool badEll = false;
    for(int i = 0; i<n; i++)
    {
        for(int j = 0; j<n; j++)
        {
            if(arr[j][i]>=0) s += arr[j][i]; else badEll = true;
        }
 
        if(badEll == false) sum += s;
        badEll = false;
        s = 0;
    }
 
    return sum;
}
jns_sveta
Сообщений: n/a
16.02.2010, 21:14     Задачи на матрицы #5
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
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
 
int main() {
    printf("введи n <- ");
    int n;
    scanf("%d", &n);
    //выделение памяти под массив и его ввод
    float **array = (float **)malloc(n * sizeof(float*)); //создаем масссив указателей на строки
    for(int i = 0; i < n; i++) {
        array[i] = (float *)malloc(n * sizeof(float)); //создаем массив под строку
        for(int j = 0; j < n; j++) {
            array[i][j] = rand()*200.0/RAND_MAX;
            printf("%3.2f\t", array[i][j]);
        }
        printf("\n");
    }
    for (int k = 0; k < n; k++) {
        int iMax = 1, jMax = 0;
        for (int i = 0; i < n; i++)
            for (int j = 0; j < n; j++)
                if(!((i == j) && (i < k)) && (array[iMax][jMax] < array[i][j])) {
                    iMax = i;
                    jMax = j;
                }
        float tmp = array[k][k];
        array[k][k] = array[iMax][jMax];
        array[iMax][jMax] = tmp;
    }
    printf("____________________\n");
    for(int i = 0; i < n; i++) {
        for(int j = 0; j < n; j++) {
            printf("%3.2f\t", array[i][j]);
        }
        printf("\n");
    }
    float minSum = array[0][0];
    for (int l = 0; l < n - 2; l++){
        float sum1 = 0, sum2 = 0;
        for (int j = 0; j <= l; j++){
            sum1 += fabs(array[l - j][j]);
            sum2 += fabs(array[n - l + j - 1][n - j - 1]);
        }
        if ( minSum > sum1)
            minSum = sum1;
        if (sum2 < minSum)
            minSum = sum2;
    }
    printf("%f", minSum);
        //освобождаем память
    for (int i = 0; i < n; i++)
        free(array[i]);
    free(array);
    return 0;
}
Yandex
Объявления
16.02.2010, 21:14     Задачи на матрицы
Ответ Создать тему
Опции темы

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