Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/25: Рейтинг темы: голосов - 25, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 06.05.2018
Сообщений: 14
1

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

26.05.2018, 20:25. Показов 4980. Ответов 10
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Дана целочисленная квадратная матрица порядка n. Найти строки, в которых элементы образуют монотонную положительную последовательность.
Подскажите как сделать.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.05.2018, 20:25
Ответы с готовыми решениями:

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

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

Найти номера столбцов матрицы, элементы каждого из которых образуют возрастающую последовательность
Дана целочисленная матрица B (7x7). Найти номера столбцов, элементы каждого из которых образуют...

Подсчитать количество строк матрицы элементы которых образуют монотонную последовательность
Подсчитать количество строк матрицы A(n*n), элементы которых образуют монотонную последовательность.

10
Модератор
Эксперт С++
13507 / 10757 / 6412
Регистрация: 18.12.2011
Сообщений: 28,712
26.05.2018, 21:19 2
См. ссылки внизу страницы
0
1505 / 968 / 812
Регистрация: 30.04.2016
Сообщений: 3,334
03.07.2018, 21:19 3
Цитата Сообщение от Илья199934 Посмотреть сообщение
Подскажите как сделать.
Илья199934, здравствуйте! Например, так:

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
#include <bits/stdc++.h>
 
    using namespace std;
 
int main() {
    int n;
    cout << "Enter a matrix size:\n";
    cout << "n = ";
    cin >> n;
    int** a = new int*[n];
    for (int i = 0; i < n; i++) {
        a[i] = new int[n];
    }
    cout << "Enter a matrix:\n";
    for (int i = 0; i < n; i++) {
        for (int j = 0; j < n; j++) {
            cin >> a[i][j];
        }
    }
    cout << "Target info:\n";
    for (int i = 0; i < n; i++) {
        if (is_sorted(a[i], a[i] + n)) {
            cout << i + 1 << " => " << "is sorted!\n";
        } else {
            cout << i + 1 << " => " << "is NOT sorted!\n";
        }
    }
    for (int i = 0; i < n; i++) {
        delete [] a[i];
    }
    delete [] a;
    system("pause");
    return 0;
}
0
Диссидент
Эксперт C
27706 / 17322 / 3812
Регистрация: 24.12.2010
Сообщений: 38,979
03.07.2018, 22:16 4
Хочу заметить, что условие монотонности может выглядеть так
C++
1
2
3
4
5
6
bool IsMonoton(int *a, int n)
{
  for(int i=1; i<n-1; i++) {
    if ((a[i] - a[i-1])*(a[i+1] - a[i]) <= 0) return false;
  return true;
}
.Не исключено, что функция is_sorted, кто бы она ни была, использует именно этот простой алгоритм

Добавлено через 2 минуты
Если монотонность не строгая, в строке 4 "<=" следует заменить на "<"
Кстати, как у is_sorted дела со "строгостью-нестрогостью" монотонности?
0
7437 / 5029 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
03.07.2018, 22:23 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
#include <iostream>
using namespace std;
 
int main() 
{
    int n, p;    
    cout <<"n="; cin >>n;
    int** a = new int*[n];
    
    for (int i = 0; i < n; i++) 
        a[i] = new int[n];
    
    cout << "Enter "<<n*n<< " matrix elements:\n";
    for (int i = 0; i < n; i++) 
        for (int j = 0; j < n; j++) 
            cin >>a[i][j];
        
    for (int i = 0; i < n; i++)
    {
        p=0;
        for (int j = 0; j < n-1; j++)
        if (a[i][j]>a[i][j+1]) p++;        
        if (p==0) cout <<"Row "<<i+1<<" is sorted\n";
        else cout <<"Row "<<i+1<<" is no sorted\n";        
    }
    for (int i = 0; i < n; i++) 
    delete [] a[i];    
    delete [] a;
system("pause");
return 0;
}
интересно, что по определению Числовая последовательность {xn} называется возрастающей (убывающей), если для всех n принадлежащих N выполняется неравенство xn <= xn+1 ( соответственно неравенство xn >= xn+1) - получается последовательность одинаковых чисел можно называть как возрастающей так и убывающей
0
Диссидент
Эксперт C
27706 / 17322 / 3812
Регистрация: 24.12.2010
Сообщений: 38,979
03.07.2018, 22:27 6
Цитата Сообщение от Yetty Посмотреть сообщение
C++
1
2
3
4
for (int j = 0; j < n-1; j++)
    if (a[i][j]>a[i][j+1]) p++;
        if (p==0) cout <<"Row "<<i+1<<" is sorted\n";
        else cout <<"Row "<<i+1<<" is no sorted\n";
Не понял, зачем гнать цикл до конца.

Добавлено через 1 минуту
Цитата Сообщение от Yetty Посмотреть сообщение
что по определению
Где вы такое определение нашли-то? Не поделитесь инфой?
1
7437 / 5029 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
03.07.2018, 22:33 7
меня вот сомнения взяли. в названии темы:
Цитата Сообщение от Илья199934 Посмотреть сообщение
возрастающую последовательность
а в условии:
Цитата Сообщение от Илья199934 Посмотреть сообщение
положительную последовательность
Илья199934, уточните что именно Вам нужно.
0
1505 / 968 / 812
Регистрация: 30.04.2016
Сообщений: 3,334
03.07.2018, 22:37 8
Цитата Сообщение от Байт Посмотреть сообщение
Кстати, как у is_sorted дела со "строгостью-нестрогостью" монотонности?
Здравствуйте! Для is_sorted() строгая и нестрогая не различаются и это, конечно, минус. Я бы добавил в функцию параметр, который за это отвечает. Однако можно изменить направление монотонности на убывающее:
C++
1
if (is_sorted(a[i], a[i] + n, greater<int>())) {...}
1
7437 / 5029 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
03.07.2018, 22:49 9
Цитата Сообщение от Байт Посмотреть сообщение
Где вы такое определение нашли-то? Не поделитесь инфой?
посмотрел на код Fixer_84, сомнения взяли. зашёл на сайт (ссылку давать не буду - т.к. не в курсах разрешены ли на форуме ссылки на сторонние ресурсы) - на котором чёрным по белому так и написано. но сомнения не улетучились - поэтому и поделился ими. спасибо, Байт, что не прошли мимо. на самом деле выходит так:
Числовая последовательность {xn} называется возрастающей (убывающей), если для всех n принадлежащих N выполняется неравенство xn <xn+1 ( соответственно неравенство xn >xn+1)

соответствено мой код, как и код Fixer_84 ошибочен.

Будем ждать уточнения от ТС - насчёт положительных. И переписывать заново.
1
Диссидент
Эксперт C
27706 / 17322 / 3812
Регистрация: 24.12.2010
Сообщений: 38,979
04.07.2018, 09:27 10
Предлагаю исключить разногласия на уровне определений.
Убывающая (возрастающая): X[i] > X[i+1] (X[i] < X[i+1])
Монотонная: X[i] >= X[i+1] (X[i] =< X[i+1])
Насколько я знаю, эти определения совпадают с общепринятыми.
Иногда говорят "строго-монотонная" (= убывающая или возрастающая) или "нестрого убывающая" (=монотонно убывающая)
В задании идет речь о монотонных
Цитата Сообщение от Илья199934 Посмотреть сообщение
элементы образуют монотонную положительную последовательность.
Цитата Сообщение от Yetty Посмотреть сообщение
Будем ждать уточнения от ТС - насчёт положительных.
Я вот слово "положительных" просто не заметил, пропустил мимо ушей. По логике и смыслу русского языка это просто последовательности с положительными членами. И в кодах нужно только уточнение типа
C++
1
if (a[i][0] <= 0 || a[i][n-1]<=0) continue; // Не рассматривать "плохие" строчки
Если ТС имеет в виду что-то другое, тогда слово за ним.
0
7437 / 5029 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
04.07.2018, 11:23 11
Цитата Сообщение от Байт Посмотреть сообщение
Насколько я знаю, эти определения совпадают с общепринятыми.
общепринятые какой-то размытый термин. вот что пишет вики:

Последовательность называется монотонной, если она является неубывающей, либо невозрастающей.
Последовательность называется строго монотонной, если она является возрастающей, либо убывающей.
Очевидно, что строго монотонная последовательность является монотонной.


Т.е. монотонная возрастающая последовательность - это если x[n] < x[n+1]. что собственно логично.
0
04.07.2018, 11:23
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.07.2018, 11:23
Помогаю со студенческими работами здесь

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

Найти номера строк, элементы каждой из которых образуют монотонную последовательность
Дан целочисленный квадратный массив nxn(n&lt;10). Найти номера строк , элементы каждой из которых...

Найти номера строк, элементы каждой из которых образуют монотонную последовательность
II. Даны натуральное число n и целочисленный квадратный массив размера n*n. Найти номера строк,...

Найти строки, элементы которых образуют возрастающую последоввательнос
Задана матрица А( n,n) найти строки, элементы которой образуют возрастающую последовательность


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

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