Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 | 2 |

 

  Вопрос: Помогите с задачками по VB Добавлено: 20.12.05 03:26  

Автор вопроса:  MAFIA
Помогите с задачками по VB. Их 3 штуки. Нужно очень к среде. Если даже не получится к среде, можно в любой срок, буду жадать. Помогите пожалуйста! Всем откликнувшимся заранее огромное спасибо!!!

Задача №1
Секретный замок для сейфа состоит из 10 расположенных в ряд ячеек, в которые надо вставить игральные кубики. Но дверь открывается только в том случае, когда в любых трех соседних ячейках сумма точек на передних гранях кубиков равна 10. (Игральный кубик имеет на каждой грани от 1 до 6 точек.) Напишите программу, которая разгадывает код замка при условии, что два кубика уже вставлены в ячейки.

Задача №2
Дана строка и некоторое слово. Напечатать те предложения строки, которые содержат данное слово.

Задача №3
Двумерный массив n ? m содержит некоторые буквы русского алфавита, расположенные в произвольном порядке. Написать программу, проверяющую, можно ли из этих букв составить данное слово S. Каждая буква массива используется не более одного раза.

Ответить

  Ответы Всего ответов: 17  

Номер ответа: 1
Автор ответа:
 Павел



Администратор

ICQ: 326066673 

Вопросов: 368
Ответов: 5968
 Web-сайт: www.vbnet.ru
 Профиль | | #1
Добавлено: 20.12.05 12:16
Могу дать координаты человека, который решит это за 10-20 USD.

Ответить

Номер ответа: 2
Автор ответа:
 SerJ



Вопросов: 24
Ответов: 332
 Профиль | | #2 Добавлено: 20.12.05 13:32
Секретный замок для сейфа состоит из 10 расположенных в ряд ячеек, в которые надо вставить игральные кубики. Но дверь открывается только в том случае, когда в любых трех соседних ячейках сумма точек на передних гранях кубиков равна 10. (Игральный кубик имеет на каждой грани от 1 до 6 точек.) Напишите программу, которая разгадывает код замка при условии, что два кубика уже вставлены в ячейки.


Мммда.... Да тут ещё полчаса надо понимать условия задачки...

Ответить

Номер ответа: 3
Автор ответа:
 SerJ



Вопросов: 24
Ответов: 332
 Профиль | | #3 Добавлено: 20.12.05 13:34
А на вторую - держи решение.
Одно условие: после каждого предложения желательно пробелы ставить
Option Explicit

Private Sub Main()
    Const Stroka As String = "wwwwert iuytrd kkkkklg, jsdjshd. sjhdsjhdj misty redted? misty skldaslfhklashdlk sdjhereerw! skdjksdj - jsdhsjhd sskdhk: dfjsdhfj, aswdd, rrsewr; kskdk, as aswer, sfsdfsdf. kjskdskfdkhsfd misty kkdskskdgk!"
    Const Slovo As String = "misty"

    Dim Cnt As Integer 'Эту переменную будем использовать как счётчик
    Dim tmpMas() As String 'В этом массиве будут храниться предложения
    Dim tmpArr As Integer 'Это - указатель на начало предложения

    ReDim tmpMas(0) 'Поменяем времмено размерение массивчика
    tmpArr = 1 'Сначала определяем предложение №1
    
    'Загоняем все предложения в массив
    For Cnt = 1 To Len(Stroka)
        If Mid(Stroka, Cnt, 1) = "." Or Mid(Stroka, Cnt, 1) = "!" Or Mid(Stroka, Cnt, 1) = "?" Then 'Если символ в строке будет указывать на конец предложения, т. е. ! ? . тогда
            ReDim Preserve tmpMas(UBound(tmpMas) + 1) 'Расширяем место на ещё одно предложение
            tmpMas(UBound(tmpMas)) = Mid(Stroka, tmpArr, Cnt - tmpArr + 2) 'и загоняем его туда
            tmpArr = Cnt + 2 'теперь указатель на начало следующего предложения равен концу этого+2 (плюс разделительный знак и пробел)
        End If
    Next
    'И, наконец, проверяем все наши предложения
    For Cnt = 1 To UBound(tmpMas)
        If InStr(1, UCase(tmpMas(Cnt)), UCase(Slovo)) > 0 Then MsgBox "Слово " & Slovo & " содержится в предложении №" & Cnt & ":" & vbCrLf & tmpMas(Cnt) 'если слово в предложении имеется, тогда выдаём мессидж
    Next
    MsgBox "Всё. С тебя пиво!!!", vbCritical, "All Done." 'а в энтой строке определяем жадность конечного пользователя
End Sub

Ответить

Номер ответа: 4
Автор ответа:
 Sergey



ICQ: 283551900 

Вопросов: 1
Ответов: 74
 Профиль | | #4 Добавлено: 20.12.05 16:40
Идея проста если буква X встречается в массива n раз а в солее больше n раз то слово собрать нельзя.
  ;DrequencyM(255) и DrequencyS(255) – массивы частот.
Public Function Zad3(ByVal M(,) As Char, ByVal S() As Char) As Boolean
    ;Dim DrequencyM(255) As Integer
    ;Dim DrequencyS(255) As Integer
    ;Dim I, J As Integer

    For I = 0 To 255
      ;DrequencyM(I) = 0
      ;DrequencyS(I) = 0
    Next


    For I = 0 To M.GetLength(0) - 1
      For J = 0 To M.GetLength(1) - 1
        ;DrequencyM(Asc(M(I, J))) += 1
      Next
    Next
    For I = 0 To S.GetLength(0) - 1
      ;DrequencyS(Asc(S(I))) += 1
    Next

    For I = 0 To 255
      If DrequencyM(I) < DrequencyS(I) Then Return False
    Next

    Return True
  End Function

Ответить

Номер ответа: 5
Автор ответа:
 Sergey



ICQ: 283551900 

Вопросов: 1
Ответов: 74
 Профиль | | #5 Добавлено: 20.12.05 17:41
Пусть известны первые 2 кубика-числа (a и b) тогда 3 равен 10-a-b по условию:
1:a
2:b
3:10-a-b
4:10-(10-a-b)-b=a
5:10-a-(10-a-b)=b
6:10-a-b
7:10-(10-a-b)-b=a
8:10-a-(10-a-b)=b
9:10-a-b
10:10-(10-a-b)-b=a

То есть:
 1,4,7,10 – равны a – группа А
 2,5,8 – равны b – группа В
 3,6,9 – равны c – группа С

По условию известно два кубика тогда возможны следующие варианты:
1) известны кубики из разных групп
то находи значение третий группы как 10-(сумма известных кубиков)
если значение получается отрицательное то нет решений.
2) известны кубики из одной группы
  если они разные то нет решений в противном случи решений множество таких что a+b+с=10


Module Module1
  'Задача №1
  'Секретный замок для сейфа состоит из 10 расположенных в ряд ячеек,
  'в которые надо вставить игральные кубики. Но дверь открывается только в том случае,
  'когда в любых трех соседних ячейках сумма точек на передних гранях кубиков равна 10.
  '(Игральный кубик имеет на каждой грани от 1 до 6 точек.)
  'Напишите программу, которая разгадывает код замка при условии, что два кубика уже вставлены в ячейки.
  Sub Main()
    Const X1 As Integer = 4 'кубик 1
    Const Xi1 As Integer = 1 'позиция кубика 1
    Const X2 As Integer = 5 'кубик 2
    Const Xi2 As Integer = 5 'позиция кубика 2

    Dim i1, i2 As Integer 'группа кубика 1,2
    Dim I As Integer

    i1 = ((Xi1 - 1) Mod 3) + 1 'вычисляем группу кубика 1
    i2 = ((Xi2 - 1) Mod 3) + 1 'вычисляем группу кубика 2

    Dim a, b, c

    If i1 <> i2 Then
      If X1 + X2 >= 10 Then
        Console.WriteLine("нет решений!!";)
      Else
        Select Case i1
          Case 1 : a = X1
          Case 2 : b = X1
          Case 3 : c = X1
        End Select
        Select Case i2
          Case 1 : a = X2
          Case 2 : b = X2
          Case 3 : c = X2
        End Select

        If i1 = 1 And i2 = 2 Then
          c = 10 - a - b
        ElseIf i1 = 1 And i2 = 3 Then
          b = 10 - a - c
        Else 'If i1 = 2 And i2 = 3 Then
          a = 10 - b - c
        End If
        Pr(a, b, c)
      End If
    Else
      If X1 <> X2 Then
        Console.WriteLine("нет решений!!";)
      Else
        Select Case i1
          Case 1
            For I = 1 To 6
              If X1 + I < 10 Then Pr(X1, I, 10 - X1 - I)
            Next
          Case 2
            For I = 1 To 6
              If X1 + I < 10 Then Pr(I, X1, 10 - X1 - I)
            Next
          Case 3
            For I = 1 To 6
              If X1 + I < 10 Then Pr(I, 10 - X1 - I, X1)
            Next
        End Select
      End If
    End If

  End Sub

  Sub Pr(ByVal a As Integer, ByVal b As Integer, ByVal c As Integer)
    Dim i As Integer
    For i = 0 To 2
      Console.Write(CStr(a) + " ";)
      Console.Write(CStr(b) + " ";)
      Console.Write(CStr(c) + " ";)
    Next
    Console.Write(CStr(a) + " ";)
    Console.WriteLine()
  End Sub

End Module

Ответить

Номер ответа: 6
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #6
Добавлено: 21.12.05 04:26
Могу дать координаты человека, который решит это за 10-20 USD
Мои, да? :))

Ответить

Номер ответа: 7
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #7 Добавлено: 22.12.05 21:54
Могу дать координаты человека, который решит это за 10-20 USD


лучше вот так:

Могу дать за 10-20 USD, координаты человека, который решит это

Ответить

Номер ответа: 8
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #8
Добавлено: 23.12.05 02:16
Думаю, Павлу те 10-20 USD сумма незначительная, а, например, мне - доменное имя на целый год :)

Ответить

Номер ответа: 9
Автор ответа:
 mc-black



ICQ: 308-534-060 

Вопросов: 20
Ответов: 1860
 Web-сайт: mc-black.narod.ru/dzp.htm
 Профиль | | #9
Добавлено: 23.12.05 10:47
Предлагаю формулировку "Пожалуйста!!!" в таких топиках менять на "Цена вопроса: $__".

Ответить

Номер ответа: 10
Автор ответа:
 AgentFire



ICQ: 192496851 

Вопросов: 75
Ответов: 3178
 Профиль | | #10 Добавлено: 23.12.05 18:51
Павел, на вопросы ответили бесплатно. А если денег мало, занимайся сетевым маркетингом, благо, писем о нем ("Данное письмо НЕ ЯВЛЯЕТСЯ СПАМОМ...";) раза по 3 в день приходят. =)))

Ответить

Номер ответа: 11
Автор ответа:
 Павел



Администратор

ICQ: 326066673 

Вопросов: 368
Ответов: 5968
 Web-сайт: www.vbnet.ru
 Профиль | | #11
Добавлено: 23.12.05 19:07
Noviks, я имею достаточные доходы, мне не нужен никакой сомнительный сетевой маркетинг, мне не нужны и такие подработки для студентов. Если бы ты потрудился прочитать мое сообщение, то заметил бы, что я не предлагал _решить_ задачи, я сообщил, что могу познакомить с тем, кто их сможет решить.

А насчет темы.. Такой вот я человек, что не хочу на халяву предоставлять всё готовенькое. Если что-то инетерсует - потруись сначала разобраться сам, если появились вопросы, в которых не можешь разобраться - задавай, ответим. Но вот так вот, решить от и до, чтобы он завтра пошёл и сдела преподу, - это никому не нужно, т.к. не дает никакой отдачи тому, кто будет решать, будь то материальная (деньги) или моральная (помощь тому, кто имеет желание учиться).

Это моё ИМХО, и думаю, что многие с этим согласятся.

Ответить

Номер ответа: 12
Автор ответа:
 CyRax



Разработчик Offline Client

ICQ: 204447456 

Вопросов: 180
Ответов: 4229
 Web-сайт: basicproduction.nm.ru
 Профиль | | #12
Добавлено: 26.12.05 18:10
Студент спит - сессия идёт :)

Ответить

Номер ответа: 13
Автор ответа:
 Surok



Вопросов: 36
Ответов: 106
 Профиль | | #13 Добавлено: 27.12.05 20:32
=) а, между тем, челу помогли с задачками...а значит он вернеться...и друзей приведет..=))))))

Ответить

Номер ответа: 14
Автор ответа:
 MAFIA



Вопросов: 1
Ответов: 1
 Профиль | | #14 Добавлено: 28.12.05 00:28
Спасибо огромное всем кто помог!!!

Ответить

Номер ответа: 15
Автор ответа:
 [root]



Вопросов: 45
Ответов: 1212
 Web-сайт: bit.pirit.info
 Профиль | | #15
Добавлено: 10.01.06 21:42
По мойму нужно наводить на мысль хотя и как примерно можно реализовать.
Вот тут уж будет помощь во всех направлениях.
Хотя и студент будет не сильно доволен!
Студент по определению учиться не любит - только если ему самому не интересно.
вот

Ответить

Страница: 1 | 2 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам