خانه - نرم افزار
عملکرد Scanf C: توضیحات. زبان برنامه نویسی تایپ شده با همه این انواع متغیر چه باید کرد؟

این مقاله تابع scanf() را به طور کلی بدون ارجاع به استاندارد خاصی مورد بحث قرار می دهد، بنابراین داده های هر استاندارد C99، C11، C++11، C++14 در اینجا گنجانده شده است. ممکن است در برخی استانداردها عملکرد متفاوت از مطالب ارائه شده در مقاله باشد.

تابع scanf C - توضیحات

scanf() تابعی است که در فایل هدر stdio.h(C) و cstdio(C++) قرار دارد و به آن ورودی فرمت شده برنامه نیز گفته می شود. scanf کاراکترها را از ورودی استاندارد (stdin) می خواند و آنها را بر اساس فرمت تبدیل می کند، سپس آنها را روی متغیرهای مشخص شده می نویسد. فرمت به این معنی است که داده ها، پس از دریافت، به یک فرم خاص کاهش می یابد. بنابراین، تابع scanf C شرح داده شده است:

scanf("%format"، &variable1[، &variable2،[…]])،

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

برخی از برنامه نویسان توابعی مانند scanf() یا printf() را به دلیل تشابه با زبان های دیگر فراخوانی می کنند.

Scanf به شما اجازه می دهد تا انواع زبان های اصلی را وارد کنید: char، int، float، string و غیره. در مورد متغیرهای نوع رشته، نیازی به نشان دادن علامت آدرس - "&" نیست، زیرا یک متغیر از نوع رشته یک آرایه است و نام آن آدرس اولین عنصر آرایه در حافظه رایانه است. .

قالب ورودی داده یا رشته کنترل

بیایید با نگاهی به مثالی از استفاده از تابع scanf C از توضیحات شروع کنیم.

#عبارتند از int main() (int x; while (scanf("%d"، &x) == 1) printf("%d\n"، x); بازگشت 0؛ //نیاز برای سیستم های لینوکس)

فرمت ورودی از چهار پارامتر زیر تشکیل شده است: نوع %[*][width][modifiers]. در این مورد، علامت و نوع "%" پارامترهای مورد نیاز هستند. یعنی حداقل قالب به این صورت است: "%s"، "%d" و غیره.

به طور کلی، کاراکترهایی که یک رشته قالب را تشکیل می دهند به دو دسته تقسیم می شوند:

  • مشخص کننده های قالب - هر چیزی که با نماد % شروع می شود.
  • کاراکترهای جداکننده یا فضای خالی - اینها فضا، تب (\t)، خط جدید (\n) هستند.
  • کاراکترهای غیر از فضای خالی

عملکرد ممکن است ناامن باشد.

به جای scanf() از scanf_s() استفاده کنید.

(ارسال شده توسط ویژوال استودیو)

تایپ، یا فرمت مشخص کننده ها، یا نویسه های تبدیل، یا نویسه های کنترل

شرح scanf C باید حداقل شامل یک فرمت مشخص کننده باشد که در انتهای عباراتی که با علامت "%" شروع می شوند نشان داده می شود. به برنامه می‌گوید چه نوع داده‌ای را باید در هنگام ورودی، معمولاً از صفحه‌کلید، انتظار داشت. لیستی از تمام مشخص کننده های فرمت در جدول زیر آمده است.

معنی

برنامه منتظر می ماند تا یک کاراکتر وارد شود. متغیری که باید نوشته شود باید از نوع کاراکتر char باشد.

برنامه انتظار دارد یک عدد اعشاری صحیح وارد شود. متغیر باید از نوع int باشد.

برنامه انتظار دارد که یک عدد ممیز شناور به صورت نمایی باشد. متغیر باید از نوع float باشد.

برنامه انتظار دارد که یک عدد ممیز شناور وارد شود. متغیر باید از نوع float باشد.

7

برنامه انتظار دارد که یک عدد ممیز شناور وارد شود. متغیر باید از نوع float باشد.

برنامه انتظار دارد که یک عدد اکتال وارد شود. متغیر باید از نوع int باشد.

برنامه انتظار دارد یک رشته وارد شود. رشته به مجموعه ای از هر کاراکتر تا اولین کاراکتر جداکننده در نظر گرفته می شود. متغیر باید از نوع رشته باشد.

برنامه انتظار دارد یک عدد هگزادسیمال وارد شود. متغیر باید از نوع int باشد.

متغیر انتظار ورودی اشاره گر را دارد. متغیر باید از نوع اشاره گر باشد.

مقدار صحیحی را برای متغیری می نویسد که برابر با تعداد کاراکترهایی است که تاکنون توسط تابع scanf خوانده شده است.

برنامه یک عدد صحیح بدون علامت را می خواند. نوع متغیر باید عدد صحیح بدون علامت باشد.

برنامه انتظار دارد که یک عدد باینری وارد شود. متغیر باید از نوع int باشد.

مجموعه ای از شخصیت های قابل اسکن. برنامه منتظر ورودی کاراکترها از یک استخر محدود مشخص شده بین scanf می ماند و تا زمانی که کاراکترهایی از مجموعه مشخص شده در جریان ورودی وجود داشته باشد کار خواهد کرد.

کاراکترها در رشته قالب

ستاره (*)

ستاره (*) پرچمی است که نشان می دهد عملیات انتساب باید سرکوب شود. یک ستاره بلافاصله بعد از علامت "%" قرار می گیرد. مثلا،

Scanf("%d%*c%d"، &x، &y); //کاراکتر بین دو عدد صحیح را نادیده بگیرید. scanf("%s%*d%s", str, str2); //عدد صحیح بین دو رشته را نادیده بگیرید.

یعنی اگر خط "45-20" را در کنسول وارد کنید، برنامه موارد زیر را انجام می دهد:

  1. به متغیر "x" مقدار 45 اختصاص داده می شود.
  2. به متغیر "y" مقدار 20 اختصاص داده می شود.
  3. و علامت منفی (خط تیره) "-" به لطف "%*c" نادیده گرفته می شود.

عرض (یا عرض میدان)

این یک عدد صحیح بین علامت "%" و مشخص کننده فرمت است که حداکثر تعداد کاراکترهایی را برای خواندن در طول عملیات خواندن فعلی مشخص می کند.

چند نکته مهم را باید در نظر داشت:

  1. scanf در صورت برخورد با یک کاراکتر جداکننده متوقف می شود، حتی اگر 20 کاراکتر را شمرده باشد.
  2. اگر ورودی شامل بیش از 20 کاراکتر باشد، تنها 20 کاراکتر اول در متغیر str نوشته می شود.

اصلاح کننده های نوع (یا دقیق)

اینها پرچم های خاصی هستند که نوع داده های مورد انتظار برای ورودی را تغییر می دهند. پرچم در سمت چپ مشخص کننده نوع مشخص شده است:

  • L یا l (L کوچک) هنگام استفاده از "l" با مشخص کننده های d، i، o، u، x، پرچم به برنامه می گوید که انتظار ورودی از نوع long int را داشته باشد. هنگام استفاده از "l" با مشخص کننده e یا f، پرچم به برنامه می گوید که باید انتظار داشته باشد که مقدار دو برابری وارد شود. استفاده از "L" به برنامه می گوید که مقداری از نوع long double مورد انتظار است. استفاده از "l" با مشخص کننده های "c" و "s" به برنامه می گوید که کاراکترهای دو بایتی از نوع wchar_t مورد انتظار هستند. به عنوان مثال، "%lc"، "%ls"، "%l".
  • h پرچمی است که نوع short را نشان می دهد.
  • hh - نشان می دهد که متغیر یک اشاره گر به مقداری از نوع علامت char یا char بدون علامت است. پرچم را می توان با مشخص کننده های d، i، o، u، x، n استفاده کرد.
  • ll (دو L کوچک) - نشان می دهد که متغیر یک اشاره گر به یک مقدار از نوع signed int یا unsigned long long int است. پرچم با مشخص کننده ها استفاده می شود: d, i, o, u, x, n.
  • j - نشان می دهد که متغیر یک اشاره گر برای تایپ intmax_t یا uintmax_t از فایل هدر stdint.h است. با مشخص کننده ها استفاده می شود: d، i، o، u، x، n.
  • z - نشان می دهد که متغیر یک اشاره گر به نوع size_t است که تعریف آن در stddef.h است. با مشخص کننده ها استفاده می شود: d، i، o، u، x، n.
  • t - نشان می دهد که متغیر یک اشاره گر برای تایپ ptrdiff_t است. تعریف این نوع در stddef.h است. با مشخص کننده ها استفاده می شود: d، i، o، u، x، n.

تصویر با اصلاح کننده ها را می توان با وضوح بیشتری در قالب یک جدول ارائه کرد. این توضیحات scanf C برای برنامه نویسان واضح تر خواهد بود.

شخصیت های دیگر

هر نویسه ای که در قالب با آن مواجه می شود کنار گذاشته می شود. شایان ذکر است که وجود فضای خالی یا کاراکترهای محدودکننده (خط جدید، فاصله، تب) در رشته کنترل می‌تواند منجر به رفتار متفاوت تابع شود. در یک نسخه، scanf() بدون ذخیره کردن هیچ تعداد جداکننده می خواند تا زمانی که با کاراکتری غیر از جداکننده مواجه شود، و در نسخه دیگر، فاصله ها (فقط آنها) اهمیتی ندارند و عبارت "%d + %d" معادل است. به "% d+%d".

مثال ها

بیایید به تعدادی مثال نگاه کنیم تا به شما در فکر کردن و درک دقیق‌تر نحوه عملکرد تابع کمک کند.

Scanf("%3s"، str); //اگر خط "1d2s3d1;3" را در کنسول وارد کنید، فقط "1d2" در str scanf نوشته می شود("%dminus%d", &x, &y); //کاراکترهای منهای بین دو عدد حذف خواهند شد scanf("%5", str); //کاراکترها تا زمانی که 5 مورد از آنها وجود داشته باشد و کاراکترها اعدادی از 0 تا 9 باشند در str وارد می شوند. scanf("%lf", &d); //ورودی مورد انتظار از نوع double scanf("%hd", &x); //انتظار تعدادی از نوع short scanf("%hu", &y); //انتظار تعدادی از نوع scanf کوتاه بدون علامت ("lx", &z); //تعداد مورد انتظار از نوع long int

از مثال های داده شده می توانید ببینید که چگونه عدد مورد انتظار با استفاده از نمادهای مختلف تغییر می کند.

scanf C - توضیحات برای مبتدیان

این بخش برای مبتدیان مفید خواهد بود. اغلب شما نیاز دارید که شرح کاملی از scanf C را در اختیار نداشته باشید، بلکه نیاز به جزئیات نحوه عملکرد عملکرد دارید.

  • عملکرد تا حدودی منسوخ شده است. چندین پیاده سازی مختلف در کتابخانه های نسخه های مختلف وجود دارد. به عنوان مثال، عملکرد scanf بهبود یافته S C، که شرح آن را می توان در وب سایت مایکروسافت یافت.
  • تعداد مشخص کننده ها در قالب باید با تعداد آرگومان های ارسال شده به تابع مطابقت داشته باشد.
  • عناصر جریان ورودی باید فقط با تعیین حروف جدا شوند: فاصله، برگه، خط جدید. کاما، نقطه ویرگول، نقطه و غیره - این کاراکترها جداکننده تابع scanf() نیستند.
  • اگر scanf با یک کاراکتر جداکننده مواجه شود، ورودی متوقف خواهد شد. اگر بیش از یک متغیر برای خواندن وجود داشته باشد، scanf به خواندن متغیر بعدی می‌رود.
  • کوچکترین اختلاف در فرمت داده های ورودی منجر به نتایج غیر قابل پیش بینی از برنامه می شود. خوب است اگر برنامه فقط با یک خطا تمام شود. اما اغلب برنامه به کار خود ادامه می دهد و آن را به اشتباه انجام می دهد.
  • scanf("%20s ..."، ...); اگر جریان ورودی بیش از 20 کاراکتر باشد، scanf 20 کاراکتر اول را می خواند و در صورت مشخص شدن، به خواندن متغیر بعدی پایان می دهد یا ادامه می دهد. تماس scanf بعدی به خواندن جریان ورودی از جایی که تماس scanf قبلی متوقف شد ادامه خواهد داد. اگر در حین خواندن 20 کاراکتر اول با یک کاراکتر جداکننده مواجه شد، scanf کار خود را متوقف می‌کند یا به خواندن متغیر بعدی می‌رود، حتی اگر 20 کاراکتر را برای متغیر اول نخوانده باشد. در این حالت، تمام کاراکترهای شمارش نشده به متغیر بعدی متصل خواهند شد.
  • اگر مجموعه کاراکترهایی که باید اسکن شوند با علامت "^" شروع شود، scanf داده ها را تا زمانی که با یک کاراکتر جداکننده یا یک کاراکتر از مجموعه مواجه شود، می خواند. به عنوان مثال، "%[^A-E1-5]" داده ها را از جریان می خواند تا زمانی که یکی از نویسه های انگلیسی بزرگ A تا E یا یکی از اعداد 1 تا 5 مواجه شود.
  • تابع scanf C، همانطور که توضیح داده شد، عددی برابر با تعداد موفقیت آمیز ورودی ها به متغیرها برمی گرداند. اگر scanf 3 متغیر بنویسد، نتیجه عملکرد موفقیت آمیز تابع، برگرداندن عدد 3 خواهد بود. اگر scanf نتوانست هیچ متغیری بنویسد، نتیجه 0 خواهد بود. همه به دلایلی، نتیجه EOF خواهد بود.
  • اگر تابع scanf() کار خود را به درستی کامل نکرده باشد. به عنوان مثال، scanf("%d"، &x) - یک عدد مورد انتظار بود، اما نمادها به عنوان ورودی دریافت شدند. فراخوانی scanf() بعدی از نقطه‌ای در جریان ورودی که فراخوانی تابع قبلی به پایان رسیده است آغاز می‌شود. برای غلبه بر این مشکل، باید از شر شخصیت های مشکل ساز خلاص شوید. این را می توان برای مثال با فراخوانی scanf("%*s") انجام داد. یعنی تابع یک رشته از کاراکترها را می خواند و آن را دور می اندازد. با این روش هوشمندانه می توانید به وارد کردن داده های مورد نیاز ادامه دهید.
  • برخی از پیاده سازی های scanf() اجازه نمی دهند که از "-" در مجموعه کاراکتر اسکن شود.
  • مشخص کننده "%c" هر کاراکتر از جریان را می خواند. یعنی کاراکتر جداکننده را هم می خواند. برای رد شدن از کاراکتر جداکننده و ادامه خواندن کاراکتر مورد نظر، می توانید از "%1s" استفاده کنید.
  • هنگام استفاده از مشخص کننده "c"، استفاده از عرض "% 10c" قابل قبول است، اما پس از آن باید آرایه ای از عناصر از نوع char را به عنوان متغیر به تابع scanf ارسال کنید.
  • "%" به معنای "همه حروف کوچک الفبای انگلیسی" است و "%" به سادگی به معنای 3 کاراکتر است: "z"، "a"، "-". به عبارت دیگر، کاراکتر "-" تنها زمانی به معنای یک محدوده است که بین دو کاراکتر به ترتیب صحیح ظاهر شود. اگر "-" در انتهای یک عبارت، در ابتدا، یا در ترتیب اشتباه کاراکترها در دو طرف آن باشد، آنگاه به سادگی نشان دهنده یک کاراکتر خط فاصله است، نه یک محدوده.

نتیجه

این توضیح scanf C را به پایان می‌رساند. این یک تابع راحت برای کار در برنامه‌های کوچک و هنگام استفاده از روش برنامه‌نویسی رویه‌ای است. با این حال، اشکال اصلی تعداد خطاهای غیرقابل پیش بینی است که می تواند هنگام استفاده از scanf رخ دهد. بنابراین، بهتر است هنگام برنامه نویسی، توضیحات scanf C را جلوی چشم خود نگه دارید. در پروژه های بزرگ حرفه ای، از iostream ها استفاده می شود زیرا دارای قابلیت های سطح بالاتری هستند، بهتر می توانند خطاها را بگیرند و پردازش کنند و همچنین با حجم قابل توجهی از اطلاعات کار می کنند. همچنین لازم به ذکر است که شرح scanf C به زبان روسی در بسیاری از منابع آنلاین و همچنین نمونه هایی از استفاده از آن با توجه به سن عملکرد موجود است. بنابراین، در صورت لزوم، همیشه می توانید پاسخ را در انجمن های موضوعی پیدا کنید.

کتابخانه استاندارد C/C++ شامل تعدادی عملکرد برای خواندن و نوشتن روی کنسول (صفحه کلید و مانیتور) است. این توابع داده ها را به عنوان یک جریان ساده از کاراکترها می خوانند و می نویسند.

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

تابع خروجی استاندارد printf()

تابع printf() یک تابع خروجی استاندارد است. با استفاده از این تابع می توانید رشته ای از کاراکترها، یک عدد، مقدار یک متغیر را روی صفحه نمایشگر نمایش دهید.

تابع printf() یک نمونه اولیه در stdio.h دارد
int printf(char *control string, ...);

در صورت موفقیت آمیز بودن، printf() تعداد کاراکترهای چاپ شده را برمی گرداند.

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

تابع printf() یک تابع خروجی فرمت شده است. این بدان معناست که در پارامترهای تابع لازم است فرمت داده هایی که خروجی می شود مشخص شود. فرمت داده ها توسط مشخص کننده های قالب مشخص می شود. مشخص کننده قالب با یک کاراکتر % و سپس یک کد قالب شروع می شود.

مشخص کننده های قالب:

٪با سمبل
%d عدد صحیح اعشاری
٪من عدد صحیح اعشاری
%e عدد اعشاری به شکل x.xx e+xx
%E عدد اعشاری به شکل x.xx E+xx
% f
%F عدد ممیز شناور اعشاری xx.xxxx
% g %f یا %e، هر کدام کوتاهتر باشد
%G %F یا %E، هر کدام کوتاهتر باشد
%o عدد اکتال
%s رشته کاراکتر
%u عدد اعشاری بدون علامت
٪ایکس عدد هگزادسیمال
٪ایکس عدد هگزادسیمال
%% سمبل ٪
٪پ اشاره گر
%n اشاره گر

علاوه بر این، اصلاح کننده های l و h را می توان برای دستورات فرمت اعمال کرد.

%ld چاپ طولانی int
%hu تمبر کوتاه بدون امضا
%Lf مهر بلند دوتایی

در مشخص کننده فرمت، پس از نماد % می توان دقت (تعداد ارقام بعد از نقطه اعشار) را مشخص کرد. دقت به صورت زیر تنظیم می شود: %n<код формата>. جایی که n تعداد ارقام بعد از نقطه اعشار و<код формата>- یکی از کدهای داده شده در بالا.

برای مثال، اگر یک متغیر x=10.3563 از نوع float داشته باشیم و بخواهیم مقدار آن را با دقت 3 رقم اعشار نمایش دهیم، باید بنویسیم:

printf("متغیر x = %.3f",x);

نتیجه:
متغیر x = 10.356

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

برای مثال، اگر بنویسید:

printf("%5d",20);

سپس نتیجه به شرح زیر خواهد بود:
20

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

مثلا:

printf("%05d",20);

نتیجه:
00020

علاوه بر مشخص‌کننده‌های قالب داده، خط کنترل ممکن است دارای کاراکترهای کنترلی باشد:

\b BS، پایین
\f صفحه جدید، تغییر صفحه
\n خط جدید، خوراک خط
\r برگشت محموله
\ t جدول بندی افقی
\ v زبانه عمودی
\" دو نقل قول
\" آپستروف
\\ بک اسلش
\0 کاراکتر پوچ، بایت پوچ
علامت
\ N ثابت هشتی
\xN ثابت هگزادسیمال
\? علامت سوال

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

نمونه هایی از برنامه ها

/* مثال 1 */
#عبارتند از

خالی اصلی (باطل)
{
int a,b,c; // اعلام متغیرهای a,b,c
a=5;
b=6;
c=9;
printf("a=%d، b=%d، c=%d",a,b,c);
}

نتیجه برنامه:
a=5، b=6، c=9

/* مثال 2 */
#عبارتند از

خالی اصلی (باطل)
{
شناور x,y,z;

X=10.5;
y=130.67;
z=54;

Printf("مختصات شیء: x:%.2f، y:%.2f، z:%.2f، x، y، z);
}

نتیجه برنامه:
مختصات شیء: x:10.50، y:130.67، z:54.00

/* مثال 3 */
#عبارتند از

void main()
{
int x;

X=5;
printf("x=%d"، x*2);
}

نتیجه برنامه:
x=10

/* مثال 4 */
#عبارتند از

خالی اصلی (باطل)
{
printf("\"متن در نقل قول\"");
printf("\nمیزان اکسیژن: 100%٪");
}

نتیجه برنامه:
"متن در نقل قول"
میزان اکسیژن: 100%

/* مثال 5 */
#عبارتند از

خالی اصلی (باطل)
{
int a;

A=11; // 11 در اعشار برابر با b در هگزادسیمال است
printf("a-dec=%d, a-hex=%X",a,a);
}

نتیجه برنامه:
a-dec=11، a-hex=b

/* مثال 6 */
#عبارتند از

خالی اصلی (باطل)
{
char ch1,ch2,ch3;

Ch1="A";
ch2="B";
ch3="C";

Printf("%c%c%c",ch1,ch2,ch3);
}

نتیجه برنامه:
ABC

/* مثال 7 */
#عبارتند از

خالی اصلی (باطل)
{
char *str="رشته من.";

Printf("این %s است"،str);
}

نتیجه برنامه:
این خط من است.

/* مثال 8 */
#عبارتند از

خالی اصلی (باطل)
{
printf("سلام!\n"); // پس از چاپ، انتقال به یک خط جدید وجود دارد - \n
printf ("اسم من پاول است."); // این در یک خط جدید چاپ خواهد شد
}

نتیجه برنامه:
سلام!
اسم من پاول است.

تابع ورودی استاندارد scanf()

تابع scanf() یک تابع ورودی فرمت شده است. با کمک آن می توانید داده ها را از یک دستگاه ورودی استاندارد (صفحه کلید) وارد کنید. داده های ورودی می توانند اعداد صحیح، اعداد ممیز شناور، کاراکترها، رشته ها و اشاره گرها باشند.

تابع scanf() دارای نمونه اولیه زیر در stdio.h است:
int scanf(char *control string);

تابع تعداد متغیرهایی را که یک مقدار به آنها اختصاص داده شده است برمی گرداند.

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

مشخص کننده های قالب:

هنگام وارد کردن یک رشته با استفاده از تابع scanf() (مشخص کننده فرمت %s)، رشته قبل از اولین فاصله وارد می شود!! آن ها اگر رشته "Hello world!" با استفاده از تابع scanf()


scanf("%s",str);

سپس پس از وارد کردن رشته به دست آمده، که در آرایه str ذخیره می شود، از یک کلمه "Hello" تشکیل می شود. تابع قبل از فضای اول وارد یک رشته می شود! اگر می خواهید رشته هایی را با فاصله وارد کنید، از تابع استفاده کنید

char *gets(char *buf);

با تابع gets() می توانید رشته های کامل را وارد کنید. تابع gets() کاراکترها را از صفحه کلید می خواند تا زمانی که کاراکتر خط جدید (\n) ظاهر شود. وقتی اینتر را فشار می دهید، خود کاراکتر خط جدید ظاهر می شود. تابع یک اشاره گر را به buf برمی گرداند. buf - بافر (حافظه) برای رشته ورودی.

اگرچه gets() موضوع این مقاله نیست، اجازه دهید یک برنامه مثال بنویسیم که به شما امکان می دهد یک خط کامل را از صفحه کلید وارد کنید و آن را روی صفحه نمایش دهید.

#عبارتند از

خالی اصلی (باطل)
{
بافر char; // آرایه (بافر) برای رشته ورودی

دریافت (بافر)؛ // یک خط را وارد کنید و اینتر را فشار دهید
printf("%s", buffer); // خروجی رشته وارد شده به صفحه نمایش
}

یک نکته مهم دیگر! برای وارد کردن داده با استفاده از تابع scanf() باید آدرس های متغیر را به عنوان پارامتر ارسال کند نه خود متغیرها. برای به دست آوردن آدرس یک متغیر، باید قبل از نام متغیر با علامت & (امپرسند) قرار دهید. علامت & به معنای گرفتن آدرس است.

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

بیایید به یک برنامه مثال نگاه کنیم که به ما نشان می دهد چگونه از &

#عبارتند از

خالی اصلی (باطل)
{
int x;

Printf("متغیر x را وارد کنید:");
scanf("%d"،&x);
printf("متغیر x=%d",x);
}

حالا بیایید به خط کنترل تابع scanf() برگردیم. از نو:

int scanf(char *control string);

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

جداکننده‌های بین دو عددی که وارد می‌کنید عبارتند از space، tab یا newline. * بعد از % و قبل از کد قالب (مشخص کننده فرمت) دستور می دهد که نوع داده خوانده شود، اما به آن مقدار اختصاص داده نمی شود.

مثلا:

scanf("%d%*c%d"،&i،&j);

با وارد کردن 50+20، متغیر i روی 50، متغیر j روی 20 تنظیم می شود و کاراکتر + خوانده می شود و نادیده گرفته می شود.

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

مثلا:

scanf("%5s",str);

نشان دهنده نیاز به خواندن 5 کاراکتر اول از جریان ورودی است. اگر 1234567890ABC را وارد کنید، آرایه str فقط شامل 12345 می شود، کاراکترهای باقی مانده نادیده گرفته می شوند. جداکننده ها: فاصله، برگه و خط جدید - هنگام وارد کردن نماد، مانند سایر کاراکترها با آنها رفتار می شود.

اگر کاراکترهای دیگری در رشته کنترل وجود داشته باشد، برای شناسایی و رد شدن کاراکتر مربوطه در نظر گرفته شده است. اپراتور جریان کاراکتر 10plus20

scanf("%dplus%d"،&x،&y);

مقدار 10 را به متغیر x، مقدار 20 را به متغیر y اختصاص می‌دهد و از کاراکترهای بعلاوه به دلیل اینکه در رشته کنترل وجود دارند، صرفنظر می‌کند.

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

#عبارتند از

خالی اصلی (باطل)
{
char str1, str2;
scanf("%%s", str1, str2);
printf("\n%s\n%s",str1,str2);
}
بیایید مجموعه ای از کاراکترها را وارد کنیم:
12345abcdefg456

برنامه روی صفحه نمایش داده می شود:
12345
abcdefg456

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

scanf("%10"، str1);

همچنین می توانید کاراکترهایی را که در مجموعه جستجو گنجانده نشده اند تعریف کنید. اولین مورد از این کاراکترها با یک ^ جلوتر است. بسیاری از کاراکترها بین حروف کوچک و بزرگ تفاوت قائل می شوند.

اجازه دهید یادآوری کنم که هنگام استفاده از تابع scanf() باید آدرس های متغیر را به عنوان پارامتر به آن ارسال کنید. کد بالا نوشته شده بود:

char str; // آرایه 80 کاراکتری
scanf("%s",str);

توجه داشته باشید که str قبل از & نیست. این کار به این دلیل انجام می شود که str یک آرایه است و نام آرایه - str یک اشاره گر به اولین عنصر آرایه است. بنابراین نباید از علامت & استفاده شود. ما قبلاً آدرس را به تابع scanf() ارسال می کنیم. خوب، به زبان ساده، str آدرسی در حافظه کامپیوتر است که مقدار اولین عنصر آرایه در آن ذخیره می شود.

نمونه هایی از برنامه ها

مثال 1.
این برنامه درخواست "چند ساله هستید؟:" را نمایش می دهد و منتظر ورود داده می شود. اگر مثلاً عدد 20 را وارد کنید، برنامه خط "شما 20 ساله هستید" را نمایش می دهد. هنگام فراخوانی تابع scanf() یک علامت & جلوی متغیر age قرار می دهیم، زیرا تابع scanf() به آدرس های متغیر نیاز دارد. تابع scanf() مقدار وارد شده را در آدرس مشخص شده می نویسد. در مورد ما، مقدار وارد شده 20 به آدرس متغیر سن نوشته می شود.

/* مثال 1 */

#عبارتند از

خالی اصلی (باطل)
{
بین سن

Printf("\nچند سالته؟:");
scanf("%d"،&age);
printf("شما %d سال دارید."، سن);
}

مثال 2.
برنامه ماشین حساب. این ماشین حساب فقط می تواند اعداد را اضافه کند. وقتی 100+34 را وارد کنید، برنامه نتیجه را می دهد: 100+34=134.

/* مثال 2 */

#عبارتند از

خالی اصلی (باطل)
{
int x, y;

Printf("\nماشین حساب:");
scanf("%d+%d"، &x، &y);
printf("\n%d+%d=%d"، x، y، x+y);
}

مثال 3.
این مثال نحوه تنظیم عرض فیلد خواندن را نشان می دهد. در مثال ما، عرض فیلد پنج کاراکتر است. اگر رشته ای با تعداد کاراکتر زیاد وارد کنید، تمام کاراکترهای بعد از 5 حذف می شوند. به فراخوانی تابع scanf() توجه کنید. علامت & قبل از نام آرایه نیست زیرا نام آرایه آدرس اولین عنصر آرایه است.

/* مثال 3 */

#عبارتند از

خالی اصلی (باطل)
{
نام شخصیت؛

Printf("\nنام کاربری خود را وارد کنید (حداکثر 5 کاراکتر):");
scanf("%5s"، name);
printf("\n%s را وارد کردید"، نام);
}

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

/* مثال 4 */

#عبارتند از

خالی اصلی (باطل)
{
char bal;

Printf("امتیاز شما 2،3،4،5 است:");
scanf("%"، &bal);
printf("\nرتبه %c"، bal);
}

این آموزش ها برای همه است، چه تازه کار برنامه نویسی داشته باشید و چه تجربه برنامه نویسی گسترده در زبان های دیگر! این مطالب برای کسانی است که می خواهند زبان های C/C++ را از اصول اولیه تا پیچیده ترین ساختارها یاد بگیرند.

C++ یک زبان برنامه نویسی است، دانش این زبان برنامه نویسی به شما این امکان را می دهد که کامپیوتر خود را در بالاترین سطح کنترل کنید. در حالت ایده‌آل، می‌توانید کاری کنید که رایانه هر کاری که می‌خواهید انجام دهد. سایت ما به شما در تسلط بر زبان برنامه نویسی C++ کمک می کند.

نصب /IDE

اولین کاری که باید قبل از شروع یادگیری C++ انجام دهید این است که مطمئن شوید که یک IDE - یک محیط توسعه یکپارچه (برنامه ای که در آن برنامه نویسی خواهید کرد) دارید. اگر IDE ندارید، پس به اینجا بروید. هنگامی که در مورد انتخاب IDE تصمیم گرفتید، آن را نصب کنید و ایجاد پروژه های ساده را تمرین کنید.

مقدمه ای بر C++

زبان C++ مجموعه ای از دستورات است که به کامپیوتر می گوید چه کاری انجام دهد. این مجموعه از دستورات معمولا کد منبع یا به سادگی کد نامیده می شود. دستورات یا "توابع" یا "کلمات کلیدی" هستند. کلمات کلیدی (کلمات رزرو شده C/C++) بلوک های اصلی زبان هستند. توابع بلوک‌های ساختمانی پیچیده‌ای هستند زیرا بر حسب توابع ساده‌تر نوشته شده‌اند - این را در اولین برنامه ما که در زیر نشان داده شده است خواهید دید. این ساختار توابع شبیه محتویات یک کتاب است. محتوا می تواند فصل های کتاب را نشان دهد، هر فصل در کتاب می تواند محتوای خاص خود را داشته باشد که از پاراگراف ها تشکیل شده است، هر پاراگراف می تواند زیر پاراگراف های خاص خود را داشته باشد. اگرچه C++ بسیاری از توابع رایج و کلمات رزرو شده را ارائه می دهد که می توانید از آنها استفاده کنید، هنوز نیاز به نوشتن توابع خود وجود دارد.

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

بنابراین چگونه به این ویژگی های استاندارد دسترسی پیدا می کنید؟ برای دسترسی به توابع استاندارد همراه با کامپایلر، باید فایل هدر را با استفاده از دستورالعمل پیش پردازشگر اضافه کنید - #include . چرا این کار موثر است؟ بیایید به مثالی از یک برنامه کاری نگاه کنیم:

#عبارتند از << "Моя первая программа на С++\n"; cin.get(); }

اجازه دهید عناصر برنامه را با جزئیات در نظر بگیریم. #include یک دستورالعمل "پیش پردازنده" است که به کامپایلر می گوید قبل از ایجاد فایل اجرایی، کد را از فایل هدر iostream در برنامه ما قرار دهد. با اتصال یک فایل هدر به یک برنامه، به بسیاری از توابع مختلف دسترسی خواهید داشت که می توانید در برنامه خود از آنها استفاده کنید. برای مثال، عملگر cout به iostream نیاز دارد. خط با استفاده از namespace std. به کامپایلر می گوید که از گروهی از توابع که بخشی از کتابخانه استاندارد std هستند استفاده کند. این خط همچنین به برنامه اجازه می دهد تا از عملگرهایی مانند cout استفاده کند. نقطه ویرگول بخشی از نحو C++ است. به کامپایلر می گوید که این پایان دستور است. در یک لحظه خواهید دید که نقطه ویرگول برای پایان دادن به اکثر دستورات در ++C استفاده می شود.

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

در C++، شی cout برای نمایش متن (با تلفظ "C out") استفاده می شود. او از نمادها استفاده می کند<< , известные как «оператор сдвига», чтобы указать, что отправляется к выводу на экран. Результатом вызова функции cout << является отображение текста на экране. Последовательность \n фактически рассматривается как единый символ, который обозначает новую строку (мы поговорим об этом позже более подробно). Символ \n перемещает курсор на экране на следующую строку. Опять же, обратите внимание на точку с запятой, её добавляют в конец, после каждого оператора С++.

دستور بعدی cin.get() است. این فراخوانی تابع دیگری است که داده ها را از جریان داده ورودی می خواند و منتظر می ماند تا کلید ENTER فشار داده شود. این دستور تا زمانی که کلید ENTER را فشار دهید پنجره کنسول بسته نمی شود. این به شما فرصت می دهد تا خروجی برنامه را ببینید.

پس از رسیدن به انتهای تابع اصلی (بسته بند فرفری)، برنامه ما مقدار 0 را به سیستم عامل برمی گرداند. این مقدار بازگشتی مهم است زیرا با تجزیه و تحلیل آن، سیستم عامل می تواند قضاوت کند که آیا برنامه ما با موفقیت انجام شده است یا خیر. مقدار بازگشتی 0 به معنای موفقیت است و به طور خودکار برگردانده می شود (اما فقط برای نوع داده int؛ سایر توابع از شما می خواهند که مقدار را به صورت دستی برگردانید)، اما اگر می خواستیم چیز دیگری مانند 1 را برگردانیم، باید این کار را انجام دهیم. به صورت دستی

#عبارتند از با استفاده از namespace std. int main() (cout<<"Моя первая программа на С++\n"; cin.get(); return 1; }

برای ادغام مطالب، کد برنامه را در IDE خود تایپ کرده و اجرا کنید. وقتی برنامه اجرا شد و خروجی را دیدید، کمی با عبارت cout آزمایش کنید. این به شما کمک می کند تا به زبان عادت کنید.

حتما در مورد برنامه های خود نظر بدهید!

نظرات را به کد خود اضافه کنید تا نه تنها برای خود بلکه برای دیگران نیز واضح تر شود. کامپایلر هنگام اجرای کد، نظرات را نادیده می گیرد و به شما این امکان را می دهد که از هر تعداد نظر برای توصیف کد واقعی استفاده کنید. برای ایجاد نظر، از یا // استفاده کنید که به کامپایلر می گوید که بقیه خط یک نظر است، یا /* و سپس */. هنگامی که در حال یادگیری برنامه نویسی هستید، مفید است که بتوانید در مورد بخش هایی از کد نظر دهید تا ببینید خروجی برنامه چگونه تغییر می کند. شما می توانید جزئیات مربوط به تکنیک نظر دادن را بخوانید.

با همه این نوع متغیرها چه باید کرد؟

گاهی اوقات داشتن چندین نوع متغیر ممکن است گیج کننده باشد، زمانی که برخی از انواع متغیرها زائد به نظر می رسند. استفاده از نوع متغیر صحیح بسیار مهم است، زیرا برخی از متغیرها به حافظه بیشتری نسبت به بقیه نیاز دارند. علاوه بر این، به دلیل نحوه ذخیره آنها در حافظه، اعداد ممیز شناور، انواع داده های شناور و دوگانه "نادقیق" هستند و زمانی که نیاز به ذخیره یک عدد صحیح دقیق است، نباید از آنها استفاده شود.

اعلان متغیرها در C++

برای تعریف یک متغیر، از نوع نحو استفاده کنید<имя>; . در اینجا چند نمونه از اعلان متغیرها آورده شده است:

عدد داخلی شخصیت کاراکتر; float num_float;

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

Int x, y, z, d;

اگر دقت کرده باشید، ممکن است دیده باشید که یک اعلان متغیر همیشه با یک نقطه ویرگول دنبال می شود. می‌توانید درباره کنوانسیون «نام‌گذاری متغیرها» بیشتر بدانید.

اشتباهات رایج هنگام اعلان متغیرها در C++

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

استفاده از متغیرها

بنابراین اکنون می دانید که چگونه یک متغیر را تعریف کنید. در اینجا یک نمونه برنامه وجود دارد که استفاده از یک متغیر را نشان می دهد:

#عبارتند از با استفاده از namespace std. int main() (int number; cout<< "Введите число: "; cin >> شماره؛ cin.ignore(); کوت<< "Вы ввели: "<< number <<"\n"; cin.get(); }

بیایید نگاهی به این برنامه بیندازیم و کد آن را خط به خط بررسی کنیم. کلمه کلیدی int نشان می دهد که عدد یک عدد صحیح است. تابع cin >> مقدار را به عدد می خواند، کاربر باید بعد از عدد وارد شده اینتر را فشار دهد. cin.ignore() تابعی است که یک کاراکتر را می خواند و آن را نادیده می گیرد. ما ورودی خود را در برنامه سازماندهی کرده ایم؛ پس از وارد کردن یک عدد، کلید ENTER را فشار می دهیم، نمادی که به جریان ورودی نیز منتقل می شود. ما به آن نیاز نداریم، پس آن را دور می اندازیم. در نظر داشته باشید که متغیر به عنوان یک نوع عدد صحیح اعلام شده است، اگر کاربر سعی کند یک عدد اعشاری را وارد کند، کوتاه می شود (یعنی قسمت اعشاری عدد نادیده گرفته می شود). سعی کنید یک عدد اعشاری یا دنباله ای از کاراکترها را وارد کنید، وقتی برنامه مثال را اجرا می کنید، پاسخ به مقدار ورودی بستگی دارد.

توجه داشته باشید که هنگام چاپ از یک متغیر، از نقل قول استفاده نمی شود. عدم وجود نقل قول به کامپایلر می گوید که یک متغیر وجود دارد و بنابراین برنامه باید مقدار متغیر را بررسی کند تا نام متغیر را با مقدار آن در هنگام اجرا جایگزین کند. چند دستور شیفت در یک خط کاملاً قابل قبول است و خروجی به همان ترتیب انجام می شود. شما باید حرف های رشته ای (رشته های محصور شده در گیومه ها) و متغیرها را جدا کنید و به هر کدام عملگر شیفت خاص خود بدهید.<< . Попытка поставить две переменные вместе с одним оператором сдвига << выдаст сообщение об ошибке . Не забудьте поставить точку с запятой. Если вы забыли про точку с запятой, компилятор выдаст вам сообщение об ошибке при попытке скомпилировать программу.

تغییر و مقایسه ارزش ها

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

  • * ضرب،
  • - منها کردن،
  • + اضافه کردن،
  • / تقسیم،
  • = تکلیف،
  • == برابری،
  • > بیشتر
  • < меньше.
  • != نابرابر
  • >= بزرگتر یا مساوی با
  • <= меньше или равно

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

در اینجا چند نمونه آورده شده است:

A = 4 * 6; // از کامنت خط و نقطه ویرگول استفاده کنید، a برابر 24 a = a + 5 است. // برابر با مجموع مقدار اصلی و پنج a == 5 // پنج را اختصاص نمی دهد، بررسی می کند که آیا برابر با 5 است یا خیر

شما اغلب از == در ساختارهایی مانند دستورات شرطی و حلقه ها استفاده می کنید.

آ< 5 // Проверка, a менее пяти? a >5 // بررسی کنید، آیا بیشتر از پنج است؟ a == 5 // بررسی، آیا برابر با پنج است؟ a != 5 // بررسی کنید، آیا برابر با پنج نیست؟ a >= 5 // بررسی کنید که a بزرگتر یا مساوی پنج است؟ آ<= 5 // Проверка, a меньше или равно пяти?

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

1. معرفی

برنامه‌نویسی به مدل‌های الگوریتمی جهانی جدید نیاز دارد و سخت‌افزار الگوریتم‌ها را نه تنها به شکلی متفاوت، بلکه بر اساس یک مدل الگوریتمی متفاوت - خودکار، پیاده‌سازی می‌کند. وام گرفتن فناوری از توسعه سخت افزار، ایده کلیدی پشت برنامه نویسی خودکار است. با این حال، سنتز دستگاه دیجیتال با برنامه نویسی متفاوت است. اما هنگام قرض گرفتن یک مدل، از یک سو، تغییر قابل توجه آن توصیه نمی شود، و از سوی دیگر، نمی توان تئوری و عمل برنامه نویسی موجود را نادیده گرفت.

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

به عنوان مبنایی برای بحث در مورد مشکلات برنامه نویسی خودکار، سخنرانی اخیر Shalyto A.A. و مقالات "برنامه نویسی" او در جهت تعریف پارادایم برنامه نویسی خودکار.

یادگیری اصول و پیچیدگی های زبان برنامه نویسی C++. کتاب درسی با تکالیف و تست های عملی. آیا می خواهید برنامه نویسی را یاد بگیرید؟ سپس شما در جای مناسب هستید - در اینجا آموزش برنامه نویسی رایگان است. چه با تجربه باشید و چه نباشید، این درس های برنامه نویسی به شما کمک می کند تا شروع به ایجاد، کامپایل و اشکال زدایی برنامه های C++ در محیط های مختلف توسعه کنید: Visual Studio، Code::Blocks، Xcode یا Eclipse.

مثال های فراوان و توضیحات مفصل. هم برای مبتدیان (قلمک ها) و هم برای افراد پیشرفته تر ایده آل است. همه چیز از ابتدا تا جزئیات توضیح داده شده است. این درس ها (200+) به شما پایه/پایه خوبی در درک برنامه نویسی نه تنها در C++، بلکه در سایر زبان های برنامه نویسی می دهد. و کاملا رایگان است!

همچنین ایجاد گام به گام یک بازی در C++، کتابخانه گرافیکی SFML و بیش از 50 کار برای آزمایش مهارت ها و دانش شما در C++ شامل می شود. یک جایزه اضافی است.

برای ارسال مجدد +20 به کارما و سپاسگزاری من!

فصل شماره 0. معرفی. شروع کار

فصل شماره 1. مبانی C++

فصل شماره 2. متغیرها و انواع داده های پایه در C++

فصل شماره 3. اپراتورها در C++

فصل شماره 4. دامنه و انواع دیگر متغیرها در C++

فصل شماره 5. ترتیبی که کد در یک برنامه اجرا می شود. حلقه ها و شاخه ها در C++



 


خواندن:



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

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

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

دوربین اصلی موبایل معمولاً در پشت بدنه قرار دارد و برای گرفتن عکس و فیلم استفاده می شود

دوربین اصلی موبایل معمولاً در پشت بدنه قرار دارد و برای گرفتن عکس و فیلم استفاده می شود

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

چگونه با حفظ شماره خود به اپراتور دیگری سوئیچ کنید

چگونه با حفظ شماره خود به اپراتور دیگری سوئیچ کنید

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

بررسی یک فبلت، گران، اما بسیار شایسته

بررسی یک فبلت، گران، اما بسیار شایسته

نقد و بررسی یک فبلت گران قیمت اما بسیار شایسته 1394/03/20 من تنها کفاش در جهان بدون چکمه، منتقد گوشی هوشمند بدون گوشی هوشمند خودم هستم ....

فید-تصویر RSS