Вывести множества А и В, упорядочив элементы в них по возрастанию - 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 заданием разобрался:
Листинг программы
  1. Dim n As Integer = Val(text1.Text) - 1
  2. Dim a As Integer = Val(text2.Text)
  3. Dim b As Integer = Val(text3.Text)
  4. Dim m As Integer = Val(TextBox1.Text) - 1
  5. '\\\\\\\\\
  6. If a >= b Or m > n Or text1.Text = "" Or text2.Text = "" Or text3.Text = "" Or TextBox1.Text = "" Or n > 10 Or m > 10 Then
  7. text1.Text = ""
  8. text2.Text = ""
  9. text3.Text = ""
  10. TextBox1.Text = ""
  11. MessageBox.Show("Неверно указаны значения!", " Контроль ввода данных ")
  12. Exit Sub
  13. End If
  14. '\\\\\\\
  15. Dim dt As New DataTable
  16. Dim pen1 As New System.Drawing.Pen(Color.Black, 2)
  17. 'Вывод и сортировка множеств
  18. Dim am(n), bm(n), xm(m), ym(m), xy(n, 1), R(n, n) As Integer
  19. Randomize()
  20. ListBox1.Items.Clear()
  21. ListBox2.Items.Clear()
  22. Label5.Text = "Множество A:"
  23. Label6.Text = "Множество B:"
  24. For i As Integer = 0 To n
  25. am(i) = a + Rnd() * (b - a)
  26. bm(i) = a + Rnd() * (b - a)
  27. Next i
  28. Sort(am, n + 1)
  29. Sort(bm, n + 1)
  30. For i As Integer = 0 To n
  31. Label5.Text = Label5.Text + " " + Str(am(i))
  32. Label6.Text = Label6.Text + " " + Str(bm(i))
  33. Next i
_____________________________ Со 2 только декартово произведение,и то плохо работает..
Листинг программы
  1. 'Декартово произведение
  2. Dim k, z As Integer
  3. For i As Integer = n - m To n
  4. xm(k) = am(i)
  5. ym(k) = bm(i)
  6. k = k + 1
  7. Next i
  8. Dim dd As Boolean = False
  9. Dim hhh As Integer
  10. Dim sss As String
  11. Dim s As String = ""
  12. For i As Integer = 0 To m
  13. For j As Integer = 0 To m
  14. dd = False
  15. s = Str(xm(i)) + "," + Str(ym(j))
  16. hhh = ListBox1.Items.Count
  17. For ff As Integer = 1 To hhh
  18. sss = ListBox1.Items.Item(ff - 1)
  19. If sss = s Then
  20. dd = True
  21. End If
  22. Next ff
  23. If Not (dd) Then
  24. ListBox1.Items.Add(s)
  25. End If
  26. Next j
  27. Next i

Решение задачи: «Вывести множества А и В, упорядочив элементы в них по возрастанию»

textual
Листинг программы
  1. Imports System.Windows.Forms.DataVisualization.Charting
  2. Public Class Form2
  3.     Private n, m, a, b As Integer
  4.     Private AA() As Integer, BB() As Integer
  5.     Private Sub Form2_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
  6.         ListBox1.Items.Clear()
  7.         ListBox2.Items.Clear()
  8.         ListBox3.Items.Clear()
  9.         ListBox4.Items.Clear()
  10.         Chart1.Visible = False
  11.     End Sub
  12.     Private Sub TextBox1_TextChanged(sender As System.Object, e As System.EventArgs) Handles TextBox1.TextChanged
  13.         If Not Integer.TryParse(TextBox1.Text, n) OrElse n = 0 Then
  14.             TextBox1.Focus()
  15.             TextBox1.SelectAll()
  16.         End If
  17.     End Sub
  18.     Private Sub TextBox2_TextChanged(sender As System.Object, e As System.EventArgs) Handles TextBox2.TextChanged
  19.         If Not Integer.TryParse(TextBox2.Text, m) OrElse m = 0 Then
  20.             TextBox2.Focus()
  21.             TextBox2.SelectAll()
  22.         End If
  23.     End Sub
  24.     Private Sub TextBox3_TextChanged(sender As System.Object, e As System.EventArgs) Handles TextBox3.TextChanged
  25.         If Not Integer.TryParse(TextBox3.Text, a) Then
  26.             TextBox3.Focus()
  27.             TextBox3.SelectAll()
  28.         End If
  29.     End Sub
  30.     Private Sub TextBox4_TextChanged(sender As System.Object, e As System.EventArgs) Handles TextBox4.TextChanged
  31.         If Not Integer.TryParse(TextBox4.Text, b) Then
  32.             TextBox4.Focus()
  33.             TextBox4.SelectAll()
  34.         End If
  35.     End Sub
  36.     Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
  37.         ListBox1.DataSource = Nothing
  38.         ListBox2.DataSource = Nothing
  39.         If n = 0 Then Exit Sub
  40.         If a >= b Then Exit Sub
  41.         Dim rnd As New Random
  42.         ReDim AA(n - 1)
  43.         ReDim BB(n - 1)
  44.         For i = 0 To n - 1
  45.             AA(i) = rnd.Next(a, b + 1)
  46.             BB(i) = rnd.Next(a, b + 1)
  47.         Next
  48.         Array.Sort(AA)
  49.         Array.Sort(BB)
  50.         ListBox1.DataSource = AA
  51.         ListBox2.DataSource = BB
  52.     End Sub
  53.     Private Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles Button2.Click
  54.         ListBox3.DataSource = Nothing
  55.         If m = 0 OrElse m >= n Then Exit Sub
  56.         Dim k As Integer = n - m
  57.         Dim x(m - 1) As Integer, y(m - 1) As Integer
  58.         Dim xy((m) * (m) - 1) As Point
  59.         Dim t, xi As Integer
  60.         For i = k To n - 1
  61.             x(t) = AA(i)
  62.             y(t) = BB(i)
  63.             t += 1
  64.         Next
  65.         t = 0
  66.         For i = 0 To m - 1
  67.             xi = x(i)
  68.             For j = 0 To m - 1
  69.                 xy(t) = New Point(xi, y(j))
  70.                 t += 1
  71.             Next
  72.         Next
  73.         ListBox3.DataSource = xy.Distinct().ToArray
  74.     End Sub
  75.     Private Sub Button3_Click(sender As System.Object, e As System.EventArgs) Handles Button3.Click
  76.         ListBox4.DataSource = Nothing
  77.         Dim xx() As Integer = Enumerable.Range(0, n).ToArray
  78.         Dim yy() As Integer = Enumerable.Range(0, n).ToArray
  79.         Dim rr(n - 1) As Point
  80.         shuffleArray(xx)
  81.         shuffleArray(yy)
  82.         For i = 0 To n - 1
  83.             rr(i) = New Point(AA(xx(i)), BB(yy(i)))
  84.         Next
  85.         ListBox4.DataSource = rr
  86.         With Chart1
  87.             .Width = 390
  88.             .Height = 225
  89.             .ChartAreas.Clear()
  90.             .ChartAreas.Add("pnt")
  91.             .Series.Clear()
  92.             .Series.Add("R")
  93.             .Series(0).ChartType = SeriesChartType.Point
  94.             .Series(0).IsVisibleInLegend = False
  95.             .Series(0).Color = Color.Red
  96.             .Series(0).MarkerStyle = MarkerStyle.Circle
  97.             Dim dp(n - 1) As DataPoint
  98.             For i = 0 To n - 1
  99.                 dp(i) = New DataPoint(rr(i).X, rr(i).Y)
  100.                 dp(i).Label = rr(i).X.ToString & ";" & rr(i).Y.ToString
  101.                 .Series(0).Points.Add(dp(i))
  102.             Next
  103.             .Visible = True
  104.         End With
  105.     End Sub
  106.     Private Sub shuffleArray(x() As Integer)
  107.         Dim rnd As New Random
  108.         Dim shf, tmp As Integer
  109.         For i = 0 To x.Length - 1
  110.             shf = i + rnd.Next(n - i - 1)
  111.             tmp = x(i)
  112.             x(i) = x(shf)
  113.             x(shf) = tmp
  114.         Next
  115.     End Sub
  116. End Class

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


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

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

11   голосов , оценка 4.091 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы