Помогите с разяснением

Тема в разделе "Visual Basic", создана пользователем xlewdx, 7 июн 2010.

  1. xlewdx

    xlewdx Гость

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

    наити три простых числа в интервале 10 до 99 , величины которых образуют стороры треугольника
    код в визуал беисике

    Private Sub Command1_Click()

    Dim p(3)
    pn = 0 ======>не понятно

    'поиск простых чисел =======> не понятно
    5 For i = 10 To 99 ====> не понятно что за цифрв 5
    f = 0

    For j = 2 To i - 1 ====== не понятно
    If i Mod j = 0 Then f = 1
    Next


    If f = 0 Then

    pn = pn + 1
    p(pn) = i
    If pn = 3 Then GoTo 10 ======> тут все не понятно
    End If
    Next

    10 =====> что это за число 10 ,почему оно тут.

    a = p(1)
    b = p(2)
    c = p(3)

    'проверка неравенств треугольника
    If a + b <= c Or a + c <= b Or b + c <= a Then p(1) = p(2): p(2) = p(3): pn = 2: GoTo 5 ==== тоже не поиму

    Text1.Text = a
    Text2.Text = b
    Text3.Text = c

    Заранее спасибо
     
  2. gaw

    gaw Гость

    Private Sub Command1_Click()

    Dim p(3) ' объявляем массив для трех
    pn = 0 ' пока количество найденных чисел равно 0

    'поиск простых чисел =======> не понятно
    5 ' метка для возврата, если не выполняется условие треугольника
    For i = 10 To 99 ' в цикле от 10 до 99 /по условию задачи/
    f = 0 ' признак простого числа

    For j = 2 To i - 1 ' в цикле от 2 (на 1 делить тривиально)
    'до i - 1 /быстрее до sqr(i)/
    If i Mod j = 0 Then f = 1 'если остаток от деления i на j
    ' равен 0 /не простое/-то принак простого числа =1
    Next

    'если в цикле не изменился признак f = 0
    If f = 0 Then

    pn = pn + 1 'то увеличиваем количество найденных на 1
    p(pn) = i ' и записываем найденное число в массив
    If pn = 3 Then GoTo 10 'если таких чисел 3 (по условию) то переходим на метку 10
    End If ' если меньше 3 , - продолжаем цикл
    Next

    10 'метка перехода в случае - 3 числа найдены

    a = p(1)
    b = p(2)
    c = p(3)

    'проверка неравенств треугольника
    'если хотя бы одно из условий выполнено то
    If a + b <= c Or a + c <= b Or b + c <= a Then _
    p(1) = p(2): p(2) = p(3): pn = 2 'первый елемент как бы отбрасываем
    'оставляя 2 и 3 и их количество принимаем 2
    GoTo 5 'в этом случае возвращаемся на метку 5 для поиска 3 числа
    End If
    'в случае невыполнения ни одного из условий (выше)
    'считаем, что три числа согласно условию найдены (выводим их)
    Text1.Text = a
    Text2.Text = b
    Text3.Text = c
     
  3. xlewdx

    xlewdx Гость

    Спасибо огромное Вы меня выручили очень.
     
Загрузка...
Похожие Темы - Помогите разяснением
  1. limbra
    Ответов:
    3
    Просмотров:
    46
  2. NylevoiChelovek
    Ответов:
    4
    Просмотров:
    107
  3. Ruska132
    Ответов:
    46
    Просмотров:
    382
  4. gURaBA_N
    Ответов:
    7
    Просмотров:
    148
  5. uxbmw3w
    Ответов:
    0
    Просмотров:
    66

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