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

خوارزمية استقبال الدخل و تحليله

مغلق
بدأه superboy في 7 ديسمبر 2006 · 11 رد · 1,529 مشاهدة · في الرياضيات والخوارزميات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

خوارزمية استقبال الدخل و تحليله

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

إخواني الأعزاء أريد أت أسئلكم عن خزارزمية نحليل المدخل مع الشرح من فضلكم!

تحليل المدخل أي إذا كان المدخل:

5 40 8

فكيف يمكنني تحلليله بخوارزمية بكود C++ إلى كي أحصل على

8 لوحدها

40 لوحدها

5 لوحدها

علما أن بفصل بين هذه الأرقام فراغات و علما أن 5 و 40 و 8 هي أرقام يمكن أن تتغير

يفصل بينه فراغت مثال :

40 5 80 3 13

علما أن عدد الأرقام يدخل في سطر سابق مثال على الدخل :

3
40 5 6

أو

5
48 0 0 7 23

و السؤال أي طريقة دخل سأستخدم؟؟و كيف سيتم ذالك؟؟

أتمنى ممن عرف الحل أن يكتب الكود مع الشرح إن استطاع

و لا أعلم إن كان يحق لي أن أضع تمرين لا يعرف حله لكن من ستطيع حله فليعتبره تمرين

#2

up

#3

في الحقيقة الكائن Cin في ++C يوفر عليك عماء هذا العمل ..

فهو يعتبر ما بعد كل مسافة عبارة عن مدخل جديد.

أما إذا كنت تستخدم متغير نصي فيمكنك عمل تكرار و اسناد ما بعد كل مسافة على أنه متغير جديد .

1 - خذ المدخل النصي.

2 - قم بإسناد كل مجموعة من الأرقام المتلاصقة إلى مصفوفة.

3 - بعد كل مسافة يأتي مدخل جديد.

4 - قم بتحويل عناصر كل مصفوفة إلى أرقام .

تحياتي

#4
Khaled.Alshaya كتب:

في الحقيقة الكائن Cin في ++C يوفر عليك عماء هذا العمل ..

فهو يعتبر ما بعد كل مسافة عبارة عن مدخل جديد.

أما إذا كنت تستخدم متغير نصي فيمكنك عمل تكرار و اسناد ما بعد كل مسافة على أنه متغير جديد .

1 - خذ المدخل النصي.

2 - قم بإسناد كل مجموعة من الأرقام المتلاصقة إلى مصفوفة.

3 - بعد كل مسافة يأتي مدخل جديد.

4 - قم بتحويل عناصر كل مصفوفة إلى أرقام .

تحياتي

ما تعني ممكن الشرح أكثر

اقتباس
في الحقيقة الكائن Cin في ++C يوفر عليك عماء هذا العمل ..

فهو يعتبر ما بعد كل مسافة عبارة عن مدخل جديد.

لكن كيف يتم هذا

و كيف يتم كل ما قلته لأني لم أفهم شيئ

#5

يا جماعة لماذا ما حدا عم يرد? :wacko:

#6

عم استناك حبيبي Khaled.Alshaya

#7

راجع قسم السي ++ , والمواضيع المثبتة .

هذه من الأبجديات التي لاينبغي السؤال عنها أساسا !!

banner_60_468.gif

NOTHING IS IMPOSSIBLE

#8

مممممـم .....

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

أكيد لو أنك تبرمج بـ ++C قد مر عليك الكائن Cin يعني المسؤول عن الإدخال من لوحة المفاتيح.

إلى الآن جميل و كله عال العال.

هل فكرت في يوم من الأيام ما الذي يجري من وراء برنامجك و كيف يستقبل المدخلات ( لوحة المفاتيح هنا ) !

الفكرة و ما فيها , أنت تتعامل مع كائن يعطيك ما تريد و ليس ما يريد .

ألا تستطيع مثلاً فعل ما يلي :

int x, y, z;

cin >> x >> y >> z;

و تقوم بإدخال التالي :

>> 55 66 77 [ enter ]

لكن في الحقيقة الكائن يتعامل مع لوحة المفاتيح التي لا تعطيه إلا حروف ! حروف فقط!!!

يعني كل ضغطة زر تعتبر حرف أو ما يسمى Characters و هذه الحروف تتضمن ما تراه على الشاشة و ما لا تراه!

فـ Enter أو ما يسمى عند المبرمجين NewLine مثلاً يعتبر حرف و لكنه يظهر على شكل أمر للانتقال لسطر جديد.

و لذلك تقوم بكتابة التالي للانتقال إلى سطر جديد :

cout << '\n';

و معناه سطر جديد , هو حرف و لكنه غير مقروء.

-----------------------------------------

نفتح صفحة جديدة ونقول :

لما الكائن Cin يستقبل السلسة النصية من المدخلات.

يقوم بفك الرموز و لنأخذ حالة Integers كمثال ...

كيف يعلم أن هذا الرقم مكون من ثلاث خانات أو أربع ... هو لا يعلم ذلك و لكنه يعلم أن الأرقام المتتالية مثل 5 5 هما رقمان لعدد واحد هو 55.

لذلك يستخدم المسافة بين الأعداد ليفصلهما عن باقي المدخلات .

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

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

يتم التحويل باستخدام جداول Ascii .

إذا كان في أي سؤال حول التوضيح .. :)

أو أردت مثال Code عن أي فكرة أو نقطة .

تم تعديل هذه المشاركة بواسطة Khaled.Alshaya في 10 ديسمبر 2006 في 16:36

#9

هذا رابط جيد يشرح كيفية التحويل بين Char و Int .

تم تعديل هذه المشاركة بواسطة Khaled.Alshaya في 10 ديسمبر 2006 في 16:52

#10
HGB كتب:
راجع قسم السي ++ , والمواضيع المثبتة .

هذه من الأبجديات التي لاينبغي السؤال عنها أساسا !!

أسف إذا كان في إزعاج في السؤال لقد قرأت العديد من الكتب لكن لم أتوصل لهذا بسب قلة الخبرة

Khaled.Alshaya كتب:

مممممـم .....

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

أكيد لو أنك تبرمج بـ ++C قد مر عليك الكائن Cin يعني المسؤول عن الإدخال من لوحة المفاتيح.

إلى الآن جميل و كله عال العال.

هل فكرت في يوم من الأيام ما الذي يجري من وراء برنامجك و كيف يستقبل المدخلات ( لوحة المفاتيح هنا ) !

الفكرة و ما فيها , أنت تتعامل مع كائن يعطيك ما تريد و ليس ما يريد .

ألا تستطيع مثلاً فعل ما يلي :

int x, y, z;

cin >> x >> y >> z;

و تقوم بإدخال التالي :

>> 55 66 77 [ enter ]

لكن في الحقيقة الكائن يتعامل مع لوحة المفاتيح التي لا تعطيه إلا حروف ! حروف فقط!!!

يعني كل ضغطة زر تعتبر حرف أو ما يسمى Characters و هذه الحروف تتضمن ما تراه على الشاشة و ما لا تراه!

فـ Enter أو ما يسمى عند المبرمجين NewLine مثلاً يعتبر حرف و لكنه يظهر على شكل أمر للانتقال لسطر جديد.

و لذلك تقوم بكتابة التالي للانتقال إلى سطر جديد :

cout << '\n';

و معناه سطر جديد , هو حرف و لكنه غير مقروء.

-----------------------------------------

نفتح صفحة جديدة ونقول :

لما الكائن Cin يستقبل السلسة النصية من المدخلات.

يقوم بفك الرموز و لنأخذ حالة Integers كمثال ...

كيف يعلم أن هذا الرقم مكون من ثلاث خانات أو أربع ... هو لا يعلم ذلك و لكنه يعلم أن الأرقام المتتالية مثل 5 5 هما رقمان لعدد واحد هو 55.

لذلك يستخدم المسافة بين الأعداد ليفصلهما عن باقي المدخلات .

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

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

يتم التحويل باستخدام جداول Ascii .

إذا كان في أي سؤال حول التوضيح .. :)

أو أردت مثال Code عن أي فكرة أو نقطة .

ألف شكرا لك على هذا الشرح الوافي لقد كنت أحتاج إلى الكود

int x, y, z;

cin >> x >> y >> z;

كي أفهم القسم الثاني من السؤال

فألف شكر لك

أما هذا فقد فهمت لكن كيف يمكنك تحديد عدد الأرقام في سطر سابق

كما ورد في البداية هل لهذا علاقة بمصفوفات مثلا في المثال السابق كانو 3 أرقام و شكرا

Khaled.Alshaya كتب:

هذا رابط جيد يشرح كيفية التحويل بين Char و Int .

شكرا لك على الرابط ;)

#11

لا أدري ماذا تعني بعدد الأرقام ! و لكن عندما تقوم ببرمجة "مفسر" أو محلل مدخلات فالمبرمج هو من يهتم بالتفاصيل برمجياً.

ممكن عن طريق متغير و يتم زيادته في كل مرة يتكون عدد كامل .

و أما المقصود بالثلاث متغيرات في المثال فإن الكائن Cin يعطيك أول ثلاث أعداد . دون أن تهتم بباقي المدخلات. "مثال لا أكثر"

#12

أعني أن تدخل عدد الأرقام في سطر سابق مثلا

3

10 2 5

او

4

5 2 1 4

هذه أمثلة للرد

هذا الموضوع مغلق.

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