Фрилансер
452 / 433 / 117
Регистрация: 01.06.2010
Сообщений: 1,314
|
|
1 | |
Цикл с параметром24.07.2010, 19:13. Показов 3281. Ответов 27
Метки нет (Все метки)
Если в процессе цикла содержимое списка (List) не изменяется, то я бы рекомендовал инвариантное вычисление (List.Count-1) вынести за пределы цикла...
Код
cnt:=List.Count-1; for i:=0 to cnt do begin //здесь тело цикла end;
0
|
24.07.2010, 19:13 | |
Ответы с готовыми решениями:
27
Цикл с параметром цикл с параметром for Задача на цикл с параметром.Массивы Цикл с параметром: вычислить значение функции |
3218 / 2361 / 540
Регистрация: 11.09.2009
Сообщений: 8,604
|
|
25.07.2010, 06:11 | 2 |
Mad_Dog, в любом цикле for число повторов цикла всегда вычисляется заранее. Почитайте Help.
1
|
Фрилансер
452 / 433 / 117
Регистрация: 01.06.2010
Сообщений: 1,314
|
||||||
25.07.2010, 11:50 [ТС] | 3 | |||||
i8085, изучай объектно-ориентированное программирование, а конкретно вызов методов!!!
Вот это
0
|
476 / 444 / 34
Регистрация: 20.11.2009
Сообщений: 1,293
|
||||||
25.07.2010, 12:20 | 4 | |||||
Mad_Dog,
1
|
Фрилансер
452 / 433 / 117
Регистрация: 01.06.2010
Сообщений: 1,314
|
|
25.07.2010, 12:31 [ТС] | 5 |
Хохол, и что это??? и к чему все это???
0
|
476 / 444 / 34
Регистрация: 20.11.2009
Сообщений: 1,293
|
|
25.07.2010, 12:35 | 6 |
Начальное и конечное значение параметра цикла вычисляется один раз.
1
|
Фрилансер
452 / 433 / 117
Регистрация: 01.06.2010
Сообщений: 1,314
|
|
25.07.2010, 12:41 [ТС] | 7 |
Хохол, а где тут объекты и вызовы методов этих объектов????
0
|
476 / 444 / 34
Регистрация: 20.11.2009
Сообщений: 1,293
|
|
25.07.2010, 12:42 | 8 |
Mad_Dog, а какая разница?
1
|
Фрилансер
452 / 433 / 117
Регистрация: 01.06.2010
Сообщений: 1,314
|
||||||
25.07.2010, 12:46 [ТС] | 9 | |||||
Хохол, ты меня чуть не убил!!!
Посмотри следующий код и скажи ка мне будет ли он правильно работать:
0
|
476 / 444 / 34
Регистрация: 20.11.2009
Сообщений: 1,293
|
||||||
25.07.2010, 12:51 | 10 | |||||
Mad_Dog,
1
|
Фрилансер
452 / 433 / 117
Регистрация: 01.06.2010
Сообщений: 1,314
|
|
25.07.2010, 12:55 [ТС] | 11 |
Я много занимался анализом подобных циклов и у меня есть опыт работы с такими вещами, поэтому впустую спорить не буду и останусь при своем мнении. А этот код вполовину впустую работать не будет, так как возникнет исключительная ситуация при выходе за границы цикла... Потому, что при удалении итемов значение ListBox.Items.Count уменьшается...
0
|
476 / 444 / 34
Регистрация: 20.11.2009
Сообщений: 1,293
|
|
25.07.2010, 13:03 | 12 |
Ну значит про ваш код я наврал из-за незнания ListBox. А про подобные циклы - вы не можете запустить мой код и посмотреть, что он выведет?
Добавлено через 3 минуты Делфи хелп: А ваш код, кстати, опровергает ваше же мнение. Раз происходит ошибка выхода за границы.
1
|
Фрилансер
452 / 433 / 117
Регистрация: 01.06.2010
Сообщений: 1,314
|
|
25.07.2010, 13:03 [ТС] | 13 |
А ты напиши в теле цикла операцию уменьшения значения верхней границы цикла и посмотри как она будет изменяться в отладчике... Именно это у меня и сделано (неявно). Ну все, я закончил флудильню... Я просто к тому, что инвариантные вычисления нужно выносить за пределы циклов. А вызов метода ListBox.Items.Count и есть то самое инвариантное вычисление... Значение ListBox.Items.Count может и не изменяться, но вычисляться оно будет каждый раз при проверке выхода параметра цикла за верхнюю границу... Просто нужно разбираться где это константа, а где занчение изменяемое и вычисляемое...
0
|
476 / 444 / 34
Регистрация: 20.11.2009
Сообщений: 1,293
|
||||||
25.07.2010, 13:07 | 14 | |||||
Ну почему же флудильня. Конструктивный спор, помогающий вам избавиться от (возможно, вредного) заблуждения. Разве что оффтоп немного.
1
|
Фрилансер
452 / 433 / 117
Регистрация: 01.06.2010
Сообщений: 1,314
|
|
25.07.2010, 13:13 [ТС] | 15 |
Да ты не путай переменные целочисленного типа в качестве верхней границы цикла и вызов метода объекта, возвращающий значение верхней границы цикла. Мы говорим о совершенно разных вещах, а ты мне доказываешь, что я заблуждаюсь...
0
|
476 / 444 / 34
Регистрация: 20.11.2009
Сообщений: 1,293
|
|
25.07.2010, 13:18 | 16 |
Я не согласен со следующей фразой:
Вы утверждаете, что метод будет вызываться при каждой итерации цикла. Я показал, что это не так.
1
|
Фрилансер
452 / 433 / 117
Регистрация: 01.06.2010
Сообщений: 1,314
|
|
25.07.2010, 13:22 [ТС] | 17 |
Ой, да ради Бога, продолжай заблуждаться и дальше...
0
|
476 / 444 / 34
Регистрация: 20.11.2009
Сообщений: 1,293
|
|
25.07.2010, 13:24 | 18 |
Мда, упрямство редкостное. Ну, ради бога.
0
|
Фрилансер
452 / 433 / 117
Регистрация: 01.06.2010
Сообщений: 1,314
|
|
25.07.2010, 13:25 [ТС] | 19 |
Упрямство, основанное на собственном опыте...
0
|
476 / 444 / 34
Регистрация: 20.11.2009
Сообщений: 1,293
|
|
25.07.2010, 13:28 | 20 |
Не по теме: Черт, видимо я тоже упрямый. Можете ли вы привести из собственного опыта кусок кода, доказывающий это утверждение?
0
|
25.07.2010, 13:28 | |
25.07.2010, 13:28 | |
Помогаю со студенческими работами здесь
20
Задание. Цикл с параметром. Нужна подсказка Цикл с параметром: определить, сколько чисел из последовательности принимает максимальное значение Создать программу по всем 3 видам циклов...цикл с параметром,цикл с условием,цикл,и цикл с предусловием... Цикл с предусловием, цикл с постусловием и цикл с параметром Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |