Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2008.10.12;
Скачать: [xml.tar.bz2];

Вниз

О как!   Найти похожие ветки 

 
TUser ©   (2008-08-20 15:20) [0]

Что напечатает программа (чур, в уме)?

{$apptype console}

var i: integer;
begin
 i := 0;
 repeat
   inc (i);
   if i < 10 then continue;
 until i < 20;
 writeln (i);
end.


 
brother ©   (2008-08-20 15:22) [1]

1 ?


 
Ega23 ©   (2008-08-20 15:27) [2]

20


 
Сергей М. ©   (2008-08-20 15:28) [3]


> О как!
>


А что "о как" ?

Не лезь в телах for- и repeat-циклов в содержимое переменной цикла, тогда и "чудес" не приключится)


 
Сергей М. ©   (2008-08-20 15:29) [4]


> until i < 20


О как !
Тут и "чудес"-то вовсе нет)


 
brother ©   (2008-08-20 15:32) [5]

> 20

нифига) 0+1...в конец цикла... там i<20? тогда writeln.... те 1 )))


 
Ega23 ©   (2008-08-20 15:33) [6]


> Ega23 ©   (20.08.08 15:27) [2]
>
> 20
>


Точнее, конечно 1. На until не так посмотрел.


 
Rouse_ ©   (2008-08-20 15:33) [7]

repeat
 ...
until False;

выход произойдет на первой же итерации


 
brother ©   (2008-08-20 15:33) [8]

>   if i < 10 then continue;

в данном коде эта строчка лишина смысла...


 
Игорь Шевченко ©   (2008-08-20 15:41) [9]


> repeat
>  ...
> until False;


почему False ?


 
oldman ©   (2008-08-20 15:42) [10]


> Что напечатает программа (чур, в уме)?


В уме программа ничего не напечатает
:)


 
brother ©   (2008-08-20 15:43) [11]

> В уме программа ничего не напечатает
> :)

у меня явно напечаталось 1 )))))) разные умы?)))))))))


 
Германн ©   (2008-08-20 15:47) [12]


> TUser ©   (20.08.08 15:20)

А в чем прикол то? В continue?


 
Vlad Oshin ©   (2008-08-20 15:49) [13]

:)

Project1.dpr.8: if i < 10 then continue;
004040BD 83FB0A           cmp ebx,$0a  \\ сравнил, а на флаги забил
Project1.dpr.9: until i < 20;
004040C0 83FB14           cmp ebx,$14  \\сравнил
004040C3 7DEE             jnl $004040b3 \\ тут не забил

причем, даже при отключенной оптимизации, не сравнивает первый раз
Хотя, по идее, должен бы был


 
Rouse_ ©   (2008-08-20 16:01) [14]


> почему False ?

Для вечного цикла.
while True do ...
и
repeat ... until False;


 
oldman ©   (2008-08-20 16:03) [15]


> Rouse_ ©   (20.08.08 16:01) [14]
> Для вечного цикла.


Шампунь имеет свойство кончаться?


 
McSimm ©   (2008-08-20 16:05) [16]

у меня в уме 10 получается,
проверить никак не могу.


 
Игорь Шевченко ©   (2008-08-20 16:06) [17]


> Для вечного цикла.


а где в этой программе вечный цикл ?


 
Rouse_ ©   (2008-08-20 16:07) [18]


> Шампунь имеет свойство кончаться?

Да мне так проще было в свое время запомнить по какому условию выход происходит :) Запомнить запомнил - да так на всегда и осталось :)


 
McSimm ©   (2008-08-20 16:08) [19]


> мне так проще было

мне проще было запомнить фразу "пока не".
Помогает и в паскале и в английском :)


 
Rouse_ ©   (2008-08-20 16:09) [20]


> а где в этой программе вечный цикл ?

Не цепляйся :) Я просто показал условие по которому цикл будет работать и для этого указал про выход на первой итерации, бо условие не верно для продолжения работы :)


 
oldman ©   (2008-08-20 16:15) [21]


> Rouse_ ©   (20.08.08 16:09) [20]
> > а где в этой программе вечный цикл ?
> Не цепляйся


Читаем (желательно вслух и с выражением):


> Rouse_ ©   (20.08.08 16:01) [14]
> > почему False ?
> Для вечного цикла.
> while True do ...
> и
> repeat ... until False;


Не шути так больше...
:)


 
McSimm ©   (2008-08-20 16:16) [22]


> указал про выход на первой итерации

А тут у меня с continue проблемы возникли, привык, что в "начало" цикла перебрасывает :)
repeat почти не пользовался, похоже привычка неправильная.


 
Rouse_ ©   (2008-08-20 16:16) [23]


> Не шути так больше...

Эмнь... а чего не так? :)


 
oldman ©   (2008-08-20 16:19) [24]


> Rouse_ ©   (20.08.08 16:16) [23]
> Эмнь... а чего не так? :)


Все так.
Но не хочется искать еще и выход из цикла твоих мессаг.
:)


 
Rouse_ ©   (2008-08-20 16:20) [25]

:))


 
Игорь Шевченко ©   (2008-08-20 16:27) [26]

цикл, приведенный в программе, вообще-то

repeat
...
until true;


 
Rouse_ ©   (2008-08-20 16:32) [27]

repeat until true бессмысленен сам по себе без манипуляций с итератором :)


 
TUser ©   (2008-08-20 17:11) [28]


> А в чем прикол то? В continue?

угу

у меня были превратные представления о том, как он работает. судя по сообщениям в этой ветке, - не только у меня


 
Ega23 ©   (2008-08-20 17:18) [29]

Так Continue перебрасывает тебя на не в начало цикла, а туда, где проверка очередной итерации.
Для for и while - это начало, для repeat..until - это конец.


 
Anatoly Podgoretsky ©   (2008-08-20 18:26) [30]

> Vlad Oshin  (20.08.2008 15:49:13)  [13]

Все правильно, работает в соответствии со спецификацией на continue

> In Delphi code, the Continue procedure causes the flow of control to proceed to the next iteration of the enclosing for, while, or repeat statement.
> The compiler reports an error if a call to Continue isn"t enclosed by a for, while, or repeat statement.
> Note: Continue does not violate the flow of control dictated by a try..finally construct. If a call to Continue causes control to leave the try clause, the finally clause is entered.

Обрати особое внимение на примечание.


 
DVM ©   (2008-08-20 22:54) [31]


> Vlad Oshin ©   (20.08.08 15:49) [13]


> 004040BD 83FB0A           cmp ebx,$0a  
> 004040C0 83FB14           cmp ebx,$14  
> 004040C3 7DEE             jnl $004040b3

это в уме так у тебя выглядит )


 
Германн ©   (2008-08-21 01:41) [32]


> TUser ©   (20.08.08 17:11) [28]
>
>
> > А в чем прикол то? В continue?
>
> угу
>
> у меня были превратные представления о том, как он работает.
>  судя по сообщениям в этой ветке, - не только у меня
>

Я так и понял.


 
han_malign ©   (2008-08-21 11:15) [33]


> у меня были превратные представления о том, как он работает.

Вот!!! А если придерживаться, изначально закладываемой Виртом в Pascal, концепции Блочного(Структурного) программирования, исключающей явные переходы - никаких сюрпризов не было бы...

Почему-то, религиозное табу на goto не распространется на его предопределенное подмножество continue, break, exit... Raise - это вообще - сатанизм...

(провокация)


 
@!!ex ©   (2008-08-21 11:59) [34]

> [33] han_malign ©   (21.08.08 11:15)

exit никакого отношения к goto не имеет. это return


 
ЛшдлуттнСфе   (2008-08-21 12:57) [35]

6,28 получилось.


 
tesseract ©   (2008-08-21 13:04) [36]


> repeat until true бессмысленен сам по себе без манипуляций
> с итератором :)


А как же циклы ожидания  в потоках ставить ? Только через WaitForMultipleObjects ?


 
{RASkov} ©   (2008-08-21 13:09) [37]

> 6,28 получилось.

Попробуй еще раз перегнать...


 
McSimm ©   (2008-08-21 14:08) [38]


> > 6,28 получилось.

6.283184


 
Skyle ©   (2008-08-21 15:30) [39]


> McSimm ©   (21.08.08 14:08) [38]
>
> > > 6,28 получилось.
>
> 6.283184

Пока 70 не получите - пить не советую. Смысла нет.


 
ЛшдлуттнСфе   (2008-08-21 17:12) [40]


> McSimm ©   (21.08.08 14:08) [38]

ты знал, ты знал!!!
:)



Страницы: 1 2 вся ветка

Форум: "Прочее";
Текущий архив: 2008.10.12;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.53 MB
Время: 0.04 c
2-1218980426
demon
2008-08-17 17:40
2008.10.12
Помогите разобраться с простейшей программой на API


1-1199544751
Wolf
2008-01-05 17:52
2008.10.12
Перевод функций на asm для ускорения работы


1-1199993925
kilonet
2008-01-10 22:38
2008.10.12
Создание отчёта


15-1219231255
TUser
2008-08-20 15:20
2008.10.12
О как!


3-1207818824
AlexeyMir
2008-04-10 13:13
2008.10.12
SQL-запрос





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский