📚 درس و تست کامپیوتر💻
رفتن به کانال در Telegram
🔶گروه پرسش و پاسخ: 🔹https://t.me/darstestcomputer 🔶ادمین : 🔹@mojtaba_moradi_74 🔹مهم ترین نکات آزمون های استخدامی 🔹تست های دروس تخصصی 🔹تدریس و یادآوری نکات مهم 🔹فایل PDF همه کتاب ها 🔹معرفی بهترین منابع ، مشاوره درسی
نمایش بیشتر2 515
مشترکین
-124 ساعت
+87 روز
+830 روز
آرشیو پست ها
#برنامه_نویسی
دستور typedef :
با این دستور میتوان یک نام مجازی به یک نوع داده ای داد ، یا نامی جدید برای نوعی از پیش تعریف شده ایجاد کرد ، در انتهای دستور typedef حتما باید سمی کالن بگذاریم . استفاده از این دستور باعث میشود قابلیت حمل برنامه زیاد شود .
مثال
typedef int add ;
add n ;
int k ;
خط اول نام مجازی add رو به نوع int میده ؛
خط دوم متغیری صحیح بنام n تعریف میکنه
و خط سوم هم متغیری صحیح بنام k تعریف میکنه ، یعنی هنوز int معتبر هست .
#برنامه_نویسی
نکته :
اگر رشته جلوی define# بیش از یک خط شد باید در انتهای خط کارکتر
\ قرار داده شود تا مشخص شود متن بعدی ادامه همین خط است#برنامه_نویسی
به دستوراتی که با # شروع میشوند ، دستورات پیش پردازنده میگویند ، این دستورات مربوط به کامپایلر هستند و به زبان ماشین تبدیل نمیشوند .
پیش پردازنده یک برنامه سیستمی است که قبل از انجام عمل ترجمه توسط کامپایلر تغییراتی در برنامه منبع (سورس) پدید می آورد
اگر بعد از ثابت const دیتاتایپی نوشته نشود ؛ از نوع int در نظر گرفته میشود
#برنامه_نویسی
ثابتی که با define# تعریف میشود ، فضایی اشغال نمیکند ولی ثابتی که با const تعریف می شود در واقع متغیری است که نمیتوان مقدار آنرا تغییر داد .
#برنامه_نویسی
محاسبه مساحت دایره با دستور define#
با دستور define # میتوان به یک مقدار ثابت ، اسمی مجازی داد .
یعنی در این برنامه هروقت کامپایلر به p برخورد کنه ، بجاش عدد 3.14 میذاره .
آخر تعریف دستور define# نباید ; سمی کالن بگذاریم
نکته : p متغییر نیست و حافظه ای را اشغال نمیکند و نمیتوان مانند متغییرها مقدار آنرا تغییر داد .
به هر مقدار ثابتی که با define# تعریف شود ، ماکرو میگویند .
از یک ماکرو میتوان برای تعریف ماکروهای دیگر استفاده کرد . مثلا
#define one 1
#define two one+one
...
#برنامه_نویسی
جمع بندی کلی ؛
برای «خواندن کاراکتر» از دستورات
getch ();
getche ();
getchar ();
استفاده میشود
برای نمایش کاراکتر از دستور ;()putchar
استفاده میشود
همچنین
برای «خواندن رشته» از دستورات
cin.get (طول رشته,نام رشته)
gets (نام رشته)
استفاده میشود و برای نمایش رشته از دستور puts استفاده میشود
راه دوم ، استفاده از توابع gets برای خواندن رشته ای از کارکتر ها (حتی فاصله) و puts برای نمایش رشته ای از کارکتر ها است .
برای رفع این مشکل ؛ ابتدا فایل cstring را در هدرفایل include میکنیم سپس از تابع
cin.get (طول رشته , نام رشته)
استفاده میکنیم .
#برنامه_نویسی
در وارد کردن رشته به ارایه ی کارکتری ، عملیات هنگامی خاتمه میابد که کامپیوتر به blank (خط فاصله) یا کد Enter برخورد کند .
اینجا کلمه ali reza رو با فاصله نوشتیم و فقط رشته ali در آرایه x ذخیره شد
#برنامه_نویسی
دستور دوم خواند کارکتر getche است
در این دستور نیازی به فشردن دکمه Enter نداریم
دقت کنید getche کارکتری که کاربر وارد میکنه رو نمایش میده و در متغیر x ذخیره میکنه ، درواقع e آخره کلمه getche یعنی اکو .
این دستور سریعا اولین کارکتر رو تو متغیر x ذخیره میکنه و نمیذاره کارکتر بیشتری وارد کنیم !
اینجا a اول بخاطر خاصیت اکو هست و a دوم بخاطر دستور cout خود به خود چاپ شده !
دستور دیگری بنام getch داریم که اون هم نیازی به فشردن دکمه Enter نداره و فقط کارکتر رو ذخیره میکنه ، یعنی کارکتری که کاربر وارد میکنه رو نمایش نمیده !
#برنامه_نویسی
از دستور getchar برای خواندن کارکتر استفاده میشود . نحوه کارکرد این دستور طوری هست که باید حتما پس از آن کلید Enter را فشار دهیم .
خودمونی تر بخوایم بگیم ؛ هرچقدر کارکتر وارد کنیم ، فقط اولین کارکتر رو میگیره و هر وقت Enter رو بزنیم اون کارکتر رو میندازه تو متغیره X
#برنامه_نویسی
کارکتر r\ مکان نما را به اول همان خط میبرد
کارکتر b\ مشابه زدن backspace عمل میکند
#برنامه_نویسی
در همین مثال اگر قسمت اعشاری را حذف کنیم نتیجه این هست که کامپیوتر عددی که با 0 شروع میشه رو بصورت اکتال میخونه و اول این عدد 056 رو از مبنای 8 به مبنای 10 میبره و بعد نمایشش میده !
6×8^0 = 6
5×8^1 = 40
6 + 40 = 46
#برنامه_نویسی
در این مثال هیچ پیغام خطایی رخ نمیدهد ، چون عدد 056.34 بصورت یک عدد اعشاری درنظر گرفته میشود نه اکتال!
پس از نسبت دادن عدد اعشاری به عدد صحیح ، قسمت اعشاری و صفره قبل از عددها حذف میشود و عدد 56 نمایش داده میشود
#برنامه_نویسی
مقادیر صحیح در سه مبنای
10 (دسی)
8 (اکتال)
16 ( هگزادسیمال)
نمایش داده میشوند ، اعداد دسیمال نباید با صفر شروع شوند ، چون اعداد اکتال با صفر شروع میشود . مثلا 013 عددی در مبنای 8 است و معادل دسیمال آن 11 میباشد چون
3×8^0 = 3
1×8^1 = 8
0×8^2 = 0
3+8+0=11
همچنین قبل از اعداد در مبنای 16 ، از علامت 0x استفاده میشود
مثال :
مقدار 0BE3 باعث پیغام خطلا میشود چون صفر دارد اما x ندارد .
مقدار 0x12.43 باعث پیغام خطا میشود چون نقطه دارد
#برنامه_نویسی
در زبان سی پلاس پلاس ، نوع string نداریم و تعریف رشته به کمک آرایه ای از کارکترها صورت میگیرد .
#برنامه_نویسی
در تعریف متغییر های دارای پیشوند ، اگر قبل از نام متغیر نوعی نگذاریم کامپیوتر آنرا بصورت پیش فرض از نوع int در نظر میگیرد
unsignet a معادل unsigned int a
long a معادل long int a
#برنامه_نویسی
در زبان سی پلاس پلاس نوع wchar_t برای معرفی کارکتر های عریض بکار میرود
پیشوندهای تغییردهنده نوع (type modifier)
انواع modifier عبارت اند از :
short , long , unsigned , signed
نکته : unsigned و signed فقط با int و char بکار میروند و اگر آنها را پشت نوع float یا double بنویسم «خطای کامپایلری» رخ میدهد .
نکته : بصورت پیش فرض متغیری که از نوع int یا char تعریف میشود ، از نوع علامت دار است (signed) یعنی میتواند عدد منفی یا مثبت را در خود ذخیره کند .
اگر قبل از نوعی ، عبارت long نوشته شود معمولا تعداد بایت های رزرو شده برای آن متغییر دوبرابر میشود ، اگر short نوشته شود تعداد بایت های رزرو شده نصف میشوند .
تعداد بایت های رزرو شده توسط نوع های مختلف در کامپیوترهای مختلف با یکدیگر فرق دارند .
