حل نشاط Write a C++ function that takes a pointer to a string
منتدى مصر التقني :: قسم لغات البرمجة Programming languages :: لغة السى و السي ++ C :: نقاش و أستفسارات الاعضاء
صفحة 1 من اصل 1 • شاطر
حل نشاط Write a C++ function that takes a pointer to a string
اهلا بكم ....النشاط كان على النحو التالى :
اذن المطلوب فى هذا النشاط ما يلى :
1_وظيفة تاخذ معلمتها تاخذ مؤشر تشير الى سلسة نصية
2_الوظيفة تقوم بارجاع عدد مرات أرقام ASCII الفردية
1_بداية ماذا يقصد بالمؤشر فى لغة السي بلس بلس وكيف يمكن انشائة
المؤشر [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط]....هو عبارة عن متغير تحتوي قيمته على عنوان متغير آخر في الذاكرة، ومن الإسم فهو يشير إلى عنوان متغير آخر ...ولانشاء مؤشر جديد نستخدم الرمز #* مع الإشارة إلى أن نوع المؤشر ....لذلك فى هذا المثال سنقوم بانشاء مؤشر أحرف [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط] و ليكن باسم p وتمرير كمعلمة لوظيفة وليكن باسم getascll وذلك على النحو التالى :
ويمكنك ملاحظة أن السؤال حدد أن تقوم الطريقة بارجاع عدد صحيح لذلك جلعنها من نوع int
2_المطلوب من تلك الوظيفية هو حساب عدد الاعداد الفردية Odd numbers لقيم الاسكي [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط] الموجودة بالنص...
و الاسكي ASCII هو نظام ترميز (قيمة تتراوح بين 0 و 127) لتمثيل الحروف والرموز فى الحاسب الالى ....بمعنى ان كل حرف او رمز فى الكيبورد له رقم معين فى هذا النظام و يمكنك الحصولة علية بكل سهولة من خلال الوظيفة int() في السي بلس بلس ....فمثلا اريد معرفة قيمة الرقم المقابل لحرف A بالسي بلس بلس سيكون على النحو التالى :
3_المطلوب فى السؤال ليس فقط ايجاد قيمة كل حرف في نظام الترميز [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط] من السلسة النصية المدخلة بل ايجاد عدد الاعداد الفردية التى ظهرت ....لذلك لابد من معرفة اية هو العدد الفردي هو كل عدد لا يقبل القسمة على ( 2 ) بدون باقي....فمثلا العدد 3 عدد فردى لانه لايقبل القسمة على الرقم 2 ....فلو تم قسمته سيظهر لنا فواصل عشرية 1.5....ويمكن الاطلاع على كيفية التحقق من الاعداد الفردية و الزوجية من خلال شفرة السي بلس بلس من خلال الرابط التالى :
بعد هذه المعلومات تعالوا نروح للسؤال
لتشغيل المثال و الاخراج على الرابط التالى :
Write a C++ function that takes a pointer to a string. The function should return the number of times Odd ASCII numbers appeared in the string.
اذن المطلوب فى هذا النشاط ما يلى :
1_وظيفة تاخذ معلمتها تاخذ مؤشر تشير الى سلسة نصية
2_الوظيفة تقوم بارجاع عدد مرات أرقام ASCII الفردية
1_بداية ماذا يقصد بالمؤشر فى لغة السي بلس بلس وكيف يمكن انشائة
المؤشر [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط]....هو عبارة عن متغير تحتوي قيمته على عنوان متغير آخر في الذاكرة، ومن الإسم فهو يشير إلى عنوان متغير آخر ...ولانشاء مؤشر جديد نستخدم الرمز #* مع الإشارة إلى أن نوع المؤشر ....لذلك فى هذا المثال سنقوم بانشاء مؤشر أحرف [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط] و ليكن باسم p وتمرير كمعلمة لوظيفة وليكن باسم getascll وذلك على النحو التالى :
- الكود:
int get_ASCII(char *p)
ويمكنك ملاحظة أن السؤال حدد أن تقوم الطريقة بارجاع عدد صحيح لذلك جلعنها من نوع int
2_المطلوب من تلك الوظيفية هو حساب عدد الاعداد الفردية Odd numbers لقيم الاسكي [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط] الموجودة بالنص...
و الاسكي ASCII هو نظام ترميز (قيمة تتراوح بين 0 و 127) لتمثيل الحروف والرموز فى الحاسب الالى ....بمعنى ان كل حرف او رمز فى الكيبورد له رقم معين فى هذا النظام و يمكنك الحصولة علية بكل سهولة من خلال الوظيفة int() في السي بلس بلس ....فمثلا اريد معرفة قيمة الرقم المقابل لحرف A بالسي بلس بلس سيكون على النحو التالى :
- الكود:
#include <iostream>
using namespace std;
int main()
{
char c = 'A';
cout << "The ASCII value of " << c << " is " << int(c);
return 0;
}
Output:
The ASCII value of A is 65
3_المطلوب فى السؤال ليس فقط ايجاد قيمة كل حرف في نظام الترميز [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط] من السلسة النصية المدخلة بل ايجاد عدد الاعداد الفردية التى ظهرت ....لذلك لابد من معرفة اية هو العدد الفردي هو كل عدد لا يقبل القسمة على ( 2 ) بدون باقي....فمثلا العدد 3 عدد فردى لانه لايقبل القسمة على الرقم 2 ....فلو تم قسمته سيظهر لنا فواصل عشرية 1.5....ويمكن الاطلاع على كيفية التحقق من الاعداد الفردية و الزوجية من خلال شفرة السي بلس بلس من خلال الرابط التالى :
[ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط]
بعد هذه المعلومات تعالوا نروح للسؤال
- الكود:
#include <iostream>
using namespace std;
int get_ASCII(char *p){
int cont =0; // متغير لتخزين عدد مرات ظهور الارقام الفردية
while(*p) { // حلقة دوران للمرور على كافة احرف السلسة
if(int(*p)% 2 != 0) // قسمة قيمة مؤشر السلسة على الرقم 2
// اذا كانت ناتج القسمة لا يساوي الصفر معنى ذلك توجد كسور عشرية
// وطالما ناتج القسمة به علامات عشرية اذن العدد فردي
cont++; // فيجب زيادة العداد
p++;
}
return cont;
}
int main()
{
// إنشاء سلسة نصية
char arr[] = "my name is ahmed";
// إنشاء مؤشر سلسلة
char *ptr = arr;
// انشاء متغير لتخزين قيمة ارجاع الوظيقة مع تمرير مؤشر الى الوظيفة
int c= get_ASCII(ptr);
cout << "the number of times Odd ASCII numbers appeared is :" << c;
return 0;
}
لتشغيل المثال و الاخراج على الرابط التالى :
[ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط]
ـــــــــــــــــــ التوقيع ــــــــــــــــــــ
سبحان الله وبحمدة .....سبحان الله العظيم
| |
منتدى مصر التقني :: قسم لغات البرمجة Programming languages :: لغة السى و السي ++ C :: نقاش و أستفسارات الاعضاء
صفحة 1 من اصل 1
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى
» عملية تجميل الأذن الوطواطية| تجميل الأذن الوطواطية بدون جراحة|دكتور نادي صقر
» عملية تجميل الأذن الوطواطية: تجميل الأذن الوطواطية بدون جراحة
» شفط دهون الذقن المزدوجة | جراح تجميل في الكويت
» شفط دهون الذقن المزدوجة | أفضل جراح تجميل في الكويت
» شركة نقل عفش وأثاث في الكويت
» افضل فني صحي بالكويت
» أفضل موقع عربي للحصول على منح دراسية ودورات مجانية وفرص عمل
» مشكلة عند تشغيل الفيجوال بيسيك
» أفضل شركة نقل عفش وأثاث في الكويت