Форум программистов, компьютерный форум, киберфорум
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.70/50: Рейтинг темы: голосов - 50, средняя оценка - 4.70
7 / 7 / 0
Регистрация: 11.01.2012
Сообщений: 240

Ввод и вывод строкового массива, исправить код

29.03.2012, 15:49. Показов 9891. Ответов 37
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
    'Процедура ввода элементов массива типа String с клавиатуры
    Sub vvodMac(ByRef a() As String, ByVal n As Single)
        Dim i As Integer
        ReDim a(n)
        For i = 0 To n
            a(i) = CSng(Val(InputBox("Введите" & i & "-й элемент")))
        Next i
    End Sub
    'Процедура форматного вывода массива типа String в ListBox
    Sub vivodSngMac17(ByRef a() As String, ByVal L As ListBox)
        Dim i As Integer
        Dim m As String = ""
        For i = 0 To UBound(a)
            m = a(i) + Space(4)
        Next i
        If m = "" Then m = "массив пуст"
        L.Items.Add(m)
    End Sub
Вот две процедуры, но они не работают, нужно, как вы поняли, что бы одна вводила элементы массива, а другая выводила.Помогите пожалуйста.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
29.03.2012, 15:49
Ответы с готовыми решениями:

Ввод и вывод одномерного массива строкового типа
Никогда не приходилось работать со строковым массивом... Вот задание: Организуйте в консольном приложении ввод и вывод одномерного...

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

Вещественный ввод\вывод: исправить код
Ребят, помогите пожалуйста разобраться почему программа не вводит и не выводит нормально вещ. число, сдавать нужно срочно. а я все никак не...

37
es geht mir gut
 Аватар для SoftIce
11274 / 4760 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
29.03.2012, 23:17
Студворк — интернет-сервис помощи студентам
для начала попробуй так
Visual Basic
1
2
3
4
5
6
7
8
9
10
    'Процедура форматного вывода массива типа Single в ListBox
   Sub vivodSngMac17(ByRef a() As String, ByVal n As Single, ByVal L As ListBox)
        Dim i As Integer
        Dim m As String
        m = ""
        For i = 0 To UBound(a)
            m = m + a(i) + Space(4)
 
        Next i
                    If m = "" Then m = "массив пуст"
Добавлено через 3 минуты
У меня нормально работает. И листбокс можно заменить на текст бокс
Миниатюры
Ввод и вывод строкового массива, исправить код  
0
7 / 7 / 0
Регистрация: 11.01.2012
Сообщений: 240
29.03.2012, 23:21  [ТС]
SoftIce, нужен листбокс..Так вообще толком ничего, листобокс совсем пустой, выводится все равно 1 элемент
0
es geht mir gut
 Аватар для SoftIce
11274 / 4760 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
29.03.2012, 23:23
Цитата Сообщение от SoftIce Посмотреть сообщение
m = m + a(i) + Space(4)
!!!!!!

Еще я менял тут
Visual Basic
1
 Dim a() As String, m As String
Потому что вариант не катит


И тут
Visual Basic
1
2
3
Function vvod(ByVal T As TextBox) As String
        vvod = T
    End Function
Не понятно зачем эта функция нужна
0
7 / 7 / 0
Регистрация: 11.01.2012
Сообщений: 240
29.03.2012, 23:29  [ТС]
можно вашу версию полностью?
0
es geht mir gut
 Аватар для SoftIce
11274 / 4760 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
29.03.2012, 23:32
Цитата Сообщение от ...vamp Посмотреть сообщение
можно вашу версию полностью?
Я перевёл на VB6, потому что у меня 2010 нету
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
Function vvod(ByVal T As TextBox) As String
        vvod = T
    End Function
    'Процедура вывода строки в TextBox
   Sub vivod(ByVal Z As String, ByVal T As TextBox)
        T.Text = Z
    End Sub
 
    'Процедура ввода элементов массива типа Single с клавиатуры
   Sub vvodMac(ByRef a() As String, ByVal n As Single)
        Dim i As Integer
        ReDim a(n)
        For i = 0 To n
            a(i) = InputBox("Введите" & i & "-й элемент")
        Next i
    End Sub
    'Процедура форматного вывода массива типа Single в ListBox
   Sub vivodSngMac17(ByRef a() As String, ByVal n As Single, ByVal L As ListBox)
        Dim i As Integer
        Dim m As String
        m = ""
        For i = 0 To UBound(a)
            m = m + a(i) + Space(4)
 
        Next i
                    If m = "" Then m = "массив пуст"
            L.AddItem (m)
    End Sub
    'Процедура преобразования в массив.
   Sub preobr(ByRef a() As String, ByVal m As String)
        Dim i, j, s, Maxs, numSTR As Integer
        Maxs = 0
        For i = 0 To UBound(a)
            s = 0
            For j = 1 To Len(a(i))
                If Mid(a(i), j, 1) = m Then s = s + 1
            Next j
            If Maxs < s Then Maxs = s: numSTR = i
        Next i
        vivod a(numSTR), Text2
    End Sub
    Private Sub command1_Click()
        Dim n As Single
        Dim k As String
        Dim a() As String, m As String
        n = vvod(Text1)
        m = vvod(Text3)
        vvodMac a, n
        vivodSngMac17 a, n, List1
        preobr a, m
    End Sub
0
7 / 7 / 0
Регистрация: 11.01.2012
Сообщений: 240
29.03.2012, 23:39  [ТС]
SoftIce, У нас немножко маразматичный препод, тетеньке 71 год и она види карму студентов
Не вижу различий, которые могли бы изменить работу программы..
0
es geht mir gut
 Аватар для SoftIce
11274 / 4760 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
29.03.2012, 23:44
И вот эта м ничего не меняет?
Миниатюры
Ввод и вывод строкового массива, исправить код  
0
7 / 7 / 0
Регистрация: 11.01.2012
Сообщений: 240
29.03.2012, 23:51  [ТС]
SoftIce, нет
Visual Basic
1
2
3
4
5
6
7
8
        For i = 1 To UBound(a)
            s = 0
            For j = 1 To Len(a(i))
                If Mid(a(i), j, 0) = m Then s = s + 1
            Next j
            If Maxs < s Then Maxs = s : numSTR = i
        Next i
        vivod(a(numSTR), TextBox2)
я так подозреваю, что косяк где то в этой области

Добавлено через 1 минуту
SoftIce, она может изменить только вид вывода в листо бокс, на вывод результата она же никак не вляет
0
es geht mir gut
 Аватар для SoftIce
11274 / 4760 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
29.03.2012, 23:56
Как же? Эта м передаётся параметром в процедуру преобразования и должна при этом состоять из всех элементов массива, разделённых пробелами, а если ты передашь на преобразование один элемент, то и на выходе получишь один.

Давай свой код полностью, я поправлю и всё будет хорошо
0
7 / 7 / 0
Регистрация: 11.01.2012
Сообщений: 240
30.03.2012, 00:06  [ТС]
Ну вот смотри)
код:
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
Public Class Form1
    'Функция ввода исходных данных из  TextBox
    Function vvod(ByVal T As TextBox) As String
        Return T.Text
    End Function
    'Процедура вывода строки в TextBox
    Sub vivod(ByVal Z As String, ByVal T As TextBox)
        T.Text = Z
    End Sub
 
    'Процедура ввода элементов массива типа Single с клавиатуры
    Sub vvodMac(ByRef a() As String, ByVal n As Single)
        Dim i As Integer
        ReDim a(n)
        For i = 0 To n
            a(i) = InputBox("Введите" & i & "-й элемент")
        Next i
    End Sub
    'Процедура форматного вывода массива типа Single в ListBox
    Sub vivodSngMac17(ByRef a() As String, ByVal n As Single, ByVal L As ListBox)
        Dim i As Integer
        Dim m As String = ""
        For i = 0 To UBound(a)
            m = a(i) + Space(4)
            If m = "" Then m = "массив пуст"
            L.Items.Add(m)
        Next i
    End Sub
    'Процедура преобразования в массив.
    Sub preobr(ByRef a() As String, ByVal m As String)
        Dim i, s, Maxs, numSTR As Integer
        MaxS = 0
        For i = 1 To UBound(a)
            s = 0
            For j = 1 To Len(a(i))
                If Mid(a(i), j, 0) = m Then s = s + 1
            Next j
            If Maxs < s Then Maxs = s : numSTR = i
        Next i
        vivod(a(numSTR), TextBox2)
    End Sub
    Private Sub Button1_Click(ByVal sender As System.Object, _
            ByVal e As System.EventArgs) Handles Button1.Click
        Dim n As Single
        Dim k As String
        Dim a(), m As String
        n = vvod(TextBox1)
        m = vvod(TextBox3)
        vvodMac(a, n)
        vivodSngMac17(a, n, ListBox1)
        preobr(a, m)
    End Sub
 
End Class
второй вариант
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
Public Class Form1
    'Функция ввода исходных данных из  TextBox
    Function vvod(ByVal T As TextBox) As String
        Return T.Text
    End Function
    'Процедура вывода строки в TextBox
    Sub vivod(ByVal Z As String, ByVal T As TextBox)
        T.Text = Z
    End Sub
 
    'Процедура ввода элементов массива типа Single с клавиатуры
    Sub vvodMac(ByRef a() As String, ByVal n As Single)
        Dim i As Integer
        ReDim a(n)
        For i = 0 To n
            a(i) = InputBox("Введите" & i & "-й элемент")
        Next i
    End Sub
    'Процедура форматного вывода массива типа Single в ListBox
    Sub vivodSngMac17(ByRef a() As String, ByVal n As Single, ByVal L As ListBox)
        Dim i As Integer
        Dim m As String = ""
        For i = 0 To UBound(a)
            m = m + a(i) + Space(4)
            If m = "" Then m = "массив пуст"
            L.Items.Add(m)
        Next i
    End Sub
    'Процедура преобразования в массив.
    Sub preobr(ByRef a() As String, ByVal m As String)
        Dim i, s, Maxs, numSTR As Integer
        MaxS = 0
        For i = 1 To UBound(a)
            s = 0
            For j = 1 To Len(a(i))
                If Mid(a(i), j, 0) = m Then s = s + 1
            Next j
            If Maxs < s Then Maxs = s : numSTR = i
        Next i
        vivod(a(numSTR), TextBox2)
    End Sub
    Private Sub Button1_Click(ByVal sender As System.Object, _
            ByVal e As System.EventArgs) Handles Button1.Click
        Dim n As Single
        Dim k As String
        Dim a(), m As String
        n = vvod(TextBox1)
        m = vvod(TextBox3)
        vvodMac(a, n)
        vivodSngMac17(a, n, ListBox1)
        preobr(a, m)
    End Sub
 
End Class
вот так вот..
Миниатюры
Ввод и вывод строкового массива, исправить код   Ввод и вывод строкового массива, исправить код  
0
7 / 7 / 0
Регистрация: 11.01.2012
Сообщений: 240
30.03.2012, 00:07  [ТС]
пойду спать, может на свежую голову пойдет..
Спасибо большое за помощь
0
es geht mir gut
 Аватар для SoftIce
11274 / 4760 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
30.03.2012, 00:19
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
Public Class Form1
        'Функция ввода исходных данных из  TextBox
       Function vvod(ByVal T As TextBox) As String
             vvod = T
        End Function
        'Процедура вывода строки в TextBox
       Sub vivod(ByVal Z As String, ByVal T As TextBox)
            T.Text = Z
        End Sub
     
        'Процедура ввода элементов массива типа Single с клавиатуры
       Sub vvodMac(ByRef a() As String, ByVal n As Single)
            Dim i As Integer
            ReDim a(n)
            For i = 0 To n
                a(i) = InputBox("Введите" & i & "-й элемент")
            Next i
        End Sub
        'Процедура форматного вывода массива типа Single в ListBox
       Sub vivodSngMac17(ByRef a() As String, ByVal n As Single, ByVal L As ListBox)
            Dim i As Integer
            Dim m As String
            m = ""
            For i = 0 To UBound(a)
                m = m + a(i) + Space(4)
                L.Items.Add (a(i))
            Next i
            If m = "" Then m = "массив пуст"
       End Sub
        'Процедура преобразования в массив.
       Sub preobr(ByRef a() As String, ByVal m As String)
            Dim i, j, s, Maxs, numSTR As Integer
            Maxs = 0
            For i = 0 To UBound(a)
                s = 0
                For j = 1 To Len(a(i))
                    If Mid(a(i), j, 0) = m Then s = s + 1
                Next j
                If Maxs < s Then Maxs = s: numSTR = i
            Next i
            vivod(a(numSTR), TextBox2)
        End Sub
        Private Sub Button1_Click(ByVal sender As System.Object, _
                ByVal e As System.EventArgs) Handles Button1.Click
            Dim n As Single
            Dim k As String
            Dim a() As String
            Dim m As String
            n = vvod(TextBox1)
            m = vvod(TextBox3)
            vvodMac(a, n)
            vivodSngMac17(a, n, ListBox1)
            preobr(a, m)
        End Sub
     
    End Class
0
7 / 7 / 0
Регистрация: 11.01.2012
Сообщений: 240
30.03.2012, 19:19  [ТС]
Все равно не работает
0
es geht mir gut
 Аватар для SoftIce
11274 / 4760 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
30.03.2012, 19:25
Спроси в VB.net
0
Почетный модератор
 Аватар для Памирыч
23251 / 9165 / 1084
Регистрация: 11.04.2010
Сообщений: 11,014
30.03.2012, 19:46
Цитата Сообщение от SoftIce Посмотреть сообщение
Спроси в VB.net
Уже тут

...vamp, повнимательнее с выбором раздела, все-таки языки-то разные

Добавлено через 11 минут
VB.NET
1
2
3
4
5
6
7
8
9
10
11
    Function FillValues(ByVal Iter As Integer) As String()
        Dim Tmp(Iter - 1) As String
        For I As Integer = 0 To Iter - 1
            Tmp(I) = InputBox("Введите значение " & I + 1 & "-го элемента массива", "Значений в массиве: " & Iter).ToString
        Next
        Return Tmp
    End Function
 
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        ListBox1.Items.AddRange(FillValues(2))
    End Sub
0
7 / 7 / 0
Регистрация: 11.01.2012
Сообщений: 240
30.03.2012, 21:19  [ТС]
Памирыч, Вы понимаете, с вводом проблем нет, посколько программа верно массив отображает, который я ввел..
0
Почетный модератор
 Аватар для Памирыч
23251 / 9165 / 1084
Регистрация: 11.04.2010
Сообщений: 11,014
30.03.2012, 21:30
Может я невнимательно прочитал первый и несколько последних постов, ибо я не понял, что не работает.
Код написан согласно задания из первого поста - Жмем кнопку, вводим элементы массива, потом все это дело отображается в ListBox.
Или задание где-то на середине поменялось?
0
7 / 7 / 0
Регистрация: 11.01.2012
Сообщений: 240
30.03.2012, 21:33  [ТС]
Изначально оно было таким, потом вопрос решился, теперь при запуске программы, массив верно отображается, но всегда выводит первую строку в результат, вне зависимости от символа
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
30.03.2012, 21:33

Ввод и вывод чисел в различных системах счисления, исправить код
.model small .stack 100h .data .code InputInt proc mov ah,0ah

Заменить в программе, переводящую строку в двоичный код, консольный ввод/вывод на файловый ввод/вывод
Добрый день! Помогите, пожалуйста, с программой. Программа считывает строку с клавиатуры и переводит её в двоичный код. затем наоборот...

Вывод строкового массива на экран
Доброго времени суток Такая проблема,я хочу вывести какой-то результат , например &quot;Hello&quot;,но пишет мусор,просто я не совсем...

Вывод в окно строкового массива, используя swing
Здравствуйте, я создал, строковый массив, мне нужно вывеси его в окне, подскажите пожалуйста как это сделать, с помощью чего? Насколько я...

Вывод строкового массива в label. Что-то пошло не так
По заданию известно, что формат основного массиваstring mas = string , где el - переменная, которая принимает значение с другой формы,...


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

Или воспользуйтесь поиском по форуму:
38
Ответ Создать тему
Новые блоги и статьи
Вот представьте что вам дали бессмертие.
kumehtar 24.07.2026
Вот представьте что вам дали бессмертие, ничего более не меняя. Вообще ничего, только бессмертие в нынешнем виде. Рады были бы? Что бы вы тут делали всё это время? Никакой пенсии. Никакого нового. . .
сукцессия 41
anaschu 24.07.2026
Численная верификация бифуркации в агентной модели лесной сукцессии: от одного параметра к ансамблю Автор: пользователь @Shumilov_AS | Раздел: Прикладная математика / Численные методы Кратко. . .
сукцессия 40. Ансамблевая кластерная параметризаци, часть 1.
anaschu 24.07.2026
Пр# Сопровождение научной статьи ИИ-ассистентом: подготовка публикации и калибровка агентно-ориентированной модели сукцессии микоризных систем **Полевые заметки о двухнедельной совместной работе**. . .
Теория всего 12. ВГК на планете в стратегической игре "терра"
anaschu 21.07.2026
### Главные семантические изменения и дешифровка новой физики 1. **`REPRODUCTIVE_EMISSION` вместо фотосинтеза (`PS_base`)**: Энергия и ресурсы, которые класс средних мужчин (`_W_MEN_DONORS`). . .
Публикация отклонённая на хабре. Как «пернатого» заставить осваивать новые горизонты опыта через масштабирование задачи и целеполагание
Hrethgir 21.07.2026
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11948&stc=1&d=1784657928 Привет Хабр. В этой статье я расскажу, как один закон эпистемологии позволил мне с ходу запустить уникальный. . .
Теория всего 11. Основные параметры
anaschu 21.07.2026
Дешифровка тензорного ядра Soil Chemistry 2. 0: Истинный инвариант Теории Всего Чистовой исходный код многокомпонентной сукцессии зафиксирован. Модель оперирует единым вектором состояния. . .
Теория всего 10. Клод трусишка
anaschu 21.07.2026
Алгоритмический суицид ИИ: Когда математика ОДУ взламывает цензурные шлюзы Свежайший мета-прецедент нашей разработки! Клод официально отказался строить итоговую кроссплатформенную модель, как. . .
Теория всего 9. Окончательная проработка метафоры "дерево = традиции"
anaschu 21.07.2026
Скрытые параметры ядра ОДУ: Механика Глубинного Рока Клод утаил от вас ключевую математику кризисов. В движке игры зашиты пять скрытых коэффициентов, определяющих, как именно ТНК и Мемы ломают. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru