2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




На страницу Пред.  1, 2
 
 Re: Помогите понять смысл задания
Сообщение02.03.2010, 12:26 
Mikle1990 в сообщении #293838 писал(а):
У меня так не выходит.
Ваша правда :)
В цикле поправил, а в первом операторе -- нет.
Естественно, должно быть так:
Код:
        Tmp = mis(n-1)
        For j = n-1 To 1 Step -1
            If Tmp < mis(j - 1) Then
                mis(j) = mis(j - 1)
                mis(j - 1) = Tmp
            Else
                Exit For
            End If
        Next

 
 
 
 Re: Помогите понять смысл задания
Сообщение02.03.2010, 12:44 
Спасибо :D

Кто-нибудь может мне подогнать ссылку, как выглядит блок схема с условным оператором и "Exit For"?)

Просто я блок схему сделал, а как бы и не получается линиями сделать так, чтоб видно было, что "Exit For".

Или надо просто написать(при невыполнении условия)в прямоугольнике "Exit For", а всё остальное оставить...?

 
 
 
 Re: Помогите понять смысл задания
Сообщение02.03.2010, 13:34 
Я думаю, лучше вообще цикл Do While использовать:
Код:
Tmp = mis(n-1)
j = n-1
Do While (j >= 1) And (mis(j-1) > Tmp)
    mis(j) = mis(j-1)
    mis(j-1) = Tmp
    j = j - 1
Loop

Тогда и с блок-схемой никаких проблем не будет

 
 
 
 Re: Помогите понять смысл задания
Сообщение02.03.2010, 16:34 
не работает когда первый элемент массива больше последнего)
"Индекс находился вне границ массива."

Щас буду пытаться исправлять)

 
 
 
 Re: Помогите понять смысл задания
Сообщение02.03.2010, 16:44 
Да можно и без j, только это немного неаккуратненько -- лучше не использовать одну переменную для разных целей (сначала хранение числа элементов массива, потом -- текущего значение индекса). В общем, это дело вкуса, но я б не стал. Ну а Вы сами решайте :)

-- Вт мар 02, 2010 16:49:45 --

Mikle1990 в сообщении #293914 писал(а):
не работает когда первый элемент массива больше последнего)
"Индекс находился вне границ массива."
А, ну да, это же VB: он всегда вторую часть And'а вычисляет, даже если первое условие не выполняется.

Из-за этого в VB.NET специальные операторы добавлены: AndAlso и OrElse.

 
 
 
 Re: Помогите понять смысл задания
Сообщение02.03.2010, 17:24 
Всё, разобрался. Спасибо! :D

 
 
 [ Сообщений: 21 ]  На страницу Пред.  1, 2


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group