PDA

نسخه کامل مشاهده نسخه کامل : سوال و جواب



lord_ashkan_z
30-07-2009, 16:14
باسلام ...

من قصد دارم در این تاپیک سوالات خود را مطرح کنم طوری تا یک تاپیک سوال و جواب درست بشه و بقیه افراد بتونن جواب سوال های معمول خود را پیدا کنند...

این طوری هم من به جوابم می رسم و برای بقیه افراد هم یک جور مبنع اشکالات رایج تشکیل میشه...


در بین اینها ممکن هست بعضی هاشون خیلی ساده و ابتدایی باشن و بعضی عجیب و غریب ...



دوستان اگر علاقه داشتند می تونند سوال های خود را در این تاپیک مطرح کنند تا به تهیه ی یک مرجع سوالات و مشکلات رایج کمک کنند ← به هر حال طرح سوال های جالب هم شگرد داره ...

اگر شما هم می خواهید در این تاپیک سوالات خود را بپرسید، لطفا هر سوال را در یک پست مطرح کنید...!:20:


:11:
:11:
:11:

lord_ashkan_z
30-07-2009, 16:20
خب سوال اول:

در خیلی از زبان های برنلمه نویسی، مثل VB ، شما با دستور "وارد کردن" هر نوع داده ای را با هر مقدار طول داده می توانید وارد کنید...

اما از اونجا که شما در c و C++ و ... اول هر داده ای را اعلان کنیم، دردسر ایجاد می کنه...

مثلا برای ورود یک رشته از کارکتر باید چه کار کنیم؟ مثلا برای وارد کردن نام یک شخص یا شرکت یا ...

lord_ashkan_z
30-07-2009, 16:25
سوال دوم:


این سوال هم در مورد جریان داده هست:

بعضی وقت ها ما نیاز داریم که یک کد را بخوانیم. و این کد مثل عدد زیر با یک یا چند صفر شروع میشود:
0062

از نوع داده ی ورودی را Int در نظر بگیریم با این مشکل رو به رو می شیم که از صفر ها صرفه نظر می کنه...!
اگر از نوع کارکتر تعریف کنیم، دیگه عدد نیست و امکان مرتب کردن ش وجود نداره؟

این را چه کار کنیم؟

lord_ashkan_z
30-07-2009, 16:31
سوال سوم:(باز هم جریان داده)

فرض کنید ما دستور زیر را داشته باشیم:


cin>> int x;

و کاربر برنامه، وروردی را به این صورت وارد کنه:


111 222


که در واقع دو عدد هست. در این صورت اتفاقی که می افته این هست که عدد اول را برای متغیر x وارد می کنه و عدد یا عددهای بعد را ذخیره می کنه تا بعدا برای دستور های ورودی بعدی، استفاده کنه:



cin >>int x;
.
.
.
cin>> int y


یعنی دیگر از شما برای Y عددی نمی پرسه...


برای جلوگیری از چنین اتفاقی باید چه کار کرد؟

IP007
30-07-2009, 17:25
جواب 1:

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید2:
چه جور مرتب کردنی؟

alireza15
30-07-2009, 17:31
سوال چهارم:
مگه حجم هر دی وی دی 4.7 گیگابایت نیست؟؟
پس چرا بعضی وقتا برای بعضی دی وی دی ها وقتی روی درایو دی وی دی راست کلیک می کنیم و روی properties کلیک می کنیم
مثلا می زنه used space : 4.2 GB و free space :0 bytes ؟ و چه جوری می شه روی این دی وی دی ها
اطلاعات دیگه ای رو رایت کرد؟؟

IP007
30-07-2009, 17:41
سوال چهارم:
مگه حجم هر دی وی دی 4.7 گیگابایت نیست؟؟
پس چرا بعضی وقتا برای بعضی دی وی دی ها وقتی روی درایو دی وی دی راست کلیک می کنیم و روی properties کلیک می کنیم
مثلا می زنه used space : 4.2 GB و free space :0 bytes ؟ و چه جوری می شه روی این دی وی دی ها
اطلاعات دیگه ای رو رایت کرد؟؟
1:سوال ربطی به برنامه نویسی نداره
2:ته دی وی دی با برنامه ای رایتش کردن بسته شده و فقط با اون برنامه میشه بر رویش رایت کرد
3:لطفا سوالتون رو در انجمن مربوطه بپرسید

sin2x=2sinxcosx
30-07-2009, 19:37
سوال اول : سه راه وجود داره .
1- يه اشاره گر به نوع داده اي char
2- آرايه اي از char
3- استفاده از کلاس string از کتابخانه استاندارد .

سوال دوم :
بايد رشته گرفته بشه . ضمنا امکان مرتب کردن رشته چرا نيست ؟ هست !

سوال سوم :
بله . وقتي شما براي يه عدد ، دو عدد با فاصله وارد مي کنين ، عدد اول رو درون متغير مروبطتون مي ذاره و عدد دوم ميره تو بافر قرار مي گيره و براي دستور ورودي دوم از عدد موجود تو بافر استفاده مي کنه و ديگه از کاربر عدد نمي خواد .
شما چرا فاصله مي ذارين ؟ براي جلوگيري از چه مشکلي چيکار کنيم ؟ وقتي از شما عدد مي خواد خوب شما هم عدد بزنين ديگه چرا فاصله مي ذارين ؟

سوال چهارم :
1:سوال ربطی به برنامه نویسی نداره
2:ته دی وی دی با برنامه ای رایتش کردن بسته شده و فقط با اون برنامه میشه بر رویش رایت کرد
3:لطفا سوالتون رو در انجمن مربوطه بپرسید :46:

lord_ashkan_z
31-07-2009, 09:12
شما چرا فاصله مي ذارين ؟ براي جلوگيري از چه مشکلي چيکار کنيم ؟ وقتي از شما عدد مي خواد خوب شما هم عدد بزنين ديگه چرا فاصله مي ذارين ؟

فرض کنید فرد به طور اشتباهی یک فاصله میزنه...!
یا به هر نحوی ممکن هست نیاز داشته باشیم که این مقدار یا مقادیر را از بافر پاک کنیم ...!



ضمنا امکان مرتب کردن رشته چرا نيست ؟ هست !

چه جور مرتب کردنی؟

فرض کنید کد هایی به صورت: 0215 شماره ی پرونده یا شماره دسستیابی به یک سری پرونده باشه! اگر شما این کد را به صورت رشته کارکتر وارد کنید، دیگر عدد نیست که بخواهیم آنها را به ترتیب افزایش مقدار مرتب کنیم!
به خصوص اگر از یک آرایه ی char استفاده کنیم که اصلا دیگر نه عدد هست نه یک رشته: منظورم این هست که شما چه جوری می خواهید از تک کارکتر های ذخیره شده در حافظه های مختلف یک عدد واحد بسازید؟

sin2x=2sinxcosx
31-07-2009, 09:46
فرض کنید فرد به طور اشتباهی یک فاصله میزنه...!
یا به هر نحوی ممکن هست نیاز داشته باشیم که این مقدار یا مقادیر را از بافر پاک کنیم ...!


دستور endl ، بافر خروجي رو خالي مي کنه . ديگه نمي دونم براي ورودي هم کار مي کنه يا نه .



فرض کنید کد هایی به صورت: 0215 شماره ی پرونده یا شماره دسستیابی به یک سری پرونده باشه! اگر شما این کد را به صورت رشته کارکتر وارد کنید، دیگر عدد نیست که بخواهیم آنها را به ترتیب افزایش مقدار مرتب کنیم!
به خصوص اگر از یک آرایه ی char استفاده کنیم که اصلا دیگر نه عدد هست نه یک رشته: منظورم این هست که شما چه جوری می خواهید از تک کارکتر های ذخیره شده در حافظه های مختلف یک عدد واحد بسازید؟

قطعه کد زير رو در نظر بگيرين :

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

اين قطعه کد ، 2 رو در 1 ضرب مي کنه و چاپ مي کنه .

lord_ashkan_z
31-07-2009, 22:43
سوال پنجم:

فرض کنید ما یک آرایه داریم که مقادیر یک لیست در آن ذخیره شده...
ولی در این لیست، بعضی از مقادیر بیشتر از یک بار تکرار شده؛ و ما با یک حلقه مقدار های تکرار شده را پیدا می کنیم...!

سوال این هست که چه طور حافظه ی این متغیر های تکراری را پاک کنیم به طوری که وقتی با یک حلقه تمام اعضا را روی مانیتور نمایش دادیم اثری از این متغیر های خالی نباشه؟


باتشکر ...

mehmoomy
01-08-2009, 07:35
سلام.
من می خوام به کلاس طراحی کنم که با مقادیری که می گیره توش یه آرایه پویا(dymanic) درست بشه.می خوام این آرایه تا آخر عمر کلاس ماندگار باشه و ضمنا می خوام با متد های دیگه بهش دسترسی داشته باشم.بهترین مدلش واسه من اینه که با سازنده اش ابعاد آرایه رو بگیره و همون اول که کلاس ساخته میشه آرایه هم در حافظه ساخته بشه تا پایان کار کلاس.
ممنون

sin2x=2sinxcosx
01-08-2009, 10:37
سوال پنجم:

فرض کنید ما یک آرایه داریم که مقادیر یک لیست در آن ذخیره شده...
ولی در این لیست، بعضی از مقادیر بیشتر از یک بار تکرار شده؛ و ما با یک حلقه مقدار های تکرار شده را پیدا می کنیم...!

سوال این هست که چه طور حافظه ی این متغیر های تکراری را پاک کنیم به طوری که وقتی با یک حلقه تمام اعضا را روی مانیتور نمایش دادیم اثری از این متغیر های خالی نباشه؟


باتشکر ...

خب البته براي اين کار شگرد يا دستوري تو ++C وجود نداره . اگه کسي بخواد بهتون پاسخ بده بايد يه برنامه بنويسه . برنامه مي خواين ؟




سلام.
من می خوام به کلاس طراحی کنم که با مقادیری که می گیره توش یه آرایه پویا(dymanic) درست بشه.می خوام این آرایه تا آخر عمر کلاس ماندگار باشه و ضمنا می خوام با متد های دیگه بهش دسترسی داشته باشم.بهترین مدلش واسه من اینه که با سازنده اش ابعاد آرایه رو بگیره و همون اول که کلاس ساخته میشه آرایه هم در حافظه ساخته بشه تا پایان کار کلاس.
ممنون


به زبان ++C ديگه ؟ چون کلمه متد که به کار بردين تو جاوا و #C استفاده ميشه . ما تو ++C ميگيم تابع عضو .
بگذريم ....
من دقيقا متوجه منظور شما نشدم . تا آخر عمر کلاس ماندگار بشه يعني چي ؟ يعني هيچ وقت delete نکنين ؟
يا نه تو گرفتن حافظه براي يه آرايه به صورت dynamic مشکل دارين ؟

mehmoomy
01-08-2009, 11:05
ه زبان ++C ديگه ؟ چون کلمه متد که به کار بردين تو جاوا و #C استفاده ميشه . ما تو ++C ميگيم تابع عضو .
بگذريم ....
من دقيقا متوجه منظور شما نشدم . تا آخر عمر کلاس ماندگار بشه يعني چي ؟ يعني هيچ وقت delete نکنين ؟
يا نه تو گرفتن حافظه براي يه آرايه به صورت dynamic مشکل دارين ؟
بله با ++c.اگه قاطی شده ببخشید.
منظورم اینه که : می خوام کلاسی تعریف کنم که سازنده اش یا یکی از توابع عضوش از طریق پارامترها ۲ تا مقدار بگیره و یه آرایه پویا ۲ بعدی تعریف کنه.خوب تا حالاش رو می تونم انجام بدم..می خوام که توی برنامه ام به این آرایه دسترسی داشته باشم.یعنی حالا می خوام مقدار بهش بدم.ولی اگر تابع عضو رو فراخوانی کنم که دوباره آرایه تعریف میشه.اگر هم بخوام که آرایه رو عضو داده ای تعریف کنم که نمی شه باید توی تابع باشه.static هم که نمیشه.چون می خوام که هر شی آرایه خودش رو داشته باشه تازه اگر بشه static تعریفش کرد.
امیدوارم که متوجه شده باشی.مشکل توی طراحی کلاسه.

sin2x=2sinxcosx
01-08-2009, 12:13
خب به صورت داده عضو بگيرين . يعني اشاره گرتونو تو قسمت داده هاي عضو تعريف کنين و مقداردهي رو هم تو سازنده انجام بدين . چرا ميگين نميشه ؟

lord_ashkan_z
01-08-2009, 12:25
خب البته براي اين کار شگرد يا دستوري تو ++C وجود نداره . اگه کسي بخواد بهتون پاسخ بده بايد يه برنامه بنويسه . برنامه مي خواين ؟


اگر برنامه ای باشه که مقدار را از حافظه پاک کنه، می خوام.

ولی اگر منظور از برنامه اینه که طوری اعضا را وارد آرایه کنیم که عضو تکراری نداشته باشه، خودم بلدم ...!

sin2x=2sinxcosx
01-08-2009, 14:38
اگر برنامه ای باشه که مقدار را از حافظه پاک کنه، می خوام.

ولی اگر منظور از برنامه اینه که طوری اعضا را وارد آرایه کنیم که عضو تکراری نداشته باشه، خودم بلدم ...!

ببینین دوست عزیز این برنامه آرایه رو جستجو می کنه و اگه مقداری تکراری پیدا کرد اونو صفر می کنه و بعدا چاپ نمی کنه .
البته این برنامه در صورتی کاربرد داره که شما تو لیستتون عدد صفر نداشته باشین . اگه خود صفر رو دارین ، به جای اون مثلا 1- بذارین .


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

mehmoomy
03-08-2009, 13:57
سلام دوباره.
من می خوام یه کلاس توی برنامه ام استفاده کنم که تعریفش و پیاده سازیش توی یه فایل دیگه باشه.راهنمایی کنید که چیکار باید بکنم.
فایل رو باید با چه پسوندی ذخیره کنم.
ساختن فایل header رو هم همینطور اگر راهنمایی کنید خیلی عالی میشه.
در کل چه اصولی رو باید برای هر دو اینکار انجام بدم.
ممنون

sin2x=2sinxcosx
03-08-2009, 15:50
اگه از کامپايلر Visual Studio استفاده مي کنين :
وقتي Win32 Console Application رو انتخاب کردين و Next رو زدين و بعد Empty Project رو انتخاب کردين و Finish کردين ، سه فولدر براتون تو پنجره Solution Explorer مياره :
Header Files
Resource Files
Source Files
براي هدر فايل روي Header Files راست کليک کنين و Add و بعد New Item رو بزنين و از پنجره ظاهر شده در قسمت سمت راست Header File رو انتخاب کنيد و اسم فايل رو در قسمت پايين وارد کرده و Add رو بزنين . اين براي تعريف کلاستون . براي پياده سازي هم روي Source File راست کليک کرده و از اون جا يه فايل با پسوند cpp ايجاد کنين .

sepehrock
03-08-2009, 17:31
با توجه یه این که این فرم vb هست من هر دو سوال بالا رو با vb.net جواب میدم
سوال اول:
در vb.net دستوری به اسم redim هست که طول ارایه های dynamic رو تغییر می ده و برای حفط مقادیر قبلی از redim preserve استفاده می شه، باید یا این دستور و یه ارای دیگه به عنوان temp اراییه اصلی رو قطع و وصل کنیم
سوال دوم:




class project
public array() as object(مثلا)
end calss


حالا شما هر موقع خواستی استفاده کنی باید redim کنی

mehmoomy
03-08-2009, 20:59
اگه از کامپايلر Visual Studio استفاده مي کنين :
من بدون توجه به کامپایلر یا محیط خاصی مد نظرم هست.نمی شه با اضافه کردن دستوری به فایل اصلی نشون بدیم که کلاس ها توی فایلهای دیگه ای هستن؟هدر رو قبلا یادمه انحام داده بودم اما حالا یادم نمیاد.در مورد کلاس ها بار اولیه که می خولم این کار رو بکنم.
من توی لینوکس با یه ادیتور ساده برنامه رو می نویسم .و با خط فرمان هم کامپایل می کنم.البته برنامه برای این کار نصب کردم ولی می خوام زیاد وابسته به ide خایص نباشم.

sin2x=2sinxcosx
03-08-2009, 21:38
.نمی شه با اضافه کردن دستوری به فایل اصلی نشون بدیم که کلاس ها توی فایلهای دیگه ای هستن؟

به کي نشون بدين ؟ منظورتونو نمي فهمم .

mehmoomy
03-08-2009, 23:11
به کي نشون بدين ؟ منظورتونو نمي فهمم .
به کسی نباید چیزی گفت.منظور کامپایلره!
از دستوری استفاده کرد یا روشی بکار برد که به کامپایلر نشون بده‌ که برای کامپایل (ترجمه به زبان ماشین)برنامه باید از فایل دیگه ای هم استفاده کنه .این فایل حاوی تعریف کلاس بکار رفته در تابع اصلی برنامه است.مثل هدر ها که تعریف دستورات اصلی برنامه رو دارن.کامپایلر هم که صد در صد میدونید چیه؟فکر نمی کنم ابهامی در کار باشه یا چیزی گفته باشم که فهمش اینقدر سخت بوده باشه.

дŁ!ЯêŽд
04-08-2009, 00:17
از دوستان 2 تا سوال داشتم :

اولی این که تو کلاس پروژه ای که به صورت زیر حل کردیم بعد با تریس کردن دیدیم اسمو فامیل درسا در نمیاد من اول برنامه را مینویسم بعد کاری که انجام دادم تا اشکال رفع شه را میگم اگه ممکنه بگین رفع اشکالم و تحلیلم درست بوده از این اشکال یا نه :

# include < Iostream .h>
Void chap (char 1[] , int , char2[],int),
Int main()
{
char string1(3) ,string2(6),
cout<< “name=” ,
cin>>string1,
cout<<”\n family=”,
cin>>string2,
chap(string1,3,string2,6),
return 0
}
Void chap (char str1 [] ,int a,char str2[],int b),
for (int i=0 , i<a,i++),
cout<<str1[i],
cout<<setw(1),
for (int i=0 , i<b,i++),
cout<<str2[i],
}


الته شرمنده کپی کردم درست نوشته نشده بعد استاد گفت چرا مثلا میزنی علی رضایی درست چاپ نمیکنه بعد من برداشتم تو این خط :
char string1(3) ,string2(6),
آرایه 6 را تو string 2 تغییر دادم و کردمش 10 و تحلیلم این بود که بر حسب اسمو فامیلی آرایه و اندازه آن باید درست تعیین بشه آیا تحلیلم درست بوده ؟ و اگر نه آیا راه دیگری وجود داره یا خیر؟


بعد سوال دومم از استادیت اینه که استاد یک پروژه بازی مانند داد که 3 تا میله باشه و هر دیسکی را از میله 1 بخ 2 و یا 3 جا به جا کرد و شرط اینکه که هیچ دیسک بزرگتری بالای دیسک کوچکتری قرر گیرد و از تابع بازگشتی استفاده شود از دوستان میخواستم اگر یک راهنمایی کنن ممنون میشم و چطور میشه از یک تابع بازگشتی در این برنامه استفاده کرد ممنونم میشم

sin2x=2sinxcosx
04-08-2009, 10:20
به کسی نباید چیزی گفت.منظور کامپایلره!
از دستوری استفاده کرد یا روشی بکار برد که به کامپایلر نشون بده‌ که برای کامپایل (ترجمه به زبان ماشین)برنامه باید از فایل دیگه ای هم استفاده کنه .این فایل حاوی تعریف کلاس بکار رفته در تابع اصلی برنامه است.مثل هدر ها که تعریف دستورات اصلی برنامه رو دارن.کامپایلر هم که صد در صد میدونید چیه؟فکر نمی کنم ابهامی در کار باشه یا چیزی گفته باشم که فهمش اینقدر سخت بوده باشه.

کامپايلر خودش مي تونه به طور اتوماتيک اين دو رو پيدا کنه و لينک کنه . شما لازم نيست با دستوري بهش نشون بدين . البته بايد اين دو فايل تو يه جا ( يه فولدر ) قرار داشته باشن .
مثلا اين تعريف کلاس هست :

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

اين هم پياده سازي . چون فايل هدر رو include کرديم و قبل اسم توابع ، نام کلاس اومده ، کامپايلر خودش مي تونه بفهمه که اين دو به هم ربط دارن و اين دو رو لينک مي کنه .

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

sin2x=2sinxcosx
04-08-2009, 10:36
از دوستان 2 تا سوال داشتم :

اولی این که تو کلاس پروژه ای که به صورت زیر حل کردیم بعد با تریس کردن دیدیم اسمو فامیل درسا در نمیاد من اول برنامه را مینویسم بعد کاری که انجام دادم تا اشکال رفع شه را میگم اگه ممکنه بگین رفع اشکالم و تحلیلم درست بوده از این اشکال یا نه :

# include < Iostream .h>
Void chap (char 1[] , int , char2[],int),
Int main()
{
char string1(3) ,string2(6),
cout<< “name=” ,
cin>>string1,
cout<<”\n family=”,
cin>>string2,
chap(string1,3,string2,6),
return 0
}
Void chap (char str1 [] ,int a,char str2[],int b),
for (int i=0 , i<a,i++),
cout<<str1[i],
cout<<setw(1),
for (int i=0 , i<b,i++),
cout<<str2[i],
}


الته شرمنده کپی کردم درست نوشته نشده بعد استاد گفت چرا مثلا میزنی علی رضایی درست چاپ نمیکنه بعد من برداشتم تو این خط :
char string1(3) ,string2(6),
آرایه 6 را تو string 2 تغییر دادم و کردمش 10 و تحلیلم این بود که بر حسب اسمو فامیلی آرایه و اندازه آن باید درست تعیین بشه آیا تحلیلم درست بوده ؟ و اگر نه آیا راه دیگری وجود داره یا خیر؟


بعد سوال دومم از استادیت اینه که استاد یک پروژه بازی مانند داد که 3 تا میله باشه و هر دیسکی را از میله 1 بخ 2 و یا 3 جا به جا کرد و شرط اینکه که هیچ دیسک بزرگتری بالای دیسک کوچکتری قرر گیرد و از تابع بازگشتی استفاده شود از دوستان میخواستم اگر یک راهنمایی کنن ممنون میشم و چطور میشه از یک تابع بازگشتی در این برنامه استفاده کرد ممنونم میشم

سلام .
بله يکي از مشکلات شما اين بود که اندازه آرايه تون کوچيک بود و براي اسم هاي بزرگ مشکل ايجاد ميشد .
يه مشکل هم اينکه نياز نيست طول آرايه رو هم به تابع chap بفرستين .
و ضمنا من تو حلقه شرط گذاشتم که تا وقتي که رشته مون موجود باشه چاپ کنه .
اين برنامه به طور کامل جواب ميده :

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

در مورد سوال دوم هم مسئله برج هانوي هست که من تا حالا حلش نکردم . اگه حل کردم به شما هم کمک مي کنم . :20:

lord_ashkan_z
04-08-2009, 23:24
با توجه به سوالاتی که دوستان مطرح کردند، دیگر شماره شوال ها از دستم در رفت ... :دی

سوال بعد:

همون طور که می دونید وقتی شما یک جریان ورودی را به کامپایلر می دهید، کامپایلر روی کارکتر بعد از آخرین کارکتر خوانده شده علامتی قرار می دهد که بفهمه دفعه ی بعد که خواست از این جریان مقداری را وارد کنه، از کجا ادامه بدهد ...!

چه طور می تونم این مکان نما رو در صورت نیاز جلو و عقب کنم؟
البته برای جلو بردن این مکان نما میشه از تابع ignore استفاده کرد ولی سوال اصلی اینه که چه جوری به عقب منتقل ش کنیم؟
و اینکه آیا به جز تابع ignore راه دیگری برای جلو بردن مکان نما هست؟

ali_joghataei
04-08-2009, 23:50
با سلام
میخواستم بدونم چجوری میشه تو سی شارپ یه عکس بیاری که پست زمینش به صورت محو بشه
یهنی فقط پیکسل های پر عکس نمایش داده بشه البته خودش این کارو میکنه ولی تو چهار چوب خود picturebox ولی من میخوام عکس پس زمینه فرمم هم از درون picturebox معلوم بشه :11:


میدونم که خیلی واضح نیست اگر متوجه نشدید بگید یه جور دیگه بگم :10:

sin2x=2sinxcosx
05-08-2009, 10:05
با توجه به سوالاتی که دوستان مطرح کردند، دیگر شماره شوال ها از دستم در رفت ... :دی

سوال بعد:

همون طور که می دونید وقتی شما یک جریان ورودی را به کامپایلر می دهید، کامپایلر روی کارکتر بعد از آخرین کارکتر خوانده شده علامتی قرار می دهد که بفهمه دفعه ی بعد که خواست از این جریان مقداری را وارد کنه، از کجا ادامه بدهد ...!

چه طور می تونم این مکان نما رو در صورت نیاز جلو و عقب کنم؟
البته برای جلو بردن این مکان نما میشه از تابع ignore استفاده کرد ولی سوال اصلی اینه که چه جوری به عقب منتقل ش کنیم؟
و اینکه آیا به جز تابع ignore راه دیگری برای جلو بردن مکان نما هست؟

در مورد cin منظورتون بود يا cout ؟
در مورد cout که r\ مکان نما رو به اول سطر جاري مي برد . جلو بردن هم که راحته . با دستور gotoxy هم ميشد يه کارايي کرد ولي يه خورده غير استاندارده و نمي دونم کامپايلرهاي جديد ازش پشتيباني مي کنن يا نه .

дŁ!ЯêŽд
05-08-2009, 11:44
میخواستم بدونم کسی برج هانوي را میتونه حل کنه؟
اگر برای کسی مشکل باشه هزینه هم پرداخت میکنم

lord_ashkan_z
05-08-2009, 16:39
در مورد cin منظورتون بود يا cout ؟
در مورد cout که r\ مکان نما رو به اول سطر جاري مي برد . جلو بردن هم که راحته . با دستور gotoxy هم ميشد يه کارايي کرد ولي يه خورده غير استاندارده و نمي دونم کامپايلرهاي جديد ازش پشتيباني مي کنن يا نه .


نه منظورم cin بود ...

ولی حالا که در مورد cout حرف زدی، یه کم توضیح بده چه جوری باید از همین ها استفاده کرد؟
مثلا این طوری باید ازش استفاده کرد؟



cout<< \r


یعنی این دستور باعث میشه به اول خط جاری بریم؟
حالا اگر دوباره بخواهیم در خروجی های چاپ شده جلو بریم باید چه کار کنیم؟


حالا بر گردیم سر سوال اصلی:
فرض کنید ما متن زیر را برای جریان ورودی داشته باشیم:


x y z m n


حالا ما دو بار از دستور ورودی استفاده می کنیم و علامتگذار خواندن روی Z قرار می گیره...
ما با استفاده از تابع ignore می تونیم از مقدار های بعدی صرفه نظر کنیم و در واقع علامتگذار را به جلو منتقل کنیم
مثل این مورد که باعث میشه علامتگذار را به اندازه دو بار cin کردن جلو ببره یا تا رسیدن به کارکتر n جلو بره ...


cin.ignore(2,'n')


حلا فرض کنید که علامتگذار روی n باشه و بخواهیم آن را به عقب(مثلا روی y ) برگردانیم. حالا باید چی کار کنیم؟

sin2x=2sinxcosx
05-08-2009, 16:54
یعنی این دستور باعث میشه به اول خط جاری بریم؟


بله . البته بايد داخل گيومه باشه .

برگرديم روي y که چي بشه ؟ ignore جلو نميره که شما بخواين با يه دستور ديگه به عقب برگردين . ignore از يک کاراکتر ( يا چند کاراکتر ) ورودي صرفنظر مي کنه . اين معني اش جلو رفتنه ؟ به نظرتون سوالتون منطقيه ؟ برگرديم دوباره y رو بخونيم ؟

lord_ashkan_z
05-08-2009, 19:03
منطقی بودن یا نبودنش در کارایی اش مشخص میشه ...

بگذریم...

از gotoxy چه طوری باید استفاده کرد؟
این دستور در cout عقب می بره یا جلو؟

дŁ!ЯêŽд
05-08-2009, 21:27
کسی از دوستان نبود برای حل برج هانوی به ما کمک کنه؟؟؟؟؟؟؟

sin2x=2sinxcosx
05-08-2009, 21:44
منطقی بودن یا نبودنش در کارایی اش مشخص میشه ...


!!!!!



از gotoxy چه طوری باید استفاده کرد؟
این دستور در cout عقب می بره یا جلو؟

همه جا . ولي گفتم ؛ تو کامپايلرهاي جديد اين قابليت برداشته شده . شما به اين تابع دو تا عدد ميدي که مکان نما رو تو اون مختصات قرار مي ده .

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

дŁ!ЯêŽд
05-08-2009, 23:11
کسی از دوستان نبود در مورد برج هانوی به ما کمکی کنه؟

lord_ashkan_z
05-08-2009, 23:43
همه جا . ولي گفتم ؛ تو کامپايلرهاي جديد اين قابليت برداشته شده . شما به اين تابع دو تا عدد ميدي که مکان نما رو تو اون مختصات قرار مي ده .


مگه می خوای شکل رسم کنی که مکان نما رو به مختصات مورد نظر ببره؟
اصلا چه جوری باید بفهمی اون بخش از متن چاپ شده که می خوای تغییر بدی، چه مختصاتی داره؟
؟؟؟
؟؟؟
؟؟؟

sin2x=2sinxcosx
05-08-2009, 23:55
مگه می خوای شکل رسم کنی که مکان نما رو به مختصات مورد نظر ببره؟
اصلا چه جوری باید بفهمی اون بخش از متن چاپ شده که می خوای تغییر بدی، چه مختصاتی داره؟
؟؟؟
؟؟؟
؟؟؟


بي خيال دوست عزيز . اونو مي تونين از جناب بيارنه استراستروپ بپرسين .
يه جوري مي گين انگار من تابع gotoxy رو تو ++C پياده سازي کردم که حالا دارين منو مواخذه مي کنين .

lord_ashkan_z
06-08-2009, 14:06
بي خيال دوست عزيز . اونو مي تونين از جناب بيارنه استراستروپ بپرسين .
يه جوري مي گين انگار من تابع gotoxy رو تو ++C پياده سازي کردم که حالا دارين منو مواخذه مي کنين .

چرا می زنی؟...
من که چیزی نگفتم!


فکر نکنم ایشون هم بتونن کمک کنند...

چون از موقع ایجاد این زبان تا حالا خیلی تغییر کرده ...! :دی

lord_ashkan_z
08-08-2009, 02:53
یه سوال بامزه:


تا حالا شده که بخواهید متغیری به اسم C اعلان کنید؟
اون وقت اگر بخواهید با دستور "++" مقدارش را یک واحد افزایش دهید میشه: C++ :دی

آیا کلمه C++ در کامپایلر یک کلمه ی رزو شده هست؟ و در صورت استفاده از اون دچار مشکل میشیم؟

IP007
08-08-2009, 07:00
نه نمیشیم. بهتر نیست اول امتحان کنید بعد بپرسید؟؟؟

lord_ashkan_z
08-08-2009, 10:31
نه نمیشه ...

چون من فقط برنامه نویسی را می خونم. و کامپایلرش را نصب نکردم و ندارم ...

هر وقت هم می خوام برنامه ای بنویسم، توی کاغذ می نویسم و با کد نوشته شده توی کتاب مقایسه می کنم ببینم که درست هست یا نه!

G.D.ragon.Ir
08-08-2009, 15:52
سلام. یک سوال داشتم. موقع دیباگ کردن برنامه زیر, پیغامی داده میشه. ممنون میشم اگه راهنمایی کنید.

کد برنامه (عینآ از کتاب است):
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

پیغام:
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

sltavakoli
08-08-2009, 23:34
نه نمیشه ...

چون من فقط برنامه نویسی را می خونم. و کامپایلرش را نصب نکردم و ندارم ...

هر وقت هم می خوام برنامه ای بنویسم، توی کاغذ می نویسم و با کد نوشته شده توی کتاب مقایسه می کنم ببینم که درست هست یا نه!

فکر نمیکنم کار درستی باشه.همین جوری یاد میکیری که چی؟نمیخوای استفاده کنی؟

در ضمن این که کد رو مثل کتاب بنویسید بعد ببینید درسته یا نه کار اشتباهی هست.

برای نوشتن یه برنامه خیلی خیلی راه وجود داره.اما فقط همیشه یه راه حل منطقی بیشتر وجوود نداره.در اول راه

هم همیشه نباید دنبال راه منطقی بود.باید تجربه کرد.

راستی من تا حالا با C کار نکردم اصلا.یعنی خوشم نمیاد ازش.عشق است Python ..... :31: :18: :10: :11:

Ar@m
09-08-2009, 00:07
سلام. یک سوال داشتم. موقع دیباگ کردن برنامه زیر, پیغامی داده میشه. ممنون میشم اگه راهنمایی کنید.

کد برنامه (عینآ از کتاب است):
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

پیغام:
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

از visual studio 2005 استفاده مي كني؟
اگه آره يه پك داره كه بايد روش نصب كني اين مشكل برطرف ميشه

G.D.ragon.Ir
10-08-2009, 06:44
از visual studio 2005 استفاده مي كني؟
اگه آره يه پك داره كه بايد روش نصب كني اين مشكل برطرف ميشه
نه, از visual studio 2008 استفاده مي كنم

hoax3r
10-08-2009, 13:32
سلام. یک سوال داشتم. موقع دیباگ کردن برنامه زیر, پیغامی داده میشه. ممنون میشم اگه راهنمایی کنید.

کد برنامه (عینآ از کتاب است):
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

پیغام:
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

تیک do not show this dialog again رو بزن بعد هم yes بزن ببین چی میشه
کدتون رو هم به این تغییر بدین کتابی که استفاده میکنید به نظر یه مقدار قدیمی میاد با کامپایلر های جدید ناسازگاره

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

G.D.ragon.Ir
10-08-2009, 15:06
تیک do not show this dialog again رو بزن بعد هم yes بزن ببین چی میشه
کدتون رو هم به این تغییر بدین کتابی که استفاده میکنید به نظر یه مقدار قدیمی میاد با کامپایلر های جدید ناسازگاره

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
همونطور که شما گفتید, ظاهرآ مشکل از کدهای کتاب و عدم سازگاری با کامپایلرمه (تو کتاب و در بخش کامپایلر نوشته: ویژوال ++C از هر نسخه ای ! )
کدهای شما هم بدون مشکل اجرا شد. ممنون :11:
در مورد کتابم باید بگم که,تالیف "جعفر نژاد قمی" است (چاپ: بهار 1388). چون قبلآ فقط VB کار کرده بودم و بخاطر قابل فهم بودن, بین کتاب مربوطه و "دایتل", دوستان این کتاب رو پیشنهاد کردند.

در هر صورت ممنون بابت توضیحاتتون:10:

sin2x=2sinxcosx
15-08-2009, 12:23
چرا می زنی؟...
من که چیزی نگفتم!


فکر نکنم ایشون هم بتونن کمک کنند...

چون از موقع ایجاد این زبان تا حالا خیلی تغییر کرده ...! :دی


کجا زدم دوست عزيز ؟ مگه من چيزي گفتم ؟ :20:

sia abedi
15-08-2009, 14:08
با سلام
ميشه ازتون بخوام توابع عضو ثابت كلاس(همون constخودمون)و كلمه‌ي كليدي mutableرا به طور كامل توضيح بده

sin2x=2sinxcosx
15-08-2009, 15:40
با سلام
ميشه ازتون بخوام توابع عضو ثابت كلاس(همون constخودمون)و كلمه‌ي كليدي mutableرا به طور كامل توضيح بده

بله ميشه .
در مورد const تو اينجا يه چيزايي گفتم :


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

اما در مورد کلمه کليدي mutable
اين کلمه کليدي به اصطلاح يک Storage Class هست . 5 تا کلاس حافظه يا Storage Class تو ++C داريم :
auto - register - extern - static - mutable
mutable هميشه با کلاس ها استفاده ميشه .
براي چي ؟
مي دونين که توابع عضو const نمي تونن داده هاي عضو يک شيء رو تغيير بدن . اگه يه داده عضو کلاس به صورت mutable تعريف بشه ، اين داده عضو هميشه قابل تغييره . حتي توسط توابع عضو const . :46:

براي تعريف يه متغير به صورت mutable کافيه اين کلمه کليدي رو قبل از نوع داده اي بياريم :

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

ehsan_wwe
16-08-2009, 16:33
راستی من میخوام به 3d engine development روی بیارم اما یک مشکل دارم چطوری میشه هدر را تو ویژوال سی پلاس پلاس 2008 برای directx SDK تنظیم کرد اصلا این هدر چیه

IP007
17-08-2009, 19:32
توی help خود sdk نحوه ی تنظیم رو نوشته

G.D.ragon.Ir
20-08-2009, 14:45
++C
سلام. برای نوشتن یک برنامه دچار مشکل شدم, ممون میشم اگه راهنمایی کنید.

سوال: برنامه ای بنویسید که یک عدد پنج رقمی را از ورودی دریافت و ارقام آن را جدا کند. سپس هر یک از ارقام را با سه فاصله از هم در خروجی چاپ نماید.

salad
20-08-2009, 15:27
سلام دوستان
من یک سایت یا pdf میگردم که جواب کامل تمارین کتاب برنامه نویسی به زبان c(نه c++) نوشته جعفر نژاد قمی را داشته باشد
دست گلتون درد نکنه

sin2x=2sinxcosx
21-08-2009, 09:24
++C
سلام. برای نوشتن یک برنامه دچار مشکل شدم, ممون میشم اگه راهنمایی کنید.

سوال: برنامه ای بنویسید که یک عدد پنج رقمی را از ورودی دریافت و ارقام آن را جدا کند. سپس هر یک از ارقام را با سه فاصله از هم در خروجی چاپ نماید.

تو کدوم قسمتش دچار مشکل هستين ؟

G.D.ragon.Ir
21-08-2009, 09:50
تو کدوم قسمتش دچار مشکل هستين ؟
جدا کردن ارقام یک عدد پنج رقمی

نکته: از عملگرهای / و % استفاده کنید

sin2x=2sinxcosx
21-08-2009, 10:30
اگه نخوايم از حلقه ها و آرايه ها استفاده کنيم و فقط از دو عملگر / و % استفاده کنيم مي تونيم با روش زير اين کارو بکنيم .

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

يکي يکي ارقام عدد 5 رقمي رو توسط عملگر % جدا مي کنيم و از آخر به اول چاپ مي کنيم .

G.D.ragon.Ir
21-08-2009, 11:11
ممنون میشم اگه درباره قسمتی از برنامه که در زیر گذاشتم, توضیح کامل بدید.

با تشکر

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

sin2x=2sinxcosx
21-08-2009, 11:35
بله حتما .
فرض کنين a رو شما 12345 وارد کردين . وقتي ميگيم a % 10 يعني باقيمانده تقسيم عدد a بر 10 . اين عدد رو که اينجا 5 ميشه داخل a1 ذخيره مي کنيم . يعني اگه شما 12345 رو بر 10 تقسيم کنين باقيمانده اش ميشه 5 . حالا مي نويسيم a /= 10 . اين عبارت معادل a = a / 10 هست . اين کارو مي کنيم تا 5 رو بندازيم دور . يعني اگه a رو بر 10 تقسيم کنيم ميشه 1234 . حالا a ما برابر 1234 شد . حالا باقيمانده اين عدد رو بر 10 تو a2 ذخيره ميکنيم که ميشه 4 و به همين ترتيب .

G.D.ragon.Ir
21-08-2009, 12:38
بازم ممنون. فقط اگه میشه, بگید این عدد 10 رو از کجا و با توجه به چه چیزی آوردید؟

sin2x=2sinxcosx
21-08-2009, 15:42
شما به يه نکته اي که بايد توجه داشته باشين اينه که حاصل تقسيم دو متغير از نوع int تو ++C يه عدد صحيح هست نه اعشاري . مثلا اگه 12 رو بر 10 تقسيم کنيم جواب 1.2 نميشه . بلکه قسمت اعشاري رو ميندازه دور و حاصل 1 ميشه .

G.D.ragon.Ir
21-08-2009, 16:15
فکر کنم منظورم رو خوب بیان نکردم. مثلآ a1 = a % 10 چرا 10, مثلآ 12 یا یک عدد دیگه, نه؟ این 10 از کجا اومده و علتش چیه؟
نمیدونم منظورم رو خوب میروسنم یا نه؟

sin2x=2sinxcosx
21-08-2009, 19:42
ما مي خوايم مثلا عدد 12345 رو بر عددي تقسيم کنيم که باقيمانده اش 5 باشه . و اون عدد هم تنها مي تونه 10 باشه .
مي خوايم عدد 1234 رو بر عددي تقسيم کنيم که باقيمانده اش 4 باشه و ...............

ali zi zeperto
26-08-2009, 19:48
سلام.من یه سوال مربوط به c# دارم.امیدوارم که تاپیک رو اشتباه نیومده باشم.
من خودم از c# هیچی بلد نیستم سوال مال یکی از دوستانمه.
ایشون می خواد که فرمی رو که طراحی کرده پرینت کنه.
مورد دوم هم اینه که قسمتی از فرم رو چاپ کنه.
یه راهنمایی بکنبد که متوجه بشن.من عین مطلب شما رو به ایشون ابلاغ خواهم کرد.:31:خیلی ممنون

ebru gundes021
28-08-2009, 15:33
سلام
کسی درباره معماری سه لایه تو سی شارپ چیزی بلده؟
اگه مقال ای چیزی هم بذارین که دیگه ایول

mehmoomy
01-09-2009, 18:47
تو c++ یه تابع هست که برای تاخیره.یه عدد میگیره به میکرو ثانیه صبر می کنه.اسمش یادم رفته الانم خیلی لازمش دارم.لطفا کمک فوری بفرمایید.

sin2x=2sinxcosx
01-09-2009, 22:01
يه تابعي بود به اسم delay که فکر کنم تو استاندارد ANSI وجود نداره . مي تونين براي تاخير زماني از يه حلقه استفاده کنين که مثلا 20000 بار يه متغير رو ++ مي کنه .

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

mehmoomy
01-09-2009, 22:14
يه تابعي بود به اسم delay که فکر کنم تو استاندارد ANSI وجود نداره . مي تونين براي تاخير زماني از يه حلقه استفاده کنين که مثلا 20000 بار يه متغير رو ++ مي کنه .

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

ara.look
01-09-2009, 22:16
میشه در مورد کتابخانه time یه توضیحی بدین؟
یه سوال دیگه هم دارم اینه که مثلا iostream به عنوان یه کتاب خانه هست یا اسم دیگه ای داره؟
ویا همین time؟
ویا هر چیزی که include میکنیم؟

ali zi zeperto
02-09-2009, 16:29
تو c++ یه تابع هست که برای تاخیره.یه عدد میگیره به میکرو ثانیه صبر می کنه.اسمش یادم رفته الانم خیلی لازمش دارم.لطفا کمک فوری بفرمایید.
به این قطعه کد یه نگاهی بنداز.همون کار delay رو میکنه.سوالی بود در خدمتم

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

میشه در مورد کتابخانه time یه توضیحی بدین؟
یه سوال دیگه هم دارم اینه که مثلا iostream به عنوان یه کتاب خانه هست یا اسم دیگه ای داره؟
ویا همین time؟
ویا هر چیزی که include میکنیم؟

بله کتابخانه است.هر چیزی که شما include می کنین مجموعه ای از توابع از پیش ساخته شده است که شما می تونید در برنامه هاتون ازشون استفاده کنین.این سرفایل ها رو شما هم می تونید بسازید .همین تابع dellay بالا رو شما می تونی یه سرفایل کنی و ازش استفاده کنی.

ara.look
02-09-2009, 19:09
ممنون.
ممنون.

joykiller360
02-09-2009, 21:30
سلام و خسته نباشید.

اگه امکان دارد کدهای لازم برای تعداد کاربران on line در سی شارک را لطف کنید ممنون می شم. :40:

خواهش می کنم کمکم کنید. :11:

samadsam
05-09-2009, 21:37
ببخشید من یه مبتدی هستم و می خواستم از یه جایی شروع کنم اما نمی دونم از کجا حالا از اساتید مجرب درخواست کمک دارم

samadsam
05-09-2009, 21:43
ببخشید من یه مبتدی هستم و می خواستم از یه جایی شروع کنم اما نمی دونم از کجا حالا از اساتید مجرب درخواست کمک دارم

mm45
12-09-2009, 17:19
سلام کد زیر درست اجرا نمی شه
ممکنه کمکم کنید و مشکل را بهم بگید :46:


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

sin2x=2sinxcosx
12-09-2009, 17:57
نميگين قراره برنامه چيکار کنه ؟

G.D.ragon.Ir
24-09-2009, 12:25
سلام. ممنون میشم اگه تغییرات زیر رو تو برنامه بدید. پیشاپیش از کمکتون تشکر میکنم :10:
1- عضو داده دیگری از نوع string به آن اضافه کنید که نمایانگر نام استاد درس باشند.
2-برای تغییر نام استاد, یک تابع set و بازیابی آن, یک تابع get تهیه کنید.
3- سازنده را به گونه ای اصلاح کنید که دو پارامتر را مشخص کند (یک پارامتر, برای نام درس و یک پارامتر, برای نام استاد درس)
4- تابع عضو namayshePeygham را به صورتی اصلاح کنید که ابتدا پیام خوش آمد گویی و نام درس را چاپ کند و سپس عبارت "Ostad" و به دنبال آن نام استاد درس را در خروجی چاپ نماید
کلاس اصلاح شده خود را در برنامه ای به کار برده و قابلیت های جدید آن را آزمایش کنید.

بعضی از قسمت ها رو خودم تغییر دادم اما ممنون میشم اگه شما, کلش رو به دقت چک کنید


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

sin2x=2sinxcosx
24-09-2009, 18:15
سلام . خواهش مي کنم .

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

mehmoomy
25-09-2009, 10:13
سلام.چند تا دستور هست که من اصلا نمی دونم چی هستن و چیکار می کنن.این پایین می ذارمشوناگر کسی می دونه کمک کنه.اینا رو از فایل windows.h کپی کردم.قسمتایی که بولد کردم رو لطف کنید یه توضیح بدید.


#define _windows_h
#if __gnuc__ >=3
#pragma GCC system_header
#endif
#if defined(__i686__) && !defined(_M_IX86)
#elif defined(__i586__) && !defined(_M_IX86)

خیلی ممنون.همون دستورات که بولد شدن کافیه.لینک هم بدید باز هم کافیه.
خیلی ممنون

fam_jam_teh
26-09-2009, 00:11
سلام.چند تا دستور هست که من اصلا نمی دونم چی هستن و چیکار می کنن.این پایین می ذارمشوناگر کسی می دونه کمک کنه.اینا رو از فایل windows.h کپی کردم.قسمتایی که بولد کردم رو لطف کنید یه توضیح بدید.


#define _windows_h
#if __gnuc__ >=3
#pragma GCC system_header
#endif
#if defined(__i686__) && !defined(_M_IX86)
#elif defined(__i586__) && !defined(_M_IX86)


خیلی ممنون.همون دستورات که بولد شدن کافیه.لینک هم بدید باز هم کافیه.



خیلی ممنون




سلام
فکر می کنم مشکل شما با دستور define هست. این دستور کمک می کنه که یک متغیر رو در زمان compile تعریف و مقدار دهی کنیم. این دستور معمولا در ایتدا قرار می گیره.
دستور های if defined هم چک می کنه که آیا یک متغیر define شده یا نه.elif هم که همون else if هست به عبارتی.

mehmoomy
26-09-2009, 10:51
سلام
فکر می کنم مشکل شما با دستور define هست. این دستور کمک می کنه که یک متغیر رو در زمان compile تعریف و مقدار دهی کنیم. این دستور معمولا در ایتدا قرار می گیره.
دستور های if defined هم چک می کنه که آیا یک متغیر define شده یا نه.elif هم که همون else if هست به عبارتی.
#pragma چیه؟

sin2x=2sinxcosx
26-09-2009, 21:32
pragma هم تا اون جايي که من مي دونم باعث ميشه که فايل يا هدر مربوطه بيش از يک بارinclude نشه .

G.D.ragon.Ir
27-09-2009, 08:47
سلام. من تو نوشتن برنامه زیر دچار مشکل شدم. ممنون میشم برنامه من رو اصلاح کنید.

1- ایجاد کلاس با نام Hesab
2- کلاس باید دارای یک عضو داده از نوع int که نمایانگر موجودی حساب است باشد
3-کلاس باید سازنده ای داشته باشد که با دریافت مقدار موجودی, عضو داده را مقدار دهی اولی کند و همچنی این مقدار را تعیین اعتبار کند تا مطمئن شود که این مقدار =< 0 است. درصورتی که مقدار دریافی > از 0 بود, آن را 0 و پیغام خطایی در خروجی چاپ کند.
4- این کلاس باید 3 تابع عضو داشته باشد.
تابع عضو gozashtan باید مقداری را به موجودی فعلی اضافه کنه.
تابع عضو bardashtan باید مقداری را از موجودی برداشت کنه و اگه مقدار درخواستی بیشتر از موجودی بود موجودی دست نخورده باقی و پیغام خطایی نمایش داده شود
تابع عضو getNamaysheMojodi باید مقدار موجودی فعلی رو برگردونه

برنامه ای بنویسید که 2 شی از این کلاس ایجاد و توابع عضو کلاس رو تست کنه.

بازم ممنون و شرمنده:11:

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

ali zi zeperto
27-09-2009, 11:53
اول که تو برنامه ات ۳ بار از mojodi استفاده کردی.یه بار متغیر کلاس یه بار یه عنوان پارامتر داخل تابع عضو یه بار هم توی تابع اصلی به عنوان نام شی.این طوری برای عیب یابی برنامه ات دچار مشکل می شی.

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
اون هدر فایل one.h رو هم نمی دونم چیه که اضافه کردی.خودت بهتر می دونی.


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

G.D.ragon.Ir
27-09-2009, 12:58
نمیدونم چرا ولی کامپایلر موقع کامپایل برنامه خطا میگیره؟! اول بزارید چند سوال بپرسم شاید مشکل از من بود! اون تگ های [left] و [left/] که در ابتدا و انتهای کدهاتون قرار داره, مربوط به انجمن هست دیگه؟ و ربطی به کد شما که نداره, درسته؟ و مسئله دیگه اینکه من برای پروژم 3 فایل تعریف کردم: One.cpp , One.h و Two.cpp و روی همین حساب, کدهای اولتون رو بصورت مجزا در دو فایل One مربوطه ریختم, اگه اشکال از این مورد هم نباشه دیگه... !!!

ali zi zeperto
27-09-2009, 13:21
من برای پروژم 3 فایل تعریف کردم: One.cpp , One.h و Two.cpp و روی همین حساب, کدهای اولتون رو بصورت مجزا در دو فایل One مربوطه ریختم, اگه اشکال از این مورد هم نباشه دیگه...
شما یه قطعه کد گذاشتی و گفتی اصلاح نیاز داره.هیچ حرفی هم از فایل دیگه نزدی.من هم سعی کردم اصلاح کنم.این کد رو من خودم هم کامپایلش نکردم که ببینم درسته یا نه.ولی فکر نمی کنم ایرادی داشته باشه.خودت ببین برنامه ات رو چطوری طراحی کردی و هرقطعه کدی باید کجا باشه.

G.D.ragon.Ir
27-09-2009, 15:16
شما یه قطعه کد گذاشتی و گفتی اصلاح نیاز داره.هیچ حرفی هم از فایل دیگه نزدی.من هم سعی کردم اصلاح کنم.این کد رو من خودم هم کامپایلش نکردم که ببینم درسته یا نه.ولی فکر نمی کنم ایرادی داشته باشه.خودت ببین برنامه ات رو چطوری طراحی کردی و هرقطعه کدی باید کجا باشه.
دوست عزیز, من کدهای سوالم رو تو سه بخش مجزا تو پستم قرار دادم و فکر کردم دوستان متوجه میشن, در غیر اینصورت مثل سری قبل از توضیحات در ابتدا کد استفاده میکردم.
فکر نکنم مشکل از جاگذاری کدهای شما تو فایل های مربوطه باشه. خودم یک کاریش میکنم.
در هر صورت از کمکتوت ممنون

ali zi zeperto
27-09-2009, 16:18
دوست عزیز, من کدهای سوالم رو تو سه بخش مجزا تو پستم قرار دادم و فکر کردم دوستان متوجه میشن, در غیر اینصورت مثل سری قبل از توضیحات در ابتدا کد استفاده میکردم.
فکر نکنم مشکل از جاگذاری کدهای شما تو فایل های مربوطه باشه. خودم یک کاریش میکنم.
در هر صورت از کمکتوت ممنون
عزیز من شما کدت رو در هزار بخش بذار.وقتی توی توضیحات برنامه ای که خواستی تصحیح بشه حتی اشاره ای هم نکردی که این قسمتها تو چند تا فایلن از کجا باید فهمید.
بعد هم من تو همون پست اولی که گذاشتم برای شما نوشتم که فایل one.h رو من نمی دونم چیه که include کردی خودت بهتر می دونی چیه.
از کجا باید فهمید که شما کدوم قسمت از کدی که گذاشتی مربوط به فایل one.h هست یا نه.تو پست بعدش تازه گفتی که ۳ تا فایل توی برنامه ات کار می کنن.
بعد هم این کدی که برات گذاشتم فقط ۲ تا ارور املایی داشت.اگه زحمت می دادی به خودت و یه بار همینطوری که گذاشتم توی یه فایل کامپایلش می کردی می دیدی مشکل از کجاست.

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


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

sin2x=2sinxcosx
27-09-2009, 18:55
سلام. من تو نوشتن برنامه زیر دچار مشکل شدم. ممنون میشم برنامه من رو اصلاح کنید.

1- ایجاد کلاس با نام Hesab
2- کلاس باید دارای یک عضو داده از نوع int که نمایانگر موجودی حساب است باشد
3-کلاس باید سازنده ای داشته باشد که با دریافت مقدار موجودی, عضو داده را مقدار دهی اولی کند و همچنی این مقدار را تعیین اعتبار کند تا مطمئن شود که این مقدار =< 0 است. درصورتی که مقدار دریافی > از 0 بود, آن را 0 و پیغام خطایی در خروجی چاپ کند.
4- این کلاس باید 3 تابع عضو داشته باشد.
تابع عضو gozashtan باید مقداری را به موجودی فعلی اضافه کنه.
تابع عضو bardashtan باید مقداری را از موجودی برداشت کنه و اگه مقدار درخواستی بیشتر از موجودی بود موجودی دست نخورده باقی و پیغام خطایی نمایش داده شود
تابع عضو getNamaysheMojodi باید مقدار موجودی فعلی رو برگردونه

برنامه ای بنویسید که 2 شی از این کلاس ایجاد و توابع عضو کلاس رو تست کنه.

بازم ممنون و شرمنده:11:

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید


ايرداتتون رو مي گم . اگه نتونستين حل کنين بگين تا حل کنم .
تو فايل دومتون :
تو سازنده يه پارامتر همنام با يکي از داده هاي عضو تعريف کردين . اين اشتباهه . به حالت مقداردهيتون هم ايراد مي گيره . اينکه مقدار رو داخل پرانتر بهش بدين . البته اين کار امکان پذير هست ولي نمي دونم فعلا چرا ايراد مي گيره . از روش مساوي استفاده کنين .
توابع گذاشتن و برداشتن قرار نيست چيزي برگردونن . اونا فقط موجودي رو افزايش يا کاهش مي دن . پس اونا رو به جاي int از نوع void تعريف کنين و هيچي رو توش cout نکنين. کار cout‌رو تابع چهارمتون انجام ميده . تو تابع main هم نمي تونين يه شيئي از کلاس رو به تابع گذاشتن و برداشتن پاس بدين . چون اونا int قبول مي کنن نه چيز ديگه .

G.D.ragon.Ir
27-09-2009, 20:14
سلام. ممنون بابت راهنماییهاتون اما متاسفانه... :41: البته بعضی از جاها رو که گفته بودید تغییر دادم و در انتها, براتون میزارم. ممنون میشم جاهای مشکل دار برنامه رو اصلاح و کامل کنید

این کتاب من از مثال های فوق العاده ساده ای برای آموزش استفاده میکنه و درعوض, آخر فصل, چیزهایی میخواد که حتی مشابه اون رو حل نکرده و باعث میشه من اینطوری مزاحم شما بشم. بازم از زحماتتون تشکر میکنم:11: البته از تمرینات این فصل, 3 سوال دیگه مونده که امیدوارم برای حل اونها نیازی نباشه به شما زحمت بدم. بازم ممنون:11:

همنامی پارامتر سازنده با عضو داده و برای مقدار دهی هم از = استفاده کردم

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنیدتوابع گذاشتن و برداشتن رو از نوع void تعریف کردم و داخلشون از cout استفاده نکردم اما تابع گت نمایش موجودی رو...

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنیدشرمنده, درمورد باقی اشکالات برنامه, چیزی جز همونهایی که خودم و اون دوستمون نوشتن به نظرم نرسید

ali zi zeperto
27-09-2009, 22:02
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
این برنامه خودته که اصلاح شده و تو چند تا پست قبل تر برات گذاشته بودم..مث که اصلا توجه نکردی بهش.این رو همه اش رو توی یه فایل بریز و کامپایل کن.من اجراش کردم ارور نداره.
اگر می خوای توی فایلهای خاصی باشه اسم فایلها رو بگو بعد هم بگو می خوای کدوم قسمت توی کدوم فایل باشه .بابا دیگه خودت ماشالله ناشی نیستی.بیتشر توجه کن.
اگه می خوای ارور های برنامه ات رو بدونی باز هم قضیه فرق می کنه.دقیق بگو چی می خوای.
این برنامه توی توابع عضو برداشت و واریز گزارش از موجودی جدید میده.تو تابع نمایش موجودی هم همینطور.
یه بار امتحانش کن.:19:

sin2x=2sinxcosx
28-09-2009, 08:21
سلام. ممنون بابت راهنماییهاتون اما متاسفانه... :41: البته بعضی از جاها رو که گفته بودید تغییر دادم و در انتها, براتون میزارم. ممنون میشم جاهای مشکل دار برنامه رو اصلاح و کامل کنید

این کتاب من از مثال های فوق العاده ساده ای برای آموزش استفاده میکنه و درعوض, آخر فصل, چیزهایی میخواد که حتی مشابه اون رو حل نکرده و باعث میشه من اینطوری مزاحم شما بشم. بازم از زحماتتون تشکر میکنم:11: البته از تمرینات این فصل, 3 سوال دیگه مونده که امیدوارم برای حل اونها نیازی نباشه به شما زحمت بدم. بازم ممنون:11:

همنامی پارامتر سازنده با عضو داده و برای مقدار دهی هم از = استفاده کردم

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنیدتوابع گذاشتن و برداشتن رو از نوع void تعریف کردم و داخلشون از cout استفاده نکردم اما تابع گت نمایش موجودی رو...

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنیدشرمنده, درمورد باقی اشکالات برنامه, چیزی جز همونهایی که خودم و اون دوستمون نوشتن به نظرم نرسید

خواهش مي کنم دوست عزيز ...
برنامه رو تست نکردم . ولي ظاهرا ايرادي نداره . اگه از تابع main اي که دوستمون گذاشتن استفاده کنين ديگه کار تمومه .
اي کاش برنامه رو که کامپايل کردين و ارور ديدين اون ارور رو يادداشت کرده و اينجا بنويسين تا راحت تر و سريع تر راهنمايي بشه . فکر کنم قبل از اينکه برنامه سالم رو ببينين بهتره بدونين ايراداتتون چي بوده و چجوري حل ميشه تا براتون تجربه بشه .
موفق باشين ...

G.D.ragon.Ir
28-09-2009, 10:12
بلاخره برای پروژه تک فایل, تونستم برنامه رو کامل کنم اما برای پروژه 3 فایل, با اینکه از همون برنامه تک فایل پیرووی کردم اما بازم خطا میده (گذارش اون رو در انتها براتون میزارم)
تنها مشکل برنامه تک فایل, اینه که کلمه "میباشد" رو در انتهای پیغام تابع "گت نمایش موجودی" نمایش نمیده؟ و مسئله دیگه اینکه من فقط یک شی از کلاس مربوطه ایجاد کردم چون شی دوم اصلآ تو برنامه استفاده نشد درصورتی که در سوال, 2 شی درخواست کرده؟

این کدهای برنامه در یک فایل:

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

و این هم کدهای برنامه در پروژه اصلی با 3 فایل

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

اینم گزارش
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

dante3
02-10-2009, 12:24
دوستان لطفا یکی کمک کنه.
توی c چه جوری میشه کاما بالای حرف زد مثلا اینجا:

cha=a;cha<f

sin2x=2sinxcosx
02-10-2009, 14:12
بلاخره برای پروژه تک فایل, تونستم برنامه رو کامل کنم اما برای پروژه 3 فایل, با اینکه از همون برنامه تک فایل پیرووی کردم اما بازم خطا میده (گذارش اون رو در انتها براتون میزارم)
تنها مشکل برنامه تک فایل, اینه که کلمه "میباشد" رو در انتهای پیغام تابع "گت نمایش موجودی" نمایش نمیده؟ و مسئله دیگه اینکه من فقط یک شی از کلاس مربوطه ایجاد کردم چون شی دوم اصلآ تو برنامه استفاده نشد درصورتی که در سوال, 2 شی درخواست کرده؟

چاپ نکردن کلمه mibashad به اين خاطره که قبل از اون يه چيزي از تابع return کردين . وقتي اجراي تابع به اولين return برسه ، اجراي تابع تموم ميشه و به دستورات بعدي نمي رسه .
در مورد سوال دوم هم خب شما دو شيء بگيرين . چه فرقي مي کنه .
اين خطاهايي هم که کامپايلر گرفته Syntax Error‌ نيست . شما اسم اون سه تا فايلتون چي هستن ؟

sin2x=2sinxcosx
02-10-2009, 14:13
دوستان لطفا یکی کمک کنه.
توی c چه جوری میشه کاما بالای حرف زد مثلا اینجا:

cha=a;cha<f

يعني چجوري سمي کالن نوشت ؟
متوجه سوال نشدم .

dante3
02-10-2009, 15:05
يعني چجوري سمي کالن نوشت ؟
متوجه سوال نشدم .

اخه اسمش را هم نمی دونم .این سمی کالن را می تونید برام تایپ کنید شاید همو.ن باشه که من می خوام.
for(cha=a;cha<=f;cha++)
تو خط بالایی دور a وf باید یه علامتی بزاریم . نمی دونم چه جوری باید قرار بدم.

ali zi zeperto
02-10-2009, 16:47
اخه اسمش را هم نمی دونم .این سمی کالن را می تونید برام تایپ کنید شاید همو.ن باشه که من می خوام.
for(cha=a;cha<=f;cha++)
تو خط بالایی دور a وf باید یه علامتی بزاریم . نمی دونم چه جوری باید قرار بدم.

for(cha = 'a' ; cha < 'f' ; cha++)
شما منظورت ' کوتیشن' ه.
برای کاراکتر ها از کوتیشن استفاده می کنن
و برای رشته ها از " دابل کوتیشن".

mahsa_okay
16-10-2009, 11:20
بچه ها من يه سوال دارم نميدونم کجا بايد مطرحش کنم؟! الگوريتم تفريق اعداد با علامت چيه؟ خواهش ميکنم کمکم کنيد اگه تا فردا تحويلش ندم بيچاره ميشم

iraj_astara
16-10-2009, 12:37
سلام یه سوال در ساختمان داده دارم
تابع هایی که بر روی رشته ها کار میکنند(حذف زیر رشته یا درج یا..........) کدومشون تابع غیر اولیه هستن، یعتی میتونن با چند تابع دیگه ساخته بشن؟
در صورت امکان دستور برنامه نویسیش رو هم قرار بدین ممنون

sin2x=2sinxcosx
16-10-2009, 12:49
سلام یه سوال در ساختمان داده دارم
تابع هایی که بر روی رشته ها کار میکنند(حذف زیر رشته یا درج یا..........) کدومشون تابع غیر اولیه هستن، یعتی میتونن با چند تابع دیگه ساخته بشن؟
در صورت امکان دستور برنامه نویسیش رو هم قرار بدین ممنون


سلام .
منظورتون از تابع اوليه و غيراوليه چيه ؟ با چند تابع ديگه ساخته بشن ؟ لطفا يه کم واضح تر ادامه بدين .

iraj_astara
16-10-2009, 12:54
سلام .
منظورتون از تابع اوليه و غيراوليه چيه ؟ با چند تابع ديگه ساخته بشن ؟ لطفا يه کم واضح تر ادامه بدين .

مثلا از ترکیب چند تابع ، تابع حذف کردن رشته ساخته بشه

یا از ترکیب چند تابع ، با اینکه تابع تعیین طول رشته وجود داره ، از راه دیگه ایی یه همچین تابعی بسازیم ، یا این تابع تعیین طول رشته از چه تابع هایی در صورت غیر اولیه بودن ساخته شده

غیر اولیه بودن یعنی اینکه خود برنامه چنین امکانی نداشته باشه مثلا درج رشته ، و ما خودمون بسازیم
(البته این تابع هایی که به کار بردم مثال بودم ، دنبال این میگردم که چه تابع هایی رو از طریق ترکیب یا ....... در کار با رشته ها میشه ساخت؟

sin2x=2sinxcosx
16-10-2009, 13:02
خب اين که راحته . مثلا براي تعيين طول رشته :

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

mahsa_okay
16-10-2009, 14:00
کسي نبود جواب مارو بده؟؟؟؟

ali zi zeperto
16-10-2009, 14:48
بچه ها من يه سوال دارم نميدونم کجا بايد مطرحش کنم؟! الگوريتم تفريق اعداد با علامت چيه؟ خواهش ميکنم کمکم کنيد اگه تا فردا تحويلش ندم بيچاره ميشم
یعنی جی؟مکمل دو رو می خوای پیاده کنی؟

sin2x=2sinxcosx
16-10-2009, 16:45
یعنی جی؟مکمل دو رو می خوای پیاده کنی؟

نه منظورش اينه که الگوريتم تفريق رو رقم به رقم پياده سازي کنيم .