PDA

View Full Version : مبتدی: اجرا نشدن بخشی از برنامه(توابع تهی)



Beginner Programmer
سه شنبه 02 اردیبهشت 1393, 23:29 عصر
سلام به همه دوستان عزیز
من میخوام یه برنامه با استفاده از توابع بازگشتی بنویسم که پیغام Welcome Home رو نمایش بده به صورتی که دوخط ستاره در بالاش و 4 خط در پایینش باشه(بین ستاره قرار گرفته باشه)این مثال رو از کتاب برنامه نویسی و حل مسئله با ++C (انتشارات دانشگاه تهران چاپ پنجم)تو++Dev C پیاده سازی میکنم این کتاب رو سه تا نویسنده خارجی نوشتند و ترجمه هستش ولی یه خطاهای تو مثال هاش هست مثلا وقتی از کتابخونه iostream استفاده میکنه ;using namespace std رو نمینویسند یا هنگام استفاده از این کتابخونه از پسوند h. استفاده میکنند که با عث ایجاد خطا میشه!
حالا من میخوام بدونم ممکنه این کدها توی کامپایلرهای خاصی اینجوری اجرا بشه؟مثلا تو توربو باید اینجوری نوشت!
الان هم این مثال رو نوشتم که بعد از انجام اصلاحات هنوز اجرا کامل اجرا نمیشه اگر این کد رو اجرا کنید متوجه میشید چی میگم!فقط پیغام welcome home چاپ میشه یعنی ستاره ها رو چاپ نمیکنه!



#include <iostream>
using namespace std;
void print4lines();
void print4lines();
int main()
{
print2lines(void);

cout<<"Welcome home!"<<endl;
print4lines();
return 0;
}
//************************************************** ******************************************
void print2lines()
{
cout<<"*************************"<<endl;
cout<<"*************************"<<endl;

}
//************************************************** ******************************************
void print4lines()
{
cout<<"*************************"<<endl;
cout<<"*************************"<<endl;
cout<<"*************************"<<endl;
cout<<"*************************"<<endl;


}

hadi0x7c7
چهارشنبه 03 اردیبهشت 1393, 00:04 صبح
شما prototype تابع print2line رو یادتون رفته بزارید.

Beginner Programmer
چهارشنبه 03 اردیبهشت 1393, 02:46 صبح
شما prototype تابع print2line رو یادتون رفته بزارید.
با سلام و احترام تا اونجایی که من میدونم خطای syntax رو خود کامپایلر تشخیص میده ولی به هر حال من درستش کردم ولی باز هم نتیجه به همون صورت شد!
118261

majid1605
چهارشنبه 03 اردیبهشت 1393, 16:16 عصر
تنها ایراد برنامه تووی خط 3 و 7 من برنامه رو اجرا کردم به درستی کار می کنه
خودم به شخصه از devc++ خوشم نمیاد خیلی جاها ایرادادت بیخود میگیره بهتره برید از یه IDE بروزتر استفاده کنید Eclipse یا code:block به نظرم گزینه های خوبی هستند مخصوصا code:block
در ضمن اینکه iostream بدون پسوند .h هست به خاطر استاندارد c++ هستش و اگه می بینید هنوز iostream.h تووی کتابخونه ها هستش به خاطر سازگاری با کامپایلرهای قدیمیه وگرنه در صورت بروز بودن کامپایلر با استاندارهای جدید ++c درستش بدون پسوند .h هست .
اینکه using namespace نمی نویسند بله بنده خودمم نمی نویسم و هرجایی نیاز به std باشه تووی همون خط استفاده می کنم که نیازه مثلا

std::cout
std::endl

ولی در صورتی که در حال یادگیری هستید واسه راحتی using namespace std رو استفاده کنید

hadi0x7c7
چهارشنبه 03 اردیبهشت 1393, 16:53 عصر
با سلام و احترام تا اونجایی که من میدونم خطای syntax رو خود کامپایلر تشخیص میده ولی به هر حال من درستش کردم ولی باز هم نتیجه به همون صورت شد!

من با VS2010 تست کردم، خودش تشخیص داد، به هر حال این از مشکلات زبان سی هست که واسه ساده شدن طراحی کامپایلر، این کارا رو به قیمت بد تر شدن زبان خریدند