الخميس، 1 أكتوبر 2020

برمجة الحاسوب - الرموز والحروف char

برمجة الحاسوب - الرموز والحروف char 




اذا كان من السهل العمل مع الأرقام في برمجة الكمبيوتر ، فسيكون من الأسهل العمل مع الأحرف. الأحرف أبجدية بسيطة مثل a ، b ، c ، d .... ، A ، B ، C ، D ، ..... ، ولكن مع استثناء. في برمجة الكمبيوتر ، يتم أيضًا التعامل مع أي رقم مكون من رقم واحد مثل 0 ، 1 ، 2 ، .... وأحرف خاصة مثل $ ،٪ ، + ، ... إلخ ، كأحرف وتعيينها في نوع حرف متغير ، ما عليك سوى وضعها داخل علامات اقتباس مفردة . على سبيل المثال ، تحدد العبارة التالية متغير نوع الحرف ch ونقوم بتعيين قيمة "a" إليه -

char ch = 'a';

هنا، الفصل هو متغير من نوع الحرف التي يمكن أن تعقد شخصية من مجموعة أحرف تنفيذ و "أ" يسمى الحرفي شخصية أو ثابت حرف. ليس فقط أ ، ب ، ج ، .... ولكن عندما يتم الاحتفاظ بأي رقم مثل 1 ، 2 ، 3 .... أو أي حرف خاص مثل! ، @ ، # ، # ، $ ، .... داخل علامات الاقتباس الفردية ، ثم سيتم التعامل معها على أنها حرف حرفية ويمكن تخصيصها لمتغير من نوع الحرف ، وبالتالي فإن ما يلي عبارة صحيحة -

char ch = '1';

يستهلك نوع بيانات الحرف 8 بتات من الذاكرة مما يعني أنه يمكنك تخزين أي شيء في حرف تقع قيمته ASCII بين -127 إلى 127 ، لذلك يمكنه الاحتفاظ بأي من 256 قيمة مختلفة. يمكن لنوع بيانات الحرف تخزين أي من الأحرف المتوفرة على لوحة المفاتيح بما في ذلك الأحرف الخاصة مثل! ، @ ، # ، # ، $ ،٪ ، ^ ، & ، * ، (،) ، _ ، + ، {،} ، إلخ.

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

char ch1 = 'ab';
char ch2 = '10';

فيما يلي مثال بسيط يوضح كيفية تحديد وتعيين وطباعة الأحرف بلغة البرمجة C -

#include <stdio.h>

int main() {
   char  ch1;
   char  ch2;
   char  ch3;
   char  ch4;
   
   ch1 = 'a';      
   ch2 = '1';
   ch3 = '$';
   ch4 = '+';  

   printf( "ch1: %c\n", ch1);
   printf( "ch2: %c\n", ch2);
   printf( "ch3: %c\n", ch3);
   printf( "ch4: %c\n", ch4);
}

هنا ، استخدمنا٪ c لطباعة نوع بيانات حرف. عند تنفيذ البرنامج أعلاه ، فإنه ينتج النتيجة التالية -

ch1: a
ch2: 1
ch3: $
ch4: +

تسلسلات الهروب

تدعم العديد من لغات البرمجة مفهومًا يسمى Escape Sequence . عندما يسبق حرف ما بشرطة مائلة للخلف (\) ، يطلق عليه تسلسل هروب وله معنى خاص للمترجم. على سبيل المثال ، \ n في العبارة التالية حرف صالح ويسمى حرف سطر جديد -

char ch = '\n';

هنا ، يُسبَق الحرف n بشرطة مائلة للخلف (\) ، وله معنى خاص وهو سطر جديد ولكن ضع في اعتبارك أن الشرطة المائلة للخلف (\) لها معنى خاص ببضعة أحرف فقط. لن تنقل العبارة التالية أي معنى في برمجة لغة سي وسيتم افتراضها على أنها بيان غير صالح -

char ch = '\1';

يسرد الجدول التالي تسلسلات الهروب المتوفرة بلغة البرمجة C -

تسلسل الهروبوصف
\ tيُدرج علامة تبويب في النص في هذه المرحلة.
يقوم بإدراج مسافة للخلف في النص في هذه المرحلة.
يقوم بإدراج سطر جديد في النص في هذه المرحلة.
\ rيُدرج حرف إرجاع في النص في هذه المرحلة.
\Fيُدرج موجز نموذج في النص في هذه المرحلة.
\ "يُدرج حرف اقتباس مفرد في النص في هذه المرحلة.
\ "يُدرج حرف اقتباس مزدوج في النص في هذه المرحلة.
\\يدرج حرف الخط المائل للخلف في النص في هذه المرحلة.

يوضح المثال التالي كيف يفسر المترجم تسلسل هروب في جملة طباعة -

#include <stdio.h>

int main() {
   char  ch1;
   char  ch2;
   char  ch3;
   char  ch4;
   
   ch1 = '\t';      
   ch2 = '\n';

   printf( "Test for tabspace %c and a newline %c will start here", ch1, ch2);
}

عند تنفيذ البرنامج أعلاه ، فإنه ينتج النتيجة التالية -

Test for tabspace     and a newline 
will start here

الشخصيات في جافا

فيما يلي البرنامج المكافئ المكتوب بلغة جافا. تتعامل Java مع أنواع بيانات الأحرف كثيرًا بنفس الطريقة التي رأيناها في برمجة C. ومع ذلك ، توفر Java دعمًا إضافيًا لمعالجة الأحرف.

يمكنك محاولة تنفيذ البرنامج التالي لرؤية الإخراج ، والذي يجب أن يكون مطابقًا للنتيجة الناتجة عن مثال C أعلاه.

public class DemoJava {
   public static void main(String []args) {
      char  ch1;
      char  ch2;
      char  ch3;
      char  ch4;
   
      ch1 = 'a';      
      ch2 = '1';
      ch3 = '$';
      ch4 = '+';  

      System.out.format( "ch1: %c\n", ch1);
      System.out.format( "ch2: %c\n", ch2);
      System.out.format( "ch3: %c\n", ch3);
      System.out.format( "ch4: %c\n", ch4);
   }
}

عند تنفيذ البرنامج أعلاه ، فإنه ينتج النتيجة التالية -

ch1:  a
ch2:  1
ch3:  $
ch4:  +

تدعم Java أيضًا تسلسل الهروب بنفس الطريقة التي استخدمتها بها في برمجة C.

الشخصيات في بايثون

لا تدعم Python أي نوع من أنواع بيانات الأحرف ولكن يتم التعامل مع جميع الأحرف كسلسلة ، وهي سلسلة من الأحرف. سوف ندرس الأوتار في فصل منفصل. لا تحتاج إلى أي ترتيب خاص أثناء استخدام حرف واحد في بايثون.

فيما يلي البرنامج المكافئ المكتوب بلغة بايثون -

ch1 = 'a';      
ch2 = '1';
ch3 = '$';
ch4 = '+'; 

print "ch1: ", ch1
print "ch2: ", ch2
print "ch3: ", ch3
print "ch4: ", ch4

عند تنفيذ البرنامج أعلاه ، فإنه ينتج النتيجة التالية -

ch1:  a
ch2:  1
ch3:  $
ch4:  +

تدعم Python تسلسلات الهروب بنفس الطريقة التي استخدمتها بها في برمجة C.


التسميات: