مي بخشي آخر جواب چاپ نشده بود:
کد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
مي بخشي آخر جواب چاپ نشده بود:
کد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
ممنون شرلوک عزیز !!
من کد برنامه رو بازهم ادامه دادم و به جایی رسیدم که مربوط به تحلیل بازیهای هرتیم هست !!
البته برای دوتا تیم A و تیم B فعلا !!
حالا یه زحمتی که برای شما دارم اینه که :کد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
اولا این برنامه براحتی کامپایل و اجرا میشه !! از شما تمنا دارم یه بار هم شما این برنامه رو کامپایل و اجرا کنید و ببینید چجوریه !!
دوم اینکه دیشب متوجه شدم این برنامه تو قسمت آخری که مربوط به تحلیل نتایج هر تیم هست یه مشکلی داره و اون اینه که اسم تیم حتما باید تک حرفی (( فقط یک حرف مثل A )) باشه و مثلا اگه اسم تیم رو pirozi وارد کنم فقط کلمه p اون وارد میشه !!
چند بار خواستم تو بالای برنامه هدر فایل srting.h رو اضافه کنم و اط دستور strcat آرایه های سطر اول آرایه دوبعدی
char team[5][15] رو با هم بگیرم تا هم بتونم اسم تک حرفی رو بدرستی چاپ کنم و هم اسم تیم چند حرفی رو !! ولی گفتم با شما هم یه مشورتی بکنم بد نیست !!
برای اینکه بیشتر متوجه منظورم بشوید برنامه رو اجرا کنید و اینبار بجای اسم تیم اسمهای فینگیلیسی پرسپولیس و استقلال و پاس و ساپیا و سپاهان رو وارد کنید و به خطوط آخر خروجی برنامه که اسم تیم دراونجا ظاهر میشه توجه کنید !! میبینید که مثلا برای تیم pass فقط کلمه p چاپ میشه !!
تا همین الان هم کلی بمن کمک کردیدو منو شرمنده محبتتون کردید !!![]()
واقعا نسبت به بنده لطف دارید![]()
با سلام مجددو عرض خسته نباشي،
نه! لازم نيست اين همه زحمت بكشي .خود C اين زحمت را برايت مي كشد.حالا چه جوري؟
همانطور كه مي بينيم نام تيمها در يك ماتريس 15*5 به نام team ذخيره مي شود.خوب در هر حانه اين ماتريس تنها يك حرف قرارداده مي شود. پس وقتي شما مثلا" مي نويسيبرنامه ناچار است يك حرف را چاپ كند.اين تا اينجا خوب راه حل؟کد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
هيچي از برنامه بخواه كه سطر اول ماتريس هرچه بود چاپ كندچه جوري؟با استفاده ار تنها انديس اول ماتريس
کد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
بهمين سادگي
در ضمن شمالطف داري ولي خواهشمندم اين همه شرمنده نكن.اين كمك دو طرفه است.پس ممنون مي شوم اگر ...
با تشكر
#include <iostream.h>
#include<conio.h>
#include<stdio.h>
void main()
{
char team[5] [15];![]()
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
ممنون !!
ولی خیلی وقته که این تیکه از برنامه رو درست کردم و به مراحل بعدی برنامه رسیدیم !! تو پست بعدی میتونید ملاحظه بفرمایید !!
جسارتا برنامه رو بازهم ادامه دادمو بعد از گرفتن اسم تیمها و چاپ جدول مسابقات و گرفتن نتایج تیمها و چاپ جدول نتایج مسابقات و چاپ جدول امتیازات و تعداد گل زده و خورده و تساوی تیمها و امتیاز تیمها (( برد 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
باسلام،
شماگفتي:
"جسارتا برنامه رو بازهم ادامه دادمو بعد از گرفتن اسم تیمها و چاپ جدول مسابقات و گرفتن نتایج تیمها و چاپ جدول نتایج مسابقات و چاپ جدول امتیازات و تعداد گل زده و خورده و تساوی تیمها و امتیاز تیمها (( برد 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 تعريف نشده،يا بايد ساختار برنامه را تغيير دهيم و كاراكتر كاراكتر اسامي را در يافت كنيم تا طول اسامي در دسترس باشد و يا به نوعي طول هر نام را بدست آوريم.اگر بتواني اين قسمت را حل كني(به طريقي طول هر نامي كه وارد مي شود بدست آيد) تست كاراكتر ويا غير كاراكتر بودن نام كاري ندارد.من فكر مي كنم تو هم فكر كن!
بخش دوم سوالت با تغييرات زير در برنامه حل شد:
کد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنیديه بررسي بكن تا بعد
سلام و عرض ادب !!
کد برنامه رو با چند تا تغییر ساده تر کردم و خوانایی اون رو افزایش دادم که بصورت زیر دراومد با این فرض که اینبار تو قسمت امتیاز دهی به تیمها تعداد برد رو 3 امتیاز و تساوی رو 1 امتیاز و باخت رو 0 امتیاز در نظر گرفتیم !! چون اینطور که میگن سیستم امتیاز دهی تو بازی فوتبال اینجوریه !!به هر حال کدساده شده ای که حدود 80 خط ازش کم شده و خوانایی اون افزایش پیدا کرده این هست :
زیاد مهم نیست که کاربر تو شروع برنامه کاراکتر وارد میکنه یا نه !!کد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنیدچیزی که الان برام اهمیت داره قسمت انتهایی برنامه هست که مربوط به تحلیل تعداد گلها در شش تا 15 دقیقه بازی هست و اینکه محاسبه بشه که برای هر تیم چند درصد گلها تو کدام پانزده دقیقه به ثمر رسیده اند !! یعنی از خط قرمز به بعد !!
به بیان ساده تر با گرفتن تعداد گلهای هر تیم و گرفتن دقایق به ثمر رسیدن گلها که تعداد دقایق همون تعداد گلهاست (( مثلا اگه تیمی 2 تا گل بزنه یکی از آنها دقیقه 34 و دومی در دقیقه 49 به ثمر رسیده که تعداد دو دقیقه برابر تعداد گلهاست و باید تحلیل بشه چند درصد گلها از 0 تا 15 و چند درصد از 16 تا 30 و ... چند درصد از 76 تا 90 دقیقه بازی به ثمر رسیده اند و اینکار باید برای همه تیمها تکرار بشه))
که البته اینجا هم مستلزم استفاده از حلقه های for و استفاده همزمان از چند پارامتر هست منتها بنده کله ام دود کرداز بس که زور زدم تا یه الگوریتم برای اینکار پیدا کنم و از کد نویسی بیهوده تو انتهای برنامه جلوگیری که کاری بجز عدم خوانا شدن برنامه انجام نمیده جلوگیری کنم !!
هم اکنون 1 کاربر در حال مشاهده این تاپیک میباشد. (0 کاربر عضو شده و 1 مهمان)