1. Набираем команду codeby webinar. Набираем команду для организации и проведения вебинаров. Подробнее ...

    Скрыть объявление
  2. Требуются разработчики и тестеры для проекта codebyOS. Требования для участия в проекте: Знание принципов работы ОС на базе Linux; Знание Bash; Крайне желательное знание CPP, Python, Lua; Навыки системного администрирования. Подробнее ...

    Скрыть объявление
  3. Получи 30.000 рублей. Для получения денег необходимо принять участие в конкурсе авторов codeby. С условиями и призами можно ознакомиться на этой странице ...

    Внимание! Регистрация авторов на конкурс закрыта.

    Скрыть объявление

Одномерные массивы

Тема в разделе "Visual Basic", создана пользователем Irichka, 5 янв 2011.

Статус темы:
Закрыта.
  1. Irichka

    Irichka Гость

    Репутация:
    0
    Само задание обширное, но затруднение вызвала вот эта часть:
    Дана последовательность из 20-ти элементов. Нужно получить в отдельном массиве все элементы, входящие в последовательность:
    а) по одному разу
    б) более чем по одному разу
    в) более чем по два раза

    Попыталась реализовать пункт А. До половины массива программа работает нормально, а после заносит элементы в Massiv1, которых в нём быть не должно. Помогите, пожалуйста, исправить ошибку.

    Код:
    Public N As Byte
    Dim i As Byte
    Dim Massiv() As Single
    Dim Massiv1() As Single, Massiv2() As Single, Massiv3() As Single
    Dim Fname As String
    
    Private Sub Dir1_Change()
    File1.Path = Dir1.Path
    End Sub
    
    Private Sub Drive1_Change()
    Dir1.Path = Drive1.Drive
    End Sub
    
    Private Sub File1_Click()
    Fname = File1.Path + "\" + File1.FileName
    End Sub
    
    Private Sub Form_Load()
    Dir1.Visible = False
    Drive1.Visible = False
    File1.Visible = False
    Command1.Visible = False
    End Sub
    Private Sub Menu_Click(Index As Integer)
    Dim Kol As Byte, j As Byte
    Select Case (Index)
    '		Case 3
    '	  Load Form2
    '	  Form2.Show
    Case 4
    If MsgBox("Вы уверены?", vbYesNo + vbQuestion, "Выход") = vbYes Then
    Unload Form1
    End If
    End Select
    End Sub
    
    Private Sub Command1_Click()
    Dim Str As String, k As Byte
    Picture1.Cls
    ReDim Massiv(0)
    Open Fname For Input As #1 Len = Len(Massiv(0))
    N = 0
    k = 0
    Do While Not EOF(1)
    Line Input #1, Str
    Massiv(UBound(Massiv)) = Val(Str)
    ReDim Preserve Massiv(UBound(Massiv) + 1)
    Picture1.Print (Massiv(N)); Tab
    N = N + 1
    Loop
    Close #1
    Podmenu2(0).Enabled = True
    Podmenu2(1).Enabled = True
    Podmenu2(2).Enabled = True
    Dir1.Visible = False
    Drive1.Visible = False
    File1.Visible = False
    Command1.Visible = False
    End Sub
    
    Private Sub Podmenu1_Click(Index As Integer)
    Label3.Caption = ""
    Picture1.Cls
    Select Case (Index)
    Case 0
    Dir1.Visible = True
    Drive1.Visible = True
    File1.Visible = True
    Command1.Visible = True
    Dir1.SetFocus
    
    End Select
    End Sub
    
    Private Sub Podmenu3_Click(Index As Integer)
    Select Case (Index)
    Case 0
    Open "D:\Program files\Microsoft Visual Studio\VB98\Lab5\lab5.txt" For Output As #1
    For i = 0 To N - 1
    Print #1, , Massiv(i),
    Next i
    Close #1
    Case 1
    On Error GoTo met
    CommonDialog1.Filter = "текстовый файл(*.txt)|*.txt"
    CommonDialog1.ShowSave
    Open CommonDialog1.FileName For Output As #1
    For i = 0 To N - 1
    Print #1, , Massiv(i),
    Next i
    Close #1
    End Select
    End Sub
    
    
    Private Sub Podmenu2_Click(Index As Integer)
    ReDim Massiv1(N), Massiv2(N), Massiv3(N)
    For i = 0 To N - 1
    Massiv1(i) = Massiv(i)
    Massiv2(i) = Massiv(i)
    Massiv3(i) = Massiv(i)
    Next i
    
    Select Case (Index)
    Case 0
    Label3.Caption = "Элементы, встречающиеся один раз"	
    i = N - 1
    Kol = N
    Do While i <> 0
    For k = i + 1 To N - 1
    If Massiv1(i) = Massiv1(k) Then
    
    For j = i To Kol - 2
    Massiv1(j) = Massiv1(j + 1)
    Next j
    
    Kol = Kol - 1
    End If
    Next k
    i = i - 1
    Loop
    Picture1.Cls
    For i = 0 To Kol - 1
    Picture1.Print Massiv(i), , , Massiv1(i)
    Next i
    For i = Kol To N - 1
    Picture1.Print Massiv(i)
    Next i
    N = Kol
    
    Case 1
    Label3.Caption = "Элементы, встречающиеся более чем по одному разу"
    ' ............	 
    Case 2
    Label3.Caption = "Элементы, встречающиеся более чем по два раза"
    ' ............
    End Select
    Podmenu2(0).Enabled = True
    Podmenu2(1).Enabled = True
    End Sub
     

    Вложения:

    • VBlab5.rar
      Размер файла:
      12,6 КБ
      Просмотров:
      4
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей