PDA

نسخه کامل مشاهده نسخه کامل : اشکال خروجی این برنامه رو برام رفع کنید خواهشا !!



robert
03-05-2008, 18:54
سلام به همه دوستان برنامه نویس !!
آقا در راستای ادامه برنامه نویسی بنده:31: و کار روی مسئله تحلیل مسابقات فوتبال به اونجا رسیدیم که 5 تا تیم از ورودی گرفته میشه و جدول دیدار های بین تیمها چاپ میشه و سپس از کاربر درخواست میشه که تعداد گلی که هر تیم به تیم دیگه میزنه رو حساب کنه و سپس جدول پایان دیدار ها رو به همراه نتایج اون تو خروجی چاپ کنه :
کدی که نوشتم اینه :

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

با وارد کردن 5 تا اسم (( مثلا اسم هر تیم دلخواه شما !!)) بلافاصله جدول دیدار های بین تیمها چاپ میشه و از کاربر خواسته میشه که تعداد گلهایی که هر تیم به تیم دیگه زده رو وارد کنه !!!
حالا مشکل من اینجاست که :
اولا هرکاری میکنم نمیتونم با استفاده از دستور شرطی if - else کاری کنم که به محض وارد کردن عدد منفی به عنوان تعداد گلها پیغام خطا ظاهر بشه و از برنامه بیاد بیرون
ثانیا من میخوام که جدول دومی که بعد از وارد کردن تعداد گلها قراره ظاهر بشه به شکل زیر چاپ بشه (( مثلا برای سه تیم !! البته در خود برنامه 5 تا تیم وجود داره ))

a1---b2
a2---c3
b3----c0

که مثلا در خط اول عدد یک کنار a معرف تعداد گلهای زده به تیم b است و عدد 2 کنار b نیز تعداد گلهای زده به تیم a

برنامه بدون هیچ مشکلی کامپایل و اجرا میشه و ارور هم نمیده و جدول دیدار ها رو هم بدرستی چاپ میکنه !! لیکن تو چاپ جدول دوم چرت و پرت تحویل آدم میده و اعصاب منو خورد کرده !!!:41:

نمیدونم چکارش کنم !! فقط انتظار کمک از شما رو دارم !!!
ممنون میشم اگه مارو یه راهنمایی بکنید !!:11:
مرC

sherlockholmz
04-05-2008, 10:28
با سلام،
برنامه ات را اجرا كردم.
اولين اشكالي كه ديده شد تك جهته بودن برنامه ات است.يعني شما اولويت ترتيب پر كردن آرايه داري.به عبارت ساده تر مثلا" تعداد گلهاي a در برابر b,c,d و e را مي گيري اما تعداد گلهاي آنها را در برابر a نه!بهمين ترتيب براي b,cو d
به همين علت است كه جدول آخر اجق وجق است.
اين تا اينجا
تابعد
موفق باشي

robert
04-05-2008, 11:17
با سلام،
برنامه ات را اجرا كردم.
اولين اشكالي كه ديده شد تك جهته بودن برنامه ات است.يعني شما اولويت ترتيب پر كردن آرايه داري.به عبارت ساده تر مثلا" تعداد گلهاي a در برابر b,c,d و e را مي گيري اما تعداد گلهاي آنها را در برابر a نه!بهمين ترتيب براي b,cو d
به همين علت است كه جدول آخر اجق وجق است.
اين تا اينجا
تابعد
موفق باشي

ممنونم شرلوک هلمز عزیز !!:11::11:
اون اشکالی رو که فرمودید رو رفع کردم و برنامه رو به این صورت درآوردم که براحتی کامپایل و اجرا میشه و چرت و پرت هم چاپ نمیکنه !!

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

حالا موندم چجوری به ازای تعداد گلهای زده شده یک تیم به تیم دیگه اسم گلزنها رو وارد کنم !!:41:

sherlockholmz
05-05-2008, 11:02
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید


خوبه با اين برنامه، امتياز همه تيمها مساوي مي شودو ديگر نه دعوايي مي شود ،نه تيمي سرور تيم ديگر است.فردوسي پور هم بيكار مي شود.:31:

آخه عزيزم شما وقتي تعدادگل را در آرايه resultذخيره مي كني انديس آن كي تغيير مي كند؟
در حلقه ائي كه به رنگ قرمز نشان داده شده است،حالت اول i=0 مي شود.j از 0 تا 5 تغيير مي كندو تعداد گلهايي راكه تيم اول به چهار تيم ديگر زده است مي پرسدولي چون در اين مدت i ثابت است، اعداد گرفته شده در يكجا ذخيره مي شوندودر نتيجه عدد قبلي از بين ميرود.اين عمل بازاي هر تغيير i صورت مي پذيرد.
پس نمي تواني گلها را به اين صورت ذخيره كني ويا حداقل انديس را بايد تغيير بدهي
باقي بقايتان:46:

robert
05-05-2008, 16:52
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید


خوبه با اين برنامه، امتياز همه تيمها مساوي مي شودو ديگر نه دعوايي مي شود ،نه تيمي سرور تيم ديگر است.فردوسي پور هم بيكار مي شود.:31:

آخه عزيزم شما وقتي تعدادگل را در آرايه resultذخيره مي كني انديس آن كي تغيير مي كند؟
در حلقه ائي كه به رنگ قرمز نشان داده شده است،حالت اول i=0 مي شود.j از 0 تا 5 تغيير مي كندو تعداد گلهايي راكه تيم اول به چهار تيم ديگر زده است مي پرسدولي چون در اين مدت i ثابت است، اعداد گرفته شده در يكجا ذخيره مي شوندودر نتيجه عدد قبلي از بين ميرود.اين عمل بازاي هر تغيير i صورت مي پذيرد.
پس نمي تواني گلها را به اين صورت ذخيره كني ويا حداقل انديس را بايد تغيير بدهي
باقي بقايتان:46:

حق با شماست !!
هر چی بدبختی هست سر همین حلقه های for تو در تو هست !!!:31:
خوب حالا باید چیکار کرد ؟؟ آرایه دوبعدی استفاده کنم یا اینکه پارامتر های داخل حلقه for رو دستکاری بکنم ؟؟:41:

robert
05-05-2008, 18:17
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید


خوبه با اين برنامه، امتياز همه تيمها مساوي مي شودو ديگر نه دعوايي مي شود ،نه تيمي سرور تيم ديگر است.فردوسي پور هم بيكار مي شود.:31:

آخه عزيزم شما وقتي تعدادگل را در آرايه resultذخيره مي كني انديس آن كي تغيير مي كند؟
در حلقه ائي كه به رنگ قرمز نشان داده شده است،حالت اول i=0 مي شود.j از 0 تا 5 تغيير مي كندو تعداد گلهايي راكه تيم اول به چهار تيم ديگر زده است مي پرسدولي چون در اين مدت i ثابت است، اعداد گرفته شده در يكجا ذخيره مي شوندودر نتيجه عدد قبلي از بين ميرود.اين عمل بازاي هر تغيير i صورت مي پذيرد.
پس نمي تواني گلها را به اين صورت ذخيره كني ويا حداقل انديس را بايد تغيير بدهي
باقي بقايتان:46:

ای داد بیداد !!!!:19::41::19::41:
حق با شماست !!
من اصلا نشستم یه بار چک بکنم ببینم همون عددی که به برنامه میدم تو خروجی ظاهر میشه یا نه !!
اومدم برنامه رو برای گرفتن نام گلزن ها ساده تر بکنم که اینجوری داغونش کردم !!
خوب شرلوک عزیز
حالا چیکار کنم ؟؟:41:

sherlockholmz
06-05-2008, 08:38
سلام،
"خوب حالا چيكار كنيم؟"
سوال خوبي است.
هيچي اينكار مي كنيم:يك آرايه دو بعدي(يا همون ماتريس) تعريف مي كنيم كه متغيرهايش همان i و j خودمان باشدو خانه [i][j] آن،تعداد گل تيمi به تيم j باشد.بهمين راحتي،بهمين خوشمزگي





برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید



خطوط قرمز را من اضاف كردم(به سبك غلام پيرواني) و بديهي است كه خطوط مشابه با // حذف شده است.
يه بررسي بزن تابعد

robert
06-05-2008, 10:51
سلام،
"خوب حالا چيكار كنيم؟"
سوال خوبي است.
هيچي اينكار مي كنيم:يك آرايه دو بعدي(يا همون ماتريس) تعريف مي كنيم كه متغيرهايش همان i و j خودمان باشدو خانه [i][j] آن،تعداد گل تيمi به تيم j باشد.بهمين راحتي،بهمين خوشمزگي





برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید



خطوط قرمز را من اضاف كردم(به سبك غلام پيرواني) و بديهي است كه خطوط مشابه با // حذف شده است.
يه بررسي بزن تابعد

دستت درست شرلوک عزیز !!:11:
پس مشکل اصلی برنامه همون آرایه تک بعدی بود که با اضاف کردن :31::31: یک آرایه دوبعدی برای گرفتن نتایج بازی ها همه چیز حل شد !!

ممنونم که برای من وقت گذاشتی و برنامه رو درست کردی :40:!! کارت درسته دیگه !!
ایشاالله بتونم جبران کنم !!:11:

robert
07-05-2008, 10:27
آقا یه سوال !!:20:
ترتیب پر شدن آرایه goal [5][5 به این صورت هست ؟؟ به فرض اینکه اعداد حروف و اعداد قرمز همون اسم تیمها و تعداد گلها و بقیه همون آرایه ها باشند :46:


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

آخه برای پیدا کردن تعداد برد ها و باخت ها و تساوی ها به این اندیس آرایه ها و شماره اونها احتیاج دارم !! برای همین گفتم قبلش یه اطمینانی حاصل کنیم و بعد برنامه رو ادامه بدیم !!:31:
ممنون میشم اگه یه توضیحی لطف کنید !!:40:

sherlockholmz
10-05-2008, 10:36
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
همانطور كه مي بيني خانه آرايه هنگامي پر مي شود كه i!=j ، يعني مثلا" [0][0] پر نمي شود.
پس بصورت زير است:



برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
اين يعني تيم اول (مثلا"A ) دو تا به تيم دوم (مثلا"B ) زده و تيم دوم (B ) سه تا به تيم اول (B) زده است والي آخر...
حال مثلا" اگر بخواهيم تعداد گل زده تيم A را محاسبه كنيم، كافيست با ثابت نگه داشتن انديس اول روي صفر، انديس دوم را از 0 تا 4 تغيير دهيم:

sherlockholmz
10-05-2008, 10:45
مي بخشي آخر جواب چاپ نشده بود:


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

robert
10-05-2008, 11:01
:11:ممنون شرلوک عزیز !!
من کد برنامه رو بازهم ادامه دادم و به جایی رسیدم که مربوط به تحلیل بازیهای هرتیم هست !!
البته برای دوتا تیم A و تیم B فعلا !!:31:

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

حالا یه زحمتی که برای شما دارم اینه که :
اولا این برنامه براحتی کامپایل و اجرا میشه !! از شما تمنا دارم یه بار هم شما این برنامه رو کامپایل و اجرا کنید و ببینید چجوریه !!
دوم اینکه دیشب متوجه شدم این برنامه تو قسمت آخری که مربوط به تحلیل نتایج هر تیم هست یه مشکلی داره و اون اینه که اسم تیم حتما باید تک حرفی (( فقط یک حرف مثل A )) باشه و مثلا اگه اسم تیم رو pirozi وارد کنم فقط کلمه p اون وارد میشه !!
چند بار خواستم تو بالای برنامه هدر فایل srting.h رو اضافه کنم و اط دستور strcat آرایه های سطر اول آرایه دوبعدی
char team[5][15] رو با هم بگیرم تا هم بتونم اسم تک حرفی رو بدرستی چاپ کنم و هم اسم تیم چند حرفی رو !! ولی گفتم با شما هم یه مشورتی بکنم بد نیست !!:31:
برای اینکه بیشتر متوجه منظورم بشوید برنامه رو اجرا کنید و اینبار بجای اسم تیم اسمهای فینگیلیسی پرسپولیس و استقلال و پاس و ساپیا و سپاهان رو وارد کنید و به خطوط آخر خروجی برنامه که اسم تیم دراونجا ظاهر میشه توجه کنید !! میبینید که مثلا برای تیم pass فقط کلمه p چاپ میشه !!


تا همین الان هم کلی بمن کمک کردیدو منو شرمنده محبتتون کردید !!:11: :40:
واقعا نسبت به بنده لطف دارید:10:

sherlockholmz
10-05-2008, 12:07
با سلام مجددو عرض خسته نباشي،
نه! لازم نيست اين همه زحمت بكشي .خود‍‍ C اين زحمت را برايت مي كشد.حالا چه جوري؟
همانطور كه مي بينيم نام تيمها در يك ماتريس 15*5 به نام team ذخيره مي شود.خوب در هر حانه اين ماتريس تنها يك حرف قرارداده مي شود. پس وقتي شما مثلا" مي نويسي
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید برنامه ناچار است يك حرف را چاپ كند.اين تا اينجا خوب راه حل؟
هيچي از برنامه بخواه كه سطر اول ماتريس هرچه بود چاپ كندچه جوري؟با استفاده ار تنها انديس اول ماتريس:20:



برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید



بهمين سادگي
در ضمن شمالطف داري ولي خواهشمندم اين همه شرمنده نكن.اين كمك دو طرفه است.پس ممنون مي شوم اگر ...
با تشكر

neda.shoay
12-05-2008, 21:03
#include <iostream.h>
#include<conio.h>
#include<stdio.h>
void main()
{
char team[5] [15]; :18:
int result[5][5];
int i=0,j=0;
cout<<"enter five teams"<<"\n";
for(i=0;i<5;i++)
cin>>team[i];
cout<<endl;
i=0,j=0;
for(i=0;i<5;i++)
for(j=i;j<5;j++) {
if (i!=j) {
cout<<team[i]<<" "<<team[j]<<endl;} }
i=0,j=0;
for(i=0;i<5;i++)
for(j=0;j<5;j++){
if(i!=j) {
cout<<"how many goals has "<<team[i]<<" team scored to "<<team[j]<<" team ?";
cin>>result[i][j-1];
if (result[i][j-1]<0){
result[i][j-1]=0 ;
printf("please enter correct score");
j--;
} } }
i=0,j=0;
cout<<"the chart of results is\n";
for(i=0;i<5;i++)
for(j=i;j<5;j++)
{
if(i!=j)
cout<<team[i]<<":"<<result[j][i-1]<<" "<<team[j]<<":"<<result[i][j-1]<<endl;
}
}

in ham code ha neda.shoay

robert
14-05-2008, 11:44
#include <iostream.h>
#include<conio.h>
#include<stdio.h>
void main()
{
char team[5] [15]; :18:
int result[5][5];
int i=0,j=0;
cout<<"enter five teams"<<"\n";
for(i=0;i<5;i++)
cin>>team[i];
cout<<endl;
i=0,j=0;
for(i=0;i<5;i++)
for(j=i;j<5;j++) {
if (i!=j) {
cout<<team[i]<<" "<<team[j]<<endl;} }
i=0,j=0;
for(i=0;i<5;i++)
for(j=0;j<5;j++){
if(i!=j) {
cout<<"how many goals has "<<team[i]<<" team scored to "<<team[j]<<" team ?";
cin>>result[i][j-1];
if (result[i][j-1]<0){
result[i][j-1]=0 ;
printf("please enter correct score");
j--;
} } }
i=0,j=0;
cout<<"the chart of results is\n";
for(i=0;i<5;i++)
for(j=i;j<5;j++)
{
if(i!=j)
cout<<team[i]<<":"<<result[j][i-1]<<" "<<team[j]<<":"<<result[i][j-1]<<endl;
}
}

in ham code ha neda.shoay


ممنون !!:11:
ولی خیلی وقته که این تیکه از برنامه رو درست کردم و به مراحل بعدی برنامه رسیدیم !! تو پست بعدی میتونید ملاحظه بفرمایید !!

robert
14-05-2008, 12:13
جسارتا برنامه رو بازهم ادامه دادم :31:و بعد از گرفتن اسم تیمها و چاپ جدول مسابقات و گرفتن نتایج تیمها و چاپ جدول نتایج مسابقات و چاپ جدول امتیازات و تعداد گل زده و خورده و تساوی تیمها و امتیاز تیمها (( برد 3 امتیاز و تساوی 1 امتیاز و باخت 1- امتیاز )) برنامه رو با اینجا رسوندم که حدود 180 خط کد نویسی هست !!:18:


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
حالا میخوام دوتا کار انجام بدم !!
اولا تو خطوط اولیه که اون cin رو قرمز کردم و برنامه در اونجا اسم تیمها رو میگیره میخواهم کاری کنم که برنامه بمحض دریافت هرچیزی بجز کاراکتر error بده و برنامه تموم بشه و پیغام بده که باید حتما از حروف استفاده کنید !!
خودم فکر کردم که بیام و یه دستور شرطی if/else بنویسم و در اون لحاظ بکنم که تک تک کاراکتر های ورودی رو از 'a' تا 'z' چک بکنه و هرجا چیز دیگری وارد بشه error بده !! اما راستش دقیق نمیدونم این دستور رو کجا و بین کدوم حلقه ها و دستور های خروجی cout قرار بدم !! این بود که گفتم با شما هم مشورت بکنم !!

دوم اینکه تو انتهای برنامه و اون تیکه ای که قرمز شده و مربوط به دستور cout<<"enter times of scoring the goals of team "<<team[0]; هست قصد دارم به ازای تعداد گل زده شده که قبلا تو برنامه بدست اومده و به تعداد گلها اعدای از صفر تا نود رو بگیرم که معرف دقایق به ثمر رسیدن گلها هست و سپس با استفاده از حلقه for و تقسیم بندی زمان از صفر تا نود به بازه های 15 دقیقه ای تحلیل بکنم که چند درصد گلها در یک ربع اول بازی و چند درصد در یک ربع دوم و چند در صد در یک ربع سوم و به همین ترتیب چند درصد هم در پانزده دقیقه ششم بازی به ثمر رسیدند !! البته آرایه cntphnd که از جنس float هست و نام آن مخفف counter per hundred هست رو برای همین کار ایجاد کردم که تعداد گلهایی رو که مثلا در پانزده دقیقه اول به ثمر رسیده اند رو در صد ضرب بکنه و تقسیم بر تعداد کل گلهای آن تیم که در نود دقیقه بازی به ثمر رسیده اند بکنه و درصد گلهایی که تو پانزده دقیقه اول زده شده اند رو حساب بکنه که البته تو این بخش هم با مشکل مواجه شدم !! چون برنامه براحتی کامپایل و اجرا میشه ولی تو قسمت درصد گلها تو پانزده دقیقه ها فقط عدد صفر رو چاپ میکنه !!!:41: و این منو آزار میده !!:31:
لازم به ذکر هست که آرایه cntphnd رو برای این 200 تایی انتخاب کردم که مثلا اعضای 0 و 1 و 2 و 3 و 4 و 5 این ارایه برای درصد گلهای تیم A در کل بازیها با تیمهای دیگه و اعضای 6 و 7 و8 و9و 10 و11 برای درصد گلهای تیم B در آن شش تا پانزده دقیقه هست و الی آخر !!


خودم خوب میدونم که ظاهر این برنامه به نظر وحشتناک میاد و کمتر کسی رغبت میکنه به طرفش بره !! ولی واقعیت اینه که چیز زیاد سختی نیست و فقط چند تا قلق داره که من بلد نیستم و بخاطر همین هم در دو مورد گفته شده برای وارد کردن اسم تیمها و درصد گلهای تیمها در 6 تا پانزده دقیقه نیاز به کمک شما دارم !!
ممنون میشم اگه یه کمکی هم به من آماتور بکنید !!:11::11::11:
مرC

sherlockholmz
17-05-2008, 11:27
باسلام،
شماگفتي:


"جسارتا برنامه رو بازهم ادامه دادم [ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]و بعد از گرفتن اسم تیمها و چاپ جدول مسابقات و گرفتن نتایج تیمها و چاپ جدول نتایج مسابقات و چاپ جدول امتیازات و تعداد گل زده و خورده و تساوی تیمها و امتیاز تیمها (( برد 3 امتیاز و تساوی 1 امتیاز و باخت 1- امتیاز )) برنامه رو با اینجا رسوندم که حدود 180 خط کد نویسی هست !![ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]


حالا میخوام دوتا کار انجام بدم !!
اولا تو خطوط اولیه که اون cin رو قرمز کردم و برنامه در اونجا اسم تیمها رو میگیره میخواهم کاری کنم که برنامه بمحض دریافت هرچیزی بجز کاراکتر error بده و برنامه تموم بشه و پیغام بده که باید حتما از حروف استفاده کنید !!
خودم فکر کردم که بیام و یه دستور شرطی if/else بنویسم و در اون لحاظ بکنم که تک تک کاراکتر های ورودی رو از 'a' تا 'z' چک بکنه و هرجا چیز دیگری وارد بشه error بده !! اما راستش دقیق نمیدونم این دستور رو کجا و بین کدوم حلقه ها و دستور های خروجی cout قرار بدم !! این بود که گفتم با شما هم مشورت بکنم !!

دوم اینکه تو انتهای برنامه و اون تیکه ای که قرمز شده و مربوط به دستور cout<<"enter times of scoring the goals of team "<<team[0]; هست قصد دارم به ازای تعداد گل زده شده که قبلا تو برنامه بدست اومده و به تعداد گلها اعدای از صفر تا نود رو بگیرم که معرف دقایق به ثمر رسیدن گلها هست و سپس با استفاده از حلقه for و تقسیم بندی زمان از صفر تا نود به بازه های 15 دقیقه ای تحلیل بکنم که چند درصد گلها در یک ربع اول بازی و چند درصد در یک ربع دوم و چند در صد در یک ربع سوم و به همین ترتیب چند درصد هم در پانزده دقیقه ششم بازی به ثمر رسیدند !! البته آرایه cntphnd که از جنس float هست و نام آن مخفف counter per hundred هست رو برای همین کار ایجاد کردم که تعداد گلهایی رو که مثلا در پانزده دقیقه اول به ثمر رسیده اند رو در صد ضرب بکنه و تقسیم بر تعداد کل گلهای آن تیم که در نود دقیقه بازی به ثمر رسیده اند بکنه و درصد گلهایی که تو پانزده دقیقه اول زده شده اند رو حساب بکنه که البته تو این بخش هم با مشکل مواجه شدم !! چون برنامه براحتی کامپایل و اجرا میشه ولی تو قسمت درصد گلها تو پانزده دقیقه ها فقط عدد صفر رو چاپ میکنه !!![ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ] و این منو آزار میده !![ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]
لازم به ذکر هست که آرایه cntphnd رو برای این 200 تایی انتخاب کردم که مثلا اعضای 0 و 1 و 2 و 3 و 4 و 5 این ارایه برای درصد گلهای تیم A در کل بازیها با تیمهای دیگه و اعضای 6 و 7 و8 و9و 10 و11 برای درصد گلهای تیم B در آن شش تا پانزده دقیقه هست و الی آخر !!


خودم خوب میدونم که ظاهر این برنامه به نظر وحشتناک میاد و کمتر کسی رغبت میکنه به طرفش بره !! ولی واقعیت اینه که چیز زیاد سختی نیست و فقط چند تا قلق داره که من بلد نیستم و بخاطر همین هم در دو مورد گفته شده برای وارد کردن اسم تیمها و درصد گلهای تیمها در 6 تا پانزده دقیقه نیاز به کمک شما دارم !!
ممنون میشم اگه یه کمکی هم به من آماتور بکنید !![ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]
مرC "




يكم كار مشكل شد،چون ما نام تيمها را بصورت پوينتري وارد كرده ايم و طول نامها هم متغير است و تابع strln هم در ++C تعريف نشده،يا بايد ساختار برنامه را تغيير دهيم و كاراكتر كاراكتر اسامي را در يافت كنيم تا طول اسامي در دسترس باشد و يا به نوعي طول هر نام را بدست آوريم.اگر بتواني اين قسمت را حل كني(به طريقي طول هر نامي كه وارد مي شود بدست آيد) تست كاراكتر ويا غير كاراكتر بودن نام كاري ندارد.من فكر مي كنم تو هم فكر كن!

sherlockholmz
17-05-2008, 13:48
بخش دوم سوالت با تغييرات زير در برنامه حل شد:



برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید


يه بررسي بكن تا بعد

robert
17-05-2008, 14:06
سلام و عرض ادب !!:20:
کد برنامه رو با چند تا تغییر ساده تر کردم و خوانایی اون رو افزایش دادم که بصورت زیر دراومد با این فرض که اینبار تو قسمت امتیاز دهی به تیمها تعداد برد رو 3 امتیاز و تساوی رو 1 امتیاز و باخت رو 0 امتیاز در نظر گرفتیم !! چون اینطور که میگن سیستم امتیاز دهی تو بازی فوتبال اینجوریه !! :31: به هر حال کدساده شده ای که حدود 80 خط ازش کم شده و خوانایی اون افزایش پیدا کرده این هست :

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

زیاد مهم نیست که کاربر تو شروع برنامه کاراکتر وارد میکنه یا نه !!:13: چیزی که الان برام اهمیت داره قسمت انتهایی برنامه هست که مربوط به تحلیل تعداد گلها در شش تا 15 دقیقه بازی هست و اینکه محاسبه بشه که برای هر تیم چند درصد گلها تو کدام پانزده دقیقه به ثمر رسیده اند !! یعنی از خط قرمز به بعد !!:46:
به بیان ساده تر با گرفتن تعداد گلهای هر تیم و گرفتن دقایق به ثمر رسیدن گلها که تعداد دقایق همون تعداد گلهاست (( مثلا اگه تیمی 2 تا گل بزنه یکی از آنها دقیقه 34 و دومی در دقیقه 49 به ثمر رسیده که تعداد دو دقیقه برابر تعداد گلهاست و باید تحلیل بشه چند درصد گلها از 0 تا 15 و چند درصد از 16 تا 30 و ... چند درصد از 76 تا 90 دقیقه بازی به ثمر رسیده اند و اینکار باید برای همه تیمها تکرار بشه))
که البته اینجا هم مستلزم استفاده از حلقه های for و استفاده همزمان از چند پارامتر هست منتها بنده کله ام دود کرد :27:از بس که زور زدم تا یه الگوریتم برای اینکار پیدا کنم و از کد نویسی بیهوده تو انتهای برنامه جلوگیری که کاری بجز عدم خوانا شدن برنامه انجام نمیده جلوگیری کنم !!

martin_superhuman
17-05-2008, 20:39
نگاه کن چی بود چی شد :19:
:46::46:

ایول
:46:

sherlockholmz
18-05-2008, 08:48
باسلام
نمي دانم پست قبلي را ديدي يا نه ؟

ولي بهر حال با تغييرات زير درصد مورد نظر راجع به تعداد گلهاي هر تيم در بازه هاي زماني مورد نظر بدست مي آيد.



برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
موفق باشي

robert
18-05-2008, 22:27
سلام شرلوک عزیز:10::35:
به سلامتی و شاد کامی کد نویسی برنامه تموم شد:8::46: و برنامه براحتی کامپایل و اجرا میشه و دیگه نیازی به اضافه کردن دستورات جدید نیست !!
با استفاده از اون تکه کدی که در آخر برنامه برای محاسبه درصد ها و تحلیل نتایج بازی بر حسب شش تا 15 دقیقه نوشته بودید تونستم برای تمامی 5 تا تیم از همون الگوریتم استفاده کنم و برای تیمهای دوم به بعد هم با همون الگوریتم فقط اندیس آرایه ها رو عوض کردم و به این ترتیب برنامه بعد از گرفتن اسم 5 تیم و نتایج بازی ها و گرفتن دقایق به ثمر رسیدن گلها نتایج درست رو در خروجی برای تمامی پنج تیم چاپ میکنه و خطایی هم درکار نیست !!:46:
نوشتن این برنامه بدون کمک شما دوست عزیز به هیچ وجه ممکن نبود !!:11::11: جاداره واقعا از شما تشکر کنم:10: و بخاظر معلومات خیلی خوبی که تو برنامه نویسی دارید بهتون تبریک و آفرین بگم !!:11:

کد برنامه اینه هر چند دیگه نیازی به چک کردن و غلط یابی نیست و همه چیز درسته !!:31:

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

همونطور که مشاهده میکنید با استفاده از الگوریتمی که در برنامه برای محاسبه اون درصدها بکار بردید تونستم تمامی درصدهای پنج تا تیم رو حساب کنم !!
واااقعا ازتون ممنونم !!:40:
خیلی بمن کمک کردید !!:11: امیدوارم بتونم جبران کنم !!
ارادتمند
رابرت

sherlockholmz
19-05-2008, 11:31
باسلام،
تبريك!
خسته نباشي وممنون از حس همكاري و لطفت
اميدوارم در كارهايت هميشه موفق و مويد باشي
باسپاس مجدد از همفكري صميمانه ات خوشحال مي شوم هرگونه كمكي ازدست من برآيد انجام دهم.نه به عنوان كمك كه فرصت تجربه و تمرين اينجانب نيز فراهم مي گردد و از اين لحاظ يك همكاري دو جانبه است.
سلامت باشي
دوست شما شرلوك هولمز:11: