Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.06.2010, 16:11   #1
Lewd
Новичок
Джуниор
 
Регистрация: 07.06.2010
Сообщений: 1
По умолчанию наити три деиствтельных числа в интервале 10 до 99

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

наити три простых числа в интервале 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
Lewd вне форума Ответить с цитированием
Старый 07.06.2010, 16:38   #2
Филантроп
Форумчанин
 
Аватар для Филантроп
 
Регистрация: 12.04.2010
Сообщений: 134
По умолчанию

Цитата:
pn = 0 ======>не понятно
обнуление счетчика
[QUOTE]5 For i = 10 To 99 ====> не понятно что за цифрв 5/QUOTE]
цифра 5 тупо метка
Цитата:
If pn = 3 Then GoTo 10 ======> тут все не понятно
если 3 числа найдены выход из цикла
Цитата:
10
тоже тупо метка
Цитата:
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
если стороны не подходят удаляем 1 сторону и уменьшаем счетчик и идем на 5-ку
кому нужна помощь! жду в аське и скайпе!
Филантроп вне форума Ответить с цитированием
Старый 07.06.2010, 16:42   #3
Snejnaya
Форумчанин
 
Регистрация: 12.05.2010
Сообщений: 219
По умолчанию

GoTo 5 ==== тоже
все эти "непонятные" числа - это метки. Т.е. после операции GoTo 5 программа переходит к выполнению поиска простых чисел, т.е. к строке

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


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

тут программа тупо перебирает все числа от 2 до i-2 и смотрит, не равен ли остаток от деление числа i на какое-нибудь из этих чисел 0. Если равен - число явно не простое. Если не равен - все ок. Диапазон 2-(i-1) выбран потому что нет смысла делить число на 1 и на само себя.

If f = 0 Then
если число, которое мы рассматриваем, оказалось простым...

pn = pn + 1
p(pn) = i

занесли его в массив простых чисел следующим по списку. среди уже занесенных
If pn = 3 Then GoTo 10 ======> тут все не понятно
если таких простых чисел уже накопилось 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 ==== тоже
если не могут, то выкидываем первое из найденных чисел из массива (меньшее), два других сдвигаем со 2 и 3 позиции на 1 и 2 соответственно, длину массива pn делаем равной 2 и ищем следующее простое число, перейдя на строку с меткой 5
Snejnaya вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Pascal В интервале целых чисел найти все числа кратные 7 NewBi Помощь студентам 5 19.03.2010 19:55
Си наити факториал большого числа и вывести в виде массива Владимир #include Помощь студентам 2 28.10.2008 13:13
True или False, в зависимости от того, имеют три данных числа одинаковую четность DjVidan Помощь студентам 4 12.10.2008 22:02
Даны три числа. Выберите те из них, которые принадлежат заданному отрезку [а, b]. Sheff903 Помощь студентам 1 27.11.2007 21:28