• ¡Welcome to Square Theme!
  • This news are in header template.
  • Please ignore this message.
مهمان عزیز خوش‌آمدید. ورود عضــویت


امتیاز موضوع:
  • 20 رای - 2.7 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
Title: پروژه با c++
حالت موضوعی
#1
سلام دوستان سورس یک هم چین برنامه ای را می خواهم

یک آرایه ی n در n  از اعداد صحیح را بگیرد و هر کدام از عناصر آرایه را با نزدیک ترین توان دو به خودش جایگزین کند و در آخر نمایش بده.

مثلاً عدد 3 یعنی 2 به توان 1

یا عدد 5 یعنی 2 به توان 2

ممنون
 
 
پاسخ
#2
درود

اینو با یه الگوریتم متفاوت نوشتم فقط یک آرایه nتایی می گیره و جواب ها رو یکی یکی تو خروجی چاپ می کنه.رو سیستم فقط C++ Dev داشتم یه خورده کد ها رو باید واسه کامپایلرهای دیگه تغییر بدی ولی خب اصل کار رو انجام میده تغییرات جزئی رو دیگه خودت انجام بده اگه نتونی که دیگه ...


کد:
#include <iostream>
using namespace std;
int pwr(int,int);
int main()
{
int quantity;
cout << "How many numbers do you wish to Enter? :";
cin >> quantity;
int Numbers[quantity];
for (int i=0 ; i<quantity ; i++) {
cout << "\nEnter #" << i+1 << " :";
cin >> Numbers[i];
}

for (int m=0 ; m<quantity ; m++) {
int javab; int res;
for (int j=1 ; true ; j++) {
res=pwr(2,j);
if(res > Numbers[m]) {
javab = j; break;
}
}
cout << "\nThe Result for #" << m+1 << " is : 2 Powered by " << javab;
}
system("pause");
return 0;
}

int pwr(int x,int pw)
{
int result = x;
for (int i=1 ; i <= pw ; i++)
result*=x;
return result;
}[/i]

اینم یه عکس از کار برنامه با دادن چند مقدار :
[عکس: attachment.php?aid=447]
موفق باشید
باید حرف زورو نشنوم کر شم فقط -- تو نه رفیق ریگی نیست به کفشم نترس

 نه ، نه من تروریست نیستم -- من رو کاغذ می بازم ولی تئوری نیستم

باید دردای دلمو و تو دلم چال کنم -- تا چشمای من یه روزی  یهویی خیس  شن
 
پاسخ
#3
سلام آرمین عزیز به خدا من این را برای خودم نمی خواهم یک نفر ازم خواهش کرده تا براش بپرسم من دو سال پیش شروع کردم این زبان را یاد بگیرم و کتاب دایتل & دایتل را گرفتم و کمی خوندم اما به خاطر کنکور مجبور شدم رهاش کنم

آقا من C++ Dev 4.9.9.2 را دانلود کردم و سورس شما را داخلش کپی کردم ولی به این ارور می دهد در خط آخر
کد:
[/i]

من پاش کردم ارور رفع شد حالا باید چه کار کنم؟

وقتی من عدد 7 را می زنم باید بنویسه 2 به توان 3 ولی می نویسه 2 به توان 2


ممنون از شما کاش بتوانم جبران کنم





 
 
پاسخ
#4
عزیز شرمنده اگه بیاییم و دو تا متغیر تعریف کنیم a و b به این صورت






کد:
a=adad avaliye - 2^javab
b=2^(javab+1) - adad avaliye
if a>b
cout << "\nThe Result for #" << m+1 << " is : 2 Powered by " << javab+1;
else
cout << "\nThe Result for #" << m+1 << " is : 2 Powered by " << javab;

حالا می شود خواهش کنم کد بالا را در برنامه ات اعمال کنی تا آن مشکلی که گفتم حل بشود حل می شود دیگه درسته؟

منظورم از adad avaliye یعنی همان اعدادی که برنامه می گیرد است

 

 آقا من گفتم بلد نیستم خودم هم برنامه را این طوری می خواستم ویرایش کنم که نشد و جواب غلط می دهد

کد پی‌اچ‌پی:
#include <iostream>
using namespace std;
int pwr(int,int);
int main()
{
int quantity;
cout << "How many numbers do you wish to Enter? :";
cin >> quantity;
int Numbers[quantity];
for (
int i=i<quantity i++) {
cout << "\nEnter #" << i+<< " :";
cin >> Numbers[i];
}

for (
int m=m<quantity m++) {
int javabint res;
for (
int j=true j++) {
res=pwr(2,j);
if(
res Numbers[m]) {
javab j; break;
}
}
      
int a=Numbers[m]- 2^javab;
      
int b=2^(javab+1) - Numbers[m];
    if(
a>b) {
    
cout << "\nThe Result for #" << m+<< " is : 2 Powered by " << javab+1;
     }
     else
     {
     
cout << "\nThe Result for #" << m+<< " is : 2 Powered by " << javab;
     }
}
system("pause");
return 
0;
}

int pwr(int x,int pw)
{
int result x;
for (
int i=<= pw i++)
result*=x;
return 
result;



 

 
 
پاسخ
#5
درود

خب ببینیم اینجا چه خبره ...

اون [i/] که گفتی بخاطر ادیتور فروم هستش من کد ها رو بدون اون زدم ولی ادیتور فروم اون رو تهش اضافه کرد که امین جان باید زحمت رفع مشکل رو بکشه.

بعدش راجع 7 هم طرف ما 2 بتوان 3 میشه 8 یعنی از 7 بیشتره و در اینجا توان دویی که کمتر از عدد باشه رو می خوایم.پس جواب درست 2 بتوان 2 خواهد بود ! حالا نمی دونم شما تو مدارس خارج تحصیل کردین شاید

در نتیجه کد بنده هیچ مشکلی نداره و اونی هم که گفتین اضافه کنم نیازی نیست و دیگر هیچ.

موفق باشید
باید حرف زورو نشنوم کر شم فقط -- تو نه رفیق ریگی نیست به کفشم نترس

 نه ، نه من تروریست نیستم -- من رو کاغذ می بازم ولی تئوری نیستم

باید دردای دلمو و تو دلم چال کنم -- تا چشمای من یه روزی  یهویی خیس  شن
 
پاسخ
#6
سلام ممنون از شما گفتم که من از آن فردی که گفته بود پرسیدم گفت مثلا برای 7 می شود 2 به توان 3 یا برای 63 می شود 2 به توان 6 . گفت باید اختلافش کمتر باشد.وگرنه مال من نیست و من تازه امسال کنکور دادم و همین جا هم تحصیل کردم اگر هم خودم می توانستم به خدا نه وقت شما را می گرفتم و نه مزاحمت ایجاد می کردم به هر حال ممنون اگر فرصت کردید لطفا این کد من را به روشی که درسته در برنامه اعمال کنید شما که این همه کار را کردید دیگه نه نگید گفتم که من خودم اضافه کردم ولی کل برنامه می ریزه به هم

 
 
پاسخ
#7
درود
نقل قول: درود ممنون از شما گفتم که من از آن فردی که گفته بود پرسیدم گفت مثلا برای 7 می شود 2 به توان 3 یا برای 63 می شود 2 به توان 6 .
دوست عزیز من این برنامه رو با توجه به توضیحاتی که تو پست اول دادین نوشتم اگر شفاف تر توضیح میدادین این اشتباه پیش نمیومد!

برنامه رو من تکمیل کردم و با توجه به توضیحات شما تغییرش دادم. اینم کدها :
کد پی‌اچ‌پی:
#include <iostream>

using namespace std;

//Coded by Kei armin @ Parsicoders.com

int pwr(int,int);

int main()
{
     
int quantity;
     
cout << "How many numbers do you wish to Enter? :";
     
cin >> quantity;
     
int Numbers[quantity];
     for (
int i=i<quantity i++) {
         
cout << "\nEnter #" << i+<< " :";
         
cin >> Numbers[i];
         }
         
     for (
int m=m<quantity m++) {
         
int javab;
         
int res;
         for (
int j=true j++) {
             
res=pwr(2,j);
             if(
res Numbers[m]) {
                    if((
Numbers[m] - pwr(2,j-1)) > (res Numbers[m]))
                    
javab j;
                    else
                    
javab j-1;
                    break;
             }
         }
         
cout << "\nThe Result for #" << m+<< " is : 2 Powered by " << javab;
     }
     
     
system("pause");
     return 
0;   
}

int pwr(int x,int pw) {
    
int result 1;
    for (
int i=<= pw i++)
        
result*=x;
    return 
result;   
}[/
i
[عکس: attachment.php?aid=452]
نقل قول: امسال کنکور دادم و همین جا هم تحصیل کردم
من اون بالا شوخی کردم شما چرا جدی گرفتی! منظورم این بود که شاید اشتباه کردی به هر حال اشتباهه دیگه پیش میاد!
نقل قول:اگر هم خودم می توانستم به خدا نه وقت شما را می گرفتم و نه مزاحمت ایجاد می کردم
یه توصیه دوستانه می کنم اونم اینکه اگه کسی ازت راجع چیزی که تو اون زمینه کار نکردی خیلی راحت بهش بگو و الکی خودتو تو زحمت ننداز ! به هر حال

موفق باشید

 

 


فایل‌های پیوست تصاویر بندانگشتی
   
باید حرف زورو نشنوم کر شم فقط -- تو نه رفیق ریگی نیست به کفشم نترس

 نه ، نه من تروریست نیستم -- من رو کاغذ می بازم ولی تئوری نیستم

باید دردای دلمو و تو دلم چال کنم -- تا چشمای من یه روزی  یهویی خیس  شن
 
پاسخ
#8
سلام عزیز واقعاً ممنون از شما

آقا به خدا من به آن فرد هم گفتم که من اصلاً بلد نیستم و شما فکر نکنید که من حالا برنامه ی شما را می دهم بهش و می گویم کار خودم است نه من بهش گفتم که یک فردی داخل این سایت بزرگواری کردند و این برنامه را نوشتند

از اولش هم من گفتم به آن فرد که خودم بلد نیستم اما حالا آن را داخل این انجمن مطرح می کنم انشاالله که کسی پیدا می شود و کمک تان می کنه اگر هم کسی پیدا نشد که دیگه خودتان یک کاریش بکنید که خوش بختانه شما پیدا شدید و کمکش کردید

آقا به هر حال واقعاً ممنون انشاالله همیشه موفق باشید

در ضمن فکر نکنم من بتوانم جبران کنم چون شما خودت ماشاالله یک پا استاد هستید ما از شما چیز یاد می گیریم.
یا حق
 
پاسخ
#9
درود
من اصلا" به این فکر نیستم و نبودم که شما بخوای کد منو به اسم خودت بدی به کسی ! و منظور من این نبود ...
من فکر کردم که شاید شما کاری رو تو رودروایستی قبول کردی و اینا ولی خب اگه بحث فقط این بود که تو انجمن مطرح کنید که دیگه هیچی.
نیازی به جبران نیست.منم خودم از دیگران یاد گرفتم.

موفق و سرافراز باشید
 
باید حرف زورو نشنوم کر شم فقط -- تو نه رفیق ریگی نیست به کفشم نترس

 نه ، نه من تروریست نیستم -- من رو کاغذ می بازم ولی تئوری نیستم

باید دردای دلمو و تو دلم چال کنم -- تا چشمای من یه روزی  یهویی خیس  شن
 
پاسخ
#10
 
پاسخ
  


پرش به انجمن:


Browsing: 1 مهمان