اذهب إلى المحتوى

السؤال

نشر

اكتب برنامج يقرا " نون"باستخدام داله جاهزة

ويقارن اذا ادخل المستخدم كلمه تقرا من الجهتين قم بطباعه يمكن            اما اذا لم تكن كذلك اطبع لايمكن

بتاريخ 25 دقائق مضت قال Hoida Ahamed:

اكتب برنامج يقرا " نون"باستخدام داله جاهزة

ويقارن اذا ادخل المستخدم كلمه تقرا من الجهتين قم بطباعه يمكن            اما اذا لم تكن كذلك اطبع لايمكن

 

Recommended Posts

  • 0
نشر

هذا مثال بالجافاسكربت ويمكنك محاكاته بأي لغة أخرى
 

function checkBiDirectionRead(word) {
  const wordLength = word.length;
  // نحسب عدد أحرف الكلمة لتحديد إذا كانت مكونة من عدد زوجي أم فردي
  const isEvenWord = wordLength % 2 === 0; 
    // نقسم طول الكلمة لنحدد طول النصفين في حالة الزوجي
    // أما في حالة إذا كانت الكلمة فردية فنجمع عليها ١ ونقسم علي اثنين لنقوم بتحديد نصف الكلمة أي الحرف الزائد
    const wordHalfIndex = isEvenWord ? wordLength / 2 : (wordLength + 1);
    // الكلمة الأولى 
    // في الكلمة الزوجية سيتم اقتطاعها من أول رقم(0) حتى منتصف الكلمة
    // (لأننا قمنا بإضافة ١ لحسابة المنصف)  في الكلمة الفردية سيتم اقتطاعها من أول رقم(0) حتى (منتصف الكلمة - 1)
    const firstSlice = word.slice(0, isEvenWord ? wordHalfIndex : (wordHalfIndex - 1) / 2); 
    // الكلمة الثانية 
    // في الكلمة الزوجية سيتم اقتطاعها من منتصف الكلمة
    // في الكلمة الفردية سيتم اقتطاعها من أول رقم(منتصف الكلمة بدون أن نطرح ١ لأننا نريد أن نتخطى الحرف الزائد ونقارن الجزئين الموجودين على يمينه ويساره)    
    const secondSlice = word.slice(wordHalfIndex);

    // نعكس القسم الثاني من الكلمة والتي تمثل (الكلمة الثانية) ونقارنها بالأولى فإذا كانو متساويين فالكلمة يتم نطقها من الجهتين والعكس
    const mirroredSecondSlice = secondSlice.split('').reverse().join('');

     console.log(firstSlice === mirroredSecondSlice ? 'u can' : 'u can not');
}

// نقوم باستدعاء الدالة وإعطائها كلمة
checkBiDirectionRead('توت'); // u can

 

  • 0
نشر

سأحاول أن أشرح لك خطوات عمل هذه الدالة في بايثون وعليك أن تقوم بتطبيق الشرح بإستخدام جافا بنفسك.

الكلمات التي تقرأ من اليمين إلى السيار أو من اليسار إلى اليمين تسمى كلمات متناظرة palindrome وللتأكد مما إذا كانت كلمة ما palindrome أم لا نقوم بقلب ترتيب الكلمة ومقارنتها مع الكلمة الأصلية، فمثلًا كلمة google تصبح elgoog وكلمة watch تصبح hctaw وهكذا، والكلمات التي من نوع palindrome عند قلب ترتيب أحرفها لن تتغير مثل كلمة Level أو noon

وهنا مثال لدالة تقوم بالتأكد مما إذا كانت الكلمة palindrome أم لا:

def isPalindrome(string):
    rotated_string = ""
    
    # نقوم بالمرور على كل حرف في النص
    for letter in string:
      # ثم نقوم هنا بإضافة هذا الحرف في البداية كل مرة
      rotated_string = letter + rotated_string
    
    # هنا نتأكد مما إذا كانت الكلمة لم تتغير ونرجع True أو False
    return rotated_string == string

يمكن كتابة نفس الدالة السابقة في بايثون في سطر واحد كالتالي:

def isPalindrome(s):
    return s == s[::-1]

# تجربة الدالة
s = "level"
result = isPalindrome(s)
 
if result:
    print("Yes")
else:
    print("No")

بالتوفيقـ تحياتي.

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...