Страница 1 из 1

Complete failed

СообщениеДобавлено: 18.10.2010 20:47:51
freepad
Почему программа не работает в fpc, но работает в tp?
fpc 2.2.4, tp 7.1, Intel/i386 ,WinXP
Код: Выделить всё
program Morse;
uses crt;
label ss;
var word:char;
Begin
  clrscr;
  ss:read(word);
case word of
     'A'..'a': Write('.- ');
     'B'..'b': Write('-... ');
     'C'..'c': Write('-.-. ');
     'D'..'d': Write('-.. ');
     'E'..'e': Write('. ');
     'F'..'f': Write('..-. ');
     'G'..'g': Write('--. ');
     'H'..'h': Write('.... ');
     'I'..'i': Write('.. ');
     'J'..'j': Write('.--- ');
     'K'..'k': Write('-.- ');
     'L'..'l': Write('.-.. ');
     'M'..'m': Write('-- ');
     'N'..'n': Write('-. ');
     'O'..'o': Write('--- ');
     'P'..'p': Write('.--. ');
     'Q'..'q': Write('--.- ');
     'R'..'r': Write('.-. ');
     'S'..'s': Write('... ');
     'T'..'t': Write('- ');
     'U'..'u': Write('..- ');
     'V'..'v': Write('...- ');
     'W'..'w': Write('.-- ');
     'X'..'x': Write('-..- ');
     'Y'..'y': Write('-.-- ');
     'Z'..'z': Write('--.. ');
end;
goto ss;
End.


Добавлено спустя 14 минут 12 секунд:
Почему она не работала в fpc я понял, но тепеь мне все еще интересней по чему она работает в tp. :idea:

Re: Complete failed

СообщениеДобавлено: 18.10.2010 22:30:10
Mr.Smart
Ухты метки :shock: я сто лет их не видел :)
А почему вы считаете, что он не должен работать?

Re: Complete failed

СообщениеДобавлено: 18.10.2010 23:29:02
*vmr
Код: Выделить всё
'A'..'a'

Т.е. программа скомпиленная TP работала правильно? :shock:
Интересный TP...

ЗЫ: название темы полностью провалено :)

Re: Complete failed

СообщениеДобавлено: 18.10.2010 23:42:27
Mr.Smart
а диапазон-то я и не приметил :oops:

Re: Complete failed

СообщениеДобавлено: 19.10.2010 16:14:33
trius-strannik
безусловные перехды по умолчанию в fpc вроде как не включены - нужно хотябы поставить режим совместимости с tp - {$mode tp}.

хотя прога странная... :shock:

Re: Complete failed

СообщениеДобавлено: 22.10.2010 20:45:52
and
Хммм... Всю жизнь думал, что варианты в case не должны перекрываться.

Re: Complete failed

СообщениеДобавлено: 02.11.2010 07:00:14
informat
По логике алгоритма, похоже, имелось ввиду
Не
'B'..'b':
а
'B','b':
Т.е. не все символы от 'B' до 'b', а только 'B','b'. Ведь их хотелось перевести в точки и тире?

И ещё.
Вместо метки
-------
SS:
...
if BB then goto SS
-------
Программисты пишут:
--------
repeat
..
until not BB
------
--------