Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
0 / 0 / 0
Регистрация: 28.08.2016
Сообщений: 67

Тема: « Массивы»

28.08.2016, 22:14. Показов 1519. Ответов 29
Метки нет (Все метки)

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

Добавлено через 54 секунды
Требования:
1. Среда разработки – Visual BASIC 6.0.
2. Представление решенной задачи – распечатанный программный код с комментариями и «скриншот» экранной формы с указанием имен объектов (значения свойства Name).
3. Приложение должно иметь интерфейс, отвечающий содержанию задачи с необходимыми элементами управления (примеры см. в прилагаемой папке «Пособие для студентов» в соответствие с тематикой задач).
4. К печатному варианту отчета по курсовой должен прилагаться электронный вариант разработанных приложений (проектов).
5. Требование к программному коду:
• Программный код проекта должен иметь подробные комментарии.
• Инструкция Option Explicit должна быть включена в программный код.
• Участки кода, когда это целесообразно, должны быть оформлены в виде процедур или функций, размещенных в отельных модулях.
• Ввести в интерфейс приложения элементы управления, отображающие вводимую и выводимую информацию.
• Если в условии задачи не указаны элементы управления интерфейса приложения, то ее код должен быть записан следующим образом
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
28.08.2016, 22:14
Ответы с готовыми решениями:

Массивы(больня тема)
Помогите, пожалуста. необходимо написать функцию, которая просматривает двухмерный массив в поиске колонн.(колонна - место, в которое...

тема: одномерные массивы
не могу сделать задачу.....помогите плиз ))))))) задача: переупорядочить заданный одномерный массив так, чтобы его элементы шли в порядке...

Тема: двумерные массивы. С++
Помогите сделать это. Особенно последнему пункту прошу уделить особое внимание- упорядочить значения по возрастанию модуля.

29
Модератор
Эксперт функциональных языков программирования
3133 / 2280 / 469
Регистрация: 26.03.2015
Сообщений: 8,874
31.08.2016, 17:05
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от slava_psk Посмотреть сообщение
Поделились бы алгоритмом?
1. Если расстояние между двумя заданными кубиками кратно трём, то:
1.1. Если значения на кубиках различны, то решения нет.
1.2. Если значения на кубиках одинаковы, то можно составить группу из трёх кубиков с суммой 10 и повторять её
2. Если расстояние между двумя заданными кубиками не кратно трём, то:
2.1. Если сумма значений на кубиках больше 9 или меньше 4, то решения нет.
2.2. Если сумма значений на кубиках не больше 9 и не меньше 4, то можно составить группу из трёх кубиков с суммой 10 и повторять её.
2
 Аватар для Alex77755
11525 / 3812 / 683
Регистрация: 13.02.2009
Сообщений: 11,229
31.08.2016, 18:41
и ищи в гугле что делает эта штука
до гугла можно заглянуть сюда
1
0 / 0 / 0
Регистрация: 28.08.2016
Сообщений: 67
01.09.2016, 01:57  [ТС]
а можно увидеть программу кости-10?
0
686 / 484 / 249
Регистрация: 10.06.2016
Сообщений: 2,296
01.09.2016, 08:35
Думается мне, что это задача целочисленного программирования (транспортная задача, симплекс метод и т.п.), есть такой раздел математики.
0
oh my god
 Аватар для fever brain
1456 / 796 / 161
Регистрация: 05.01.2016
Сообщений: 2,307
Записей в блоге: 8
01.09.2016, 09:27
Транспортная задача это совсем другое дело, это когда нужно найти оптимальный маршрут из нескольких точек
а тут только подобрать кубики, вот то что выложил Softice, у меня даже смех вызвало
в его код я конечно не внедрялся, смотрел только результат и понял что нужно было сделать для этого

Итак:
1 подбераем необходимую комбинацию чисел в массиве, Так! чтобы каждое из 3-х соседних давало в сумме 10
2 запоминаем эту комбинацию, но не показываем юзеру (фокус смокус)
3 Открываем то, что итак уже вычесленно

я конечно скину если очень надо, даже скину такой код который гарантированно даст отметку 5 в зачётке
только меня надо же попросить...
neokrom, хватит у тебя ума пополнить мне счёт на мегафоне +79243727279 (это устройство модема) ..если хватит то выложу, могу даже код от Softice прокоментировать

Добавлено через 5 минут
Вез коментариев:
Visual Basic
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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
Option Explicit
Const r = 90, rr = 900, nn = 10
Dim WithEvents pb As PictureBox, im As Image
Dim WithEvents cb As CommandButton
Dim i&, v, a$(), s$, ss As String * nn, ll&(1 To nn)
 
Private Sub cb_Click()
    Dim i&, j&, ii&, l&, n&
    Select Case Mid$(cb.Name, 3)
    Case 1: Call reset
    Case 2
        'Решение
        Do
            ii = InStr(ii + 1, ss, 1)
            s = ""
            If ii > 0 Then
                l = ll(ii): n = n + 1
                For i = 1 To 6: For j = 1 To 6
                    If l + i + j = nn Then
                        s = s & " " & i & "," & j
                    End If
                Next: Next
                a = Split(Mid$(s, 2))
                a = Split(a(Fix(Rnd * (UBound(a) + 1))), ",")
                If ii = Choose(n, 1, 6) Then
                    s = Choose(n, 2, 7) & "," & Choose(n, 3, 8)
                ElseIf ii = Choose(n, 5, 10) Then
                    s = Choose(n, 3, 8) & "," & Choose(n, 4, 9)
                Else:
                    s = ii - 1 & "," & ii + 1
                End If: i = 0
                
                For Each v In Split(s, ",")
                    With Controls("im" & v)
                        .Move -(6 - a(i)) * rr
                        .Visible = 1
                    End With
                    i = i + 1
                Next
                
            End If
            
        Loop While ii > 0
    
    End Select
End Sub
 
Private Sub reset()
    ss = ""
    Erase ll
    For i = 1 To nn: Controls("im" & i).Visible = 0: Next
    Controls("cb2").Enabled = 0
End Sub
 
Sub SetNum(ByVal Index&, ByVal Num&)
    Randomize Timer
    If Index < 1 Or Index > nn Then Exit Sub
    If Num < 0 Or Num > 6 Then Exit Sub
    With Controls("cb2")
        If .Enabled Then Exit Sub
        With Controls("im" & Index)
            If Index <= 5 And InStr(1, Left$(ss, nn \ 2), 1) > 0 Then
                MsgBox "В левой части уже есть кубик", vbExclamation: Exit Sub
            ElseIf Index > 5 And InStr(1, Mid$(ss, nn \ 2 + 1), 1) > 0 Then
                MsgBox "В правой части уже есть кубик", vbExclamation: Exit Sub
            End If
            .Visible = Num > 0
            .Move -(6 - Num) * rr
            Mid$(ss, Index, 1) = 1
            ll(Index) = Num
        End With
        .Enabled = Replace$(ss, " ", "") = 11
    End With
End Sub
 
Private Sub Form_Activate()
    pb.SetFocus
End Sub
 
Private Sub Form_Load()
    Dim l&, t&, w&, h&
    
    l = r: t = r: w = rr: h = rr
    For i = 1 To nn
        Set pb = Controls.Add("vb.PictureBox", "pb" & i): With pb
            .Move l, t, w, h: l = l + w
            .Visible = 1
            Set im = Controls.Add("vb.Image", "im" & i, pb): With im
                Set .Picture = Me.Picture
            End With
        End With
    Next
    Set Me.Picture = Nothing
    l = r: t = t + rr + r: i = 0
    For Each v In Array("Сброс", "Найти решение"): i = i + 1
        Set cb = Controls.Add("vb.CommandButton", "cb" & i): With cb
            .Move l, t, rr * 2, rr \ 2: l = l + .Width + r
            .Caption = v
            .Visible = 1
        End With
    Next
    reset
    Me.Caption = "Кости-10"
End Sub
 
Private Sub pb_Click()
    SetNum Mid$(pb.Name, 3), Fix(Rnd * 6 + 1)
End Sub
 
Private Sub cb_LostFocus()
    pb_LostFocus
End Sub
 
Private Sub pb_LostFocus()
    If TypeOf ActiveControl Is PictureBox Then Set pb = ActiveControl
    If TypeOf ActiveControl Is CommandButton Then Set cb = ActiveControl
End Sub
0
686 / 484 / 249
Регистрация: 10.06.2016
Сообщений: 2,296
01.09.2016, 09:37
fever brain, Транспортная задача, это конечно не про это, но из той области математики. Наверняка такие постановки есть и все уже исследовано и есть разработанные методы решения. Первое что приходит в голову это решение линейной системы из 8 уравнений с ленточной матрицей, с ограничением на решения (целочисленные и заданного диапазона) Хотелось бы основательно здесь покопаться. Будет время займусь. Тут же встают вопросы единственности и существования решения. Ну например, если два кубика ставятся рядом, решение не всегда существует.
0
oh my god
 Аватар для fever brain
1456 / 796 / 161
Регистрация: 05.01.2016
Сообщений: 2,307
Записей в блоге: 8
01.09.2016, 09:46
Цитата Сообщение от slava_psk Посмотреть сообщение
если два кубика ставятся рядом, решение не всегда существует
Ну значит нужно делать такие условия в выполнении.. когда 2 кубика не будут находиться рядом

Вот у меня как.. я человек не творческий и поэтому ничего умнее не придумал как не разрешать ставить кубики рядом
вот мой кусок:
Visual Basic
1
2
3
4
                MsgBox "В левой части уже есть кубик", vbExclamation: Exit Sub
            ElseIf Index > 5 And InStr(1, Mid$(ss, nn \ 2 + 1), 1) > 0 Then
                MsgBox "В правой части уже есть кубик", vbExclamation: Exit Sub
            End If
Добавлено через 3 минуты
Всё. Юзер введёт то что ему надо, а уже потом ппрограмма вычислит
Да. Я сразу как увидел эту возможность прикинул (без всяких уровнений) что решений может быть множество
и примерно 20% будут не иметь решений поэтому и недопустил возможность ставить кости (не туда куда надо)
0
01.09.2016, 11:05

Не по теме:

Цитата Сообщение от fever brain Посмотреть сообщение
хватит у тебя ума
Он тебе уже спасибку один раз нажал :rofl:

0
686 / 484 / 249
Регистрация: 10.06.2016
Сообщений: 2,296
11.09.2016, 12:49
Эта задача может быть формализована, сведена к решению системы из 8-и линейных уравнений. Методы решения таких систем – классика численных методов, например метод Гаусса (проходится во всех классических вузовских курсах по численным методам и программированию). Кроме того математика существования и единственности решения для таких систем известна более 200 лет.
Например, если 3-ка в третьей позиции , а 5-ка в седьмой, то система будет иметь вид:

1*x1+1*x2+0*x3+0*x4+0*x5+0*x6+0*x7+0*x8 = 7
0*x1+1*x2+1*x3+0*x4+0*x5+0*x6+0*x7+0*x8 = 7
0*x1+0*x2+1*x3+1*x4+0*x5+0*x6+0*x7+0*x8 = 7
0*x1+0*x2+1*x3+1*x4+1*x5+0*x6+0*x7+0*x8 = 10
0*x1+0*x2+0*x3+1*x4+1*x5+0*x6+0*x7+0*x8 = 5
0*x1+0*x2+0*x3+0*x4+1*x5+1*x6+0*x7+0*x8 = 5
0*x1+0*x2+0*x3+0*x4+0*x5+1*x6+1*x7+0*x8 = 5
0*x1+0*x2+0*x3+0*x4+0*x5+1*x6+1*x7+1*x8 = 10

Решение системы методом Гаусса будет:

x1=5, x2=2, x3=5, x4=2, x5=3, x6=2, x7=3, x8=5
Т.е. полная комбинация

5 2 3 5 2 3 5 2 3 5

Но по существованию и единственности решения следующие варианты:

1. Решение существует и единственное, при этом все числа > 0 и <=6. Это наш случай. Решение может содержать отрицательные числа и числа > 6. Это нужно отфильтровывать.
2. Решение не существует, когда определитель системы =0. Это нужно отфильтровывать
3. Существует множество решений. Например, на 4-й и 10-й позиции четверки. В этом случае существует множество решений, для нашего случая 6. Этот вариант нужно так же отфильтровывать, так как у двери должен быть один ключ. Кстати сказать OpenTheDoor.exe не отфильтровывает этот вариант!?

Прилагаю проект на VB6 Гаусс.rar. Всем удачи.
0
6644 / 1511 / 169
Регистрация: 09.01.2010
Сообщений: 4,298
11.09.2016, 20:41
Цитата Сообщение от fever brain Посмотреть сообщение
даже скину такой код который гарантированно даст отметку 5 в зачётке
-
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
11.09.2016, 20:41
Помогаю со студенческими работами здесь

Написание кода. Тема: Массивы
1) Найти количество четных элементов. 2) Найти сумму элементов кратных 3. 3) Найти разность max и min элементов массива. ...

Необходимо исправить программу! Тема массивы
#include &lt;iostream&gt; #include &lt;StdAfx.h&gt; using namespace std; int main() { setlocale ( LC_ALL, &quot;Rus&quot; ); int n = 0; ...

Нужно разобраться тема: Одномерные массивы
Дан одномерный массив из N элементов. Вычислить сумму квадратов чисел, больших заданного С; подсчитать количество неположительных...

Нужно разобраться тема: Двумерные массивы
В задаче задается квадратная матрица NxN. Программа должна осуществлять ввод и печать исходной матрицы и возможно, дополнительных данных,...

Создать форму по коду (Тема одномерные массивы)
unit Unit1; {$mode objfpc}{$H+} interface uses Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
30
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 05.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru