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

Отрицательные числа и буквы

24.11.2016, 22:31. Показов 1630. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте! Я новичок пока что в VB, поэтому туплю пока что. Задача такая: дан текстбокс, в котором расположен одномерный массив чисел. Строковых данных там не должно быть, иначе будет выдавать ошибку. При нажатии на кнопку числа из этого текстбокса перемножаются с числами из другого и получается двумерный массив. Нужно сделать так, чтобы кнопка работала и с отрицательными числами. А у меня оно если и считает отрицательные числа, то не выдает ошибку, если в поле буквы. Если же видит буквы и выдает ошибку, то не считает цифры с минусом, тк минус воспринимает как строковые данные. Помогите, буду очень признательна!
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
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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
Dim A() As Long
    Dim B() As Long
    Dim C() As Long
    Dim i, j, f, k, minus, X, Y As Integer
    Dim Str, Tmp, Text, info, n, p As String
    p = "-"
    p = CVar(Text4.Text)
    IsNumeric (Text4.Text + p)
        
    If IsNumeric(Text4.Text) = False And Not Text4.Text = Text4.Text + p Then
    MsgBox "ââåäåíû", 64, "áóêâû"
    End If
        
    If Text1.Text = "" And Text4.Text = "" Then
        MsgBox "Íóæíî ââåñòè ðàâíîå êîë-âî ÷èñåë â ïîëå 1 è ïîëå 2", vbCritical, "Íåäîñòàòî÷íî äàííûõ"
    End If
    If IsNumeric(Text1.Text) = False And IsNumeric(Text4.Text) = False Then
        MsgBox "Îøèáêà äàííûõ â ïîëÿõ 1 è 2", 64, "Èñïðàâüòå îøèáêó"
    End If
    If IsNumeric(Text1.Text) = False Then
        MsgBox "Îøèáêà äàííûõ â ïîëå 1", 64, "Íàéäåíà îøèáêà"
    End If
    If Text4.Text = "" Then
    MsgBox "Íóæíî ââåñòè ÷èñëà â ïîëå 2", 48, "Íåäîñòàòî÷íî äàííûõ"
    End If
    
 
 
    If p Like Text4.Text Then
    
 
        Str = ""
        Tmp = ""
        Text = Text1.Text + " "
        k = 1
        minus = 0
        For i = 1 To Len(Text)
            Str = Mid(Text, i, 1)
            If Str = "-" Then
                minus = 1
            End If
            If IsNumeric(Str) Then
                Tmp = Tmp + Str
                k = 0
            ElseIf IsNumeric(Str) = 0 And k = 0 And Str <> " " Then
                If Str <> "-" Then
                    info = info + Str
                End If
            ElseIf (Str = " ") And (k = 0) Then
                ReDim Preserve A(j) As Long
                A(j) = CLng(Tmp)
                If minus = 1 Then
                    A(j) = A(j) - A(j) - A(j)
                End If
                j = j + 1
                k = 1
                minus = 0
                Str = ""
                Tmp = ""
            End If
        Next i
        
 
        j = j - 1
        
        Str = ""
        Tmp = ""
        Text = Text4.Text + " "
        k = 1
        minus = 0
        For i = 1 To Len(Text)
            Str = Mid(Text, i, 1)
            If Str = "-" Then
                minus = 1
            End If
            If IsNumeric(Str) Then
                Tmp = Tmp + Str
                k = 0
            ElseIf IsNumeric(Str) = 0 And k = 0 And Str <> " " Then
                If Str <> "-" Then
                    info = info + Str
                End If
            ElseIf (Str = " ") And k = 0 Then
                ReDim Preserve B(f) As Long
                B(f) = CLng(Tmp)
                If minus = 1 Then
                B(f) = B(f) - B(f) - B(f)
                End If
                f = f + 1
                k = 1
                minus = 0
                Str = ""
                Tmp = ""
            End If
        Next i
 
        f = f - 1
 
        ReDim Preserve C(j, f) As Long
 If j = f Then
 
        For i = 0 To j
            For k = 0 To f
                C(X, Y) = A(i) + B(k) * A(k) + B(i)
                Y = Y + 1
 
 
            Next k
            X = X + 1
            Y = 0
        Next i
        X = 0
        Y = 0
        Text5.Text = ""
        
        For i = 0 To j
            For k = 0 To f
                Text5.Text = Text5.Text + CStr(C(X, Y)) + " "
                Y = Y + 1
            Next k
            Text5.Text = Text5.Text & vbNewLine
            X = X + 1
            Y = 0
        Next i
 
Else
    MsgBox " ïîëÿõ 1 è 2 ââåäåíî íåðàâíîå êîëè÷åñòâî ÷èñåë", 64, "Çàìå÷àíèå"
End If
 
ElseIf IsNumeric(Text4.Text) = False Then
MsgBox "", 64, ""
End If
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
24.11.2016, 22:31
Ответы с готовыми решениями:

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

В массиве заменить отрицательные числа на положительные
60. В массиве 20 случайных чисел от -20 до +20 заменить отрицательные числа на положительные

Заменить отрицательные числа массива нулями
Требуется: -создать массив из некоторого числа положительных и отрицательных чисел. (сделано) -заменить отрицательные числа массива...

1
Регистрация: 23.10.2013
Сообщений: 5,076
Записей в блоге: 8
03.02.2017, 10:31
Cereal Killer
В вашем коде куча ошибок
1. Вы ввели переменную Str, однако есть функция Str()
и такие вещи не следует делать
2. Знак минус вы ввели в свою строковую переменную Str (!!)
примечание: если быть точным она у вас имеет тип Variant.
(как и многие другие переменные)
3. Насколько мне известно знак минус ставится перед числом,
а выражение типа "7-" как то сложно назвать числом (это ошибка)
4. Строку 29 я комментировать не буду...
5. Меня очень удивило, что вы из знака минус постарались
получить число. Интересно "-" какое это число?
...
Не расстраивайтесь, годков через 50 вы Visual Basic
освоите...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
03.02.2017, 10:31
Помогаю со студенческими работами здесь

Рассортировать положительные числа по убыванию, а отрицательные по возрастанию
Дан массив из 15 чисел. Рассортировать положительные числа по убыванию, а отрицательные по возрастанию. я ваще не знаю как((

Проверить, чередуются ли в массиве положительные и отрицательные числа (Pascal -> VB)
var A: array of integer; N, i: byte; begin writeln(' Массив какого размера вы хотите задать? '); write(' N = '); ...

Вывести на экран все отрицательные четные числа кратные 5
Вывести на экран все отрицательные четные числа кратные 5 из диапозона от A до B (A=&lt;B).

Вывести на экран сначала положительные, затем отрицательные числа массива
Короче вот задание: &quot;Массив состоит из 12 целых положительных и отрицательных чисел, каждое из которых находится в интервале от 2 до 12....

Вывести номера столбцов двумерного массива содержащих только отрицательные числа
Уважаемые форумчане, подскажите пожалуйста как это сделать, массив задан, а вот как вывести только номера столбцов в которых присутствуют...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Модульная разработка через 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