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

Монотонная последовательность - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 15, средняя оценка - 4.87
Zero_level
0 / 0 / 0
Регистрация: 04.09.2010
Сообщений: 8
09.09.2010, 01:14     Монотонная последовательность #1
Не могу сообразить как реализовать на С++ эту задачу:
Дана последовательность целых чисел и требуется проверить будет ли она монотонно возрастать/убывать?
Пожалуйста, подскажите кто может.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.09.2010, 01:14     Монотонная последовательность
Посмотрите здесь:

Вводится последовательность из N целых чисел. Сформировать последовательность, C++
C++ Вводить последовательность вещественных чисел, пока следующее вводимое число не окажется меньше предыдущего. Вывести полученую последовательность.
Вводится последовательность целых чисел,0 –конец последовательности. Определить, содержит ли последовательность хотя бы три отрицательных четных числа C++
C++ Дана последовательность, элементы которой есть целые двузначные числа. Упорядочить последовательность по убыванию произведений цифр
Массив: Вставить в последовательность действительное число b так, чтобы последовательность осталась неубывающей. C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
accept
4838 / 3237 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
09.09.2010, 05:57     Монотонная последовательность #2
просто сравниваешь n[i] < n[i+1], если хоть раз нет, значит последовательность не возрастает
просто сравниваешь n[i] > n[i+1], если хоть раз нет, значит последовательность не убывает
там может быть три случая: монотонно возрастает, монотонно убывает, нет монотонности
пиши код, типа hello world и в него вставляй цикл, а лучше два, для начала
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9372 / 5422 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
09.09.2010, 12:26     Монотонная последовательность #3
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 <stdio.h>
 
int inc_array(int * arr, int size){
    int i;
    for ( i = 1; i < size && arr[i] >= arr[i-1]; ++i )
        ;
    return i == size;
}
 
int dec_array(int * arr, int size){
    int i;
    for ( i = 1; i < size && arr[i] <= arr[i-1]; ++i )
        ;
    return i == size;
}
 
#define ARR_SIZE 5
 
int main(void){
    int arr[ARR_SIZE], i;
    
    printf("Enter %d array values:\n", ARR_SIZE);
    for ( i = 0; i < ARR_SIZE; ++i ){
        printf("ARRAY[%d] = ", i);
        scanf("%d", &arr[i]);
    }
    printf("Is %sa increasing values array.\n", ( inc_array(arr, ARR_SIZE) ) ? "" : "not ");
    printf("Is %sa decreasing values array.\n", ( dec_array(arr, ARR_SIZE) ) ? "" : "not ");
    
    return 0;
}
Zero_level
0 / 0 / 0
Регистрация: 04.09.2010
Сообщений: 8
10.09.2010, 03:52  [ТС]     Монотонная последовательность #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
#include <iostream>
using namespace std;
 
int main()
{
        int n, i;
        cout<<"Vvedite kolichestvo elementov massiva:\n> ", cin>>n;
        int *mas = new int[n];
        cout<<"Poelementno vvedite massiv:\n";
        for(i = 0; i < n; ++i)
                cin>>mas[i];
        system("cls");
        cout<<"Vveden massiv:\n";
        for(i = 0; i < n; ++i)
                cout<<mas[i]<<' ';
        cout<<"\non vozrastaet?\n";        
        for(i = 0; i < n - 1; ++i)
                if(mas[i] > mas[i + 1])
                {
                        cout<<"\n-Net, ne vozrastaet.\n";
                        system("pause");
                        return 0;
                }
        cout<<"\n-Da, vozrastaet.\n";
        system("pause");
        return 0;
}
А как проверить на монотонность возрастания?
accept
4838 / 3237 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
10.09.2010, 04:22     Монотонная последовательность #5
C++
1
2
3
4
5
6
7
8
    for(i = 0; i < n - 1; i++)
        if(mas[i] > mas[i + 1]) 
            break;
 
    if (i == n - 1)
        cout<<"\n-Da, vozrastaet (prichem monotonno).\n";
    else
        cout<<"\n-Net, ne vozrastaet.\n";
Zero_level
0 / 0 / 0
Регистрация: 04.09.2010
Сообщений: 8
10.09.2010, 04:54  [ТС]     Монотонная последовательность #6
accept, изменил код и добавил условие, но всё равно монотонность не выполняется...
accept
4838 / 3237 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
10.09.2010, 05:00     Монотонная последовательность #7
у тебя там не хватает delete []
а так, wiki
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.09.2010, 21:07     Монотонная последовательность
Еще ссылки по теме:

Монотонная последовательность без использования функций C++
Если последовательность отсортирована по возрастанию, оставить ее без изменения. Иначе получить иную последовательность C++
C++ Вводится последовательность из N вещественных чисел. Определить, является ли последовательность знакочередующе

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

Или воспользуйтесь поиском по форуму:
Zero_level
0 / 0 / 0
Регистрация: 04.09.2010
Сообщений: 8
14.09.2010, 21:07  [ТС]     Монотонная последовательность #8
Спасибо всем кто помогал, я действительно запутался с определением монотонности числовой посл-ти. )
Yandex
Объявления
14.09.2010, 21:07     Монотонная последовательность
Ответ Создать тему
Опции темы

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