×

[PR]この広告は3ヶ月以上更新がないため表示されています。
ホームページを更新後24時間以内に表示されなくなります。

モールス信号の変換(5桁までの整数で表現)

ホーム > Programing > Pascalコード集 > モールス信号の変換(5桁までの整数で表現)

注意

このサイトの利用によって生じた損害については当方では責任を負いかねますのでご了承ください。
数字の1は「トン」を表します。
数字の2は「ツー」を表します。

コード

program MorseCodingDig(input, output);
type MorseCode = array [1 .. 128] of integer;

{モールス符号への変換表の作成(5桁までの整数で表現)}
procedure InitMorseCode(var m : MorseCode);
var i : integer;
begin
	for i := 1 to 128 do
		m[i] := 0;

	{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);
			if m[ord(c)] = 0 then
				write('')
			else
				write(m[ord(c)])
		end;

		{読み・書きそれぞれ改行}
		readln;
		writeln
	end;
	readln
end;

begin
	main
end.
			

作成日:2016年9月25日、最終更新日: