1 / 1 / 0
Регистрация: 19.06.2018
Сообщений: 79
1

На побочной диагонали разместить суммы элементов, лежащих на той же строке и столбце

24.06.2018, 16:04. Показов 2184. Ответов 18
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Создать квадратную матрицу целых чисел размером 9х9. В индивидуальных заданиях указано, какую обработку матрицы нужно выполнить.
Если по условию задачи матрицу следует заполнить случайными числами, рекомендуем выбирать эти числа из диапазона 0 - 99. Если по условию задачи в матрицу следует записать ЛП - линейную последовательность чисел, имеется в виду последовательность: 1, 2, 3. Заполнить матрицу случайными числами. На побочной диагонали разместить суммы элементов, лежащих на той же строке и столбце: Название: с.png
Просмотров: 80

Размер: 47.5 Кб
Помогите пожалуйста нужно сделать на завтра то задача!
visual studio c++
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.06.2018, 16:04
Ответы с готовыми решениями:

На побочной диагонали матрицы разместить суммы элементов, которые лежат той же строке и столбце
Нужно написать код на чистом С. 1. Дана прямоугольная матрица . Заполнить матрицу случайными...

На побочной диагонали матрицы разместить суммы элементов, которые лежат той же строке и столбце
Заполнить матрицу случайными числами. На побочной диагонали разместить суммы элементов, которые...

На побочной диагонали разместить суммы элементов, которые лежат на той же строке и столбце.
Помогите пожалуйста решить!СПАСИБО! На побочной диагонали разместить суммы элементов, которые...

На побочной диагонали матрицы разместить суммы элементов, которые лежат на той же строке и столбце
2)Заполнить матрицу случайными числами. На побочной диагонали разместить суммы элементов, которые...

18
629 / 41 / 25
Регистрация: 25.04.2017
Сообщений: 510
24.06.2018, 16:58 2
Тарасо, что именно у вас не получается? Что конкретно нужно сделать?
0
1 / 1 / 0
Регистрация: 19.06.2018
Сообщений: 79
24.06.2018, 17:21  [ТС] 3
Нужно Заполнить матрицу случайными числами. На побочной диагонали разместить суммы элементов, лежащих на той же строке и столбце Название: с.png
Просмотров: 75

Размер: 47.5 Кб.

Я незнаю как ее делать, помогите пожалуйста
0
629 / 41 / 25
Регистрация: 25.04.2017
Сообщений: 510
24.06.2018, 18:56 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
#include <iostream>
 
using namespace std;
 
int main()
{  
    const int n = 4;
    int a[n][n];
    for(int i=0;i<n;i++)  //заполняем матрицу 
    {
      for(int j=0;j<n;j++)
      {
       a[i][j] = i * n + j+1; //по порядку или случайными: a[i][j] = rand()%10;
       cout <<"\t"<< a[i][j];
      }
       cout<<endl;
    }
    cout<<endl;
   int sum=0;
    for(int i=0;i<n;i++)  //суммируем столбцы и строки ячеек побочной диагонали и заносим сумму
    {
       for(int j=0;j<n;j++) 
       if (j+1==n-i)
       {
     for(int k=0;k<n;k++) 
        sum+=a[k][j];
       for(int k1=0;k1<n;k1++) 
        sum+=a[i][k1];
       a[i][j]=sum-a[i][j];
       sum=0;
       
       }
    
    }
    
         for(int i=0;i<n;i++) //Выводи новую матрицу на экран
         {
      for(int j=0;j<n;j++) 
      {
          
       
        cout << "\t"<<a[i][j];
      }
      cout<<endl;
         }
   
    return 0;
}
0
1 / 1 / 0
Регистрация: 19.06.2018
Сообщений: 79
24.06.2018, 19:55  [ТС] 5
Спасибо, спас!!
0
7437 / 5029 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
24.06.2018, 23:23 6
Тарасо, обратите внимание - у Вас по условию матрица
Цитата Сообщение от Тарасо Посмотреть сообщение
размером 9х9
требуется
Цитата Сообщение от Тарасо Посмотреть сообщение
Заполнить матрицу случайными числами.
и рекомендуется
Цитата Сообщение от Тарасо Посмотреть сообщение
выбирать эти числа из диапазона 0 - 99.
в этом случае применяйте для рандомного заполнения a[i][j] = rand()%100; добавьте #include <ctime> и первой строкой в функции main поставьте srand((int)time(0));
0
1 / 1 / 0
Регистрация: 19.06.2018
Сообщений: 79
25.06.2018, 09:11  [ТС] 7
Понял. Спасибо. Помоги сделать еще эту задачу буду очень благодарен !!
Выполнить задание практической работы №7 с такими дополнительными условиями:
• размер массива определяется в начале выполнения программы как случайное число в диапазоне 50 - 200;
• в тексте программы запрещается применять операцию индексации.
Условие:

размерность массива
200
диапазон значений
-50 – 50
Что нужно сделать
Найти с непрерывных последовательностей отрицательных чисел ту, которая имеет наибольшее абсолютное значение среднего арифметического ее элементов
с++
visual studio c++
0
474 / 426 / 290
Регистрация: 10.03.2015
Сообщений: 1,782
25.06.2018, 10:58 8
Тарасо, Что-то вроде такого:
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
#include <iostream>
#include <ctime>
 
#define Min_Size_Value 50
#define Max_Size_Value 200
 
#define Min_Rand_Value -50
#define Max_Rand_Value 50
 
using std::cin;
using std::cout;
using std::endl;
 
int main()
{
    srand(time(NULL));
    int n = Min_Size_Value + rand() % (Max_Size_Value - Min_Size_Value + 1);
    cout << "Rand size [50,200] = " << n << endl;
    int *arr = new int[n];
    for (int i=0; i<n; i++)
    {
        *(arr + i) = Min_Rand_Value + rand() % (Max_Rand_Value - Min_Rand_Value + 1);
        cout << *(arr + i) << " ";
    }
    cout << endl;
    
    int i = 0, mx = 0, i1 = 0, i2 = 0;
    while (i < n)
    {
        if (*(arr + i) < 0)
        {
            int k = 0, s = 0, j = i;
            while (j<n && *(arr + j) < 0)
            {
                k++;
                s += *(arr + j);
                j++;
            }
            s = abs(s / k);
            if (s > mx)
            {
                i1 = i;
                i2 = i + k - 1;
                mx = s;
            }
            i += k + 1;
        }
        else
            i++;
    }
 
    cout << "Negatives: ";    
    for (i = i1; i<=i2; i++)
        cout << *(arr + i) << " ";
    cout << endl;
    cout << "Avg = " << mx << endl;
    delete []arr;
}
1
1 / 1 / 0
Регистрация: 19.06.2018
Сообщений: 79
25.06.2018, 11:09  [ТС] 9
SuperKir ти супер Спасибо!!!!
0
7437 / 5029 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
25.06.2018, 12:08 10
Лучший ответ Сообщение было отмечено Тарасо как решение

Решение

Тарасо, для новой задачи создавайте новую тему

SuperKir, не считайте что придираюсь. код работает хорошо. вопрос вот в чём - может ли последовательность состоять из одного члена и не будет ли это называться не последовательностью, а числом ?
1
474 / 426 / 290
Регистрация: 10.03.2015
Сообщений: 1,782
25.06.2018, 12:16 11
Лучший ответ Сообщение было отмечено Тарасо как решение

Решение

Yetty, Это хороший вопрос, но по определению для данной задачи - думаю можно)
1
1 / 1 / 0
Регистрация: 19.06.2018
Сообщений: 79
25.06.2018, 13:14  [ТС] 12
Простите а что это значит "Avg = " ?

Добавлено через 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
#include <iostream>
#include <ctime>
 
#define Min_Size_Value 50
#define Max_Size_Value 200
 
#define Min_Rand_Value -50
#define Max_Rand_Value 50
 
using std::cin;
using std::cout;
using std::endl;
 
int main()
{
    srand(time(NULL));
    int n = Min_Size_Value + rand() % (Max_Size_Value - Min_Size_Value + 1);
    cout << "Rand size [50,200] = " << n << endl;
    int *arr = new int[n];
    for (int i=0; i<n; i++)
    {
        *(arr + i) = Min_Rand_Value + rand() % (Max_Rand_Value - Min_Rand_Value + 1);
        cout << *(arr + i) << " ";
    }
    cout << endl;
    
    int i = 0, mx = 0, i1 = 0, i2 = 0;
    while (i < n)
    {
        if (*(arr + i) < 0)
        {
            int k = 0, s = 0, j = i;
            while (j<n && *(arr + j) < 0)
            {
                k++;
                s += *(arr + j);
                j++;
            }
            s = abs(s / k);
            if (s > mx)
            {
                i1 = i;
                i2 = i + k - 1;
                mx = s;
            }
            i += k + 1;
        }
        else
            i++;
    }
 
    cout << "Negatives: ";    
    for (i = i1; i<=i2; i++)
        cout << *(arr + i) << " ";
    cout << endl;
    cout << "Avg = " << mx << endl;
    delete []arr;
}
0
474 / 426 / 290
Регистрация: 10.03.2015
Сообщений: 1,782
25.06.2018, 13:27 13
Цитата Сообщение от Тарасо Посмотреть сообщение
Простите а что это значит "Avg = " ?
Average value - среднее значение
Average -> Avg


Используй ТЕГИ для кода. Чуть позже опишу, если никто не возьмется
0
1 / 1 / 0
Регистрация: 19.06.2018
Сообщений: 79
25.06.2018, 13:48  [ТС] 14
Понял спасибо ты лутший!!!!!!!!
0
7437 / 5029 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
25.06.2018, 14:14 15
Тарасо, поспешил с оценкой программы. среднее арифметическое подсчитывается неправильно.
Negatives: -42 -41
Avg = 41
среднее типа int - это ошибка. нужно использовать тип double. в данном случае среднее арифметическое -41.5 (по модулю 41.5). соответственно и результат работы программы (т.е. вывод самой последовательности) может быть неправильным.
0
1 / 1 / 0
Регистрация: 19.06.2018
Сообщений: 79
25.06.2018, 19:27  [ТС] 16
пожалуйста опишите этот код что он означает, сделать описание этого кода мне нужно сейчас его сдавать учителю пожалуйста опишите кто нибудь, пошагово описать его, я не понимаю что значит буду очень благодарен, вот самый код:

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
#include <iostream>
#include <ctime>
 
#define Min_Size_Value 50
#define Max_Size_Value 200
 
#define Min_Rand_Value -50
#define Max_Rand_Value 50
 
using std::cin;
using std::cout;
using std::endl;
 
int main()
{
srand(time(NULL));
int n = Min_Size_Value + rand() % (Max_Size_Value - Min_Size_Value + 1);
cout << "Rand size [50,200] = " << n << endl;
int *arr = new int[n];
for (int i=0; i<n; i++)
{
*(arr + i) = Min_Rand_Value + rand() % (Max_Rand_Value - Min_Rand_Value + 1);
cout << *(arr + i) << " ";
}
cout << endl;
 
int i = 0, mx = 0, i1 = 0, i2 = 0;
while (i < n)
{
if (*(arr + i) < 0)
{
int k = 0, s = 0, j = i;
while (j<n && *(arr + j) < 0)
{
k++;
s += *(arr + j);
j++;
}
s = abs(s / k);
if (s > mx)
{
i1 = i;
i2 = i + k - 1;
mx = s;
}
i += k + 1;
}
else
i++;
}
 
cout << "Negatives: "; 
for (i = i1; i<=i2; i++)
cout << *(arr + i) << " ";
cout << endl;
cout << "Avg = " << mx << endl;
delete []arr;
}
0
474 / 426 / 290
Регистрация: 10.03.2015
Сообщений: 1,782
25.06.2018, 21:36 17
Тарасо,
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
#include <iostream>
#include <ctime>
 
#define Min_Size_Value 50 //Это минимальное число для рандома размера
#define Max_Size_Value 200 //Это максимальное число для рандома размера
 
#define Min_Rand_Value -50 //Это минимальное число для рандома числа массива
#define Max_Rand_Value 50 //Это максимальное число для рандома числа массива
 
using std::cin; //использование cin из пространства имен std
using std::cout; //использование cout из пространства имен std
using std::endl; //использование endl из пространства имен std
 
int main()
{
    srand(time(NULL)); //инициализация генератора случайных чисел 
    int n = Min_Size_Value + rand() % (Max_Size_Value - Min_Size_Value + 1); //n получается рандомно в диапазоне [Min_Size_Value, Max_Size_Value]
    cout << "Rand size [50,200] = " << n << endl; //Выводится получившееся n
    int *arr = new int[n]; //Выделяется память под целочисленный массив из n элементов
    for (int i=0; i<n; i++) //цикл по массиву
    {
        *(arr + i) = Min_Rand_Value + rand() % (Max_Rand_Value - Min_Rand_Value + 1); //arr[i] элемент инициализируется рандомно в диапазоне [Min_Rand_Value, Max_Rand_Value]
        cout << *(arr + i) << " "; //вывод элемента arr[i]
    }
    cout << endl; //пропуск строчки :D
    
    int    i = 0, //инициализация вспомогательных переменных
            i1 = 0, i2 = 0; //эти для цепочки от i1 до i2
    double mx = 0.0; //наибольшее среднее значение 
    while (i < n) //пока i < n
    {
        if (*(arr + i) < 0) //проверяем, arr[i] < 0?
        { //да
            int k = 0, j = i; //вспомогательные переменные
            double s = 0.0; //текущая сумма
            while (j<n && *(arr + j) < 0) //пока j<n и arr[j]<0
            {
                k++; //увеличиваем счетчик чисел
                s += *(arr + j); //суммируем arr[j] элемент в сумму s
                j++; //перемещаемся на след.элемент
            }
            s = abs(s / k); //вычисляем модуль суммы ср.арифм
            if (s > mx) //проверяем, больше ли текущее среднее вычисленного ранее
            { //да
                i1 = i; //начало цепочки i
                i2 = i + k - 1; //конец цепочки i+k-1 (от того что начали + количество элементов - 1 (до него))
                mx = s; //ср.арифм присвоим наибольшее
            }
            i += k + 1; //перейдем на след. элемент после последнего проверенного
        }
        else //нет
            i++; //просто переходим на след.элемент (ну, точнее икременируем индекс, под которым находится след.элемент :D)
    }
 
    cout << "Negatives: ";    //выводим сообщение
    for (i = i1; i<=i2; i++) //от первого элемента i1 в цепочке до i2 
        cout << *(arr + i) << " "; //выводим arr[i]
    cout << endl;
    cout << "Avg = " << mx << endl; //выводим ср.арифм по модулю что нашли
    delete []arr; //очищаем выделенную под arr память
}
0
1 / 1 / 0
Регистрация: 19.06.2018
Сообщений: 79
25.06.2018, 21:38  [ТС] 18
Ти просто супер!!! Спасибо ти лутший!!
0
1 / 1 / 0
Регистрация: 19.06.2018
Сообщений: 79
03.10.2018, 20:46  [ТС] 19
Можешь пожалуйста помочь решить еэту задачу очень срочна нужна!!!

1.Подпункт написать подпрограмма для вычисления виразу. Значення переменных нужно вводить с клавиатуры. 2. Подпункт построить блок схему. Теперь задача: Написать выражение который принимает истинное значение, если целое число, образованное тремя старшими цифрами дробной части большего из двух заданных вещественных чисел, является четным.
в visual studio c++
0
03.10.2018, 20:46
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.10.2018, 20:46
Помогаю со студенческими работами здесь

На побочной диагонали разместить суммы элементов лежащие на тех же строке и столбце
Заполнить матрицу случайными числами. На побочной диагонали разместить суммы элементов которые...

Заполнить матрицу случайными числами.На побочной диогонали разместить суммы элементов,которые лежат на той же строке и столбце
Заполнить матрицу случайными числами.На побочной диогонали разместить суммы элементов,которые лежат...

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

На главной диагонали матрицы разместить суммы элементов, которые лежат на той же строке и том же столбце
(Тема перемещена из раздела &quot;Pascal&quot;) Заполнить матрицу случайными числами.На главной диагонали...


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

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

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