الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

تحويل مصفوفة من الحروف الى متغيرات رقمية

بدأه سار مع الليل في 15 أبريل 2011 · 10 رد · 1,282 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

ارجو المساعدة

لقد عملت برنامج تحويل من infix to postfix

اريد ان احسب الناتج

حيث ان مصفوفة postfix هي من نوع char

اريد تحويلها الى متغير رقمي حتى استطيع ان احسب الناتج

مثلأ:: عندي postfix نوع char ويوجد داخلة

*15

كيف احول 15 من char الى متغير رقمي حتى اضرب 1*5 =6

ارجو ان السوال واضح لكم

منتظر الرد

49940.jpg
#2

,,,,,,,,,,,,,,,,,, وعليكم السلام ورحمته الله وبركاته اهل من انتم اهله ,,,,,,,,,,,,,,,,,,,

END

<<<<<<<Tamplate >>>>>>>>>

#3
سار مع الليل كتب:

السلام عليكم

ارجو المساعدة

لقد عملت برنامج تحويل من infix to postfix

اريد ان احسب الناتج

حيث ان مصفوفة postfix هي من نوع char

اريد تحويلها الى متغير رقمي حتى استطيع ان احسب الناتج

مثلأ:: عندي postfix نوع char ويوجد داخلة

*15

كيف احول 15 من char الى متغير رقمي حتى اضرب 1*5 =6

ارجو ان السوال واضح لكم

منتظر الرد

قم بعمل cast لمتغيرات ال char الى int

#4

شكراً اخي Ali Al-Zyoud

رغم اني ضعيف في عملية cast لاني لم ادرسها ولم اجد لها شرح في المنتدى

وهي تتكون من

static cast

dynamic cast

اذا كان عندك شرح لهذا التحويلات ارجو ان ترفقة او ترشدنا اين اجد شرحة بالعربي

وبارك الله فيك

تم تعديل هذه المشاركة بواسطة سار مع الليل في 15 أبريل 2011 في 13:54

49940.jpg
#5
سار مع الليل كتب:

شكراً اخي Ali Al-Zyoud

رغم اني ضعيف في عملية cast لاني لم ادرسها ولم اجد لها شرح في المنتدى

وهي تتكون من

static cast

dynamic cast

اذا كان عندك شرح لهذا التحويلات ارجو ان ترفقة او ترشدنا اين اجد شرحة بالعربي

وبارك الله فيك

بما انك تستخدم datatype رئيسيه ولا تستخدم classes فلا يلزمك الى cast مباشر مثال بسيط

#include <iostream>
using namespace std;
int main()
{

		cout<<(int)'b';

	return 0;
}

هنا سأطبع الحرف كقيمه رقميه askii كذلك يمكنك تخزين القيم بمتغير int او اي عمليات تريد تطبيقها عليه

#6

هذه محاولتي وارجو التصحيح

انا عارف احول من حرف الى رقم في الاسكي

ولكن

انظر للكود التالي

int main(int argc, char *argv[])
{
	char m='1';

	cout<<int(m)<<endl;
}
يكون الناتج 49
وانا اريد الناتج يكون 1 
فهل هناك طريقة للتحويل

بعد التحويل الى postfix اريد ان اظهر الناتج ولكن الـ postfix نوع char كيف احولة الى متغير رقمي حتى اعمل علية عملية رياضية واظهر الناتج

وهنا كود infix to postfix

تم تعديل هذه المشاركة بواسطة سار مع الليل في 15 أبريل 2011 في 23:18

49940.jpg
#7
سار مع الليل كتب:

هذه محاولتي وارجو التصحيح

انا عارف احول من حرف الى رقم في الاسكي

ولكن

انظر للكود التالي

int main(int argc, char *argv[])
{
	char m='1';

	cout<<int(m)<<endl;
}
يكون الناتج 49
وانا اريد الناتج يكون 1 
فهل هناك طريقة للتحويل

بعد التحويل الى postfix اريد ان اظهر الناتج ولكن الـ postfix نوع char كيف احولة الى متغير رقمي حتى اعمل علية عملية رياضية واظهر الناتج

وهنا كود infix to postfix

هذا موضوع اخر انت تريد تحويل ال string الى رقم

يمكنك استخدام الداله itoa

#include <iostream>
using namespace std;
int main()
{
	int a=atoi("123");
	cout<<a;

	return 0;
}
#8
سار مع الليل كتب:

هذه محاولتي وارجو التصحيح

انا عارف احول من حرف الى رقم في الاسكي

ولكن

انظر للكود التالي

int main(int argc, char *argv[])
{
	char m='1';

	cout<<int(m)<<endl;
}
يكون الناتج 49
وانا اريد الناتج يكون 1 
فهل هناك طريقة للتحويل

غيرها الى

int main(int argc, char *argv[])
{
	char m='1';

 int x = m - '0';   
	cout<< x <<endl;
}

وتاكد دائما ان الحرف m عبارة عن رقم

تحياتى


﴿وَمَا كَانَ اللَّهُ لِيُعَذِّبَهُمْ وَأَنْتَ فِيهِمْ ۚ وَمَا كَانَ اللَّهُ مُعَذِّبَهُمْ وَهُمْ يَسْتَغْفِرُونَ﴾

الأنفال ۳۳                                  
 

#9

اخيراً تم الحل بنجاح

الفضل لاخي Ali Al-Zyoud و MOHAMED FATHEI

ارجو التوضيح قليلاً

مثلاأ دالة atoi

لماذا ترسل لها بالعنوان

=================

'0'-m

عندما اعمل ناقص 0 يكون الحل صحيح لماذا

ارجو الشرح

لان الطريقتين كلهم اشتغلو تمام

ولكن لم افهم طريقة عملهم ارجو التوضيح

واسف على كثرة الاستفسارات

وجزاكم الله الخير كلة

49940.jpg
#10
اقتباس

'0'-m

عندما اعمل ناقص 0 يكون الحل صحيح لماذا

اذا كان الحرف '1' ترتيبه فى جدول الاسكى = 48

اذا الحرف '0' ترتيبه سيكون 47

وبما ان المتغير x من نوع int ويمكنه استيعاب حجم المتغير الناتج من طرح الحرفين char

سيقوم المترجم بعمل implicit conversion للناتج من نوع char الى int

وسيكون الناتج كالتالى 48 - 47 = 1

اتمنى تكون اتضحت الفكرة


﴿وَمَا كَانَ اللَّهُ لِيُعَذِّبَهُمْ وَأَنْتَ فِيهِمْ ۚ وَمَا كَانَ اللَّهُ مُعَذِّبَهُمْ وَهُمْ يَسْتَغْفِرُونَ﴾

الأنفال ۳۳                                  
 

#11

atoi تحول النص الى رقم الاختلاف بين الطريقتين هما التالي اذا كنت تريد ان تحول رقم من خانه واحده فقط استخدم الطريقه الثانيه اذا اردت ان تحول رقم بأكثر من خانه استخدم الطريقه الاولى

لماذا تأخذ عنوان ؟

السبب انها تتعامل مع نص وعليك ان ترسل موقع البدايه لداله وهي تعتبر ان النص انتهى عندما تجد NULL

مواضيع مشابهة