أخر المقالات
تحميل...

الثلاثاء، 16 يونيو 2015

iOS 9 يأتي بخاصية جديدة تزيد من عمر البطارية

سيأتي نظام شركة أبل الجديد IOS9 بخاصية جديدة ستزيد من عمر البطارية اكثر . هذه الخاصية هي خاصية Low Power Mode والتي ستتمكن من الوصول اليها وتفعيلها من إعدادات جهازك . إن هذه الخاصية من المتوقع أن تزيد من عمر البطارية لمدة ثلاث ساعات إضافية وفق تقريرات شركة أبل , حيث عند تفعيل هذه الخاصية سيتم القيام بعدة إجراءات للايفون أو الايباد منها ايقاف التطبيقات التي تعمل في خلفية النظام وتقليل سطوع الشاشة والكثير من الأمور التي من شأنها التقليل من إستهلاك البطارية . وتنصح شركة أبل القيام بهذه العملية عند وصول شحن البطارية الى 20% أو اقل .



الجمعة، 29 مايو 2015

طريقة إضافة ساعات وتوقيتات جديدة للويندوز

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


ملاحظة : الشرح سيكون على نظام ويندوز 8 .

الخطوة الاولى : نضغط على الساعة في اسفل يمين الشاشة نشاهدها كما في الصورة التالية ثم نضغط على
change date and time sitting



الخطوة الثانية :  تابع الصور التالية :




النتيجة عند الضغط على الساعة مرة ثانية سنشاهدها كالتالي :


الأربعاء، 8 أبريل 2015

الدرس الثامن عشر : دورة تعلم لغة البرمجة C

أهلاً وسهلاً بكم في الدرس الثامن عشر من دورة تعلم لغة البرمجة C , إنتهينا من موضوع المصفوفات بالكامل وفي هذا الدرس سنتطرق الى بعض الامثلة البرمجية لزيادة معرفتكم بهذه اللغة وبموضوع المصفوفات بوجه الخصوص . حيث إن هذا الدرس سيكون خاص للأفكار والتطبيقات فقط وسنبدأ موضوعاً جديدا من الدرس القادم ان شاء الله .

البرنامج الاول : برنامج يطلب من المستخدم إدخال سلسلة نصية ويقوم بحساب طول السلسلة النصية ( string ) ولكن من دون إستخدام الدالة الجاهزة .



البرنامج الثاني : برنامج يطلب من المستخدم إدخال مصفوفة احادية ويقوم بعكس المصفوفة .

البرنامج سهل جداً ومفيد لكن فيه شيء جديد لم نشرحه في دورتنا وكان لابد من شرحه في الدروس الاولى وبالخصوص في موضوع الثوابت والمتغيرات .
نشاهد في كود البرنامج وجود جملة define# الموجودة في أعلى البرنامج وهذه الجملة تختص بتعريف الثوابت اذا استخدمنا ثوابت في برامجنا حيث يتم كتابة هذه الجملة ثم اسم الثابت ثم قيمته .
وفي هذا المثال فأنها تكافيء   int size = 8 





البرنامج الثالث : برنامج يتضمن إدخال سلسلة نصية ( string ) وطباعتها بالعكس , بإستخدام دالة جاهزة .




البرنامج الرابع : برنامج لعكس الـ string ( نفس البرنامج أعلاه ) ولكن بدون إستخدام الدالة الجاهزة .





ملاحظة : هذا الدرس سيتم إضافة المزيد من الامثلة له قريباً
تابعونا دائما ..


نلقاكم في الدرس التاسع عشر والذي سنبدأ فيه موضع الدوال .

إضافة أدوات جديدة في تطبيق instagram

في تحديث جديد لبرنامج instagram لمشاركة الصور تم إضافة أداتين جديدين للتعديل على الصور وهما الأداة fade والادأة color حيث إن الاداة الاخيرة يمكنك بواسطتها من تعديل وتغيير ألون الاضائات والضلال الى عدة ألوان . أما الاداة fade فوظيفتها تقليل أو زيادة اضاءة الصور .



مستخدمي نظام الاندرويد يمكنكم تحميل النسخة الجديدة من التطبيق من متجر google play . أما بالنسبة لمستخدمي نظام ios واجهزة ابل فأن التطبيق لم يصدر لحد الان وسيصدر خلال الايام القادمة .

الاثنين، 6 أبريل 2015

الدرس السابع عشر : دورة تعلم لغة البرمجة C

أهلاً وسهلاً بكم في الدرس السابع عشر من دورة تعلم لغة C , في هذا الدرس سنكمل موضوع المصفوفات ونشرح الجزء الثالث والأخير من موضوع المصفوفات وهو مصفوفات السلاسل الحرفية string arrays كما سنشرح موضوع الـ string بصورة عامة .

ماهو الـ string ؟
هو عبارة عن سلسلة نصية قد تتكون من الرموز أو الأحرف أو الأرقام . فمثلا عبارة " tech-shortly " هي عبارة عن string .

إن أهم مايجب أن نتعلمه في موضوع السلاسل النصية string هو الدوال الخاصة بهذا الموضوع وهي كثيرة سنتطرق الى المهمة منها والاكثر استخداماً ولكننا لانستطيع إستخدام هذه الدوال إلا بعد تضمين الملف الرأسي الخاص بها وهو <string.h> .

طريقة تعريف الـ string ؟


char array name [array size]
فمثلا لو أردنا تعريف مصفوفة إسمها S وحجمها 40 رمز , فسيكون التعريف بالشكل التالي :
char S[40]

طريقة إعطاء قيم للمصفوفة ؟
يتم اعطاء القيم أما من قبل المبرمج بصورة مباشرة  أو عن طريق مستخدم البرنامج وسنشرح الطريقتين .
يمكن اعطاء القيم من قبل المبرمج بالطريقة التالية :

 char s[ ]="tech-shortly" ;
هنا كأنه أعطينا قيمة أو أحرف محددة والطول يتحدد تلقائياً وفقاً لعدد الحروف التي أدخلت
OR char s[40]="tech-shortly" ;
stringهنا كأنه أعطينا قيمة أو أحرف محددة بالإضافة إلى طول أو أكبر عدد ممكن يستوعبه هذا الـ
OR char s[ ]={‘t’,’e’,’c’,’h’,’-‘,’s’,’h’,’o’,’r’,’t’,’l’,’y’,’\0'} ;
OR char s[13]={‘t’,’e’,’c’,’h’,’-‘,’s’,’h’,’o’,’r’,’t’,’l’,’y’,’\0'} ;
String تدل على نهاية الـNULL تعني\0


أما طريقة إدخال الـ STRING من قبل المستخدم فيكون بتعريف مصفوفة وتحديد حجمها ( أي تعيين اكبر عدد من الحروف ممكن أن تستوعبه هذه المصفوفة ) ثم استخدام دالة الادخال الاعتيادية scanf . اي هنا في هذا النوع من المصفوفات لانستخدم جملة for .
مثال برمجي : برنامج بسيط بلغة C لتعريف مصفوفة نصية ثم إدخالها من قبل المستخدم وطباعتها .



دوال الـ string ؟
ذكرنا في الأعلى انه يوجد دوال خاصة للتعامل مع موضوع السلاسل النصية string وسنتعرف على هذه الدوال فقط تم تلخيصها بالصورة التالية وجميع هذه الدوال موجودة ضمن الملف الرأسي <string.h> لذلك يجب تضمينه في اعلى برنامجنا عند التعامل مع هذه الدوال .
ملاحظة : إضغط على الصورة لتظهر بالحجم الطبيعي .

هذه الدوال هي دوال جاهزة ضمن المكتبة string.h نستعملها لغرض تبسيط البرنامج وجعل الايعاز والجملة البرمجية أسهل . وسيتم توضيح كيفية استعمالها في البرنامج التالي .

مثال برمجي :  هذا البرنامج سيتم فيه تعريف مصفوفتين الاولى ستكون خاصة بـ ( الاسم الاول ) والثانية خاصة بـ ( الاسم الاخير ) وسيتم تنفيذ جميع الدوال أعلاه . نرجو التركيز بالكود البرمجي والقيام بمتابعته مع متابعة نتيجة التنفيذ لمشاهدة فائدة هذه الدوال .



ملاحظة : نلاحظ أنه أدخلنا أسمين غير متساويين ولكن في المقارنة ظهرت النتيجة أنهم متساويين والسبب هو وجود دالة نسخ الاسم الثاني داخل الاسم الأول فأصبحوا متساويين .

ننتقل الان الى الجزء الاخير من موضوعنا وهو يخص ثلاث دوال مهمة وتستخدم في موضوع السلاسل النصية وهذه الدوال هي :

1- getchar

هذه الدالة عملها لا يختلف فهي تعني إدخال رمز أو حرف واحد فقط ثم تنتظر الضغط على زر enter من لوحة المفاتيح لتأخذ القيمة وتقوم بخزنها في المتغير وبعد ذلك تقوم بطباعتها .

getche -2

 تعني إدخال حرف واحد فقط ولكن هنا لا تنتظر الضغط على زر enter فمجرد إدخال الحرف يظهر على الشاشة ويوضع في المتغير .

3- getch
 تعني أيضا إدخال حرف واحد فقط ولكن هنا لا تنتظر الضغط على زر enter فمجرد إدخال الحرف يوضع في المتغير من دون أن يظهر على الشاشة .

*طرق كتابة هذه الدوال ستوضح أكثر في الأمثلة التالية :



الى هنا نأتي الى نهاية درسنا ونهاية موضوع المصفوفات . الدرس القادم سيكون خاص بالأفكار والتطبيقات حول موضوع المصفوفات وسنقدم لكم مجموعة من البرامج التي من شأنها أن تعمل على زيادة افكاركم البرمجية وتعريفكم اكثر بتقنيات خاصة بموضوع المصفوفات وكيفية التعامل معها .
الى اللقاء في الدرس القادم

مقارنة غريبة بين جهاز Samsung Galaxy S6 Edge وجهاز iPhone 6




إنتشر فيديو غريب للمقارنة بين عمالقة الهواتف الذكية في الفترة الحالية وبالخصوص بين جهاز Samsung Galaxy S6 Edge وجهاز iPhone 6 . الاختبار يبين مدى تحمل الجهازين للصدمات حيث يتم إلقاء الجهازين على الارض والمقارنة بينهما . شاهد الفيديو التالي لكي ترى بنفسك اي من الجهازين يمتاز بمتانة اقوى .



الثلاثاء، 31 مارس 2015

الدرس السادس عشر : دورة تعلم لغة البرمجة C

أهلاً وسهلاً بكم في الدرس السادس عشر من دورة تعلم لغة البرمجة C . شرحنا في الدرس السابق مقدمة عن موضوع المصفوفات وتعرفنا على أنواعها وشرحنا النوع الاول منها ( مصفوفات احادية البعد ) , وهنا في هذا الدرس سنكمل موضوع المصفوفات ونتعرف على النوع الثاني منها وهي المصفوفات متعددة الأبعاد .
إن المصفوفات متعددة الابعاد Multidimensional arrays كما واضح من إسمها فهي تتكون من اكثر من بعد واحد لذلك فأن طريقة تعريفها تكون بالشكل التالي :
data type array name[size1][size2].......[sizeN];

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

المصفوفات ثنائية الابعاد :
هي أسهل وأبسط مثال للمصفوفات متعددة الأبعاد . لانها تتكون من بعدين فقط  x , y أو يمكن تسميتها أيضا بالصفوف والأعمدة .
طريقة تعريف مصفوفة ثنائية تكون بالصيغة التالية :

type arrayName [ x ][ y ];
حيث أن :
type : يشير ويمثل نوع البيانات ونوع المصفوفة فقد تكون ( int,float,double,string ) .
arrayName : يشير الى إسم المصفوفة ويمكن أن يكون أي إسم حسب رغبتك لكنه يخضع لشروط تسمية المتغيرات التي سبق شرحها .
x : تكون قيمته رقم ويمثل عدد صفوف المصفوفة .
y : تكون قيمته رقم ويمثل عدد أعمدة المصفوفة . 



فمثلا نريد أن نقوم بتعريف مصفوفة من نوع العدد الصحيح وإسمها a وتتكون من 3 صفوف و 4 اعمدة فالتعريف يكون بالشكل التالي :
int a [ 3 ][ 4 ];
إذن المصفوفة اعلاه هي مثال لمصفوفة ثنائية البعد تتكون من ثلاث صفوف وأربع أعمدة وعدد عناصرها تساوي 12 عنصر , أي نقوم بعملية ضرب عدد الصفوف * عدد الأعمدة .
ذكرنا في الدرس السابق إن المصفوفة تحجز في الذاكرة مجموعة من الأماكن الخالية ويمكننا إعتبار كل عنصر من عناصر المصفوفة كأنه متغير ومن الأساس فأن المصفوفات وجدت للتقليل من عدد المتغيرات في البرامج الطويلة .
لذلك يمكننا تمثيل المصفوفة أعلاه والتي تتكون من ثلاث صفوف وأربع أعمدة بالشكل التالي :

في الذاكرة فأن المصفوفة الثنائية تتمثل كما في الصورة . لذلك يمكننا التعامل مع المصفوفة ككل أو التعامل مع كل عنصر من عناصر المصفوفة لوحده .

طريقة إعطاء قيم لعناصر المصفوفة :  
إن إعطاء قيم لعناصر المصفوفة الثنائية يتشابه مع المصفوفة الاحادية كما شرحنا في الدرس السابق , ويتم بطريقتين أما من قبل المبرمج أي أن يعطي قيم ابتدائية لعناصر مصفوفته أو يتم عن طريق إدخال القيم عن طريق مستخدم البرنامج ويتم بإستخدام أدوات التكرار وجملة for ولكن الاختلاف هنا إن جملة for سيتم إستخدامها مرتين واحدة بداخل الاخرى لكي نستطيع تمثيل البعدين . وكلما زادت الابعاد إزدادت بقدرها جمل for . 

يمكن إعطاء قيم لعناصر المصفوفة بعدة طرق حيث نستطيع إعطاء قيم لكل عنصر لوحدة وبالشكل التالي :
 a [0 ][0 ] = 3;
 a [1][ 0 ]= 5;
 a [ 2][ 0]= 1;

وهكذا بالنسبة لبقية العناصر أي أن تتكرر 12 مرة . وهي طريقة مزعجة وطويلة ويمكن إعطاء القيم بالشكل التالي والاسهل :

int a[3][4] = {
 {0, 1, 2, 3} ,                  // السطر الاول 
 {4, 5, 6, 7} ,                 // السطر الثاني 
 {8, 9, 10, 11 } };         // السطر الثالث

أو يمكن أن يكون إعطاء القيم بسطر واحد كالتالي :
int a[3][4] = { {0, 1, 2, 3} , {4, 5, 6, 7} , {8, 9, 10, 11} };

أما طريقة إدخال قيم المصفوفة عن طريق المستخدم فيتم بإستخدام إسلوب nested for اي جملة for متداخلة وستستخدمها مرتين لان المصفوفة تتكون من بعدين . وكذلك عملية الطباعة للمصفوفة فهي حالها حال الادخال ومثلها تماماً والاختلاف الوحيد هو استخدام دالة الطباعة printf في حين نستخدم للإدخال جملة scanf . وسيتم التوضيح عن طريق البرامج التالية :

مثال برمجي : برنامج لتعريف مصفوفة تتكون من 5 صفوف و 2 عمود وإعطائها قيم وثم طباعتها .





مثال برمجي 2 : برنامج لإدخال مصفوفة عن طريق المستخدم وطباعتها .




المربع الاخضر في الكود يمثل طريقة عمل قراءة للمصفوفة ثنائية البعد وإدخال قيمها من قبل المستخدم وهي ثابتة في كل البرامج بإستثناء حجم المصفوفة هو الذي يتغير ويتغير معه قيمة العداد الخاص بجملة for الاولى والذي يجب ان يكون نفس عدد الصفوف وجملة for الثانية الداخلية والذي يكون خاص بالاعمدة .
أما المربع الاحمر من الكود فهو خاص بجملة الطباعة للمصفوفة والطريقة ايضا ثابتة في جميع المصفوفات وينطبق عليها كل الكلام السابق .

الى هنا نأتي الى ختام هذا الدرس . 
نلتقي في الدرس القادم

الجمعة، 27 مارس 2015

تفعيل الزر hibernate في نظام ويندوز8

أهلا وسهلا بكم متابعينا الكرام في شرحنا لهذا اليوم والذي سيكون حول تفعيل الزر hibernate في ويندوز 8 لكن قبل التفعيل وشرح طريقة التفعيل سنتعرف على هذا الزر وفائدته .

ماهو الزر hibernate  ؟ وما فائدته ؟ ومالفرق بينه وبين shut down؟
هو أحد الأزرار الموجودة في قائمة power والتي غالبا تحتوي على sleep,restart,shutdown  وهذا الزر ذو فائدة كبيرة ولكن الكثير لايستعملوه لعدم معرفتهم بفائدته .
فائدة هذا الزر هي عمل سبات للكومبيوتر وإطفاءه نهائيا لكن الفرق بينه وبين shut down هو إن جميع أعمالك تبقى محفوظة .
سنوضح الفكرة بشكل أفضل :
فرضا انت تستعمل الحاسوب ولديك متصفح انترنت مفتوح وبرنامج الفوتوشوب وبرنامج الوورد و... الخ . عند عمل shutdown فالكومبيوتر سينطفى وسيطلب منك اغلاق هذه البرامج وأحيانا يتم غلقها تلقائيا . لكن مع استخدام hibernate فالامر مختلف حيث ستبقى هذه البرامج تعمل ولن تنطفىء بالرغم من أن الحاسوب سينطفىء حاله حال shutdown وبدون أن يستهلك أي طاقة كهربائية . وعند التشغيل مرة اخرى ستشاهد برامجك كما تركتها بدون أي تغيير ويمكنك الاستمرار في استعمالها.

إن خاصية هذا الزر مهمة جداً ويمكن الاستفادة منها في مواقف عديدة من أهمها لو كنت تقوم بتحميل ملف معين كبير الحجم وليس لديك برنامج تحميل لتوقف التحميل متى ما تشاء ( أي ان تقوم بالتحميل عن طريق المتصفح ) والملف لايدعم الاستكمال وفرضاً تريد أن تطفى الحاسوب فليس لديك خيار غير hibernate . لانك بذلك ستجعل المتصفح مفتوح حتى بعد الإطفاء  .
والامثلة كثيرة لإستخدام هذا الزر الرائع .


إن هذا الزر في ويندوز 8 يكون غير موجود وغير مفعل بالوضع الافتراضي للنظام وسنشرح طريقة تفعيله وهي سهلة جدا لكن قد لايعرفها الكثير .

الوضع الافتراضي يكون هكذا :


طريقة التفعيل :

الخطوة الاولى : 
إذهب الى Control Panel ثم الى Power Options 

الخطوة الثانية :
تابع هذه الصور




النتيجة :

الأربعاء، 25 مارس 2015

إخفاء وإقفال الملفات بطريقة ذكية وبدون برامج !

ربما لديك ملفات ومجلدات مهمة وخاصة بك وقد تحتاج في يوم من الأيام الى إخفاء هذه الملفات من جهازك أو قفلها برقم سري بحيث لايمكن لغيرك الوصول اليها , وقد تتواجد عشرات الطرق التي تفي بهذا الغرض لكن أغلب هذه الطرق تعتمد على برامج أخرى يتم تنصيبها على جهازك وغالبا إن هذه البرامج تسبب مشاكل في جهازك وقد تتعرض ملفاتك للحذف أو قد يتم قفلها ولايتم الفتح أو قد تختفي ولاتظهر ومشاكل البرامج كثيرة لهذا وجدنا لكم طريقة جميلة وذكية وسهلة بنفس الوقت بالاضافة الى فعاليتها الكبيرة .
نبدأ بشرح الطريقة :

ملاحظة : هذه الطريقة ليست للمبتدئين , فإذا كنت مبتدىء في إستخدام الحاسوب رجاءاً لاتقم بتطبيق هذا الشرح .

الخطوة الاولى : افتح برنامج notepad وضع فيه الكود التالي :

cls 
@ECHO OFF 
title Folder Private 
if EXIST "HTG Locker" goto UNLOCK 
if NOT EXIST Private goto MDLOCKER 
:CONFIRM 
echo Are you sure you want to lock the folder(Y/N) 
set/p "cho=>" 
if %cho%==Y goto LOCK 
if %cho%==y goto LOCK 
if %cho%==n goto END 
if %cho%==N goto END 
echo Invalid choice. 
goto CONFIRM 
:LOCK 
ren Private "HTG Locker" 
attrib +h +s "HTG Locker" 
echo Folder locked 
goto End 
:UNLOCK 
echo Enter password to unlock folder 
set/p "pass=>" 
if NOT %pass%== 123456 goto FAIL 
attrib -h -s "HTG Locker" 
ren "HTG Locker" Private 
echo Folder Unlocked successfully 
goto End 
:FAIL 
echo Invalid password 
goto end 
:MDLOCKER 
md Private 
echo Private created successfully 
goto End 
:End


ثم قم بحفظ الملف بإسم locker.bat
ملاحظة : إمتداد الملف يجب أن يكون bat .

الخطوة الثانية : بعد حفظ الملف ووضع الكود السابق فيه سيتشكل لنا الملف الموضح بالصورة التالية (1) .. نضغط عليه  double click لكي يتكون لنا مجلد بإسم private تلقائياً (2) .



الخطوة الثالثة : المجلد private هو المجلد المسؤول عن إخفاء الملفات وقفلها . تضع الملفات والمجلدات التي تريد إخفائها في هذا المجلد وتضغط على الملف locker مرة اخرى , ولكن هذه المرة النتيجة تكون كالتالي :

الان تضغط حرف ( Y ) ثم تضغط على Enter .
ستلاحظ إختفاء المجلد private وماوضغته بداخله من ملفات أو مجلدات وقفله تلقائيا .


الخطوة الرابعة : لكي تستطيع فتح المجلد مرة اخرى وجعله يظهر . ستقوم بالضغط مرة اخرى على الملف locker لكي تضهر لك نافذة تطلب الرقم السري .. سوف تقوم بإضافة الرقم 123456 وتضغط Enter .




ملاحظة :
1- لكي تقوم بإعادة اخفاء الملف ستكرر الخطوة الثالثة . حيث إن الخطوة الثالثة والرابعة تتكرر دورياً كلما تقوم بإخفاء وإظهار الملف
2- يمكنك تغيير الرقم السري الى اي رمز أخر حسب رغبتك وذلك بتغييره في الكود الموجود بالخطوة الاولى وقد تم تلوينه باللون الاحمر لمعرفة مكانه .


انتهى الشرح نرجو أن ينال على إعجابكم .

الثلاثاء، 24 مارس 2015

الدرس الخامس عشر : دورة تعلم لغة البرمجة C

أهلاً وسهلاً بكم في الدرس الخامس عشر من دورة تعلم لغة البرمجة C . في هذا الدرس سنتعلم موضوع جديد وهو موضوع المصفوفات ( Arrays ) وقبل الدخول في تفاصيل هذا الدرس والطرق البرمجية لابد من تقديم تعريف بسيط بهذه الموضوع ولابد من تعلم مالمقصود بالمصفوفات ؟
ماهي المصفوفة : أبسط تعريف للمصفوفة  (هي مجموعة من البيانات من نفس النوع ) . حيث تستعمل المصفوفات لإدارة مجموعة كبيرة من البيانات التي تحمل نفس النوع وبإستخدام إسم واحد فقط .
اذا لم تتوضح الفكرة من خلال التعريف سنوضحها بالمثال التالي :
مثلا نريد إنشاء برنامج يحتوي على 20 متغير من النوع الصحيح فمن غير المعقول أن نقوم بتعريفها بالصورة التالية :
; int  num1,num2,num3,num4 .......num20 
وخاصة اذا كنا نريد أن يقوم المستخدم بإعطاء قيم لهذه المتغيرات . وذلك لاننا سنحتاج الى عشرون جملة إدخال ( scanf ) وكذلك سنلاقي صعوبة بالغة بالتعامل مع هذه المتغيرات الكثيرة  لإن الكود سيكون طويل والمبرمج الناجح يلجأ دائما الى اقل كود ممكن لهذا ولحل هكذا مشاكل سنتجه الى التعامل مع موضوع المصفوفات .

أنواع المصفوفات :
تقسم المصفوفات الى ثلاث اقسام وهي :
1- مصفوفات احادية البعد
One-dimensional arrays
2- مصفوفات متعددة الابعاد ( اكثر من بعد واحد ) Multidimensional arrays
3- مصفوفات السلاسل الحرفية string arrays

وسوف نتكلم عن كل نوع من هذه الانواع نبدأ بالمصفوفة الاحادية , لتعريف مصفوفة أُحادية نتبع الصيغة التالية :
int ( or any other data type)  array name [array size];

الصيغة أعلاه هي الصيغة العامة لتعريف مصفوفة احادية وهي مشابه لتعريف متغير بإستثناء وجود حجم المصفوفة . أي لو أردنا تعريف مصفوفة من نوع العدد الصحيح  واسمها (num) ونريد ان يكون عدد عناصرها عشرين فستكون بالصيغة التالية :
int num[20];
إن هذا التعريف البسيط يعادل السطر الكامل الذي في الاعلى فبدلاً من تعريف عشرين متغير قمنا بتعريف مصفوفة تتكون من عشرين عنصر لكي تمثل لنا العشرين متغير الذي سنحتاجه .
مثال اخر : سنقوم بتعريف مصفوفة من نوع float وتحتوي على اربع عناصر :
float aa[4];
أي إننا قمنا بتعريف مصفوفة إسمها aa ( الأسم حسب رغبتنا ولكنه يخضع لشروط تسمية المتغيرات التي سبق وشرحناها )  وهذه المصفوفة تحتوي أربع عناصر أو أربع متغيرات أو بصيغة اخرى حجزت في الذاكرة أربعة أماكن خالية وهي 

aa[0]
aa[1] 
aa[2] 
aa[3] 
وهذه الأماكن تعتبر متغيرات وبإمكاننا معاملتها معاملة المتغير ودائما تبدأ من الرقم صفر .

طريقة إعطاء قيم لعناصر المصفوفة :

ذكرنا أعلاه إن المصفوفة تشكل مجموعة من الاماكن الخالية في الذاكرة أو تشكل مجموعة من المتغيرات والغرض منها استغلالها والاستفادة منها , ومن الطبيعي أن يكون لهذه المتغيرات التي تتمثل بعناصر المصفوفة قيم معينة نستخدمها في برامجنا وحسب حاجتنا لها وهذه القيم أما تعطى مباشرة من قبل المبرمج أو يتم إدخالها من قبل المستخدم ( وهي الاكثر استخداماً ) أو تأتي من ناتج لعملية حسابية .
اما طريقة إعطاء القيم لعناصر المصفوفة مباشرة يكون بالصيغة التالية :
aa[4]={ 5,3,1,4};
ويمكن إعطاء القيم بالطريقة التالية :


aa[0]=5;
aa[1]=3;
aa[2]=1;
aa[3]=4;

وكلا الطريقتين اعلاه متكافئة . أي يمكن اعطاء قيمة لكل عنصر من عناصر المصفوفة لوحدة وكذلك يمكن إسناد القيم جميعها بسطر واحد وهي تتوزع على عناصر المصفوفة وبالترتيب وكما ذكرنا إن أول عنصر بالمصفوفة يكون صفر وليس واحد .

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


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

الى هنا نأتي الى نهاية درسنا .. نلتقي في الدرس القادم

الأحد، 15 مارس 2015

الدرس الثالث عشر : دورة تعلم لغة البرمجة C

أهلاً وسهلاً بكم في الدرس الثالث عشر من دورة تعلم لغة البرمجة C , هذا الدرس والدرس القادم سيكونا للأفكار والتطبيقات  . سنقوم بعمل مجموعة من البرامج ونتمنى أن تستفيدوا منها وتستفيدوا من أفكارها وتقوموا بتطويرها إذا أمكن . وأيضا الهدف من هذه الدروس هو زيادة معرفتك بجمل هذه اللغة الرائعة . البرامج ستكون على شكل صور وستشمل كل المواضيع التي تعلمناها من بداية الدورة الى نهاية موضوع التكرار .

البرنامج الاول :
برنامج لإدخال عدد معين ومعرفة هل هو فردي أم زوجي ؟








البرنامج الثاني :
برنامج لإدخال عدد معين وحساب المضروب 
( factorial ) الخاص به  ؟

ملاحظة : المضروب = حاصل ضرب الرقم في جميع الأعداد التي تسبقه بإستثناء الصفر .
أي إن :

 المضروب الخاص بالعدد 2 = 2*1
 المضروب الخاص بالعدد 3 = 3*2*1
 المضروب الخاص بالعدد 4 = 4*3*2*1
وهكذا بالنسبة لبقية الاعداد ...

وهذا البرنامج لحساب   factorial  الخاص بالاعداد :






البرنامج الثالث :
برنامج لإدخال درجة معينة وحساب التقدير ؟
البرنامج بإستخدام جملة switch case








البرنامج الرابع :
برنامج لفحص العدد هل هو palindrome أو لا ؟

لتوضيح فكرة البرنامج :palindrome : يعني ان الرقم يمكن كتابته من اليمين واليسار ويبقى نفس الرقم ولايتغير .
فمثلاً الرقم 454 لو كتباه من اليمين ومن اليسار فأنه سيكون نفسه وهكذا الحال بالنسبة للرقم 121 والرقم 998899 والكثير من الارقام .
فأذا كان الرقم الذي سوف نقوم بإدخاله يقبل الكتابة من الجهتين فأن البرنامج سيكتشف بأنه 
palindrome والعكس صحيح .






المزيد من الامئلة التطبيقية والبرامج في الدرس القادم .