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

ارجو مساعدتي ببعض الاكواد

مغلق
بدأه Eng.C# في 14 مارس 2005 · 23 رد · 1,371 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

اخواني انا مبتدئ في لغى السي ++

ارجو مساعدتي في برنامج يحسب الايام

يعني لو اليوزر ادخل بالارقام الشهر واليوم فان

البرنامج يحسب عدد الايام من تاريخ 1\1 الى التاريخ المدخل

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

كيف بدي اخلي البرنامج يحسب الشهر 2 مثلا 28 يوم و 30 و 31

مثال بسيط لعمل البرنامج :

اليوزر ادخل 3\2

عدد الايام المنقضسة من بدايه السنة هيي = ؟؟؟

وطلب بسيط كيف يمكنني ان اجعل الناتج باللون الاحمر

واسف على الاطاله

52gv0m.gif
#3

لا اخوي لا يوجد سنة محددة

يعني فقط يحسب الايام من 1\1 الي التاريخ الذي يدخله اليوزر

52gv0m.gif
#4

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

#5

لا مو كبيسة بسيطة

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

52gv0m.gif
#6

النك اللي حطيته فوق فيه واحد سائل نفس السؤال و انا رديت عليه, اقرا ردي و اذا ما فهمت قلي شنو اللي ما فهمته و ان شاء الله احاول اساعدك.

طبعا ان لن اقوم بكتابة الواجب لك, لازم عالأقل تحاول بنفسك.

#7

والله يا اخي ردك مو مفهوم اعزرني

بس النقطة انا اللي حابب استوضح فيها

انه كيف بدي اخلي البرنامج يحسب الشهر الفولاني 30 وهادا 31 ويجمعهم

ما بدي تحليلي الوظيفة

انا لما احلها بنفسي بفهم اكتر

لكن تسهيل الفكره عليي مو اكثر

وجزاك الله كل خير على تواصلك معي

52gv0m.gif
#8

I'm at the universtiy right now so I can't type arabic, but you can try something like this:

create an aray that holds the days of each month

int days[] = { 0, 31, 29, 31, 30, 31 };

so that days is the number of days in the month number (i), now there is one problem, what about when i is zero? you can either make it some invalid value, or you can set up the array so that days[i-1] is the number of days

for example, here's how you'd retrive the number of days in a specific month:

int GetDaysIn( int month )
{
if (month <= 0 || month >= 13 )
{
return -1; //some invalid value
}
else
{
return days;
}
}

so you store the numbers in an array, and when you want to get the number of days ina specific month, you first check to make sure the month is valid (between 1 and 12) then return value from the arrays at the month index

#9

السلام عليكم

اخي الغالي

والله خايف تصير عندي عقدة من الاراي

حاولت كثير لكن دون جدوى

هذا ما توصلت اليه اليوم

#include <iostream.h >

int main ()

{

int day,month,j,dd,mm, x;

cout << " Enter the number of the day and the month :"<< endl ;

cout << " day=" ;

cin>>dd ;

cout << "month=" ;

cin>> mm ;

j=dd-1;

for (month=0;month<13;month++)

{

if ( month==1||month==3||month==7||month==8||month==10||month==12 )

day=31;

else

if(month==4||month==6||month==9||month==11)

day=30 ;

else

if( month==2)

day=28 ;

}

x=(mm-1)*day ;

cout << x+j ;

}

[code]

هنااك الان مشكلة الي هيي تشرحلي الاراي

والبرنامج هذا مو دقيق بالايام لكن المشكلة انه لازم بالاراي

ومشكور على مساعدتك لي

تم تعديل هذه المشاركة بواسطة نوري_86 في 18 مارس 2005 في 05:18

52gv0m.gif
#10

اعتقد والله اعلم ان هده خطأ

for(month =0; month < 13; month ++)

بحيث ان الشهر مستحيل أن يكون 0

وايضا مستحيل حساب 13 شهر,

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

for(int month = 1;month < 13; month++)

واذا كنت تريد استخدام array

for (int month =0; month <12; month++)
{ 
if (month++==1 || month+==3 || month++==7 || month++==8||month++==10||month++==12)
day =31;
...etc
}

والله اعلم

#11

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

يعني هنا في حالة الأشهر, لو نريد نحجز 12 متغير ممكن نعمل:

int month1;
int month2;
int month3;
.
.
.

الخ, لكن بواسطة الأرري ممكن نحجز 12 متغير تحت اسم واحد:

int month[12];

فهذين القوسين [ ] هما الطريقة اللتي نصل عن طريقها إلى اي عنصر من عناصر الأرري, عن طريق كتابة رقم العنصر:

month[3] = 10;

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

و لكن هنا ملاحظة ضغيرة: العنصر الأول رقمه في السلسلة 0 و العنصر الثاني رقمه 1 .. و هكذا, و العنصر الثاني عشر رقمه 11

اما لو حاولت استخدام 12 فهذا ليس عنصرا في السلسلة!!

نستطيع أيضا الوصول الى العناصر عن طريق متغيرات:

int month[12];
int i = 5;
month = 7;

فتستطيع ملأ الأرري بأرقام معينة (مثلا تملأه بأصفار, او اي شي تريد)

for (int i = 0; i < 12; i++)
month = i + 3;

و تستطيع إنشاء أري من عناصر معروفة مسبقا عن طريق وضع العناصر بين قوسين { } ووضع فاصلة بين كل عنصر:

int some_array[4] = { 1, 2, 3, 4 };

و لكن هذين القوسين { } لا تستطيع استخدامهما إلا وقت إنشاء الأرري, اما ما عدا ذلك فلا تستطيع.

و الحقيقة واضح ان العناصر في المجموعة { 1, 2, 3, 4 } هي أربعة عناصر, لذلك لا تحتاج لتحديد ذلك بين القوسين المربعين [ ]

فيكفي هكذا:

int some_array[] = { 1, 2, 3, 4 };

و تستطيع أخذ رقم من المستخدم و اظهار العنصر صاحب الرقم:

int x;
cin >> x;
cout << month[x] << endl;

فتستطيع استخدام الأرري مثل جدول بسيط!

فهنا ساستخدم جدولا لعدد الأيام في كل شهر:

int days[] = { 0, 31, 29, 31, 30, 31 };

طبعا هنا لم أستخدم كل الأشهر, فقط بعضا منها

ولاحظ ان العنصر الأول قيمته 0, و هذا لأن رقم هذا العنصر هو 0, و لا يوجد شهر 0 !!

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

#12

للاسف اعطيني برنامج صغير لكي افهم اكثر الاراي

لاني حاولت لكن دون جدوى

52gv0m.gif
#13

طيب, هذا مثال يوضح وضع مجموعة أرقام في أرراي و استخدامه كجدول بسيط بحيث تستطيع معرفة قيمة أي عنصر في الجدول (او القائمة):

#include <iostream>
using namespace std;

int table[] = { 0, 3, 5, 7, 3, 9, 12, 65, 27 };

int GetElement(int i)
{
	if( i < 0 || i > 9 )
	{
  return -1; //invalid index
	}
	else
	{
  return table;
	}
}

int main()
{
	int input = 0;
	while( input != -1 )
	{
  cout << "Enter the element number, or -1 to exit \n";
  cin >> input;
  cout << GetElement(input) << endl;
	}

	return 0;
}

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

#14
#include<iostream.h>
int main()
{
int day;
int month;
int sum=0;
int y[12]={31,28,31,30,30,30,31,31,30,31,30,30};
cout<<"Enter day: ";
cin>>day;
cout<<endl;
cout<<"Enter month: ";
cin>>month;
cout<<endl;
for(int j=0;j<month-1;j++)
sum+=y[j];
sum+=day;
cout<<" sum of days = "<<sum<<endl;
return 0;
}

اخي ما رايك ببرنامجي 000

وهل استطيع ان اجعله اقوى من ما هو عليه ؟؟؟؟

وسؤال كيف بدي اطلع اoutput باللون الاحمر ؟؟؟

ومشكور حبيبي حسان :D :D :D

ما كون غلبتك معي وبسؤلاتي :( :(

52gv0m.gif
#15

السلام عليكم

حقيقة فكرة البرنامج لسا مادخلت راسي.

لكن لي ملاحظة وسؤال :

لماذا كتبت هذا السطر

int y[12]={31,28,31,30,30,30,31,31,30,31,30,30};

أي لماذ كررت عناصر داخل المصفوفة فمثلا الرقم 30 تكرر خمسة مرات لماذا ( لاتعليق ).

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

اللهم علمنا ما ينفعنا وأنفعنا بما علمتنا أنك أنت العليم الحكيم

سبحان الله وبحمده سبحان الله العظيم

لاحول ولاقوة الا بالله( كنز من كنوز الجنة ).

#16
نوري_86 كتب:
اخي ما رايك ببرنامجي 000

وهل استطيع ان اجعله اقوى من ما هو عليه ؟؟؟؟

وسؤال كيف بدي اطلع اoutput  باللون الاحمر ؟؟؟

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

هناك فقط مشكلة بسيطة و هي اظن ان ايام الأشهر ليست هكذا

31,28,31,30,30,30,31,31,30,31,30,30

(وضعت خطا تحت الأيام اللتي تحتاج تصحيح)

.. بل هكذا:

31

28

31

30

31

30

31

31

30

31

30

31

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

#17

السهم الناري

لما افهم اخي ما تقصد ؟؟ :blink:

اخي حسان مشكور لكن ما هي الدالة اللي بيطلعلي الاوت بوت باللون الاحمر؟؟؟ :lol: :lol:

52gv0m.gif
#18

لسلام عليكم

قرأت الكود فهمت لماذ تكرر العناصر داخل المصفوفة - وهي عدد الايام في كل شهر

انظر هذا البريمج هل يفي بالغرض واذا كان نعم فقارنه ببرنامجك وانظر الفرق.

الكود هو

#include<iostream.h>

int main()
{
	int day;
	int month;
	int sum=0;
	int y[] = {31,28,30};

	cout<<"Enter day: ";
	cin>>day;
	cout<<endl;

	cout<<"Enter month: ";
	cin>>month;
	cout<<endl;

	for(int j=0; j<month-1; j++)
	{
  if( month == 2 )
 	 sum += y[1];
  else if( month == 1 || month == 3 || month == 7 || month == 8 || month == 10 )
 	 sum += y[0];
  else
 	 sum += y[2];
	}

	sum += day;	
	cout<<" sum of days = "<<sum<<endl;
	return 0;
}

فقط عدل في مصفوفة y اذا كان هنالكخطأ في عدد الايام

الدالة التي تلون بالاحمر اضنها textcolor لكن تعمل على borland مادري اذا تعمل على فجوال استديوا حقيقة لا اضن.

فقط جرب ذلك.

والسلام عليكم.

اللهم علمنا ما ينفعنا وأنفعنا بما علمتنا أنك أنت العليم الحكيم

سبحان الله وبحمده سبحان الله العظيم

لاحول ولاقوة الا بالله( كنز من كنوز الجنة ).

#19

أعتقد ان تكرار العناصر في الـ array أفضل من

else if( month == 1 || month == 3 || month == 7 || month == 8 || month == 10 )

في الحقيقة لا يوجد أي مانع من تكرار العناصر في array او حتى linked list أو أي شي آخر.

بالنسبة للألوان, شغلة يمكن معقدة شوية, جرب هذا copy paste:

   HANDLE OutputH;                               
   COORD position = {Xposition, Yposition};                      

   OutputH = GetStdHandle(STD_OUTPUT_HANDLE);    
   SetConsoleTextAttribute(OutputH, FOREGROUND_RED|FOREGROUND_INTENSITY);
#20

اخوي هذا البرنامج اللي توصلت اليه

#include <iostream.h>
int Calender (int,int);
void welcome (void);
void bye (void);
void main ()
{
	welcome();
	cout << endl<< endl;
int month , day;
cout << " Day=";
cin>> day;
cout << " Month=";
cin>> month;
cout << endl;
cout << " The Day is :" <<    Calender(month,day)  << endl;
cout << endl<<endl;
bye ();
cout << endl<<endl;
cout << "                           ******************************  " << endl<< endl;
}
int Calender ( int month,int day )
{
int x[] = {31 ,28 ,31 ,30 ,31 ,30 ,31 ,31 ,30 , 31 ,30 ,31};
int temp = 0;
for(int i =0; i<month-1; i++)
temp += x;
return  temp + day;
}
void welcome (void)
{
	cout << "                           Welcome To My PrOgRaM : " << endl;
}
void bye(void)
{
	cout << "                           Thank You SIR For USING My PrOgRaM " << endl;
}

لكن الالوان لم تزبط معي :( :( :(

ياريت توضحلي اكثر

52gv0m.gif
#21

اخي السهم بالنسبة للبرنامج اللي انتا حاطه راائع

وفكره جديده اتعملتها منك

مشكوووور اخوي

52gv0m.gif
#22

بالنسبة للون, آسف كان هناك خربطة شوية.

اول شي تحتاج

#include <windows.h>

الان ضع هذا السطر:

 SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_RED|FOREGROUND_INTENSITY);

و أي شي تكتبه بعدها سيظهر بالأحمر, طبعا هذه الطريقة تعمل فقط على الوندوز, و أظن انك ستحتاج visual C++ لكني لست متأكدا من ذلك.

#23

مشكووووووووووووووووور حبيبي حسااان

زبطن معي 000 فعلا انا بستخدم فيجوال سي ++

وزبطت معي الله لا يحرمنا منك :D :D :D

ويعطيك الف عااافية ;) ;) ;)

52gv0m.gif

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

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

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

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

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

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