Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - VBA

Страница: 1 |

 

  Вопрос: Функция Добавлено: 22.05.09 00:18  

Автор вопроса:  
Нужно сделать задание
1. Составить функцию, определяющую представляет ли запись натурального
числа в двоичной системе счисления чередующуюся последовательность
единиц и нулей, начинающуюся с единицы.
2. Напечатать таблицу чисел, соответствующих п.1, не превосходящих
заданное натуральное число
В интернете я нашла много способов перевода, например этот, но как это работает мне не понятно...
И как определить чередуются ли 1 и 0?
Спасибо

Private Function ConvertToBinary(ByVal lngQuotient As Long) As String
    Dim strBinary As String
    Dim strReturn As String
    Dim i As Integer
    i = 100
    strBinary = String(i, "0")
    Do While lngQuotient
        Mid(strBinary, i, 1) = CStr(lngQuotient Mod 2)
        lngQuotient = lngQuotient \ 2
        i = i - 1
    Loop
    strReturn = Right(strBinary, 100 - i)
    ConvertToBinary = strReturn
End Function

Private Sub Command1_Click()
Text2.Text = ConvertToBinary(Text1.Text)
End Sub

Ответить

  Ответы Всего ответов: 12  

Номер ответа: 1
Автор ответа:
 Ra$cal



ICQ: 8068014 

Вопросов: 18
Ответов: 817
 Web-сайт: www.rascalspb.narod.ru
 Профиль | | #1
Добавлено: 22.05.09 01:16
бедные преподаватели... после таких тем мне становится их жалко

Ответить

Номер ответа: 2
Автор ответа:
 AWP



ICQ: 345685652 

Вопросов: 96
Ответов: 1212
 Web-сайт: xawp.narod.ru
 Профиль | | #2
Добавлено: 22.05.09 11:35
вот действительно, сколько можно сюда с заданиями лезть?

Ответить

Номер ответа: 3
Автор ответа:
 Дмитрий Юпатов



Вопросов: 4
Ответов: 457
 Web-сайт: cargomaster.at.ua/
 Профиль | | #3
Добавлено: 22.05.09 13:01
А поищите в строке, которая хранит число в двоичном виде такие сочетания 11 и 00 . Можно искать при помощи InStr.
Если эта функция InStr в обоих случаях вернет 0, то чередуется

Ответить

Номер ответа: 4
Автор ответа:
 Дмитрий Юпатов



Вопросов: 4
Ответов: 457
 Web-сайт: cargomaster.at.ua/
 Профиль | | #4
Добавлено: 22.05.09 13:40
Вот:
На форме 3 контрола Listbox - для вывода списка цисел, которые в двоичном представлении являются чередованием 0 и 1
TextBox - для ввода заданного натурального числа
Button - для запуска всего этого.
В листинг формы помещаем:
  1. Public Class Form1
  2.     Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
  3.         If IsNumeric(Me.TextBox1.Text) = False Then
  4.             MsgBox("А если число попробовать?", MsgBoxStyle.Exclamation)
  5.             Me.TextBox1.SelectionStart = 1
  6.             Me.TextBox1.SelectionLength = Me.TextBox1.Text.Length
  7.             Exit Sub
  8.         End If
  9.         Dim i As Integer
  10.         Dim binStr As String
  11.         For i = 0 To CInt(Me.TextBox1.Text)
  12.             binStr = Me.ConvertToBinary(i)
  13.             If InStr(binStr, "00", CompareMethod.Text) = 0 And InStr(binStr, "11", CompareMethod.Text) = 0 Then
  14.                 Me.ListBox1.Items.Add(i & "=" & binStr)
  15.             End If
  16.         Next
  17.     End Sub
  18.  
  19.     Private Function ConvertToBinary(ByVal Decim As Long) As String
  20.         Dim strReturn As String
  21.         Decim = CByte(Decim)
  22.         strReturn = System.Convert.ToString(Decim, 2)
  23.         ConvertToBinary = strReturn
  24.     End Function
  25. End Class

Вот и все! Заметь, что функция преобразования очень короткая, т.к. используются возможности .net

Ответить

Номер ответа: 5
Автор ответа:
 Дмитрий Юпатов



Вопросов: 4
Ответов: 457
 Web-сайт: cargomaster.at.ua/
 Профиль | | #5
Добавлено: 22.05.09 13:43
ах, да! В событие Button1_Click добавь в самое начало
  1. Me.ListBox1.Items.Clear()
для очистки списка перед просчетом очередного числа

Ответить

Номер ответа: 6
Автор ответа:
 Дмитрий Юпатов



Вопросов: 4
Ответов: 457
 Web-сайт: cargomaster.at.ua/
 Профиль | | #6
Добавлено: 22.05.09 13:48
MSDN-ом пользоваться у вас препод запрещает? :)

Ответить

Номер ответа: 7
Автор ответа:
 Дмитрий Юпатов



Вопросов: 4
Ответов: 457
 Web-сайт: cargomaster.at.ua/
 Профиль | | #7
Добавлено: 22.05.09 13:51
ой блин!!!! Прошу прощения, это ж ВБА........

Ответить

Номер ответа: 8
Автор ответа:
 VβÐUηìt



Вопросов: 246
Ответов: 3333
 Web-сайт: смекаешь.рф
 Профиль | | #8
Добавлено: 22.05.09 16:59
А кто автор вопроса?

Ответить

Номер ответа: 9
Автор ответа:
 



Вопросов: 2
Ответов: 1
 Профиль | | #9 Добавлено: 22.05.09 22:44
Спасибо Дмитрию Юпатову за проделанную работу!
Насчет остальных. Сайт для чего создан? Мне нельзя задать вопрос? Если все знаете, незачем этим кичиться! И при 2 парах в неделю как я могу знать VB?

Ответить

Номер ответа: 10
Автор ответа:
 Дмитрий Юпатов



Вопросов: 4
Ответов: 457
 Web-сайт: cargomaster.at.ua/
 Профиль | | #10
Добавлено: 22.05.09 23:09
Ну да не за что... Чего там...
Сам такой был недавно

Ответить

Номер ответа: 11
Автор ответа:
 AWP



ICQ: 345685652 

Вопросов: 96
Ответов: 1212
 Web-сайт: xawp.narod.ru
 Профиль | | #11
Добавлено: 22.05.09 23:09
Суть не в том чтобы не задавать вопросы, а в том что этот форум предназначен не для решения лаб. А огромного кол-во народа этого не понимает.

Ответить

Номер ответа: 12
Автор ответа:
 Ra$cal



ICQ: 8068014 

Вопросов: 18
Ответов: 817
 Web-сайт: www.rascalspb.narod.ru
 Профиль | | #12
Добавлено: 22.05.09 23:59
не надо путать школу с учебными заведениями уровнем выше. это в школе вам разжовывают каждый пример, решают кучи примеров, итд итп. в инсте времени у репода на это нету. даются основы. остальное - ваша личная забота. берете книжку, сайты с примерами, что угодно. хоть даже этот форум. пробуете чтото написать. показываете, что не получилось. спрашиваете по теме проблемы. а делать за вас никто не обязан нигде - хоть на форуме, хоть на улице если подойдете к прохожему. из топика очевидно нулевое желание напрячься - я бы таких кадров банил.

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам