بایگانی برچسب: 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 – ساختمان ( struct ) – قسمت اول

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

ساختار کلی:

struct نام نوع جدید
{
فیلد ها
};

مثال (مثالی که در بالا زدیم):

نکته:

رشته: رشته یک متن است که در واقع یک متن آرایه ای از کاراکتر هاست که برای مثال به این صورت تعریف می شوند:

یعنی یک رشته ای که حداکثر می تواند با ۲۰ کاراکتر پر شود.
برای گرفتن رشته از ورودی:

این توضیحات صرفا برای آشنایی اندک با رشته بود در مقاله های بعدی به طور کامل با رشته آشنا می شوید.
ادامه ی بحث struct :
نکته: struct را در بالای تابع main تعریف می کنند.
ایجاد متغیر از نوع جدیدی که ایجاد کرده ایم:
نام نوع متغیر جدید نام متغیر;
برنامه ی کامل از مثال بالا:

توضیحات:

یک struct با نام st ایجاد کرده ایم که شامل یک رشته به نام name با تعداد اندیس ۱۰ است و یک متغیر با نام  moadel و یک متغیر با نام tarikh از نوع int.

در این قسمت ما از نوع جدیدی که ایجاد کرده ایم به نام st یک متغیر تعرف می کنیم با نام s1.
دسترسی به هرکدام از فیلد های نوع متغیر جدید:
برای مثال دسترسی به moadel:

حالا فیلد moadel برابر با ۱۰ می شود. ولی ما در کدهایمان می خواهیم از کاربر این مقادیر را بگیریم.
نکته: این نوع متغیر هایی که ما آنرا ایجاد می کنیم مانند s1 که تعریف کردیم ADT یا abstract data type گویند.
اجرای برنامه ی بالا:
struct1

برنامه ی بالا مشخصات یک دانشجو را می گیرد ما می توانیم از نوع متغیر جدید خود آرایه هم تعریف کنیم.
مثال:
برنامه ای بنویسید که اگر کاربر در خروجی کاراکتر یک را وارد کرد یک اندیس آرایه از نوع st که در برنامه ی بالا تعریف کرده یم توسط کاربر پر شود و اگر کاربر کاراکتر دو را وارد کرد تمام فیلد های پر شده توسط کاربر نمایش داده شود و اگر x وارد شود برنامه از حالت اجرا خارج شود (آرایه دارای ۳ اندیس باشد).

توضیحات: ابتدا ما یک آرایه از نوع st تعریف میکنیم سپس یک متغیر k=0 از نوع int ایجاد می کنیم به عنوان شمارنده ی اندیس ها سپس یک نوع منو ایجاد می کنیم که کاربر را توجیح کنیم.
تمام کد هایمان را در while میگذاریم چون نمیدانیم کار بر چند بار به آرایه مقدار می دهد یا از آن استفاده می کند.
کاراکتر ch را از ورودی میگیریم:
اگر برابر با ۱ بود: name, moadel,tarikh اندیس اول آرایه ی s1 را از کاربر میگیریم سپس یک مقدار بر k اضافه می کنیم.
اگر برای با ۲ بود: در یک for همه ی مقادیر آرایه ی s1 را نشان می دهیم.
اگر برابر با x بود: از تابع exit(0) استفاده می کنیم برای خارج شدن از اجرای برنامه.
اجرای برنامه:
دوبار زدن دکمه ۱:
struct2
سپس زدن دکمه ی ۲:
struct3
برای خروج کاراکتر x.
اطلاعات بیشتر در مورد struct

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

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

گاهی اوقات ما می خواهیم عملیاتی را روی اندیس های آرایه انجام دهیم البته با فرستادن آن به تابع.
با مثالی ساده شروع می کنیم:

ارسال آرایه به تابع

می خواهیم آرایه ای (ماتریس ۳ در ۳) را به تابعی ارسال کنیم سپس اعضای روی قطر اصلی آنرا با هم ضرب کنیم:
نکته: اعضای روی قطر اصلی: اعضای روی قطر اصلی به رنگ زرد مشخص شده اند.
ghotr_asli
نکته: شرط نشان دادن اعضای روی قطر اصلی:i==j

توضیحات: ابتدا آرایه ای ۳ در ۳ ایجاد می کنیم و اعضای آنرا مقدار دهی می کنیم سپس تابعمان را ایجاد می کنیم.
شرط i==j را در تابع برقرار می سازیم سپس عددی که برابر حاصل ضرب اعضای روی قطر اصلی است (همان z در برنامه) را return می کنیم.
می رسیم به prototype و صدا زدن تابع: ابتدا prototype را در بالای تابع main می نویسیم

int اول نوع خروجی را نشان می دهد و چون خروجی یک عدد از نوع int است int را مینویسیم سپس نام تابع و در سپس در درون پرانتز ها باید نوع ورودی را مشخص کنیم و چون نوع ورودی یک آرایه ی ۳ در ۳ است و نوع آن هم int است به این صورت که در کد بالا می بینید آنرا می نویسیم.
میرسیم به صدا زدن تابع: دستور صدا زدن تابع را برای راحتتر کردن برنامه در cout می نویسیم به این صورت که ابتدا نام تابع سپس آرایه ای که باید وارد تابع شود را درون پرانتز های آن می نویسیم.

ارسال آرایه به تابع

تمرین: یک ماتریس ۳ در ۳ وارد تابع کنید و تابع بگوید که این ماتریس قطری است یا نه.
ماتریس قطری: ماتریسی است که اعدادی که روی قطری اصلی نیستند برابر صفر باشند. مهم نیست که اعضای روی قطر اصلی صفر باشند فقط باید اعضای که روی قطری اصلی نیستند صفر باشند.

توضیحات: یک آرایه ۳ در ۳ ایجاد می کنیم و آنرا به گونه ای مقدار دهی می کنیم که به طور پیش فرض طبق تعریفمان یک ماتریس قطری باشد.
شرط:
(i!=j && B[i][j]!=0)
اگر این شرط برقرار شود  ماتریس قطری نیست چون نشان می دهد اعضایی که روی قطر نیستند برابر صفر نیستند. ما نمی توانیم در دستورات این شرط که در for نوشته شده است یک cout بنویسیم برای نشان دادن قطری بودن یا نبودن ماتریس چون ممکن است ده ها بار شرط برقرار شود و همینطور ده ها بار cout اجرا شود.
ما در این حالت یک متغیر وضعیت ایجاد می کنیم به نام e که اگر e برابر ۱ باشد ماتریس قطری است واگرنه نیست.
همان گونه که در کد میبینید ما به این صورت برنامه را ایجاد کرده ایم:

در درون for این شرط را نوشته ایم که اگر شرط داخل if برقرار بود که در صورت قطری نبودن ماتریس است عدد e برابر صفر شود.
چون ما از تابع نمی خواهیم چیزی را return کند و فقط می خواهیم نشان دهیم که ماتریس قطری است یا نه ما نوع تابع را void می گذاریم.
اطلاعات بیشتر

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

آموزش برنامه نویسی ++C – آرایه (Array)

مواردی که مورد استفاده قرار میگیرد:

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

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

ساختار کلی:

تعداد اندیس ها یا تعداد اعضای آرایه]نام آرایه    نوع];

مثال:

ما در اینجا آرایه ای تعریف کرده ایم از نوع int که دارای ۱۰ عضو است.

وقتی ما یک آرایه تعریف می کنیم  در RAM به اندازه ی تعداد اعضایی که برای آرایه گذاشته ایم از نوع int  فضا اشغال می شود.

آرایه ها مانند مجتمعی در RAM  کامپیوتر می مانند که دارای خانه هایی هستند که به هر کدام از آن خانه ها اَندیس آرایه (index) گفته می شود.

نکته: در اولین آرایه ای که ایجاد کردیم ما متغیری به نام A در کامپیوتر ایجاد نکرده ایم بلکه یک مجتمعی ایجاد کرده ایم که دارای اندیس هایی است که در واقع اندیس ها به عنوان چیزی هستند که ما ایجاد کرده ایم.

در این آرایه ۱۰ اَندیس وجود دارد که شماره های اَندیس ها در هر آرایه ای از ۰ شروع می شود.

RAM:

index_array

همانطور که مشاهده می کنید در بالای هر اَندیس شماره ی آن نوشته شده است که اولین اندیس از ۰ شروع می شود و تا ۹ ادامه می یابد. پس هر تعداد عضوی که به آرایه می دهید اندیس های آرایه تا یک عدد کمتر از تعداد اعضای اندیس ایجاد می شود.
مقدار دهی اولیه با مثال:
حالت اول: مقدار دهی به یک اندیس پس از تعریف آرایه:

در RAM:

index_array2

همانطور که مشاهده می کنید در اندیس شماره ی ۲ مقدار ۵ قرار گرفته است.
حالت دوم مقدار دهی: مقدار دهی به تمام اندیس های آرایه در هنگام تعریف آن:

 

برای این نوع مقدار دهی باید مقادیر را در یک بلاک بگذاریم و با کاما از هم جدا کنیم.

چاپ اندیس های آرایه:

چاپ یک اندیس:

در این حالت مقداری که در اندیس ۵ از آرایه ی A وجود دارد چاپ می شود.
معمولا برای استفاده بهتر از آرایه ها آنهارا در یک حلقه ی for قرار می دهند و با استفاده از for از آرایه استفاده می کنند.
چاپ تمام اندیس های یک آرایه:

چون اندیس های آرایه از ۰ شروع می شوند ما مقدار i را ۰ گذاشته ایم و چون اندیس های آرایه تا یک عدد کمتر از تعداد اندیس هایی که برای آرایه انتخاب کردیم است پس باید ۱۰>i بگذاریم.

می توانستیم شرط for را اینطور هم بنویسیم:

تمرین:
آرایه ای تعریف کنید از نوع int که تعداد اندیس های آن را ۱۰ قرار دهید و آنرا مقدار دهی اولیه کنید و اعدادی که در آن زوج است را چاپ کنید:

تمرین:
برنامه ای بنویسید که یک آرایه در آن تعریف کنید با مقدار دهی اولیه با اندیس ۱۰ که اعضای آنرا با هم جمع بزند و در خروجی نشان دهد:

نکته: می توانیم به جای دستور endl برای رفتن به خط بعد از دستور “n\” در cout استفاده کنیم.
اطلاعات بیشتر در مورد آرایه

Oracle Java

آموزش برنامه نویسی Java – آرایه در Java

آرایه در Java ، یه سطل متغیر

آرایه در Java یعنی یک پک از یک نوع متغیر … خیلی وقتا شما به مقدار زیادی از متغیر‌ها نیار دارید ، مثلا ۱۰۰تا متغیر از نوع Integer . خوب برای این‌کار اگه ۱۰۰تا int تعریف کنیم که کار درستی نیست.
در اینجا بحث آرایه در Java پیش میاد ، البته این موضوع صرفا مربوط به جاوا نیست و در همه‌ی زبان‌های برنامه‌نویسی هستش… در ++C ، در #C ، در Python و …

در کل داستان وقتی شما یه آرایه در Java تعریف می‌کنید در واقع یک پک از یه نوع متغیر تعریف کردید که در صورت نیازتون میتونید پُرش کنید ، مقدارش رو تغییر بدین و در هر جایی در داخل براکد کد با دادن آدرس Index به اون دسترسی پیدا کنید.

به این صورت از ابتدا نوع متغیر ، براکت باز و بسته “که البته در Java در داخلش عدد قرار نمیگیره… در زبان‌های دیگه مثل C , C Sharp و ++C در داخل اون تعداد متغیر‌های آرایه نوشته میشه ” و بعد از اون نام آرایه و در آخر سیمیکالن.
// آرایه در Java //
نوع دیگه‌ای هم هست که در همون خط مقدار دهی انجام میشه

در کد بالا به ترتیب از چپ به راست خونه‌های آرایه در Java رو دارید و نکته‌ی مهم اینه که Syntax ها از صفر شروع میشن یعنی الان در کد بالا آرایه پنج عضو داره اما عدد ۶ در خونه یا Syntax چهارم هستش… عدد ۲ در خونه‌ی صفر ، ۳ در یک ، ۵ در دو ، ۷ در سه و ۶ در چهارم هستش.

در اینجا اگر بخوایم Syntax چهارم رو عوض کنیم باید به صورت زیر عمل کنین…

همینطور که میبینین الآن من عدد ۶ رو با ۲۰ عوض کردم. به این صورت شما میتونید هر عددی رو در هر جای آرایه در Java با عددی دیگه تعویض ، حذف یا اظافه کنید.

🐧 با پنگوئن همراه باشید 🐧