Страница: 1 | 2 |
Вопрос: Помогите пожалуйста сделать задачи по VB
Добавлено: 16.12.07 14:35
Автор вопроса: 62733
51. В одномерном массиве с четным количеством элементов (2N) находятся координаты N точек плоскости. Они располагаются в следующем порядке: x1, y1, х2, y2, x3, y3, и т.д. Определить минимальный радиус круга с центром в начале координат, который содержит все точки.
248. Дана строка, содержащая текст на русском языке. Выбрать из него только те символы, которые встречаются в нем только один раз, в том порядке, в котором они встречаются в тексте.
Ответы
Всего ответов: 18
Номер ответа: 1
Автор ответа:
VerhoLom
Вопросов: 20
Ответов: 285
Профиль | | #1
Добавлено: 16.12.07 16:19
248. Примерно так:
'Переменные
Dim strString As String 'исходная строка
Dim strSym As String * 1 'каждый из перебираемых символов
Dim strRet As String 'результирующая строка
Dim i As Long 'Счетчик цикла
strString = TextBox1.Text 'берем текст из текстового окна
For i = 1 To Len(strString) 'перебираем каждый символ текста
strSym = Mid$(strString, i, 1) 'вырезаем один символ
If Not (strString Like "*" & strSym & "*" & strSym & "*" Then 'если очередной символ хотябы 2 раза встречается в тексте
'(* - любое кол-во любых символов),
'то пропускаем его,
'иначе заносим в результирующую строку
strRet = strRet & strSym & vbCrLf
End If
Next i
MsgBox strRet 'результат на экран
Номер ответа: 2
Автор ответа:
62733
Вопросов: 1
Ответов: 8
Профиль | | #2
Добавлено: 16.12.07 18:22
Спасибо огромное!!! Вы мне очень помогли.
Номер ответа: 3
Автор ответа:
62733
Вопросов: 1
Ответов: 8
Профиль | | #3
Добавлено: 16.12.07 18:25
а не сделаешь 51 задачю? я бы заплатила
Номер ответа: 4
Автор ответа:
Winand
Вопросов: 87
Ответов: 2795
Web-сайт:
Профиль | | #4
Добавлено: 16.12.07 22:44
Как интересно) Мне вот тоже нужно сделать 51 задачу, только на Си++
Номер ответа: 5
Автор ответа:
Winand
Вопросов: 87
Ответов: 2795
Web-сайт:
Профиль | | #5
Добавлено: 16.12.07 22:54
аа, блин я туплю В смысле "51-ую задачу"
В 51 надо посчитать какая точка самая отдаленная от центра по формуле sqr(Xi*Xi+Yi*Yi)
Номер ответа: 6
Автор ответа:
62733
Вопросов: 1
Ответов: 8
Профиль | | #6
Добавлено: 16.12.07 22:56
а ты ее на VB можешь сделать???
Номер ответа: 7
Автор ответа:
ZoomerSD
ICQ: 148640473
Вопросов: 135
Ответов: 270
Профиль | | #7
Добавлено: 16.12.07 22:57
51:
Dim mas(2N-1) As Integer'Исходный массив
Dim leng(N - 1) As Double'Массив с длинами
Dim maximum As Integer' переменная для макисмальной длинны
maximum = 0' обнуляем переменую
For i = 0 To N
leng(i) = Sqr((mas(2 * i) ^ 2) + (mas((2 * i) + 1) ^ 2))'вычисляем удаление каждой точки от начала координат по теореме пифагора
If leng(maximum) < leng(i) Then maximum = i' смотрим если расстояние больше текущего максимального значение, то записываем его в переменную
Next
MsgBox leng(maximum)'выводим макисмальное значение
Принцип такой: минимальным радусом круга будет самое большое расстояние от одной из точек до центра координатной плоскости
Номер ответа: 8
Автор ответа:
62733
Вопросов: 1
Ответов: 8
Профиль | | #8
Добавлено: 16.12.07 22:59
ой какая прелесть!!! БОЛЬШОЕ СПАСИБО!!!
Номер ответа: 9
Автор ответа:
Winand
Вопросов: 87
Ответов: 2795
Web-сайт:
Профиль | | #9
Добавлено: 16.12.07 23:10
Dim arr() As Long
Dim max_dist As Single 'Расстояние от самой отдаленной т. до центра
Private Sub Form_Load()
Dim i As Long 'Счетчик
Dim N As Long 'Кол-во элементов
Dim tmp_dist As Single 'Расстояние от текущ.т. до центра
'Ввод данных
Call Randomize
N = Val(InputBox("Введите количество точек плоскости:", , 20))
ReDim arr(2 * N)
For i = 0 To UBound(arr)
arr(i) = Int(Rnd * 100) 'Заполняем массив случайными значениями
Next i
'-----------
'Нахождение минимального радиуса круга
For i = 0 To UBound(arr) - 1 Step 2
tmp_dist = Sqr(arr(i) ^ 2 + arr(i + 1) ^ 2)
If tmp_dist > max_dist Then
max_dist = tmp_dist
End If
Next i
'-------------------------------------
Debug.Print max_dist
End Sub
вместо Debug.Print max_dist можешь юзать MsgBox max_dist
Номер ответа: 10
Автор ответа:
Администратор
ICQ: 278109632
Вопросов: 42
Ответов: 3949
Web-сайт:
Профиль | | #10
Добавлено: 16.12.07 23:21
Вот вам 51-я задача Буите должны как земля колхозам
Private Sub Form_Load()
Me.AutoRedraw = True
Dim VectorLength As Double, MaxLength As Double
Dim MinRadius As Double
Dim a(1 To N * 2) ' массив координат
' заполняем массив
a(1) = -120: a(2) = 340
a(3) = 12: a(4) = 36
a(5) = 200: a(6) = -12
MaxLength = 0
For i = 1 To N * 2 Step 2
' формула нахождения длины вектора (0;0)-(x;y)
VectorLength = Sqr((0 - a(i)) * (0 - a(i)) + (0 - a(i + 1)) * (0 - a(i + 1)))
' максимально длинный вектор и будет минимальным радиусом окружности
If MaxLength < VectorLength Then MaxLength = VectorLength
Next
MinRadius = MaxLength
Me.Print "Минимальный радиус = " & Str(MinRadius)
End Sub
Номер ответа: 11
Автор ответа:
Администратор
ICQ: 278109632
Вопросов: 42
Ответов: 3949
Web-сайт:
Профиль | | #11
Добавлено: 16.12.07 23:21
не успел)
Номер ответа: 12
Автор ответа:
62733
Вопросов: 1
Ответов: 8
Профиль | | #12
Добавлено: 16.12.07 23:21
ОГРОМНЕЙШЕЕ СПАСИБО!!! ТЫ мне ОЧЕНЬ помог!!!
Номер ответа: 13
Автор ответа:
62733
Вопросов: 1
Ответов: 8
Профиль | | #13
Добавлено: 16.12.07 23:23
все равно СПАСИБО!!! может это тоже пригодиться
Номер ответа: 14
Автор ответа:
Winand
Вопросов: 87
Ответов: 2795
Web-сайт:
Профиль | | #14
Добавлено: 16.12.07 23:29
Executioner, (0 - a(i)) * (0 - a(i)) - это типа общий случай? для круга с центром в заданной точке надо было сделать
Номер ответа: 15
Автор ответа:
62733
Вопросов: 1
Ответов: 8
Профиль | | #15
Добавлено: 16.12.07 23:39
что надо было сделать???