7 / 7 / 0
Регистрация: 13.02.2017
Сообщений: 97
1

Разработать программу, которая выводит объединение и пересечение множеств

11.04.2017, 22:10. Показов 990. Ответов 10

Даны два множества А и B c различным кол-вом элементов( в программе они в виде проинициализированных массивов). разработать программу, которая выводит объединение и пересечение этих множеств
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.04.2017, 22:10
Ответы с готовыми решениями:

Создать программу, которая позволяет осуществить все операции над элементами множеств: пересечение, объединение, разность, проверку эквивалентности и
Создать программу, которая позволяет осуществить все операции над элементами множеств: пересечение,...

Для заданного набора множеств определить, какая группа множеств представляет их пересечение и объединение
Даны множества: А – множество равносторонних треугольников и В – множество прямоугольных...

Разработать программу которая выводит на экран, которая выводит содержимое текущего каталога, упорядоченное по времени
Помогите пожалуйста!! В уинвере не изучали язык С++ а заставляют на нем написать программку (( В...

Объединение, пересечение, разность множеств
К сожалению, абсолютно ничего не понимаю в программировании. Если кто-то может, помогите...

10
141 / 119 / 29
Регистрация: 12.02.2017
Сообщений: 308
12.04.2017, 07:47 2
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
Sub mArray()
    Dim lCounter&, j&, i&, l&
    Dim A(1 To 10) As Long, B(1 To 20) As Long
    Dim C() As Long, D() As Long
    Dim s$, s1$
    Dim bln As Boolean
    Randomize Timer
    For i = 1 To UBound(A)
        A(i) = Rnd * 10
    Next i
    For i = 1 To UBound(B)
        B(i) = Rnd * 20
    Next i
    For i = 1 To UBound(B)
        For j = 1 To UBound(A)
            If B(i) = A(j) Then
                lCounter = lCounter + 1
                ReDim Preserve C(1 To lCounter)
                C(lCounter) = B(i)
            End If
        Next j
    Next i
    ReDim D(1 To 1)
    D(1) = C(1)
    bln = True
    For i = 2 To lCounter
        For j = 1 To UBound(D)
            If C(i) = D(j) Then bln = False: Exit For
        Next j
        If bln Then
            ReDim Preserve D(1 To UBound(D) + 1)
            D(UBound(D)) = C(i)
        End If
        bln = True
    Next i
    For i = 1 To UBound(D)
        s = s & D(i) & ", "
    Next i
    For i = 1 To UBound(A)
        s1 = s1 & A(i) & ", "
    Next i
    For i = 1 To UBound(B)
        s1 = s1 & B(i) & ", "
    Next i
    MsgBox s, , "Пересечение множеств"
    MsgBox s1, , "Объединение множеств"
End Sub
0
Регистрация: 23.10.2013
Сообщений: 5,076
Записей в блоге: 8
12.04.2017, 10:06 3
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
REM
REM         МНОЖЕСТВА
REM  ОБЪЕДИНЕНИЕ И ПЕРЕСЕЧЕНИЕ
REM
 
CLS
RANDOMIZE TIMER
 
DIM A(20) AS LONG
DIM B(20) AS LONG
DIM C(20) AS LONG
DIM D(20) AS LONG
DIM k AS LONG
 
FOR i = 1 TO 10
   k = 1 + 9 * RND
   A(k) = -1
NEXT
 
FOR i = 1 TO 20
   k = 1 + 19 * RND
   B(k) = -1
NEXT
 
FOR i = 1 TO 20
   C(i) = A(i) OR B(i)
NEXT
 
FOR i = 1 TO 20
   D(i) = A(i) AND B(i)
NEXT
 
'----------------------------------
PRINT "A"
 
FOR i = 1 TO 10
   IF A(i) THEN PRINT i;
NEXT
PRINT : PRINT
PRINT "B"
 
FOR i = 1 TO 20
   IF B(i) THEN PRINT i;
NEXT
PRINT : PRINT
PRINT "A U B"
 
FOR i = 1 TO 20
   IF C(i) THEN PRINT i;
NEXT
PRINT : PRINT
PRINT "A * U"
 
FOR i = 1 TO 20
   IF D(i) THEN PRINT i;
NEXT
0
7 / 7 / 0
Регистрация: 13.02.2017
Сообщений: 97
13.04.2017, 12:34  [ТС] 4
а вы можете ваш код переделать под массив заданный так : dim а() as integer ={}?

Добавлено через 17 секунд
echs, а вы можете ваш код переделать под массив заданный так : dim а() as integer ={}?
0
Регистрация: 23.10.2013
Сообщений: 5,076
Записей в блоге: 8
13.04.2017, 13:31 5
Sverhrazum22
Просто замените LONG на INTEGER
...
примечание
я написал LONG потому, что это Самый быстрый
тип переменной. Быстрее, чем INTEGER.
0
7 / 7 / 0
Регистрация: 13.02.2017
Сообщений: 97
13.04.2017, 13:38  [ТС] 6
echs, я заменила итак лонг на интежер, но мне нужно, чтобы навскидку было такое заполнение массива и соответственно код под негоim A() As Integer = {1, 2, 3, 4, 5}
Dim B() As Integer = {3, 4, 5, 6, 7, 8}. мне здесь нельзя рандомайзом, только так, как я указала выше
0
Регистрация: 23.10.2013
Сообщений: 5,076
Записей в блоге: 8
13.04.2017, 14:20 7
Sverhrazum22
Объявить массив можно только так:

Dim A() As Variant
а в процедуре записать
A() = Array(1, 2, 3, 4, 5)
...
примечание
Счет элементов начинается с Нуля
0
7 / 7 / 0
Регистрация: 13.02.2017
Сообщений: 97
13.04.2017, 14:29  [ТС] 8
echs, про 0 знаю. а вот насчет объявления массива не совсем поняла. пример другой программы:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Dim a() As Integer = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
        Dim i, count As Integer
        count = 0
        For i = 0 To UBound(a) - 1
            If a(i) > a(i + 1) Then
                count = count + 1
            End If
        Next
        If count > 0 Then
            Console.WriteLine("Элементы массива идут НЕ в порядке возрастания")
        Else
            Console.WriteLine("Элементы массива идут  в порядке возрастания")
        End If
        Console.ReadLine()
мне нужно, чтобы массив был объявлен точно также(точнее, 2 массива а и б) и цикл был соответственно сделан под это. я мб чего-то и не понимаю,но у вас сделано вроде как рандомайзом. вы можете,пожалуйста,оформить задачу так?
0
Регистрация: 23.10.2013
Сообщений: 5,076
Записей в блоге: 8
13.04.2017, 14:45 9
Sverhrazum22
У меня ваш пример не работает.
Скажу честно. Мне неизвестен такой способ объявления
массива. Что я знаю, то вам показал...
0
7 / 7 / 0
Регистрация: 13.02.2017
Сообщений: 97
13.04.2017, 14:49  [ТС] 10
echs, ладно,хорошо, вы там что-тот писали с array, сделайте код так пожалуйста, я потом изменю его,но чтобы массив был ПРОИНИЦИАЛИЗИРОВАННЫЙ, а не заполненный рандомайзом
1
Регистрация: 23.10.2013
Сообщений: 5,076
Записей в блоге: 8
14.04.2017, 09:07 11
Sverhrazum22
Вы извините меня за задержку программы...
Вот то, что вы просили.

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
CLS
 
DIM A(100) AS LONG
DIM B(100) AS LONG
DIM C(100) AS LONG
DIM D(100) AS LONG
 
A(17) = -1: B(12) = -1
A(33) = -1: B(33) = -1
A(56) = -1: B(56) = -1
A(71) = -1: B(88) = -1
 
FOR i = 1 TO 100
   C(i) = A(i) OR B(i)
NEXT
 
FOR i = 1 TO 100
   D(i) = A(i) AND B(i)
NEXT
 
'----------------------------
PRINT "A =";
CALL AUS(A())
PRINT "B =";
CALL AUS(B())
PRINT "A U B =";
CALL AUS(C())
PRINT "A * B =";
CALL AUS(D())
 
 
PRIVATE SUB AUS (x() AS LONG)
   FOR i = 1 TO 100
      IF x(i) THEN PRINT i;
   NEXT
   PRINT : PRINT
END SUB
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.04.2017, 09:07

Объединение, пересечение, разность множеств
Это вполне стандартный алгоритм,может есть у кого готовый? Объединение, пересечение, разность...

Объединение, пересечение и разность множеств
Доброго дня. Задание: 1) На вход подаются два упорядоченных множества A и B (вводятся с...

Объединение, пересечение и отрицание А и В множеств
Здравствуйте, помогите пожалуйста написать программу работы с числовыми множествами(объединение,...

Объединение, пересечение, разность множеств
Я новичок и мне нужна помощь с задачей. Даны три поля TEdit 1,2,3, в первые два вводятся...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.