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

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



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Troitsky
    dneprcomp
    Огромное вам спасибо, за то что мне помогаете.

    Всего записей: 202 | Зарегистр. 29-12-2004 | Отправлено: 23:55 09-12-2005
    dneprcomp



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    NEOMATRIX
    Расскажешь как сдал. Будут вопросы, заходи    

    Всего записей: 3920 | Зарегистр. 31-03-2002 | Отправлено: 03:55 10-12-2005
    Fil75



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Подскажите как в VB6 сворачивать программу в трей - причем чтобы она не видна была в Таскбаре

    Всего записей: 64 | Зарегистр. 14-02-2005 | Отправлено: 20:55 10-12-2005
    dneprcomp



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Fil75
    Писал и использовал давно, т.ч. ....
    Создаешь модуль с именем systray. В него помещаешь следующее
    Подробнее...
     
    Еще один с именем winproc. В него помещаешь следующее
    Подробнее...
     
    В проект добавляешь функции. Вызываешь все это функцией AddToTray.
    Подробнее...

    Всего записей: 3920 | Зарегистр. 31-03-2002 | Отправлено: 21:51 10-12-2005 | Исправлено: dneprcomp, 05:02 11-12-2005
    Advanced_Guest



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Есть идеи, как можно отловить нажатие клавиши ? (причём мне надо узнать, какая клавиша нажата).
     
    Основная проблема - надо отловить не стандартную, а специальную клавишу..
    Что то типа "выключить комьпютер" "перейти в слип режим" и тд .

    ----------
    The Abyss - UO, LA2, Ботва, BSFG

    Всего записей: 2446 | Зарегистр. 14-04-2002 | Отправлено: 04:16 11-12-2005
    dneprcomp



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Advanced_Guest
    А что Debug.Print KeyCode 'for Key_Up, Key_Down или Debug.Print KeyAscii 'for KeyPress показывают?
     
    Добавлено:
    Похоже, что тебе вот это подойдет   SendKeys using the API

    Всего записей: 3920 | Зарегистр. 31-03-2002 | Отправлено: 05:19 11-12-2005 | Исправлено: dneprcomp, 06:13 11-12-2005
    Lkardin

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Помогите потжалуйста решить следующие задачи:
    1) Пусть     .
    Дано действительное E>0 . Найти первый член   , для которого выполнено      
     
    2) Найти сумму квадратов номеров строк всех нулевых элементов матрицы.

    Всего записей: 14 | Зарегистр. 02-10-2005 | Отправлено: 16:14 11-12-2005 | Исправлено: Lkardin, 16:21 11-12-2005
    ShIvADeSt



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

    Цитата:
    А что Debug.Print KeyCode 'for Key_Up, Key_Down или Debug.Print KeyAscii 'for KeyPress показывают?

    Ему больше всего подойдут хуки, так как отлавливать все равно придется судя по заданию не в своем приложении.

    Цитата:
    Есть идеи, как можно отловить нажатие клавиши ? (причём мне надо узнать, какая клавиша нажата).  
     
    Основная проблема - надо отловить не стандартную, а специальную клавишу..  
    Что то типа "выключить комьпютер" "перейти в слип режим" и тд .

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

    ----------
    И создал Бог женщину... Существо получилось злобное, но забавное...

    Всего записей: 3956 | Зарегистр. 29-07-2003 | Отправлено: 01:49 12-12-2005
    dneprcomp



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ShIvADeSt
    Не смотрел по моему линку 'SendKeys using the API' ? Я не разбирался долго, но похоже на то, что ты рекомендуешь. Интересно твое мнение.
    "не в своем приложении" я у него пока не вижу.

    Всего записей: 3920 | Зарегистр. 31-03-2002 | Отправлено: 02:52 12-12-2005
    ShIvADeSt



    Moderator
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    dneprcomp
    Этот код видел уже давно (причем у меня есть адаптированная под дельфи его модификация) это не совсем то, то нужно автору. Так как там эмулируются нажатия клавиш при помщи Keybd_event, а ему нужно отследить их нажатия, в своем приложении это можно сделать обрабатывая WM_KEYDOWN (это если юзать АПИшный обработчик мессаг) и в нем смотреть на код нажатой клавиши, главное чтобы этот код не был специфичен для каждой клавиатуры. так как у меня стандартная клава, то проверить это нет возможности.

    ----------
    И создал Бог женщину... Существо получилось злобное, но забавное...

    Всего записей: 3956 | Зарегистр. 29-07-2003 | Отправлено: 03:00 12-12-2005
    dneprcomp



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

    Всего записей: 3920 | Зарегистр. 31-03-2002 | Отправлено: 03:45 12-12-2005
    Troitsky



    Водник Водкин
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Lkardin
     
    1) Заводишь переменную для yk-1, записываешь туда 0. Заводишь переменную для yk, будешь проверять ее на условие выхода из цикла. В цикле увеличиваешь счетчик k=1,2,..., считаешь результат и в случае неудовлетворения его условию выхода из цикла записываешь его в переменную для yk-1 и соответственно увеличив счетчик считаешь снова. Ну и в результате из цикла ты не выйдешь никогда, т.к.условие в твоей записи никогда не выполнится. Дальше думай сам.
     
    Добавлено:
    Хотя в принципе можно обойтись и одной переменнной для y

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

    Всего записей: 795 | Зарегистр. 13-12-2003 | Отправлено: 09:31 12-12-2005 | Исправлено: Troitsky, 09:32 12-12-2005
    grek99



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

    Всего записей: 97 | Зарегистр. 17-11-2005 | Отправлено: 00:58 15-12-2005 | Исправлено: grek99, 01:00 15-12-2005
    Lkardin

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

    Цитата:
    Lkardin  
     
    1) Заводишь переменную для yk-1, записываешь туда 0. Заводишь переменную для yk, будешь проверять ее на условие выхода из цикла. В цикле увеличиваешь счетчик k=1,2,..., считаешь результат и в случае неудовлетворения его условию выхода из цикла записываешь его в переменную для yk-1 и соответственно увеличив счетчик считаешь снова. Ну и в результате из цикла ты не выйдешь никогда, т.к.условие в твоей записи никогда не выполнится. Дальше думай сам.  
     
    Добавлено:  
    Хотя в принципе можно обойтись и одной переменнной для y

    Troitsky
    Скажите пожалуйста как примерно это должно выглядить в коде ?

    Всего записей: 14 | Зарегистр. 02-10-2005 | Отправлено: 16:12 15-12-2005
    Mirotvorec

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Помогите сделать задачи:
     
    1)Подсчитать число всех делителей заданного натурального числа.
     
    2)Все элементы целочисленного вектора с нечетными значениями умножить на 2.  
     
    3)Найти элемент над главной диагональю квадратной целочисленной матрицы, значение которого принадлежит заданному отрезку( предполагается, что такой элемент найдется).
     
    4)Упорядочить буквы заданного слова по алфавиту.

    Всего записей: 2 | Зарегистр. 16-12-2005 | Отправлено: 00:51 17-12-2005
    ASProg

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Mirotvorec
     
    Если я правильно понял задание, то к № 1 код будет следующий:
     
    Dim i, n, c As Integer
    c = Val(Text1.Text) 'само число
    n = 0 'кол-во делителей
    For i = 2 To c  
        If c Mod i = 0 Then n = n + 1 'если делится без остатка, то оно нам подходит
    Next i
    MsgBox (Str(n))
     
     
    Добавлено:
    Mirotvorec
     
    Приведу код для № 2:
     

    Код:
     
    Dim a() As Integer
    Dim n, i As Integer
    n = Val(Text1.Text)
    ReDim a(n)
    Label1.Caption = "" 'будем выводить сюда исходный массив
    Label2.Caption = "" 'а сюда полученный массив
    For i = 0 To n
        a(i) = Int(Rnd * 100)
        Label1.Caption = Label1.Caption + Str(a(i)) + " "
        If a(i) Mod 2 <> 0 Then a(i) = a(i) * 2 'было нечетным - станет наоборот
        Label2.Caption = Label2.Caption + Str(a(i)) + " "
    Next i
     

     
    Добавлено:
    Mirotvorec
     
    Ну чтож № 3:
     

    Код:
     
    Dim a() As Integer
    Dim n, i, j, x1, x2 As Integer
    n = Val(Text1.Text)
    x1 = Val(Text2.Text) 'начало отрезка
    x2 = Val(Text3.Text) 'конец отрезка
     
    ReDim a(n, n)
    For i = 0 To n
    For j = 0 To n
        a(i, j) = Int(Rnd * 100)
        If j > i Then
           'выведем найденное число и выйдем из процедуры (я понял что нужно найти только 1 число)
           If a(i, j) >= x1 And a(i, j) <= x2 Then  
              MsgBox (Str(a(i, j)))  
              Exit Sub
           End If
        End If
    Next j
    Next i
    MsgBox ("Заданому отрезку не принадлежит ни одного числа")
     

     
    Значения матрицы не распечатываю, т.к. давно не программирую на VB и уже забыл как перейти на другую строку
     
    Добавлено:
    Mirotvorec
     
    Решение для № 4 привести, к сожалению, не могу все по той же причине - давно не писал на VB, так что строковых операторов уже не помню
     
    Могу только посоветовать получать ASCII код символов оператором Asc("") и расставлять их по порядку

    Всего записей: 1 | Зарегистр. 25-11-2005 | Отправлено: 10:50 17-12-2005
    NEOMATRIX



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    А как нарисовать блок-схему для задачи которая была решена выше dneprcomp и Troitsky
     

    Цитата:
    Дан текстовый ряд. Группы символов, разделенные пробелами (одним или несколькими) и не имея пробелов в середине себя, будем называть словами. Подсчитать сколько раз можно слово встретить в тексте.


    Всего записей: 202 | Зарегистр. 29-12-2004 | Отправлено: 00:48 23-12-2005
    aezh



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Прошу прощения, но может подскажете мне, как с помощью VBS удалить из оперделенного каталога на жестком диске файлы в зависимости от даты их создания?

    Всего записей: 347 | Зарегистр. 15-09-2004 | Отправлено: 18:10 23-12-2005
    dneprcomp



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    aezh
    Попробуй спросить в http://forum.ru-board.com/topic.cgi?forum=33&topic=1491&start=60#lt

    Всего записей: 3920 | Зарегистр. 31-03-2002 | Отправлено: 21:19 23-12-2005
    Dianira

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    у меня тут большой довольно вопрос...*смущённо*
    значится вопрос такой. мне было дано задание "Написать подпрограммы сложения и транспонирования матриц" Но у меня написано без подпрограмм.
    Вышло вот это:
     
    ' Транспонирование
     
    Public Sub TranspMatrix()  
        Dim avarMatrix() As Variant  
        Dim avarMatrixTransp() As Variant  
        Dim intI As Integer  
        Dim intJ As Integer
         
        ReDim avarMatrix(1 To 3, 1 To 2)  
         
        Randomize  
     
        Debug.Print "Исходная матрица: "  
         
        For intI = LBound(avarMatrix, 1) To UBound(avarMatrix, 1)  
            For intJ = LBound(avarMatrix, 2) To UBound(avarMatrix, 2)  
                avarMatrix(intI, intJ) = Int(Rnd * 10) + 1              
                Debug.Print avarMatrix(intI, intJ);  
            Next intJ  
            Debug.Print ""  
        Next intI  
         
        Debug.Print "=========================="
     
        ReDim avarMatrixTransp(1 To UBound(avarMatrix, 2), 1 To UBound(avarMatrix, 1))
         
        Debug.Print "Транспонированая матрица: "  
         
        For intJ = LBound(avarMatrix, 2) To UBound(avarMatrix, 2)
            For intI = LBound(avarMatrix, 1) To UBound(avarMatrix, 1)
                avarMatrixTransp(intJ, intI) = avarMatrix(intI, intJ)
                Debug.Print avarMatrixTransp(intJ, intI);  
            Next intI
            Debug.Print ""
        Next intJ
    End Sub
     
    ' Суммирование
    Public Sub SummMatrix()
        Dim avarMatrix1() As Variant
        Dim avarMatrix2() As Variant
        Dim avarMatrixSumm() As Variant
        Dim intI As Integer
        Dim intJ As Integer
     
        ReDim avarMatrix1(1 To 3, 1 To 2)
        ReDim avarMatrix2(1 To 3, 1 To 2)
        ReDim avarMatrixSumm(1 To 3, 1 To 2)
         
        Randomize
     
        Debug.Print "Матрица 1: "
         
        For intI = LBound(avarMatrix1, 1) To UBound(avarMatrix1, 1)
            For intJ = LBound(avarMatrix1, 2) To UBound(avarMatrix1, 2)
                avarMatrix1(intI, intJ) = Int(Rnd * 10) + 1
                Debug.Print avarMatrix1(intI, intJ);
            Next intJ
            Debug.Print ""
        Next intI
         
        Debug.Print "=========================="
        Debug.Print "Матрица 2: "
         
        For intI = LBound(avarMatrix2, 1) To UBound(avarMatrix2, 1)
            For intJ = LBound(avarMatrix2, 2) To UBound(avarMatrix2, 2)
                avarMatrix2(intI, intJ) = Int(Rnd * 10) + 1
                Debug.Print avarMatrix2(intI, intJ);
            Next intJ
            Debug.Print ""
        Next intI
         
        Debug.Print "=========================="
        Debug.Print "Суммированная матрица: "
         
        For intI = LBound(avarMatrixSumm, 1) To UBound(avarMatrixSumm, 1)
            For intJ = LBound(avarMatrixSumm, 2) To UBound(avarMatrixSumm, 2)
                avarMatrixSumm(intI, intJ) = avarMatrix1(intI, intJ) + avarMatrix2(intI, intJ)
                Debug.Print avarMatrixSumm(intI, intJ);  
            Next intJ
             Debug.Print ""
        Next intI
    End Sub
     
     
    преподавателя это не устроило и он попросил меня переделать, так, чтобы было с под программами.
    часть он написал:
    Option Explicit
    Const min1 = 1, min2 = 3, max1 = 3, max2 = 7
    Sub Test()
     Dim intA(min1 To max1, min2 To max2) As Integer
     Dim intB(min1 To max1, min2 To max2) As Integer
     Dim intC(min1 To max1, min2 To max2) As Integer
     Dim intFor1 As Integer
     Dim intFor2 As Integer
     
      For intFor1 = min1 To max1
        For intFor2 = min2 To max2
          intA(intFor1, intFor2) = intFor1
          intB(intFor1, intFor2) = -intFor1
          intC(intFor1, intFor2) = -intFor1
        Next intFor2
       Next intFor1
    ' SumMatrix intA, intB, intC
     PrintMatr intA
     PrintMatr intB
     PrintMatr intC
    End Sub
    Sub PrintMatr(intA() As Integer)
      Dim intI As Integer
      Dim intJ As Integer
       Debug.Print "Печать матрицы"
       For intI = LBound(intA, 1) To UBound(intA, 1)
        For intJ = LBound(intA, 2) To UBound(intA, 2)
         Debug.Print intA(intI, intJ);
       Next intJ
       Debug.Print
     Next intI
    End Sub
     
    не составило бы вам большого труда  объяснить в чём здесь смысл вообще этой подпрограммы, т.к. я тут почти ничего не понимаю. заранее спасибо.

    Всего записей: 1 | Зарегистр. 24-12-2005 | Отправлено: 23:06 24-12-2005 | Исправлено: Dianira, 23:07 24-12-2005
    Открыть новую тему     Написать ответ в эту тему

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