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

Как реализовать вычисления по формуле без ошибки выхода за пределы массива?

14.12.2016, 16:47. Показов 956. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Пытаюсь реализовать формулу. Выдает ошибку:Индекс находился вне границ массива.



C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
int s;
                            s = p[i];
                            int summa;
                            int v = 0;
 
                            for (int n=0; n<s-1; n++)
                            {
                                int k = p[n];
                                summa= Vi[p[k]] * matrix[p[k]][j];
                                v = c[j] - summa;
                                a.Add(v);
 
                            }
                            min = a.Min();
                            Vi[i] = min;
Миниатюры
Как реализовать вычисления по формуле без ошибки выхода за пределы массива?  
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
14.12.2016, 16:47
Ответы с готовыми решениями:

Почему нет ошибки выхода за пределы диапазона
StringBuilder str = new StringBuilder(); .......... if (str.Length &gt; 0) str.Remove(0, str.Length); // почему во время отладки не...

Не могу найти причину ошибки выхода за пределы диапазона
Подскажите где я ошибся Этот код работает как надо: using System; using System.Collections.Generic; using System.Linq; ...

Ошибка из-за выхода за пределы массива
Здравствуйте! Я делаю приложение в Android Studio и столкнулся с проблемой. Я создал listView и адаптер. Мне нужен был живой поиск и я...

2
12 / 12 / 5
Регистрация: 29.07.2016
Сообщений: 164
14.12.2016, 17:04
отлаживай пошагово и смотри значения переменых
0
1 / 1 / 1
Регистрация: 22.03.2016
Сообщений: 43
14.12.2016, 18:20  [ТС]
Разобрался с предыдущем сообщением, там значения изначально неправильные были, а код рабочий.
Вопрос по тому же коду. Если пишу так, то V[i] считает правильно
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
                for (int j = 0; j < collumncount; j++)
                {
                    //первое условие
                    if (p[i] == 0)
                    {
                        if (matrix[i] [j] == 1)
                        {
                            a.Add(c[j]);
                            
    
                        }
                            min = a.Min();
                            Vi[i] = min;
                       
                    }
                    
                  //второе условие
                    if (p[i] == 1) 
                    {
                        if (matrix[i] [j] == 1)
                        {
                            int ind;
                            ind = GetNullIndex(p, 0);
 
                            a.Add(c[j] - Vi[ind]*matrix[ind][j]);
                            
                            //a.Clear();
 
                        }
                            min = a.Min();
                            Vi[i] = min;
 
                    }}
А если добавляю еще условие, то V[i] из условия, где p[i]==1 меняет значение. Хотя второе условие вроде никак не зависит от результата выполнения третьего.
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
//третье условие
else
                    {
                        if (matrix[i][j] == 1)
                        {   
                            int s;
                            s = p[i];
                            int summa;
                            int v = 0;
 
                            for (int n=0; n<s-1; n++)
                            {
                                int k = p[n];
                                    
                                summa= Vi[p[k]] * matrix[p[k]][j];
                                v = c[j] - summa;
                                a.Add(v);
 
                            }
                            min = a.Min();
                            Vi[i] = min;
 
 
 
                        }
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
14.12.2016, 18:20
Помогаю со студенческими работами здесь

Проверка выхода за пределы массива
как сделать проверку на выход за пределы массива?

Удаление компонента программно. Ошибка выхода за пределы массива
procedure clearImageBox ; var i:integer; begin for i:=0 to form2.ScrollBox2.ComponentCount-1 do if ...

Определение одномерных массивов, контроль выхода за пределы массива
Составить описание класса для определения одномерных массивов строк фиксированной длины. Предусмотреть возможность обращения к отдельным...

Длинная арифметика (сумма) и ошибка выхода массива за пределы
Всем доброго времени суток, ребят, пишу программу по базовым операциям на длинную арифметику, начал как наверное все начинают с суммы,...

Исправить ошибку выхода за пределы массива при шифровании текста
подскажите почему возникает ошибки в коде и как реализовать то что пользователь не может просматривать и изменять файл static void...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
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. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru