PDA

View Full Version : سوال: مشکل این کد چیه ؟



Keyhan Clever
چهارشنبه 16 اردیبهشت 1388, 23:32 عصر
از مهندسین عزیز کسی حال داره خودشو جای کامپایلر بذاره و بگه مشکل کد زیر چیه ؟
خیلی واسم مهمه هرکی بگه واقعا ممنون میشم
جریان اینه که کامپیوتر 100 عدد اتفاقی تولید میکنه و درون آرایه ای میریزه و به تابعی پاس میدهد و سپس تابع میانگین و مد آنهارا حساب کند و با اشاره گر برگرداند.
(مد در یک مجموعه در واقع عددی است که بیشترین تکرار در آن مجموعه را داشته است.
مثلا مد {1 و2 و2 و 3 و 4} عدد 4 است و مد {1 و 2 و 3 و 4 و 2 و 5 و 5 } اعداد 2 و 5 هستند.)

دستوراتی که خودم نوشتم چه اشکالی داره ؟


#include<iostream.h>
#include<conio.h>
#include<stdlib.h>
#include<time.h>
void calcu (int [] , int* , int*);
int main ()
{
int araye[100] , miangin , mod ,a;
for (a=0 ; a<100 ; a++){
srand((unsigned)time(NULL));
araye[a] = rand();
}
void calcu (araye , & miangin , & mod);
cout << "Miangin= " << miangin << endl << "Mod= " << mod;
getch();
return 0;
}
// --------------- end of main() --------------- ;
// --------------- Start Of Mather () ---------------:
void calcu (int araye[100] , int *miangin , int *mod)
{
int a , c ;
long int b=0;
for (a=0 ; a<100 ; a++) {
long int b += araye[a];
}
*miangin = (b/100)
// *************** end of Miangin ***************
// *************** Start Of Mod ***************
int d[100] , e ;
for (a=0 ; a<100 ; a++)
d[a] = 0;
for (a=0 ; a<100 ; a++)
for (int f=0 ; f<100 ; f++)
if (araye[a] == araye[f])
d[a] ++;
for (a=0 ; a<100 ; a++)
if (d[a] < d[a+1])
*mod = d[a+1];
}

tdkhakpur
پنج شنبه 17 اردیبهشت 1388, 02:35 صبح
سلام:
اشکالت تو تابه هست میتونی ایطوری اصلاحش کنی


void calcu (int araye[100] , int *miangin , int *mod)
{
int a , c ;
long int b=0;
for (a=0 ; a<100 ; a++) {
b += araye[a]; //***************تغییر
}
*miangin = (b/100)
// *************** end of Miangin ***************
// *************** Start Of Mod ***************
int d[100] , e ;
for (a=0 ; a<100 ; a++)
d[a] = 0;
for (a=0 ; a<100 ; a++)
for (int f=0 ; f<100 ; f++)
if (araye[a] == araye[f])
d[a] ++;

int index=0; //***************تغییر
*mod = d[index]; //***************تغییر
for (a=1 ; a<100 ; a++)
if (*mod < d[a]){ //***************تغییر
*mod = d[a]; //***************تغییر
index = a; //***************تغییر
}
*mod = a[index]; //***************تغییر

}
انشا الله جواب مشکلت حل میشه.

masoud.ramezani
پنج شنبه 17 اردیبهشت 1388, 11:32 صبح
کد زیر رو من برای پروژه که حدود ۳ - ۴ سال پیش انجام دادم و یک کار آماری بود نوشتم. شاید به درد شما بخورد. چیزی شبیه به اونه که شما میخواهید. این کد یک فایل تولید میکنه که در آن کارایی تابع srand در آن تست شده :





void RandTest()
{
char buffer[5];
FILE *fp;
int face,i;
srand(time(0));

cout<<"Insert Iteration : ";
cin>>i;
cout<<"\nPlease wait..."<<endl;

if ((fp=fopen("Random_Generator.txt","a"))==NULL)
{
cout<<"Cannot open file"<<endl;
exit(1);
}

for(int j=1;j<=i;j++)
{
int frequency1 = 0;
int frequency2 = 0;
int frequency3 = 0;
int frequency4 = 0;
int frequency5 = 0;
int frequency6 = 0;
int frequency7 = 0;
int frequency8 = 0;
int frequency9 = 0;
int frequency10= 0;


for ( int roll = 1; roll <= 10000; roll++ ) {
face = 1 + rand() % 10;


switch ( face ) {

case 1:
++frequency1;
break;

case 2:
++frequency2;
break;

case 3:
++frequency3;
break;

case 4:
++frequency4;
break;

case 5:
++frequency5;
break;

case 6:
++frequency6;
break;

case 7:
++frequency7;
break;

case 8:
++frequency8;
break;

case 9:
++frequency9;
break;

case 10:
++frequency10;
break;

default:
cout << "Program should never get here!";

}

}




fputs("\n1",fp);fputs(") ",fp);fputs(_itoa(frequency1,buffer,10),fp);fputs("\n",fp);
fputs("2",fp);fputs(") ",fp);fputs(_itoa(frequency2,buffer,10),fp);fputs("\n",fp);
fputs("3",fp);fputs(") ",fp);fputs(_itoa(frequency3,buffer,10),fp);fputs("\n",fp);
fputs("4",fp);fputs(") ",fp);fputs(_itoa(frequency4,buffer,10),fp);fputs("\n",fp);
fputs("5",fp);fputs(") ",fp);fputs(_itoa(frequency5,buffer,10),fp);fputs("\n",fp);
fputs("6",fp);fputs(") ",fp);fputs(_itoa(frequency6,buffer,10),fp);fputs("\n",fp);
fputs("7",fp);fputs(") ",fp);fputs(_itoa(frequency7,buffer,10),fp);fputs("\n",fp);
fputs("8",fp);fputs(") ",fp);fputs(_itoa(frequency8,buffer,10),fp);fputs("\n",fp);
fputs("9",fp);fputs(") ",fp);fputs(_itoa(frequency9,buffer,10),fp);fputs("\n",fp);
fputs("10",fp);fputs(") ",fp);fputs(_itoa(frequency10,buffer,10),fp);fputs("\n",fp);
cout<<"\n**********************************\n";
cout << "Face" << setw( 13 ) << "Frequency"
<< "\n 1" << setw( 13 ) << frequency1
<< "\n 2" << setw( 13 ) << frequency2
<< "\n 3" << setw( 13 ) << frequency3
<< "\n 4" << setw( 13 ) << frequency4
<< "\n 5" << setw( 13 ) << frequency5
<< "\n 6" << setw( 13 ) << frequency6
<< "\n 7" << setw( 13 ) << frequency7
<< "\n 8" << setw( 13 ) << frequency8
<< "\n 9" << setw( 13 ) << frequency9
<< "\n 10" << setw( 12 ) << frequency10 << endl;
cout<<"**********************************\n\n"<<endl;

cout<<"\n Please press Enter to continue "<<endl;
_getch();
}
cout<<"\nThe result saved on Random_Generator.txt\b\n"<<endl;
fclose(fp);
}

Keyhan Clever
پنج شنبه 17 اردیبهشت 1388, 13:37 عصر
آخه من منظورم واسه ارور هایی بود که میده نه جوابش
اینطوری که شما گفتید ارور ها بیشتر هم شدند

tdkhakpur
جمعه 18 اردیبهشت 1388, 00:09 صبح
آخه من منظورم واسه ارور هایی بود که میده نه جوابش
اینطوری که شما گفتید ارور ها بیشتر هم شدند

دوست گرامی ما خواستیم کمکتون کنیم نمیشه که همه برنامه رو از بیخ تا بن نوشت.
این برنامه شما خیلی کوچکتر از این حرفهاست که سرمونو به درد بیاریم.
شما یه نگاهی به کامپایلر تون بنداز شاید ایراد از اون باشه.
موفق باشی....

Keyhan Clever
جمعه 18 اردیبهشت 1388, 00:12 صبح
ببخشید
تمیخواستم ناراحتتون کنم
آخه من تازه سی پلاس پلاس رو شروع کردم
اونم خودم دارم با کتاب هاش میخونم بدون هیچ استادی.
تنها راهنمای من شما ها هستید
در ضمن من خیلی کوچیکم و به راهنمایی شما نیاز دارم
من کلاس اول راهنمایی ام
به هر حال ببخشید ناراحتتون کردم
معذرت میخوام

zoofa
جمعه 18 اردیبهشت 1388, 01:09 صبح
(مد در یک مجموعه در واقع عددی است که بیشترین تکرار در آن مجموعه را داشته است.
مثلا مد {1 و2 و2 و 3 و 4} عدد 4 است و مد {1 و 2 و 3 و 4 و 2 و 5 و 5 } اعداد 2 و 5 هستند.)


چه جالب 2 مدل مد پیدا شده :قهقهه::قهقهه::قهقهه::قهقهه:: هقهه::گیج::گیج::گیج::گیج::گیج: :متفکر::متفکر::متفکر::متفکر:: تفکر::متفکر:




من کلاس اول راهنمایی ام



من کلاس اول راهنمایی بودم نمی دونستم کامپیوتر چی هست چه برسه به برنامه نویسی اون هم زبان c
چه دور و زمونه ای شده

آفرین:تشویق::تشویق::تشویق::ت ویق::تشویق:

Keyhan Clever
جمعه 18 اردیبهشت 1388, 11:37 صبح
مدی که شما فکر میکنید چیه ؟
مگه میشه من تو کتاب آمار و مدل سازی دوم دبیرستان رشته ریاضی خوندم .
میشه توضیح بدین ؟