Вывести множества А и В, упорядочив элементы в них по возрастанию - Visual Basic .NET
Формулировка задачи:
Здравствуйте, товарищи!
Помогите пожалуйста осилить задачку.
__________________________________
Задача.
1) Задать множества А и В, каждое из которых состоит из n элементов, сгенерировав целые случайные числа, равномерно распределенные на отрезке [a, b] (величины n, a, b должны вводиться с клавиатуры). Случайные числа могут повторяться как в разных множествах, так и внутри одного множества. Вывести множества А и В, упорядочив элементы в них по возрастанию.
2) Выделить подмножества XA, YB, состоящие из m последних элементов упорядоченных множеств А и В. Число m вводится с клавиатуры, причем должно выполняться условие: m<n. Вычислить и вывести декартово произведение X х Y (исключив при необходимости совпадающие элементы произведения).
3) Задать отношение R: АВ = {(xi, yi) xiA, yiB, i=1…n}, где пары (xi, yi) составляются случайным образом (но охватывают все элементы из множеств А и В соответственно). Вывести полученное множество пар. Вывести график данного отношения в виде точек (xi, yi) на плоскости OXY. Построить матрицу отношения R.
__________________________________________________________
C 1 заданием разобрался:
_____________________________
Со 2 только декартово произведение,и то плохо работает..
Решение задачи: «Вывести множества А и В, упорядочив элементы в них по возрастанию»
textual
Листинг программы
Imports System.Windows.Forms.DataVisualization.Charting Public Class Form2 Private n, m, a, b As Integer Private AA() As Integer, BB() As Integer Private Sub Form2_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load ListBox1.Items.Clear() ListBox2.Items.Clear() ListBox3.Items.Clear() ListBox4.Items.Clear() Chart1.Visible = False End Sub Private Sub TextBox1_TextChanged(sender As System.Object, e As System.EventArgs) Handles TextBox1.TextChanged If Not Integer.TryParse(TextBox1.Text, n) OrElse n = 0 Then TextBox1.Focus() TextBox1.SelectAll() End If End Sub Private Sub TextBox2_TextChanged(sender As System.Object, e As System.EventArgs) Handles TextBox2.TextChanged If Not Integer.TryParse(TextBox2.Text, m) OrElse m = 0 Then TextBox2.Focus() TextBox2.SelectAll() End If End Sub Private Sub TextBox3_TextChanged(sender As System.Object, e As System.EventArgs) Handles TextBox3.TextChanged If Not Integer.TryParse(TextBox3.Text, a) Then TextBox3.Focus() TextBox3.SelectAll() End If End Sub Private Sub TextBox4_TextChanged(sender As System.Object, e As System.EventArgs) Handles TextBox4.TextChanged If Not Integer.TryParse(TextBox4.Text, b) Then TextBox4.Focus() TextBox4.SelectAll() End If End Sub Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click ListBox1.DataSource = Nothing ListBox2.DataSource = Nothing If n = 0 Then Exit Sub If a >= b Then Exit Sub Dim rnd As New Random ReDim AA(n - 1) ReDim BB(n - 1) For i = 0 To n - 1 AA(i) = rnd.Next(a, b + 1) BB(i) = rnd.Next(a, b + 1) Next Array.Sort(AA) Array.Sort(BB) ListBox1.DataSource = AA ListBox2.DataSource = BB End Sub Private Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles Button2.Click ListBox3.DataSource = Nothing If m = 0 OrElse m >= n Then Exit Sub Dim k As Integer = n - m Dim x(m - 1) As Integer, y(m - 1) As Integer Dim xy((m) * (m) - 1) As Point Dim t, xi As Integer For i = k To n - 1 x(t) = AA(i) y(t) = BB(i) t += 1 Next t = 0 For i = 0 To m - 1 xi = x(i) For j = 0 To m - 1 xy(t) = New Point(xi, y(j)) t += 1 Next Next ListBox3.DataSource = xy.Distinct().ToArray End Sub Private Sub Button3_Click(sender As System.Object, e As System.EventArgs) Handles Button3.Click ListBox4.DataSource = Nothing Dim xx() As Integer = Enumerable.Range(0, n).ToArray Dim yy() As Integer = Enumerable.Range(0, n).ToArray Dim rr(n - 1) As Point shuffleArray(xx) shuffleArray(yy) For i = 0 To n - 1 rr(i) = New Point(AA(xx(i)), BB(yy(i))) Next ListBox4.DataSource = rr With Chart1 .Width = 390 .Height = 225 .ChartAreas.Clear() .ChartAreas.Add("pnt") .Series.Clear() .Series.Add("R") .Series(0).ChartType = SeriesChartType.Point .Series(0).IsVisibleInLegend = False .Series(0).Color = Color.Red .Series(0).MarkerStyle = MarkerStyle.Circle Dim dp(n - 1) As DataPoint For i = 0 To n - 1 dp(i) = New DataPoint(rr(i).X, rr(i).Y) dp(i).Label = rr(i).X.ToString & ";" & rr(i).Y.ToString .Series(0).Points.Add(dp(i)) Next .Visible = True End With End Sub Private Sub shuffleArray(x() As Integer) Dim rnd As New Random Dim shf, tmp As Integer For i = 0 To x.Length - 1 shf = i + rnd.Next(n - i - 1) tmp = x(i) x(i) = x(shf) x(shf) = tmp Next End Sub End Class
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д