کد مورس

آبان ۲م, ۱۳۸۸

خیلی دوست دارم دفترچه خاطراتی برای خودم داشته باشم ولی از این متنفرم که کسی بیاد و اون رو بخونه. بنابراین تصمیم گرفتم نوشته‌هام رو با خطی بنویسم که فقط خودم بتونم بخونمش. فعلاً در حال بررسی خط نوشتاری الف‌هام (درباره خط و زبان مردمان سرزمین میانه) و شاید خط دورفی (که برخلاف خط الف‌ها زیبایی کم‌تری داره). بعدها راجع به این‌ها بیشتر می‌نویسم. ولی هفته قبل مطلبی دیدم راجع به کد مورس. البته استفاده از اون الان چندان رایج نیست و متاسفانه بر خلاف تصور من، برای نوشتن (اونم در حد دفترچه خاطرات) اصلاً مناسب نیست.

به هر حال، دست به کار شدم و دو تابع جاوااسکریپت نوشتم برای تبدیل نوشته به حروف مورس و برعکس:

[js]
function toMorse(text) {

var text = text.toLowerCase(text),
len = text.length,
morse = [];

for (var i=1; i<=len; i++) {

switch (text.charAt(i-1)) {
case ‘a’ :
morse[i] = ‘.-’;
break;
case ‘b’ :
morse[i] = ‘-…’;
break;
case ‘c’ :
morse[i] = ‘-.-.’;
break;
….
}

}

return morse.join(’ ‘);

}

function deMorse(morse) {

var letters = morse.split(’ ‘),
text = ”;

for (var i=1; i<letters.length; i++) {

switch (letters[i].toString()) {

case ‘.-’:
text += ‘a’;
break;
case ‘-…’:
text += ‘b’;
break;
case ‘-.-.’:
text += ‘c’;
break;
….
}

}

return text;

}

[/js]

در تابع toMorse ما رشته رو دریافت می‌کنیم و به ازای هر کاراکتر با دستور switch کد مورس اون حرف رو برمی‌گردونیم. در deMorse هم ما رشته‌ی کد مورس رو می‌گیریم و با متد split رشته رو به آرایه‌ای تبدیل می‌کنیم که هر عضوش برابر با یک کاراکتره. باز هم دستور switch برای هر عضو آرایه و بازگردوندن کاراکتر متناظر اون.

مشاهده دمو

مدخل کد مورس در ویکی‌پدیا فارسی

۳ پاسخ برای “کد مورس”

  1. مسلم گفت:

    سلام کاکو!
    بابا چه کرده ای… دست مریزاد… الان که نصفه شبه (!) اما فردا میخوام بشینم همه ی پستای جدیدتو بخونم – ای ول داداش، واسه من یکی که خیلی جالبن نوشته هات! بگذریم از حال و روزمون که… دعا کن هفته ی دیگه گل بکارم! یا حق

  2. میثم گفت:

    سلام
    من جاوااسکریپت بلد نیستم ولی یه سوال برام پیش اومده، الان شما تو case فقط سه مورد رو گذاشتی، بقیه‌اش رو خودش با اون چهارتا نقطه تشخیص میده؟

  3. tweener گفت:

    @میثم: :) نه این‌جا اون چهار تا نقطه رو به معنای این‌که دنباله کد هم مثل بالائیشه گذاشتم. تو دمو کد کامل توابع هست.