Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / People, I need help! / 25 сообщений из 25, страница 1 из 1
06.04.2006, 09:35
    #33647995
sanja55
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
People, I need help!
Ребят, выручайте! Такая ситуация, что мой информатик чтобы поставить зачет сказал что нужно сделать 2 задания, я обзвонив всех друзей, знакомых, знакомых учителей, которые хоть как-то могли бы мне помочь, понял, что кроме вас мне не к кому больше обратиться по этому вопросу . Вот эти 2 задачи

1) Заданное число А=0,53125 представить в разрядной сетке с одинарной точностью (тип числа SINGLE для VBA).

2) На листе электронной таблицы размещены значения одномерного массива (количество элементов равно 10). Найти минимальный элемент среди нечетных элементовмассива и поместить его на 5-ой строке в колонке С. Написать текст программы на языке программирования VBA.

Заранее спасибо за помощь.
...
Рейтинг: 0 / 0
06.04.2006, 09:46
    #33648012
nibbles
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
People, I need help!
ну, и...?
Что вызвало затруднения или трудности? В чем вопрос-то?
или это не вопрос, а ЗАПРОС из разряда "дяденьки, сделайте за-бесплатно!" ?
...
Рейтинг: 0 / 0
06.04.2006, 09:49
    #33648019
sanja55
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
People, I need help!
Вот первое я если честно вообще не знаю как делать, а второе я сделал вот так :
Sub Макрос()
Dim ProvZnach As Integer
ProvZnach = Cells(1, 1)
For i = 1 To 10
If i Mod 2 <> 0 Then
If ProvZnach > Cells(1, i) Then
ProvZnach = Cells(1, i)
End If
End If
Next
Cells(5, 3) = ProvZnach
End Sub
Это правильно?
...
Рейтинг: 0 / 0
06.04.2006, 09:50
    #33648025
nibbles
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
People, I need help!
1. перевести число в двоичную систему счисления
2. представить его в экспоненциальной форме
3. получить исходный порядок и мантиссу
4. получить смещенный порядок
...
Рейтинг: 0 / 0
06.04.2006, 09:51
    #33648028
sanja55
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
People, I need help!
а второе правильно?
...
Рейтинг: 0 / 0
06.04.2006, 09:53
    #33648031
nibbles
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
People, I need help!
sanja55Вот первое я если честно вообще не знаю как делать, а второе я сделал вот так :
Sub Макрос()
Dim ProvZnach As Integer
ProvZnach = Cells(1, 1)
For i = 1 To 10
If i Mod 2 <> 0 Then
If ProvZnach > Cells(1, i) Then
ProvZnach = Cells(1, i)
End If
End If
Next
Cells(5, 3) = ProvZnach
End Sub
Это правильно?
Зависит от того, что понимается под "нечетным элементом массива" - нечетное значение элемента или нечетный порядковый номер элемента...
Если порядковый номер, то правильно

По представлению данных в памяти ЭВМ (разрядные сетки и т.д.) смотрите тут
...
Рейтинг: 0 / 0
06.04.2006, 10:01
    #33648052
Ashton
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
People, I need help!
sanja552) На листе электронной таблицы размещены значения одномерного массива (количество элементов равно 10). Найти минимальный элемент среди нечетных элементовмассива и поместить его на 5-ой строке в колонке С. Написать текст программы на языке программирования VBA.


Если поиск минимального значения среди нечетных значений элементов массива.

Данные:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
     A
1   10
2   25
3   30
4   45
5   50
6   65
7   70
8   85
9   90
10  105

Программа:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
Sub FindMin()
    Dim rng As Range
    Dim lngMin As Long
    Dim blnFirst As Boolean
    
    Set rng = Worksheets("Лист1").Range("A1:A10")
    
    blnFirst = True
    
    For Each rng In rng.Cells
        If CBool(rng.Value Mod  2 ) Then
            If blnFirst Then
                lngMin = rng.Value
                blnFirst = Not blnFirst
            Else
                If rng.Value < lngMin Then
                    lngMin = rng.Value
                End If
            End If
        End If
    Next rng
    
    Worksheets("Лист1").Range("C5") = lngMin
End Sub

И еще, ты пишешь минимальное, а сам ищещь максимальное.

If ProvZnach < Cells(1, i) Then
ProvZnach = Cells(1, i)
End If
...
Рейтинг: 0 / 0
06.04.2006, 10:01
    #33648054
sanja55
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
People, I need help!
С первым у меня получилось что 0,53125 = 0,10001 в двоичной
1,0001Е-1
р исх = -1 Р смещ = 127-1=126

а как 126 перевести в двоичную систему?
...
Рейтинг: 0 / 0
06.04.2006, 10:34
    #33648162
sanja55
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
People, I need help!
Sub Макрос()
Dim ProvZnach As Integer
ProvZnach = Cells(1, 1)
For i = 1 To 10
If i Mod 2 <> 0 Then
If ProvZnach < Cells(1, i) Then
ProvZnach = Cells(1, i)
End If
End If
Next
Cells(5, 3) = ProvZnach
End Sub


Я щас попробовал в VB это сделать - ниче не получилось, он, как я понял, просто выводит в (5,3) число из (1,1)...((((( Что делать?
...
Рейтинг: 0 / 0
06.04.2006, 10:43
    #33648203
Ashton
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
People, I need help!
У тебя цикл идет по столбцам, а не по строкам.

Cells( [RowIndex] , [ColumnIndex] )

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
Sub Макрос()
    Dim i As Integer
    Dim ProvZnach As Integer
    
    ProvZnach = Cells( 1 ,  1 )
    
    For i =  1  To  10 
        If i Mod  2  <>  0  Then
            If Cells(i,  1 ) < ProvZnach Then
                ProvZnach = Cells(i,  1 )
            End If
        End If
    Next i
    
    Cells( 5 ,  3 ) = ProvZnach
End Sub
...
Рейтинг: 0 / 0
06.04.2006, 10:48
    #33648220
Ashton
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
People, I need help!
Здесь, ты вначале правильно написал. Мое утверждение по поводу знака, прошу считать недействительным. :)

Код: plaintext
1.
2.
If ProvZnach > Cells(i,  1 ) Then
    '...
End If
...
Рейтинг: 0 / 0
06.04.2006, 10:53
    #33648242
sanja55
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
People, I need help!
Sub Ìàêðîñ1()
Dim i As Integer
Dim ProvZnach As Integer

ProvZnach = Cells(1, 1)

For i = 1 To 10
If i Mod 2 <> 0 Then
If Cells(i, 1) > ProvZnach Then
ProvZnach = Cells(i, 1)
End If
End If
Next i

Cells(5, 3) = ProvZnach
End Sub


Делаю так, он опять мне выдает просто число из (1,1) хотя оно не является минимальным элементом среди нечетных элементов массива( Блин!! Help me!^)
...
Рейтинг: 0 / 0
06.04.2006, 11:10
    #33648302
Ashton
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
People, I need help!
Ты невнимательно читаешь.

Обрати внимание на расположение операторов и знак.

Мой вариант.

Код: plaintext
1.
2.
    If Cells(i,  1 ) < ProvZnach Then
        ProvZnach = Cells(i,  1 )
    End If

То же самое, что написал ты в начале.

Код: plaintext
1.
2.
    If ProvZnach > Cells(i,  1 ) Then
        ProvZnach = Cells(i,  1 )
    End If

Эти варианты приведут к одинаковому результату.
...
Рейтинг: 0 / 0
06.04.2006, 11:15
    #33648338
sanja55
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
People, I need help!
Ashton, пасибо тебе огромное!!!!!!!!!!!! Все получилось!!!!!! ;) А ты знаешь, как перевести число 126 в двоичную систему?
...
Рейтинг: 0 / 0
06.04.2006, 11:22
    #33648387
sanja55
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
People, I need help!
АААА, нет он работает только он просто выдает минимальное значение, а не минимальное среди нечетных....:(


Sub Ìàêðîñ1()
Dim i As Integer
Dim ProvZnach As Integer

ProvZnach = Cells(1, 1)

For i = 1 To 10
If i Mod 2 <> 0 Then
If Cells(i, 1) < ProvZnach Then
ProvZnach = Cells(i, 1)
End If
End If
Next i

Cells(5, 3) = ProvZnach
End Sub
...
Рейтинг: 0 / 0
06.04.2006, 11:27
    #33648410
nibbles
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
People, I need help!
sanja55А ты знаешь, как перевести число 126 в двоичную систему?
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
' Символы системы счисления (до 35-ричной)
Private Const strChars          As String = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
Public Const CONST_MAX_DIGIT    As Integer =  36       ' Система счисления по умолчанию
Public Const CONST_LEN_ID       As Integer =  7           ' Длина значащей части ID


' ============================================================
' Назначение:
'           Перевод десятичного числа в lngDigit-ую систему счисления
' Аргументы:
'           Число в десятичном представлении
'           Новая система счисления
'           Маска ввода
' Автор:    nibbles&sql.ru
' Пример: debug.print ConvertFromAny(126,2)
' ============================================================
Public Function ConvertFromAny(ByVal lngValue As Double, _
                                Optional ByVal iDigit As Integer = CONST_MAX_DIGIT, _
                                Optional ByVal iMaskFull As Integer = CONST_LEN_ID) As String
Dim a           As Double
Dim a1          As Double
Dim b           As Double

    ConvertFromAny = ""
    If lngValue <  0  Then Exit Function
    a1 = lngValue
    Do
        ' Результат целочисленного деления
        a = Int(a1 / iDigit)
        b = a1 - iDigit * a
        ConvertFromAny = Mid$(strChars, b +  1 ,  1 ) & ConvertFromAny
        a1 = a
        If a < iDigit And a >  0  Then
            ConvertFromAny = Mid$(strChars, a +  1 ,  1 ) & ConvertFromAny
            Exit Do
        End If
    Loop While a >  0 

    ' Добить маской
    If Len(ConvertFromAny) < iMaskFull Then
        ConvertFromAny = String$(iMaskFull - Len(ConvertFromAny), "0") & ConvertFromAny
    End If

End Function
...
Рейтинг: 0 / 0
06.04.2006, 11:29
    #33648425
sanja55
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
People, I need help!
я немного не это имел в виду, мне нужно просто перевести 126 в двоичную систему, а не с помощью программы.... ну всмысле например 88 в шестнадцатиричной = это 10001000 в двоичной, а 126 (в десятичной) чему равно в двоичной??
...
Рейтинг: 0 / 0
06.04.2006, 11:32
    #33648438
Ashton
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
People, I need help!
sanja55АААА, нет он работает только он просто выдает минимальное значение, а не минимальное среди нечетных....:(
Все нормально работает программа ищет минимум среди нечетных порядковых номеров элементов массива.
...
Рейтинг: 0 / 0
06.04.2006, 11:36
    #33648451
nibbles
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
People, I need help!
sanja55я немного не это имел в виду, мне нужно просто перевести 126 в двоичную систему, а не с помощью программы.... ну всмысле например 88 в шестнадцатиричной = это 10001000 в двоичной, а 126 (в десятичной) чему равно в двоичной??
"1111110"
...
Рейтинг: 0 / 0
06.04.2006, 11:36
    #33648454
sanja55
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
People, I need help!
Аштон, да это я там просто в одной строчке ошибся, извини, спасибо тебе огромное!:) А что такое ProvZnach?...это наверное совсем глупый вопрос, это назвыание массива?
...
Рейтинг: 0 / 0
06.04.2006, 12:03
    #33648587
Ashton
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
People, I need help!
sanja55Аштон, да это я там просто в одной строчке ошибся, извини, спасибо тебе огромное!:) А что такое ProvZnach?...это наверное совсем глупый вопрос, это назвыание массива?
Как же так, ты написал программу, а не знаешь, что такое ProvZnach? :)

ProvZnach - это переменная с типом данных "Integer", предназначенная для хранения целых цисел, в нашем случае, в ней мы сохраняем минимальное значение среди нечетных порядковых номеров элементов массива.
...
Рейтинг: 0 / 0
06.04.2006, 20:23
    #33650437
sanja55
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
People, I need help!
Ashton, спасибо тебе еще раз огромное, не знаю что бы без тебя делал... :)
...
Рейтинг: 0 / 0
06.04.2006, 20:42
    #33650460
AndreyMp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
People, I need help!
Я могу вспомнить алгоритм где 1=0 или 2=1, точно не помню. Если хочешь выпендртся перед матиматиком, то подкину. Вообще это секреты физтеха и матмеха.
...
Рейтинг: 0 / 0
06.04.2006, 21:21
    #33650491
sanja55
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
People, I need help!
AndreyMp , всмысле алгоритм где 1=0 или 2=1???
...
Рейтинг: 0 / 0
07.04.2006, 09:42
    #33650921
HandKot
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
People, I need help!
AndreyMpЯ могу вспомнить алгоритм где 1=0 или 2=1, точно не помню. Если хочешь выпендртся перед матиматиком, то подкину. Вообще это секреты физтеха и матмеха.

хотя немного не по теме, но очень интересно, в целях самообразования
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / People, I need help! / 25 сообщений из 25, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]