Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 15.04.2018
Сообщений: 13
1

Устранить ошибку в коде. Массивы

13.06.2018, 19:22. Показов 647. Ответов 15
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Visual Basic
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
 Dim x() As Single, y() As Single, Msg As String, D As Single, Y1() As Single, X1() As Single
 
        Dim i, j As Integer, n As Integer, K As Single, B As Single, Sigma As Single
        Dim s
        Dim SY As Single, SX As Single, SXY As Single, SQX As Single, YSR As Single
        n = InputBox("Vvedite N")
        ReDim x(n), y(n), Y1(n), X1(n)
        SX = 0: SY = 0: SQX = 0: SXY = 0: YSR = 0
        
        For i = 1 To n
          
            x(i) = InputBox("Введите X")
            y(i) = InputBox("Введите Y")
            
            SX = SX + x(i)
            SY = SY + y(i)
             SQX = SQX + x(i) * x(i)
             SXY = SXY + x(i) * y(i)
        Next i
 
        K = (SX * SY - n * SXY) / (SX * SX - n * SQX)
        B = (SY - K * SX) / n
 
        YSR = SY / n: D = 0
        For i = 1 To n
            D = D + (YSR - y(i)) * (YSR - y(i))
        Next i
 
 
        Sigma = Sqr(D / (n - 1))
        
        For j = 1 To n
        Y1(j) = K * X1(j) + B
        Next j
Проблема в этом:

Visual Basic
1
2
3
For j = 1 To n
Y1(j) = K * X1(j) + B
Next j
"Subsctipt out of range" висит на Y1(j) и X1(j)

Заранее спасибо.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.06.2018, 19:22
Ответы с готовыми решениями:

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

Устранить ошибку в коде
Здравствуйте, в чем ошибка..? Написать программу, которая предлагает пользователю ввести число и,...

Помогите устранить ошибку в коде.
Здравствуйте не могу понять почему в программе в строке 54 выдает ошибку. У меня в классе массив...

Не могу устранить ошибку в коде
#include <stdio.h> #include <stdlib.h> #include <string.h> #define N 5 int main() { ...

15
4407 / 3531 / 843
Регистрация: 02.02.2013
Сообщений: 3,417
Записей в блоге: 2
13.06.2018, 19:53 2
Embro, примите к сведению, что если под "n" понимается число элементов, то массивы будут определяться
VB.NET
1
Dim x(n-1), y(n-1), Y1(n-1), X1(n-1)
и все циклы по массивам
VB.NET
1
2
3
For i = 0 To n-1
'…
Next
1
0 / 0 / 0
Регистрация: 15.04.2018
Сообщений: 13
13.06.2018, 20:17  [ТС] 3
ovva, спасибо, но я сейчас всячески пытался исправить код как вы сказали, но проблема осталась.
Можете вы вставить мой код уже исправленный если не сложно, я не думаю, что сам смогу это исправить после стольких попыток.
0
4407 / 3531 / 843
Регистрация: 02.02.2013
Сообщений: 3,417
Записей в блоге: 2
13.06.2018, 20:46 4
Попробуйте так
VB.NET
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
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
    Dim n As Integer
    Dim SY, SX, SXY, SQX, YSR, D, K, B, Sigma As Single
    n = InputBox("Vvedite N")
    Dim x(n - 1), y(n - 1), Y1(n - 1) As Single
    For i = 0 To n - 1
        x(i) = InputBox("Введите X")
        y(i) = InputBox("Введите Y")
        SX += x(i)
        SY += y(i)
        SQX += x(i) * x(i)
        SXY += x(i) * y(i)
    Next
    K = (SX * SY - n * SXY) / (SX * SX - n * SQX)
    B = (SY - K * SX) / n
    YSR = SY / n ': D = 0
    For i = 0 To n - 1
        D += (YSR - y(i)) * (YSR - y(i))
    Next i
    Sigma = Math.Sqrt(D / (n - 1))
    Dim s As String = ""
    For i = 0 To n - 1
        Y1(i) = K * x(i) + B
        s &= x(i) & "   " & Y1(i) & vbCrLf
    Next
    MsgBox(s)
End Sub
0
Модератор
Эксперт .NET
15466 / 10712 / 2786
Регистрация: 21.04.2018
Сообщений: 31,531
Записей в блоге: 2
14.06.2018, 00:36 5
Цитата Сообщение от Embro Посмотреть сообщение
Проблема в этом:

"Subsctipt out of range" висит на Y1(j) и X1(j)
Заранее спасибо.
Из любопытства запустил Ваш первоначальный код. Работает без каких-либо ошибок.
0
0 / 0 / 0
Регистрация: 15.04.2018
Сообщений: 13
14.06.2018, 02:52  [ТС] 6
Элд Хасп, в отладке кода запущенной программы проверил значения массивов, все они оказываются поломанные.
Скриншот до редактирования на основе ответа выше, но суть все равно в том, что проблема никак при этом не решается.
Миниатюры
Устранить ошибку в коде. Массивы  
0
0 / 0 / 0
Регистрация: 15.04.2018
Сообщений: 13
14.06.2018, 02:59  [ТС] 7
Сначала были подозрения на то, что массивы пустые, но я их как бы задаю же в самом начале.

Но тут меня один момент пугает, у меня переменная i каким то образом принимает значение 3, найти где это происходит я не могу.
VB.NET
1
2
3
4
5
6
7
8
9
For i = 1 To n
x(i) = InputBox("Введите X")
y(i) = InputBox("Введите Y")
'Массивы определяются
SX = SX + x(i)
SY = SY + y(i)
SQX = SQX + x(i) * x(i)
SXY = SXY + x(i) * y(i)
Next i 'после этих строк они становятся Subsctipt out of range
Всплывающей ошибки нет, массивы считаются, я так понял, за нули.
Массивы почему то здесь ломаются сразу. Пробовал по разному прописывать их, но ничего не меняется.
0
Модератор
Эксперт .NET
15466 / 10712 / 2786
Регистрация: 21.04.2018
Сообщений: 31,531
Записей в блоге: 2
14.06.2018, 13:10 8
Цитата Сообщение от Embro Посмотреть сообщение
Но тут меня один момент пугает, у меня переменная i каким то образом принимает значение 3, найти где это происходит я не могу
Цитата Сообщение от Embro Посмотреть сообщение
Всплывающей ошибки нет, массивы считаются, я так понял, за нули.
Массивы почему то здесь ломаются сразу. Пробовал по разному прописывать их, но ничего не меняется.
Я не знаю что Вам подсказать. Я несколько раз запускал Ваш код без изменений. Ни каких ошибок не возникает.

Может проблема в других файлах решения. Создайте новое решение и вставьте в него только этот код. Я проверял на шаблоне Windows Form.Net. Код вставлял в событие Form1_Load.

Может у Вас какой-то баг с VS? Не правильно компилирует, исполняет?
Попробуйте на другом компе. Переустановите VS.
0
0 / 0 / 0
Регистрация: 15.04.2018
Сообщений: 13
16.06.2018, 19:43  [ТС] 9
Я понял в чем проблема:
Visual Basic
1
2
3
4
5
6
7
8
9
10
For i = 0 To n - 1
x(i) = InputBox("Ââåäèòå X")
y(i) = InputBox("Ââåäèòå Y") 
SX = SX + x(i)
SY = SY + y(i) 
SQX = SQX + x(i) * x(i)
SXY = SXY + x(i) * y(i)
Label1.Caption = SQX
'Если здесь остановить цикл, то все массивы будут принимать значения. Что с ним не так, можете что то посоветовать?
Next i
0
4407 / 3531 / 843
Регистрация: 02.02.2013
Сообщений: 3,417
Записей в блоге: 2
16.06.2018, 20:09 10
Embro, вы случайно не ошиблись разделом. Здесь VB.NET, а вы как мне кажется, используете VB.
Visual Basic
1
Label1.Caption = SQX
В NET у Label нет свойства Caption.
Если все же речь о VB.NET, то выше я привел вполне рабочий код. Посмотрите.
0
0 / 0 / 0
Регистрация: 15.04.2018
Сообщений: 13
16.06.2018, 21:19  [ТС] 11
ovva, я его проверял, выдает та же ошибка.

Visual Basic
1
2
3
4
5
6
7
8
9
For i = 0 To n - 1
x(i) = InputBox("Ââåäèòå X")
y(i) = InputBox("Ââåäèòå Y") 
SX = SX + x(i)
SY = SY + y(i) 
SQX = SQX + x(i) * x(i)
SXY = SXY + x(i) * y(i)
'Проблема начинается на втором круге.
Next i
Может для каждого действия свой отдельный цикл сделать? Если все вместе ломается
0
4407 / 3531 / 843
Регистрация: 02.02.2013
Сообщений: 3,417
Записей в блоге: 2
16.06.2018, 22:42 12
Цитата Сообщение от Embro Посмотреть сообщение
я его проверял, выдает та же ошибка
Код полностью рабочий. Выложите ваш проект целиком.
0
0 / 0 / 0
Регистрация: 15.04.2018
Сообщений: 13
17.06.2018, 16:08  [ТС] 13
ovva, вот архив
Вложения
Тип файла: zip 123.zip (3.5 Кб, 3 просмотров)
0
4407 / 3531 / 843
Регистрация: 02.02.2013
Сообщений: 3,417
Записей в блоге: 2
17.06.2018, 16:52 14
Цитата Сообщение от ovva Посмотреть сообщение
Embro, вы случайно не ошиблись разделом. Здесь VB.NET, а вы как мне кажется, используете VB.
Я вас об этом уже спрашивал. Ваш проект это проект на VB (Visual Basic), а в этом разделе форума обсуждаются проекты на VB.NET. А это не одно и то же.
Раздел VB см. https://www.cyberforum.ru/visual-basic/
0
0 / 0 / 0
Регистрация: 15.04.2018
Сообщений: 13
17.06.2018, 16:54  [ТС] 15
Тогда прошу прощения. Просто когда там я эту тему создал, ее перенесли сюда.
0
Yury Komar
17.06.2018, 18:35     Устранить ошибку в коде. Массивы
  #16

Не по теме:

разобрались. переезжаем в раздел Visual Basic

0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.06.2018, 18:35

Устранить в коде ошибку деления на ноль
Вот такой код программы.. и вылазит ошибка о делении на 0. Помогите пожалуйста найти где это...

Найти и устранить ошибку в коде программы, возникающую при сортировке самодельного списка
Доброго времени суток! Сделал сортировку, при отладке видно, что он сортирует, но в конце выбивает...

Массивы (найти ошибку в коде)
При компилировании программы (это не полный код) пишет что b-должно быть константное выражение...

Массивы (найти ошибку в коде)
В чем проблема? #include <iostream> using namespace std; int main() { int a; cin >> a;...


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

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru