Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
0 / 0 / 0
Регистрация: 08.08.2013
Сообщений: 32

Определение максимума в списке double за период

25.07.2016, 10:48. Показов 1394. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Подскажите пожалуйста как изменить код. Нужно чтобы по прохождении периода допустим 20. Опять начинался искаться максимум за период 20. И так бесконечный цикл??? Данные за предыдущий период как бы обнулялись

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
int period = 20;
 
 
 public static IList<double> Highest(IList<double> candles, int period)
        {
            int count = candles.Count;
            double[] numArray = new double[count];
            for (int curbar = 0; curbar < count; curbar++)
                numArray[curbar] = Hig(candles, curbar, period);
            return (IList<double>)numArray;
        }
 
        public static double Hig(IList<double> candles, int curbar, int period)
        {
            double val1 = double.MinValue;
            int num = curbar - period + 1;
            if (num < 0)
                num = 0;
            for (int index = num; index <= curbar; ++index)
                val1 = Math.Max(val1, candles[index]);
            return val1;
        }
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
25.07.2016, 10:48
Ответы с готовыми решениями:

Определение максимума в списке double за период
Добрый день! Подскажите пожалуйста как изменить код чтобы когда в списке находилось максимальное значение за Period = 20, выполнение поиска...

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

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

7
Эксперт .NETАвтор FAQ
 Аватар для Storm23
10427 / 5157 / 1825
Регистрация: 11.01.2015
Сообщений: 6,226
Записей в блоге: 34
25.07.2016, 11:27
Определение максимума в списке double за период
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
        var list = GetMax(new double[] {1.2, 3.4, 5.6}, 2).ToList();
 
        ...
 
        public static IEnumerable<double> GetMax(IList<double> list, int count)
        {
            for (int i = 0; i < list.Count; i++)
                yield return GetMax(list, i, count);
        }
 
        private static double GetMax(IList<double> list, int startIndex, int count)
        {
            var res = double.MinValue;
            count = Math.Min(startIndex + count, list.Count);
 
            for (int i = startIndex; i < count; i++)
                if (res < list[i])
                    res = list[i];
 
            return res;
        }
0
0 / 0 / 0
Регистрация: 08.08.2013
Сообщений: 32
25.07.2016, 11:49  [ТС]
Пишет вот такую ошибку:

Ошибка 2 Аргумент "2": преобразование типа из "System.Collections.Generic.IEnumerable< double>" в "System.Collections.Generic.IList<double >" невозможно
0
Эксперт .NETАвтор FAQ
 Аватар для Storm23
10427 / 5157 / 1825
Регистрация: 11.01.2015
Сообщений: 6,226
Записей в блоге: 34
25.07.2016, 12:02
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
using System;
using System.Collections.Generic;
using System.Linq;
 
namespace ConsoleApplication212
{
    class Program
    {
        static void Main(string[] args)
        {
            var candles = new double[] {1.2, 3.4, 5.6};
            var result = GetMax(candles, 2).ToList();
 
            foreach (var res in result)
                Console.WriteLine(res);
            
            Console.ReadLine();
        }
 
        public static IEnumerable<double> GetMax(IList<double> list, int count)
        {
            for (int i = 0; i < list.Count; i++)
                yield return GetMax(list, i, count);
        }
 
        private static double GetMax(IList<double> list, int startIndex, int count)
        {
            var res = double.MinValue;
            count = Math.Min(startIndex + count, list.Count);
 
            for (int i = startIndex; i < count; i++)
                if (res < list[i])
                    res = list[i];
 
            return res;
        }
    }
}
0
0 / 0 / 0
Регистрация: 08.08.2013
Сообщений: 32
25.07.2016, 13:40  [ТС]
Для максимума вроде все работает. Спасибо большое!!!
Попробовал сделать тоже самое для минимума выдает ошибку:

17:39:03.11 System.ArgumentOutOfRangeException: Индекс за пределами диапазона. Индекс должен быть положительным числом, а его размер не должен превышать размер коллекции.
Имя параметра: index

а почему не пойму??? Не подскажите

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
       public static IEnumerable<double> GetMin(IList<double> list, int count)
       {
           for (int i = 0; i < list.Count; i++)
               yield return GetMin(list, i, count);
       }
 
       private static double GetMin(IList<double> list, int startIndex, int count)
       {
           var res = double.MaxValue;
           count = Math.Max(startIndex + count, list.Count);
           for (int i = startIndex; i < count; i++)
               if (res > list[i])
                   res = list[i];
 
           return res;
       }
0
Эксперт .NETАвтор FAQ
 Аватар для Storm23
10427 / 5157 / 1825
Регистрация: 11.01.2015
Сообщений: 6,226
Записей в блоге: 34
25.07.2016, 14:07
Цитата Сообщение от Вадим Юдин Посмотреть сообщение
Попробовал сделать тоже самое для минимума выдает ошибку:
17:39:03.11 System.ArgumentOutOfRangeException: Индекс за пределами диапазона. Индекс должен быть положительным числом, а его размер не должен превышать размер коллекции.
Имя параметра: index
а почему не пойму???
C#
1
count = Math.Max(startIndex + count, list.Count);
=>
C#
1
count = Math.Min(startIndex + count, list.Count);
0
0 / 0 / 0
Регистрация: 08.08.2013
Сообщений: 32
26.07.2016, 07:18  [ТС]
Извините не понял, вроде же так и написано

Добавлено через 14 часов 28 минут
Разобрался,все заработало. Спасибо большое.
Моя не внимательность проблемма
0
0 / 0 / 0
Регистрация: 08.08.2013
Сообщений: 32
27.07.2016, 11:12  [ТС]
Добрый день!
Получилось но не совсем то.
В результате максимум и минимум ищутся постоянно и постоянно меняется значение.
А нужно найти максимум минимум за период допустим 20.
То есть за период 20 на 3 элементе был найден минимум и он не меняется, а на 17 элементе найден максимум и он не меняется. Заканчивается цикл 20 и заново начинается искаться максимум и минимум.

Вот как вот так вот сделать???
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
27.07.2016, 11:12
Помогаю со студенческими работами здесь

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

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

определение точек минимума и максимума на графиках
Здравствуйте, помогите пожалуйста определить точки минимума и максимума у синей и красной линии соответственно на графике (2ой график), и...

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

Определение максимума среди значений типа х.х.х
Есть таблица, содержащая значения, например 3.2.14, 3.2.8, 3.2.1 Необходимо определить из всех максимум - по моей логике это 3.2.14, т.к....


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта 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. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru