Вывести множества А и В, упорядочив элементы в них по возрастанию - 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

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 4.091 из 5
Похожие ответы