Спаситеее. Генератор случайных чисел

За вознаграждение или нахаляву (если повезёт)

Модераторы: Хыиуду, MOTOCoder, Medved, dr.Jekill

Хыиуду
Сообщения: 2388
Зарегистрирован: 06 мар 2005, 21:03
Откуда: Москва
Контактная информация:

26 мар 2007, 14:10

Странно, неужели они логику одного из фундаментальных операторов поменяли?
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
BBB
Сообщения: 1272
Зарегистрирован: 27 дек 2005, 13:37

27 мар 2007, 09:55

Хыиуду писал(а):Странно, неужели они логику одного из фундаментальных операторов поменяли?
Что-то припоминается мне из теории Паскаля, что про счетчик цикла for по выходе из цикла говорится, что его значение никак не гарантировано. Т.е. при программировании не следует делать никаких допущений о значении этой переменной.
Хыиуду
Сообщения: 2388
Зарегистрирован: 06 мар 2005, 21:03
Откуда: Москва
Контактная информация:

27 мар 2007, 10:06

Мне припоминалось, что при выходе из цикла for значение индекса равно последнему значению плюс один. Потому что цикл, если не ошибаюсь, ассемблерно реализован примерно так (в переводе опять же на Паскаль):

Код: Выделить всё

i:=startvalue-1;
lab1: i:=i+1;
  if i>endvalue then goto lab2;
  {выполнение команд цикла}
  goto lab1;
lab2: {идти дальше по программе}
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
BBB
Сообщения: 1272
Зарегистрирован: 27 дек 2005, 13:37

27 мар 2007, 10:18

Хыиуду писал(а):Мне припоминалось, что при выходе из цикла for значение индекса равно последнему значению плюс один. Потому что цикл, если не ошибаюсь, ассемблерно реализован примерно так (в переводе опять же на Паскаль):

Код: Выделить всё

i:=startvalue-1;
lab1: i:=i+1;
  if i>endvalue then goto lab2;
  {выполнение команд цикла}
  goto lab1;
lab2: {идти дальше по программе}
Снова. Насколько я помню, это (значение счетчика цикла по его выходу) никем не гаратировано. То, что в какой-то реализации какого-то языка получается такой результат, не гарантирует, что вдругой реализации даже этого де языка результат будет такой же. Пожалуй, это можно назвать "недокументированной особенностью". А, как известно, полагаться на недокументированные штучки - это риск.
Хыиуду
Сообщения: 2388
Зарегистрирован: 06 мар 2005, 21:03
Откуда: Москва
Контактная информация:

27 мар 2007, 10:49

А я и говорю, левые штучки. Впрочем, у меня на ТурбоПаскале 7.0, сколько себя помню, так и было.
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
Небо Принстона
Сообщения: 6
Зарегистрирован: 23 мар 2007, 12:24

06 апр 2007, 11:58

Большое человеческое спасибо. Наверное минут за пять программу написали, но все равно - помощь неоценима. Добавила там еще счетчик, а то количество попыток неправильно выдавал :)
Ответить