Помогите с задачками по VB. Их 3 штуки. Нужно очень к среде. Если даже не получится к среде, можно в любой срок, буду жадать. Помогите пожалуйста! Всем откликнувшимся заранее огромное спасибо!!!
Задача №1
Секретный замок для сейфа состоит из 10 расположенных в ряд ячеек, в которые надо вставить игральные кубики. Но дверь открывается только в том случае, когда в любых трех соседних ячейках сумма точек на передних гранях кубиков равна 10. (Игральный кубик имеет на каждой грани от 1 до 6 точек.) Напишите программу, которая разгадывает код замка при условии, что два кубика уже вставлены в ячейки.
Задача №2
Дана строка и некоторое слово. Напечатать те предложения строки, которые содержат данное слово.
Задача №3
Двумерный массив n ? m содержит некоторые буквы русского алфавита, расположенные в произвольном порядке. Написать программу, проверяющую, можно ли из этих букв составить данное слово S. Каждая буква массива используется не более одного раза.
Секретный замок для сейфа состоит из 10 расположенных в ряд ячеек, в которые надо вставить игральные кубики. Но дверь открывается только в том случае, когда в любых трех соседних ячейках сумма точек на передних гранях кубиков равна 10. (Игральный кубик имеет на каждой грани от 1 до 6 точек.) Напишите программу, которая разгадывает код замка при условии, что два кубика уже вставлены в ячейки.
Мммда.... Да тут ещё полчаса надо понимать условия задачки...
А на вторую - держи решение.
Одно условие: после каждого предложения желательно пробелы ставить
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 'Это - указатель на начало предложения
'Загоняем все предложения в массив
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
Идея проста если буква X встречается в массива n раз а в солее больше n раз то слово собрать нельзя.
 requencyM(255) и DrequencyS(255) – массивы частот.
Public Function Zad3(ByVal M(,) As Char, ByVal S() As Char) As Boolean
 im DrequencyM(255) As Integer
 im DrequencyS(255) As Integer
 im I, J As Integer
For I = 0 To 255
 requencyM(I) = 0
 requencyS(I) = 0
Next
For I = 0 To M.GetLength(0) - 1
For J = 0 To M.GetLength(1) - 1
 requencyM(Asc(M(I, J))) += 1
Next
Next
For I = 0 To S.GetLength(0) - 1
 requencyS(Asc(S(I))) += 1
Next
For I = 0 To 255
If DrequencyM(I) < DrequencyS(I) Then Return False
Next
Пусть известны первые 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 + " "
Console.Write(CStr(b) + " "
Console.Write(CStr(c) + " "
Next
Console.Write(CStr + " "
Console.WriteLine()
End Sub
Павел, на вопросы ответили бесплатно. А если денег мало, занимайся сетевым маркетингом, благо, писем о нем ("Данное письмо НЕ ЯВЛЯЕТСЯ СПАМОМ..." раза по 3 в день приходят. ))
Noviks, я имею достаточные доходы, мне не нужен никакой сомнительный сетевой маркетинг, мне не нужны и такие подработки для студентов. Если бы ты потрудился прочитать мое сообщение, то заметил бы, что я не предлагал _решить_ задачи, я сообщил, что могу познакомить с тем, кто их сможет решить.
А насчет темы.. Такой вот я человек, что не хочу на халяву предоставлять всё готовенькое. Если что-то инетерсует - потруись сначала разобраться сам, если появились вопросы, в которых не можешь разобраться - задавай, ответим. Но вот так вот, решить от и до, чтобы он завтра пошёл и сдела преподу, - это никому не нужно, т.к. не дает никакой отдачи тому, кто будет решать, будь то материальная (деньги) или моральная (помощь тому, кто имеет желание учиться).
Это моё ИМХО, и думаю, что многие с этим согласятся.
По мойму нужно наводить на мысль хотя и как примерно можно реализовать.
Вот тут уж будет помощь во всех направлениях.
Хотя и студент будет не сильно доволен!
Студент по определению учиться не любит - только если ему самому не интересно.
вот