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

Цикл for поиск вершин

27.09.2019, 23:54. Показов 1137. Ответов 24
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Цикл for поиск вершин.


Помогите пожалуйста, в цикле, найти все "_П_" образные вершины.


Синяя линяя - это цифровые значения кратные 0.10 поэтому Синяя линия, приняла такой вид.

Цикл for поиск вершин


Красная линия - это все горизонтальные участки, на Синей линии.

Цикл for поиск вершин


Как найти в цикле, все горизонтальные участки, при условии,

что эти участи, являются вершинами, по отношению к двум соседним горизонт.участкам, (самым ближайшим, слева и справа).

Цикл for поиск вершин


Помогите пожалуйста сформировать цикл(ы), для поиска, всех таких участков-вершин.


Спасибо.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
27.09.2019, 23:54
Ответы с готовыми решениями:

Поиск вершин квадрата
мне надо найти остальные коорденаты вершин квадрата если известны 2 противоположных вершыны, дикартовая система координат

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

Поиск вершин квадрата с записью в файл
Даны координаты двух вершин (x1,y1) и (x2,y2) некоторого квадрата. Необходимо найти возможные координаты других его вершин. -Ввод из...

24
Злостный нарушитель
 Аватар для Verevkin
9780 / 5323 / 1210
Регистрация: 12.03.2015
Сообщений: 25,013
28.09.2019, 00:48 2
исходные данные-то где?
0
517 / 409 / 188
Регистрация: 08.04.2013
Сообщений: 1,748
28.09.2019, 02:43 3
А в чем проблема не умеете сравнивать 2 значения старое и новое и считать?
0
Заблокирован
28.09.2019, 08:12 4
C++
1
2
3
4
5
6
7
8
9
10
11
12
    int a[]={0,1,2,1,1,3,3,2,4,4,3,2};//double buff_0[1000]
    int top=0;
    //for(int i=1; i<1000; i++)
    for(int up=0,i=1; i<sizeof(a)/sizeof(int); i++)
        if(a[i]>a[i-1]) up=1;
        else
            if(a[i]<a[i-1])
            {
                top+=up;
                up=0;
            }
    cout<<top<<endl;
0
0 / 0 / 0
Регистрация: 27.09.2019
Сообщений: 13
28.09.2019, 09:29  [ТС] 5
Цитата Сообщение от Verevkin Посмотреть сообщение
исходные данные-то где?
для Verevkin фай не прикрепился, исходник в блокноте код_13.txt

Это mql4, на картинке индексация идёт с права на лево..

Исходник, открыть с помощь блокнот.

Цикл for поиск вершин
0
517 / 409 / 188
Регистрация: 08.04.2013
Сообщений: 1,748
28.09.2019, 09:49 6
способ парсинга HTML страницы и ваша задача чем связаны? или только вами?
0
0 / 0 / 0
Регистрация: 27.09.2019
Сообщений: 13
28.09.2019, 10:05  [ТС] 7
Цитата Сообщение от marat_miaki Посмотреть сообщение
А в чем проблема не умеете сравнивать 2 значения старое и новое и считать?
Нет не умею, увы.. вы как-то по особенному думаете по видимому, может поможете неучу?

2 значения для меня мало.. я, три пробовал сравнивать..


С копированием:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
static double price_A[550];
  
 
       for (  int     a=0;a<500;a++)  {    
    //aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
         
     
     if( buff_1[a]  != buff_1[a+1] && buff_1[a]  != EMPTY_VALUE){ // на изменение значений красной линии
     
          ArrayCopy(price_A,price_A,1,0,549);
 
        price_A[0] = NormalizeDouble(buff_1[a],Digits);
 
        }

Получается так:

C++
1
2
3
4
  
                                верхняя сторона
     лев. сторона       price_A[1] = 0.20           прав. сторона 
    price_A[0] = 0.10                                     price_A[3] = 0.10
Всего 3 индекса, и таких индексов получается 12-15 из тысячи. А в двумерных массивах..

я вообще не понимаю как их склеить между собой..

Сможете помочь? Найти какой либо способ, что бы отметить все "П"-образные вершины Синей линии..

Добавлено через 10 минут
Цитата Сообщение от Pvt Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
    int a[]={0,1,2,1,1,3,3,2,4,4,3,2};//double buff_0[1000]
    int top=0;
    //for(int i=1; i<1000; i++)
    for(int up=0,i=1; i<sizeof(a)/sizeof(int); i++)
        if(a[i]>a[i-1]) up=1;
        else
            if(a[i]<a[i-1])
            {
                top+=up;
                up=0;
            }
    cout<<top<<endl;

Простите, мне сложно понять..
А где мне поставить buff_2[i] , что бы этот новый буфер, отметил своей линией, все "П" вершины.

То есть, когда up == 1 правильно?


C++
1
2
3
4
    for (     i=0;i<1000;i++)  {  
 
        if(  up == 1 )   buff_2[i]  =  buff_0[i];
    }
Так?
0
Заблокирован
28.09.2019, 10:13 8
C++
1
2
3
4
5
6
7
8
9
10
    int a[]={0,1,2,1,1,3,3,3,2,4,4,3,2};//double buff_0[1000]
    //for(int i=1; i<1000; i++)
    for(int up=0,i=1; i<sizeof(a)/sizeof(int); i++)
        if(a[i]>a[i-1]) up=i;
        else
            if(a[i]<a[i-1])
            {
                if(up) cout<<up<<"-"<<i-1<<"  "<<a[i-1]<<endl;
                up=0;
            }
выводит интервалы площадок и их высоту
0
0 / 0 / 0
Регистрация: 27.09.2019
Сообщений: 13
28.09.2019, 11:14  [ТС] 9
Цитата Сообщение от Pvt Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
    int a[]={0,1,2,1,1,3,3,3,2,4,4,3,2};//double buff_0[1000]
    //for(int i=1; i<1000; i++)
    for(int up=0,i=1; i<sizeof(a)/sizeof(int); i++)
        if(a[i]>a[i-1]) up=i;
        else
            if(a[i]<a[i-1])
            {
                if(up) cout<<up<<"-"<<i-1<<"  "<<a[i-1]<<endl;
                up=0;
            }
выводит интервалы площадок и их высоту


Не получается.

код не скомпилировался, поэтому адаптировал так:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
 int up =0;
 
 
    for(  up=0,i=1; i<1000; i++)
        if(buff_0[i]>buff_0[i-1]) up=i;
        else
            if(buff_0[i]<buff_0[i-1])
            {
            
             buff_2[i]  = buff_0[i]+15*Point;
            
            cnt++;
            }
Цикл for поиск вершин



Цикл нашёл 10 вершин а их 9. отображение в левом верхнем углу.
И нужна вся вершина, а не точка..

У вас в поиске "или" а надо же наверное "и", разве не так? буфер > буфер-1 && буфер > буфер+1

У вас другие версии есть? Так пробовали уже и не раз..

С двойным массивом как думаете можно сделать?

Например если два индекса:

index_1 = вся история линии 1000
index_2 = история изменения линии

На истории изменений линии (index_2) всё находится просто, если сравнить три значения 0, 1, 2, где 1 это вершина.



Да собственно, ни кто, пока помочь не может, пока - это около года уже наверное..))

Жаль.. Ну может быть ещё помогут..)) Просто версий, куда ещё обратиться, больше нет..


Спасибо что обратили внимание. Но так не работает..
0
Заблокирован
28.09.2019, 11:22 10
Цитата Сообщение от L1199 Посмотреть сообщение
адаптировал так
а не правильно
0
0 / 0 / 0
Регистрация: 27.09.2019
Сообщений: 13
28.09.2019, 11:40  [ТС] 11
Цитата Сообщение от marat_miaki Посмотреть сообщение
способ парсинга HTML страницы и ваша задача чем связаны? или только вами?
"miaki" - Это очень хороший парфюм! Влияет ли он на сознание, я не знаю, но думаю да.. На восприятие точно влияет.

Вы по русски, магёте издястняться?

Или это викторина? из серии.. "Отгадай загадку и реши вопрос, - сколько у цыганке, на *** волос."

Вы в этом смысле? Или спросить, чего хотели..

Добавлено через 2 минуты
Цитата Сообщение от Pvt Посмотреть сообщение
а не правильно


А как правильно? я же старовер.. у меня с++ примитивный.. я по модному не понимаю..))
0
Заблокирован
28.09.2019, 11:43 12
C++
1
2
3
    if(a[i]<a[i-1])
            {
                if(up)......
условие окончания вершины
0
Злостный нарушитель
 Аватар для Verevkin
9780 / 5323 / 1210
Регистрация: 12.03.2015
Сообщений: 25,013
28.09.2019, 11:58 13
исходные данные-то где?
Цитата Сообщение от L1199 Посмотреть сообщение
для Verevkin фай не прикрепился, исходник в блокноте код_13.txt
Это mql4, на картинке индексация идёт с права на лево..
Исходник, открыть с помощь блокнот.
Ещё раз спрашиваю: где исходные данные?
В твоём текстовике кусок какого-то говнокода, а данных нету. mql4 гдена?

Цикл for поиск вершин
0
0 / 0 / 0
Регистрация: 27.09.2019
Сообщений: 13
28.09.2019, 12:01  [ТС] 14
Для Pvt

Ок. Сейчас сделаю и покажу...
0
0 / 0 / 0
Регистрация: 27.09.2019
Сообщений: 13
28.09.2019, 12:08  [ТС] 15
Цитата Сообщение от Verevkin Посмотреть сообщение
исходные данные-то где?
Ещё раз спрашиваю: где исходные данные?
В твоём текстовике кусок какого-то говнокода, а данных нету. mql4 гдена?

Вложение 1070110
trend_13.rar
в rar-ке ))) Это-же г.код в формате .mql4

Так? Или опять не так?
0
0 / 0 / 0
Регистрация: 27.09.2019
Сообщений: 13
28.09.2019, 12:21  [ТС] 16
Цитата Сообщение от L1199 Посмотреть сообщение
Вложение 1070111
в rar-ке ))) Это-же г.код в формате .mql4

Так? Или опять не так?
Цитата Сообщение от Verevkin Посмотреть сообщение
исходные данные-то где?
Ещё раз спрашиваю: где исходные данные?
В твоём текстовике кусок какого-то говнокода, а данных нету. mql4 гдена?

Вложение 1070110
metaeditor.rar

+editor сам откроется, или нет, не знаю.
0
Злостный нарушитель
 Аватар для Verevkin
9780 / 5323 / 1210
Регистрация: 12.03.2015
Сообщений: 25,013
28.09.2019, 12:53 17
Цитата Сообщение от L1199 Посмотреть сообщение
Так? Или опять не так?
Я так понимаю, исходных данных я не дождусь. Рискну предположить, что ты не знаешь, что это такое.
0
0 / 0 / 0
Регистрация: 27.09.2019
Сообщений: 13
28.09.2019, 13:12  [ТС] 18
Цитата Сообщение от Pvt Посмотреть сообщение
C++
1
2
3
    if(a[i]<a[i-1])
            {
                if(up)......
условие окончания вершины
Да, это повтор, тоже самое.. не работает с таким условием.

Цикл for поиск вершин


buff_0[i] = Синяя линия.

Красная линия ГОРИЗОНТАЛЬНАЯ:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
   int ShowBars  =  1000;
 
     int b =0;
     
     
     for (  int   i=0;i<ShowBars;i++)  {    
       
         buff_1[i]  = EMPTY_VALUE;  
 
        if( buff_0[i] ==  buff_0[b]    )  buff_1[i]  =  buff_0[b];//   КРАСНАЯ (все горизонтальные участки)
   
       b = i;
       
    }
Жёлтая линия ВЕРТИКАЛЬНАЯ СПРАВА
Зелёная линия ВЕРТИКАЛЬНАЯ СЛЕВА
C++
1
2
3
4
5
 for (int i=1;i<ShowBars;i++) {
 
              if(  buff_0[i+1]  >  buff_0[i-1])    buff_2[i] = buff_0[i];  // вертикаль справа   Жёлтая
              if(  buff_0[i+1]  <  buff_0[i-1])    buff_3[i] = buff_0[i];  // вертикаль слева    Зелёная
           }
ПОИСК КОЛИЧЕСТВА ВЕХ ГОРИЗОНТАЛЬНЫХ СЕГМЕНТОВ


C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
  int gorizont_segment =0;
 
  static double price_A[1000];
 
       for (  int   a=0;a<ShowBars;a++)  {   
 
         if( buff_1[a]  != buff_1[a+1] && buff_1[a]  != EMPTY_VALUE){
     
            ArrayCopy(price_A,price_A,1,0,999);
 
            price_A[0] = NormalizeDouble(buff_1[a],Digits);
 
            gorizont_segment++;
        }
     }

ПОИСК КОЛИЧЕСТВА ВСЕХ ГОРИЗОНТАЛЬНЫХ СЕГМЕНТОВ, которые являются ВЕРШИНАМИ

C++
1
2
3
4
5
6
7
8
  int verssin_segment =0;
 
    for (   int    j=0;j<gorizont_segment;j++)  {   // от кол-ва всех вершин
 
       if( price_A[j+1] > price_A[j] && price_A[j+1] > price_A[j+2]){  verssin_segment++;  
 
      }
    }


Всё давно нормально находится и всё нормально считается...

Тока как, поставить четвёртую линию, Только на вершины!!! ?????? Она не ставится!!!

buff_4[i] Как или каким способом установить линию НА ВСЕ "П"- образные вершины??????
0
0 / 0 / 0
Регистрация: 27.09.2019
Сообщений: 13
28.09.2019, 13:18  [ТС] 19
Цитата Сообщение от Verevkin Посмотреть сообщение
Я так понимаю, исходных данных я не дождусь. Рискну предположить, что ты не знаешь, что это такое.
Риск оправдался! Я действительно, не знаю что это такое.

Могу я узнать, что такое исходных данные?

Я без иронии..
0
Злостный нарушитель
 Аватар для Verevkin
9780 / 5323 / 1210
Регистрация: 12.03.2015
Сообщений: 25,013
28.09.2019, 13:41 20
Цитата Сообщение от L1199 Посмотреть сообщение
Могу я узнать, что такое исходных данные?
Для данной задачи - это, например, файл, содержащий таблицу соответствий значений функции значениям аргумента, т.е. массив точек (x, f(x)), по которому строятся твои эпюры.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
28.09.2019, 13:41
Помогаю со студенческими работами здесь

Быстрый поиск наиболее близких вершин графа
Всем привет, у меня имеется некая задача и её суть состоит в том, что мне нужно найти расстояние между двумя наиболее близкими вершинами...

Число вершин, удаленных от пары вершин по кротчайшим маршрутам каждой из следующих длин: 1, 2, 3 и т.д., для каждой пары вершин.
Число вершин, удаленных от пары вершин по кротчайшим маршрутам каждой из следующих длин: 1, 2, 3 и т.д., для каждой пары вершин. ...

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

Рекурсивный поиск всех возможных графов с заданным количеством вершин и ребер
Нужно найти все возможные гафы, состоящие из 7 вершин и 9 ребер. Реализовать рекурсивно.

Написать функцию, выполняющую попарный поиск треугольников с общими парами вершин
Задан массив из n треугольников на плоскости. Написать функцию, выполняющую попарный поиск треугольников с общими парами вершин....


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

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

Редактор формул (кликните на картинку в правом углу, чтобы закрыть)
Новые блоги и статьи
Что нового в C# 14
UnmanagedCoder 10.03.2025
Предстоящая версия C# 14 обещает принести изменения, которые сделают разработку еще более приятной и эффективной. Что стоит отметить, так это влияние сообщества разработчиков на формирование новых. . .
Формулы поворота
Igor3D 10.03.2025
Добрый день Тема Эти формулы приводятся во множестве тьюториалов, часто под видом "матрица вращения на плоскости". x' = x * cos(a) - y * sin(a) y' = y * cos(a) + x * sin(a) Как бы Вы их. . .
Что нового в .NET 10
UnmanagedCoder 10.03.2025
. NET 10 выходит как релиз с длительной поддержкой (LTS), включающей три года обновлений. В этом обновлении Microsoft сфокусировались на нескольких направлениях: производительность, оптимизация. . .
Отложенное высвобождение, RCU и Hazard Pointer в C++26
NullReferenced 09.03.2025
Многопоточное программирование стало важной частью современной разработки. Когда несколько потоков одновременно работают с общими данными, возникает целый ряд проблем, связанных с синхронизацией и. . .
Неблокирующийся стек на C++26
NullReferenced 09.03.2025
Традиционные способы синхронизации в многопоточном программировании — мьютексы, семафоры, условные переменные — часто превращаются в узкое место в плане производительности. При этом неблокирующиеся. . .
Обработка строк в C++26: Новые возможности string и string_view
NullReferenced 09.03.2025
Новый стандарт C++26 предлагает много улучшений для работы с привычными string и относительно новыми string_view. string_view - это невладеющая ссылка на последовательность символов, появившаяся в. . .
Мой первый аддон для Blender 3D, с помощью нейронки (не зная даже азов пайтона, но это не значит что так и с остальным).
Hrethgir 09.03.2025
Потратил весь день. Пол-дня мне хватило, чтобы понять что с версией с 14B мне не одолеть написание функционального кода, на языке с которым я вообще никак не знаком - пайтон. Версия 22B от другого. . .
Einstein@Home сегодня исполняется двадцать лет!
Programma_Boinc 09.03.2025
Einstein@Home сегодня исполняется двадцать лет! Отправлено 19 февраля 2025 года в 17:20:21 UTC Я хочу поздравить всех наших волонтеров, разработчиков и ученых из Einstein@Home. Мы официально. . .
Заполнители и расширенный набор символов в C++26
NullReferenced 09.03.2025
C++26 представляет два важных обновления: заполнители и расширенный набор символов. Заполнители (placeholders) решают давнюю проблему лаконичности кода в шаблонных выражениях и лямбда-функциях. Они. . .
Контракты в C++26
NullReferenced 09.03.2025
Контракты – это механизм, позволяющий указывать предусловия, постусловия и инварианты для функций в коде. Эта функциональность должна была стать частью C++20, но была исключена на встрече комитета. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru