بایگانی برچسب: 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

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
با پنگوئن همراه باشید.