پرش به محتوا

بایگانی

دسته بندی: برنامه نویسی

یک مریخی

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

ادامه مطالعه …

  • Share/Bookmark

عبارت زیر را در نظر بگیرید:

int x = 5 + 3 * 8;

کامپایلر عملگرها را به چه ترتیبی پردازش میکند؟ هر عملگر یک سطح تقدم دارد و عملگرها از ترتیب تقدم بالاتر به پایین تر پردازش میشوند. ضرب، تقسیم و عمل باقیمانده دارای سطح تقدم یکسانی میباشند. به همین ترتیب، عملگرهای جمع و تفریق نیز دارای سطح تقدم یکسان میباشند. ولی سطح عملگرهای ضرب، تقسیم و باقیمانده بالاتر از جمع و تفریق است. پس ضرب، تقسیم و باقیمانده، قبل از جمع و تفریق اتفاق می افتند. پس جمله بالا بصورت زیر در خواهد آمد:
ادامه مطالعه …

  • Share/Bookmark

نوکیا امروز اعلام کرد که چهارچوب Qt را به سیستم عامل Maemo خواهد برد و علت آنرا وجود کشش بازار و درخواست های مشتریان برای محصولاتی مانند N900 عنوان کرد.

ادامه مطالعه …

  • Share/Bookmark

OpenGL چیست؟

کتابخانه باز گرافیکی (OpenGL) برای اولین بار چندین سال پیش در شرکت سیلیکون گرافیکس اختراع شد. OpenGL یک استاندارد باز است. یعنی کتابخانه استانداردی است که توسط یک گروه صنعتی کار شده است. هرکسی که نسخه ای از OpenGL را بسازد، باید به نوعی به این استاندارد پایبند باشد، پس تمام نسخه های OpenGL روی تمام کامپیوترها به یک روش معین کار میکنند. استاندارد اجازه ایجاد مقداری تغییرات را میدهد ولی حتماً نیازی نیست از این امکانات استفاده کنید.

OpenGL کد لازم برای کارهای گرافیکی مهم را برای من و شما فراهم میکند. برای مثال، به برنامه ما امکان میدهد تا به سادگی طرح های بیتی و شکل های هندسی (دوایر، مستطیل ها و …) را به بافر بازی هدایت کنیم. وقتی فریم نهایی آماده شد، برنامه ما به راحتی میتواند بافر را پیش و پس کند تا فریم ها رو روی صفحه نمایش دهد.

برنامه نویسی با OpenGL سخت نیست. بعد از کمی مقدمه، شما بصورت حرفه ای از آن استفاده خواهید کرد. متاسفانه، یکی از سخت ترین کارهایی که باید در زمینه OpenGL انجام داد این است که باید آنرا در ویندوز راه انداخت.

OpenAL چیست؟

مانند OpenGL، کتابخانه باز صوتی (OpenAL) نیز یک استاندارد باز است. OpenAL به بازیهای ما امکان پخش و میکس صدا را میدهد. میکس کردن صداها برای بدست آوردن جلوه های ویژه حیاتی است. اگر دو کاراکتر داشته باشید که شلیک میکنند، قطعاً میخواهید هر دو صدای شلیک را داشته باشید. برای انجام این کار، بازی شما باید دو صدا را باهم در بافر حافظه میکس کند و سپس محتویات بافر را پخش کند.

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

OpenGL، OpenAL و DirectX

مایکروسافت نیز کتابخانه ای برای کارهای گرافیکی، صوتی و دیگر موارد مربوط به بازی را فراهم کرده است. این کتابخانه DirectX است. کتابخانه گرافیکی DirectX را Direct3D نیز می نامند. کتابخانه صوتی آن نیز DirectSound و DirectMusic نامیده میشوند.

ولی کدامیک بهتر است؟ OpenGL، OpenAL یا DirectX ؟

اگر مبتدی هستید، بهتر یعنی ساده تر. در این مورد، OpenGL و OpenAL بهترین انتخاب خواهند بود. DirectX پیچیده است. هیچ چیز ساده ای در آن وجود ندارد.

اگر یک برنامه نویس وارد C++ باشید و قبلاً کارهای گرافیکی نیز انجام داده باشید، DirectX انتخاب بهتری است. بدین ترتیب گرافیک و صدای بی نظیری بدست خواهید آورد. OpenGL و OpenAL ابزارهای حرفه ای مورد استفاده در بازیهای واقعی میباشند. با این وجود، نباید از آنها انتظار گرافیک فوق العاده و بازدهی بالا داشت در مقایسه با DirectX داشت.

بسیاری از بازیهای خوب، نیازی به گرافیک و صدای عالی ندارند. بازیهای حرفه ای مانند WarCraft مدتهاست که از گرافیک دو بعدی استفاده میکنند. WarCraft و بازیهایی مانند آن، به گرافیک بالا نیازی ندارند. میتوانید بازیهایی شبیه آن را به کمک OpenGL و OpenAL بسازید.

خلاصه اینکه OpenGL و OpenAL بهترین نقطه شروع میباشند. بعدها میتوانید برای گرافیک و صدای بالاتر به DirectX مهاجرت کنید. برای اینکه یک برنامه نویس بازی حرفه ای شود، باید دانش بالایی در مورد هردو تکنولوژی OpenGL/OpenAL و DirectX داشته باشید.

  • Share/Bookmark

در C++ پنج عملگر باینری یا دودویی وجود دارد:

۱)      عملگر جمع (+)

۲)      عملگر تفریق (-)

۳)      عملگر ضرب (*)

۴)      عملگر تقسیم (/)

۵)      عملگر باقیمانده (%)

ادامه مطالعه …

  • Share/Bookmark

علاوه بر مشخص کردن، تعریف، ورود و خروج متغیرهای انواع مختلف، میتوان بین متغیرها عملیات ابتدایی ریاضی را نیز انجام داد.

۱-۴-۱- عملگرهای ریاضی یگانی

عملگر یگانی عملگری است که روی یک متغیر کار میکند (عملوند). جدول زیر خلاصه ای از سه عملگر یگانی است :

ادامه مطالعه …

  • Share/Bookmark

بسیاری از پوسته ها، مانند cmd.exe، SH، KSH، CSH و BASH، با اجرای دستورات یا برنامه ها در یک پروسه جدید کار میکنند و نتایج را بصورت متنی به کاربر میدهند. در طی سالها، بسیاری از برنامه های پردازش متن، مانند sed، SWK و PERL توسعه پیدا کردند تا این رابطه را پشتیبانی کنند.

ادامه مطالعه …

  • Share/Bookmark

اینتل با در دست داشتن دو افزونه زبان، ++C را به سوی محاسبات موازی (Parallel Computing) روی پردازنده های چندهسته ای سوق میدهد. بستر++ Cilk که از Cilk Arts در اوایل همین ماه خریداری شده است، بازدهی برنامه ها روی پردازنده های چندهسته ای را به کمک مجموعه ای افزونه های ++C و یک سیستم زمان اجرا افزایش میدهد. این شرکت سه هفته پیش نیز در همین زمینه با در دست گرفتن RapidMind، گامی دیگر در انطباق برنامه های در حال اجرا روی پردازنده های چندهسته ای برداشت.

جیمز ریندرز، مدیر بازاریابی اینتل برای محصولات نرم افزاری، تشریح میکند که استفاده از قدرت پردازنده های چندهسته ای همواره در ذهن اینتل بوده است. شرکت ابزارها و کارهایی برای برنامه سازی چندهسته ای را بطور همزمان انجام داده است که میتوان از آنها به Intel Parallel Studio در ماه می اشاره کرد.

کاری که اینتل با کتابخانه قالب ++Intel Treading Building Blocks C که بخش اعظمی از Intel Parallel Studio میباشد، انجام داده است دقیقاً مانند بستر ++Cilk میباشد. اینتل ++Cilk را با کامپایلرهای C و++ C خود یکپارچه خواهد کرد.

ریندرز میگوید : ” این کار ممکن است تغییر کمی در آنچه ++Cilk امروزی است، بدهد. ممکن است بهینه سازی هایی انجام دهیم، ولی بطور کلی ما از روشی که آنها پیش گرفته اند راضی هستیم و خوشحالیم که نفرات آنها را در کنار خود داشته باشیم“. ریندرز گفت که کامپایلرهای اینتل روش واضحی برای ارائه تکنولوژی ++Cilk به بازار را در پیش گرفته است.

++Cilk و Treading Building Blocks بسیاری از توابع همانند را برای نوشتن برنامه های نرم افزاری دارند، ولی Treading Building Blocks را میتوان روی هر کامپایلر ++C و هر پردازنده ای روی هر سیستم عاملی مورد استفاده قرار داد. ++Cilk کلیدواژه های جدیدی به زبان ++C اضافه کرده است و تدریس و یادگیری آن ساده تر است. تدریس کامپایلرهای اینتل برای استفاده از شکل دستوری ساده تر ++Cilk به برنامه نویس این امکان را میدهد تا کارهای بارزتری در پاراللیسم انجام دهد.

بزرگترین تفاوت ++Cilk و RapidMind به گفته وی این است که تکنولوژی RapidMind روی موازی سازی داده ها کار میکند که متشکل از هر نوع برنامه نویسی است که مقادیر زیادی از داده را پردازش میکند. از این نوع برنامه ها میتوان به محاسبات علمی، پردازش تصاویر، داده های زمین شناسی و دیگر انواع داده اشاره کرد.

به گفته ریندرز اگر شما بطور تخصصی روش مشکل موازی سازی داده ها کار میکنید، به کمک این تکنولوژی کارهای بسیار جالبی انجام خواهید داد. میتوانید مقیاس پذیری بالا و انعطاف پذیری زیادی ذر کد خود داشته باشید. یکی از موارد منحصر بفرد در مورد تکنولوژی RapidMind این است که اگر شما برنامه ای بنویسید و آنرا روی سیستمی که دارای دستورالعملهای SSE است، اجرا کنید، برنامه شما قادر به استفاده از آن قابلیتها خواهد بود.

اینتل تکنولوژی RapidMind را با پروژه تحقیقاتی Ct خود ترکیب خواهد کرد و بدین ترتیب تمام قابلیت های تکنولوژی این دو باهم ترکیب خواهد شد.

  • Share/Bookmark

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

لینک دانلود درس سوم

  • Share/Bookmark

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

لینک دانلود درس دوم

  • Share/Bookmark

دیگر امکانات سایت

آموزشگاه مجازی کتابخانه مجازی نقشه سایت