Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / что тут не правильно / 7 сообщений из 7, страница 1 из 1
30.11.2013, 01:36
    #38484218
tortik2
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
что тут не правильно
почему пишет
"overFlowException не обработано
Переполнение в результате выполнения арифметической операции"



Код: vbnet
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.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
Option Strict On
Option Explicit On
Imports System.Math
Public Class Form1
    'Функция ввода исходн. данных из  TextBox
    Function vvod(ByVal T As TextBox) As Double
        Return Val(T.Text)
    End Function

    'Процедура форматированного вывода результата  в TextBox
    Sub vivod(ByVal Z As Double, ByVal T As TextBox)
        T.Text = Format(Z, "00.0000")
    End Sub

    'Процедура форматированного вывода результата  в ListBox
    Sub vivodList(ByVal Z As Double, ByVal LB As ListBox)
        LB.Items.Add(Format(Z, "00.0000"))
    End Sub

    'Процедура вывода целого результата в TextBox
    Sub vivodint(ByVal Z As Integer, ByVal T As TextBox)
        T.Text = CStr(Z)
    End Sub
    Public Function Fun(ByVal x As Double) As Double
        Return 2 ^ (-x) * E ^ x
    End Function
    Public Sub RegCikl(ByVal a As Double, ByVal b As Double, _
                       ByVal h As Double, _
                       ByRef max As Double)
        Dim i As Integer, n As Integer, y As Double, x As Double
        n = CInt((b - a) / h + 1)
        vivodint(n, TextBox6)
        max = Double.MinValue
        For i = 1 To n
            y = Fun(x)
            If y > max Then
                max = y
            End If
            vivodList(x, ListBox1) : vivodList(y, ListBox2)
            x = x + h
        Next
    End Sub
    Private Sub Button1_Click(ByVal sender As System.Object, _
               ByVal e As System.EventArgs) Handles Button1.Click

        Dim a As Double, b As Double, h As Double

        Dim mm1 As Double
        a = vvod(TextBox4)
        b = vvod(TextBox5)
        h = vvod(TextBox6)
        RegCikl(a, b, h, mm1)
        vivod(mm1, TextBox9)

    End Sub
    Private Sub Button2_Click(ByVal sender As System.Object, _
                   ByVal e As System.EventArgs) Handles Button2.Click
        End
    End Sub

End Class



помогите решить проблему.
Модератор: Учимся использовать тэги оформления кода - FAQ
...
Рейтинг: 0 / 0
30.11.2013, 01:40
    #38484220
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
что тут не правильно
tortik2что тут не правильно
1) неправильно выбрано название топика ПРАВИЛА ФОРУМА. Прочтите перед тем как задавать вопрос!
2) не используются теги для оформления кода FAQ
3) неправильно выбран форум ПРАВИЛА ФОРУМА. Прочтите перед тем как задавать вопрос!

Коллег предупреждаю - студент-халявщик

Модератор: Тема перенесена из форума "Visual Basic".
...
Рейтинг: 0 / 0
30.11.2013, 01:54
    #38484224
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
что тут не правильно
tortik2почему пишетпотому что при делении на ноль получается бесконечность
...
Рейтинг: 0 / 0
30.11.2013, 19:08
    #38484583
cynep kopoBka
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
что тут не правильно
Вы бы хоть указали, в каком месте ругань начинается.
На всякий случай, отмечу, что такое же исключение у меня вываливалось, когда я на developerfusion конвертнул исходник модуля из С# в VB.NET. Оказалось, что у этого конвертера бардак с типами данных: он их тупо не меняет, несмотря на то, что одноименные типы могут в этих языках отличаться.
Получилось, что у меня в переменную типа Integer стало ломиться значение большее, чем переменная могла вместить. Вылечил, в частности, этот случай ручной заменой Integer на UInt32 . Может, и вы поскупились, объявляя переменные? =)

И радикальный способ избавления от индусских программистов: " on error resume next " избавит от навязчивых ошибок!

ЗЫ: " Try ... Catch ... EndT Try " - тоже полезная штука
...
Рейтинг: 0 / 0
30.11.2013, 19:11
    #38484587
cynep kopoBka
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
что тут не правильно
Shocker.ProКоллег предупреждаю - студент-халявщик


Эххх... Поздно заметил. А то еще бы чего-нибудь про " on error resume next " насоветовал=)
...
Рейтинг: 0 / 0
30.11.2013, 20:17
    #38484628
tortik2
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
что тут не правильно
cynep kopoBkaВы бы хоть указали, в каком месте ругань начинается.

[srq vba] n = CInt((b - a) / h + 1) [src vba]
если ты это имел ввиду. там если любые числа подставлять, то начинает ошибки выдавать.
...
Рейтинг: 0 / 0
30.11.2013, 21:33
    #38484655
cynep kopoBka
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
что тут не правильно
tortik2cynep kopoBkaВы бы хоть указали, в каком месте ругань начинается.

[srq vba] n = CInt((b - a) / h + 1) [src vba]
если ты это имел ввиду. там если любые числа подставлять, то начинает ошибки выдавать.
Ну, так и смотрите на типы переменных, которыми оперируете. Все очень просто.

Data Type Summary (Visual Basic)
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / что тут не правильно / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]