HOME
>
Programing
>
Pascal
>
英数字をモールス信号に変換する
注意
-
このサイトの利用によって生じた損害については当方では責任を負いかねますのでご了承ください。
仕様
-
数字の1は「トン」を表します。
-
数字の2は「ツー」を表します。
コード
program MorseCoding(input, output);
type MorseCode = array [1 .. 128] of string;
{モールス符号への変換表の作成}
procedure InitMorseCode(var m : MorseCode);
var i : integer;
begin
for i := 1 to 128 do
m[i] := '';
{Definition}
{0 <-> none}
{1 <-> .}
{2 <-> -}
{0 .. 9}
m[48] := '22222';
m[49] := '12222';
m[50] := '11222';
m[51] := '11122';
m[52] := '11112';
m[53] := '11111';
m[54] := '21111';
m[55] := '22111';
m[56] := '22211';
m[57] := '22221';
{A .. Z}
m[65] := '12';
m[66] := '2111';
m[67] := '2121';
m[68] := '211';
m[69] := '1';
m[70] := '1121';
m[71] := '221';
m[72] := '1111';
m[73] := '11';
m[74] := '1222';
m[75] := '212';
m[76] := '1211';
m[77] := '22';
m[78] := '21';
m[79] := '222';
m[80] := '1221';
m[81] := '2212';
m[82] := '121';
m[83] := '111';
m[84] := '2';
m[85] := '112';
m[86] := '1112';
m[87] := '122';
m[88] := '2112';
m[89] := '2122';
m[90] := '2211';
{a .. z}
m[97] := '12';
m[98] := '2111';
m[99] := '2121';
m[100] := '211';
m[101] := '1';
m[102] := '1121';
m[103] := '221';
m[104] := '1111';
m[105] := '11';
m[106] := '1222';
m[107] := '212';
m[108] := '1211';
m[109] := '22';
m[110] := '21';
m[111] := '222';
m[112] := '1221';
m[113] := '2212';
m[114] := '121';
m[115] := '111';
m[116] := '2';
m[117] := '112';
m[118] := '1112';
m[119] := '122';
m[120] := '2112';
m[121] := '2122';
m[122] := '2211'
end;
procedure main;
var c : char;
m : MorseCode;
begin
{モールス符号表の作成}
InitMorseCode(m);
while not eof do
begin
while not eoln do
{行末まで変換}
begin
read(c);
write(m[ord(c)])
end;
{読み・書きそれぞれ改行}
readln;
writeln
end;
readln
end;
begin
main
end.