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

مشروع أنشاء الة حاسبة معقدة مثل حاسبة الويندوذ الى حد ما

اذهب الى الأسفل

مشروع أنشاء الة حاسبة معقدة مثل حاسبة الويندوذ الى حد ما  Empty مشروع أنشاء الة حاسبة معقدة مثل حاسبة الويندوذ الى حد ما

مُساهمة من طرف أحمد مناع الخميس ديسمبر 22, 2011 1:21 pm

بسم الله الرحمن الرحيم



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


أولا :الادوات المطلوبة



_ عدد 23 زر أمر

_عدد 2 فيرم farme

_عدد 3 صندوق نص textbox


ثانيا : ضبط الادوات



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



مشروع أنشاء الة حاسبة معقدة مثل حاسبة الويندوذ الى حد ما  864254580




من الصورة السابقة تستطيع أن تضبط أدواتك و تضع الاسم المناسب (caption) لكل زر فقد تعلمنا ذلك جديدا ...لكن هناك خاصية جيدة عليك لزر الاوامر الا وهى خاصية تغير خلفية الز بلون معين ....الامر بيسط جدا فلكى تقوم بتغير لون الخليفية لاى زر من خلال الخاصية ستايل style بأن تجعلها تساوى Graphical ثم بعد ذلك تختار اللون المناسب لخلفية الزر عن طريق الخاصية BackColor....وذلك كما فى الصورة التالية :



مشروع أنشاء الة حاسبة معقدة مثل حاسبة الويندوذ الى حد ما  786078404




و ايضا نجعل خاصية MaxLength لنصدوق النص الاول _شاشة العمليات الحسابية _ تساوى 16 و ذلك لنجعل عدد الارقام بهذا الصندق 16 رقم فقط لانه لو لم نعطى قيمة لهذه الخاصية فأن هذا الصندوق سيسمح للمستخدم أدخال ارقام الى مالا نهاية ...أما عند تحديد قيمة لهذه الخاصية فلن يقبل الصندوق أكثر من تلك القيمة ....أنظر الصورة التالية :

مشروع أنشاء الة حاسبة معقدة مثل حاسبة الويندوذ الى حد ما  740316386



أما عند تحديد قيمة لتلك الخاصية فأنها لن تسمح الا بتلك القيمة من الارقام ....كما فى الصورة التالية



مشروع أنشاء الة حاسبة معقدة مثل حاسبة الويندوذ الى حد ما  416879824




أخيرا نجعل الخاصية Locked لجميع صناديق النصوص الثلاثة تساوى True وذلك لمنع المستخدم من الكتابة فيهم ...


ثالثا : كتابة الكود أو الشفرة البرمجية :



بالنسبة لزر أوامر الارقام و الفاصلة العشرية :



يوجد فى الالة الحاسبة التى نحن بصدد برمجتها عدد 11 زر خاص بالارقام و العلامة العشرية تم ترقيمها من الرقم (صفر)حتى الرقم (9)بالاضافة الى زر (.)العلامة العشرية .....المطلوب من تلك الازرار هو عند الضغط عليها يتم كتابة الرقم الخاص بها فى شاشة الناتج الحسابى text1 ....و الكود الخاص بكل زر سيكون على النحو التالى :



بالنسبة لزر العلامة العشرية (.)





الكود:


Text1.Text = Text1.Text + "."





بالنسبة للزر (صفر):



الكود:
Text1.Text = Text1.Text + "0"



بالنسبة للزر (1)



الكود:
Text1.Text = Text1.Text + "1"



بالنسبة للزر (2)



الكود:
 Text1.Text = Text1.Text + "2"



وهكذا بالنسبة لجميع الارقام الباقية حتى تصل الى الرقم (9)...وتعالو نشرح الاكواد السابقة :



الكود الاول : بقول للبرنامج عند الضغط على رز (.) العلامة العشرية أكتب فى شاشة الناتج الحسابى (text1) علامة عشرية (.) بالاضافة الى القيمة الموجودة أساسا فى تلك الشاشة (text1)



الكود الثانى : بنفس المنطق بقول للبرنامج عند الضغط على رز (1) أكتب فى شاشة الناتج الحسابى (text1) الرقم (1) بالاضافة الى القيمة الموجودة أساسا فى تلك الشاشة (text1) ....و بنفس المنطق لجميع الاكواد الاخرى حتى تصل للرقم (9)...



حتى الان لم ننتهى من برمجة أزار الاوامر الخاصة بالارقام و العلامة العشرية لان هناك مشكة سوف تقابلنا لو أكتفينا بالكود السابق ...الا وهى وجود قيم أخرى فى text1 ....فمثلا كتنبا الرقم (12)ثم ضغطنا على زر الجمع (+) و نريد أن كتب الرقم الثانى وليكن (13)..فسنجد أن الرقم الاول (12) مازال موجود فى شاشة الناتج الحسابى text1 وعند كتابة الرقم الثانى (13) سنجد أن البرنامج قد قام بكتابة الرقم الثانى بالاضافة الى الرقم الاول وسنجد أن شاشة الناتج الحسابى text1 مكتوب بها الرقم على هذا الشكل (1213)......



أذن المطلوب هو مسح أى قيمية فى شاشة الناتج الحسابى text1 بشرطين ...الاول أن يكون ذلك بعد الضغط على أحد أزرار العمليات الحسابية (+),(-),(*),(/)أو زر(=)....أما الشرط الثانى هو أن يتم ذلك أيضا مع أول ضغطة لادخال الرقم الثانى ...كيف يمكن عمل ذلك عن طريق الكود ؟



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



1 : يتم التصريح فى القسم العام للنموذج عن المتغير test كما فى الكود التالى :



الكود:


Dim text As Boolean



2 :الكود الخاص بزر أمر العلامة العشرية (.)....سيكون بعد التعديل على النحو التالى :

الكود:


If Test = True Then
Test = False
Text1.text = ""
End If

Text1.text = Text1.text + "."






شرح الكود السابق .....



- أستخدمنا جملة IF _وهى من الجمل الشرطية _ فبقول للبرنامج لو المتغير test يساوى True عندئذ أجعل هذا المتغير يساوى false ثم أمسح القيم الموجودة فى text1 ...وأنتهى بـــ end if ...بعد ذلك أكتب فى شاشة الناتج الحسابى text1 العلامة العشرية (.) بالاضافة الى القيمة الموجودة اساسا فى مربع النص text1 أو شاشة الناتج الحسابى .....



3- الكود الخاص بزر الامر رقم (1)...سيكون بنفس منطق الكود السابق مع تغير طفيف وهو أن يكتب البرنامج رقم (1) بدلا من العلامة العشرية ...على النحو التالى :



الكود:


If Test = True Then
Test = False
Text1.text = ""
End If

Text1.text = Text1.text + "1"





وعلى هذا القياس كرر تلك العملية لجميع أزرار الامر الخاصة بالارقام حتى تصل الى الرقم (9)



كتابة الكود بالنسبة لأزرار العمليات الحسابية (+),(-),(*),(/):



تعالوا يا أخوانى الان نحدد المطلوب من تلك الزراير السابقة و تتمثل فى :



_ جعل المتغير test يساوى Ture

_ حفظ الرقم الاول المدخل من المستخدم فى متغير ما حتى نستطيع أجراء العمليات الحسابية علية

_أن يكتب البرنامج نوع العملية الحسابية فى صندوق النص الثانى text2



بعد ما حددنا الاجراءات الملطوبة من تلك الزراير ....نأتى لكتابة الكود :



1_ نقوم بعمل متغير من نوع double وليكن أسمه N1 وذلك لحفظ الرقم الاول المدخل من المستخدم كما أوضحنا سابقا ....وذلك عن طريق كتابة الكود التالى فى قسم التصريحات للنموذج :



الكود:


Dim N As Double




2_ ثم نكتب الكود التالى تحت كل زر من أزارا العمليات الحسابية السابقة .....فمثلا تحت زر الامر (+) نكتب الكود التالى :



الكود:


Test = True
N = Val(Text1.text)
Text2.text = "+"






وتحت زر (-) الطرح نكتب الكود التالى :



الكود:


Test = True
N = Val(Text1.text)
Text2.text = "-"




وهكذا بالنسبة لزر امر الضرب(*)و زر الامر القسمة (/) مع تغير نوع العملية فى السطر الثالث من الكود



كتابة الكود بالنسبة لزر الامر يساوى (=).



المطلوب من هذا الزر هو عند الضغط عليه عرض ناتج العملية الحسابية فى صندوق النص الاول text1 بناء على نوع العملية الموجودة فى صندوق النص الثانى text2 ثم بعد ذلك يجعل البرنامج المتغير test تساوى True ثم يكتب فى صندوق النص الثانى علامة (=)....أذن الكود لهذا الزر سيكون على النحو التالى :



الكود:




If Text2.text = "+" Then
Text1.text = N + Val(Text1.text)
End If

If Text2.text = "-" Then
Text1.text = N - Val(Text1.text)
End If

If Text2.text = "*" Then
Text1.text = N * Val(Text1.text)
End If

If Text2.text = "/" Then
Text1.text = N / Val(Text1.text)
End If


Test = True
Text2.text = "="







شرح الكود السابق ....نقول للبرنامج أذا كانت قيمة صندوق النص الثانى text2 تساوى علامة الجمع (+)عندئذ أجعل قيمة صندوق النص الاول text1 تساوى قيمية المتغير (N) أو الرقم الاول المخزن+ القيمة الموجودة حاليا فى text1 ....وتم تكرار جملة الشرط هذه مع باقى العمليات الحسابية الاخرى (-),(/),(*).....ثم بعد ذلك جعلنا المتغير test تساوى true و أيضا التكست الثانى قيمة (=)


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



On Error Resume Next



بالنسبة لزر الامر (c):



يستخدم هذا الامر فى الالة الحاسبة لالغاء العملية الحسابية و مسح البيانات المدخلة و بالتالى فأن الكود الخاص بهذا الزر سيكون على النحو التالى :



الكود:


Text1.text = ""
Text2.text = ""







بالنسبة لزر الامر (CE):



يستخدم هذا الامر فى الالة الحاسبة لمسح البيانات الموجودة حاليا فى شاشة الحاسبة مع عدم الغاء باقى العملية ....وبالتالى سيكون الكود على النحو التالى :



الكود:


Text1.Text = ""






بالنسبة لزر الامر BackSpace



المطلوب من هذا الزر هو مسح رقم واحد من الارقام التى بالشاشة مع كل ضغطة ...فمثلا أريد أن أكتب 1245 فقمت كتابتة بالخطأ هكذا 1254 فبدلا من مسح الرقم كاملا ثم أعادة كتابتة أقوم بالضغط على زر BackSpace لمسح الرقم 5 ثم 4 و أقوم بتصحيح الخطأ .....و لكى يتم كتابة الكود لهذا الزر فيجب علينا أستخدام دالة Left والتي ستقتص نصاً من اليسار بطول النص - 1 ، وذلك بالشكل التالي :



الكود:


If Len(Text1.text) <> 0 Then Text1.text = Left(Text1.text, Len(Text1.text) - 1)





بالنسبة لزر الامر (+/-)



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



الكود:


Text1.Text = Val(Text1.Text) * -1






لاحظ يا عزيزى أننا فى الكود السابق طلبنا من البرنامج عند الضغط على هذا الزر أن يجعل قيمة text1 تساوى تلك القيمة مضروبة فى سالب (1) ...وبالتالى فأن الناتج لو كان بالسالب سيصبح بالموجب لان (سالب*سالب موجب)...ولو أن الرقم الموجود بالموجب فسيصبح بالسالب لان(سالب *موجب = سالب)....Very Happy Very Happy



بالنسبة لزر الامر +M



طبعا هذا الزر خاص بزاكرة الالة لكى نخنزن به أى رقم نريده ......أذن سنقوم بعمل متغير من نوع double وليكن أسمه Memory ليحل محل الذاكرة .......ويتم ذلك عن طريق التصريح عن اسم المتغيرة و نوعة فى قسم التصريحات بالنموذج من خلال الكود التالى :



الكود:


Dim Memory As Double






بعد ذلك نقوم بكتابة الكود التالى فى زر الامر +M



الكود:


Memory = Val(Text1.text)
Text3.text = M


شرح الكود :

فى السطر الاول ...بقول للبرنامج أجعل قيمة المتغير Memory تساوى القيمة الموجودة فى Text 1

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



بالنسبة لزر الامر MR

هذا الزر مطلوب منه عرض القيمة الموجودة فى الذاكرة على شاشة الناتج الحسابى text1 وبالتالى فأن الكود سيكون على النحو التالى :



الكود:


Text1.text = Memory






بالنسبة لزر الامر MC



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



الكود:


Memory = 0
Text3.text = ""






لاحظ أننا أضفنا السرط الثانى فى الكود لكى نوضح للمستخدم أن الذاكرة فارغة من خلال Text3







بهذا أخوانى الكرام نكون قد أنتهينا من برمجة الة حاسبة معقده بعض الشىء .....و اليكم المشروع بالكامل فى المرفقات
المرفقات
مشروع أنشاء الة حاسبة معقدة مثل حاسبة الويندوذ الى حد ما  Attachment
الة حاسبة.zip لا تتوفر على صلاحيات كافية لتحميل هذه المرفقات.(3 Ko) عدد مرات التنزيل 149

ـــــــــــــــــــ التوقيع ــــــــــــــــــــ
سبحان الله وبحمدة .....سبحان الله العظيم
أحمد مناع
أحمد مناع
.
.

تاريخ التسجيل : 15/02/2011
المساهمات : 1108
النقاط : 202034
التقيم : 144
الدولة : مصر
الجنس : ذكر

https://egy-tech.forumegypt.net

الرجوع الى أعلى الصفحة اذهب الى الأسفل

مشروع أنشاء الة حاسبة معقدة مثل حاسبة الويندوذ الى حد ما  Empty رد: مشروع أنشاء الة حاسبة معقدة مثل حاسبة الويندوذ الى حد ما

مُساهمة من طرف جورج صبحى الإثنين فبراير 27, 2012 7:39 am

أخى أحمد ....





لماذا لا أستطيع تحميل الملف المرفق من المرفقات ....مكتوب لا تتوفر على صلاحيات كافية لتحميل هذه المرفقات...



أرجوا حل المشكلة
جورج صبحى
جورج صبحى
......
......

تاريخ التسجيل : 18/02/2011
المساهمات : 127
النقاط : 259
التقيم : 6
الجنس : ذكر

الرجوع الى أعلى الصفحة اذهب الى الأسفل

مشروع أنشاء الة حاسبة معقدة مثل حاسبة الويندوذ الى حد ما  Empty رد: مشروع أنشاء الة حاسبة معقدة مثل حاسبة الويندوذ الى حد ما

مُساهمة من طرف أحمد مناع الإثنين فبراير 27, 2012 3:53 pm

جورج صبحى كتب:أخى أحمد ....





لماذا لا أستطيع تحميل الملف المرفق من المرفقات ....مكتوب لا تتوفر على صلاحيات كافية لتحميل هذه المرفقات...



أرجوا حل المشكلة



جارى حل المشكلة ياسيد جورج ....وشكرا لك على التنبيه و على مواضيعك المميزة ....فينك ياراجل من زمان

ـــــــــــــــــــ التوقيع ــــــــــــــــــــ
سبحان الله وبحمدة .....سبحان الله العظيم
أحمد مناع
أحمد مناع
.
.

تاريخ التسجيل : 15/02/2011
المساهمات : 1108
النقاط : 202034
التقيم : 144
الدولة : مصر
الجنس : ذكر

https://egy-tech.forumegypt.net

الرجوع الى أعلى الصفحة اذهب الى الأسفل

مشروع أنشاء الة حاسبة معقدة مثل حاسبة الويندوذ الى حد ما  Empty رد: مشروع أنشاء الة حاسبة معقدة مثل حاسبة الويندوذ الى حد ما

مُساهمة من طرف السنى الأحد مارس 04, 2012 7:52 am

جارى حل المشكلة ياسيد جورج ....وشكرا لك على التنبيه و على مواضيعك المميزة ....فينك ياراجل من زمان




شكرا لك أخى أحمد أنا أستطعت التحميل من المرفقات
السنى
السنى
........
........

تاريخ التسجيل : 18/02/2011
المساهمات : 249
النقاط : 464
التقيم : 25
الجنس : ذكر

الرجوع الى أعلى الصفحة اذهب الى الأسفل

مشروع أنشاء الة حاسبة معقدة مثل حاسبة الويندوذ الى حد ما  Empty مشكوووووووووووور

مُساهمة من طرف أحمد الأربعاء أبريل 16, 2014 6:17 pm

مشكوووووووووووور
Anonymous
أحمد
زائر


الرجوع الى أعلى الصفحة اذهب الى الأسفل

مشروع أنشاء الة حاسبة معقدة مثل حاسبة الويندوذ الى حد ما  Empty egypt

مُساهمة من طرف ج الجمعة أكتوبر 31, 2014 12:44 pm

كيف اضيف مفتاح لحساب المساحات ومفتاح لحل معادله الى الحاسبه
Anonymous
ج
زائر


الرجوع الى أعلى الصفحة اذهب الى الأسفل

مشروع أنشاء الة حاسبة معقدة مثل حاسبة الويندوذ الى حد ما  Empty رد: مشروع أنشاء الة حاسبة معقدة مثل حاسبة الويندوذ الى حد ما

مُساهمة من طرف abdullah الثلاثاء يناير 24, 2017 11:18 pm

مشكوووووووووووور
abdullah
abdullah
.
.

تاريخ التسجيل : 24/01/2017
المساهمات : 5
النقاط : 5
التقيم : 0
الدولة : مصر
الجنس : ذكر

الرجوع الى أعلى الصفحة اذهب الى الأسفل

مشروع أنشاء الة حاسبة معقدة مثل حاسبة الويندوذ الى حد ما  Empty رد: مشروع أنشاء الة حاسبة معقدة مثل حاسبة الويندوذ الى حد ما

مُساهمة من طرف Dr.Rehab السبت أبريل 07, 2018 1:18 pm

شكرا جزيلا اخي 
هل يمكنك مساعدتى في عمل لوحة مفاتيح للحروف العربية مثل هذه الآلة الحاسبه بحيث يمكن تشغيلها للكتابة في مربع نص على الشاشة اثناء عرض تقديمى power point  لتشغيلها على  kiosk mode presentation ؟ 
احتاجها في شريحة بوربوينت لإدماجها في عرض التقديمى ولم أجدها باللغة العربية إطلاقاً.
Dr.Rehab
Dr.Rehab
.
.

تاريخ التسجيل : 07/04/2018
المساهمات : 1
النقاط : 1
التقيم : 0
الدولة : مصر
الجنس : انثى

الرجوع الى أعلى الصفحة اذهب الى الأسفل

الرجوع الى أعلى الصفحة

ََ

مواضيع ذات صلة


 
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى