بایگانی برچسب: s

آموزش زبان ++C - مقدمه

آموزش برنامه نویسی ++C – رشته ( آرایه ای از کاراکتر ها ) | قسمت دوم

در پست قبلی به شما آموختیم که چطور با استفاده از توابع با رشته در turbo c++ کار کنید و در این پست قصد آموزش نکات دیگری در مورد رشته و چگونگی استفاده از رشته ها بدون استفاده از توابع کتابخانه ای ها را داریم.
دلیل آموزش کار با رشته بدون استفاده از توابع به شما این است که یک برنامه نویس خوب باید با تمام الگوریتم های کاربردی آشنایی کافی را داشته باشد و اگر توابع را در اختیار نداشته باشد بتواند خودش توابعی را ایجاد کند که این کار باعث یادگیری مبانی و الگوریتم های کامپیوتر می شود.
این آرایه ی کاراکتری را در نظر بگیرید:

که اندیس های آن در ۰ تا ۹ است و شما تصور می کنید که می توانید ۱۰ کاراکتر در آن جای دهید در صورتی که اشتباه می کنید چون شما فقط می توانید ۹ کاراکتر در آن جای دهید زیرا مقدار \۰ (بک اسلش صفر) در اندیس آخر این آرایه قرار می گیرد.
مثال: شما می خواهید رشته ی ali را در یک آرایه ی کاراکتری بگذارید

در اندیس های صفر و یک و دو کاراکتر های رشته ی ali قرار می گیرد و در اندیس سوم نیز کاراکتر بک اسلش صفر.
نکته: کد اسکی کاراکتر \۰ برابر صفر می باشد.

انواع مقدار دهی به رشته ها در هنگام تعریف آرایه ی کاراکتر:

۱- به صورت کاراکتر به کاراکتر:

توضیح: در این نوع مقدار دهی شما خودتان دستی باید کاراکتر \۰ را در آخر رشته قرار دهید.
۲- به صورت رشته با مشخص کردن تعداد اندیس ها:

توضیح: این کار تقریبا سخت است وممکن است تعداد اندیس هارا اشتباه نوشته و اگر تعداد کاراکتر ها بیشتر از تعداد اندیس ها باشند بقیه ی کاراکتر ها ازبین روند.
نکته: در این نوع مقدار دهی نیازی نیست کاراکتر \۰ را در آخر رشته قرار دهید و کامپایلر به طور اتوماتیک این کار را انجام می دهد.
۳- مقدار دهی یک آرایه ی کاراکتری به صورت رشته با مشخص نکردن تعداد اندیس ها:

توضیح: این کار بسیار آسان تر است و همچنین نیازی ندارید که کاراکتر \۰ را در آخر رشته قرار دهید.
در این آرایه اندیس آرایه به طور خودکار برابر ۴ قرار می گیرد.
نکته: باید دقت کنید که تعداد اندیس های آرایه از تعداد عددی که هنگام تعریف به آرایه می دهیم یکی کمتر است چون از صفر شروع می شود.

مقدار دهی رشته توسط کاربر و اتفاقی که بعد از مقدار دهی می افتد:

۱- با استفاده از دستور cin :

توضیح: در این کد ها ما یک رشته ۱۰ کاراکتر با نام ch ایجاد کردیم مقدار آن را در کاربر در خروجی وارد می کند و سپس با دستور cout آن را نمایش می دهیم.
اگر رشته ی ما فرضا ali باشد تنها ۴ اندیس از رشته ی ۱۰ کاراکتر ما پر می شود و اگر دقت کرده باشید دستور cout فقط مقادیر اندیس هایی را نشان می دهد که قبل از کاراکتر \۰ باشند.
اندیس ۰ و ۱ و ۲ به ترتیب کاراکتر های a و l و i را می گیرند و اندیس سوم هم کاراکتر \۰ را می گیرد.
نکته: در مقدار دهی رشته در خروجی با دستور cin اگر شما پس از وارد کردن رشتهتان کلید enter را فشار دهید کاراکتر \۰ در آخر رشته قرار می گیرد ولی دستور cin در گرفتن رشته این مشکل را دارد که اگر شما کلید space را هم فشار دهید کاراکتر \۰ در رشته قرار می گیرد و رشته بسته می شود و شما دیگر نمی توانید مقداری به رشته دهید پس باید به دنبال راهی جدید بگردیم.
۲- گرفتن رشته با تابع gets :
دقت داشته باشید که الگوی این تابع در هدرفایل stdio.h قرار دارد.

توضیحات : این تابع مشکل دستور cin را ندارد و شما می توانید از کلید space نیز برای مقدار دهی به رشته استفاده کنید.
نکته: شما می توانید برای نمایش رشته از تابع puts هم استفاده کنید
به این صورت:

دقت داشته باشید که الگوی این دو تابع در هدرفایل stdio.h قرار دارد.
تمرین: برنامه ای بنویسید بدون استفاده از توابع کتابخانه تعداد کاراکتر های درون یک رشته را به ما نشان دهد.

توضیحات : ابتدا هدرفایل ها را اضافه کردیم در بلوک تابع main یک رشته با نام ch تعریف کردیم و با تابع gets آن را از ورودی گرفتیم ( کار های اولیه ).
چون ما نمی دانیم تعداد کاراکتر های چندتا است پس از حلقه ی while استفاده می کنیم.
شرط حلقه ی while این است که از مقدار اندیس آیُم از رشته ی ch برابر \۰ نبود یک مقدار به i اضافه کن.
در این صورت برنامه از ابتدای رشته شروع می کند تا به کاراکتر \۰ برسد و وقتی ch[i] برابر با \۰ شد شرط حلقه نادرست می شود و حلقه می شکند و عددی که در متغیر i قرار گرفته است تعداد کاراکتر های رشته است.
و در آخر هم بیرون از حلقه ی مقدار i را با cout نمایش می دهیم.
string
رشته ای که در خروجی داده این در تصویر بالا hello world است که رشته ی hello 5 کاراکتر و space یا فاصله ی بین دو کلمه هم ۱ کاراکتر و رشته ی world هم ۵ کاراکتر که جمع آن ها می شود ۱۱ کارکتر یا همان عددی که در i قرار گرفته است.
نکته: می توانید به به جای گذاشتن کاراکتر \۰ کلمه ی NULL را بنویسید
اینطور:

\۰ در واقع همان NULL است.

آموزش زبان ++C - مقدمه

آموزش برنامه نویسی ++C – فایل ها | قسمت سوم

علاوه بر حالت های r ( read ) برای خواندن از فایل و w ( write ) برای نوشتن در فایل یک حالت دیگر هم وجود دارد به نام a.
وقتی فایلی را در حالت w باز می کنیم تمام متن داخل آن حذف می شود و سپس می توانیم متن جدید را در فایل اضافه کنیم ولی وقتی فایل را در حالت a باز کنیم متن داخل فایل حذف نمی شود و هر متن جدیدی که به فایل اضافه کنیم در آخر متن پیش فرضیمان قرار می گیرد.

حالت a

مثال: فایلی با نام a.txt در دایرکتوری زیر قرار دارد که متن hello در آن نوشته شده است. می خواهیم با استفاده از برنامه نویسی متن world را به آخر متن hello که به طور پیش فرض در فایل قرار داده شده است اضافه کنیم.
دایرکتوری:

C:\TurboC++\Disk\TurboC3\BIN

کد:

توضیحات: همانگونه که در توضیحات بالا خواندید فایل را در حالت a باز می کنیم سپس تغییرات جدید را روی آن اعمال می کنیم.
تمرین: برنامه ای بنویسید دو فایل a.txt و b.txt که در دایرکتوری زیر قرار دارند را باز کرده متن فایل b.txt را خوانده و به آخر متن فایل a.txt اضافه کند.
دارکتوری: مسیر پیش فرض برنامه ی نصب شده ی توربو

C:\TurboC++\Disk\TurboC3\BIN

متن پیش فرض در فایل hello : a.txt
متن پیش فرض در فایل world : b.txt
کد:

توضیحات: طبق تعریفات بالا ما باید دو متغیر از نوع فایل ایجاد کنیم برای باز کردن فایل های a.txt در حالت a برای نوشتن متن در آخر متن پیش فرض قرار داده شده و فایل b.txt در حالت r برای خواندن متن از آن.
طبق گفته ی بالا کار ها را در کد انجام داده ایم سپس یک حلقه ی while ایجاد می کنیم برای خواندن تک تک کاراکتر های درون فایل b.txt و قرار دادن همان کاراکتر ها با استفاده از تابع fputc در فایل a.txt.
تابع fcloseall بعد از کد های حلقه ی while : اگر چند فایل باز در برنامه دارید برای بستن تمام آن ها می توانید از این تابع استفاده کنید.
خروجی :
متن جدیدی که در فایل a.txt قرار گرفته است:

hello world

برای نمایش داده شدن فرمت فایل ها وقتی فایلی را به صورت گرافیکی در دایرکتوری در ویندوز می توانید از راحل زیر استفاده کنید:
۱- گزینه ی folder options در قسمت تنظیمات my computer ( در ویندوز های مختلف جای آن متفاوت است)
folder_options
۲- سربرگ view
۳- در قسمت Advanced Setting تیک گزینه ی Hide exensions for know file type را بردارید
۴- Ok
settings

آموزش زبان ++C - مقدمه

آموزش برنامه نویسی ++C – حلقه ی While و Do While

برنامه نویسی ++C – حلقه ی While و Do While
همان طور که می دانید در حلقه ی For ما ناگذیر بودیم تا گام حرکت را مشخص کنیم پس زمانی که بخواهیم برنامه ای بنویسم که گام حرکت در آن مجهول ( نامعلوم ) باشد به خودی خود نمیتوانیم از حلقه For استفاده کنیم . حلقه ی While دقیقا در این مواقع مورد استفاده قرار می گیرید بطوری که برای استفاده از آن دیگر نیازی به استفاده از مکان شروع یا پایان یا گام حرکت نیست اما باید برای آن شرطی مشخص نمود . حلقه ی While هر بار که به انتهای کد های داخلش میرسد ( } ) دوباره به ابتدای حلقه برگشته و آن شرط را چک می کند و در صورت برقرار بودن شرط یک بار دیگر کد های داخل حلقه ی While را اجرا نموده و این عمل را تا زمانی انجام می دهد که شرط برقرار باشد .
در این مقاله ما با حلقه ی While و Do While آشنا مشویم . پس ابتدا با یک تعریف اجمالی از هر دوی آن ها آشنا شوید .
حلقه ی While : در این حلقه دیگر خبری از گام حرکت و نقطه شروع و پایان نیست اما در آن شرطی وجود دارد که ابتدا چک می کند که شرط برقرار است یا نه و در صورت برقرار بودن آن محتویات حلقه اجرا میشوند .
حلقه ی Do While : این حلقه تفاوتی با حلقه ی While دارد . آن تفاوت این است که در این نوع حلقه ابتدا کد های حلقه اجرا میشود و سپس شرط حلقه چک میشود .
ساختار کلی حلقه While و Do While :
ساختار حلقه ی While :

ساختار حلقه ی Do While :

حالا برای اینکه این مطلب برایتان کاملا روشن شود به مثال های زیر توجه کنید .
حلقه ی While : ابتدا با یک برنامه ساده شروع می کنیم .

شرح برنامه که دیدید : عدد از ورودی گرفته و رقم هایش را از هم جدا کرده و باهم جمع می کند . علت استفاده از Long int این است که اعدد ما محدود نشود و بتوانیم اعداد بزرگتری را نیز مورد آزمایش قرار دهیم سپس سه متغیر تعریف کرده و ادامه میدهیم حلقه تا زمانی اجرا می شود که عدد از صفر بزرگتر باشد و میدانید که برای جدا کردن رقم از عدد باید آن را بر ۱۰ تقسیم کنید و باقیمانده آن تقسیم همان رقم مورد نیاز است سپس یک متغیر دیگر قرار داده ایم که هر دفعه رقم جدا شده را در خود جمع کند و بعد از آن عدد را کوچک تر می کنیم .

ابتدا عدد را وارد می کنیم که ما در این قسمت اعداد یک تا نه را انتخاب کرده ایم .

Untitled
آموزش برنامه نویسی ++C – حلقه ی While و Do While
Untitled2
آموزش برنامه نویسی ++C – حلقه ی While و Do While

سپس کلید Enter را زده و پاسخ را مشاهده خواهید کرد .

حال به مثالی دیگر توجه کنید .

شرح برنامه : در برنامه فوق عددی از ورودی گرفته می شود و آن را معکوس می کند . بصورت پیش فرض با عدد ۱۲۳ ادامه می رویم.
ابتدا عدد را وارد کرده .

Untitled3
آموزش برنامه نویسی ++C – حلقه ی While و Do While

سپس برنامه بصورت زیر عمل می کند .

Untitled4
آموزش برنامه نویسی ++C – حلقه ی While و Do While

مثالی از حلقه Do While :

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

Oracle Java

آموزش برنامه نویسی Java – حلقه Loop

حلقه Loop ، تکرار در دستور

همونطور که میدونید هر پروژه‌ی برنامه نویسی بیشتر از پنج هزار خط کد داره و تا جایی که امکانش هست باید از تکرار در کد نویسی پرهیز کنیم. حلقه Loop یکی دیگه از راه های جلوگیری از تکرار و راه‌حلی برای ادامه‌ی یه دنباله هستش.
هر حلقه Loop از دو بخش اصلی تشکیل شده؛ شرط حلقه و دستور حلقه که در هر مرحله از تکرار اون انجام میشه
حلقه Loop در Java چند نوع مختلف داره؛ for – while – do…while
حلقه for دارای نقطه‌ی شروع ، نقطه‌ی پایان و الگوریتم حرکتی در هر مرحله هستش. که تو نمونه کد به راحتی میتونید با اون آشنا بشید.

همونطور که دیدید حلقه Loop for به این صورت نوشته میشه؛ در قسمت اول یه متغیر از نوع int تعریف میکنیم و عدد اول رو صفر قرار میدیم. در قسمت دوم میگیم که تا عدد ۱۰ برو جلو و در قسمت آخر میگیم که در هر مرحله به i یک واحد اضافه کن. “میشه به جای i++ نوشت i+1=i ولی i++ از لحاظ کد نویسی درستتر هستش” و در خروجی این رو بهتون میده

الگوریتم فلو حلقه loop
for loop

 

حلقه while شبیه for هستش تنها با این تفاوت که در قسمت شرط حلقه فقط نقطه‌ی پایان نوشته میشه… اگر هم نیاز به الگوریتم حرکتی داشتید اون رو تو دستور حلقه که در داخل بدنه‌ی حلقه Loop نوشته میشه اضافه کنید.

همینطور که میبینید عدد ۰ بوده و خارج از بلاک کد حلقه Loop هست و تو شرط حلقه نوشته شده که x تا کوچکتر مساوی از ۱۰ باید جلو بره و در دستور هر مرحله یک عدد به x اضافه میشه. خروجی هم مثل حلقه‌ی قبلیه

الگوریتم حلقه while
while loop

 

حلقه do…while شبیه به while هستش اما فرقش رو میتونید تو نمونه کد زیر به طور کامل ببینید.

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

الگوریتم حلقه do...while
do…while loop

حلقه Loop
با پنگوئن همراه باشید.

آموزش زبان ++C - مقدمه

آموزش برنامه نویسی ++C – حلقه for

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

همانطور که در ابتدای مقاله گفته شد کار حلقه ها تکرار یک دستور خاص است. حلقه ی for هم یکی از این قبیل حلقه هاست که در ادامه با آن آشنا خواهید شد.

ساختار کلی حلقه ی for:

 

مبدا یا مقدار آغاز: مقدار آغاز یک متغیر هست که معمولا اسم آن متغیر ها را از حرف ( i:متغیر شمارنده) شروع می کنیم که مبدا حلقه هست بطور مثال با توجه به مسئله ریاضی که گفته شد میخواهید به متغیر x  مقدار بدهی. مثلا می گویید که اعدادی که باید بجای x  قرار بگیرند از ۰ باید شروع شوند بنابرین مبدا حلقه ۰ می شود.

شرط پایان یافتن حلقه: شرط پایان در واقع تعداد دفعات اجرای حلقه ی For  هست که در این مثال اگه ۱۰ باشه کد های در حلقه ۱۰ بار اجرا می شوند. البته ممکن است که کمتر باشند که در قسمت گام حرکت می گویم چرا.

گام حرکت: این قسمت مشخص میکند که هر بار حلقه چند تا چند تا به جلو برود که اگر بگوییم دو تا دو تا کد های  حلقه ی For اجرا شود که مکان پایانش ۱۰ بوده است بجای اینکه ۱۰ بار اجرا شود ۵ بار اجرا می شود.

می خواهیم برنامه ای بنویسیم که از ۱ تا ۱۰ را چاپ کند:

خب اگر دقت کرده باشید بدون حلقه کار بسیار سخت می شود چون باید ۱۰ بار cout بگذارید. خب اگر می گویید که اینکار کار آسانی است اگر ۱۰۰ بار باشد چه می کنید؟؟. راحل حلقه ی for است:

 

 

:output

 

for1

توضیحات: در اینجا ما یک متغیر از نوع int به نام i تعریف کردیم که می خواهیم آنرا به عنوان شمارنده در حلقه ی for  قرار دهیم.

 

مبدا یا مقدار آغازین حلقه: ( i=1 ) همانطور که مشاهده می کنید i از یک شروع می شود.

شرط پایان حلقه:(i<=10)مقدار i تا ۱۰ ادامه پیدا می کند.

گام حرکت:طبق گفته های قبلیمان در مقاله عملگر ها یک عدد یک عدد به i در هر بار اجرا شدن حلقه اضافه می کند و تا شرط پایان برقرار است این روند ادامه دارد.

نوشتن برنامه ی جمع اعداد ۱ تا ۱۰ با حلقه ی for:

 

 

 

توضیحات: ما در این برنامه دو متغیر تعریف کرده ایم یک متغیر(i) که در حلقه استفاده شود و یک متغیر(sum) که جمع اعداد را در آن بگذاریم. ( i++ ) یعنی در هر دوره یک عدد به i اضافه شود.

ما trace جدول این برنامه را برای شما گذاشته ایم برای آموزش راحت تر:
for