PDA

View Full Version : سوال در مورد آرایه !!!!



Kraken
دوشنبه 02 خرداد 1390, 21:46 عصر
سلام !

1 سوال تو امتحان برنامه نویسی بود که منو ... کرد !!!

برنامه ای بنویسید که 30 فاکتوریل رو حساب کنه (این مقدار تو هیچ متغیری جا نمیشه و باید از آرایه استفاده شود )

چجوری میشه اینو نوشت ؟
منظورش این بود که مثلا 30 فاکتوریل این عدد (3524635435143513543135246) بشه، هر رقمش رو مستقیم تو اندیس ارایه بریزیم
چجوریه !!! ؟؟؟

Arcsinos
دوشنبه 02 خرداد 1390, 22:08 عصر
خب شما باید تمامی عملگر ها رو با آرایه پیاده سازی کنید . بعضی از کارهاش رو من تو اینجا (http://barnamenevis.org/showthread.php?226788-%D8%A7%D9%84%DA%AF%D9%88%D8%B1%DB%8C%D8%AA%D9%85-%D8%AA%D9%82%D8%B3%DB%8C%D9%85-%D8%A2%D8%B1%D8%A7%DB%8C%D9%87-%D8%A7%DB%8C) انجام دادم .

اگه هم با اون نتونستی کار کنی این برنامه رو دانلود (http://up.iranblog.com/images/y7ewfqz7w830iem3mf6l.rar) کن . با آرایه نیست با لیست پیوندیه ضرب و جمع اعداد بزرگ رو انجام میده و کافیه که بگی i از 1 تا 30 بیاد عدد مثلا result رو در عدد i ضرب کنه . ولی باز میگم به صورت لیست پیوندی نه آرایه

موفق باشی

Kraken
سه شنبه 03 خرداد 1390, 09:07 صبح
فکر نکنم به همین راحتی ها باشه !!!
برنامه می خوات (مثلا اگه از حلقه برای رسیدن به 30 فاکتوریل استفاده کنی ) همه ی اندیسای آرایه رو تو هر بار اجرای حلقه دستکاری کنه !
می خوات ارایه رو مثل رم کنه و هر موقع دلش خواست دست کاری کنه. که این کار از دست 1 دانشجوی ترم 2 کاردانی بر نمیات :افسرده:

Kraken
یک شنبه 08 خرداد 1390, 21:48 عصر
جوابی نیست ! ؟ :ناراحت:

Arcsinos
دوشنبه 09 خرداد 1390, 00:14 صبح
بابا به خدا برنامه ی بالا جواب میده ، فکر کنم نتونستی اجراش کنی . من الان این کد رو نوشتم و جواب رو درست هم داد چون با ماشین حساب ویندوز هم انجام دادم همون جواب رو داد : هر چی تو int main برنامه ای که دادم بهت هست پاک کن کد زیر رو اضافه کن و ببین چی میشه . جواب چاپ میشه همین .



node *p,*q;
p=intToNode(1);
for(int i=1;i<=30;i++)
{
q=intToNode(i);
p=multiply(p,q);
}
while(p!=NULL)
{
cout<<p->info ;
p=p->right ;
}
getch();
return 0;


من واسه 100 هم امتحان کردم شد اینم عکسش

http://up.iranblog.com/images/yi22lwd27945dkgu56p.jpg

Kraken
دوشنبه 09 خرداد 1390, 07:45 صبح
همینو نوشتم ولی ۱۲ تا ارور داد !!!
اساسا منم از این کد چیزی نفهمیدم (ترم ۲ ام)
پس آرایه کو ؟‌
اینا چین ؟


node *p,*q;
p=intToNode(1);
q=intToNode(i);
p=multiply(p,q);
->info ;
p=p->right ;



http://up.iranblog.com/images/0mqsg9psicazh3qqxxfv.jpg

Arcsinos
دوشنبه 09 خرداد 1390, 11:23 صبح
پسر تو دیگه کی هستی .

من گفتم داخل int main رو خالی کن نگفتم که همه چیزو پاک کن اون برنامه ای که بهت دادم بالا واسه دانلود گذاشتم 750 خطه که 20 خطش واسه int main هستش تو برداشتی همرو پاک کردی :لبخند:

این قدرم نگو ترم 2ام ترم 2ام اونایی که ترم 2 ان بعضیاشون الان آپولو هوا میکنن . بعضیاشون هم ناسا رو هک میکنن بعضیاشونم تو ماکروسافت کار میکنن .

برنامه ای رو که بهت دادم رو تونستی اجرا کنی ؟ اگه تونستی فقط int main رو پاک کن و کدی رو که بهت دادم رو بریز توش بعد دوباره اجرا کن . هرچی بالای int main هست رو بذار بمون توابع multiply و ساختارهای node و ... رو بذار بمونه پاک نکن .

عکسی رو هم که بالا گذاشتم نگاه کن . کنارش خط برنامه رو نوشته میبینی چند خطه . حدود 750 خطه .

Kraken
دوشنبه 09 خرداد 1390, 19:28 عصر
سلام !
اصلا حواسم به فایلی که آپ کردین نبود :گیج:
امروز صبح هم تازه از خواب پا شده بودم همین کدی که شما دادید رو زدم که جواب نداد و یه چیزی نصار شما شد :لبخند:
ببخشید دیگه اما من با آرایه می خواستم به هر حال ممنون !

miss_baran
سه شنبه 14 دی 1395, 16:47 عصر
سلام یه سوال داشتم راجع به ارایه هانمیدونستم کجا باید بنویسم ممنون میشم پاسخ بدید.
برنامه ای بنویسید که شماره داشجویی و معدل 20دانشجو را از ورودی خوانده و در ارایه ای قراردهد سپس مشخص کند که چه معدلی بیشتر از همه تکرار شده و دفعات تکرار ان رامشخص و همراه شماره دانشجویی های مربوطه در خروجی چاپ کند.
توجه:شماره دانشجویی یک عدد 4 رقمی باشد.
معدل هابصورت اعشاری خوانده شوند
خروجی برنامه همراه با پیام مناسب باشد