Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Word
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.11.2011, 21:35   #1
Romka12345
Пользователь
 
Регистрация: 25.10.2011
Сообщений: 36
По умолчанию массивы в Бейсике без повторений

помогите с кодом вот мой коды
Код:
Dim n(10) As Integer
For i = 0 To 10
n(i) = Round(Rnd * 10)
For J = 0 To i
If ((n(i) = n(J)) Or (n(i) > 10)) Then
t = Round(Rnd * 10)
MsgBox t


Else


s = n(i)
MsgBox s

End If
Next J
Next i

но он не проверяет и числа повторяются
как сделать массив без повторения
Romka12345 вне форума Ответить с цитированием
Старый 30.11.2011, 22:53   #2
Казанский
Старожил
 
Аватар для Казанский
 
Регистрация: 31.12.2010
Сообщений: 2,133
По умолчанию

Код:
Sub bb()
Dim n(10) As Integer, i As Long, j As Long
For i = 0 To 10
    Do
        n(i) = Round(Rnd * 10)
        For j = 0 To i - 1
            If n(i) = n(j) Then Exit For
        Next j
    Loop Until j >= i
Next i
End Sub
Пройдите в пошаговом режиме (F8), наблюдайте за переменными в окне Locals.
exceleved@yandex.ru Яндекс.Деньги: 410011500007619
Казанский вне форума Ответить с цитированием
Старый 30.11.2011, 23:32   #3
Romka12345
Пользователь
 
Регистрация: 25.10.2011
Сообщений: 36
По умолчанию

спасибо
смотри мне нужно написать макросы который создам билет
а он создает так
внас является смисок вопросов я вставить форму там вести сколько у нас есть вопросы и сколько вопросов нужно в билетнику.ВОт не имеешь такой программы?
я просто это делаю с помощью поиска на хожу вопросы 11 и вырезаю все что в него входит и вставляю 1 и т.д. но является проблема шо например тот же вопрос 11 оно может понять как 1.пидкинь идею как просто список вопросов помешать местами! наперид спасибо
Romka12345 вне форума Ответить с цитированием
Старый 01.12.2011, 22:10   #4
Казанский
Старожил
 
Аватар для Казанский
 
Регистрация: 31.12.2010
Сообщений: 2,133
По умолчанию

> внас является смисок вопросов я вставить форму там вести сколько у нас есть вопросы и сколько вопросов нужно в билетнику.

Ну, если есть список вопросов, то программа сама может посчитать, сколько их.
Выложите пример: список вопросов, и в каком виде надо получить билеты.
exceleved@yandex.ru Яндекс.Деньги: 410011500007619
Казанский вне форума Ответить с цитированием
Старый 01.12.2011, 22:23   #5
Romka12345
Пользователь
 
Регистрация: 25.10.2011
Сообщений: 36
По умолчанию

например есть список вопросов
1
2
3
4
5
6
7
8
9
10

я рандомом перемешать их шоб в билетнику не были последовательны питаняя
и также я ввожу количество вопросов в билетнику например 3




Образовательно-квалификационный ривень_____________________________ ________
Область знаний ___________________________________ _______________________
Специальность ___________________________________ _________________
Спеціальність______________________ _____________ Семестр_______________
(название)
дисциплина ___________________________________ ________________________

ЭКЗАМЕНАЦИОННЫЙ БИЛЕТ № __________
вот тут мы пишем те вопросы которые вышли рандомом

2
6
8



Утверждено на заседании кафедры ___________________________________ ____________
Протокол № ____ от "____" ________________ 20____р.
Заведующий кафедрой ____________________ Экзаменатор ___________________
(подпись) (подпись)


и т.д. сколько нам нужно билетникив вот что мне нужно сделать
Romka12345 вне форума Ответить с цитированием
Старый 01.12.2011, 22:27   #6
Romka12345
Пользователь
 
Регистрация: 25.10.2011
Сообщений: 36
По умолчанию

я це роблю таким чином
шукаю текст 1 і вирізую його і вставляю вот код але він злітає в мене і твій цикл який ти мені написав не може бути більшим десяти бейсік зразу зависає чому?((
Код:
Sub biletnew()

Dim n(50) As Integer, i As Long, j As Long
For i = 13 To 21
Do
n(i) = Round(Rnd * 10)
For j = 0 To i - 1
If n(i) = n(j) Then Exit For
Next j
Loop Until j >= i
MsgBox i
Next i



 Selection.Find.ClearFormatting
    With Selection.Find
        .Text = n(1 + k)
        .Replacement.Text = ""
        .Forward = True
        .Wrap = wdFindContinue
      End With
    Selection.Find.Execute
    Selection.MoveLeft Unit:=wdCharacter, Count:=1
    Selection.MoveDown Unit:=wdLine, Count:=1, Extend:=wdExtend
    Selection.Cut
    Selection.Find.ClearFormatting
    With Selection.Find
        .Text = "1"
        .Replacement.Text = ""
        .Forward = True
        .Wrap = wdFindContinue
          End With
    Selection.Find.Execute
    Selection.MoveLeft Unit:=wdCharacter, Count:=1
    Selection.PasteAndFormat (wdPasteDefault)
    Selection.Find.ClearFormatting
    With Selection.Find
        .Text = n(2+ k)
        .Replacement.Text = ""
        .Forward = True
        .Wrap = wdFindContinue
        End With
    Selection.Find.Execute
    Selection.MoveLeft Unit:=wdCharacter, Count:=1
    Selection.MoveDown Unit:=wdLine, Count:=1, Extend:=wdExtend
    Selection.Cut
    Selection.Find.ClearFormatting
    With Selection.Find
        .Text = "1"
        .Replacement.Text = ""
        .Forward = True
        .Wrap = wdFindContinue
    End With
    Selection.Find.Execute
    Selection.MoveLeft Unit:=wdCharacter, Count:=1
    Selection.PasteAndFormat (wdPasteDefault)
    
    
    Selection.Find.ClearFormatting
    With Selection.Find
        .Text = n(3 + k)
        .Replacement.Text = ""
        .Forward = True
        .Wrap = wdFindContinue
        End With
    Selection.Find.Execute
    Selection.MoveLeft Unit:=wdCharacter, Count:=1
    Selection.MoveDown Unit:=wdLine, Count:=1, Extend:=wdExtend
    Selection.Cut
    Selection.Find.ClearFormatting
    With Selection.Find
        .Text = "1"
        .Replacement.Text = ""
        .Forward = True
        .Wrap = wdFindContinue
    End With
    Selection.Find.Execute
    Selection.MoveLeft Unit:=wdCharacter, Count:=1
    Selection.PasteAndFormat (wdPasteDefault)
    
     End If
    
     Next k
 
End Sub
этот код для 3 вопросов
Romka12345 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Даны цифры от 1 до 38 нужно составить все возможные комбинации из 6 чисел без повторений. gector Фриланс 14 01.04.2013 20:20
генерация сочетаний без повторений nowaalex Общие вопросы C/C++ 8 01.11.2010 00:29
Delphi. random, случайные числа без повторений MerCY Помощь студентам 8 10.05.2010 15:19
Random вывод нескольких чисел без повторений leonw Общие вопросы Delphi 4 05.09.2009 13:15
Массив без повторений Uzenec Помощь студентам 2 17.01.2008 08:23