Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.84/55: Рейтинг темы: голосов - 55, средняя оценка - 4.84
13 / 13 / 10
Регистрация: 23.08.2015
Сообщений: 131

Проверка в массиве на арифметическую прогрессию

09.10.2016, 04:22. Показов 11610. Ответов 21
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Задание: проверить есть ли арифметическая прогрессия в массиве, которая начинается с любого элемента массива.

Сделал сортировку пузырьком, но вот только как проверить на арифметическую прогрессию придумать не могу.
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
#include <iostream>
#include <string>
#include <cmath>
 
using namespace std;
 
int main()
{
    int massive[10];
    // Заполняем массив с клавиатуры
 
    for (int i = 0; i < 10; i++) {
        cout << "[" << i + 1 << "]" << ": ";
        cin >> massive[i];
    }
    int size = 10;
 
    // Сортировка пузырьком (обменом)
    for (int i = 0; i < size - 1; ++i) // i - номер прохода
    {
        for (int j = 0; j < size - 1; ++j) // внутренний цикл прохода
        {
            if (massive[j + 1] < massive[j])
            {
                auto tmp = massive[j + 1];
                massive[j + 1] = massive[j];
                massive[j] = tmp;
            }
        }
    } //for
 
 
    system("pause");
    return 0;
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
09.10.2016, 04:22
Ответы с готовыми решениями:

как найти наибольшую арифметическую прогрессию в массиве
Здравствуйте! Подскажите, пожалуйста, как можно найти в массиве арифметическую прогрессию наибольшей длины, вывести на печать эту...

Сформировать арифметическую прогрессию
Подскажите как сделать задачу. Сформировать арифметическую прогрессию, растущей из 10 элементов: начальное значение - 10, шаг - 2...

Проверка списка на арифметическую прогрессию
Программу реализовать двумя способами: с использованием стандартных процедур обработки списков и без использования. Подсобите студенту)

21
1719 / 568 / 187
Регистрация: 12.03.2016
Сообщений: 2,169
09.10.2016, 09:01
neketsh, с такой постановкой вопроса долго будешь ждать ответа.
0
132 / 158 / 87
Регистрация: 06.04.2016
Сообщений: 992
09.10.2016, 09:01
Строка 21:
Цитата Сообщение от neketsh Посмотреть сообщение
C++
1
for (int j = 0; j < size - 1; ++j)//внутренний цикл прохода
- разве в сортировке пузырьком внутренний цикл проходит по всем элементам массива? По-моему он там проходит только по тем, которые еще не отсортированы. Т.е. если у Вас сортировка по возрастанию нужно проходить по элементам от 0 до z(невключительно), где z - последний отсортированный элемент. Посмотрите готовую сортировку пузырьком на этом форуме.
0
1719 / 568 / 187
Регистрация: 12.03.2016
Сообщений: 2,169
09.10.2016, 09:33
Как то так что ли

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 "stdafx.h"
#include <iostream>
#include <algorithm>
#include <process.h>
 
using namespace std;
 
int main()
{
    setlocale(0, "");
    double d,dd;
    int massive[10];
    // Заполняем массив с клавиатуры
 
    for (int i = 0; i < 10; i++) {
        cout << "[" << i + 1 << "]" << ": ";
        cin >> massive[i];
    }
    sort(massive, massive + 10);
    d = massive[1] - massive[0];
    for (int i = 2; i < 10; i++)
    {
        dd = massive[i] - massive[i - 1];
        if (dd != d)
        {
            cout << "Числовая последовательность не является арифметической" << endl;
            system("pause");
            exit(0);
        }
    }
    cout << "Числовая последовательность является арифметической" << endl;
    system("pause");
    return 0;
    }
0
132 / 158 / 87
Регистрация: 06.04.2016
Сообщений: 992
09.10.2016, 09:48
У меня круче. Представляю вам крутую программу для нескольких коротких арифметический прогрессий. Господи, какой же я крутой! Ес! Ес! Ес! Я очень крутой! Круче чем Чак Норрис! Ес! Да! Я очень крутой!
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
//---------------------------------------------------------------------------
#include <vcl.h>
#include <iostream.h>
#include <conio.h>
#pragma hdrstop
//---------------------------------------------------------------------------
#pragma argsused
#define size 10
using namespace std;
 
int main(int argc, char* argv[])
{
int Massiv[size] = {1, 3, 5, 7, 9, 0, 3, 5, 7, 1},
z, Raznost, a1, n;
bool Capture = false;
 
for(z = 0; z < size-2; z++)
{
    Raznost = Massiv[z+1] - Massiv[z];
    if((Massiv[z+2] != (a1+(n+1)*Raznost))&&Capture)
    {//sriv progressii
        cout << "Progressiya zakonchilas na elemente: z+2=" << z+2 <<
        " Massiv[z+2]=" << Massiv[z+2] << "\n";
        Capture = false;
    }
    if(((Massiv[z+2]-Massiv[z+1]) == Raznost)&&(Capture == false))
    {
        Capture = true;
        cout<<"Elemeti nachala progressii:\n"<<z<<": "<<Massiv[z]<<"\n"
        <<z+1<<": "<<Massiv[z+1]<<"\n"
        <<z+2<<": "<<Massiv[z+2]<<"\n"
        <<"Nachalo progressii. Posmotrim dokuda ona budet:)!\n";
        a1 = Massiv[z];
        n = 1;
    }
    if(Capture) n++;
}
 
getch();
return 0;
}
//---------------------------------------------------------------------------
0
Объявлятель переменных
 Аватар для SpBerkut
1225 / 411 / 321
Регистрация: 24.09.2011
Сообщений: 1,279
09.10.2016, 10:33
Цитата Сообщение от neketsh Посмотреть сообщение
проверить есть ли арифметическая прогрессия в массиве
В любом массиве с количеством элементов больше единицы есть арифметическая прогрессия. Это я вам как выпускник математического класса утверждаю.
0
1719 / 568 / 187
Регистрация: 12.03.2016
Сообщений: 2,169
09.10.2016, 10:59
SpBerkut, я так думаю, что исходим из стандартного школьного определения.
0
Объявлятель переменных
 Аватар для SpBerkut
1225 / 411 / 321
Регистрация: 24.09.2011
Сообщений: 1,279
09.10.2016, 11:11
Цитата Сообщение от мановар Посмотреть сообщение
я так думаю, что исходим из стандартного школьного определения.
Разумеется. Дайте мне любой массив и я покажу в нём минимум одну арифметическую прогрессию.
0
370 / 133 / 44
Регистрация: 05.02.2015
Сообщений: 901
09.10.2016, 11:25
цитата:
Разумеется. Дайте мне любой массив и я покажу в нём минимум одну арифметическую прогрессию.
интересно. вот вам , например, такой массив:
-11 -5 -3.1 -0.8 0.2 1.8 5.8 8.1 9.9 11.4 покажите мне какую-нибудь прогрессию, желательно обоснавав )

Добавлено через 4 минуты
а, понял.) вопрос снимается. вы мне покажите n -1 последовательностей, состоящих из 2 элементов, где n - длина массива. там должно быть в задании мин. длина последовательности. )
0
Объявлятель переменных
 Аватар для SpBerkut
1225 / 411 / 321
Регистрация: 24.09.2011
Сообщений: 1,279
09.10.2016, 11:27
Цитата Сообщение от minore Посмотреть сообщение
вот вам , например, такой массив:
-11 -5 -3.1 -0.8 0.2 1.8 5.8 8.1 9.9 11.4 покажите мне какую-нибудь прогрессию, желательно обоснавав )
Да на здоровье. Например, есть прогрессия из двух членов: 0.2 и 9.9. a₁ = 0.2, d = 9.7, n = 2. Всего же здесь 90 прогрессий.

Добавлено через 1 минуту
Цитата Сообщение от minore Посмотреть сообщение
вы мне покажите n -1 последовательностей
Не. (n-1)·n последовательностей. И это минимум.
1
1719 / 568 / 187
Регистрация: 12.03.2016
Сообщений: 2,169
09.10.2016, 11:36
SpBerkut, опять же имеем ввиду, что все члены принадлежат одной прогрессии или не принадлежат ей, иного автор не указал. Поэтому не совсем до конца сформулированные задания и вызывают много вопросов.
0
Неэпический
 Аватар для Croessmah
18149 / 10731 / 2067
Регистрация: 27.09.2012
Сообщений: 27,035
Записей в блоге: 1
09.10.2016, 11:38
Цитата Сообщение от SpBerkut Посмотреть сообщение
Дайте мне любой массив и я покажу в нём минимум одну арифметическую прогрессию.
C++
1
int arr[1] = {1};
или даже так:
C++
1
int *pArray = new int[0];
0
09.10.2016, 11:40

Не по теме:


цитата:
Не. (n-1)·n последовательностей. И это минимум.
ну это уже жульничество), как прогрессию имеет смысл рассматривать только соседние элементы, ибо в ряд 1 4 6 не содержит прогрессию 1,6 , так как все портит число 4.

0
Объявлятель переменных
 Аватар для SpBerkut
1225 / 411 / 321
Регистрация: 24.09.2011
Сообщений: 1,279
09.10.2016, 11:43
Цитата Сообщение от Croessmah Посмотреть сообщение
C++
1
int arr[1] = {1};
Ну я же уже писал.
Цитата Сообщение от SpBerkut Посмотреть сообщение
В любом массиве с количеством элементов больше единицы есть арифметическая прогрессия.
0
09.10.2016, 11:44

Не по теме:

Цитата Сообщение от SpBerkut Посмотреть сообщение
Ну я же уже писал.
Ну вот, уже отмазки начались.
Там я писал, тут я не написал. :D

0
2549 / 1208 / 358
Регистрация: 30.11.2013
Сообщений: 3,826
09.10.2016, 11:49
Цитата Сообщение от Croessmah Посмотреть сообщение
new int[0];
Так UB же ж
3.7.4.1
Even if the size of the space requested is zero, the request can fail
0
Неэпический
 Аватар для Croessmah
18149 / 10731 / 2067
Регистрация: 27.09.2012
Сообщений: 27,035
Записей в блоге: 1
09.10.2016, 12:11
Цитата Сообщение от rikimaru2013 Посмотреть сообщение
Так UB же ж
Всё это относится к operator new (и подобным), а не к new-expression.
Что касается new-expression, то:
When the value of the expression is zero, the allocation function is called to allocate an array with no elements
1
09.10.2016, 12:12

Не по теме:

Croessmah, когда-то я вас подловлю :rtfm: :senor:

0
09.10.2016, 12:13

Не по теме:

rikimaru2013, облом? :D
Ну ничего, все ошибаются. :)

0
13 / 13 / 10
Регистрация: 23.08.2015
Сообщений: 131
09.10.2016, 14:03  [ТС]
Спасибо вам, а насчет постановки вопроса. Это в универе дали такую задачу. Сделать проверку, есть ли арифметическая прогрессия в массиве, которая начинается с любого элемента массива. Ни словом больше)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
09.10.2016, 14:03
Помогаю со студенческими работами здесь

Проверка списка на арифметическую прогрессию
Помогите решить задачу которая проверяет список на арифметическую прогрессию. Заранее благодарен

Найти в массиве наибольшую по количеству элементов арифметическую прогрессию
Добрый день форумчане. Нахожусь очень у трудной ситуации. Дано условие : В массиве Z(n) найти наибольшую по количеству элементов...

В массиве из 10 целых чисел определить, составляют ли его элементы арифметическую прогрессию
Программа всегда выдает &quot;не является&quot;. Подскажите в чем ошибка. /*В массиве из 10 целых чисел определить, составляют ли его...

Определить, существуют ли в массиве три последовательных элемента, образующих арифметическую или геометрическую прогрессию.
Всем доброго времени суток! Помогите пожалуйста решить задачу: Дан массив размера N. Определить, существуют ли в массиве три...

Проверить арифметическую прогрессию
#include &lt;stdio.h&gt; #include &lt;cstdlib&gt; #include &lt;conio.h&gt; main () {int mass,n,i,j,t,Y=1,d,N=0; printf(&quot;N=&quot;);scanf(&quot;%d&quot;,&amp;n); for...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. На мобильном - сканируйте QR-код. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru