2014 dxdy logo

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

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




Начать новую тему Ответить на тему На страницу Пред.  1, 2
 
 Re: Помогите понять смысл задания
Сообщение02.03.2010, 12:26 
Заслуженный участник


09/08/09
3438
С.Петербург
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 


14/12/09
306
Спасибо :D

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

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

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

 Профиль  
                  
 
 Re: Помогите понять смысл задания
Сообщение02.03.2010, 13:34 
Заслуженный участник


09/08/09
3438
С.Петербург
Я думаю, лучше вообще цикл 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 


14/12/09
306
не работает когда первый элемент массива больше последнего)
"Индекс находился вне границ массива."

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

 Профиль  
                  
 
 Re: Помогите понять смысл задания
Сообщение02.03.2010, 16:44 
Заслуженный участник


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

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

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

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

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


14/12/09
306
Всё, разобрался. Спасибо! :D

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 21 ]  На страницу Пред.  1, 2

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group