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

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

بدأه أحمد جادالله في 6 أكتوبر 2010 · 48 رد · 2,508 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#26
char a[10];
cin>>a;
int fact=11;
int num[10];
int 
sum=0;
int size=strlen(a);
for(int i=0;i<size;i++)
{
 num=a-'0';
 sum=a*(size-i);
}
sum=fact-(sum%fact);
cout<<sum;

الكود بطريقة ديناميكية

char a[10];
cin>>a;
int fact=11;
int num[10];
int sum=0;
int size=strlen(a);
for(int i=0;i<size;i++)
{
 num=a-'0';
 sum=a*(size-i);
}
sum=fact-(sum%fact);
cout<<sum;

تم تعديل هذه المشاركة بواسطة aohammed في 6 أكتوبر 2010 في 18:36

#27

عم احاول انزل البرنامج عندى

3 نسخ مش قابلين التسطيب مش عارف فيه ايه :(

هاحاول اتصرف لك

انا عملته بالجافا واشتغل كويس جدا

وطلع الناتج المظبوط 112

ومعذره ع التاخير كنت تعبان ونمت شويه

هاحاول في تسطيب البرنامج تانى

Software Developer
Mahmoudkelany.com


 

#28

اخى احمد

لماذا انت تريد الضرب فى 7

مع ان الرقم الذى تريده مكون من 6 خانات فقط

الرقم هو 127945

انا عملت لك البرنامج يشتغل على انه يضرب فى 7

لكن المفروض انك تشتغل على العدد اللى المستخدم هيدخله ليك فالاول

يقولك والله انا الرقم بتاعى مكون من 6 خانات مثلا

فانت المفروض تضرب هكذا

1*6

2*5

7*4

9*3

4*2

5*1

الا ان كان هناك غرض من عدم ضرب الرقم الاخير فى 1

يعنى عاوز تبدا الضرب يكون من 2

اهم حاجه وضح السوال علشان نضع لك الكود النهائى

#include<iostream>
using namespace std;
void main(){
int i , result=0 , j ;
cout<<"Enter the number of digits ";
cin>>i;

int *inputs;
inputs = new int;

for(j=0 ; j<i;j++){
	cin>>inputs[j];
}

int counter = i ;
for(int k = 0 ; k<i ; k++){
	if(k!=i){
		result += inputs[k] *(counter--);
	}
}
cout<<"Result = "<<result<<endl;
}

هذا الكود انا جربته وشغال وهذا هو الـ output

post-217802-067688000 1286384993_thumb.p

انا جعلت كل حاجه دينمك

الـمصفوفه كمان

انت تبدا الضرب ف 7

يقبى هتخلى عدد الـ digits 7

وبعد كدا تدخل كل رقم

والرقم الاخير اللى مش عاوزه تدخل مكانه صفر

زى الصوره

لو فيه حاجه يا ريت تبلغنى

ربنا العالم علشان اعمل تجربه للكود دا عملت ايه :D

بالتوفيق :)

المرفقات
res.PNG

Software Developer
Mahmoudkelany.com


 

#29
اقتباس
aohammed التعليق: أخ محمود في لغة C++ هنالك ميزة لإدخال سلسلة محرفية بالكامل

cin>>inputs;

هل تقصد هكذا كما فى الصوره ؟؟؟

لو كان كذلك

فقد نتج خطأ عن هذا

post-217802-003056800 1286387561_thumb.p

قد يحدث ما تقوله فى حاجه ان حجم المصفوفه ثابت

اتمنى ان توضح تعليقك ان كنت اخطأت الفهم

المرفقات
160149328.png

Software Developer
Mahmoudkelany.com


 

#30

هكذا :

char *a;

cin>>a;

تعديل :

أعتذر جدا ً فكرت المصفوفة تبعت حضرتك char .. بس لما شفت الكود مرة ثانية انتبهت انها int

الطريقة تبعب char موجودة في المشاركة السابقة لي

أعتذر مرة أخرى فلم أنتبه أن مصفوفة الإدخال int

تم تعديل هذه المشاركة بواسطة aohammed في 6 أكتوبر 2010 في 21:39

#31

طيب ما هى الصوره بتوضح انى عملت كدا

عملت

int * inputs;
cin >> inputs;

وظهر لى خطأ اثناء التشغيل

اتمنى ان تفيدنا بكود كامل شغال بالطريقه بتاعتك

وشكرا

Software Developer
Mahmoudkelany.com


 

#32

اعتقدت ان السطر الذى جعل new للـ pointer

هو الذى يسبب المشكله

انما هى نفس الموضوع

هناك خطأ فى الـ run time

post-217802-036827900 1286390395_thumb.p

وعندما جعلت الكود هكذا

cin >> inputs;

بدلا من

cin >> inputs[j];

ظهر لى خطأ اثناء الcompile

منتظر مثال على كودك اخى الكريم

المرفقات
anothertest.PNG

تم تعديل هذه المشاركة بواسطة Mahmoud Kelany في 6 أكتوبر 2010 في 21:42

Software Developer
Mahmoudkelany.com


 

#33
اقتباس
ظهر لى خطأ اثناء الcompile

منتظر مثال على كودك اخى الكريم

أخي عدلت الرد

واضح أني أخطئت و ظننت المصفوفة int

أكرر الاعتذار الطريقة فقط للـchar " سلسلة محرفية "

و الكود الكامل موجود في ردي السابق اللي فيه إجابة للموضوع

/index.php?showtopic=229839&view=findpost&p=1141601

#34
aohammed كتب:

أخي عدلت الرد

واضح أني أخطئت و ظننت المصفوفة int

أكرر الاعتذار الطريقة فقط للـchar " سلسلة محرفية "

و الكود الكامل موجود في ردي السابق اللي فيه إجابة للموضوع

/index.php?showtopic=229839&view=findpost&p=1141601

اخى الكريم

لا عليك حصل خير

ولكن كان من الأفضل ان تضغ الكود بعد التعديل

كى يتعلم الجميع من اخطائنا جميعا

المهم

انا جربت الكود بتاعك اللى انت وضعت الرابط له

لكن النتيجه لم تكن صحيحه

post-217802-081217300 1286395705_thumb.p

وضعت

cout << sum ;

لمعرفه اخر شىء موجود بالمتغير المفروض حسب ادخال الرقم 127945 المفروض يكون الناتج 112

لكن الناتج ظهر 53

المرفقات
anotrtest.PNG

Software Developer
Mahmoudkelany.com


 

#35
char a[100];
cin>>a;
int fact=11;
int size=strlen(a);
int *num=new int[size+1];
int sum=0;
for(int i=0;i<size;i++)
{

 num=int(a-'0');
 sum+=num*(size-i+1);
}
sum=fact-(sum%fact);
cout<<sum;

أسف أخي معك حق لخبطت شوي بالكود و هذا هو التصحيح

تم تعديل هذه المشاركة بواسطة aohammed في 7 أكتوبر 2010 في 00:01

#36
aohammed كتب:

char a[100];
cin>>a;
int fact=11;
int size=strlen(a);
int *num=new int[size+1];
int sum=0;
for(int i=0;i<size;i++)
{

 num=int(a-'0');
 sum+=num*(size-i+1);
}
sum=fact-(sum%fact);
cout<<sum;

أسف أخي معك حق لخبطت شوي بالكود و هذا هو التصحيح

تمام فعلا الكود شغال على الحاله 127945

لكن هل جربته على حالات اخرى ؟؟؟

ننتظر اخى احمد لكى يعطينا test cases لتجربه الاكواد

هل تعمل بشكل جيد ام لا

وملحوظه اخرى انت تقوم بالعمل بشكل ثابت يعنى عندك حجم المصفوفه a = 100

هل لو ادخل اكثر من 100 ماذا سيفعل ؟

بالتوفيق

Software Developer
Mahmoudkelany.com


 

#37
اقتباس
وملحوظه اخرى انت تقوم بالعمل بشكل ثابت يعنى عندك حجم المصفوفه a = 100

هل لو

ادخل اكثر من 100 ماذا سيفعل

؟

بالتوفيق

كلامك صحيح أخي و هذا عيب في البرنامج, لهذا يفصل الـString لكنني لا أدري كيف يتم استعمالها في C++ ,

لكن على العموم لا أعتقد يوجد رقم خاناته أكثر من 100 خانة إلا و قد أصبح فوق مجال الـint و بهذه الحالة اذا افترضنا أن المستخدم يلزمه أعداد من المرتبة فوق 32 ألف , يلزم استعمال BigInt كما في جافا أو ما شابهها

#38

تمام

لكن المشكله ايضا دلوقتى

فى انى جربت رقم على برنامجى وبرنامجك

واختلفت النتيجه

اتمنى ان ترى هذا

وتشوف لان بصراحه كودك غير مفهوم بالنسبه للعمليه الحسابيه

اعتقد فيها خطأ

اتمنى ان الاخ احمد يعطينا قيم للاختبار ونشوف

او نشوف قيم نختبرها

Software Developer
Mahmoudkelany.com


 

#39
Mahmoud Kelany كتب:

اخى احمد

لماذا انت تريد الضرب فى 7

مع ان الرقم الذى تريده مكون من 6 خانات فقط

الرقم هو 127945

انا عملت لك البرنامج يشتغل على انه يضرب فى 7

لكن المفروض انك تشتغل على العدد اللى المستخدم هيدخله ليك فالاول

يقولك والله انا الرقم بتاعى مكون من 6 خانات مثلا

فانت المفروض تضرب هكذا

1*6

2*5

7*4

9*3

4*2

5*1

الا ان كان هناك غرض من عدم ضرب الرقم الاخير فى 1

يعنى عاوز تبدا الضرب يكون من 2

اهم حاجه وضح السوال علشان نضع لك الكود النهائى

#include<iostream>
using namespace std;
void main(){
int i , result=0 , j ;
cout<<"Enter the number of digits ";
cin>>i;

int *inputs;
inputs = new int;

for(j=0 ; j<i;j++){
	cin>>inputs[j];
}

int counter = i ;
for(int k = 0 ; k<i ; k++){
	if(k!=i){
		result += inputs[k] *(counter--);
	}
}
cout<<"Result = "<<result<<endl;
}

هذا الكود انا جربته وشغال وهذا هو الـ output

post-217802-067688000 1286384993_thumb.p

انا جعلت كل حاجه دينمك

الـمصفوفه كمان

انت تبدا الضرب ف 7

يقبى هتخلى عدد الـ digits 7

وبعد كدا تدخل كل رقم

والرقم الاخير اللى مش عاوزه تدخل مكانه صفر

زى الصوره

لو فيه حاجه يا ريت تبلغنى

ربنا العالم علشان اعمل تجربه للكود دا عملت ايه :D

بالتوفيق :)

______________________________________________________________________________________________________________

الف الف الف الف شكر من كل قلبي ..

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

#40
أحمد جادالله كتب:

______________________________________________________________________________________________________________

الف الف الف الف شكر من كل قلبي ..

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

العفو اخى الكريم

سأحاول جاهدا فى ذلك

لكنى الان سوف اذهب للنوم لدى كليه غدا

لكن طلبى ان تضع لنا ارقام انت جربتها زى الرقم 1279450 وطلع الناتج 112

لنتأكد من صحه الاكواد

وشكرا

Software Developer
Mahmoudkelany.com


 

#41
Mahmoud Kelany كتب:

العفو اخى الكريم

سأحاول جاهدا فى ذلك

لكنى الان سوف اذهب للنوم لدى كليه غدا

لكن طلبى ان تضع لنا ارقام انت جربتها زى الرقم 1279450 وطلع الناتج 112

لنتأكد من صحه الاكواد

وشكرا

تم التجربه بشكل سليم على نفس الارقام شكرا جزيلا

#42
اقتباس
فى انى جربت رقم على برنامجى وبرنامجك

واختلفت النتيجه

اتمنى ان ترى هذا

ممكن مثال على الرقم اللي بيصير اختلاق بين برنامجي و برنامجك

مع الشكر

#43
aohammed كتب:

ممكن مثال على الرقم اللي بيصير اختلاق بين برنامجي و برنامجك

مع الشكر

987654321

أحمد جادالله كتب:

تم التجربه بشكل سليم على نفس الارقام شكرا جزيلا

اخى احمد انا مش عاوزك تجرب على نفس الارقام

انا عاوزك تجرب على ارقام اخرى انت تكون حاسب ليها الحساب اليدوى على ايدك

وتعمل مقارنه بالبرنامج

بس خلى بالك ان البرنامج بيحسب على حسب عدد الارقام المدخله يعنى مثال زى كدا

8743

هيضرب

8 *4

7 *3

4*2

3*1

والناتج هو مجموعهم

اتمنى ان تفيدنا بالاجابه

وشكرا

Software Developer
Mahmoudkelany.com


 

#44
Mahmoud Kelany كتب:

987654321

اخى احمد انا مش عاوزك تجرب على نفس الارقام

انا عاوزك تجرب على ارقام اخرى انت تكون حاسب ليها الحساب اليدوى على ايدك

وتعمل مقارنه بالبرنامج

بس خلى بالك ان البرنامج بيحسب على حسب عدد الارقام المدخله يعنى مثال زى كدا

8743

هيضرب

8 *4

7 *3

4*2

3*1

والناتج هو مجموعهم

اتمنى ان تفيدنا بالاجابه

وشكرا

اخي العزيز على قلبي ولا اقول العزيز من باب المجامله الله شاهد على معزتي لك

دلوقتي البرنامج من شروطو انك تدخل اي رقم بس لازم يبقو 7 خانات بمعنى دخلت الرقم بتاعك 8743 زي كدا

8

7

4

3

0

0

0

ورقم الاختبار بالفعل 2 زي ماحسبتها بالطريقه اليدويه

ومش حغير ده الشرط لانو ياما في برامج كده ليها قيود

D:

ربنا يوفقك ياريس

بس منتظر انك تشرحلي ازاي الطريقه الدينماكيه اللي عملتها بالبرنامج

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

#include<iostream.h>
#include<conio.h>
void main(){
clrscr();
int i , result=0 , j ,m=11,hh,gg;
int mm=7,ss,ee;
cout<<"_______________________________________________________________"<<endl<<endl;
cout<<"- When you finish writing the number make other fields equal [0] and press [Enter] ..."<<endl<<endl;
 cout<<"_______________________________________________________________"<<endl<<endl;
cout<<"- ( Enter the number of digits must>=7 )-->";
 cin>>i;
cout<<"________________________________________________________________ "<<endl<<endl;
cout<<"Now enter your numbers [vertically]... "<<endl;

int *inputs;
inputs = new int;

for(j=0 ; j<i;j++){
	cin>>inputs[j];
}

int counter = mm ;
for(int k = 0 ; k<mm ; k++){
	if(k!=mm){
		result += inputs[k] *(counter--);
	}
}
ss=result;
hh=ss%m;
gg=11-hh;
cout<<"No.test : "<<" " <<gg;
getch();
}

تم تعديل هذه المشاركة بواسطة أحمد جادالله في 8 أكتوبر 2010 في 08:50

#45

تمام

لاحظت التعديل اللى كنت هاعمله ليك حسب ما انت عاوز

انا بحسب عاوز تعمله بشكل اتوماتك

لاى عدد من الارقام

المهم

ان الكود دلوقتى شغال وتمام

ازاى عملتها دينامك

انك هتعمل pointer لمتغير من نوع int

وتعمل new لهذا المتغير على انه بيشير الى مصفوفه فى الذاكره

وعدد عناصر المصفوفه انت اللى هتدخله اثناء التشغيل

يعنى من الشاشه السوده

لذلك هذه الطريقه تسمى بالدينامك

اى انك لم تحدد حجم الـ array الا اثناء عمليه التشغيل

تم تعديل هذه المشاركة بواسطة Mahmoud Kelany في 8 أكتوبر 2010 في 12:50

Software Developer
Mahmoudkelany.com


 

#46
Mahmoud Kelany كتب:

تمام

لاحظت التعديل اللى كنت هاعمله ليك حسب ما انت عاوز

انا بحسب عاوز تعمله بشكل اتوماتك

لاى عدد من الارقام

المهم

ان الكود دلوقتى شغال وتمام

ازاى عملتها دينامك

انك هتعمل pointer لمتغير من نوع int

وتعمل new لهذا المتغير على انه بيشير الى مصفوفه فى الذاكره

وعدد عناصر المصفوفه انت اللى هتدخله اثناء التشغيل

يعنى من الشاشه السوده

لذلك هذه الطريقه تسمى بالدينامك

اى انك لم تحدد حجم الـ array الا اثناء عمليه التشغيل

اسعد الله يومك

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

#47
اقتباس
ابحث عن دالة تقوم بفحص المدخلات والتاكد من انها ارقام فقط واذا ادخل المستخدم حرف لا يعمل البرنامج

لا تضع أكثر من سؤال في نفس الموضوع

راجع المواضيع القديمة وستجد من وضع نفس السؤال

ستجد واحد في المواضيع الأخيرة

#48
YaSeenTA كتب:

لا تضع أكثر من سؤال في نفس الموضوع

راجع المواضيع القديمة وستجد من وضع نفس السؤال

ستجد واحد في المواضيع الأخيرة

شكرا جزيلا على التوضيح

حسنا

يدي بزنارتك امديني بالرابط لكي اعرف اجابتي فانا ضيف جديد هنا

واكرام الضيف واجبو

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

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…