Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Задачи на Visual Basic (VB).

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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

Открыть новую тему     Написать ответ в эту тему

NEOMATRIX



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору


Данный топик предназначен только для обсуждения типовых задач на Visual Basic.
Обсуждение задач на VBA (а именно, Excel, Word, Access) строго запрещено!
Пишите в соответствующих топиках.

 
Родственные топики:
  • Excel VBA - часть 1, часть 2 - все вопросы по Excel VBA туда
  • Word VBA все вопросы по Word VBA туда
  • Access все вопросы по программированию в Access туда
  • VBScript - программирование "удобняшек" на VBScript
  • QBasic - типовые задачи на QBasic
     
  • Date Time Functions In Visual Basic
  • VB6's Trig, Math, Financial, Boolean, and Random functions
  • Visual Basic 6 String Functions
  • VB6 Number System Functions (Hex, Oct, Etc)
  • VB6's DateAdd function
     
  • Functions (Visual Basic)
  • Keywords and Members by Task
  • Visual Basic Reference
     
  • Visual Basic String Manipulation Tutorials
     
  • Top 10 Visual Basic Sins

     
    Учебники:
    Visual Basic для студентов и школьников. Культин Н. (2010)
    Занимательное программирование на Visual Basic.NET. Климов А. (2005)
    Visual Basic в задачах и примерах. Сафронов (2009)
    Visual Basic 2012 на примерах. Зиборов В. (2012)

  • Всего записей: 202 | Зарегистр. 29-12-2004 | Отправлено: 19:30 16-11-2005 | Исправлено: XPerformer, 10:07 28-10-2014
    lapulechka

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Ребят, я опять со своими задачками.
    Задачка такова:  Дан массив из N целых чисел. Циклически сдвигая его элементы вправо, поместить первый из максимальных на последнее место.
     
    Я пока создала такую программку:
    Private Sub Form_Load()
    Label1 = «Размерность»
    Label2 = «Массив»
    Label1 = «Размерность»
    Label1 = «Максимальное число»
           End Sub
     
    Private Sub Command1_Click()
    Dim a() As Single
    Dim i As Integer
    Dim n As Integer
    Dim K As String
    Dim Max As Single, nMax As Integer
    Dim ListIndex As Integer
    n = Val(txtN.Text)
    ReDim a(1 To n)
    txtМассив.Text = ""
     
    Randomize Timer
    For i = 1 To n
    a(i) = Int(101 * Rnd())
    txtМассив.Text = txtМассив.Text + "" + Str(a(i))
    Next i
     
    For i = 2 To n
    If a(i) > Max Then
    Max = a(i)
    End If
    Next i
    txtMax.Text = Str(Max)
    End Sub
     
     
    А вот циклически сдвигать никак не получается. И эту фразу вообще не догоняю «первый из максимальных» (как это может быть?) Я на это забила и решила, что максимальный всё-таки один. Помогите PlZ циклически сдвинуть элементы, а то у меня хаотически сдвинутся мозги.

    Всего записей: 20 | Зарегистр. 26-03-2007 | Отправлено: 21:25 23-04-2007
    AndVGri

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    lapulechka

    Цитата:
    первый из максимальных

    Спроси у препода, что это?

    Цитата:
    Label1 = «Размерность»
    Label2 = «Массив»
    Label1 = «Размерность»
    Label1 = «Максимальное число»  

    Label1 - не жалко?

    Цитата:
    Dim a() As Single

    А почему Single - массив же целых чисел?
     

    Всего записей: 750 | Зарегистр. 14-12-2005 | Отправлено: 05:36 24-04-2007
    ROWDYEST

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    слушайте люди...
     
    я только нашел книгу... по изучению визуал басик..
    к сожалению она оказалась без диска...=(
    а  
    MICROSOFT VISUAL SUDIO.NET
     МНЕ НЕ НАЙТИ....В ИНЕТЕ...
     
    ЕСЛИ ОН ГДЕ ТО ЕСТЬ...
    ДАЙТЕ ПОЖАЛУЙСТА ССЫЛКУ...
     
    ЕСЛИ НЕТ ТО...
    (ПРОСТО СООБЩИТЕ...PLZ...)
     

    Всего записей: 6 | Зарегистр. 19-03-2007 | Отправлено: 17:23 24-04-2007
    AndVGri

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ROWDYEST
    В Warez, только это уже не VB, а VB.NET 200x

    Всего записей: 750 | Зарегистр. 14-12-2005 | Отправлено: 17:26 24-04-2007
    jONES1979



    Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    ROWDYEST на DVD к журналу Хакер в конце того года выходили Express версии. Поспрашивай у знакомых. Весят они порядка 200-300 метров. Распространяются бесплатно. Если есть возможность и желание слить - то ищи на сайте microsoft

    Всего записей: 324 | Зарегистр. 20-05-2005 | Отправлено: 19:58 24-04-2007 | Исправлено: jONES1979, 20:15 24-04-2007
    ROWDYEST

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    jONES1979
     
     
    ммм..да...в Эстонии журналов Хакер нет и не было...=(
    тем более у знакомух....ХА..
     
    на сайте микрософта находил....
    но что то это не то по моему...
     
    Microsoft Visual Web Developer 2005 Express Edition
     
     
    там вот такого добра до ку4е а для нови4ка ...(0_0)...
    ..не нашел...~~~~
     
     
    AndVGri
    спасибо...
    ща посмотрю...
     
     
    Добавлено:
    AndVGri
     
    неее.. что то не найти...
    дай ссылку...plz...

    Всего записей: 6 | Зарегистр. 19-03-2007 | Отправлено: 20:46 24-04-2007
    dneprcomp



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ROWDYEST
    Visual Basic 2005 Express Edition
    SQL Server 2005 Express Edition
    Manual Installation Instructions for Express Editions
    Visual Studio Express Editions
    .NET Framework 2.0
    Windows Installer 3.1
     
     

    Всего записей: 3920 | Зарегистр. 31-03-2002 | Отправлено: 22:19 24-04-2007 | Исправлено: dneprcomp, 22:41 24-04-2007
    ROWDYEST

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    xaxaxaxa...
    ну спассибо...

    Всего записей: 6 | Зарегистр. 19-03-2007 | Отправлено: 22:30 24-04-2007
    lapulechka

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    AndVGri
    с
    Цитата:
    первый из максимальных  
    я разобралась это например если идёт массив  
    2 3 8 5 8 7 4 8  Восьмёрка максимальное число, но оно повторяется несколько раз, а первое из максимальных это первая 8 и её надо двигать вправо в конец.
    Label3 = «Размерность»  
    Label4 = «Максимальное число»  
     
    преподша подкинула такую бодягу
     
    If a(i)> Max Then Max = a(i):k=i
    Next i
    For j = k to n
    d = a(n)
    For i = n to 1 Step -1
    a(i) = a(i-1)
    Next i
    a(1) = d
    Next j
     
    Впихивала в свою задачку - ошибки выдаёт. Меняла всё - всё равно хрючет.
     

    Всего записей: 20 | Зарегистр. 26-03-2007 | Отправлено: 22:53 24-04-2007
    AndVGri

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    lapulechka
    А ты всё правильно у неё списала?

    Цитата:
    For j = k to n

    вот это объявление цикла не верно, так как будет на один раз больше прокручивать массив, правильнее
    For j = 1 To (n - k) или For j = k + 1 To n или For j = k To n - 1 (выбирай, как нравиться )

    Цитата:
    ошибки выдаёт

    Так какие - приведи? И код в этом случае выложи, только не ленись - отформатируй, читать же не возможно.
     
     
    Добавлено:
    ROWDYEST
    Тема в Warez по Visual Studio.Net

    Всего записей: 750 | Зарегистр. 14-12-2005 | Отправлено: 04:57 25-04-2007 | Исправлено: AndVGri, 04:59 25-04-2007
    IZV

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Привет.
    Помогите пожалуйста с програмой.
     
    В заданой строке поменять местами первую букву а и первую букву б выдать сообщение если хотябы одной из них нету. как я понял строки эти нужно брать из файла.
     
     я в VB недавно, многое непонимаю. помогите если не затруднит. Заранее благодарю.

    Всего записей: 2 | Зарегистр. 24-04-2007 | Отправлено: 12:55 25-04-2007
    pila007

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Помогите решить 5 задач, очень нужно. Решать их надо на excel и VB  
    мне по учебе дали 30 задач и надо решить до конца апреля, может кто-то знает как их решать, помогите решить хоть вот эти 5, а остальные я сам решу.  
    1.Вычислить произведение положительных и суммы отрицательных элементов каждого столбца массива A(N,M)  
    2.Ввести массив A(N,M).Найти сумму элементов двух главных диагоналей.  
    3.Заполнить массив A(N) нечетными членами натурального ряда (1,3,5….) до тех пор пока их сумма не станет больше произвольного числа М. Найти произведение членов ряда и их число.  
    4.Ввести массив A(N).Задать число L.Вывести на печать исходный массив, значения первого элемента массива больше L, число элементов массива больших L  
    5.Ввести массив A(N). Преобразовать его так, чтобы значения элементов являлись суммой элемента массива и его индекса. Вывести на печать исходный и преобразованный массивы.  

    Всего записей: 24 | Зарегистр. 24-04-2007 | Отправлено: 17:36 25-04-2007
    lapulechka

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Код переписала правильно - проверила.
     
    А в свой проэкт его воткнула так:
     
    Private Sub Command1_Click()
    Dim a() As Single
    Dim i As Integer
    Dim n As Integer
    Dim k As String
    Dim Max As Single
    Dim ListIndex As Integer
    Dim j As Integer
    Dim d As Integer
     
    n = Val(txtN.Text)
    ReDim a(1 To n)
    txtМассив.Text = ""
     
    Randomize Timer
    For i = 1 To n
    a(i) = Int(101 * Rnd())
    txtМассив.Text = txtМассив.Text + "" + Str(a(i))
    Next i
     
    For i = 2 To n
    If a(i) > Max Then
    Max = a(i): k = i
    End If
    Next i
    txtMax.Text = Str(Max)
     
    For j = k To n
    d = a(n)
    For i = n To 1 Step -1
    a(i - 1) = a(i)
    Next i
    a(1) = d
    Next j
    End Sub
     
     
    Бэсик смущет фраза  
     
    a(i - 1) = a(i)
     
    Выдаёт ошибку 9 не зависимо от того заменила ли я на
    Цитата:
    For j = 1 To (n - k) или For j = k + 1 To n или For j = k To n - 1  

     
     
     
     
     
     
     
     

    Всего записей: 20 | Зарегистр. 26-03-2007 | Отправлено: 00:55 26-04-2007
    AndVGri

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    lapulechka
    Сударыня. Вы тоже будущий Ведущий Специалист в Области Права?
    Об этой ошибке

    Цитата:
    For i = n To 1 Step -1
    a(i - 1) = a(i)  

    я не писал, поскольку она, в отличии от указанной, не логическая. Достаточно нажать при ошибке кнопку "Debug"/"Отладка", чтобы посмотреть состояние переменных. Вы либо задавайте массив от 0 до n, либо внесите исправление в число, записанное после To
    Да, и чтобы значил этот код у Вас?
     txtМассив.Text = txtМассив.Text + "" + Str(a(i))
    зачем используется пустая строка ""?
     
     
    Добавлено:
    IZV

    Код:
     
    Public Function Analyse(ByVal testStr As String) As String
        Dim posA As Long, posB As String
        Dim CharA As String, CharB As String
         
        posA = InStr(1&, testStr, "а", vbTextCompare)
        If posA = 0& Then
            MsgBox "Буква А не найдена в строке: " & vbLf & testStr, vbExclamation, "Ошибка"
            Analyse = "": Exit Function
        End If
         
        posB = InStr(1&, testStr, "б", vbTextCompare)
        If posB = 0& Then
            MsgBox "Буква Б не найдена в строке: " & vbLf & testStr, vbExclamation, "Ошибка"
            Analyse = "": Exit Function
        End If
         
        CharA = Mid$(testStr, posA, 1&): CharB = Mid$(testStr, posB, 1&)
        If posA > posB Then
            Analyse = Mid$(testStr, 1&, posB - 1&) & CharA & _
                      Mid$(testStr, posB + 1&, posA - posB - 1&) & _
                      CharB & Mid$(testStr, posA + 1&)
        Else
            Analyse = Mid$(testStr, 1&, posA - 1&) & CharB & _
                      Mid$(testStr, posA + 1&, posB - posA - 1&) & _
                      CharA & Mid$(testStr, posB + 1&)
        End If
    End Function
     

    Всего записей: 750 | Зарегистр. 14-12-2005 | Отправлено: 05:10 26-04-2007 | Исправлено: AndVGri, 05:12 26-04-2007
    pila007

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Покажите хоть одну задачу как решать
    1.Вычислить произведение положительных и суммы отрицательных элементов каждого столбца массива A(N,M)    
    2.Ввести массив A(N,M).Найти сумму элементов двух главных диагоналей.    
    3.Заполнить массив A(N) нечетными членами натурального ряда (1,3,5….) до тех пор пока их сумма не станет больше произвольного числа М. Найти произведение членов ряда и их число.    
    4.Ввести массив A(N).Задать число L.Вывести на печать исходный массив, значения первого элемента массива больше L, число элементов массива больших L    
    5.Ввести массив A(N). Преобразовать его так, чтобы значения элементов являлись суммой элемента массива и его индекса. Вывести на печать исходный и преобразованный массивы.  

    Всего записей: 24 | Зарегистр. 24-04-2007 | Отправлено: 15:13 26-04-2007
    IZV

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    AndVGri огромное спасибо!!!. как я понял из когда к переменной teststr млжно присвоить значение текстового поля (к примеру  testStr = T1.Text) а какую переменую можно присвоить к второму текстовому полю чтобы вывелся искомый результат?
     
     
    Добавлено:
    ой все понял  
    итоговый код будет выглядеть  
    Public Function Analyse(ByVal testStr As String) As String
        Dim posA As Long, posB As String
        Dim CharA As String, CharB As String
         testStr = T1.Text
        posA = InStr(1&, testStr, "А", vbTextCompare)
        If posA = 0& Then
            MsgBox "Буква а не найдена в строке " & vbLf & testStr, vbExclamation, "ошибка"
            Analyse = "": Exit Function
        End If
         
        posB = InStr(1&, testStr, "Б", vbTextCompare)
        If posB = 0& Then
            MsgBox "Буква б не найдена в строке: " & vbLf & testStr, vbExclamation, "Ошибка"
            Analyse = "": Exit Function
        End If
         
        CharA = Mid$(testStr, posA, 1&): CharB = Mid$(testStr, posB, 1&)
        If posA > posB Then
          Analyse = Mid$(testStr, 1&, posB - 1&) & CharA & _
                      Mid$(testStr, posB + 1&, posA - posB - 1&) & _
                      CharB & Mid$(testStr, posA + 1&)
                Else
            Analyse = Mid$(testStr, 1&, posA - 1&) & CharB & _
                      Mid$(testStr, posA + 1&, posB - posA - 1&) & _
                      CharA & Mid$(testStr, posB + 1&)
     
        End If
        T2.Text = Analyse
        End Function
    Private Sub Command1_Click()
    Call Analyse(ByVal testStr)
    End Sub
     
    огромное спасибо AndVGri
     

    Всего записей: 2 | Зарегистр. 24-04-2007 | Отправлено: 15:30 26-04-2007
    AndVGri

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    pila007
    Адын, одын, савсэм адын
    Подробнее...
     
    Добавлено:
    IZV
    Бред, не меняй функцию

    Код:
     
    Private Sub Command1_Click()
        T2.Text = Analyse(T1.Text)
    End Sub  
     


    Всего записей: 750 | Зарегистр. 14-12-2005 | Отправлено: 15:43 26-04-2007
    pila007

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    AndVGri
    спасибо, а объяснить сможешь?, хоть кратенько

    Всего записей: 24 | Зарегистр. 24-04-2007 | Отправлено: 22:37 26-04-2007
    AndVGri

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    pila007
    Am i teacher? I'm not
    Чего тут, вызываешь процедуру OddNumberAnalyse, передав ей, свой одномерный массив A(N) и своё произвольное число M

    Код:
     
    OddNumberAnalyse A, M
     

    получаешь свой результат в виде сообщения

    Всего записей: 750 | Зарегистр. 14-12-2005 | Отправлено: 02:51 27-04-2007
    pila007

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    AndVGri
    а попроще этот пример можно сделать?
    и можешь еще одын(пятый) пример тоже показать

    Всего записей: 24 | Зарегистр. 24-04-2007 | Отправлено: 13:59 27-04-2007
    Открыть новую тему     Написать ответ в эту тему

    Страницы: 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

    Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Задачи на Visual Basic (VB).


    Реклама на форуме Ru.Board.

    Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
    Modified by Ru.B0ard
    © Ru.B0ard 2000-2024

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru