درود مهمان گرامی! ثبت نام

ساخت بازی

امتیاز موضوع:
  • 0 رأی - میانگین امتیازات: 0
  • 1
  • 2
  • 3
  • 4
  • 5
سوال در مورد C++
#31
Long int : متغیر صحیح از نوع long int ایجاد میشود که حافظه ی ذخیره سازی آن دو برابر نوع int است.
اگه بخوای بهتر درک کنی: فرض کنیم int دو بایت فضا اشغال می کنه پس long int باید 4 بایت فضا اشغال کنه یعنی دو برابر int (پس وقتی برنامه ای می نویسیم که اعداد ما حداکثر 2 بایت اشغال می کنن نیازی به استفاده از نوع long int نیست و لازم نیت بیخود فضای حافظه رو هدر بدیم پس سعی میشه از نوع int استفاده بشه و در صورت نیاز از long int و نوع داده های دیگه)

new : دستوری هست که برای ایجاد یک نمونه جدید از نوع موجود استفاده میشه. مثلا اگه قبلا کلاسی رو با دستور class ایجاد کرده باشیم با new می تونیم یک نمونه از اون کلاس رو ایجاد کنیم .
برای مثال:
توی game maker یا unity یا هر جای دیگه هم همین مفاهیم رو داشتیم .
مثلا هر ابجکت یک کلاس بود و هر چیزی از یک ابجکت که با instance_create توی گیم میکر ایجاد می کردیم یک new یا کپی از اون نمونه ابجکت(یا نمونه کلاس) ایجاد میشد.
یا مثلا توی unity هر gameObject یک کلاس بود و هر بار که یک گیم ابجکت رو create می کردیم در حقیقت داشتیم در پس زمینه کار یک نمونه از اون گیم ابجکت رو new می کردیم.
اینم از دستور new که امیدوارم مفهومشو کامل رسونده باشم.

goto : یک دستور هست برای رفتن به قسمت دلخواه از برنامه که برای یک برچسب یا ادرس داره.
مثال :
این تکه کد فرضی رو رو ببین :
کد php:
{
print(
"ali");
goto 
label_exit;
print(
"salam");
lablel_exit:

در دستورات بالا : فقط ali چاپ میشه. چون با goto از روی دستورات دیگه پرش کردیم به خطی که برچسب label_exit داشت.
اینم از goto smiley

return : برای برگشت دادن یک مقدار یا برگشت به نقطه ی فراخوانی بکار میره.
مثال:
تابعی داریم اینطوری:
کد php:
int sum(int a,int b);
{
return 
a+b;

حالا این تابع رو اینطوری فراخوانی می کنیم:
کد php:
print(sum(2,3)); 
ابتدا 2 به جای a میشینه و سپس 3 به جای b میشینه.
حاصل جمع a+b که 5 میشه برگشت داده میشه به جایی که اسم تابع رو صدا زدیم.
یعنی داخل دستور print مقدار 5 قرار می گیره و به خروجی می ره.
اینم از return smiley
نکته: توابعی که از نوع void (غیر بازگشتی) تعریف می شن return ندارن و اگه بدیم خطا میده.wink

Enum : برای تعریف داده های شمارشی یا به عبارت دیگه محدود کردن یک بازه از ارقام یا حروف بکار می ره. مثال : اعداد بین 2 تا 125 .
می تونیم متغیری تعریف کنیم که مثلا فقط اعداد بی -100 تا +200 رو قبول کنه یا حروف بین h تا y رو قبول کنه یا ....
مثال هاش توی نت هست بگردsmiley

short Signel
double
stract
bool
داده های فوق هم یه چیز تو مایه های int و long int هستن ولی فرقشون توی فضایی هست که اشغال می کنن .
مثلا short int همون int هست ولی نصف میشه(عکس long int)
double جچم بیشتر داره ولی اعداد اعشاری هم می تونیم بدیم بهش(نوع float هم مثل همونه ولی با حداکثر 6 رقم اعشار ب.د فکر می کنم)
من اینا رو درس نمی دم چون توی کامپایلرهای مختلف، ممکنه اواع داده ها size شون فرق کنه واسه همین از help خود نرم افزار بخونید بهتره.
دستور Switch یه جور selec case ویژوال بیسیکی هست که توی C و جاوا و سیشارپ و جاوااسکریپت ، اکشن اسکریپت ، پی اچ پی ، و زبان های از خانواده ی C استفاده بکار می ره.
بهش می گیم ساختار سوئیچ:
از اسمشم پیداست: سوئیچ می کنه روی مقدار یک متغیر
مثال :
کد php:
switch(a)
{
case 
5:print "five";break;
case 
12:print "davazdah";break;
default:

در دستورات بالا متغیر a چک میشه .
اگه 5 بود خروجی میشه five
اگه 12 بود خروجی میشه davazdah
دستور break هم باید توی ته هر شرط باشه چون اگه نباشه بازم میره به خط های بعدی.
اگه هیچ شرطی درست نباشه در حالت پیشرفض دستورات بعد default اجرا میشن
---
اینم از switch smiley

دستور DO : این دستور معمولا توی PASCAL استفاده می شد.
مثلا:
کد:
for i:=1 to 10 DO
begin
writeln("salam");
end;
دستور بالا توی پاسکال باعث میشه 10 بار salam چاپ بشه.
توی دستوران loop هم توی visual basic اینطوری میومد :
کد:
I=0
loop1:
IF I=10 THEN EXIT LOOP
I=I+1
do loop1
فرض کن دستور فوق درست باشه .پس باعث میشه 10 بار حلقه تکرار بشه

break: برای خروج از داخلی ترین ساختار یک حلقه یا برای خروج از ساختاری که بین {} هست بکار می ره.مثل همون switch که گفتم.

continiue: برای خروج از حلقه های تکرار و رفتن به ابتدای حلقه ی تکرار بکار می ره.(مثل توی حلقه ی for هستیم یهویی دوست داریم for تا ته اجرا نشه و بره از ابتدا ی { اجرا بشه.

try و catch با هم میان و دستو CPP و csharp و JAVA هستن که با try به کامپایلر می گیم سعی کن این کار ها رو انجام بدی اگه نتونستی کد قسمت catch رو اجرا کن.
مثال :
کد:
try
{
print "salam"
}
catch
{
print "error";
}
دستور بالا سعی می کنه salam رو چاپ کنه اگه موفق نشد خطا میده (error رو چاپ می کنه)

Using که توی فضای نام ها درس دادم: برای بارگذاری فضای نام در سیشارپ بکار می ره(دستور معادلش توی جاوا import هست . دستور معادل توی پاسکال uses هست. دستور معادل توی زبان سی inlcude هست و الی آخر)
=======

امیدوارم لذت برده باشی. ببخشید اگه دیگه بهتر از این نتونستم یادت بدمteeth
کد:
cout << چاپ مقداری در خورجی ;
cint >> اسم متغیرهایی که با کاما  یا دو تا علامت بزرگتر پشت سر هم از هم جدا میشن و ورودی رو میخونیم میریزیم توشون ;
عملگر & عملگر ادرس هست که در بحث اشاره گرها یا pointers مطرح هست.
متغیر های اشاره گر کاربردهای زیادی دارن که الان نمی رسم بگم ولی کلی اشاره می کنم: برای اشاره به آدرس خاصی از حافظه بکار می رن. یا برای اشاره به قسمتی از حافظه که متغیر دخواه ما توی اون قسمت از حافظه تعریف شده.
مثال :
int *p1
دستور بالا اشاره گر p1 رو تعریف می کنه از نوع int .
این اشاره گر فقط می تونه به حافظه های 2 بایتی اشاره کنه(سلول های 2 بایتی از نوع int طبق تعریف . چون متغیر از نوع int دو بایت اشغال می کنه)
برای دسترسی به محتوای جایی که یک اشاره گر اشاره می کنه باید قبل از اسم اشاره گر علامث ستاره(*) بذاریم.
--
حالا چطوری ازش استفاده کنیم. مثال می زنم:
کد:
{
int b=789;
int *p1;
p1=&b;
*p1=45;
printf(*p1,b);
}
به کد بالا نگاه کنید: خروجی میشه 4545
توضیح :
ابتدا b از نوع int با مقدار اولیه ی 749 تعریف کردم.
سپس اشاره گر p1 حتا نیاز بود از نوع int تعریف کنم چون می خوام متغیر b رو دستکاری کنم چون اونم از نوع int بود نباید یه نوع دیگه بدیم(این نکته هیچوقت یادتون نره: نوع اشاره گر و جایی که اشاره می کنه حتما باید یکی باشه ویلا خطاهای پیش بینی شده و نشده داریم که می تونه خطرناک هم باشه )
سپس آدرس b رو ریختیم توی p1 .
پس می گیم در اصطلاح p1 داره به b اشاره می کنه.
سپس محتوای جایی که p1 اشاره می کرد (محتوای b) رو میذاریم 45 .
سپس محتوای جایی که p1 اشاره می کرد (محتوای همون متغیر ) ، و مقدار داخل b چاپ میشه
چون هر دو به یک جا اشاره می کنن پس دوبار 45 چاپ میشه teeth
--

==> برای اشاره کردن به توابع عضو یک کلاس بکار میره(اینجا برعکس می بینیدش. از تو کتاب یا اینترنت پیدا کنید)
---
بقیه رو خودتون تحقیق کنید زیاد مهم نیستن می تونید کتاب های زیادی رو مطالعه کنید اگه عاشق programmig کاربردی هستید) wink
https://telegram.me/gameoverblog
بیشتر از آنچه برای موفق بودن تلاش می کنی برای با ارزش بودن تلاش کن.آلبرت انیشتین.



پاسخ
 سپاس شده توسط Hamed-razor ، m.babayi574
#32
دوستان سلام

من یکم مبتدیم برای برنامه نویسی تو VS هر چی کتابخونه iostream رو تعریف میکنم بازن دستور cin و cout رو نمیشناسه لطفا کمک
visual S 2013 هم دارم
پاسخ
#33
(12/2/1394، 12:05 عصر)hamid04 نوشته است: دوستان سلام

من یکم مبتدیم برای برنامه نویسی تو VS هر چی کتابخونه iostream رو تعریف میکنم بازن دستور cin و cout رو نمیشناسه لطفا کمک
visual S 2013 هم دارم


using namespace std; رو حتما نذاشتی...c;,g
پاسخ
#34
(12/2/1394، 12:05 عصر)hamid04 نوشته است: دوستان سلام

من یکم مبتدیم برای برنامه نویسی تو VS هر چی کتابخونه iostream رو تعریف میکنم بازن دستور cin و cout رو نمیشناسه لطفا کمک
visual S 2013 هم دارم

خب مبتدی هستی نرو سراع اون برو سراع محیط های ساده تر مثل:
Codeblocks
Dev cpp
لینک مدلای من:
مدل تخت 2 طبقه
مدل میز + صندلی + کامپیوتر

آموزش فارسی کامل 3D Max:
لینک

یادش بخیر:
بیشترین تعداد کاربرانی که به طور همزمان در انجمن حضور داشته اند: 208 کاربر در تاریخ ۶/۸/۱۳۹۱ و ساعت ۰۵:۳۴ عصر بوده است.
پاسخ
#35
یک سوال داشتم در باره این کد
کد:
[align=left]#include <iostream.h>
int main() {
int i,p,mod,n,a;
cout<<"enter number : "<<endl;
cin>>n;
i=1;
p=0;
while (i<=n)
{
mod=n%i;
if (mod==0)
p=p+1;
i++;
}
if (p==2)
cout<<" aval ast ! ";
else
cout<<" aval nist ! ";return 0; }[/align]
اگه میشه این کد رو برام شرح بدین:">:">
مخصوصا خط6و7
اخه اون 0 و 1 چیه؟ohnoohnoohno
این متنو خیلی دوس دارم:
دوستی به تعداد نیست به رفاقته
.
.
..
.
یوسف 7تا برادر داشت .حسین یه عباس.depressed
پاسخ
#36
کدی که نوشتی برای این هست که تشخیص بده عدد دریافتی(که به وسیله دستور cin از ورودی می خونیم و در متغیر n میریزیم) اول هست یا خیر.
ما چنیدن روش برای تشخیص عدد اول داریم.
یکیش جذر هست.
یکیش تقسیم بر اعداد کوچکتر تا نصف اون عدد.
-
کد شما میاد تقسیم رو انجام میده و با استفاده از عملگر درصد(%)باقیمانده(mod) حاصل تقسیم رو بررسی می کنه اگه صفر شد یعنی n بر عدد مربوط بخش پذیر هست.
-
اگه بخش پذیر بود یک شمارنده داره و تعداد مقسوم علیه ها رو میشماره.اگه از 2 بیشتر شد می گه اول نیست وگرنه می گه اول هست.
teeth
https://telegram.me/gameoverblog
بیشتر از آنچه برای موفق بودن تلاش می کنی برای با ارزش بودن تلاش کن.آلبرت انیشتین.



پاسخ
#37
خیلی ممنون ولی مشکل اصلی من همونi=1 وp=0 هستن موضوع اونا چیه؟
من میدونم i و p چیه و لی اون صفر و یک چه موقع کاربرد داره/sadsadsadsad
این متنو خیلی دوس دارم:
دوستی به تعداد نیست به رفاقته
.
.
..
.
یوسف 7تا برادر داشت .حسین یه عباس.depressed
پاسخ
#38
p شمارنده هست دیگه.تعداد مقسوم علیه ها رو می شماره. مگه قرار نیست عدد اول رو تشخیص بدیم؟ خوب باید تعداد مقسوم علیه ها(یعنی اعدادی که اگه n بهشون تقسیم بشه باقیمانده صفر میشه)رو بدست بیاریم دیگه. پس این تعداد رو توی هوا باید بنویسیم؟ توی هوا که نمیشه باید توی یه متغیر بنویسیم اینجا توی p گذاشتیم. چون هر بار یکی بهش اضافه میشه مقدارش تغییر می کنه.پس مقدار اولیه رو اید صفر بگیریم.چون شروع شمارش همیشه صفر هست .. افتاد ؟؟؟؟؟؟x(
i رو از 1 گرفتیم چون تقسیم به صفر معنی نداره که.smiley
https://telegram.me/gameoverblog
بیشتر از آنچه برای موفق بودن تلاش می کنی برای با ارزش بودن تلاش کن.آلبرت انیشتین.



پاسخ
 سپاس شده توسط sinasp
#39
خیلی ممنون ولی من تازه کارم هیچی نمی دونمممممممممممممممممممممم ohnoohnoohnoohnoohnoohnoohno
دعوام نکن اقا سجادdepresseddepresseddepressed
این متنو خیلی دوس دارم:
دوستی به تعداد نیست به رفاقته
.
.
..
.
یوسف 7تا برادر داشت .حسین یه عباس.depressed
پاسخ
 سپاس شده توسط sajjad3011
#40
یه چند تا سوال داشتم ممنون میشم جوابم رو بدین



کد:
int *zptr;
    int *aptr = NULL;
    void *sptr = NULL;
    int number,i;
    int z[5] = {1,2,3,4,5};
    sptr = z;

با توجه به دستورات بالا اشکالات دستورات زیر چیه ؟

کد:
++zptr;
    number = zptr;
number = *zptr [2];

for(i = 0 ; i <= 5 ;i++)
   cout << zptr[i];

اشکالات هر یک ار بخش های زیر را بیابید :
کد:
int *num;
cout << *num;

کد:
short * numptr,result;
void * genericptr = numptr;
result = * genericptr  + 7;
پاسخ


موضوعات مرتبط با این موضوع...
موضوع نویسنده پاسخ بازدید آخرین ارسال
Question سوال در مورد OpenGL Hamed-razor 2 731 4/10/1394، 11:08 عصر
آخرین ارسال: sajjad3011
Information سوال در مورد شروع یادگیری C++ mhs1378 3 1,215 18/7/1392، 12:04 صبح
آخرین ارسال: imans77
  چندتا سوال در مورد C++ 7876 1 1,127 9/6/1392، 02:07 عصر
آخرین ارسال: bazebaz
Question کمک در مورد QT N___F___T 23 4,519 5/2/1392، 10:56 صبح
آخرین ارسال: devil_man
  سوال در مورد ویژوال سی++ Amirns 1 1,257 24/7/1391، 09:34 عصر
آخرین ارسال: mohammadali1375



کاربرانِ درحال بازدید از این موضوع: 1 مهمان