FOR I=1 TO N STEP 2 не работает =(

Вопросы программирования на Free Pascal, использования компилятора и утилит.

Модератор: Модераторы

FOR I=1 TO N STEP 2 не работает =(

Сообщение Attid » 03.08.2008 09:01:46

в первые за несколько лет работы в фпц понадобился шаг в цикле, а он не работает =(

это я не так думаю или он такое не поддерживает ? я конечно сейчас воспользуюсь каким нибуть другим циклом, но просто интересно .

фпц ругнулся так :
fmsePrint.pas(1084,32) Fatal: Syntax error, "DO" expected but "identifier STEP" found
Аватара пользователя
Attid
долгожитель
 
Сообщения: 2586
Зарегистрирован: 27.10.2006 17:29:15
Откуда: 44°32′23.63″N 41°2′25.2″E

Re: FOR I=1 TO N STEP 2 не работает =(

Сообщение PublicJoke » 03.08.2008 10:06:28

Это вы с басиком спутали. Цитата из Borland Pascal help:

for...to, for...downto (reserved words)
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
The for statement causes the statement after do to be executed once for each
value in the range first to last.

Syntax:
for var := first to last do
statement
OR
for var := first downto last do
statement

Remarks:
The control variable and the initial and final values must be of an ordinal
type.

to:
With to, the value of the control variable is incremented by 1 for each
loop.

downto:
With downto, the value of the control variable is decremented by 1 for each
loop.
PublicJoke
новенький
 
Сообщения: 41
Зарегистрирован: 04.07.2006 12:21:07

Re: FOR I=1 TO N STEP 2 не работает =(

Сообщение ev » 03.08.2008 10:38:52

в первые за несколько лет работы в фпц понадобился шаг в цикле, а он не работает =(

шаг есть только в обероне ;)
ev
долгожитель
 
Сообщения: 1772
Зарегистрирован: 27.04.2005 23:19:06
Откуда: Москва

Re: FOR I=1 TO N STEP 2 не работает =(

Сообщение Attid » 03.08.2008 11:07:12

ev писал(а):шаг есть только в обероне ;)

в турбо паскале вроде был, а дельфе не скажу, но сегодня проверю.

Добавлено спустя 2 минуты 47 секунд:
PublicJoke писал(а):Это вы с басиком спутали.

вот это конечно может быть, на нем я еще на ПК "Львов" писал, такая дура с кнопочками подключалась к телевизору.
Аватара пользователя
Attid
долгожитель
 
Сообщения: 2586
Зарегистрирован: 27.10.2006 17:29:15
Откуда: 44°32′23.63″N 41°2′25.2″E

Re: FOR I=1 TO N STEP 2 не работает =(

Сообщение Иван Шихалев » 04.08.2008 01:18:57

Attid писал(а):в турбо паскале вроде был,

Не было и там. В языке Паскаль вообще иная концепция цикла... Например, он может проходить по значениям перечислимого типа, где неопределена операция "плюс", но есть succ и pred.
Аватара пользователя
Иван Шихалев
энтузиаст
 
Сообщения: 1138
Зарегистрирован: 15.05.2006 11:26:13
Откуда: Екатеринбург

Re: FOR I=1 TO N STEP 2 не работает =(

Сообщение Attid » 04.08.2008 09:26:59

ну и зря =)

сделал через
Код: Выделить всё
for i := 0 to 100 do
if (i and 3 = 3 ) then
  . . . .
Аватара пользователя
Attid
долгожитель
 
Сообщения: 2586
Зарегистрирован: 27.10.2006 17:29:15
Откуда: 44°32′23.63″N 41°2′25.2″E

Re: FOR I=1 TO N STEP 2 не работает =(

Сообщение Padre_Mortius » 04.08.2008 10:28:19

обычно делают цикл с изменяемым шагом через repeat until
Padre_Mortius
энтузиаст
 
Сообщения: 1265
Зарегистрирован: 29.05.2007 17:38:07
Откуда: Спб

Re: FOR I=1 TO N STEP 2 не работает =(

Сообщение B4rr4cuda » 04.08.2008 10:39:42

Padre_Mortius писал(а):обычно делают цикл с изменяемым шагом через repeat until

Да? А я считал что через while do.
А вопрос интересный.

Народ, чем чаще пользуетесь?
Аватара пользователя
B4rr4cuda
энтузиаст
 
Сообщения: 693
Зарегистрирован: 28.12.2007 07:48:35

Re: FOR I=1 TO N STEP 2 не работает =(

Сообщение alexs » 04.08.2008 10:43:01

B4rr4cuda
Всё зависит от логики. Где что удобнее - то и используй.
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4060
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Re: FOR I=1 TO N STEP 2 не работает =(

Сообщение B4rr4cuda » 04.08.2008 12:49:34

В таких случаях я всегда использую while. Когда, последний раз использовал repeat, даже не помню.
Вопрос задан из любопытства.
Аватара пользователя
B4rr4cuda
энтузиаст
 
Сообщения: 693
Зарегистрирован: 28.12.2007 07:48:35

Re: FOR I=1 TO N STEP 2 не работает =(

Сообщение Attid » 04.08.2008 12:52:36

B4rr4cuda писал(а):Народ, чем чаще пользуетесь?


они разные, repeat выполняется всегда минимум один раз, while может не разу.

ну и условие у одного внаяале у другого в конце проверяется, а если значение переменой меняется внутри то тоже надо решить когда его удобнее проверить.
Аватара пользователя
Attid
долгожитель
 
Сообщения: 2586
Зарегистрирован: 27.10.2006 17:29:15
Откуда: 44°32′23.63″N 41°2′25.2″E

Re: FOR I=1 TO N STEP 2 не работает =(

Сообщение B4rr4cuda » 04.08.2008 14:15:18

Аттид, ты меня уважаешь? :lol: Не надо теории, просто ответь, плиз, чем чаще пользуешься?
Аватара пользователя
B4rr4cuda
энтузиаст
 
Сообщения: 693
Зарегистрирован: 28.12.2007 07:48:35

Re: FOR I=1 TO N STEP 2 не работает =(

Сообщение Attid » 04.08.2008 16:07:02

B4rr4cuda писал(а):просто ответь, плиз, чем чаще пользуешься?

for =)
Аватара пользователя
Attid
долгожитель
 
Сообщения: 2586
Зарегистрирован: 27.10.2006 17:29:15
Откуда: 44°32′23.63″N 41°2′25.2″E

Re: FOR I=1 TO N STEP 2 не работает =(

Сообщение SAK » 04.08.2008 23:22:15

А что мешает умножить переменную цикла на требуемый шаг?
Код: Выделить всё
step:=2;
for i:=0 to N div step do
writeln(i*step);

Хотя это и немного медленнее чем while
Добавлено спустя 13 минут 15 секунд:
B4rr4cuda писал(а):Народ, чем чаще пользуетесь?

Да, интересный вопрос, это примерно как: чем чаще пользуетесь ложкой или вилкой?
Ответить можно только так: пользуюсь тем что больше подходит к конкретной ситуации.
SAK
постоялец
 
Сообщения: 158
Зарегистрирован: 18.02.2006 00:45:14
Откуда: Тим

Re: FOR I=1 TO N STEP 2 не работает =(

Сообщение B4rr4cuda » 05.08.2008 00:59:32

SAK писал(а):Да, интересный вопрос, это примерно как: чем чаще пользуетесь ложкой или вилкой?

Вилкой =)
Аватара пользователя
B4rr4cuda
энтузиаст
 
Сообщения: 693
Зарегистрирован: 28.12.2007 07:48:35

След.

Вернуться в Free Pascal Compiler

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

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

Рейтинг@Mail.ru