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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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
    skek

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Нужна помощь:
    1. Иванов 8-20 КП
    2. Сидоров 8-20 КП
    1. Петров 7-23 КП
    2. Чернов 7-23 КП
    1. Васильев 9-7 ММ
    2. Патронов 9-7 ММ
     
    Как сделать так, чтобы:
    1. Иванов 8-20 КП
    2. Сидоров 8-20 КП
    3. Петров 7-23 КП
    4. Чернов 7-23 КП
    1. Васильев 9-7 ММ
    2. Патронов 9-7 ММ
     
    Может быть и такое:
    1. Иванов 8-20 КП
    2. Сидоров 8-20 КП
    1. Петров 7-23 КП
    1. Васильев 9-7 ММ
    2. Патронов 9-7 ММ
     
    А надо:
     
    1. Иванов 8-20 КП
    2. Сидоров 8-20 КП
    3. Петров 7-23 КП
    4.  
    1. Васильев 9-7 ММ
    2. Патронов 9-7 ММ

    Всего записей: 1 | Зарегистр. 07-12-2006 | Отправлено: 17:10 07-12-2006
    cristoff

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Ребята, доброго времени суток! Подскажите, как начинающему осваивать ВБ 6.0, как решить ИНАЧЕ такую простенькую задачу: разработать проект, в котором вводится название города-юбиляра, год его основания, текущий год. После нажатия командной кнопки должно выйти поздравление :"Поздравляем жителей города Н с Х-летием!"
    Я решаю ее так:
     
    Dim t As Integer
    Dim m As Integer
    Dim a As String
    a = Text1.Text
    t = Val(Text2.Text)
    m = Val(Text3.Text)
    Text5.Text = m - t
    Text4.Text = " Поздравляем жителей города " + a  + " с " + Text5.Text + "-летием "
     
    Скажите, почему при попытке заменить "м-т" на новую переменную "Х" и вставить ее в Text4.Text , прога выдает ошибку?
    Благодарю всех, кто пояснит.
     
    Добавлено:
    в свойствах Text5.Text я поменял Invisible c True на False. Т.е. , по сути, как не вводить( соответственно, не прятать) это новое 4-е окно?(это ведь не совсем правильно(просто хитро), я думаю, автор задачи имел в виду другое решение)
     
    Добавлено:
    неужели еще никто не проснулся? Я по-прежнему жду
     
    Добавлено:
    Ау!  
     
    Добавлено:
    вот так форс-мажор _ все программисты словно сговорились
     
    Добавлено:
    дрыхнут, как сурки : )

    Всего записей: 7 | Зарегистр. 11-12-2006 | Отправлено: 02:37 16-12-2006
    dneprcomp



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    cristoff
    Цитата:
    как решить ИНАЧЕ  
    А чем сейчас не устраивает?
    Покажи полный код, выдающий ошибку, текст сообщения ошибки. И описание что в какой контрол заносится. Как можно что-либо советовать, не видя исходника?  
    На основе данной информации можно только посоветовать писать правильно и без ошибок
     
    1.Не используй  '+'. Для стрингов лучше '&'
    2.Нет свойства Invisible. Только Visible

    Всего записей: 3920 | Зарегистр. 31-03-2002 | Отправлено: 10:41 16-12-2006 | Исправлено: dneprcomp, 10:51 16-12-2006
    cristoff

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    вот код при котором возниикает ошибка № 13: несоответствие типов:
     
    Private Sub Command1_Click()
    Dim t As Integer
    Dim m As Integer
    Dim a As String
    Dim x As Integer
    a = Text1.Text
    t = Val(Text2.Text)
    m = Val(Text3.Text)
    x = m - t
    Text4.Text = " Поздравляем жителей города " + a + x + " с " + "-летием "
    End Sub
     
    Добавлено:
    я понял, что так как переменная  "а" типа стринг, а "х" - интеджер, значит их(как разные типы данных) нельзя ставить в одной строке, но как тогда сдеалть по-другому?
    за Визибл  извините - моя ошибочка... : )
     
    Добавлено:
    Ура! Я сменил "+" на & - и все заработало!  
    dneprcomp
     
    БЛАГОДАРСТВУЮ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

    Всего записей: 7 | Зарегистр. 11-12-2006 | Отправлено: 14:07 16-12-2006
    dneprcomp



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

    Цитата:
    Ура! Я сменил "+" на & - и все заработало!

    А почему? А потому, что VB пытался провести арифметическое сложение string и integer. Естественно, будет выскакивать ошибка.  
    При использовании '&' происходит неявная конверсия из integer в string. Поэтому и не выдает ошибку. Можно  использовать явную конверсию. Использование Val - пример явной конверсии. Cstr(Х)
    Цитата:
    за Визибл  извините - моя ошибочка
    Извиняться тут нечего. Надо стараться употреблять стандартные названия. А то тебя собеседник просто может не понять

    Всего записей: 3920 | Зарегистр. 31-03-2002 | Отправлено: 19:46 16-12-2006 | Исправлено: dneprcomp, 21:31 17-12-2006
    CLOPOMOR

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ДОБРОГО ВАМ ЗДРАВИЯ ДРУГИ!
     
    Помогите кто может если не внапряг с задачей
     
    1) Дана строка символов  состоящая из произвольного текста на английском языке, слова разделены пробелами . Вывести на экран порядковый номер слова минимальной длины иколичество символов в слове.
    1.1 ) В каждом слове заменить первую букву на прописную
     
    Необязсутьте ежели чего запостил не так или с  ерундой воду мучу,  просто сделать надо очень...
     

    Всего записей: 7 | Зарегистр. 17-12-2006 | Отправлено: 19:14 17-12-2006
    Troitsky



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

    Цитата:
    Cstring(Х)
    CStr(X)
     
    CLOPOMOR

    Цитата:
    Помогите

    В таком виде устраивает?
    Код:
    Option Explicit
     
    Private Sub Main()
      Dim strPh As String
      strPh = "каждый охотник желает знать где сидит фазан"
      SolveStr strPh
      MsgBox strPh
    End Sub
     
    Sub SolveStr(ByRef strPhrase As String)
      Dim intMin As Integer
      Dim intNum As Integer
      Dim strMin As String
       
      Dim intPos As Integer
      Dim strResult As String
      Dim j As Integer
      Dim i As Integer
       
      Mid(strPhrase, 1, 1) = UCase(Mid(strPhrase, 1, 1))
      intMin = 32767
      i = 0
      j = 1
       
      intPos = InStr(j, strPhrase, " ")
       
      Do Until intPos = 0
        i = i + 1
         
        Mid(strPhrase, intPos + 1, 1) = UCase(Mid(strPhrase, intPos + 1, 1))
         
        strResult = Mid(strPhrase, j, intPos - j)
        If Len(strResult) < intMin Then
          intMin = Len(strResult)
          intNum = i
          strMin = strResult
        End If
         
        j = intPos + 1
        intPos = InStr(j, strPhrase, " ")
      Loop
       
      MsgBox "Во фразе """ & strPhrase & """ минимальную длину (" & CStr(intMin) & ") имеет " & CStr(intNum) & "-е слово (" & strMin & ")."
    End Sub

     


    ----------
    Мы в хорошем настроении гуляем по лесам.
    Кто обидеть нас захочет – сам получит по усам.
    Сам полу- получит по усам. Сам полу- получит по усам!

    Всего записей: 795 | Зарегистр. 13-12-2003 | Отправлено: 20:18 17-12-2006
    dneprcomp



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Troitsky
    Конечно, CStr(X)  Даже я могу ошибаться

    Всего записей: 3920 | Зарегистр. 31-03-2002 | Отправлено: 21:30 17-12-2006
    CLOPOMOR

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Troitsky  
    СПАСИБО !  То что надо

    Всего записей: 7 | Зарегистр. 17-12-2006 | Отправлено: 07:50 18-12-2006
    fedrom



    Newbie
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    помогите исправить задачки на ВБ никогда не программировал...
    есть исходник крестиков нолико на поле от 6*6 до 19*19 нужно из него сделать 128*128 и выигрыш 5 в ряд игра с компьютером пожалуйста! кто возьмётся вышлю данный исходник на mail.

    Всего записей: 14 | Зарегистр. 21-03-2006 | Отправлено: 10:44 18-12-2006
    cristoff

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

    Всего записей: 7 | Зарегистр. 11-12-2006 | Отправлено: 23:50 18-12-2006
    Aladdinych



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Есть книга Excel 2003. На листе стоит кнопка. Мне нужно по клику на ней запустить архивайию файла по заданному пути. Проблема состоит в том, что путь содержит папку, в имени которой есть пробелы. Использовать Shell для запуска архиватора нельзя, он почему-то работает не корректно. имя файла берется до первого пробела, даже если весь путь взять в кавычки. Использовать функцию API Winexec  тоже не получилось. Почему-то не работает определение внешних функций из модуля. трактует как ошибку в программе.
    Подскажите решение проблемы.




    Тебе в тему Excel VBA

    Всего записей: 322 | Зарегистр. 18-10-2005 | Отправлено: 11:57 20-12-2006 | Исправлено: ShIvADeSt, 01:39 22-12-2006
    AndronH



    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    2 Aladdinych код в студию обязательно помогу.

    Всего записей: 21 | Зарегистр. 14-12-2006 | Отправлено: 12:15 21-12-2006
    EVenom

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Драствуйте умные люди))...Мне к завтрашнему дню дали 3 задачи на VB. Но мои знания о бейсики на минимуме. Помогите кто может решить задачи!!! Заранее большое спасибо! Вот они...
    Массивы:
    Задана последовательность n-целых чисел. Определить порядковые номера тех элементов, каторые являются числами Фибоначи
    Строки:
    Имеется строка содержащяя буквы латниского алфавита и цифры. Вывести на экран длинну наибольшой последовательности цифр, идущих подряд.
    Записи:
    Распечатать фамилии тех учеников, которые не получили ни одной тройки за последнюю четверть. В каких классах учаться эти ученики? Каков средний балл??
    Жду..

    Всего записей: 11 | Зарегистр. 22-01-2006 | Отправлено: 13:18 24-12-2006
    AndronH



    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Со строками
     
    Dim strInput As String
    Dim X As Long
    Dim Y As Long
    Dim varMaxLen As Long
    strInput = "jsdjfg45222222222222229tvuiiuv234urtf23y222222222222229tvo23y4rocy43rtvc234otyc2o5g5y76872340g85723"
    varMaxLen = 0
    For X = 1 To Len(strInput)
    Select Case Mid(strInput, X, 1)
        Case "1", "2", "3", "4", "5", "6", "7", "8", "9", "0"
            Y = Y + 1
            If Y >= varMaxLen Then varMaxLen = Y
        Case Else
            Y = 0
    End Select
    Next X
    MsgBox varMaxLen
     
    Добавлено:
    С массивом  
     
    Private Sub Command1_Click()
    N = 500 'здесь указываем пределы массива
    ReDim Y(1 To N)
    For X = 1 To N ' заполняем массив значениями
        Y(X) = X
    Next X
    For X = 1 To N 'прогоняем на вхождение в ряд Фибоначи
        If IsFibonachi(Val(Y(X))) = True Then
            Debug.Print "Элемент № " & X & "; Значение " & Val(Y(X))
        End If
    Next X
    End Sub
    Function IsFibonachi(N As Double) As Boolean
    V1 = 1
    V2 = 0
    Do Until N < V1
      Z = V2
      V2 = V2 + V1
      V1 = Z
    If V2 = N Then
        IsFibonachi = True
        Exit Function
    Else
        IsFibonachi = False
    End If
    Loop
    End Function
     
    А что за записи? это очень размытое понятие, конкретнее вопрос, как хранятся записи, их структуру.

    Всего записей: 21 | Зарегистр. 14-12-2006 | Отправлено: 09:24 25-12-2006 | Исправлено: AndronH, 11:45 25-12-2006
    EVenom

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    AndronH Огромное тебе спасибо!!! На счет записей. там должен быть в форме ввод в таблицу...какой там обьект не помню.... В таблице такие параметры как Фамилия класс и предметы...например Математика литра русский. И там вывод куда нить моно и в пиктуре бокс...тех учеников..ну там дальше понятно. И еще пожаста напиши какие обьекты должны быть в первой и второй задаче?....еще раз огромное спасибо

    Всего записей: 11 | Зарегистр. 22-01-2006 | Отправлено: 19:31 25-12-2006
    AndronH



    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    первый в любой саб или процедуру или функцию вставляй, а второй кидай в код формы, на форму кнопку по умолчанию, про записи счаз подумаю
    подумал. короче чтоб тебе выдать какойто результат, давай точные иходные данные.
    В каком формате хранится бд(форматов десятки), какой объект используется для редактирования бд (гридов тысячи от бесплатных до платных и лицензируемых), какой техникой нужно делать выборку (ADO, DAO, BDO, RDO, ...), в какой объект передавать результат(принтер, форма, грид, файл, ...)  
    В общем дай точную формулировку задачи которую перед тобой поставили. По тому как ты сформулировал к сожалению невозможно выдать решения.

    Всего записей: 21 | Зарегистр. 14-12-2006 | Отправлено: 09:38 26-12-2006 | Исправлено: AndronH, 11:06 26-12-2006
    Cassanius



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

    Народ, вот тут такая неприятность, создал в Outlook2003 правило, которое запускает данный скрипт (VBA) для сохранения сообщения в определенной папке. Все работает, только вот Outlook выдает окно с предупреждением "A program is trying to access your Address Book". Это происходит даже в том случае, если для названия сохраняемых сообщений использовать дату или просто какое-то определенное значение (к примеру: strSaveName = 1 & ".msg")
     
    Сам код:
     
    Sub SaveAsMsg(objItem As MailItem)
        ' requires reference to Microsoft Scripting Runtime
        ' \Windows\System32\Scrrun.dll
         
        Dim strSaveName As String
        Dim strFolderPath As String
           
       strFolderPath = "C:\Data\"
       ' path to target folder
       strSaveName = objItem.Subject & ".msg"
       ' name for the message
     
       objItem.SaveAs strFolderPath & strSaveName, olMSG
     
      End Sub
     
    Дайте знать если есть светлые мысли.

    Всего записей: 158 | Зарегистр. 13-11-2003 | Отправлено: 15:15 02-01-2007
    dneprcomp



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Cassanius
    Попробуй уменьшить уровень security:
    Tools-Macro-Securiry

    Всего записей: 3920 | Зарегистр. 31-03-2002 | Отправлено: 20:17 02-01-2007
    Cassanius



    Junior Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    dneprcomp
     
    пробовал, даже на минимальном выдает это окно.  
     
    Проблему можно решить поставив спец прогу ClickYes Pro или поковырявшись в глубинных настройках Outlooka  c помощью Adminpacka (Customizing the Outlook Security Features Administrative Package), но мне именно хочется решить проблему модифицировав код...

    Всего записей: 158 | Зарегистр. 13-11-2003 | Отправлено: 15:10 03-01-2007 | Исправлено: Cassanius, 15:11 03-01-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