ویکیکتاب
fawikibooks
https://fa.wikibooks.org/wiki/%D8%B5%D9%81%D8%AD%D9%87%D9%94_%D8%A7%D8%B5%D9%84%DB%8C
MediaWiki 1.47.0-wmf.21
first-letter
مدیا
ویژه
بحث
کاربر
بحث کاربر
ویکیکتاب
بحث ویکیکتاب
پرونده
بحث پرونده
مدیاویکی
بحث مدیاویکی
الگو
بحث الگو
راهنما
بحث راهنما
رده
بحث رده
کتابآشپزی
بحث کتابآشپزی
ویکیکودک
بحث ویکیکودک
موضوع
بحث موضوع
TimedText
TimedText talk
پودمان
بحث پودمان
Event
Event talk
ویکیکتاب:درخواستهای مدیر شدن
4
8
135287
135275
2026-09-29T06:02:27Z
Vivairan2
28134
درخواست جدید
135287
wikitext
text/x-wiki
{{ویکیکتاب:درخواستهای مدیر شدن/الگوی بایگانی}}
<span class="header_icon" style="padding-right: 4px;" aria-hidden="true" role="footer">[[File:OOjs UI icon downTriangle.svg|15px|middle|link=]]</span> [[#footer|پایین صفحه]]
<div style="border:solid #ffbd01 2px; margin:0% 1% 1% 0%; padding:1ex 2% 1ex 2%; background:#ffffdc; text-align:center;">
<big>
در این صفحه '''درخواستهای مدیر شدن''' مطرح میشوند. مدیر کاربریست که اختیارات بیشتری برای ادارهٔ وبگاه دارد. در صورتی که تقاضای ارتقای دسترسی دارید، در بخش '''تقاضای نامزدی برای مدیریت''' امضای کاربری خود را وارد کنید.
مدیران پیشین ویکیکتاب فارسی:
[[کاربر:Kaveh|کاوه]]
[[کاربر:مجید~fawikibooks|مجید]]
[[کاربر:komeil_4life|کمیل]]
[[کاربر:Doostdar|دوستدار ایران بزرگ]]
<span style="color: red;">توجه</span> داشته باشید که آدرس ایمیل شما بایستی در ترجیحات یا در صفحهٔ کاربری وارد شده باشد. در صورتی که در نوشتن کتاب، ایجاد رده، الگو، صفحه راهنما، سیاستها و رهنمودها، ... در ویکیکتاب مشارکت داشتهاید میتوانید به صفحه مشارکت خود پیوندی قرار دهید و در نهایت با ذکر دلیل در خواست خود را مطرح کرده و آن را امضا کنید.
</big>
</div>
==درخواست مدیر شدن، Fwldom (2)==
<div class="boilerplate" style="background-color: #efe; margin: 2em 0 0 0; padding: 0 10px 0 10px; border: 1px dotted #aaa;">
درود، گویا ویکیکتاب مدیر فعال ندارد و دارد به انقراض میرود.
با توجه به فعالیتها و مشارکتهایی که در ویکیکتاب فارسی داشتهام، برای دریافت دسترسی مدیریت این پروژه اعلام آمادگی میکنم.
هدف من از درخواست این دسترسی، کمک به نگهداری و توسعهٔ ویکیکتاب، رسیدگی به خرابکاریها، ساماندهی صفحات و انجام کارهایی است که به دسترسی مدیریتی نیاز دارند.
در صورت اعطای دسترسی، تلاش خواهم کرد از ابزارهای مدیریتی با دقت و مطابق سیاستها و اجماع جامعه استفاده کنم و در مواردی که نیاز به تصمیمگیری جمعی باشد، نظر کاربران را در نظر بگیرم.
سوابق ویرایشی و فعالیتهای من برای بررسی در دسترس است و در صورت نیاز آمادهام دربارهٔ سوابق، اهداف و نحوهٔ استفاده از دسترسی مدیریت توضیح بیشتری ارائه کنم. [[کاربر:Fwldom/آمار]]
از کاربران ویکیکتاب درخواست میکنم سوابق و فعالیتهای مرا بررسی کرده و نظر خود را دربارهٔ این درخواست اعلام کنند.
با احترام، --[[کاربر:Fwldom|Fwldom]] ([[بحث کاربر:Fwldom|بحث]]) ۱۶ سپتامبر ۲۰۲۶، ساعت ۱۳:۳۸ (UTC)
:درود بر ویکینویسان عزیز،
:با توجه به اینکه دسترسی مدیریت ویکیکتاب فارسی به اینجانب توسط ویکیمدیا اعطا شده است، درخواستهای قدیمی مدیریت که مربوط به گذشته بوده و دیگر موضوعیت اجرایی ندارند، جمعبندی و مختومه میشوند.
:از مشارکت و نظرات کاربران در درخواستهای پیشین سپاسگزارم.
:از این پس درخواستهای جدید مدیریت مطابق روند و سیاستهای ویکیکتاب بررسی خواهند شد.
:* تا 2 دی 1405 مدیریت ویکیکتاب به اینجانب اعطا شده است، و از این 2 دی به بعد امیدوارم با رشد ویکیکتاب و نظردهی کاربران مدیریت جدید یا تمدید اینجانب انجام شود.
:[[کاربر:Fwldom|Fwldom]] ([[بحث کاربر:Fwldom|بحث]]) ۲۸ سپتامبر ۲۰۲۶، ساعت ۱۱:۴۵ (UTC)
</div>
==درخواست مدیر شدن، vivairan (۲)==
درود. با توجه به فعالیتهایی که برای گسترش محتوای ویکیکتاب انجام دادهام و همان طور که میدانید فعالترین کاربر ویکیکتاب بودهام برای دریافت دسترسی مدیریت این پروژه درخواست میدهم. بنده در بهبود پروژه از نظر کمی و کیفی بسیار کوشیدهام و علاوه بر ایجاد صفحات و کتابهای جدید توانستهام راهنماها، ردهها، الگوها، ... را ویرایش کنم. از این رو برای بهبود محتوای ویکیکتاب و مبارزه با خرابکاریها درخواست مدیریت میدهم.
::چند نمونه از الگوهایی که ایجاد کردهام: [[الگو:مکمل]]، [[الگو:حص-خرابکاری]]، [[الگو:Long dash]] هستند که همگی برای این وبگاه ضروری بودهاند و زیرساخت فنی این ویکی برای توسعه را فراهم میآورند.
::چند نمونه از سیاستها و رهنمودهایی که ایجاد کردهام: [[ویکیکتاب:فرض حسن نیت]]، [[ویکیکتاب:صفحه حمله]]، [[ویکیکتاب:اجماع]] هستند که برای مشارکت جمعی در این وبگاه ضروری هستند و به ویرایشهای مفید بیشتر در این ویکی کمک میکنند.
::چند نمونه از ایبوکهایی که به آنها محتوای جدید افزودهام: [[بررسی موردهایی از اخلاق حرفهای]] و [[ویکیکودک:دایناسورها]] که میتوانند برای مخاطبان ویکیکتاب سودمند باشند.
--[[کاربر:Vivairan2|Vivairan2]] ([[بحث کاربر:Vivairan2|بحث]]) ۲۹ سپتامبر ۲۰۲۶، ساعت ۰۶:۰۲ (UTC)
likazdtisq66jvi18hwucd587p1cfo4
135288
135287
2026-09-29T06:06:17Z
Fwldom
26269
/* درخواست مدیر شدن، vivairan (۲) */
135288
wikitext
text/x-wiki
{{ویکیکتاب:درخواستهای مدیر شدن/الگوی بایگانی}}
<span class="header_icon" style="padding-right: 4px;" aria-hidden="true" role="footer">[[File:OOjs UI icon downTriangle.svg|15px|middle|link=]]</span> [[#footer|پایین صفحه]]
<div style="border:solid #ffbd01 2px; margin:0% 1% 1% 0%; padding:1ex 2% 1ex 2%; background:#ffffdc; text-align:center;">
<big>
در این صفحه '''درخواستهای مدیر شدن''' مطرح میشوند. مدیر کاربریست که اختیارات بیشتری برای ادارهٔ وبگاه دارد. در صورتی که تقاضای ارتقای دسترسی دارید، در بخش '''تقاضای نامزدی برای مدیریت''' امضای کاربری خود را وارد کنید.
مدیران پیشین ویکیکتاب فارسی:
[[کاربر:Kaveh|کاوه]]
[[کاربر:مجید~fawikibooks|مجید]]
[[کاربر:komeil_4life|کمیل]]
[[کاربر:Doostdar|دوستدار ایران بزرگ]]
<span style="color: red;">توجه</span> داشته باشید که آدرس ایمیل شما بایستی در ترجیحات یا در صفحهٔ کاربری وارد شده باشد. در صورتی که در نوشتن کتاب، ایجاد رده، الگو، صفحه راهنما، سیاستها و رهنمودها، ... در ویکیکتاب مشارکت داشتهاید میتوانید به صفحه مشارکت خود پیوندی قرار دهید و در نهایت با ذکر دلیل در خواست خود را مطرح کرده و آن را امضا کنید.
</big>
</div>
==درخواست مدیر شدن، Fwldom (2)==
<div class="boilerplate" style="background-color: #efe; margin: 2em 0 0 0; padding: 0 10px 0 10px; border: 1px dotted #aaa;">
درود، گویا ویکیکتاب مدیر فعال ندارد و دارد به انقراض میرود.
با توجه به فعالیتها و مشارکتهایی که در ویکیکتاب فارسی داشتهام، برای دریافت دسترسی مدیریت این پروژه اعلام آمادگی میکنم.
هدف من از درخواست این دسترسی، کمک به نگهداری و توسعهٔ ویکیکتاب، رسیدگی به خرابکاریها، ساماندهی صفحات و انجام کارهایی است که به دسترسی مدیریتی نیاز دارند.
در صورت اعطای دسترسی، تلاش خواهم کرد از ابزارهای مدیریتی با دقت و مطابق سیاستها و اجماع جامعه استفاده کنم و در مواردی که نیاز به تصمیمگیری جمعی باشد، نظر کاربران را در نظر بگیرم.
سوابق ویرایشی و فعالیتهای من برای بررسی در دسترس است و در صورت نیاز آمادهام دربارهٔ سوابق، اهداف و نحوهٔ استفاده از دسترسی مدیریت توضیح بیشتری ارائه کنم. [[کاربر:Fwldom/آمار]]
از کاربران ویکیکتاب درخواست میکنم سوابق و فعالیتهای مرا بررسی کرده و نظر خود را دربارهٔ این درخواست اعلام کنند.
با احترام، --[[کاربر:Fwldom|Fwldom]] ([[بحث کاربر:Fwldom|بحث]]) ۱۶ سپتامبر ۲۰۲۶، ساعت ۱۳:۳۸ (UTC)
:درود بر ویکینویسان عزیز،
:با توجه به اینکه دسترسی مدیریت ویکیکتاب فارسی به اینجانب توسط ویکیمدیا اعطا شده است، درخواستهای قدیمی مدیریت که مربوط به گذشته بوده و دیگر موضوعیت اجرایی ندارند، جمعبندی و مختومه میشوند.
:از مشارکت و نظرات کاربران در درخواستهای پیشین سپاسگزارم.
:از این پس درخواستهای جدید مدیریت مطابق روند و سیاستهای ویکیکتاب بررسی خواهند شد.
:* تا 2 دی 1405 مدیریت ویکیکتاب به اینجانب اعطا شده است، و از این 2 دی به بعد امیدوارم با رشد ویکیکتاب و نظردهی کاربران مدیریت جدید یا تمدید اینجانب انجام شود.
:[[کاربر:Fwldom|Fwldom]] ([[بحث کاربر:Fwldom|بحث]]) ۲۸ سپتامبر ۲۰۲۶، ساعت ۱۱:۴۵ (UTC)
</div>
7tcqbs8lnz2ihr33i54g1zg4xsbpame
135293
135288
2026-09-29T06:40:15Z
Vivairan2
28134
نسخهٔ [[Special:Diff/135288|135288]] از [[Special:Contributions/Fwldom|Fwldom]] ([[User talk:Fwldom|بحث]]) خنثی شد
135293
wikitext
text/x-wiki
{{ویکیکتاب:درخواستهای مدیر شدن/الگوی بایگانی}}
<span class="header_icon" style="padding-right: 4px;" aria-hidden="true" role="footer">[[File:OOjs UI icon downTriangle.svg|15px|middle|link=]]</span> [[#footer|پایین صفحه]]
<div style="border:solid #ffbd01 2px; margin:0% 1% 1% 0%; padding:1ex 2% 1ex 2%; background:#ffffdc; text-align:center;">
<big>
در این صفحه '''درخواستهای مدیر شدن''' مطرح میشوند. مدیر کاربریست که اختیارات بیشتری برای ادارهٔ وبگاه دارد. در صورتی که تقاضای ارتقای دسترسی دارید، در بخش '''تقاضای نامزدی برای مدیریت''' امضای کاربری خود را وارد کنید.
مدیران پیشین ویکیکتاب فارسی:
[[کاربر:Kaveh|کاوه]]
[[کاربر:مجید~fawikibooks|مجید]]
[[کاربر:komeil_4life|کمیل]]
[[کاربر:Doostdar|دوستدار ایران بزرگ]]
<span style="color: red;">توجه</span> داشته باشید که آدرس ایمیل شما بایستی در ترجیحات یا در صفحهٔ کاربری وارد شده باشد. در صورتی که در نوشتن کتاب، ایجاد رده، الگو، صفحه راهنما، سیاستها و رهنمودها، ... در ویکیکتاب مشارکت داشتهاید میتوانید به صفحه مشارکت خود پیوندی قرار دهید و در نهایت با ذکر دلیل در خواست خود را مطرح کرده و آن را امضا کنید.
</big>
</div>
==درخواست مدیر شدن، Fwldom (2)==
<div class="boilerplate" style="background-color: #efe; margin: 2em 0 0 0; padding: 0 10px 0 10px; border: 1px dotted #aaa;">
درود، گویا ویکیکتاب مدیر فعال ندارد و دارد به انقراض میرود.
با توجه به فعالیتها و مشارکتهایی که در ویکیکتاب فارسی داشتهام، برای دریافت دسترسی مدیریت این پروژه اعلام آمادگی میکنم.
هدف من از درخواست این دسترسی، کمک به نگهداری و توسعهٔ ویکیکتاب، رسیدگی به خرابکاریها، ساماندهی صفحات و انجام کارهایی است که به دسترسی مدیریتی نیاز دارند.
در صورت اعطای دسترسی، تلاش خواهم کرد از ابزارهای مدیریتی با دقت و مطابق سیاستها و اجماع جامعه استفاده کنم و در مواردی که نیاز به تصمیمگیری جمعی باشد، نظر کاربران را در نظر بگیرم.
سوابق ویرایشی و فعالیتهای من برای بررسی در دسترس است و در صورت نیاز آمادهام دربارهٔ سوابق، اهداف و نحوهٔ استفاده از دسترسی مدیریت توضیح بیشتری ارائه کنم. [[کاربر:Fwldom/آمار]]
از کاربران ویکیکتاب درخواست میکنم سوابق و فعالیتهای مرا بررسی کرده و نظر خود را دربارهٔ این درخواست اعلام کنند.
با احترام، --[[کاربر:Fwldom|Fwldom]] ([[بحث کاربر:Fwldom|بحث]]) ۱۶ سپتامبر ۲۰۲۶، ساعت ۱۳:۳۸ (UTC)
:درود بر ویکینویسان عزیز،
:با توجه به اینکه دسترسی مدیریت ویکیکتاب فارسی به اینجانب توسط ویکیمدیا اعطا شده است، درخواستهای قدیمی مدیریت که مربوط به گذشته بوده و دیگر موضوعیت اجرایی ندارند، جمعبندی و مختومه میشوند.
:از مشارکت و نظرات کاربران در درخواستهای پیشین سپاسگزارم.
:از این پس درخواستهای جدید مدیریت مطابق روند و سیاستهای ویکیکتاب بررسی خواهند شد.
:* تا 2 دی 1405 مدیریت ویکیکتاب به اینجانب اعطا شده است، و از این 2 دی به بعد امیدوارم با رشد ویکیکتاب و نظردهی کاربران مدیریت جدید یا تمدید اینجانب انجام شود.
:[[کاربر:Fwldom|Fwldom]] ([[بحث کاربر:Fwldom|بحث]]) ۲۸ سپتامبر ۲۰۲۶، ساعت ۱۱:۴۵ (UTC)
</div>
==درخواست مدیر شدن، vivairan (۲)==
درود. با توجه به فعالیتهایی که برای گسترش محتوای ویکیکتاب انجام دادهام و همان طور که میدانید فعالترین کاربر ویکیکتاب بودهام برای دریافت دسترسی مدیریت این پروژه درخواست میدهم. بنده در بهبود پروژه از نظر کمی و کیفی بسیار کوشیدهام و علاوه بر ایجاد صفحات و کتابهای جدید توانستهام راهنماها، ردهها، الگوها، ... را ویرایش کنم. از این رو برای بهبود محتوای ویکیکتاب و مبارزه با خرابکاریها درخواست مدیریت میدهم.
::چند نمونه از الگوهایی که ایجاد کردهام: [[الگو:مکمل]]، [[الگو:حص-خرابکاری]]، [[الگو:Long dash]] هستند که همگی برای این وبگاه ضروری بودهاند و زیرساخت فنی این ویکی برای توسعه را فراهم میآورند.
::چند نمونه از سیاستها و رهنمودهایی که ایجاد کردهام: [[ویکیکتاب:فرض حسن نیت]]، [[ویکیکتاب:صفحه حمله]]، [[ویکیکتاب:اجماع]] هستند که برای مشارکت جمعی در این وبگاه ضروری هستند و به ویرایشهای مفید بیشتر در این ویکی کمک میکنند.
::چند نمونه از ایبوکهایی که به آنها محتوای جدید افزودهام: [[بررسی موردهایی از اخلاق حرفهای]] و [[ویکیکودک:دایناسورها]] که میتوانند برای مخاطبان ویکیکتاب سودمند باشند.
--[[کاربر:Vivairan2|Vivairan2]] ([[بحث کاربر:Vivairan2|بحث]]) ۲۹ سپتامبر ۲۰۲۶، ساعت ۰۶:۰۲ (UTC)
likazdtisq66jvi18hwucd587p1cfo4
ویکیکتاب:ویکیکتاب چیست؟
4
4079
135323
111365
2026-09-29T08:30:39Z
Fwldom
26269
/* تاریخچه */
135323
wikitext
text/x-wiki
{{سیاست|وک:چیست}}
هدف این صفحه این است که توضیح دهد ویکیکتاب چه چیزی هست و چه چیزی نیست؟ و چه فرقی با سایر پروژههای ویکیمدیا دارد.
== تاریخچه ==
ویکیکتاب فارسی در تاریخ ۳ شهریور ۱۳۸۳ کار خودش را رسماً آغاز کرد. '''ویکیکتاب''' یک مجموعه از [[راهنما:واژهنامه|نوشتار]] [[w:محتوای آزاد|آزاد]] است که هر کسی حتی '''شما''' میتوانید آن را ویرایش کنید. تمام مطالب موجود در ویکیکتاب تحت [[مجوز مستندات آزاد گنو]] انتشار میابد این بدین معناست است که استفاده هر آنچه در ویکیکتاب یافت میشود رایگان بوده و تمام کتابهای موجود نیز با رعایت این حقوق بر روی ویکیکتاب قرار گرفتهاند. برای اطلاعات بیشتر میتوانید [[ویکیکتاب:حقوق نسخه برداری|حقوق نسخه برداری]] را مطالعه فرمایید. نام پیشین ویکیکتاب، '''ویکینسک''' بوده است.
== ویکیکتاب چیست؟ ==
بطور خلاصه میتوان گفت ویکیکتاب مجموعهای از [[راهنما:واژهنامه#نوشتار|نوشتار]]ها به صورت [[fa:w:محتوای باز|محتوای باز]] است. از آنجایی که واژهٔ '''نوشتار''' معانی گستردهای دارد، این صفحه راهنما ساخته شده است تا نوشتارهای مورد تایید ویکیکتاب را مشخص کند. به عنوان مثال مجموعه آثار شکسپیر در رشتهٔ ادبیات میتواند یک کتاب آموزشی باشد اما نمیتواند در ویکیکتاب جایی داشته باشد.
=== محتوای ویکیکتاب ===
ویکیکتاب تارنمایی برای کتابهای درسی، متون تفسیری (نقد کتاب)، راهنماهای آموزشی و دستور عملها است. این موارد میتوانند در یک کلاس درس، آموزشگاه معتبر، به شکل خودآموز یا بعنوان بخشی از آموزشهای ویکیدانشگاه (در صورت وجود برای زبان مورد نظر) مورد استفاده قرار بگیرند.
به عنوان یک قاعده کلی، ویکیکتاب فقط کتابهای آموزشی را شامل میشود و بیشتر کتابهایی که چه داستانی باشند و چه نباشند، در این پروژه جایی نخواهند داشت، مگر اینکه که محتوای آموزشی داشته باشند، هرچند در برخی موارد کتابهای داستانی میتوانند به عنوان ابزار آموزشی مورد استفاده قرار بگیرند و در غیر این صورت مطابق با [[ویکیکتاب:سیاست_حذف|سیاست حذف]] '''باید''' از پروژه حذف شوند.
=== ویکیکتاب شامل متون تفسیری است ===
{{اصلی|ویکیکتاب:تفسیر متون}}
اگرچه ما اجازه کپی کردن یکجای آثار مشمول حقوق نسخه برداری را به ویکیکتاب نداریم، اما اجازه [[ویکیکتاب:تفسیر متون|تفسیر متون]] را که در حوزه متون اصلی هستند داریم و از آنها به عنوان یک راهنما برای مطالعه یا بررسی کردن یک کتاب استفاده میکنیم. دقت داشته باشید برای اینکه مجاز باشید بر یک کتاب مرجع تفسیر بنویسید حتماً بایستی آن کتاب، با [[ویکیکتاب:حقوق نسخه برداری|مجوز پروژه]] سازگار باشد.
=== ویکیکتاب برای راهنماهای بازیهای ویدئویی نیز هست ===
{{اصلی|ویکیکتاب:راهنمای بازی ویدئویی استراتژیک}}
ویکیکتاب محلی برای راهنماها و طریقه گذرندان مراحل بازیها است، در حقیقت این قبیل راهنماها به محتوای آموزشی ویکیکتاب تعلق دارد، هرچند کتابهای دیگر درباره بازیهای تصویری مثل یک تحقیق پژوهشگر از بازی یا راهنما و آموزش ساخت محیطهای گرافیکی یک بازی در اینجا جای میگیرد. [http://strategywiki.org/wiki/Main_Page ویکیاستراتیژی] مکان دیگری برای نوشتن راهنما خط مشی یک بازی است.
== ویکیکتاب چه چیزهایی نیست؟ ==
=== ویکیکتاب واژهنامه نیست ===
اگرچه [[w:لغتنامه|لغتنامه]] یک کتاب است، اما یک لغتنامه تخصصی و چند منظوره در یک پروژه دیگر میتواند مفیدتر باشد، از این رو ویکیکتاب لغتنامه نیست و میتوانید از پروژه برادر به نام [[wikt:صفحهٔ اصلی|ویکیواژه]] به این منظور استفاده کنید. همچنین کتابهایی که فقط شامل معنی لغت، لغات مترادف یا اصطلاحات عامیانه باشند میتوانند از ویکیکتاب حذف شوند.
'''استثنا''': ویکیکتاب به پروژهها اجازه میدهد بنابر نیازهایشان از امکاناتی مانند لغتنامه استفاده کنند. مثلاً در پروژههای آموزش زبان، گاهی برحسب نیاز باید لغتنامه ایجاد شود و یا در پروژههای آموزش ریاضی، برای توضیح اصطلاحات تخصصی نیاز به لغتنامه است.
=== ویکیکتاب فضای میزبانی رایگان نیست ===
'''صفحات ویکیکتاب صفحات خانگی شخصی نیستند.''' [[ویکیکتاب:ویکیکتابنویسان|کتابنویسان]] دارای صفحات کاربری هستند و استفاده از صفحات ویکیکتاب برای درج مطالب شخصی (مثل وبلاگ) اشتباه است. اگر قصد دارید یک صفحه بی ارتباط به کتاب (مثلا رزومه شخصی) ایجاد کنید، بدین منظور میتوانید از فضاهای رایگان اینترنتی یا سرویس دهندگان [[w:وبلاگ|وبلاگ]] استفاده کنید.
=== ویکیکتاب دانشنامه نیست ===
ویکیکتاب جایی برای نوشتارها و دیگر مسائل مهم آموزشی میباشد، بنابر این دانشنامه نیست، پس:
۱- '''پروژه ویکیکتاب به قالب مقالات دانشنامهای تعلق ندارد'''، بدین منظور میتوانید از پروژه برادر ویکیکتاب، یعنی [[w:ویکیپدیا|ویکیپدیا]] بازدید/استفاده کنید.
۲- '''ویکیکتاب به گستردگی یک دائرةالمعارف که بر روی یک موضوع مشخص متمرکز شده است نیست.'''
=== ویکیکتاب سرویس خبری نیست ===
ویکیکتاب جایی برای منتشر کردن مقالات خبری نیست. بدین منظور از پروژهٔ برادر با نام [[n:|ویکیخبر]] استفاده میشود.
=== ویکیکتاب جایی برای منتشر کردن کارهای اصیل نیست ===
ویکیکتاب میزبان ''' منابع آموزشی''' است، اما:
۱- '''جایی برای کارهای داستانی یا ادبی نیست.''' ویکیکتاب فقط از نوشتارهای داستانی میزبانی نمیکند، یعنی نوشتارهای ادبی و داستانی مورد تایید ما نیستند. بدین منظور میتوانید از [http://fiction.wikia.com داستان ویکیا] استفاده کنید.
۲- '''محلی برای انتشار تحقیقات دست اول در هیچرشتهای نیست.'''
=== ویکیکتاب آینهای برای متن کتابها نیست ===
:#'''داستان یا ادبیات''': ویکیکتاب به داستان یا ادبیات اجازه انتشار نمیدهد. یکی از ویکیهای مناسب برای اصل داستان [http://www.wikia.com/wiki/c:fiction ویکیداستان] است.
:#'''تحقیق دست اول''': ویکیکتاب برای انتشار تحقیقهای دست اول نیست.
:#'''متنهای منتشر شده''': برای این کار از ویکیسورس (Wikisource) استفاده کنید.
=== ویکیکتاب تابلوی تبلیغات نیست ===
ویکیکتاب [[w:fa:جعبه صابون|جعبه صابون]] برای تبلیغات نیست.
=== ویکیکتاب کاغذ نیست ===
[//meta.wikimedia.org/wiki/Wiki_is_not_paper ویکیکتاب کاغذ نیست]. بدین معنی که ویکیکتاب محدودیتی در اندازه صفحاتش ندارد و میتواند شامل پیوندها و چیزهای دیگر باشد. این بدین معناست که طول و سبک صفحات و نوشتن به شکل صفحهای نمیتواند در خور اینجا باشد.
== اطلاعات بیشتر ==
* [[ویکیکتاب:ویکیکودک چیست؟|ویکیکودک چیست؟]] -متنی دربارهٔ سیاستهای مربوط به نوشتن در [[ویکیکودک|ویکی کودک]] به عنوان بخشی از ویکیکتاب
* [[راهنما:کار_مدرسه|ویکیمدرسه چیست؟]] -متنی دربارهٔ سیاستهای مربوط به نوشتن در [[ویکیجزوه/ویکیمدرسه|ویکی مدرسه]] به عنوان بخشی از ویکیکتاب
* [[ویکیکتاب:همکاری با ویکیداده|همکاری با ویکیداده]] - متنی درباره نحوه وارد کردن میانویکی و اطلاعات در ویکیداده
== سیاستهای رسمی مشابه در دیگر پروژههای برادر ==
* [[W:ویکیپدیا:ویکیپدیا چه چیزی نیست|ویکیپدیا:ویکیپدیا چه چیزی نیست]]
n7oymug5hwpydoug6bzkzcqkzr7vv80
تاریخ ایران
0
4303
135278
134369
2026-09-28T12:02:43Z
Fwldom
26269
/* تاریخ ایران پس از اسلام */
135278
wikitext
text/x-wiki
{{وضعیت|75%}}
{{پارسی سره}}
{{جستجوی کتاب}}
'''راهنما:'''
:[[w:پیش از میلاد|پ.م.]]= پیش از میلاد مسیح
:[[w:میلادی|م.]]= میلادی
:[[w:هجری قمری|ه.ق.]]= هجری قمری
:[[w:هجری خورشیدی|ه.خ.]]= هجری خورشیدی (شمسی)
== تاریخ ایران پیش از اسلام ==
[[پرونده:Human-headed Winged Bulls Gate Khorsabad - Louvre 01a.jpg|thumb|250px|left|گاو بالدار آشوری، متعلق به شهر نینوا پایتخت آشور در [[w:موزه لوور|موزه لوور]] [[w:پاریس|پاریس]]. مادها شهر نینوا را ویران و حکومت آشور را منقرض کردند و سرزمینهای آشور را به نخستین شاهنشاهی ایران ملحق کردند.]]
* [[/ایران پیش از ورود آریاییها|ایران پیش از ورود آریاییها]]
* [[/ایران پس از ورود آریاییها|ایران پس از ورود آریاییها]] (آغاز هزارهی اول پ.م.)
* [[/ایلامیان|ایلامیان]] (پیش از ۳۲۰۰ سال پ.م. - ۵۳۹ پ.م.)
* [[/ماد|ماد]] (آغاز سده هشتم پ.م. - ۵۵۰ پ.م.)
* [[/هخامنشیان|هخامنشیان]] (۵۵۹ پ.م. - ۳۳۰ پ.م.)
* [[/سلوکیان|سلوکیان]] (۳۳۰ پ.م. - ۱۲۹ پ.م.)
* [[/اشکانیان|اشکانیان]] (۲۵۶ پ.م. - ۲۲۴ م.)
* [[/ساسانیان|ساسانیان]] (۲۲۴ م. - ۶۵۲ م.)
== تاریخ ایران پس از اسلام ==
[[پرونده:Vakeel-mosque.jpg|thumb|250px|left|[[w:مسجد وکیل|مسجد وکیل]] [[w:شیراز|شیراز]]، ساخته شده در دوران [[w:زندیان|زندیه]]]]
* [[/طاهریان|طاهریان]] (۲۰۵ - ۲۵۹ ه.ق.)
* [[/صفاریان|صفاریان]] (۲۶۱ - ۲۸۷ ه.ق.)
* [[/سامانیان|سامانیان]] (۲۶۱ - ۳۸۹ ه.ق.)
* [[/آل زیار|آل زیار]] (۳۱۵ - ۴۶۲ ه.ق.)
* [[/آل بویه|آل بویه]] (۳۲۰ - ۴۴۰ ه.ق.)
* [[/غزنویان|غزنویان]] (۳۸۸ - ۵۵۵ ه.ق.)
* [[/سلجوقیان|سلجوقیان]] (۴۲۹ - ۵۹۰ ه.ق.)
* [[/اسماعیلیان|اسماعیلیان]] (۴۸۳ - ۶۵۴ ه.ق.)
* [[/خوارزمشاهیان|خوارزمشاهیان]] (۴۷۰ - ۶۱۷ ه.ق.)
* [[/ایلخانان مغول|ایلخانان مغول]] (۶۵۴ - ۷۳۶ ه.ق.)
* [[/تیموریان|تیموریان]] (۷۷۱ - ۹۰۳ ه.ق.)
* [[/صفویان|صفویان]] (۹۰۶ - ۱۱۳۵ ه.ق.)
* [[/افشاریه|افشاریه]] (۱۱۴۸ - ۱۱۶۱ ه.ق.)
* [[/زندیه|زندیه]] (۱۱۶۳ - ۱۲۰۹ ه.ق.)
* [[/قاجار|قاجار]] (۱۲۰۹ ه.ق. - ۱۳۴۵ ه.ق./۱۳۰۴ ه.خ.)
* [[/پهلوی|پهلوی]] (۱۳۴۵ ه. ق./۱۳۰۴ ه.خ. - ۱۳۵۷ ه.خ.)
* [[/جمهوری اسلامی ایران|جمهوری اسلامی ایران]] (۱۳۵۷ ه.خ. - تاکنون)
{{موضوع|ایران}}
[[رده:تاریخ]]
46clh1xc7a274hu1o1n6n60sntnz239
تاریخ ایران/جمهوری اسلامی ایران
0
4317
135279
134057
2026-09-28T12:04:15Z
Fwldom
26269
/* حمله اسرائیل به ایران (۱۴۰۴) */
135279
wikitext
text/x-wiki
{{تاریخ_ایران}}
== حمله به مدرسه فیضیه ==
{{اصلی|[[تاریخ ایران/جمهوری اسلامی ایران/حمله به مدرسه فیضیه|حمله به مدرسه فیضیه]]}}
<div align="justify">
از اولین محرکهای انقلاب ۵۷ به رهبری آیت الله خمینی میتوان به مطرح شدن لایحه انجمنهای ایالتی و ولایتی و نیز لوایح ششگانه و انقلاب سفید (شاه و ملت) توسط رژیم پهلوی اشاره نمود که در پی آن روحانیون و در رأس آنها آیت الله خمینی ساکت ننشستند، و نوروز سال ۴۲ را عزای عمومی اعلام کردند. رژیم پهلوی و عاملان حکومت پهلوی نیز ساکت نماندند و در تاریخ ۲ فروردین ۱۳۴۲ اقدام به سرکوب مدرسه فیضه قم کردند که در پی آن چند تن از طلبهها کشته شدند.
</div>
== کاپیتولاسیون و تبعید روحالله خمینی ==
[[پرونده:Tehran Mosavvar - Issue 27 - Page 20 (crop 02).jpg|بندانگشتی|صحنههایی از جامعه ایران در اوایل انقلاب، اجرای تنبیه توسط کمیته]]
در ۲۵ دی ۱۳۴۲ برابر با ۱۵ ژانویه ۱۹۶۴ دولت علم قانون اجازه استفاده مستشاران آمریکایی در ایران از مصونیتها و معافیتهای قرارداد وین را که برای کارمندان اداری و فنی نوشته شده بود به مجلس سنا برد. در این میان اسدالله علم از پست خود کنارهگیری کرد و حسنعلی منصور در فروردین ۱۳۴۴ نخست وزیر شد.
روحالله خمینی جلسهای با حضور علمای مذهبی قم تشکیل داد و پس از آن نمایندگانی را به شهرها برای اعتراض به این قانون فرستاد. در سخنرانی خمینی در چهارم آبان ۱۳۴۳ در قم، وی این قانون را احیای کاپیتولاسیون در ایران نامید. سخنرانی خمینی با این جملات آغاز شد:
... عزت ما پایکوب شد، عظمت ایران از بین رفت، عظمت ارتش ایران را پایکوب کردند. قانونی را به مجلس بردند که در آن ما را ملحق کردند به پیمان وین... که تمام مستشاران نظامی آمریکا با خانوادههایشان، با کارمندهای فنیشان با کارمندان اداریشان، با خدمهشان... از هر جنایتی که در ایران بکنند، مصون هستند. ملت ایران را از سگهای آمریکا پستتر کردند. چنانچه کسی سگ آمریکایی را زیر بگیرد از او مؤاخذه میکنند اگر شاه ایران یک سگ آمریکایی را زیر بگیرد مؤاخذه میکنند. چنان چه یک آشپز آمریکایی شاه ایران را زیر بگیرد، بزرگترین مقام را زیر بگیرد، هیچکس حق تعرض ندارد. آقا من اعلام خطر میکنم، ای ارتش ایران من اعلام خطر میکنم، ای سیاسیون ایران من اعلام خطر میکنم... والله گناهکار است کسی که فریاد نکند. ای سران اسلام به داد اسلام برسید. ای علمای نجف به داد اسلام برسید. ای علمای قم به داد اسلام برسید...
پس از این سخنرانی خمینی در تاریخ ۱۳ آبان ۱۳۴۳ دستگیر و با پا درمیانی رییس ساواک وقت متعاقبا به ترکیه تبعید شد.
==انقلاب ضد پهلوی==
<div align="justify">
«انقلاب ۱۳۵۷ ایران» که به آن «انقلاب اسلامی» نیز گفته میشود، قیامی بود به رهبری روحالله خمینی و با شرکت اکثریت مردم، احزاب و روشنفکران ایران، که نظام پادشاهی این کشور را سرنگون، و پیشزمینهٔ روی کار آمدن نظام جمهوری اسلامی در ایران را فراهم کرد. انقلاب در ۲۲ بهمن سال ۱۳۵۷ به پیروزی رسید و در ادامه آن نظام جمهوری اسلامی ایران به رهبری سید روحالله خمینی شکل گرفت.
</div>
==کودتای نوژه (۱۳۵۹)==
در ۱۸ تیرماه ۱۳۵۹ این کودتا که مرکز فرماندهی آن در همدان بود با هدف حملهٔ هوایی به منزل روحالله خمینی در حسینیهٔ جماران و کشتن او و سپس حمله به برج مراقبت فرودگاه مهرآباد طراحی شده بود. این کودتا که به فرماندهی سعید مهدیان (یک فرماندهِ پیشین نیروی هوایی ایران) قرار بود انجام شود لو رفت و عوامل آن دستگیر و مجازات شدند.
== جنگ ایران و عراق (۱۳۵۹) ==
به دنبال تثبیت انقلاب و پاکسازی ارتش ایران از طرفداران محمدرضا پهلوی و همچنین فرار برخی از ایرانیها (مانند شاپور بختیار) به عراق و دادن مشاوره به صدام حسین، روابط بین دو کشور ایران و عراق تیره شد. از طرفی صدام حسین عربهای خوزستانی را تحریک به شورش و استقلال میکرد و از طرفی خمینی شیعیان عراقی را تحریک به قیام علیه حکومت صدام حسین میکرد. در نهایت با استمرار دعوای قدرت بین بنی صدر و مجاهدین خلق از یکسو و خمینی و حزب جمهوری اسلامی از سوی دیگر، صدام حسین جنگ با ایران را با پاره کردن قرارداد الجزایر آغاز کرد.
گر چه در ۳ خرداد ۱۳۶۱ شمسی، ایرانیها توانستند نیروهای عراقی را به مرز پس برانند، ولی قدرتطلبی جمهوری اسلامی ایران باعث شد جنگ را ادامه دهند و از مذاکره سیاسی به منظور آتشبس سریع، خودداری کنند.
آخوندها که نیاز به سرکوب گسترده مخالفان داخلی داشتند، جنگ را نعمت الهی دانستند و آن را تا سال ۱۳۶۷ ادامه دادند.
== ویژگیهای ایران پس از انقلاب ۱۳۵۷==
[[پرونده:Teheran Metro women only.jpg|250px|بندانگشتی|چپ|تفکیک جنسی در متروی تهران، ۱۳۹۶ هجری خورشیدی]]
از مهمترین ویژگیهای انقلاب ترویج عادتهای غیرعادی که فرهنگ ملی را از صفات پسندیده تهی ساخت از جمله مذهبیگری یا مذهبی بودن بصورت غیرعادی بود که در اصطلاح عامه به اینگونه اعمال ریا و تظاهر گفته میشود. با چنین شیوههایی، فرهنگ دروغ اشاعه یافت و هر کس برای به دست آوردن مال، جاه و مقام و کسب وجهه در اجتماع و بهره جویی از رانتهایی که اطلاعات آن در حوزههایی متشکله توسط چنین اشخاصی در مساجد و محافل نقل شده و با استفاده از روابط و پایگاههای بسیج و محافل مذهبی، با نزدیک کردن خود به سرکردگان و ذینفوذان و بهرهگیری مادی و اشغال مناصب از پایینترین سطح جامعه که روستاها بوده تا بالاترین سطح که کلانشهرها میباشد از رانتها بطور گسترده و مفسدهانگیز استفاده میکردند. این ویژگیها باعث ایجاد طبقه خاص در جامعه گردید و اختلاف طبقاتی شدیدی را بین کسانی که قبل از انقلاب جزو طبقات مرفه جامعه یاطبقه بالا، و قشر متوسط جامعه بودند با طبقه جدیدی که از طرق تظاهر، ریا، دروغ خود راانقلابی و جانفدای آن میدانستند بوجودآمد. این مسئله اکنون بعنوان یک غده سرطانی در جامعه در آمده است که ماهیت واقعی سران انقلاب و اهداف آنها را به مردم نشان داده و قشر جوان، انقلاب کنندگان را که پدران و مادران آنها بودند، گول خورده و سران انقلاب را خائن و عوامل خارجیها دانسته و استفاده از نام اسلام را صرفاً برای تحریک احساسات مذهبی مردم برای پیشبرد اهداف از پیش تعیین شده میدانند.
دلایل آن را حذف کلیه رقبای خود و عدم توجه به مسائل اسلامی از سوی رهبر و سران کشور، و عدم اجرای قانون اساسی تدوین شده توسط اسلامیون، بخصوص در مورد بندهایی که در مورد رهبری و پاسخگو نبودن وی، عدم اعمال قانون در مورد مفسدین بزرگ مالی که با پیشرفت تکنولوژی و وجود افرادی دلسوز در سازمانها و افشای واقیعیتها، مردم را به اسلام وصداقت مسئولین بدبین نموده و بزرگترین عارضه البته برای انقلاب در جامعه ایرانی، فراری شدن از دین اسلام و گرایش به ملیت و ایجاد تضاد شدید قشر بر آمده از انقلاب با انقلابیون اولیه و انقلابیون جدید به وجود آمد که بزرگترین نمایش این تضاد در ۱۳۸۸ و ۱۳۹۶ به صورت علنی دیده شد. از دیگر ویژگیهای انقلاب افزایش تفکیک جنسیتی و کاهش ازدواج درجامعه میباشد. سایر ویژگیهای انقلاب عبارتند از فسادهای بزرگ مافیایی آن هم از سوی رهبران اصلی جامعه و ایجاد تنش با کشورهای همسایه و هزینهکردهای عمده برای گروههای شبه نظامی برای ایجاد ناآرامی در منطقه به اصطلاح برعلیه آمریکا و تقابل با اسرائیل و تقویت هلال شیعی.
===بحران جنسی===
[[پرونده:Iranian Girl's presence in the 22 Bahman 2017 rally by Tasnimnew.com01.jpg|بندانگشتی|چپ|حضور دختران جداشده از پسران (با تفکیک جنسی) در راهپیمایی]]
پس از انقلاب ۱۳۵۷ ایران تفکیک بین زنان و مردان در فضاهای عمومی، پررنگتر شد. امروزه در بعضی از مکانها مانند مدارس بین دانشآموزان جدایی جنسی وجود دارد اما در بعضی از مکانها مثل دانشگاهها جدایی جنسی وجود ندارد. با ظهور رژیم جمهوری اسلامی جداسازی جنسی در مکانهای عمومی مثل سواحل و استخرهای شنا در قانون تصریح و تکلیف شدهاست، برای زنان در اتوبوس و مترو قسمتهای جداگانهای قرار داده شدهاست و به مردان اجازه نمیدهند وارد سمت زنانه بشوند. در مترو این اقدام مرد، ایجاد مزاحمت برای بانوان تلقی میشود و جرم است. بر اساس قوانین، بخشهای جداگانهای در جلسات سیاسی، کنفرانسها، مراسم ازدواج و تشییع جنازه باید برای زنان و مردان در نظر گرفته شود. در ادارات و سازمانهای رژیم جمهوری اسلامی تفکیک جنسی ممکن است در بین کارکنان و دوایر داخلی یک سازمان صورت گیرد، مانند بخش زنان و زایمان یک بیمارستان، یا ممکن است که سازمان به صورت تک جنسی تشکیل شود و به وظایف خاص خود در سطح جامعه بپردازد مانند سرای سالمندان بانوان یا آقایان و کتابخانههای تک جنسی پسرانه و دخترانه. کنسرتها و جشنهای بسیاری به دلیل اختلاط دو جنس توسط عوامل دولتی بسته شدند و با گردانندگان آنها برخورد شد. یکی از فضاهای شهری تک جنسیای که پس از انقلاب ۱۳۵۷ ساخته شدهاند پارکهای بانوان هستند: فضایی زنانه به منظور خلق فضاهای امن و دور از دسترس مردان. پارکهای بانوان در بسیاری از شهرهای ایران ایجاد شدهاست که به مردان اجازه ورود داده نمیشود مثل بوستان بهشت مادران در تهران و پارک بانوان صدف اصفهان.
از اوایل دهه هشتاد بحران جنسی در جامعه ایران آغاز شد و به مهمترین آسیب اجتماعی در ایران مبدل شد. از آنجایی که اگر راه درستی برای تخلیه تحریکات جوانی در یک جامعه وجود نداشته باشد، قاعدتاً مسیرهای دیگری باز میشود و تحریکات اجتماعی در سطح بالایی باقی نمیماند، بحران جنسی در ایران شکل گرفت. از مصادیق بحران جنسی در این سالها میتوان به دگرباشی جنسی، انحرافات جنسی، عدم ارضاء جنسی افراد در بستر خانواده، تمایل به رابطه جنسی انتزاعی و فانتزی تحتِ تأثیر محیط سایبری و اینترنتی و... اشاره کرد. تحول عظیمی در رابطه دختر و پسر در جامعه ایران مشاهده شده و مطالعات نشان میدهد این الگو به شدت دگرگون شده است. یکی از پیامدهای این بحران در ناسازگاری آن با فرهنگ جامعه ایرانی دیده میشود. از دیگر پیامدهای این بحران میتوان به رژیمهای غذایی که در جهت مسائل جنسی گرفته میشود، کوتاهشدن عمر زندگی زناشویی، تنوع جراحیهای پزشکی، تمایل به برقراری شکلهای مختلف رابطه جنسی و... اشاره کرد. پیامدهای این بحران به طور کلی هم بخش زناشویی و هم بخشهای دیگر مانند دوران بلوغ افراد را در ایران درگیر کرد.<ref>https://ana.press/fa/news/45/29627/راه-گذار-از-بحران-جنسی-در-ایران-چیست</ref><ref>https://www.isna.ir/news/97021709251/جامعه-دچار-بحران-جنسی-شده-است</ref><ref>http://www.ghasednews.com/بخش-بحران-یا-انقلاب-جنسی-62/2251-هشدار-یک-مردم-شناس-درباره-وقوع-انقلاب-جنسی</ref> در حالیکه مستندها و کتابهای بسیاری همچون قیام پرشور: انقلاب جنسی در ایران از پردیس مهدوی استاد جامعهشناسی منتشر شده است بعضی همچون امیر مهدی کلیدری محقق مسائل اجتماعی ادعا کردهاند کودتای جنسی در ایران رخ داده است نه انقلاب جنسی.<ref>http://www.ghasednews.com/بخش-بحران-یا-انقلاب-جنسی-62/7183-کودتای-جنسی-یا-انقلاب-جنسی</ref>
دههٔ ۱۳۹۰ با گسترش و کاهش سن روسپیگری در ایران همراه شد و پژوهش دانشگاه شهید بهشتی نشان داد که آمار روسپیگری میان زنان متأهل این کشور، بیشتر از مجردها بودهاست و ۱۱ درصد روسپیان پایتخت ایران، با آگاهی همسرانشان دست به روسپیگری میزدهاند. تنفروشی آنلاین چه از راه وبگاههایی که زنان را برای صیغه (معمولاً کوتاهمدت و ساعتی) فهرست میکنند چه در شبکههای اجتماعی همانند اینستاگرام و تلگرام، در دههٔ ۱۳۹۰ گسترش بالایی یافت. در این دوران، در پوشش پیشههایی چون ماساژوری، تنفروشی انجام گرفتهاست.
=== پارانویای جمهوری اسلامی ===
در پارانویای حکومت اسلامی، آمریکا، اسرائیل، فراماسون ها و بهایی ها جایگاه ویژه ای دارند. آخوندها که خود را وارث اسلام ناب حقیقی می دانند، دنیا را متهم می کنند که در برابر آنها قد علم کرده اند. آنها بهایی ها را فرقه ضالهای میشمارند که در حال جاسوسی برای خارجی ها (اسرائیلی ها و آمریکایی ها) هستند و یهودی های ایرانی هم گاهاً مورد سوظن آخوندها قرار می گیرند، چرا که در مظان اتهام همدستی با همتایان اسرائیلی خود قرار دارند. آمریکا به خاطر اینکه تحت نفوذ یهودیان آمریکایی (که متحدان همیشگی اسرائیلی ها هستند) به عنوان شیطان بزرگ، حامی همیشگی اسرائیلی ها در پیمان های نظامی و وتوهای سازمان ملل متحد قلمداد میشوند و هدف نظام مقدس جمهوری اسلامی، نابودی اسرائیل، و برقرار سازی کشور مستقل فلسطین است.
پارانویای آخوندها بر علیه بهایی ها چند دلیل دارد. اول اینکه بابی گری و بهائیت، نخستین دین رسمی پس از اسلام است که اعلام وجود کرده است. با وجود اینکه محمد در قرآن به عنوان آخرین پیامبر نامیده شده، بهائیان به پیامبر پس از محمد از جمله بهاالله اعتقاد دارند. دومین مورد بستن پرونده امام زمان در دین بهائیت است و بهائی ها اعتقاد دارند که امام زمانشان ظهور کرده و دیگر نیازی به انتظار برای امام زمان نیست. سومین مسئله، بستن پرونده آخوندگی گری در بهائیت است. بدین ترتیب که بهایی ها کسی را واسطه مذهبی میان خودشان و خدا قرار نمی دهند و هر کس موظف است تا شخصاً مسائل دینی-مذهبی خودش را با تحقیق و تفحص حل کند.
از جمله پارانویای جمهوری اسلامی، میتوان به باور به وارد شدن یهودیان به مذهب اسلام و تحریف و فرقهسازی این مذهب اشاره کرد. این اصطلاح را مسلمانان به اسم '''اسرائیلیات''' نامیدهاند. آنها میپندارند که یهودیان قادر هستند با برنامهریزی از قبل، به طور ظاهری مسلمان شده، در حالی که باطناً به آئین یهود اعتقاد دارند و دروغهایی را به پیامبران و امامان مسلمانان وارد کنند و باعث شوند تا مردم مسلمان از اعتقاداتشان منحرف شوند. این اعتقاد البته ریشه در قرآن هم داشته است. در آنجایی که قرآن میگوید «هر آن دشمنترین انسانها نسبت به اسلام را در میان مشرکین و یهودیان بینی»، باعث شده تا مسلمانان تمام مشکلات دنیوی و کجروی های فرقههای تشکیل شده از اسلام (که فرقه ظاله نامیده میشود) را به اسم یهودیها تمام میکنند.
=== دشمنی با اسرائیل ===
دشمنی آخوندها با اسرائیل، به قرآن برمیگردد. آنجا که قرآن به مسلمانان اجازه میدهد با کسانی که آنها را از خانهها و وطنشان آواره کردهاند، بجنگند. در ابتدای انقلاب اسلامی، مسئولین جمهوری اسلامی از یاسر عرفات و مسئولین سازمان فتح، در ایران دعوت به عمل آوردند. سفارت سابق اسرائیل (در زمان پهلوی) را به عنوان سفارت فلسطین بازگشایی کردند. هنگامی که ایران در سال ۱۳۶۱ با حکومت بعث صدام حسین در نبرد بود و خرمشهر را پس گرفت، طولی نکشید که اسرائیل به منظور پاکسازی جنوب لبنان از سازمان فتح، به آنجا حمله نظامی کرد. اما اسرائیلیها تا بیروت رفتند و پشت دروازه شهر رسیده بودند. اما به خاطر پایداری مبارزان لبنانی، نتوانستند وارد شوند. در این هنگام گروهی از اسلامگرایان ایرانی خواستار مبارزه مستقیم با اسرائیل در منطقه لبنان شده بودند. خمینی به پیروانش گفت که «راه قدس از کربلا میگذرد» یعنی ابتدا بایستی رژیم صدام حسین را شکست دهیم و بعد به معضل اسرائیل بپردازیم. همزمان هم گروه چهار نفره از دیپلماتهای ایرانی به سوریه اعزام شدند تا از طریق مرز لبنان-سوریه وارد لبنان شوند و منطقه لبنان را برای عملیات نظامی ایران در مقابل اسرائیل ارزیابی کنند که توسط سربازان اسرائیلی ربوده شدند. گرچه ایران مستقیماً وارد جنگ با اسرائیل نشد، اما رزمندههای ایرانی (در قالب سپاه پاسداران) مشغول عضوگیری از لبنانیهای شیعه در لبنان شدند و به آنها آموزش نبردهای جنگی دادند. این شیعهها که ابتدا عضو جنبش اَمَل بودند، بعدها در گروه «حزب الله لبنان» یک حزب تشکیل دادند و با انجام عملیاتهای چریکی، به نیرویهای نظامی اسرائیل ضربات سختی وارد کردند که در نهایت اسرائیل مجبور شد خاک لبنان را ترک کند. میتوان گفت عملیات نظامی حزب الله لبنان علیه سربازان اسرائیلی، اولین جنگ نیابتی (Proxy War) بین ایران و اسرائیل بود.
نمونه دیگری از دشمنی بین ایران و اسرائیل، دشمنی ایران با آمریکا بود. پس از انقلاب، گروههای چپی (مثل تودهایها، فدائیها، مجاهدین) بر طبل مبارزه با امپریالیسم میکوبیدند. اعدام حبیبالله القانیان، سرمایهدار ایرانی-یهودی، موجی از محکومیتهای خارجی (از جمله در میان آمریکاییها) را برانگیخت. گروهی از دانشجویان ایرانی به اسم دانشجویان خط امام، در ۱۳ آبان ۱۳۵۸ به داخل سفارت آمریکا وارد شدند و اعضای سفارت را گروگان گرفتند. این دفعه دومی بود که چنین عملی (وارد شدن به سفارتخانه آمریکا) انجام شده بود. اما این دفعه، خمینی هم از حرکت دانشجوها حمایت کرد. با گروگانگیری، دولت موقت استعفا داد و اموال ایرانیها در غرب بلوکه شد. ایرانیها به خاطر حمایت آمریکا از دیکتاتوری شاه، حمایت آمریکا از اسرائیل و ترس از کودتای دوباره ارتش شاه با کمک دیپلماتها و جاسوسهای سیا، این رفتارها را توجیه میکردند.
===بحران اقتصادی===
وقوع انقلاب در سال ۱۳۵۷، پایان ارز تک نرخی و آغاز دورهای از جهشهای پیاپی ارزی در ایران بود که باعث شد نرخ دلار آمریکا تا سال ۱۴۰۰ به بیش از چهار هزار برابر برسد. نرخ غیررسمی ارز که در پایان سال ۸۹ به ۱۰۳۳۷ ریال رسیده بود، از ماههای آغازین سال ۱۳۹۰ وارد یک جهش شد. افزایش مداوم نرخ ارز در ایران پس از انقلاب ۱۳۵۷ ایران آغاز شد و در دوران ریاست جمهوری محمود احمدینژاد و پس از هدفمندسازی یارانهها در ایران بین سالهای ۱۳۹۰ تا ۱۳۹۲ شتاب گرفت.
در ۱۰ مهرماه ۱۳۹۹ قیمت دلار به ۳۰ هزار تومان رسید و قیمت سکه تمام بهار آزادی از مرز ۱۵ میلیون و ۲۰۰ هزار تومان گذشت. نرخ دلار آمریکا که در اوایل سال ۱۴۰۳ حدود ۶۰ هزار تومان بود، در پی حملهٔ موشکی و پهپادی ایران به اسرائیل، در روز ۲۶ فروردین ۱۴۰۳ از ۷۰ هزار تومان عبور کرد. افزایش نرخ ارز تداوم پیدا کرد و در بهمن ۱۴۰۳ نرخ دلار آمریکا در بازار آزاد ایران از ۹۰ هزار تومان عبور کرد. عبدالناصر همتی وزیر اقتصاد دولت پزشکیان بلافاصله پس از تصدی منصب وزارت اقتصاد به حمایت از یکسانسازی نرخ ارز و حذف سامانه نیما پرداخت و مدعی شد که این سیاست باعث کاهش قیمت ارز آزاد خواهد شد اما بر خلاف ادعای وی قیمت ارز به شدت افزایش یافت که حتی به انتقاد رسانههای اصلاح طلب و شروع فرایند استیضاح وی انجامید. به این ترتیب عبدالناصر همتی از وزارت اقتصاد برکنار شد.
در ۱۸ اردیبهشت ۱۳۹۹، مرکز آمار ایران، نرخ تورم گروه عمده خوراکیها، آشامیدنیها و دخانیات در سال ۱۳۹۸ را ۴۲٫۶ درصد اعلام کرد. در شهریور ۱۳۹۹، آمارهای جدید شرکای اصلی تجاری ایران نشان از افت چشمگیر صادرات ایران به این کشورها داشت و در کل صادرات آنها به ایران نیز کاهش یافتهبود. این آمار افت کل صادرات ایران به ۱۴۰ میلیون دلار در هفتماهه ۲۰۲۰ را نشان میداد که علاوه بر قطع صادرات نفت، فروش کالاهای غیرنفتی ایران به هند نیز به شدت سقوط کردهبود. همچنین صادرات ایران به کره جنوبی از ۲٫۱ میلیارد دلار به زیر هفت میلیون دلار سقوط کرد و وارداتش از ۲۸۲ میلیون دلار به ۱۰۵ میلیون دلار کاهش یافت. بدین ترتیب صادرات ایران به کره جنوبی تقریباً قطع شد.
در حین بحران اقتصادی گوشت قرمز دچار کمبود و افزایش بهای چند برابری شد که از میانه سال ۱۳۹۷ شروع و در ماههای پایانی پائیز اوج گرفت. بحران گوشت به یکی دیگر از چالشهای بزرگ دوران دوم دولت حسن روحانی تبدیل شد. بعد از تشدید بحران اقتصادی در ۱۳۹۸، وبسایت تابناک در ۹ تیر ۱۳۹۸ در این زمینه نوشت که افزایش قیمت مسکن عملاً خرید خانه را برای خیلی از مردم دشوار کردهاست و به همین علت، تعداد معاملات مسکن در تهران در مقایسه با خرداد سال ۱۳۹۷ حدود ۶۰ درصد کاهش داشتهاست. تابناک با اشاره به افزایش قیمت مسکن در ۱۵ ماه گذشته (از تیر ۹۸) افزود که هر ماه، مردم برای خرید و حتی اجاره یک سرپناه برای زندگی خود، «ناامیدتر از ماه قبل میشوند». این گزارش حاکیست که در برخی شهرها مانند کرمان، به دلیل افزایش اجاره بها و قیمت مسکن، «مردم کانکسها را به عنوان سرپناهی برای خود انتخاب کردهاند». با بالا گرفتن وضعیت ناپایدار اقتصادی و تعطیلی بسیاری از کارخانهجات و صنایع تولیدی کشور به دلیل کمبود مواد اولیه و عدم اختصاص ارز وارداتی از طرف دولت و همچنین احتکار کالاهای ضروری از طرف افراد سودجو که به منجر به کم شدن این کالاها در بازار شدهبود، در سال ۱۳۹۷ قیمت برخی از کالاهای اساسی و ارزاق عمومی مردم رشد چند برابری پیدا کرد و برخی از گزارشها حاکی از آن بود که مردم برای خرید این کالاها به فروشگاههای بزرگ و زنجیرهای هجوم آوردهاند و قفسهها را خالی کردهاند. قیمت انواع خودرو نیز در بازار ایران به شدت افزایش یافت.
بر اساس آمار رسمی، تعداد بیکاران ایران بین سه تا سه و نیم میلیون نفر است اما کارشناسان، آمار بیکاران را بیشتر از چهار میلیون نفر برآورد میکنند. هر ساله، دست کم حدود هشتصد هزار نفر، وارد بازار کار ایران میشوند و ایران توان کافی برای پاسخگویی به این حجم از متقاضیان کار را ندارد. اقتصاد ایران یک اقتصاد ترکیبی، شامل یک بخش دولتی بزرگ است که در حدود ۶۰ درصد آن به شیوهٔ متمرکز و دستوری اداره میشود.
===رونق شعایر اسلامی===
[[پرونده:Flag of Iran.svg|thumb|250px|پرچم کنونی ایران یک نشان الله در وسط دارد]]
تعداد مساجد (حدود ۳ برابر دوره پهلوی)، نمازخانهها و وضوخانههای بینراهی در ایران افزایش یافته است. همچنین در جمهوری اسلامی تعداد امامزادهها افزایش چشمگیری پیدا کرد (حدود ۷ برابر دوره پهلوی). در فیلمهای تلویزیونی و سینمایی بازیگران زن با حجاب و روسری و چادر ظاهر شدند و با روزهخواری در روزهای ماه رمضان برخورد شدید شد. کتابهای دینی در مدارس افزایش یافت. افزایش مجازاتهای به شیوه اسلامی، جدا کردن دختر و پسر در مکانهای مختلف، افزایش جشنها و عزاداریهای اسلامی، ... از ویژگیهای بارز جمهوری اسلامی بوده است.
==حمله اسرائیل به ایران (۱۴۰۴)==
موضع خصمانه حکومت جمهوری اسلامی ایران در قبال اسرائیل و آمریکا پس از انقلاب ۱۳۵۷، به حمایت پنهانی جمهوری اسلامی از حزبالله در جریان درگیریهای جنوب لبنان (۲۰۰۰–۱۹۸۵) و در سال ۲۰۰۵ به یک درگیری منطقهای نیابتی تبدیل شد. در سال ۲۰۰۶، جمهوری اسلامی بهطور فعال در حمایت از حزبالله در طول جنگ اسرائیل و لبنان مشارکت داشت و به موازات آن حمایت از حماس و جهاد اسلامی فلسطین را آغاز کرد. از طرف دیگر، اسرائیل با استفاده از چندین شبه نظامی در داخل ایران، یک کمپین برای آسیب رساندن به برنامه هستهای ایران آغاز کرد. با شروع جنگ داخلی سوریه، درگیریها بالا گرفت و تا سال ۲۰۱۸ به جنگ مستقیم جمهوری اسلامی و اسرائیل تبدیل شد.
جمهوری اسلامی حمایت قابل توجهی از حزبالله، حماس، و جنبش جهاد اسلامی فلسطین میکند، در حالی که اسرائیل از سازمان مجاهدین خلق ایران حمایت میکند و بهطور مستقیم ترور و حمله به اهداف مرتبط با جمهوری اسلامی انجام داده است. اسرائیل همچنین حملات سایبری علیه ایران را انجام داده و علناً از اقدام نظامی بینالمللی علیه جمهوری اسلامی دفاع میکند.
در ۲۳ خرداد ۱۴۰۴، نیروی هوایی اسرائیل به چندین نقطه در سراسر ایران حملاتی انجام داد. این حملات با نام رمز عملیات ''شیر برخاسته'' که توسط نیروهای دفاعی اسرائیل و موساد انجام شد، تأسیسات هستهای، پایگاههای نظامی، مناطق مسکونی و منازل مقامات ارشد نظامی را هدف قرار داد. ایران در پاسخ به حملات، مجموعهای از موشکهای بالستیک و پهپادها را به سوی اسرائیل پرتاب کرد اما به دلیل وجود سانسور شدید خبری، رسانههای اسرائیلی خسارتها و تلفات این حملهها را به طور کامل اعلام نکردند.
در طی روزهای جنگ، مقامات ایرانی پروازها در فرودگاه بینالمللی امام خمینی را تعلیق کردند. بلافاصله پس از شروع حملات، ساکنان تهران بهصورت گسترده شروع به ترک شهر کردند. سخنگوی نیروهای مسلح جمهوری اسلامی ایران، ابوالفضل شکارچی، وعدهٔ انتقام از اسرائیل و ایالات متحده را داد. سرانجام ایران و اسرائیل با میانجیگری آمریکا و قطر با یک آتشبس دوجانبه در ۳ تیر ۱۴۰۴ موافقت کردند.
==اعتراضات مردمی در دوران جمهوری اسلامی==
جنبشهای اعتراضی مختلفی در این دوره رخ داده است.
===نخستین اعتراضها===
حمله به کوی دانشگاه تهران (درگیری میان دانشجویان با نیروهای انتظامی و افراد موسوم به لباس شخصیها در تیرماه ۱۳۷۸)، اعتراضات به نتیجه انتخابات دهم رئیس جمهوری (خرداد و تیر ۱۳۸۸)، اعتراضات دی ۱۳۹۶ (در پی گرانی و سیاستهای دولت روحانی از مشهد و شهرهای بزرگ شروع شد)، اعتراضات آبان ۱۳۹۸ ایران یا آبان خونین (در پی افزایش قیمت بنزین) و اعتراضات شهریور ۱۴۰۱ (در پی کشتهشدن مهسا امینی) از جمله بزرگترین اعتراضات مردمی این دوره است. اعتراضهای ضدحکومتی ۱۳۸۸ تا ۱۴۰۱ در ایران، کشتههای بسیاری بر جا گذاشتند و در جدیدترین آنها رژیم جمهوری اسلامی اقدام به فیلترینگ گسترده اینترنت و شبکههای اجتماعی نمود. پس از رقم خوردن اعتراضات شهریور ۱۴۰۱، یک گروه مخالف به نام جوانان محلات تهران شکل گرفت.
===جنبش مهسا===
اعتراضهای سراسری ۱۴۰۱ در پی کشتهشدن مهسا امینی در عرض چند روز به تمام ۳۱ استان و به بیش از ۱۰۰ شهر ایران گسترش یافت. حمله به دانشگاه صنعتی شریف نیز از دیگر مواردی بود که در طول اعتراضات رخ داد که تعدادی تنبیه بدنی و حدود ۴۰–۳۰ دانشجو بازداشت شدند. در جمعه سیاه زاهدان حدود ۹۰ نفر کشته شدند. در کشورهای دیگر نیز عده زیادی در حمایت از خیزش مردم ایران تجمعهای اعتراضی برگزار کردند. شماری از چهرههای سرشناس هنری، فرهنگی و ورزشی ایران و فراتر از ایران از اعتراضات سراسری ۱۴۰۱ ایران حمایت کردند. شمار بازیگرانی که از معترضان حمایت کردهاند به اندازهای بود که صدا و سیمای ایران برای پخش و بازپخش تعداد زیادی از مجموعهها و فیلمهای تلویزیونی دچار مشکل شد.
نیروهایی از نیروی انتظامی، سپاه پاسداران و نیروی زمینی ارتش که زیرمجموعه ستاد کل نیروهای مسلح هستند در سرکوب معترضان در پی کشتهشدن مهسا امینی نقش داشتهاند. سپاه پاسداران انقلاب اسلامی جدای از نیروهای خودش از نیروهای بسیج نیز استفاده کردهاست. همچنین از لباسشخصیها و گروهی به نام نیروهای خودجوش سرزمینهای اسلامی نیز استفاده شدهاست. نیروهای سرکوب جمهوری اسلامی برای سرکوب شهروندان در این اعتراضات از ابزارهای گوناگون مانند باتون، باتون برقی، اسلحه دستی و تفنگ جنگی و همچنین از خشونت، یورش به منازل مسکونی، شلیک مستقیم به شهروندان، آسیب رساندن به اموال عمومی و خصوصی مردم از جمله خودروها و مغازهها استفاده کرد. رژیم جمهوری اسلامی تعدادی از معترضان را بازداشت و تعدادی از آنها از جمله محسن شکاری، میلاد زهرهوند و مجیدرضا رهنورد را که در اعتراضات حضور فعال داشتند اعدام کرد.
===اعتراضات دی ۱۴۰۴ ===
اعتراضات دی ۱۴۰۴ ایران موج گستردهای از تجمعهای اعتراضی و اعتصابهای ضد حکومتی در ایران است که از ۷ دی ۱۴۰۴ در تهران آغاز شد و در ادامه به سایر شهرهای ایران گسترش یافت. این اعتراضات در شرایطی رخ داد که ارزش ریال به کمترین میزان خود در طول تاریخ رسیده بود و بیکاری جوانان و فقر مردم به شدت افزایش یافته بود. معترضان با تجمعات علنی، سر دادن شعارهای ضد دولتی و ادامه اعتصابها برای روز دوم، همزمان با رویدادهایی مانند استعفای رئیس کل بانک مرکزی، اعتراض خود را ادامه دادند. افراد لباس شخصی برای سرکوب معترضان از انواع تجهیزات مانند دشنه، سلاح گرم، گاز اشکآور، تونفا و شوکر استفاده کردند. افراد لباس شخصی در روزهای تظاهرات جلوی شهروندان عادی و خودروهایی را که در مسیر بودند گرفته و ضمن توهین به آنها، مدارک شناساییشان را چک میکردند. همچنین آنها جلوی شهروندان عادی را به بهانه عکسبردای یا فیلمبرداری با گوشی میگرفتند و گوشی موبایل آنها را چک میکردند. بسیاری از ماموران لباس شخصی و افسران نظامی از ترس شناسایی شدن توسط شهروندان، از کلاه و ماسک استفاده میکردند. در شهرهای بزرگ، از ماشین آبپاش برای سرکوب معترضان استفاده کردند. شاتگانهای کالیبر ۱۶، کلاشنیکف، شاتگان Escort MPA-TS و تفنگ دراگونوف از پر کاربردترین تفنگهای استفاده شده توسط نیروهای سرکوبگر وابسته به حکومت بود.
علاوه بر جوانان بیکار، کاسبان بازار، دانشجویان دانشگاهها، زنان خانهدار، ... در این اعتراضات حضور فعال داشتند. در شامگاه روز چهارم، معترضان در شهر اسدآباد استان همدان یک ساختمان را به آتش کشیدند، که بر اساس ادعای برخی گزارشها، سازه مورد نظر، پایگاه نیروهای شبهنظامی بسیج بوده است. تشکلها و فعالان دانشجویی در دانشگاههای امیرکبیر، بهشتی و تهران با صدور بیانیههایی جداگانه، از دانشجویان خواستند با تجمع و اعلام همبستگی، به موج اعتراضها بپیوندند. اولین معترض کشتهشده، جوان ۲۶ سالهای به نام امیرحسام خدایاریفرد بود که در استان لرستان کشته شد. شرکتکنندگان در تجمعات و راهپیماییها شعارهایی را سر دادند که بازتابدهندهٔ ترکیبی از مطالبات اقتصادی، اجتماعی و سیاسی بود. شعارهایی علیه رهبر جمهوری اسلامی مانند «مرگ بر خامنهای» از رایجترین شعارهای سیاسی در تجمعات بود. معترضان ویدئوهای بسیاری از نیروهای سرکوبگر که با توسل به زور در خیابانها مردم را میزدند منتشر کردهاند. در مسیرهای منتهی به محل درگیری معترضان و سرکوبگران، بوق خودروها و وسایل نقلیه به نشانه اعتراض شهرهای ایران را در بر میگرفت.
فاطمه مهاجرانی سخنگوی دولت با تأکید بر اینکه معترضان فرزندان ما هستند، اظهار کرد: با دستور رئیسجمهوری همه وزارتخانهها و دستگاهها متناسب با وظایف خود موظف شدهاند برای گفتوگو و پیگیری مطالبات مردم اقدام کنند. دولت ایران در واکنش به ادامه اعتراضات گسترده سراسری، دسترسی به اینترنت را در بسیاری از نقاط کشور قطع یا بهطور جدی محدود کرد. دهها نفر در این اعتراضات کشته و هزارن نفر مجروح شدند. همچنین نیروهای امنیتی در شهرهای مختلف از جمله اسفراین، دهلران، ایذه، بَغملَک و کرمانشاه معترضانی را بازداشت کردند، از جمله زنان، جوانان و افرادی از اقوام مختلف. گزارشهایی نیز از بازداشت چند دانشجو در دانشگاهها و مراکز آموزشی منتشر شده است، هرچند رسانههای رسمی تعداد دقیق و هویت همهٔ بازداشتشدگان را اعلام نکردهاند.
از ۱۸ دی ۱۴۰۴، اینترنت در ایران بهطور سراسری قطع شد و این قطعی تا ۷ بهمن ادامه داشت. حوالی ساعت ۸ شب روز پنجشنبه ۱۸ دی در پی فراخوان رضا پهلوی میلیونها نفر در تمام شهرهای ایران وارد خیابانها شدند و طبق اعلام نت بلاکس از ساعت ۷ شب به مرور اینترنت در سراسر کشور قطع شد. در روز یکشنبه ۲۱ دی ۱۴۰۴، اعتراضها و واکنشهایی در چندین شهر ایران گزارش شد. در جریان مراسم خاکسپاری تعدادی از معترضانی که در روزهای گذشته کشته شده بودند، نیروهای امنیتی با گاز اشکآور و اسلحه پینتبال به خانوادهها و شرکتکنندگان حمله کردند و در این مراسم شعارهای ضدحکومتی سر داده شد. در بندرعباس، جمعیت قابل توجهی از معترضان به خیابانها آمدند و در شیراز، کسبه دست به اعتصاب زدند تا همراهی خود با خیزشهای مردمی را نشان دهند. در ۲۵ دی، قوهٔ قضاییه جمهوری اسلامی اعلام کرد برای عرفان سلطانی، معترض ۲۶ ساله بازداشتشده، حکم اعدام صادر نشده است. در ۲۶ دی، تجمعهای اعتراضی در استرالیا (در شهرهایی از جمله ملبورن و کرایستچرچ) در حمایت از معترضان ایران برگزار شد. در روز یکشنبه ۲۸ دی، ایرانیان مقیم کشورهای مختلف، از جمله ایالات متحده، کانادا، آلمان و اتریش، در حمایت از مردم ایران، تجمع و راهپیمایی برگزار کردند و شعارهایی همچون «مرگ بر خامنهای» و «جاوید شاه» سر دادند.
در روزهای بعد، حکومت با خشونت سیاسی مراسم دفن کشتهشدگان را سرکوب کرد و علاوه بر معترضانی که در خیابان بازداشت کرده بود عدهای دیگر از آنها را در خانههایشان دستگیر کرد و به بازداشتگاه برد. اگرچه تعداد دقیق کشتهشدهها بر اثر شلیک گلوله و ضرب و شتم مشخص نیست اما منابع مختلف ارقامی بین حدود ۳٬۴۰۰ نفر تا بیش از ۳۳٬۰۰۰ نفر را اعلام کردهاند. بر اساس گزارشهای منتشرشده از سوی برخی اعضای کادر درمان، در جریان اعتراضات فشارهای امنیتی بر مراکز درمانی افزایش یافته و در مواردی پروندههای پزشکی مجروحان و کشتهشدگان دستکاری شده است تا علت مرگها تغییر داده شود. یک پزشک در تهران نیز گفته است که نیروهای امنیتی «برای کشتن شلیک میکردند» و یک امدادگر در تهران نیز گزارش داده که «شلیک مستقیم به سرِ جوانها و حتی به قلبشان» انجام شده است. علاوه بر این، شهادتهای متعددی نشان میدهد که نیروهای امنیتی ایران به بیمارستانها یورش برده و معترضان بستریشده را بازداشت کردهاند و در مواردی نیز آنان را اعدام کردهاند. بر اساس گزارشها بیش از ۴۰ هزار شهروند ایرانی در بازداشت به سر میبرند که رقمی بیسابقه در ایران است.
== پانویس ==
{{پانویس}}
[[رده:تاریخ ایران]]
pu8pp9qizxtjppvdygn5d8zwcawscb7
135280
135279
2026-09-28T12:10:45Z
Fwldom
26269
حذف واژگانی که باعث سوگیری در متن شده و همچنین اصلاح و کامل کردن مطالب با توجه به موضوع
135280
wikitext
text/x-wiki
{{تاریخ_ایران}}
== حمله به مدرسه فیضیه ==
{{اصلی|[[تاریخ ایران/جمهوری اسلامی ایران/حمله به مدرسه فیضیه|حمله به مدرسه فیضیه]]}}
<div align="justify">
از اولین محرکهای انقلاب ۵۷ به رهبری آیت الله خمینی میتوان به مطرح شدن لایحه انجمنهای ایالتی و ولایتی و نیز لوایح ششگانه و انقلاب سفید (شاه و ملت) توسط رژیم پهلوی اشاره نمود که در پی آن روحانیون و در رأس آنها آیت الله خمینی ساکت ننشستند، و نوروز سال ۴۲ را عزای عمومی اعلام کردند. رژیم پهلوی و عاملان حکومت پهلوی نیز ساکت نماندند و در تاریخ ۲ فروردین ۱۳۴۲ اقدام به سرکوب مدرسه فیضه قم کردند که در پی آن چند تن از طلبهها کشته شدند.
</div>
== کاپیتولاسیون و تبعید روحالله خمینی ==
[[پرونده:Tehran Mosavvar - Issue 27 - Page 20 (crop 02).jpg|بندانگشتی|صحنههایی از جامعه ایران در اوایل انقلاب، اجرای تنبیه توسط کمیته]]
در ۲۵ دی ۱۳۴۲ برابر با ۱۵ ژانویه ۱۹۶۴ دولت علم قانون اجازه استفاده مستشاران آمریکایی در ایران از مصونیتها و معافیتهای قرارداد وین را که برای کارمندان اداری و فنی نوشته شده بود به مجلس سنا برد. در این میان اسدالله علم از پست خود کنارهگیری کرد و حسنعلی منصور در فروردین ۱۳۴۴ نخست وزیر شد.
روحالله خمینی جلسهای با حضور علمای مذهبی قم تشکیل داد و پس از آن نمایندگانی را به شهرها برای اعتراض به این قانون فرستاد. در سخنرانی خمینی در چهارم آبان ۱۳۴۳ در قم، وی این قانون را احیای کاپیتولاسیون در ایران نامید. سخنرانی خمینی با این جملات آغاز شد:
... عزت ما پایکوب شد، عظمت ایران از بین رفت، عظمت ارتش ایران را پایکوب کردند. قانونی را به مجلس بردند که در آن ما را ملحق کردند به پیمان وین... که تمام مستشاران نظامی آمریکا با خانوادههایشان، با کارمندهای فنیشان با کارمندان اداریشان، با خدمهشان... از هر جنایتی که در ایران بکنند، مصون هستند. ملت ایران را از سگهای آمریکا پستتر کردند. چنانچه کسی سگ آمریکایی را زیر بگیرد از او مؤاخذه میکنند اگر شاه ایران یک سگ آمریکایی را زیر بگیرد مؤاخذه میکنند. چنان چه یک آشپز آمریکایی شاه ایران را زیر بگیرد، بزرگترین مقام را زیر بگیرد، هیچکس حق تعرض ندارد. آقا من اعلام خطر میکنم، ای ارتش ایران من اعلام خطر میکنم، ای سیاسیون ایران من اعلام خطر میکنم... والله گناهکار است کسی که فریاد نکند. ای سران اسلام به داد اسلام برسید. ای علمای نجف به داد اسلام برسید. ای علمای قم به داد اسلام برسید...
پس از این سخنرانی خمینی در تاریخ ۱۳ آبان ۱۳۴۳ دستگیر و با پا درمیانی رییس ساواک وقت متعاقبا به ترکیه تبعید شد.
==انقلاب ضد پهلوی==
<div align="justify">
«انقلاب ۱۳۵۷ ایران» که به آن «انقلاب اسلامی» نیز گفته میشود، قیامی بود به رهبری روحالله خمینی و با شرکت اکثریت مردم، احزاب و روشنفکران ایران، که نظام پادشاهی این کشور را سرنگون، و پیشزمینهٔ روی کار آمدن نظام جمهوری اسلامی در ایران را فراهم کرد. انقلاب در ۲۲ بهمن سال ۱۳۵۷ به پیروزی رسید و در ادامه آن نظام جمهوری اسلامی ایران به رهبری سید روحالله خمینی شکل گرفت.
</div>
==کودتای نوژه (۱۳۵۹)==
در ۱۸ تیرماه ۱۳۵۹ این کودتا که مرکز فرماندهی آن در همدان بود با هدف حملهٔ هوایی به منزل روحالله خمینی در حسینیهٔ جماران و کشتن او و سپس حمله به برج مراقبت فرودگاه مهرآباد طراحی شده بود. این کودتا که به فرماندهی سعید مهدیان (یک فرماندهِ پیشین نیروی هوایی ایران) قرار بود انجام شود لو رفت و عوامل آن دستگیر و مجازات شدند.
== جنگ ایران و عراق (۱۳۵۹) ==
به دنبال تثبیت انقلاب و پاکسازی ارتش ایران از طرفداران محمدرضا پهلوی و همچنین فرار برخی از ایرانیها (مانند شاپور بختیار) به عراق و دادن مشاوره به صدام حسین، روابط بین دو کشور ایران و عراق تیره شد. از طرفی صدام حسین عربهای خوزستانی را تحریک به شورش و استقلال میکرد و از طرفی خمینی شیعیان عراقی را تحریک به قیام علیه حکومت صدام حسین میکرد. در نهایت با استمرار دعوای قدرت بین بنی صدر و مجاهدین خلق از یکسو و خمینی و حزب جمهوری اسلامی از سوی دیگر، صدام حسین جنگ با ایران را با پاره کردن قرارداد الجزایر آغاز کرد.
گر چه در ۳ خرداد ۱۳۶۱ شمسی، ایرانیها توانستند نیروهای عراقی را به مرز پس برانند، ولی قدرتطلبی جمهوری اسلامی ایران باعث شد جنگ را ادامه دهند و از مذاکره سیاسی به منظور آتشبس سریع، خودداری کنند.
آخوندها که نیاز به سرکوب گسترده مخالفان داخلی داشتند، جنگ را نعمت الهی دانستند و آن را تا سال ۱۳۶۷ ادامه دادند.
== ویژگیهای ایران پس از انقلاب ۱۳۵۷==
[[پرونده:Teheran Metro women only.jpg|250px|بندانگشتی|چپ|تفکیک جنسی در متروی تهران، ۱۳۹۶ هجری خورشیدی]]
از مهمترین ویژگیهای انقلاب ترویج عادتهای غیرعادی که فرهنگ ملی را از صفات پسندیده تهی ساخت از جمله مذهبیگری یا مذهبی بودن بصورت غیرعادی بود که در اصطلاح عامه به اینگونه اعمال ریا و تظاهر گفته میشود. با چنین شیوههایی، فرهنگ دروغ اشاعه یافت و هر کس برای به دست آوردن مال، جاه و مقام و کسب وجهه در اجتماع و بهره جویی از رانتهایی که اطلاعات آن در حوزههایی متشکله توسط چنین اشخاصی در مساجد و محافل نقل شده و با استفاده از روابط و پایگاههای بسیج و محافل مذهبی، با نزدیک کردن خود به سرکردگان و ذینفوذان و بهرهگیری مادی و اشغال مناصب از پایینترین سطح جامعه که روستاها بوده تا بالاترین سطح که کلانشهرها میباشد از رانتها بطور گسترده و مفسدهانگیز استفاده میکردند. این ویژگیها باعث ایجاد طبقه خاص در جامعه گردید و اختلاف طبقاتی شدیدی را بین کسانی که قبل از انقلاب جزو طبقات مرفه جامعه یاطبقه بالا، و قشر متوسط جامعه بودند با طبقه جدیدی که از طرق تظاهر، ریا، دروغ خود راانقلابی و جانفدای آن میدانستند بوجودآمد. این مسئله اکنون بعنوان یک غده سرطانی در جامعه در آمده است که ماهیت واقعی سران انقلاب و اهداف آنها را به مردم نشان داده و قشر جوان، انقلاب کنندگان را که پدران و مادران آنها بودند، گول خورده و سران انقلاب را خائن و عوامل خارجیها دانسته و استفاده از نام اسلام را صرفاً برای تحریک احساسات مذهبی مردم برای پیشبرد اهداف از پیش تعیین شده میدانند.
دلایل آن را حذف کلیه رقبای خود و عدم توجه به مسائل اسلامی از سوی رهبر و سران کشور، و عدم اجرای قانون اساسی تدوین شده توسط اسلامیون، بخصوص در مورد بندهایی که در مورد رهبری و پاسخگو نبودن وی، عدم اعمال قانون در مورد مفسدین بزرگ مالی که با پیشرفت تکنولوژی و وجود افرادی دلسوز در سازمانها و افشای واقیعیتها، مردم را به اسلام وصداقت مسئولین بدبین نموده و بزرگترین عارضه البته برای انقلاب در جامعه ایرانی، فراری شدن از دین اسلام و گرایش به ملیت و ایجاد تضاد شدید قشر بر آمده از انقلاب با انقلابیون اولیه و انقلابیون جدید به وجود آمد که بزرگترین نمایش این تضاد در ۱۳۸۸ و ۱۳۹۶ به صورت علنی دیده شد. از دیگر ویژگیهای انقلاب افزایش تفکیک جنسیتی و کاهش ازدواج درجامعه میباشد. سایر ویژگیهای انقلاب عبارتند از فسادهای بزرگ مافیایی آن هم از سوی رهبران اصلی جامعه و ایجاد تنش با کشورهای همسایه و هزینهکردهای عمده برای گروههای شبه نظامی برای ایجاد ناآرامی در منطقه به اصطلاح برعلیه آمریکا و تقابل با اسرائیل و تقویت هلال شیعی.
===بحران جنسی===
[[پرونده:Iranian Girl's presence in the 22 Bahman 2017 rally by Tasnimnew.com01.jpg|بندانگشتی|چپ|حضور دختران جداشده از پسران (با تفکیک جنسی) در راهپیمایی]]
پس از انقلاب ۱۳۵۷ ایران تفکیک بین زنان و مردان در فضاهای عمومی، پررنگتر شد. امروزه در بعضی از مکانها مانند مدارس بین دانشآموزان جدایی جنسی وجود دارد اما در بعضی از مکانها مثل دانشگاهها جدایی جنسی وجود ندارد. با ظهور رژیم جمهوری اسلامی جداسازی جنسی در مکانهای عمومی مثل سواحل و استخرهای شنا در قانون تصریح و تکلیف شدهاست، برای زنان در اتوبوس و مترو قسمتهای جداگانهای قرار داده شدهاست و به مردان اجازه نمیدهند وارد سمت زنانه بشوند. در مترو این اقدام مرد، ایجاد مزاحمت برای بانوان تلقی میشود و جرم است. بر اساس قوانین، بخشهای جداگانهای در جلسات سیاسی، کنفرانسها، مراسم ازدواج و تشییع جنازه باید برای زنان و مردان در نظر گرفته شود. در ادارات و سازمانهای رژیم جمهوری اسلامی تفکیک جنسی ممکن است در بین کارکنان و دوایر داخلی یک سازمان صورت گیرد، مانند بخش زنان و زایمان یک بیمارستان، یا ممکن است که سازمان به صورت تک جنسی تشکیل شود و به وظایف خاص خود در سطح جامعه بپردازد مانند سرای سالمندان بانوان یا آقایان و کتابخانههای تک جنسی پسرانه و دخترانه. کنسرتها و جشنهای بسیاری به دلیل اختلاط دو جنس توسط عوامل دولتی بسته شدند و با گردانندگان آنها برخورد شد. یکی از فضاهای شهری تک جنسیای که پس از انقلاب ۱۳۵۷ ساخته شدهاند پارکهای بانوان هستند: فضایی زنانه به منظور خلق فضاهای امن و دور از دسترس مردان. پارکهای بانوان در بسیاری از شهرهای ایران ایجاد شدهاست که به مردان اجازه ورود داده نمیشود مثل بوستان بهشت مادران در تهران و پارک بانوان صدف اصفهان.
از اوایل دهه هشتاد بحران جنسی در جامعه ایران آغاز شد و به مهمترین آسیب اجتماعی در ایران مبدل شد. از آنجایی که اگر راه درستی برای تخلیه تحریکات جوانی در یک جامعه وجود نداشته باشد، قاعدتاً مسیرهای دیگری باز میشود و تحریکات اجتماعی در سطح بالایی باقی نمیماند، بحران جنسی در ایران شکل گرفت. از مصادیق بحران جنسی در این سالها میتوان به دگرباشی جنسی، انحرافات جنسی، عدم ارضاء جنسی افراد در بستر خانواده، تمایل به رابطه جنسی انتزاعی و فانتزی تحتِ تأثیر محیط سایبری و اینترنتی و... اشاره کرد. تحول عظیمی در رابطه دختر و پسر در جامعه ایران مشاهده شده و مطالعات نشان میدهد این الگو به شدت دگرگون شده است. یکی از پیامدهای این بحران در ناسازگاری آن با فرهنگ جامعه ایرانی دیده میشود. از دیگر پیامدهای این بحران میتوان به رژیمهای غذایی که در جهت مسائل جنسی گرفته میشود، کوتاهشدن عمر زندگی زناشویی، تنوع جراحیهای پزشکی، تمایل به برقراری شکلهای مختلف رابطه جنسی و... اشاره کرد. پیامدهای این بحران به طور کلی هم بخش زناشویی و هم بخشهای دیگر مانند دوران بلوغ افراد را در ایران درگیر کرد.<ref>https://ana.press/fa/news/45/29627/راه-گذار-از-بحران-جنسی-در-ایران-چیست</ref><ref>https://www.isna.ir/news/97021709251/جامعه-دچار-بحران-جنسی-شده-است</ref><ref>http://www.ghasednews.com/بخش-بحران-یا-انقلاب-جنسی-62/2251-هشدار-یک-مردم-شناس-درباره-وقوع-انقلاب-جنسی</ref> در حالیکه مستندها و کتابهای بسیاری همچون قیام پرشور: انقلاب جنسی در ایران از پردیس مهدوی استاد جامعهشناسی منتشر شده است بعضی همچون امیر مهدی کلیدری محقق مسائل اجتماعی ادعا کردهاند کودتای جنسی در ایران رخ داده است نه انقلاب جنسی.<ref>http://www.ghasednews.com/بخش-بحران-یا-انقلاب-جنسی-62/7183-کودتای-جنسی-یا-انقلاب-جنسی</ref>
دههٔ ۱۳۹۰ با گسترش و کاهش سن روسپیگری در ایران همراه شد و پژوهش دانشگاه شهید بهشتی نشان داد که آمار روسپیگری میان زنان متأهل این کشور، بیشتر از مجردها بودهاست و ۱۱ درصد روسپیان پایتخت ایران، با آگاهی همسرانشان دست به روسپیگری میزدهاند. تنفروشی آنلاین چه از راه وبگاههایی که زنان را برای صیغه (معمولاً کوتاهمدت و ساعتی) فهرست میکنند چه در شبکههای اجتماعی همانند اینستاگرام و تلگرام، در دههٔ ۱۳۹۰ گسترش بالایی یافت. در این دوران، در پوشش پیشههایی چون ماساژوری، تنفروشی انجام گرفتهاست.
=== پارانویای جمهوری اسلامی ===
در پارانویای حکومت اسلامی، آمریکا، اسرائیل، فراماسون ها و بهایی ها جایگاه ویژه ای دارند. آخوندها که خود را وارث اسلام ناب حقیقی می دانند، دنیا را متهم می کنند که در برابر آنها قد علم کرده اند. آنها بهایی ها را فرقه ضالهای میشمارند که در حال جاسوسی برای خارجی ها (اسرائیلی ها و آمریکایی ها) هستند و یهودی های ایرانی هم گاهاً مورد سوظن آخوندها قرار می گیرند، چرا که در مظان اتهام همدستی با همتایان اسرائیلی خود قرار دارند. آمریکا به خاطر اینکه تحت نفوذ یهودیان آمریکایی (که متحدان همیشگی اسرائیلی ها هستند) به عنوان شیطان بزرگ، حامی همیشگی اسرائیلی ها در پیمان های نظامی و وتوهای سازمان ملل متحد قلمداد میشوند و هدف نظام مقدس جمهوری اسلامی، نابودی اسرائیل، و برقرار سازی کشور مستقل فلسطین است.
پارانویای آخوندها بر علیه بهایی ها چند دلیل دارد. اول اینکه بابی گری و بهائیت، نخستین دین رسمی پس از اسلام است که اعلام وجود کرده است. با وجود اینکه محمد در قرآن به عنوان آخرین پیامبر نامیده شده، بهائیان به پیامبر پس از محمد از جمله بهاالله اعتقاد دارند. دومین مورد بستن پرونده امام زمان در دین بهائیت است و بهائی ها اعتقاد دارند که امام زمانشان ظهور کرده و دیگر نیازی به انتظار برای امام زمان نیست. سومین مسئله، بستن پرونده آخوندگی گری در بهائیت است. بدین ترتیب که بهایی ها کسی را واسطه مذهبی میان خودشان و خدا قرار نمی دهند و هر کس موظف است تا شخصاً مسائل دینی-مذهبی خودش را با تحقیق و تفحص حل کند.
از جمله پارانویای جمهوری اسلامی، میتوان به باور به وارد شدن یهودیان به مذهب اسلام و تحریف و فرقهسازی این مذهب اشاره کرد. این اصطلاح را مسلمانان به اسم '''اسرائیلیات''' نامیدهاند. آنها میپندارند که یهودیان قادر هستند با برنامهریزی از قبل، به طور ظاهری مسلمان شده، در حالی که باطناً به آئین یهود اعتقاد دارند و دروغهایی را به پیامبران و امامان مسلمانان وارد کنند و باعث شوند تا مردم مسلمان از اعتقاداتشان منحرف شوند. این اعتقاد البته ریشه در قرآن هم داشته است. در آنجایی که قرآن میگوید «هر آن دشمنترین انسانها نسبت به اسلام را در میان مشرکین و یهودیان بینی»، باعث شده تا مسلمانان تمام مشکلات دنیوی و کجروی های فرقههای تشکیل شده از اسلام (که فرقه ظاله نامیده میشود) را به اسم یهودیها تمام میکنند.
=== شکلگیری تقابل جمهوری اسلامی ایران و اسرائیل ===
تقابل جمهوری اسلامی ایران و اسرائیل یکی از مؤلفههای مهم سیاست خارجی جمهوری اسلامی از نخستین سالهای پس از انقلاب ۱۳۵۷ بود. این تقابل تنها به اختلافات مذهبی محدود نبود و مجموعهای از عوامل ایدئولوژیک، سیاسی و منطقهای در شکلگیری آن نقش داشتند. رهبران جمهوری اسلامی، مسئله فلسطین و مخالفت با اسرائیل را بخشی از سیاست خارجی جدید ایران میدانستند و در مقابل، اسرائیل نیز جمهوری اسلامی را بهتدریج به عنوان یکی از تهدیدهای اصلی امنیتی خود در منطقه در نظر گرفت.
در ادبیات رسمی جمهوری اسلامی، مخالفت با اسرائیل تا حدی با برداشتهایی از آیات قرآن درباره مقابله با کسانی که مسلمانان را از سرزمین و خانههایشان بیرون راندهاند پیوند داده شد. با این حال، ریشههای سیاست جمهوری اسلامی در قبال اسرائیل را نمیتوان صرفاً به یک برداشت قرآنی نسبت داد؛ مواضع ضداسرائیلی در میان برخی جریانهای سیاسی و مذهبی ایران پیش از انقلاب نیز وجود داشت و پس از انقلاب با ایدئولوژی جدید حکومت و تحولات منطقهای درهم آمیخت.
یکی از نخستین اقدامات حکومت جدید در این زمینه، قطع روابط رسمی ایران و اسرائیل بود. پس از انقلاب، ساختمان نمایندگی اسرائیل در تهران در اختیار سازمان آزادیبخش فلسطین (PLO) قرار گرفت و در سال ۱۳۵۸ به عنوان نمایندگی فلسطین مورد استفاده قرار گرفت. یاسر عرفات، رهبر سازمان آزادیبخش فلسطین، نیز در همان سال به تهران سفر کرد. این اقدامات نشاندهنده تغییر اساسی سیاست خارجی ایران در قبال مسئله فلسطین و اسرائیل بود.
در سالهای نخست جمهوری اسلامی، سیاست منطقهای ایران تحت تأثیر جنگ ایران و عراق نیز قرار داشت. عراق در شهریور ۱۳۵۹ به ایران حمله کرد و جنگ تا سال ۱۳۶۷ ادامه یافت. در همین دوره، در خرداد ۱۳۶۱، نیروهای ایرانی عملیات بیتالمقدس را به پایان رساندند و خرمشهر را بازپس گرفتند. اندکی بعد، در ۶ ژوئن ۱۹۸۲، اسرائیل عملیات نظامی گستردهای را در لبنان آغاز کرد. هدف اعلامشده اسرائیل، که در اسناد سازمان ملل نیز ثبت شده، دور کردن نیروهای فلسطینی و حملات آنان از مرزهای شمالی اسرائیل بود؛ نیروهای اسرائیلی در جریان این عملیات وارد بخشهای وسیعی از لبنان شدند و تا اطراف بیروت پیشروی کردند.
تهاجم اسرائیل به لبنان، توجه حکومت ایران را که درگیر جنگ با عراق بود، به جبهه لبنان نیز جلب کرد. در میان برخی نیروهای سیاسی و نظامی جمهوری اسلامی، ایده اعزام نیرو برای مقابله مستقیم با اسرائیل مطرح شد. با این حال، جمهوری اسلامی در سال ۱۳۶۱ تصمیم نگرفت یک جنگ مستقیم گسترده با اسرائیل آغاز کند و جنگ با عراق همچنان اولویت اصلی نظامی کشور باقی ماند. در ادبیات سیاسی جمهوری اسلامی، جمله «راه قدس از کربلا میگذرد» بعدها برای توصیف این اولویت مورد استفاده گسترده قرار گرفت؛ یعنی حل مسئله جنگ ایران و عراق و رسیدن به پیروزی در آن، مقدم بر ورود مستقیم ایران به جنگ با اسرائیل تلقی میشد.
در عین حال، ایران در لبنان حضور نظامی و سازمانی پیدا کرد. سپاه پاسداران نیروهایی را به سوریه و لبنان اعزام کرد و بخشی از نیروهای شیعه لبنانی تحت آموزش و حمایت ایران قرار گرفتند. این نیروها در شکلگیری هسته اولیه حزبالله لبنان نقش داشتند. حزبالله در اوایل دهه ۱۹۸۰ در شرایطی شکل گرفت که لبنان درگیر جنگ داخلی و اشغال بخشهایی از خاک خود توسط اسرائیل بود. گروههای مختلف شیعه لبنان، از جمله افرادی که پیشتر با جنبش امل ارتباط داشتند، در روند شکلگیری این سازمان مشارکت کردند. بنابراین، حزبالله را نمیتوان صرفاً به عنوان سازمانی که مستقیماً توسط ایران «ساخته شد» توصیف کرد؛ بلکه شکلگیری آن حاصل تعامل میان نیروهای شیعه لبنانی، شرایط داخلی لبنان، حضور اسرائیل و حمایت مالی، آموزشی و سازمانی ایران بود.
سپاه پاسداران در این روند نقش مهمی ایفا کرد. نیروهای ایرانی در دره بقاع لبنان مستقر شدند و به آموزش و سازماندهی نیروهای شیعه پرداختند. این ارتباط در سالهای بعد به یکی از مهمترین پایههای نفوذ منطقهای ایران تبدیل شد.
حزبالله در دهه ۱۹۸۰ به انجام عملیات مسلحانه علیه نیروهای اسرائیلی و همچنین نیروهای خارجی حاضر در لبنان پرداخت. این سازمان در سال ۱۹۸۵ نخستین بیانیه سیاسی مهم خود را منتشر کرد و در آن بر وفاداری خود به رهبر جمهوری اسلامی ایران و مخالفت با حضور اسرائیل و قدرتهای غربی در لبنان تأکید کرد. در ادامه، فعالیت نظامی حزبالله یکی از عوامل مؤثر در افزایش هزینه حضور اسرائیل در جنوب لبنان شد. اسرائیل در سال ۲۰۰۰ نیروهای خود را از بیشتر مناطق اشغالی جنوب لبنان خارج کرد؛ حزبالله این خروج را نتیجه مقاومت خود دانست، در حالی که درباره عوامل مؤثر بر تصمیم اسرائیل، دیدگاههای متفاوتی وجود دارد.
در همین دوره، یکی از رویدادهای مهم و همچنان مورد اختلاف، ناپدید شدن چهار ایرانی در لبنان بود. در تیر ۱۳۶۱، احمد متوسلیان، وابسته نظامی ایران، محسن موسوی، کاردار سفارت ایران در بیروت، تقی رستگارمقدم و کاظم اخوان، خبرنگار، در نزدیکی ایست بازرسی برباره در شمال لبنان متوقف و ناپدید شدند. درباره سرنوشت آنان روایتهای متفاوتی وجود دارد. ایران طی سالهای بعد اسرائیل را نیز در این ماجرا مسئول دانست، در حالی که گزارشهای دیگر، نیروهای مسلح لبنانی را عامل ربایش معرفی کردهاند. سرنوشت نهایی این چهار نفر هیچگاه به شکل قطعی روشن نشد و به همین دلیل، نسبت دادن مسئولیت قطعی این حادثه به یک طرف، از نظر تاریخی نیازمند احتیاط است.
در نتیجه، رابطه ایران و اسرائیل در دهه ۱۳۶۰ به تدریج از مخالفت سیاسی و ایدئولوژیک به نوعی تقابل منطقهای تبدیل شد. ایران از گروههای مسلحی مانند حزبالله حمایت میکرد و اسرائیل نیز فعالیت این گروهها و گسترش نفوذ ایران در لبنان را تهدیدی علیه امنیت خود میدانست. به همین دلیل، لبنان به یکی از نخستین عرصههای مهم رویارویی غیرمستقیم ایران و اسرائیل تبدیل شد. با این حال، اصطلاح «اولین جنگ نیابتی ایران و اسرائیل» بیشتر یک توصیف تحلیلی است تا عنوانی رسمی برای یک جنگ مشخص؛ زیرا رابطه دو کشور و استفاده از نیروهای همسو در منطقه، به تدریج و طی چند مرحله شکل گرفت و حزبالله نیز سازمانی لبنانی با ساختار و تصمیمگیری مستقل، هرچند با حمایت گسترده ایران، بود.
=== تقابل ایران و ایالات متحده و ارتباط آن با مسئله اسرائیل ===
تقابل جمهوری اسلامی با اسرائیل از همان ابتدا با رابطه ایران و ایالات متحده نیز ارتباط پیدا کرد. حکومت پهلوی روابط نزدیکی با ایالات متحده داشت و پس از انقلاب، بخش قابل توجهی از نیروهای سیاسی انقلابی، آمریکا را حامی اصلی حکومت پیشین و یکی از قدرتهای پشتیبان اسرائیل در منطقه میدانستند. علاوه بر جریانهای اسلامگرا، گروههای چپ و برخی نیروهای ملیگرا نیز در سالهای پیش و پس از انقلاب مواضع ضدآمریکایی داشتند.
یکی از عوامل تشدیدکننده این تنش، ورود محمدرضا شاه پهلوی به ایالات متحده در مهر ۱۳۵۸ برای دریافت درمان پزشکی بود. در ایران این اقدام با نگرانی از احتمال تکرار رویدادهایی مانند کودتای ۲۸ مرداد ۱۳۳۲ و بازگشت شاه به قدرت همراه شد. در چنین فضایی، گروهی از دانشجویان اسلامگرا که خود را «دانشجویان پیرو خط امام» مینامیدند، در ۱۳ آبان ۱۳۵۸ سفارت ایالات متحده در تهران را اشغال کردند و کارکنان آن را به گروگان گرفتند. اسناد تاریخی ایالات متحده نیز نشان میدهند که بیش از ۵۰ آمریکایی در این بحران به گروگان گرفته شدند و این وضعیت ۴۴۴ روز ادامه پیدا کرد.
اشغال سفارت ابتدا از سوی دولت موقت بازرگان با مخالفت روبهرو شد و در ادامه، حمایت آیتالله خمینی از اقدام دانشجویان موجب شد اشغال سفارت به یک بحران طولانیمدت در روابط دو کشور تبدیل شود. مهدی بازرگان و دولت موقت پس از آن استعفا کردند. از سوی دیگر، دولت آمریکا در ۱۴ نوامبر ۱۹۷۹ داراییهای دولت ایران و بانک مرکزی ایران در ایالات متحده را مسدود کرد. این اقدام بخشی از مجموعه اقدامات اقتصادی و سیاسی آمریکا در واکنش به بحران گروگانگیری بود.
مقامهای جمهوری اسلامی و دانشجویان اشغالکننده سفارت، اقدام خود را با مجموعهای از عوامل توجیه میکردند؛ از جمله سابقه حمایت آمریکا از حکومت پهلوی، روابط واشنگتن با اسرائیل، پذیرش شاه در آمریکا و نگرانی از دخالت احتمالی ایالات متحده در تحولات داخلی ایران. در مقابل، دولت آمریکا اشغال سفارت و گروگانگیری دیپلماتها را نقض حقوق دیپلماتیک و تعهدات بینالمللی میدانست. بنابراین، برای بررسی تاریخی این رویداد، بهتر است انگیزهها و استدلالهای هر دو طرف از یکدیگر تفکیک شوند و توجیهات سیاسی یک طرف به عنوان واقعیت قطعی تاریخی ارائه نشوند.
بحران گروگانگیری در نهایت به یکی از نقاط عطف روابط ایران و آمریکا تبدیل شد و روابط دیپلماتیک دو کشور را برای دهههای بعد دگرگون کرد. در همین چارچوب، مخالفت جمهوری اسلامی با اسرائیل نیز به تدریج با تقابل گستردهتر آن با ایالات متحده و سیاستهای آمریکا در خاورمیانه پیوند خورد. از دهه ۱۳۶۰ به بعد، این سه موضوع ــ حمایت ایران از گروههای فلسطینی و لبنانی، مخالفت با اسرائیل و تقابل با آمریکا ــ به عناصر مرتبط اما متمایز سیاست خارجی جمهوری اسلامی تبدیل شدند.
===بحران اقتصادی===
وقوع انقلاب در سال ۱۳۵۷، پایان ارز تک نرخی و آغاز دورهای از جهشهای پیاپی ارزی در ایران بود که باعث شد نرخ دلار آمریکا تا سال ۱۴۰۰ به بیش از چهار هزار برابر برسد. نرخ غیررسمی ارز که در پایان سال ۸۹ به ۱۰۳۳۷ ریال رسیده بود، از ماههای آغازین سال ۱۳۹۰ وارد یک جهش شد. افزایش مداوم نرخ ارز در ایران پس از انقلاب ۱۳۵۷ ایران آغاز شد و در دوران ریاست جمهوری محمود احمدینژاد و پس از هدفمندسازی یارانهها در ایران بین سالهای ۱۳۹۰ تا ۱۳۹۲ شتاب گرفت.
در ۱۰ مهرماه ۱۳۹۹ قیمت دلار به ۳۰ هزار تومان رسید و قیمت سکه تمام بهار آزادی از مرز ۱۵ میلیون و ۲۰۰ هزار تومان گذشت. نرخ دلار آمریکا که در اوایل سال ۱۴۰۳ حدود ۶۰ هزار تومان بود، در پی حملهٔ موشکی و پهپادی ایران به اسرائیل، در روز ۲۶ فروردین ۱۴۰۳ از ۷۰ هزار تومان عبور کرد. افزایش نرخ ارز تداوم پیدا کرد و در بهمن ۱۴۰۳ نرخ دلار آمریکا در بازار آزاد ایران از ۹۰ هزار تومان عبور کرد. عبدالناصر همتی وزیر اقتصاد دولت پزشکیان بلافاصله پس از تصدی منصب وزارت اقتصاد به حمایت از یکسانسازی نرخ ارز و حذف سامانه نیما پرداخت و مدعی شد که این سیاست باعث کاهش قیمت ارز آزاد خواهد شد اما بر خلاف ادعای وی قیمت ارز به شدت افزایش یافت که حتی به انتقاد رسانههای اصلاح طلب و شروع فرایند استیضاح وی انجامید. به این ترتیب عبدالناصر همتی از وزارت اقتصاد برکنار شد.
در ۱۸ اردیبهشت ۱۳۹۹، مرکز آمار ایران، نرخ تورم گروه عمده خوراکیها، آشامیدنیها و دخانیات در سال ۱۳۹۸ را ۴۲٫۶ درصد اعلام کرد. در شهریور ۱۳۹۹، آمارهای جدید شرکای اصلی تجاری ایران نشان از افت چشمگیر صادرات ایران به این کشورها داشت و در کل صادرات آنها به ایران نیز کاهش یافتهبود. این آمار افت کل صادرات ایران به ۱۴۰ میلیون دلار در هفتماهه ۲۰۲۰ را نشان میداد که علاوه بر قطع صادرات نفت، فروش کالاهای غیرنفتی ایران به هند نیز به شدت سقوط کردهبود. همچنین صادرات ایران به کره جنوبی از ۲٫۱ میلیارد دلار به زیر هفت میلیون دلار سقوط کرد و وارداتش از ۲۸۲ میلیون دلار به ۱۰۵ میلیون دلار کاهش یافت. بدین ترتیب صادرات ایران به کره جنوبی تقریباً قطع شد.
در حین بحران اقتصادی گوشت قرمز دچار کمبود و افزایش بهای چند برابری شد که از میانه سال ۱۳۹۷ شروع و در ماههای پایانی پائیز اوج گرفت. بحران گوشت به یکی دیگر از چالشهای بزرگ دوران دوم دولت حسن روحانی تبدیل شد. بعد از تشدید بحران اقتصادی در ۱۳۹۸، وبسایت تابناک در ۹ تیر ۱۳۹۸ در این زمینه نوشت که افزایش قیمت مسکن عملاً خرید خانه را برای خیلی از مردم دشوار کردهاست و به همین علت، تعداد معاملات مسکن در تهران در مقایسه با خرداد سال ۱۳۹۷ حدود ۶۰ درصد کاهش داشتهاست. تابناک با اشاره به افزایش قیمت مسکن در ۱۵ ماه گذشته (از تیر ۹۸) افزود که هر ماه، مردم برای خرید و حتی اجاره یک سرپناه برای زندگی خود، «ناامیدتر از ماه قبل میشوند». این گزارش حاکیست که در برخی شهرها مانند کرمان، به دلیل افزایش اجاره بها و قیمت مسکن، «مردم کانکسها را به عنوان سرپناهی برای خود انتخاب کردهاند». با بالا گرفتن وضعیت ناپایدار اقتصادی و تعطیلی بسیاری از کارخانهجات و صنایع تولیدی کشور به دلیل کمبود مواد اولیه و عدم اختصاص ارز وارداتی از طرف دولت و همچنین احتکار کالاهای ضروری از طرف افراد سودجو که به منجر به کم شدن این کالاها در بازار شدهبود، در سال ۱۳۹۷ قیمت برخی از کالاهای اساسی و ارزاق عمومی مردم رشد چند برابری پیدا کرد و برخی از گزارشها حاکی از آن بود که مردم برای خرید این کالاها به فروشگاههای بزرگ و زنجیرهای هجوم آوردهاند و قفسهها را خالی کردهاند. قیمت انواع خودرو نیز در بازار ایران به شدت افزایش یافت.
بر اساس آمار رسمی، تعداد بیکاران ایران بین سه تا سه و نیم میلیون نفر است اما کارشناسان، آمار بیکاران را بیشتر از چهار میلیون نفر برآورد میکنند. هر ساله، دست کم حدود هشتصد هزار نفر، وارد بازار کار ایران میشوند و ایران توان کافی برای پاسخگویی به این حجم از متقاضیان کار را ندارد. اقتصاد ایران یک اقتصاد ترکیبی، شامل یک بخش دولتی بزرگ است که در حدود ۶۰ درصد آن به شیوهٔ متمرکز و دستوری اداره میشود.
===رونق شعایر اسلامی===
[[پرونده:Flag of Iran.svg|thumb|250px|پرچم کنونی ایران یک نشان الله در وسط دارد]]
تعداد مساجد (حدود ۳ برابر دوره پهلوی)، نمازخانهها و وضوخانههای بینراهی در ایران افزایش یافته است. همچنین در جمهوری اسلامی تعداد امامزادهها افزایش چشمگیری پیدا کرد (حدود ۷ برابر دوره پهلوی). در فیلمهای تلویزیونی و سینمایی بازیگران زن با حجاب و روسری و چادر ظاهر شدند و با روزهخواری در روزهای ماه رمضان برخورد شدید شد. کتابهای دینی در مدارس افزایش یافت. افزایش مجازاتهای به شیوه اسلامی، جدا کردن دختر و پسر در مکانهای مختلف، افزایش جشنها و عزاداریهای اسلامی، ... از ویژگیهای بارز جمهوری اسلامی بوده است.
==حمله اسرائیل به ایران (۱۴۰۴)==
موضع خصمانه حکومت جمهوری اسلامی ایران در قبال اسرائیل و آمریکا پس از انقلاب ۱۳۵۷، به حمایت پنهانی جمهوری اسلامی از حزبالله در جریان درگیریهای جنوب لبنان (۲۰۰۰–۱۹۸۵) و در سال ۲۰۰۵ به یک درگیری منطقهای نیابتی تبدیل شد. در سال ۲۰۰۶، جمهوری اسلامی بهطور فعال در حمایت از حزبالله در طول جنگ اسرائیل و لبنان مشارکت داشت و به موازات آن حمایت از حماس و جهاد اسلامی فلسطین را آغاز کرد. از طرف دیگر، اسرائیل با استفاده از چندین شبه نظامی در داخل ایران، یک کمپین برای آسیب رساندن به برنامه هستهای ایران آغاز کرد. با شروع جنگ داخلی سوریه، درگیریها بالا گرفت و تا سال ۲۰۱۸ به جنگ مستقیم جمهوری اسلامی و اسرائیل تبدیل شد.
جمهوری اسلامی حمایت قابل توجهی از حزبالله، حماس، و جنبش جهاد اسلامی فلسطین میکند، در حالی که اسرائیل از سازمان مجاهدین خلق ایران حمایت میکند و بهطور مستقیم ترور و حمله به اهداف مرتبط با جمهوری اسلامی انجام داده است. اسرائیل همچنین حملات سایبری علیه ایران را انجام داده و علناً از اقدام نظامی بینالمللی علیه جمهوری اسلامی دفاع میکند.
در ۲۳ خرداد ۱۴۰۴، نیروی هوایی اسرائیل به چندین نقطه در سراسر ایران حملاتی انجام داد. این حملات با نام رمز عملیات ''شیر برخاسته'' که توسط نیروهای دفاعی اسرائیل و موساد انجام شد، تأسیسات هستهای، پایگاههای نظامی، مناطق مسکونی و منازل مقامات ارشد نظامی را هدف قرار داد. ایران در پاسخ به حملات، مجموعهای از موشکهای بالستیک و پهپادها را به سوی اسرائیل پرتاب کرد اما به دلیل وجود سانسور شدید خبری، رسانههای اسرائیلی خسارتها و تلفات این حملهها را به طور کامل اعلام نکردند.
در طی روزهای جنگ، مقامات ایرانی پروازها در فرودگاه بینالمللی امام خمینی را تعلیق کردند. بلافاصله پس از شروع حملات، ساکنان تهران بهصورت گسترده شروع به ترک شهر کردند. سخنگوی نیروهای مسلح جمهوری اسلامی ایران، ابوالفضل شکارچی، وعدهٔ انتقام از اسرائیل و ایالات متحده را داد. سرانجام ایران و اسرائیل با میانجیگری آمریکا و قطر با یک آتشبس دوجانبه در ۳ تیر ۱۴۰۴ موافقت کردند.
==اعتراضات مردمی در دوران جمهوری اسلامی==
جنبشهای اعتراضی مختلفی در این دوره رخ داده است.
===نخستین اعتراضها===
حمله به کوی دانشگاه تهران (درگیری میان دانشجویان با نیروهای انتظامی و افراد موسوم به لباس شخصیها در تیرماه ۱۳۷۸)، اعتراضات به نتیجه انتخابات دهم رئیس جمهوری (خرداد و تیر ۱۳۸۸)، اعتراضات دی ۱۳۹۶ (در پی گرانی و سیاستهای دولت روحانی از مشهد و شهرهای بزرگ شروع شد)، اعتراضات آبان ۱۳۹۸ ایران یا آبان خونین (در پی افزایش قیمت بنزین) و اعتراضات شهریور ۱۴۰۱ (در پی کشتهشدن مهسا امینی) از جمله بزرگترین اعتراضات مردمی این دوره است. اعتراضهای ضدحکومتی ۱۳۸۸ تا ۱۴۰۱ در ایران، کشتههای بسیاری بر جا گذاشتند و در جدیدترین آنها رژیم جمهوری اسلامی اقدام به فیلترینگ گسترده اینترنت و شبکههای اجتماعی نمود. پس از رقم خوردن اعتراضات شهریور ۱۴۰۱، یک گروه مخالف به نام جوانان محلات تهران شکل گرفت.
===جنبش مهسا===
اعتراضهای سراسری ۱۴۰۱ در پی کشتهشدن مهسا امینی در عرض چند روز به تمام ۳۱ استان و به بیش از ۱۰۰ شهر ایران گسترش یافت. حمله به دانشگاه صنعتی شریف نیز از دیگر مواردی بود که در طول اعتراضات رخ داد که تعدادی تنبیه بدنی و حدود ۴۰–۳۰ دانشجو بازداشت شدند. در جمعه سیاه زاهدان حدود ۹۰ نفر کشته شدند. در کشورهای دیگر نیز عده زیادی در حمایت از خیزش مردم ایران تجمعهای اعتراضی برگزار کردند. شماری از چهرههای سرشناس هنری، فرهنگی و ورزشی ایران و فراتر از ایران از اعتراضات سراسری ۱۴۰۱ ایران حمایت کردند. شمار بازیگرانی که از معترضان حمایت کردهاند به اندازهای بود که صدا و سیمای ایران برای پخش و بازپخش تعداد زیادی از مجموعهها و فیلمهای تلویزیونی دچار مشکل شد.
نیروهایی از نیروی انتظامی، سپاه پاسداران و نیروی زمینی ارتش که زیرمجموعه ستاد کل نیروهای مسلح هستند در سرکوب معترضان در پی کشتهشدن مهسا امینی نقش داشتهاند. سپاه پاسداران انقلاب اسلامی جدای از نیروهای خودش از نیروهای بسیج نیز استفاده کردهاست. همچنین از لباسشخصیها و گروهی به نام نیروهای خودجوش سرزمینهای اسلامی نیز استفاده شدهاست. نیروهای سرکوب جمهوری اسلامی برای سرکوب شهروندان در این اعتراضات از ابزارهای گوناگون مانند باتون، باتون برقی، اسلحه دستی و تفنگ جنگی و همچنین از خشونت، یورش به منازل مسکونی، شلیک مستقیم به شهروندان، آسیب رساندن به اموال عمومی و خصوصی مردم از جمله خودروها و مغازهها استفاده کرد. رژیم جمهوری اسلامی تعدادی از معترضان را بازداشت و تعدادی از آنها از جمله محسن شکاری، میلاد زهرهوند و مجیدرضا رهنورد را که در اعتراضات حضور فعال داشتند اعدام کرد.
===اعتراضات دی ۱۴۰۴ ===
اعتراضات دی ۱۴۰۴ ایران موج گستردهای از تجمعهای اعتراضی و اعتصابهای ضد حکومتی در ایران است که از ۷ دی ۱۴۰۴ در تهران آغاز شد و در ادامه به سایر شهرهای ایران گسترش یافت. این اعتراضات در شرایطی رخ داد که ارزش ریال به کمترین میزان خود در طول تاریخ رسیده بود و بیکاری جوانان و فقر مردم به شدت افزایش یافته بود. معترضان با تجمعات علنی، سر دادن شعارهای ضد دولتی و ادامه اعتصابها برای روز دوم، همزمان با رویدادهایی مانند استعفای رئیس کل بانک مرکزی، اعتراض خود را ادامه دادند. افراد لباس شخصی برای سرکوب معترضان از انواع تجهیزات مانند دشنه، سلاح گرم، گاز اشکآور، تونفا و شوکر استفاده کردند. افراد لباس شخصی در روزهای تظاهرات جلوی شهروندان عادی و خودروهایی را که در مسیر بودند گرفته و ضمن توهین به آنها، مدارک شناساییشان را چک میکردند. همچنین آنها جلوی شهروندان عادی را به بهانه عکسبردای یا فیلمبرداری با گوشی میگرفتند و گوشی موبایل آنها را چک میکردند. بسیاری از ماموران لباس شخصی و افسران نظامی از ترس شناسایی شدن توسط شهروندان، از کلاه و ماسک استفاده میکردند. در شهرهای بزرگ، از ماشین آبپاش برای سرکوب معترضان استفاده کردند. شاتگانهای کالیبر ۱۶، کلاشنیکف، شاتگان Escort MPA-TS و تفنگ دراگونوف از پر کاربردترین تفنگهای استفاده شده توسط نیروهای سرکوبگر وابسته به حکومت بود.
علاوه بر جوانان بیکار، کاسبان بازار، دانشجویان دانشگاهها، زنان خانهدار، ... در این اعتراضات حضور فعال داشتند. در شامگاه روز چهارم، معترضان در شهر اسدآباد استان همدان یک ساختمان را به آتش کشیدند، که بر اساس ادعای برخی گزارشها، سازه مورد نظر، پایگاه نیروهای شبهنظامی بسیج بوده است. تشکلها و فعالان دانشجویی در دانشگاههای امیرکبیر، بهشتی و تهران با صدور بیانیههایی جداگانه، از دانشجویان خواستند با تجمع و اعلام همبستگی، به موج اعتراضها بپیوندند. اولین معترض کشتهشده، جوان ۲۶ سالهای به نام امیرحسام خدایاریفرد بود که در استان لرستان کشته شد. شرکتکنندگان در تجمعات و راهپیماییها شعارهایی را سر دادند که بازتابدهندهٔ ترکیبی از مطالبات اقتصادی، اجتماعی و سیاسی بود. شعارهایی علیه رهبر جمهوری اسلامی مانند «مرگ بر خامنهای» از رایجترین شعارهای سیاسی در تجمعات بود. معترضان ویدئوهای بسیاری از نیروهای سرکوبگر که با توسل به زور در خیابانها مردم را میزدند منتشر کردهاند. در مسیرهای منتهی به محل درگیری معترضان و سرکوبگران، بوق خودروها و وسایل نقلیه به نشانه اعتراض شهرهای ایران را در بر میگرفت.
فاطمه مهاجرانی سخنگوی دولت با تأکید بر اینکه معترضان فرزندان ما هستند، اظهار کرد: با دستور رئیسجمهوری همه وزارتخانهها و دستگاهها متناسب با وظایف خود موظف شدهاند برای گفتوگو و پیگیری مطالبات مردم اقدام کنند. دولت ایران در واکنش به ادامه اعتراضات گسترده سراسری، دسترسی به اینترنت را در بسیاری از نقاط کشور قطع یا بهطور جدی محدود کرد. دهها نفر در این اعتراضات کشته و هزارن نفر مجروح شدند. همچنین نیروهای امنیتی در شهرهای مختلف از جمله اسفراین، دهلران، ایذه، بَغملَک و کرمانشاه معترضانی را بازداشت کردند، از جمله زنان، جوانان و افرادی از اقوام مختلف. گزارشهایی نیز از بازداشت چند دانشجو در دانشگاهها و مراکز آموزشی منتشر شده است، هرچند رسانههای رسمی تعداد دقیق و هویت همهٔ بازداشتشدگان را اعلام نکردهاند.
از ۱۸ دی ۱۴۰۴، اینترنت در ایران بهطور سراسری قطع شد و این قطعی تا ۷ بهمن ادامه داشت. حوالی ساعت ۸ شب روز پنجشنبه ۱۸ دی در پی فراخوان رضا پهلوی میلیونها نفر در تمام شهرهای ایران وارد خیابانها شدند و طبق اعلام نت بلاکس از ساعت ۷ شب به مرور اینترنت در سراسر کشور قطع شد. در روز یکشنبه ۲۱ دی ۱۴۰۴، اعتراضها و واکنشهایی در چندین شهر ایران گزارش شد. در جریان مراسم خاکسپاری تعدادی از معترضانی که در روزهای گذشته کشته شده بودند، نیروهای امنیتی با گاز اشکآور و اسلحه پینتبال به خانوادهها و شرکتکنندگان حمله کردند و در این مراسم شعارهای ضدحکومتی سر داده شد. در بندرعباس، جمعیت قابل توجهی از معترضان به خیابانها آمدند و در شیراز، کسبه دست به اعتصاب زدند تا همراهی خود با خیزشهای مردمی را نشان دهند. در ۲۵ دی، قوهٔ قضاییه جمهوری اسلامی اعلام کرد برای عرفان سلطانی، معترض ۲۶ ساله بازداشتشده، حکم اعدام صادر نشده است. در ۲۶ دی، تجمعهای اعتراضی در استرالیا (در شهرهایی از جمله ملبورن و کرایستچرچ) در حمایت از معترضان ایران برگزار شد. در روز یکشنبه ۲۸ دی، ایرانیان مقیم کشورهای مختلف، از جمله ایالات متحده، کانادا، آلمان و اتریش، در حمایت از مردم ایران، تجمع و راهپیمایی برگزار کردند و شعارهایی همچون «مرگ بر خامنهای» و «جاوید شاه» سر دادند.
در روزهای بعد، حکومت با خشونت سیاسی مراسم دفن کشتهشدگان را سرکوب کرد و علاوه بر معترضانی که در خیابان بازداشت کرده بود عدهای دیگر از آنها را در خانههایشان دستگیر کرد و به بازداشتگاه برد. اگرچه تعداد دقیق کشتهشدهها بر اثر شلیک گلوله و ضرب و شتم مشخص نیست اما منابع مختلف ارقامی بین حدود ۳٬۴۰۰ نفر تا بیش از ۳۳٬۰۰۰ نفر را اعلام کردهاند. بر اساس گزارشهای منتشرشده از سوی برخی اعضای کادر درمان، در جریان اعتراضات فشارهای امنیتی بر مراکز درمانی افزایش یافته و در مواردی پروندههای پزشکی مجروحان و کشتهشدگان دستکاری شده است تا علت مرگها تغییر داده شود. یک پزشک در تهران نیز گفته است که نیروهای امنیتی «برای کشتن شلیک میکردند» و یک امدادگر در تهران نیز گزارش داده که «شلیک مستقیم به سرِ جوانها و حتی به قلبشان» انجام شده است. علاوه بر این، شهادتهای متعددی نشان میدهد که نیروهای امنیتی ایران به بیمارستانها یورش برده و معترضان بستریشده را بازداشت کردهاند و در مواردی نیز آنان را اعدام کردهاند. بر اساس گزارشها بیش از ۴۰ هزار شهروند ایرانی در بازداشت به سر میبرند که رقمی بیسابقه در ایران است.
== پانویس ==
{{پانویس}}
[[رده:تاریخ ایران]]
1o591y542zmprziipxv2ssm4uqqrr0o
135281
135280
2026-09-28T12:15:16Z
Fwldom
26269
/* ویژگیهای ایران پس از انقلاب ۱۳۵۷ */ اصلاح سو
135281
wikitext
text/x-wiki
{{تاریخ_ایران}}
== حمله به مدرسه فیضیه ==
{{اصلی|[[تاریخ ایران/جمهوری اسلامی ایران/حمله به مدرسه فیضیه|حمله به مدرسه فیضیه]]}}
<div align="justify">
از اولین محرکهای انقلاب ۵۷ به رهبری آیت الله خمینی میتوان به مطرح شدن لایحه انجمنهای ایالتی و ولایتی و نیز لوایح ششگانه و انقلاب سفید (شاه و ملت) توسط رژیم پهلوی اشاره نمود که در پی آن روحانیون و در رأس آنها آیت الله خمینی ساکت ننشستند، و نوروز سال ۴۲ را عزای عمومی اعلام کردند. رژیم پهلوی و عاملان حکومت پهلوی نیز ساکت نماندند و در تاریخ ۲ فروردین ۱۳۴۲ اقدام به سرکوب مدرسه فیضه قم کردند که در پی آن چند تن از طلبهها کشته شدند.
</div>
== کاپیتولاسیون و تبعید روحالله خمینی ==
[[پرونده:Tehran Mosavvar - Issue 27 - Page 20 (crop 02).jpg|بندانگشتی|صحنههایی از جامعه ایران در اوایل انقلاب، اجرای تنبیه توسط کمیته]]
در ۲۵ دی ۱۳۴۲ برابر با ۱۵ ژانویه ۱۹۶۴ دولت علم قانون اجازه استفاده مستشاران آمریکایی در ایران از مصونیتها و معافیتهای قرارداد وین را که برای کارمندان اداری و فنی نوشته شده بود به مجلس سنا برد. در این میان اسدالله علم از پست خود کنارهگیری کرد و حسنعلی منصور در فروردین ۱۳۴۴ نخست وزیر شد.
روحالله خمینی جلسهای با حضور علمای مذهبی قم تشکیل داد و پس از آن نمایندگانی را به شهرها برای اعتراض به این قانون فرستاد. در سخنرانی خمینی در چهارم آبان ۱۳۴۳ در قم، وی این قانون را احیای کاپیتولاسیون در ایران نامید. سخنرانی خمینی با این جملات آغاز شد:
... عزت ما پایکوب شد، عظمت ایران از بین رفت، عظمت ارتش ایران را پایکوب کردند. قانونی را به مجلس بردند که در آن ما را ملحق کردند به پیمان وین... که تمام مستشاران نظامی آمریکا با خانوادههایشان، با کارمندهای فنیشان با کارمندان اداریشان، با خدمهشان... از هر جنایتی که در ایران بکنند، مصون هستند. ملت ایران را از سگهای آمریکا پستتر کردند. چنانچه کسی سگ آمریکایی را زیر بگیرد از او مؤاخذه میکنند اگر شاه ایران یک سگ آمریکایی را زیر بگیرد مؤاخذه میکنند. چنان چه یک آشپز آمریکایی شاه ایران را زیر بگیرد، بزرگترین مقام را زیر بگیرد، هیچکس حق تعرض ندارد. آقا من اعلام خطر میکنم، ای ارتش ایران من اعلام خطر میکنم، ای سیاسیون ایران من اعلام خطر میکنم... والله گناهکار است کسی که فریاد نکند. ای سران اسلام به داد اسلام برسید. ای علمای نجف به داد اسلام برسید. ای علمای قم به داد اسلام برسید...
پس از این سخنرانی خمینی در تاریخ ۱۳ آبان ۱۳۴۳ دستگیر و با پا درمیانی رییس ساواک وقت متعاقبا به ترکیه تبعید شد.
==انقلاب ضد پهلوی==
<div align="justify">
«انقلاب ۱۳۵۷ ایران» که به آن «انقلاب اسلامی» نیز گفته میشود، قیامی بود به رهبری روحالله خمینی و با شرکت اکثریت مردم، احزاب و روشنفکران ایران، که نظام پادشاهی این کشور را سرنگون، و پیشزمینهٔ روی کار آمدن نظام جمهوری اسلامی در ایران را فراهم کرد. انقلاب در ۲۲ بهمن سال ۱۳۵۷ به پیروزی رسید و در ادامه آن نظام جمهوری اسلامی ایران به رهبری سید روحالله خمینی شکل گرفت.
</div>
==کودتای نوژه (۱۳۵۹)==
در ۱۸ تیرماه ۱۳۵۹ این کودتا که مرکز فرماندهی آن در همدان بود با هدف حملهٔ هوایی به منزل روحالله خمینی در حسینیهٔ جماران و کشتن او و سپس حمله به برج مراقبت فرودگاه مهرآباد طراحی شده بود. این کودتا که به فرماندهی سعید مهدیان (یک فرماندهِ پیشین نیروی هوایی ایران) قرار بود انجام شود لو رفت و عوامل آن دستگیر و مجازات شدند.
== جنگ ایران و عراق (۱۳۵۹) ==
به دنبال تثبیت انقلاب و پاکسازی ارتش ایران از طرفداران محمدرضا پهلوی و همچنین فرار برخی از ایرانیها (مانند شاپور بختیار) به عراق و دادن مشاوره به صدام حسین، روابط بین دو کشور ایران و عراق تیره شد. از طرفی صدام حسین عربهای خوزستانی را تحریک به شورش و استقلال میکرد و از طرفی خمینی شیعیان عراقی را تحریک به قیام علیه حکومت صدام حسین میکرد. در نهایت با استمرار دعوای قدرت بین بنی صدر و مجاهدین خلق از یکسو و خمینی و حزب جمهوری اسلامی از سوی دیگر، صدام حسین جنگ با ایران را با پاره کردن قرارداد الجزایر آغاز کرد.
گر چه در ۳ خرداد ۱۳۶۱ شمسی، ایرانیها توانستند نیروهای عراقی را به مرز پس برانند، ولی قدرتطلبی جمهوری اسلامی ایران باعث شد جنگ را ادامه دهند و از مذاکره سیاسی به منظور آتشبس سریع، خودداری کنند.
آخوندها که نیاز به سرکوب گسترده مخالفان داخلی داشتند، جنگ را نعمت الهی دانستند و آن را تا سال ۱۳۶۷ ادامه دادند.
== بحرانهای ایران پس از انقلاب ۱۳۵۷ ==
[[پرونده:Teheran Metro women only.jpg|250px|بندانگشتی|چپ|تفکیک جنسیتی در متروی تهران، ۱۳۹۶ هجری خورشیدی]]
یکی از ویژگیهایی که منتقدان انقلاب و جمهوری اسلامی به آن اشاره کردهاند، گسترش نوعی مذهبیگری و تظاهر مذهبی در بخشهایی از جامعه و ساختار حکومتی پس از انقلاب است. از دیدگاه این منتقدان، هنگامی که پایگاه اجتماعی و سیاسی افراد تا حد زیادی با میزان نزدیکی آنان به جریانهای مذهبی و انقلابی ارتباط پیدا کرد، زمینه برای شکلگیری رفتارهایی مانند ریا، تظاهر و استفاده ابزاری از مفاهیم مذهبی برای دستیابی به موقعیت اجتماعی و سیاسی فراهم شد. آنان معتقدند که چنین شرایطی به گسترش بیاعتمادی و تضعیف برخی ارزشهای اخلاقی، از جمله صداقت، در بخشهایی از جامعه انجامید.
* مثل قوانین صلاحیت برای کاندیدا شدن در مجلس یا ریاست جمهوری یا عضویت در سازمان های دولتی
همچنین، منتقدان جمهوری اسلامی شکلگیری شبکههای غیررسمی قدرت و دسترسی به رانت را از پیامدهای این وضعیت میدانند. به اعتقاد آنان، برخی افراد با نزدیک شدن به مسئولان و افراد بانفوذ، یا از طریق ارتباط با مساجد، محافل مذهبی و نهادهایی مانند بسیج، به اطلاعات، منابع و فرصتهایی دسترسی پیدا کردند که برای سایر افراد به همان اندازه در دسترس نبود. این روابط در برخی موارد به دستیابی به مناصب اداری و سیاسی و بهرهمندی از امتیازات اقتصادی منجر شد. این پدیده در سطوح مختلف اجتماعی، از مناطق روستایی تا شهرهای بزرگ، مشاهده شده و در ادبیات سیاسی و اجتماعی ایران با مفاهیمی مانند «رانت» و «خودیگرایی» مورد بحث قرار گرفته است.
از دیدگاه برخی منتقدان، شکلگیری چنین شبکههایی به پیدایش گروههایی انجامید که از امتیازات سیاسی و اقتصادی بیشتری برخوردار بودند. این امر، بهویژه در مواردی که افراد بر اساس میزان نزدیکی سیاسی و انقلابی خود به ساختار قدرت از فرصتهای بیشتری برخوردار میشدند، به شکلگیری احساس نابرابری در میان بخشی از جامعه انجامید. در نتیجه، در کنار طبقات اقتصادی موجود پیش از انقلاب، گروههایی نیز پدید آمدند که موقعیت اجتماعی و اقتصادی آنان تا حدی تحت تأثیر ارتباط با ساختار سیاسی جدید قرار داشت.
این وضعیت در ادامه به یکی از زمینههای انتقاد از جمهوری اسلامی تبدیل شد. برخی منتقدان معتقدند فاصله میان شعارهای اولیه انقلاب، بهویژه درباره عدالت، مبارزه با فساد و برابری، و عملکرد برخی مسئولان پس از انقلاب، موجب کاهش اعتماد بخشی از جامعه به رهبران و نهادهای حکومتی شد. در میان نسلهای جوانتر نیز این پرسش شکل گرفت که آیا اهداف اعلامشده انقلاب با عملکرد حکومت در دهههای بعد مطابقت داشته است یا خیر. برخی از منتقدان حتی استفاده گسترده از مفاهیم اسلامی در سیاست را ابزاری برای جلب حمایت مذهبی جامعه و تثبیت قدرت سیاسی دانستهاند؛ دیدگاهی که البته از سوی حامیان جمهوری اسلامی رد میشود.
از دیگر موضوعات مورد انتقاد، حذف یا محدود شدن تدریجی بسیاری از رقبای سیاسی پس از انقلاب و اختلاف میان برخی عملکردهای حکومت با برداشتهایی از قانون اساسی جمهوری اسلامی است. منتقدان، بهویژه درباره میزان پاسخگویی نهاد رهبری، عملکرد نهادهای نظارتی و نحوه برخورد با فسادهای اقتصادی، انتقاداتی را مطرح کردهاند. به باور آنان، عدم برخورد مؤثر با برخی پروندههای بزرگ فساد مالی، در کنار انتشار گسترده اطلاعات از طریق رسانهها و فناوریهای ارتباطی، موجب افزایش بدبینی بخشی از مردم نسبت به مسئولان شده است.
یکی از پیامدهایی که منتقدان برای این وضعیت برشمردهاند، کاهش وابستگی بخشی از جامعه به هویت دینی و افزایش توجه به هویت ملی و ایرانی است. در این دیدگاه، شکاف میان بخشی از جامعه و جریانهای سیاسی و مذهبی نزدیک به حکومت در طول زمان افزایش یافته و میان نسلهای مختلف انقلاب نیز اختلاف نظرهایی پدید آمده است. اعتراضات سالهای ۱۳۸۸ و ۱۳۹۶ را میتوان از جمله مقاطعی دانست که بخشی از این اختلافات و نارضایتیها به شکل علنی و گسترده در جامعه نمایان شد.
از دیگر پیامدهای اجتماعی مورد بحث پس از انقلاب، گسترش سیاستهای تفکیک جنسیتی در برخی عرصههای اجتماعی و تغییر الگوهای ازدواج و تشکیل خانواده است. منتقدان، بخشی از این تغییرات را با سیاستهای فرهنگی و اجتماعی جمهوری اسلامی مرتبط میدانند؛ هرچند عواملی مانند شرایط اقتصادی، تغییرات جمعیتی و دگرگونی سبک زندگی نیز در تغییر الگوی ازدواج نقش داشتهاند.
در حوزه سیاست خارجی نیز جمهوری اسلامی با برخی کشورهای منطقه دچار تنشهای پایدار شد. حمایت مالی، سیاسی و نظامی از برخی گروههای شبهنظامی و بازیگران غیردولتی در منطقه، که حکومت ایران آن را در چارچوب مقابله با نفوذ آمریکا و اسرائیل و حمایت از متحدان منطقهای خود توجیه میکند، از دیگر ویژگیهای سیاست خارجی جمهوری اسلامی بوده است. منتقدان این سیاست، آن را موجب افزایش تنشهای منطقهای و صرف منابع قابل توجه کشور در خارج از مرزها میدانند. همچنین گسترش روابط ایران با گروههای شیعه در کشورهای منطقه، در ادبیات سیاسی با عنوان «هلال شیعی» توصیف شده است؛ اصطلاحی که از سوی برخی تحلیلگران برای اشاره به افزایش نفوذ ایران در مناطق عمدتاً شیعهنشین یا دارای جمعیت شیعه در خاورمیانه به کار رفته است.
===بحران جنسی===
[[پرونده:Iranian Girl's presence in the 22 Bahman 2017 rally by Tasnimnew.com01.jpg|بندانگشتی|چپ|حضور دختران جداشده از پسران (با تفکیک جنسی) در راهپیمایی]]
پس از انقلاب ۱۳۵۷ ایران تفکیک بین زنان و مردان در فضاهای عمومی، پررنگتر شد. امروزه در بعضی از مکانها مانند مدارس بین دانشآموزان جدایی جنسی وجود دارد اما در بعضی از مکانها مثل دانشگاهها جدایی جنسی وجود ندارد. با ظهور رژیم جمهوری اسلامی جداسازی جنسی در مکانهای عمومی مثل سواحل و استخرهای شنا در قانون تصریح و تکلیف شدهاست، برای زنان در اتوبوس و مترو قسمتهای جداگانهای قرار داده شدهاست و به مردان اجازه نمیدهند وارد سمت زنانه بشوند. در مترو این اقدام مرد، ایجاد مزاحمت برای بانوان تلقی میشود و جرم است. بر اساس قوانین، بخشهای جداگانهای در جلسات سیاسی، کنفرانسها، مراسم ازدواج و تشییع جنازه باید برای زنان و مردان در نظر گرفته شود. در ادارات و سازمانهای رژیم جمهوری اسلامی تفکیک جنسی ممکن است در بین کارکنان و دوایر داخلی یک سازمان صورت گیرد، مانند بخش زنان و زایمان یک بیمارستان، یا ممکن است که سازمان به صورت تک جنسی تشکیل شود و به وظایف خاص خود در سطح جامعه بپردازد مانند سرای سالمندان بانوان یا آقایان و کتابخانههای تک جنسی پسرانه و دخترانه. کنسرتها و جشنهای بسیاری به دلیل اختلاط دو جنس توسط عوامل دولتی بسته شدند و با گردانندگان آنها برخورد شد. یکی از فضاهای شهری تک جنسیای که پس از انقلاب ۱۳۵۷ ساخته شدهاند پارکهای بانوان هستند: فضایی زنانه به منظور خلق فضاهای امن و دور از دسترس مردان. پارکهای بانوان در بسیاری از شهرهای ایران ایجاد شدهاست که به مردان اجازه ورود داده نمیشود مثل بوستان بهشت مادران در تهران و پارک بانوان صدف اصفهان.
از اوایل دهه هشتاد بحران جنسی در جامعه ایران آغاز شد و به مهمترین آسیب اجتماعی در ایران مبدل شد. از آنجایی که اگر راه درستی برای تخلیه تحریکات جوانی در یک جامعه وجود نداشته باشد، قاعدتاً مسیرهای دیگری باز میشود و تحریکات اجتماعی در سطح بالایی باقی نمیماند، بحران جنسی در ایران شکل گرفت. از مصادیق بحران جنسی در این سالها میتوان به دگرباشی جنسی، انحرافات جنسی، عدم ارضاء جنسی افراد در بستر خانواده، تمایل به رابطه جنسی انتزاعی و فانتزی تحتِ تأثیر محیط سایبری و اینترنتی و... اشاره کرد. تحول عظیمی در رابطه دختر و پسر در جامعه ایران مشاهده شده و مطالعات نشان میدهد این الگو به شدت دگرگون شده است. یکی از پیامدهای این بحران در ناسازگاری آن با فرهنگ جامعه ایرانی دیده میشود. از دیگر پیامدهای این بحران میتوان به رژیمهای غذایی که در جهت مسائل جنسی گرفته میشود، کوتاهشدن عمر زندگی زناشویی، تنوع جراحیهای پزشکی، تمایل به برقراری شکلهای مختلف رابطه جنسی و... اشاره کرد. پیامدهای این بحران به طور کلی هم بخش زناشویی و هم بخشهای دیگر مانند دوران بلوغ افراد را در ایران درگیر کرد.<ref>https://ana.press/fa/news/45/29627/راه-گذار-از-بحران-جنسی-در-ایران-چیست</ref><ref>https://www.isna.ir/news/97021709251/جامعه-دچار-بحران-جنسی-شده-است</ref><ref>http://www.ghasednews.com/بخش-بحران-یا-انقلاب-جنسی-62/2251-هشدار-یک-مردم-شناس-درباره-وقوع-انقلاب-جنسی</ref> در حالیکه مستندها و کتابهای بسیاری همچون قیام پرشور: انقلاب جنسی در ایران از پردیس مهدوی استاد جامعهشناسی منتشر شده است بعضی همچون امیر مهدی کلیدری محقق مسائل اجتماعی ادعا کردهاند کودتای جنسی در ایران رخ داده است نه انقلاب جنسی.<ref>http://www.ghasednews.com/بخش-بحران-یا-انقلاب-جنسی-62/7183-کودتای-جنسی-یا-انقلاب-جنسی</ref>
دههٔ ۱۳۹۰ با گسترش و کاهش سن روسپیگری در ایران همراه شد و پژوهش دانشگاه شهید بهشتی نشان داد که آمار روسپیگری میان زنان متأهل این کشور، بیشتر از مجردها بودهاست و ۱۱ درصد روسپیان پایتخت ایران، با آگاهی همسرانشان دست به روسپیگری میزدهاند. تنفروشی آنلاین چه از راه وبگاههایی که زنان را برای صیغه (معمولاً کوتاهمدت و ساعتی) فهرست میکنند چه در شبکههای اجتماعی همانند اینستاگرام و تلگرام، در دههٔ ۱۳۹۰ گسترش بالایی یافت. در این دوران، در پوشش پیشههایی چون ماساژوری، تنفروشی انجام گرفتهاست.
=== پارانویای جمهوری اسلامی ===
در پارانویای حکومت اسلامی، آمریکا، اسرائیل، فراماسون ها و بهایی ها جایگاه ویژه ای دارند. آخوندها که خود را وارث اسلام ناب حقیقی می دانند، دنیا را متهم می کنند که در برابر آنها قد علم کرده اند. آنها بهایی ها را فرقه ضالهای میشمارند که در حال جاسوسی برای خارجی ها (اسرائیلی ها و آمریکایی ها) هستند و یهودی های ایرانی هم گاهاً مورد سوظن آخوندها قرار می گیرند، چرا که در مظان اتهام همدستی با همتایان اسرائیلی خود قرار دارند. آمریکا به خاطر اینکه تحت نفوذ یهودیان آمریکایی (که متحدان همیشگی اسرائیلی ها هستند) به عنوان شیطان بزرگ، حامی همیشگی اسرائیلی ها در پیمان های نظامی و وتوهای سازمان ملل متحد قلمداد میشوند و هدف نظام مقدس جمهوری اسلامی، نابودی اسرائیل، و برقرار سازی کشور مستقل فلسطین است.
پارانویای آخوندها بر علیه بهایی ها چند دلیل دارد. اول اینکه بابی گری و بهائیت، نخستین دین رسمی پس از اسلام است که اعلام وجود کرده است. با وجود اینکه محمد در قرآن به عنوان آخرین پیامبر نامیده شده، بهائیان به پیامبر پس از محمد از جمله بهاالله اعتقاد دارند. دومین مورد بستن پرونده امام زمان در دین بهائیت است و بهائی ها اعتقاد دارند که امام زمانشان ظهور کرده و دیگر نیازی به انتظار برای امام زمان نیست. سومین مسئله، بستن پرونده آخوندگی گری در بهائیت است. بدین ترتیب که بهایی ها کسی را واسطه مذهبی میان خودشان و خدا قرار نمی دهند و هر کس موظف است تا شخصاً مسائل دینی-مذهبی خودش را با تحقیق و تفحص حل کند.
از جمله پارانویای جمهوری اسلامی، میتوان به باور به وارد شدن یهودیان به مذهب اسلام و تحریف و فرقهسازی این مذهب اشاره کرد. این اصطلاح را مسلمانان به اسم '''اسرائیلیات''' نامیدهاند. آنها میپندارند که یهودیان قادر هستند با برنامهریزی از قبل، به طور ظاهری مسلمان شده، در حالی که باطناً به آئین یهود اعتقاد دارند و دروغهایی را به پیامبران و امامان مسلمانان وارد کنند و باعث شوند تا مردم مسلمان از اعتقاداتشان منحرف شوند. این اعتقاد البته ریشه در قرآن هم داشته است. در آنجایی که قرآن میگوید «هر آن دشمنترین انسانها نسبت به اسلام را در میان مشرکین و یهودیان بینی»، باعث شده تا مسلمانان تمام مشکلات دنیوی و کجروی های فرقههای تشکیل شده از اسلام (که فرقه ظاله نامیده میشود) را به اسم یهودیها تمام میکنند.
=== شکلگیری تقابل جمهوری اسلامی ایران و اسرائیل ===
تقابل جمهوری اسلامی ایران و اسرائیل یکی از مؤلفههای مهم سیاست خارجی جمهوری اسلامی از نخستین سالهای پس از انقلاب ۱۳۵۷ بود. این تقابل تنها به اختلافات مذهبی محدود نبود و مجموعهای از عوامل ایدئولوژیک، سیاسی و منطقهای در شکلگیری آن نقش داشتند. رهبران جمهوری اسلامی، مسئله فلسطین و مخالفت با اسرائیل را بخشی از سیاست خارجی جدید ایران میدانستند و در مقابل، اسرائیل نیز جمهوری اسلامی را بهتدریج به عنوان یکی از تهدیدهای اصلی امنیتی خود در منطقه در نظر گرفت.
در ادبیات رسمی جمهوری اسلامی، مخالفت با اسرائیل تا حدی با برداشتهایی از آیات قرآن درباره مقابله با کسانی که مسلمانان را از سرزمین و خانههایشان بیرون راندهاند پیوند داده شد. با این حال، ریشههای سیاست جمهوری اسلامی در قبال اسرائیل را نمیتوان صرفاً به یک برداشت قرآنی نسبت داد؛ مواضع ضداسرائیلی در میان برخی جریانهای سیاسی و مذهبی ایران پیش از انقلاب نیز وجود داشت و پس از انقلاب با ایدئولوژی جدید حکومت و تحولات منطقهای درهم آمیخت.
یکی از نخستین اقدامات حکومت جدید در این زمینه، قطع روابط رسمی ایران و اسرائیل بود. پس از انقلاب، ساختمان نمایندگی اسرائیل در تهران در اختیار سازمان آزادیبخش فلسطین (PLO) قرار گرفت و در سال ۱۳۵۸ به عنوان نمایندگی فلسطین مورد استفاده قرار گرفت. یاسر عرفات، رهبر سازمان آزادیبخش فلسطین، نیز در همان سال به تهران سفر کرد. این اقدامات نشاندهنده تغییر اساسی سیاست خارجی ایران در قبال مسئله فلسطین و اسرائیل بود.
در سالهای نخست جمهوری اسلامی، سیاست منطقهای ایران تحت تأثیر جنگ ایران و عراق نیز قرار داشت. عراق در شهریور ۱۳۵۹ به ایران حمله کرد و جنگ تا سال ۱۳۶۷ ادامه یافت. در همین دوره، در خرداد ۱۳۶۱، نیروهای ایرانی عملیات بیتالمقدس را به پایان رساندند و خرمشهر را بازپس گرفتند. اندکی بعد، در ۶ ژوئن ۱۹۸۲، اسرائیل عملیات نظامی گستردهای را در لبنان آغاز کرد. هدف اعلامشده اسرائیل، که در اسناد سازمان ملل نیز ثبت شده، دور کردن نیروهای فلسطینی و حملات آنان از مرزهای شمالی اسرائیل بود؛ نیروهای اسرائیلی در جریان این عملیات وارد بخشهای وسیعی از لبنان شدند و تا اطراف بیروت پیشروی کردند.
تهاجم اسرائیل به لبنان، توجه حکومت ایران را که درگیر جنگ با عراق بود، به جبهه لبنان نیز جلب کرد. در میان برخی نیروهای سیاسی و نظامی جمهوری اسلامی، ایده اعزام نیرو برای مقابله مستقیم با اسرائیل مطرح شد. با این حال، جمهوری اسلامی در سال ۱۳۶۱ تصمیم نگرفت یک جنگ مستقیم گسترده با اسرائیل آغاز کند و جنگ با عراق همچنان اولویت اصلی نظامی کشور باقی ماند. در ادبیات سیاسی جمهوری اسلامی، جمله «راه قدس از کربلا میگذرد» بعدها برای توصیف این اولویت مورد استفاده گسترده قرار گرفت؛ یعنی حل مسئله جنگ ایران و عراق و رسیدن به پیروزی در آن، مقدم بر ورود مستقیم ایران به جنگ با اسرائیل تلقی میشد.
در عین حال، ایران در لبنان حضور نظامی و سازمانی پیدا کرد. سپاه پاسداران نیروهایی را به سوریه و لبنان اعزام کرد و بخشی از نیروهای شیعه لبنانی تحت آموزش و حمایت ایران قرار گرفتند. این نیروها در شکلگیری هسته اولیه حزبالله لبنان نقش داشتند. حزبالله در اوایل دهه ۱۹۸۰ در شرایطی شکل گرفت که لبنان درگیر جنگ داخلی و اشغال بخشهایی از خاک خود توسط اسرائیل بود. گروههای مختلف شیعه لبنان، از جمله افرادی که پیشتر با جنبش امل ارتباط داشتند، در روند شکلگیری این سازمان مشارکت کردند. بنابراین، حزبالله را نمیتوان صرفاً به عنوان سازمانی که مستقیماً توسط ایران «ساخته شد» توصیف کرد؛ بلکه شکلگیری آن حاصل تعامل میان نیروهای شیعه لبنانی، شرایط داخلی لبنان، حضور اسرائیل و حمایت مالی، آموزشی و سازمانی ایران بود.
سپاه پاسداران در این روند نقش مهمی ایفا کرد. نیروهای ایرانی در دره بقاع لبنان مستقر شدند و به آموزش و سازماندهی نیروهای شیعه پرداختند. این ارتباط در سالهای بعد به یکی از مهمترین پایههای نفوذ منطقهای ایران تبدیل شد.
حزبالله در دهه ۱۹۸۰ به انجام عملیات مسلحانه علیه نیروهای اسرائیلی و همچنین نیروهای خارجی حاضر در لبنان پرداخت. این سازمان در سال ۱۹۸۵ نخستین بیانیه سیاسی مهم خود را منتشر کرد و در آن بر وفاداری خود به رهبر جمهوری اسلامی ایران و مخالفت با حضور اسرائیل و قدرتهای غربی در لبنان تأکید کرد. در ادامه، فعالیت نظامی حزبالله یکی از عوامل مؤثر در افزایش هزینه حضور اسرائیل در جنوب لبنان شد. اسرائیل در سال ۲۰۰۰ نیروهای خود را از بیشتر مناطق اشغالی جنوب لبنان خارج کرد؛ حزبالله این خروج را نتیجه مقاومت خود دانست، در حالی که درباره عوامل مؤثر بر تصمیم اسرائیل، دیدگاههای متفاوتی وجود دارد.
در همین دوره، یکی از رویدادهای مهم و همچنان مورد اختلاف، ناپدید شدن چهار ایرانی در لبنان بود. در تیر ۱۳۶۱، احمد متوسلیان، وابسته نظامی ایران، محسن موسوی، کاردار سفارت ایران در بیروت، تقی رستگارمقدم و کاظم اخوان، خبرنگار، در نزدیکی ایست بازرسی برباره در شمال لبنان متوقف و ناپدید شدند. درباره سرنوشت آنان روایتهای متفاوتی وجود دارد. ایران طی سالهای بعد اسرائیل را نیز در این ماجرا مسئول دانست، در حالی که گزارشهای دیگر، نیروهای مسلح لبنانی را عامل ربایش معرفی کردهاند. سرنوشت نهایی این چهار نفر هیچگاه به شکل قطعی روشن نشد و به همین دلیل، نسبت دادن مسئولیت قطعی این حادثه به یک طرف، از نظر تاریخی نیازمند احتیاط است.
در نتیجه، رابطه ایران و اسرائیل در دهه ۱۳۶۰ به تدریج از مخالفت سیاسی و ایدئولوژیک به نوعی تقابل منطقهای تبدیل شد. ایران از گروههای مسلحی مانند حزبالله حمایت میکرد و اسرائیل نیز فعالیت این گروهها و گسترش نفوذ ایران در لبنان را تهدیدی علیه امنیت خود میدانست. به همین دلیل، لبنان به یکی از نخستین عرصههای مهم رویارویی غیرمستقیم ایران و اسرائیل تبدیل شد. با این حال، اصطلاح «اولین جنگ نیابتی ایران و اسرائیل» بیشتر یک توصیف تحلیلی است تا عنوانی رسمی برای یک جنگ مشخص؛ زیرا رابطه دو کشور و استفاده از نیروهای همسو در منطقه، به تدریج و طی چند مرحله شکل گرفت و حزبالله نیز سازمانی لبنانی با ساختار و تصمیمگیری مستقل، هرچند با حمایت گسترده ایران، بود.
=== تقابل ایران و ایالات متحده و ارتباط آن با مسئله اسرائیل ===
تقابل جمهوری اسلامی با اسرائیل از همان ابتدا با رابطه ایران و ایالات متحده نیز ارتباط پیدا کرد. حکومت پهلوی روابط نزدیکی با ایالات متحده داشت و پس از انقلاب، بخش قابل توجهی از نیروهای سیاسی انقلابی، آمریکا را حامی اصلی حکومت پیشین و یکی از قدرتهای پشتیبان اسرائیل در منطقه میدانستند. علاوه بر جریانهای اسلامگرا، گروههای چپ و برخی نیروهای ملیگرا نیز در سالهای پیش و پس از انقلاب مواضع ضدآمریکایی داشتند.
یکی از عوامل تشدیدکننده این تنش، ورود محمدرضا شاه پهلوی به ایالات متحده در مهر ۱۳۵۸ برای دریافت درمان پزشکی بود. در ایران این اقدام با نگرانی از احتمال تکرار رویدادهایی مانند کودتای ۲۸ مرداد ۱۳۳۲ و بازگشت شاه به قدرت همراه شد. در چنین فضایی، گروهی از دانشجویان اسلامگرا که خود را «دانشجویان پیرو خط امام» مینامیدند، در ۱۳ آبان ۱۳۵۸ سفارت ایالات متحده در تهران را اشغال کردند و کارکنان آن را به گروگان گرفتند. اسناد تاریخی ایالات متحده نیز نشان میدهند که بیش از ۵۰ آمریکایی در این بحران به گروگان گرفته شدند و این وضعیت ۴۴۴ روز ادامه پیدا کرد.
اشغال سفارت ابتدا از سوی دولت موقت بازرگان با مخالفت روبهرو شد و در ادامه، حمایت آیتالله خمینی از اقدام دانشجویان موجب شد اشغال سفارت به یک بحران طولانیمدت در روابط دو کشور تبدیل شود. مهدی بازرگان و دولت موقت پس از آن استعفا کردند. از سوی دیگر، دولت آمریکا در ۱۴ نوامبر ۱۹۷۹ داراییهای دولت ایران و بانک مرکزی ایران در ایالات متحده را مسدود کرد. این اقدام بخشی از مجموعه اقدامات اقتصادی و سیاسی آمریکا در واکنش به بحران گروگانگیری بود.
مقامهای جمهوری اسلامی و دانشجویان اشغالکننده سفارت، اقدام خود را با مجموعهای از عوامل توجیه میکردند؛ از جمله سابقه حمایت آمریکا از حکومت پهلوی، روابط واشنگتن با اسرائیل، پذیرش شاه در آمریکا و نگرانی از دخالت احتمالی ایالات متحده در تحولات داخلی ایران. در مقابل، دولت آمریکا اشغال سفارت و گروگانگیری دیپلماتها را نقض حقوق دیپلماتیک و تعهدات بینالمللی میدانست. بنابراین، برای بررسی تاریخی این رویداد، بهتر است انگیزهها و استدلالهای هر دو طرف از یکدیگر تفکیک شوند و توجیهات سیاسی یک طرف به عنوان واقعیت قطعی تاریخی ارائه نشوند.
بحران گروگانگیری در نهایت به یکی از نقاط عطف روابط ایران و آمریکا تبدیل شد و روابط دیپلماتیک دو کشور را برای دهههای بعد دگرگون کرد. در همین چارچوب، مخالفت جمهوری اسلامی با اسرائیل نیز به تدریج با تقابل گستردهتر آن با ایالات متحده و سیاستهای آمریکا در خاورمیانه پیوند خورد. از دهه ۱۳۶۰ به بعد، این سه موضوع ــ حمایت ایران از گروههای فلسطینی و لبنانی، مخالفت با اسرائیل و تقابل با آمریکا ــ به عناصر مرتبط اما متمایز سیاست خارجی جمهوری اسلامی تبدیل شدند.
===بحران اقتصادی===
وقوع انقلاب در سال ۱۳۵۷، پایان ارز تک نرخی و آغاز دورهای از جهشهای پیاپی ارزی در ایران بود که باعث شد نرخ دلار آمریکا تا سال ۱۴۰۰ به بیش از چهار هزار برابر برسد. نرخ غیررسمی ارز که در پایان سال ۸۹ به ۱۰۳۳۷ ریال رسیده بود، از ماههای آغازین سال ۱۳۹۰ وارد یک جهش شد. افزایش مداوم نرخ ارز در ایران پس از انقلاب ۱۳۵۷ ایران آغاز شد و در دوران ریاست جمهوری محمود احمدینژاد و پس از هدفمندسازی یارانهها در ایران بین سالهای ۱۳۹۰ تا ۱۳۹۲ شتاب گرفت.
در ۱۰ مهرماه ۱۳۹۹ قیمت دلار به ۳۰ هزار تومان رسید و قیمت سکه تمام بهار آزادی از مرز ۱۵ میلیون و ۲۰۰ هزار تومان گذشت. نرخ دلار آمریکا که در اوایل سال ۱۴۰۳ حدود ۶۰ هزار تومان بود، در پی حملهٔ موشکی و پهپادی ایران به اسرائیل، در روز ۲۶ فروردین ۱۴۰۳ از ۷۰ هزار تومان عبور کرد. افزایش نرخ ارز تداوم پیدا کرد و در بهمن ۱۴۰۳ نرخ دلار آمریکا در بازار آزاد ایران از ۹۰ هزار تومان عبور کرد. عبدالناصر همتی وزیر اقتصاد دولت پزشکیان بلافاصله پس از تصدی منصب وزارت اقتصاد به حمایت از یکسانسازی نرخ ارز و حذف سامانه نیما پرداخت و مدعی شد که این سیاست باعث کاهش قیمت ارز آزاد خواهد شد اما بر خلاف ادعای وی قیمت ارز به شدت افزایش یافت که حتی به انتقاد رسانههای اصلاح طلب و شروع فرایند استیضاح وی انجامید. به این ترتیب عبدالناصر همتی از وزارت اقتصاد برکنار شد.
در ۱۸ اردیبهشت ۱۳۹۹، مرکز آمار ایران، نرخ تورم گروه عمده خوراکیها، آشامیدنیها و دخانیات در سال ۱۳۹۸ را ۴۲٫۶ درصد اعلام کرد. در شهریور ۱۳۹۹، آمارهای جدید شرکای اصلی تجاری ایران نشان از افت چشمگیر صادرات ایران به این کشورها داشت و در کل صادرات آنها به ایران نیز کاهش یافتهبود. این آمار افت کل صادرات ایران به ۱۴۰ میلیون دلار در هفتماهه ۲۰۲۰ را نشان میداد که علاوه بر قطع صادرات نفت، فروش کالاهای غیرنفتی ایران به هند نیز به شدت سقوط کردهبود. همچنین صادرات ایران به کره جنوبی از ۲٫۱ میلیارد دلار به زیر هفت میلیون دلار سقوط کرد و وارداتش از ۲۸۲ میلیون دلار به ۱۰۵ میلیون دلار کاهش یافت. بدین ترتیب صادرات ایران به کره جنوبی تقریباً قطع شد.
در حین بحران اقتصادی گوشت قرمز دچار کمبود و افزایش بهای چند برابری شد که از میانه سال ۱۳۹۷ شروع و در ماههای پایانی پائیز اوج گرفت. بحران گوشت به یکی دیگر از چالشهای بزرگ دوران دوم دولت حسن روحانی تبدیل شد. بعد از تشدید بحران اقتصادی در ۱۳۹۸، وبسایت تابناک در ۹ تیر ۱۳۹۸ در این زمینه نوشت که افزایش قیمت مسکن عملاً خرید خانه را برای خیلی از مردم دشوار کردهاست و به همین علت، تعداد معاملات مسکن در تهران در مقایسه با خرداد سال ۱۳۹۷ حدود ۶۰ درصد کاهش داشتهاست. تابناک با اشاره به افزایش قیمت مسکن در ۱۵ ماه گذشته (از تیر ۹۸) افزود که هر ماه، مردم برای خرید و حتی اجاره یک سرپناه برای زندگی خود، «ناامیدتر از ماه قبل میشوند». این گزارش حاکیست که در برخی شهرها مانند کرمان، به دلیل افزایش اجاره بها و قیمت مسکن، «مردم کانکسها را به عنوان سرپناهی برای خود انتخاب کردهاند». با بالا گرفتن وضعیت ناپایدار اقتصادی و تعطیلی بسیاری از کارخانهجات و صنایع تولیدی کشور به دلیل کمبود مواد اولیه و عدم اختصاص ارز وارداتی از طرف دولت و همچنین احتکار کالاهای ضروری از طرف افراد سودجو که به منجر به کم شدن این کالاها در بازار شدهبود، در سال ۱۳۹۷ قیمت برخی از کالاهای اساسی و ارزاق عمومی مردم رشد چند برابری پیدا کرد و برخی از گزارشها حاکی از آن بود که مردم برای خرید این کالاها به فروشگاههای بزرگ و زنجیرهای هجوم آوردهاند و قفسهها را خالی کردهاند. قیمت انواع خودرو نیز در بازار ایران به شدت افزایش یافت.
بر اساس آمار رسمی، تعداد بیکاران ایران بین سه تا سه و نیم میلیون نفر است اما کارشناسان، آمار بیکاران را بیشتر از چهار میلیون نفر برآورد میکنند. هر ساله، دست کم حدود هشتصد هزار نفر، وارد بازار کار ایران میشوند و ایران توان کافی برای پاسخگویی به این حجم از متقاضیان کار را ندارد. اقتصاد ایران یک اقتصاد ترکیبی، شامل یک بخش دولتی بزرگ است که در حدود ۶۰ درصد آن به شیوهٔ متمرکز و دستوری اداره میشود.
===رونق شعایر اسلامی===
[[پرونده:Flag of Iran.svg|thumb|250px|پرچم کنونی ایران یک نشان الله در وسط دارد]]
تعداد مساجد (حدود ۳ برابر دوره پهلوی)، نمازخانهها و وضوخانههای بینراهی در ایران افزایش یافته است. همچنین در جمهوری اسلامی تعداد امامزادهها افزایش چشمگیری پیدا کرد (حدود ۷ برابر دوره پهلوی). در فیلمهای تلویزیونی و سینمایی بازیگران زن با حجاب و روسری و چادر ظاهر شدند و با روزهخواری در روزهای ماه رمضان برخورد شدید شد. کتابهای دینی در مدارس افزایش یافت. افزایش مجازاتهای به شیوه اسلامی، جدا کردن دختر و پسر در مکانهای مختلف، افزایش جشنها و عزاداریهای اسلامی، ... از ویژگیهای بارز جمهوری اسلامی بوده است.
==حمله اسرائیل به ایران (۱۴۰۴)==
موضع خصمانه حکومت جمهوری اسلامی ایران در قبال اسرائیل و آمریکا پس از انقلاب ۱۳۵۷، به حمایت پنهانی جمهوری اسلامی از حزبالله در جریان درگیریهای جنوب لبنان (۲۰۰۰–۱۹۸۵) و در سال ۲۰۰۵ به یک درگیری منطقهای نیابتی تبدیل شد. در سال ۲۰۰۶، جمهوری اسلامی بهطور فعال در حمایت از حزبالله در طول جنگ اسرائیل و لبنان مشارکت داشت و به موازات آن حمایت از حماس و جهاد اسلامی فلسطین را آغاز کرد. از طرف دیگر، اسرائیل با استفاده از چندین شبه نظامی در داخل ایران، یک کمپین برای آسیب رساندن به برنامه هستهای ایران آغاز کرد. با شروع جنگ داخلی سوریه، درگیریها بالا گرفت و تا سال ۲۰۱۸ به جنگ مستقیم جمهوری اسلامی و اسرائیل تبدیل شد.
جمهوری اسلامی حمایت قابل توجهی از حزبالله، حماس، و جنبش جهاد اسلامی فلسطین میکند، در حالی که اسرائیل از سازمان مجاهدین خلق ایران حمایت میکند و بهطور مستقیم ترور و حمله به اهداف مرتبط با جمهوری اسلامی انجام داده است. اسرائیل همچنین حملات سایبری علیه ایران را انجام داده و علناً از اقدام نظامی بینالمللی علیه جمهوری اسلامی دفاع میکند.
در ۲۳ خرداد ۱۴۰۴، نیروی هوایی اسرائیل به چندین نقطه در سراسر ایران حملاتی انجام داد. این حملات با نام رمز عملیات ''شیر برخاسته'' که توسط نیروهای دفاعی اسرائیل و موساد انجام شد، تأسیسات هستهای، پایگاههای نظامی، مناطق مسکونی و منازل مقامات ارشد نظامی را هدف قرار داد. ایران در پاسخ به حملات، مجموعهای از موشکهای بالستیک و پهپادها را به سوی اسرائیل پرتاب کرد اما به دلیل وجود سانسور شدید خبری، رسانههای اسرائیلی خسارتها و تلفات این حملهها را به طور کامل اعلام نکردند.
در طی روزهای جنگ، مقامات ایرانی پروازها در فرودگاه بینالمللی امام خمینی را تعلیق کردند. بلافاصله پس از شروع حملات، ساکنان تهران بهصورت گسترده شروع به ترک شهر کردند. سخنگوی نیروهای مسلح جمهوری اسلامی ایران، ابوالفضل شکارچی، وعدهٔ انتقام از اسرائیل و ایالات متحده را داد. سرانجام ایران و اسرائیل با میانجیگری آمریکا و قطر با یک آتشبس دوجانبه در ۳ تیر ۱۴۰۴ موافقت کردند.
==اعتراضات مردمی در دوران جمهوری اسلامی==
جنبشهای اعتراضی مختلفی در این دوره رخ داده است.
===نخستین اعتراضها===
حمله به کوی دانشگاه تهران (درگیری میان دانشجویان با نیروهای انتظامی و افراد موسوم به لباس شخصیها در تیرماه ۱۳۷۸)، اعتراضات به نتیجه انتخابات دهم رئیس جمهوری (خرداد و تیر ۱۳۸۸)، اعتراضات دی ۱۳۹۶ (در پی گرانی و سیاستهای دولت روحانی از مشهد و شهرهای بزرگ شروع شد)، اعتراضات آبان ۱۳۹۸ ایران یا آبان خونین (در پی افزایش قیمت بنزین) و اعتراضات شهریور ۱۴۰۱ (در پی کشتهشدن مهسا امینی) از جمله بزرگترین اعتراضات مردمی این دوره است. اعتراضهای ضدحکومتی ۱۳۸۸ تا ۱۴۰۱ در ایران، کشتههای بسیاری بر جا گذاشتند و در جدیدترین آنها رژیم جمهوری اسلامی اقدام به فیلترینگ گسترده اینترنت و شبکههای اجتماعی نمود. پس از رقم خوردن اعتراضات شهریور ۱۴۰۱، یک گروه مخالف به نام جوانان محلات تهران شکل گرفت.
===جنبش مهسا===
اعتراضهای سراسری ۱۴۰۱ در پی کشتهشدن مهسا امینی در عرض چند روز به تمام ۳۱ استان و به بیش از ۱۰۰ شهر ایران گسترش یافت. حمله به دانشگاه صنعتی شریف نیز از دیگر مواردی بود که در طول اعتراضات رخ داد که تعدادی تنبیه بدنی و حدود ۴۰–۳۰ دانشجو بازداشت شدند. در جمعه سیاه زاهدان حدود ۹۰ نفر کشته شدند. در کشورهای دیگر نیز عده زیادی در حمایت از خیزش مردم ایران تجمعهای اعتراضی برگزار کردند. شماری از چهرههای سرشناس هنری، فرهنگی و ورزشی ایران و فراتر از ایران از اعتراضات سراسری ۱۴۰۱ ایران حمایت کردند. شمار بازیگرانی که از معترضان حمایت کردهاند به اندازهای بود که صدا و سیمای ایران برای پخش و بازپخش تعداد زیادی از مجموعهها و فیلمهای تلویزیونی دچار مشکل شد.
نیروهایی از نیروی انتظامی، سپاه پاسداران و نیروی زمینی ارتش که زیرمجموعه ستاد کل نیروهای مسلح هستند در سرکوب معترضان در پی کشتهشدن مهسا امینی نقش داشتهاند. سپاه پاسداران انقلاب اسلامی جدای از نیروهای خودش از نیروهای بسیج نیز استفاده کردهاست. همچنین از لباسشخصیها و گروهی به نام نیروهای خودجوش سرزمینهای اسلامی نیز استفاده شدهاست. نیروهای سرکوب جمهوری اسلامی برای سرکوب شهروندان در این اعتراضات از ابزارهای گوناگون مانند باتون، باتون برقی، اسلحه دستی و تفنگ جنگی و همچنین از خشونت، یورش به منازل مسکونی، شلیک مستقیم به شهروندان، آسیب رساندن به اموال عمومی و خصوصی مردم از جمله خودروها و مغازهها استفاده کرد. رژیم جمهوری اسلامی تعدادی از معترضان را بازداشت و تعدادی از آنها از جمله محسن شکاری، میلاد زهرهوند و مجیدرضا رهنورد را که در اعتراضات حضور فعال داشتند اعدام کرد.
===اعتراضات دی ۱۴۰۴ ===
اعتراضات دی ۱۴۰۴ ایران موج گستردهای از تجمعهای اعتراضی و اعتصابهای ضد حکومتی در ایران است که از ۷ دی ۱۴۰۴ در تهران آغاز شد و در ادامه به سایر شهرهای ایران گسترش یافت. این اعتراضات در شرایطی رخ داد که ارزش ریال به کمترین میزان خود در طول تاریخ رسیده بود و بیکاری جوانان و فقر مردم به شدت افزایش یافته بود. معترضان با تجمعات علنی، سر دادن شعارهای ضد دولتی و ادامه اعتصابها برای روز دوم، همزمان با رویدادهایی مانند استعفای رئیس کل بانک مرکزی، اعتراض خود را ادامه دادند. افراد لباس شخصی برای سرکوب معترضان از انواع تجهیزات مانند دشنه، سلاح گرم، گاز اشکآور، تونفا و شوکر استفاده کردند. افراد لباس شخصی در روزهای تظاهرات جلوی شهروندان عادی و خودروهایی را که در مسیر بودند گرفته و ضمن توهین به آنها، مدارک شناساییشان را چک میکردند. همچنین آنها جلوی شهروندان عادی را به بهانه عکسبردای یا فیلمبرداری با گوشی میگرفتند و گوشی موبایل آنها را چک میکردند. بسیاری از ماموران لباس شخصی و افسران نظامی از ترس شناسایی شدن توسط شهروندان، از کلاه و ماسک استفاده میکردند. در شهرهای بزرگ، از ماشین آبپاش برای سرکوب معترضان استفاده کردند. شاتگانهای کالیبر ۱۶، کلاشنیکف، شاتگان Escort MPA-TS و تفنگ دراگونوف از پر کاربردترین تفنگهای استفاده شده توسط نیروهای سرکوبگر وابسته به حکومت بود.
علاوه بر جوانان بیکار، کاسبان بازار، دانشجویان دانشگاهها، زنان خانهدار، ... در این اعتراضات حضور فعال داشتند. در شامگاه روز چهارم، معترضان در شهر اسدآباد استان همدان یک ساختمان را به آتش کشیدند، که بر اساس ادعای برخی گزارشها، سازه مورد نظر، پایگاه نیروهای شبهنظامی بسیج بوده است. تشکلها و فعالان دانشجویی در دانشگاههای امیرکبیر، بهشتی و تهران با صدور بیانیههایی جداگانه، از دانشجویان خواستند با تجمع و اعلام همبستگی، به موج اعتراضها بپیوندند. اولین معترض کشتهشده، جوان ۲۶ سالهای به نام امیرحسام خدایاریفرد بود که در استان لرستان کشته شد. شرکتکنندگان در تجمعات و راهپیماییها شعارهایی را سر دادند که بازتابدهندهٔ ترکیبی از مطالبات اقتصادی، اجتماعی و سیاسی بود. شعارهایی علیه رهبر جمهوری اسلامی مانند «مرگ بر خامنهای» از رایجترین شعارهای سیاسی در تجمعات بود. معترضان ویدئوهای بسیاری از نیروهای سرکوبگر که با توسل به زور در خیابانها مردم را میزدند منتشر کردهاند. در مسیرهای منتهی به محل درگیری معترضان و سرکوبگران، بوق خودروها و وسایل نقلیه به نشانه اعتراض شهرهای ایران را در بر میگرفت.
فاطمه مهاجرانی سخنگوی دولت با تأکید بر اینکه معترضان فرزندان ما هستند، اظهار کرد: با دستور رئیسجمهوری همه وزارتخانهها و دستگاهها متناسب با وظایف خود موظف شدهاند برای گفتوگو و پیگیری مطالبات مردم اقدام کنند. دولت ایران در واکنش به ادامه اعتراضات گسترده سراسری، دسترسی به اینترنت را در بسیاری از نقاط کشور قطع یا بهطور جدی محدود کرد. دهها نفر در این اعتراضات کشته و هزارن نفر مجروح شدند. همچنین نیروهای امنیتی در شهرهای مختلف از جمله اسفراین، دهلران، ایذه، بَغملَک و کرمانشاه معترضانی را بازداشت کردند، از جمله زنان، جوانان و افرادی از اقوام مختلف. گزارشهایی نیز از بازداشت چند دانشجو در دانشگاهها و مراکز آموزشی منتشر شده است، هرچند رسانههای رسمی تعداد دقیق و هویت همهٔ بازداشتشدگان را اعلام نکردهاند.
از ۱۸ دی ۱۴۰۴، اینترنت در ایران بهطور سراسری قطع شد و این قطعی تا ۷ بهمن ادامه داشت. حوالی ساعت ۸ شب روز پنجشنبه ۱۸ دی در پی فراخوان رضا پهلوی میلیونها نفر در تمام شهرهای ایران وارد خیابانها شدند و طبق اعلام نت بلاکس از ساعت ۷ شب به مرور اینترنت در سراسر کشور قطع شد. در روز یکشنبه ۲۱ دی ۱۴۰۴، اعتراضها و واکنشهایی در چندین شهر ایران گزارش شد. در جریان مراسم خاکسپاری تعدادی از معترضانی که در روزهای گذشته کشته شده بودند، نیروهای امنیتی با گاز اشکآور و اسلحه پینتبال به خانوادهها و شرکتکنندگان حمله کردند و در این مراسم شعارهای ضدحکومتی سر داده شد. در بندرعباس، جمعیت قابل توجهی از معترضان به خیابانها آمدند و در شیراز، کسبه دست به اعتصاب زدند تا همراهی خود با خیزشهای مردمی را نشان دهند. در ۲۵ دی، قوهٔ قضاییه جمهوری اسلامی اعلام کرد برای عرفان سلطانی، معترض ۲۶ ساله بازداشتشده، حکم اعدام صادر نشده است. در ۲۶ دی، تجمعهای اعتراضی در استرالیا (در شهرهایی از جمله ملبورن و کرایستچرچ) در حمایت از معترضان ایران برگزار شد. در روز یکشنبه ۲۸ دی، ایرانیان مقیم کشورهای مختلف، از جمله ایالات متحده، کانادا، آلمان و اتریش، در حمایت از مردم ایران، تجمع و راهپیمایی برگزار کردند و شعارهایی همچون «مرگ بر خامنهای» و «جاوید شاه» سر دادند.
در روزهای بعد، حکومت با خشونت سیاسی مراسم دفن کشتهشدگان را سرکوب کرد و علاوه بر معترضانی که در خیابان بازداشت کرده بود عدهای دیگر از آنها را در خانههایشان دستگیر کرد و به بازداشتگاه برد. اگرچه تعداد دقیق کشتهشدهها بر اثر شلیک گلوله و ضرب و شتم مشخص نیست اما منابع مختلف ارقامی بین حدود ۳٬۴۰۰ نفر تا بیش از ۳۳٬۰۰۰ نفر را اعلام کردهاند. بر اساس گزارشهای منتشرشده از سوی برخی اعضای کادر درمان، در جریان اعتراضات فشارهای امنیتی بر مراکز درمانی افزایش یافته و در مواردی پروندههای پزشکی مجروحان و کشتهشدگان دستکاری شده است تا علت مرگها تغییر داده شود. یک پزشک در تهران نیز گفته است که نیروهای امنیتی «برای کشتن شلیک میکردند» و یک امدادگر در تهران نیز گزارش داده که «شلیک مستقیم به سرِ جوانها و حتی به قلبشان» انجام شده است. علاوه بر این، شهادتهای متعددی نشان میدهد که نیروهای امنیتی ایران به بیمارستانها یورش برده و معترضان بستریشده را بازداشت کردهاند و در مواردی نیز آنان را اعدام کردهاند. بر اساس گزارشها بیش از ۴۰ هزار شهروند ایرانی در بازداشت به سر میبرند که رقمی بیسابقه در ایران است.
== پانویس ==
{{پانویس}}
[[رده:تاریخ ایران]]
eh3ak82c5sj62cz0r6ns10zz3itw4je
الگو:فهرست رهنمودها
10
6800
135322
126267
2026-09-29T08:28:58Z
Fwldom
26269
135322
wikitext
text/x-wiki
{{جعبهراهنما
|نام=[[وک:ره|رهنمودهای ویکیکتاب]]
|عنوان۱=محتوا
|گروه۱=[[w:fa:ویکیپدیا:تعارض منافع|تعارض منافع]]<br />[[w:fa:ویکیپدیا:کپی مکنید|کپی مکنید]]<br />[[w:fa:ویکیپدیا:ابهامزدایی|ابهامزدایی]]<br />[[w:fa:ویکیپدیا:چرندیات محض|چرندیات محض]]<br />[[w:fa:ویکیپدیا:جعل مکنید|جعل مکنید]] <br /> [[w:fa:ویکیپدیا:صفحههای کاربری|صفحههای کاربری]]<br /> [[ویکیکتاب:ناسزاگویی|ناسزاگویی]]<br />
|عنوان۲=طبقهبندی
|گروه۲=[[w:fa:ویکیپدیا:زیرصفحه|زیرصفحهها]]<br />[[w:fa:ویکیپدیا:ردهها، فهرستها و جعبهفهرستها|ردهها، فهرستها، جعبهها]]<br />[[w:fa:ویکیپدیا:رهنمود فهرستها|فهرستها]]<br />[[w:fa:ویکیپدیا:ردهبندی|ردهها]]
|عنوان۳=ویرایش
|گروه۳=[[w:fa:ویکیپدیا:جسور باشید|جسور باشید]]<br />[[w:fa:ویکیپدیا:وب را بسازید|وب را بسازید]] <br />[[w:fa:راهنما:خلاصه ویرایش|خلاصه ویرایش]]<br />
|عنوان۴=بحث
|گروه۴=[[w:fa:ویکیپدیا:رهنمود صفحه بحث|صفحه بحث]]<br />[[w:fa:ویکیپدیا:امضا|امضا کنید]]
|عنوان۵=رفتار
|گروه۵=[[w:fa:ویکیپدیا:نزاکت|نزاکت]]<br />[[w:fa:ویکیپدیا:برای بیان دیدگاه خود اخلالگری نکنید|اخلالگری نکنید]]<br />[[w:fa:ویکیپدیا:آداب معاشرت|آداب معاشرت]]<br />[[w:fa:ویکیپدیا:فرهنگ شهروندی|فرهنگ شهروندی]]<br />[[w:fa:ویکیپدیا:لطفاً با چماق به استقبال تازهواردها نروید|تازهکاران را نزنید!]]<br />[[w:fa:ویکیپدیا:صفحههای کاربری|صفحههای کاربری]]
}}
[[en:Template:Guideline list]]
[[ml:ഫലകം:മാര്ഗ്ഗരേഖകളുടെ പട്ടിക]]
[[pt:Predefinição:Lista de recomendações]]
[[th:แม่แบบ:กล่องแนวปฏิบัติ]]
[[uk:Шаблон:Вікіпедія:Правила і поради]]
[[vi:Bản mẫu:Danh sách hướng dẫn]]
[[yi:מוסטער:אנווייזונגען ליסטע]]
[[zh:Template:指引列表]]
exy9opo33wlf9eet34mwhsbuq2xaff4
صفحهٔ اصلی
0
9102
135298
125294
2026-09-29T06:46:52Z
Fwldom
26269
135298
wikitext
text/x-wiki
<templatestyles src="Main Page/minerva.css" />
__NOTOC__ __NOEDITSECTION__
</div>
<div style="clear:both; margin:25px 0px 0px 0px; padding:0px;">
<div style="width:100%; margin:0px; padding:0px 5px 5px 5px;">
<div style="clear:both; text-align:center; font-size:95%; margin:0em 1em 0em 1em;">
<div id="mf-overview">[[راهنما:درباره ویکیکتاب|نگاه اجمالی]]</div>
[[ویکیکتاب:خودآموز|خودآموز]]
• [[وک:میز تحریر|پرسش]]
• [[وک:سیاستها و رهنمودها|قوانین]]
• [[راهنما:فهرست|راهنمایی]]
• [[:رده:فهرست موضوعی|گشت]]
<div style="width:50%; float:left; font-size:95%;">
<div style="float:left; width:30%;">
* [[:رده:ریاضی|ریاضی]]
* [[:رده:صنعت|صنعتی]]
* [[:رده:شیمی|شیمی]]
</div>
<div style="float:left; width:30%;">
* [[:رده:زبانها|زبان]]
* [[:رده:تاریخ|تاریخ]]
* [[:رده:ایران|ایران]]
</div>
<div style="float:left; width:30%;">
* [[:رده:راهنماها|راهنماها]]
* [[:رده:کودکان|کودکان]]
* [[:کتاب آشپزی]]
</div>
</div>
<div style="width:40%; text-align:center;">
<div style="font-size:162%; padding:0.1em;">
به [[راهنما:درباره ویکیکتاب|ویکیکتاب خوش آمدید]]!{{سخ}}</div>
<div style="font-size:95%; margin-top:0.2em;">مجموعهای از کتابهای با [[ویکیکتاب:محتویات آزاد|محتوای باز]] که [[راهنما:فهرست|هر کسی میتواند آن را ویرایش کند]]</div>
<div id="pagecount" style="font-size:85%;">با '''[[Special:Statistics|{{NUMBEROFARTICLES}}]]''' صفحه و [[:رده:فهرست موضوعی|صدها]] کتاب </div>
</div>
<div class="livre-accueil-section" style="clear:both; margin:33px 0px 33px 0px; padding:0px; background: #eef8ff; border: solid 2px #fcfdff;">
{| class="livre-accueil-table" style="width:100%; border-spacing:8px 8px; border: solid 2px #f6fbff;"
| class="livre-presentation livre-accueil" style="width:33%; padding:10px; vertical-align:top; background-color: #FBFBFB; border: thin solid #A7D7F9;" | <div id="mf-livre1" title="کتاب برگزیده">{{:کتاب برگزیده/برگزیده}}</div>
| class="livre-presentation livre-accueil" style="width:33%; padding:10px; vertical-align:top; background-color: #FBFBFB; border: thin solid #A7D7F9;" | <div id="mf-livre2" title="کتاب کودکانهٔ برگزیده">{{:کتاب کودکانه/برگزیده}}</div>
| class="livre-presentation livre-accueil" style="width:33%; padding:10px; vertical-align:top; background-color: #FBFBFB; border: thin solid #A7D7F9;" | <div id="mf-livre3" title="دستور پخت برگزیده">{{:دستور پخت/برگزیده}}</div>
|}
<div class="livre-accueil-section" style="clear:both; margin:33px 0px 33px 0px; padding:0px; background: #eef8ff; border: solid 2px #fcfdff;">
{| class="livre-accueil-table" style="width:100%; border-spacing:8px 8px; border: solid 2px #f6fbff;"
| class="livre-presentation livre-accueil" style="width:33%; padding:10px; vertical-align:top; background-color: #FBFBFB; border: thin solid #A7D7F9;" | <div id="mf-livre1" title="کتاب برگزیده">{{:کتاب هفته/برگزیده}}</div>
| class="livre-presentation livre-accueil" style="width:33%; padding:10px; vertical-align:top; background-color: #FBFBFB; border: thin solid #A7D7F9;" | <div id="mf-livre1" title="کتاب برگزیده">{{:کتاب ماه/برگزیده}}</div>
| class="livre-presentation livre-accueil" style="width:33%; padding:10px; vertical-align:top; background-color: #FBFBFB; border: thin solid #A7D7F9;" | <div id="mf-livre1" title="کتاب برگزیده">{{:کتاب سال/برگزیده}}</div>
|}
</div>
{{زیرپروژه}}
{| style="margin:0 0 0 0; background:none; width:100%; margin-top:12px; background:transparent;"
| style="width:100%; border:1px solid #a7d7f9; vertical-align:top; color:#000; padding: 0px 0px 0px 0px; -moz-border-radius: 10px; -webkit-border-radius: 10px; border-radius:10px;" |
{| width="100%" style=" padding:0px; margin-top:0px; margin-bottom:0px; background:transparent;"
| align=center |{{پروژههای خواهر}}</small>
|}
</div>
{{زبانهای دیگر}}
[[ar:]]
[[bg:]]
[[ca:]]
[[cs:]]
[[de:]]
[[el:]]
[[en:]]
[[es:]]
[[fi:]]
[[fr:]]
[[gl:]]
[[he:]]
[[hu:]]
[[hy:]]
[[id:]]
[[it:]]
[[ja:]]
[[ko:]]
[[ku:]]
[[la:]]
[[mk:]]
[[nl:]]
[[no:]]
[[pl:]]
[[pt:]]
[[ro:]]
[[ru:]]
[[th:]]
[[tr:]]
[[vi:]]
[[zh:]]
[[رده:درون مایه]]
rsa0hsgtdn0lpyaecqopc7elfcmg6vg
ویکیکتاب:ویکیکودک چیست؟
4
12207
135324
112150
2026-09-29T08:32:48Z
Fwldom
26269
اصلاح
135324
wikitext
text/x-wiki
{{رهنمود}}
هدف ویکیکودک ایجاد کتابهایی برای کودکان از سن تولد تا ۱۲ سالگی است. این کتابها به شکل ماکروپدیا (macropedia)، کتاب درسی، یا آغازگر (primer) هستند.{{سخ}}
«ویکیکودک» (Wikijunior) منبعی از کتابهای کودک است که توسط جامعهای جهانی از داوطلبان فراهم شدهاست. در ساختِ آن، این ارزشهای محوری مد نظر بودهاست:
* '''رفتار دوستانه با کودک''': در هنگام نوشتن، در ذهن داشتهایم که کتابی که نوشته میشود برای کودک است. موضوعات کتابها طوری انتخاب شدهاند که برای کودکان جذابیت داشته باشند. این کتابها پر از تصویر، نمودار، طرح و نقاشی هستند.
* '''مبتنی بر همکاری دستهجمعی''': کتابهای ویکیکودک تنها یک نویسنده ندارد، بلکه حاصل همکاری چند نفر است.
* '''سرگرمکننده و شاد''': درک محتوای کتابها آسان و به اقتضای سن مخاطبان است. مطالب به گونهای ساده و صمیمی نوشته شدهاند.
* '''معتبر و قابل اطمینان''': مطالب ویکیکودک برپایهٔ واقعیات قابل اثبات هستند و از نظرات شخصی، پژوهشهای دستاول، و داستانپردازی بهدورند.
* '''آزاد''': از همه جای جهان از افراد دعوت میشود تا عضو شوند و در اینجا کتاب بنویسند و محتوای کتابها را ویرایش و بازنویسی کنند. کتابهای ما بهصورت رایگان با پروانهٔ کرییتیو کامنز توزیع میشوند.
p0pav4hcucbvms40643uyu3nvfr9pt5
الگو:نظرخواهیها
10
13105
135316
134833
2026-09-29T08:21:10Z
Fwldom
26269
135316
wikitext
text/x-wiki
'''[[ویکیکتاب:نظرخواهی/نظرخواهی برای سیاست نامگذاری|نظرخواهی برای سیاست نامگذاری ویکیکتاب]]'''{{•}}'''[[ویکیکتاب:نظرخواهی/نویسنده کتاب|نظرخواهی برای درج نام نویسنده در کتاب]]'''{{•}}'''[[ویکیکتاب:نظرخواهی/تعیین بیشینه صفحههای یک کتاب|تعیین بیشینه صفحههای یک کتاب]]'''{{•}}'''[[ویکیکتاب:درخواستهای مدیر شدن|درخواستهای مدیر شدن]]'''
05nbokvclmpf54j59qbd8drzq2inofa
بحث کاربر:Fwldom
3
39167
135285
135052
2026-09-29T05:56:56Z
Fwldom
26269
جایگزینی صفحه با '<div style="float:center;"> {{جعبه بایگانی| [[/بایگانی۱|بایگانی۱]] <br> [[/بایگانی۲|بایگانی۲]] <br> [[/بایگانی۳|بایگانی۳]] <br> [[/بایگانی۴|بایگانی۴]] <br> {{سخ}} }} </div>'
135285
wikitext
text/x-wiki
<div style="float:center;">
{{جعبه بایگانی|
[[/بایگانی۱|بایگانی۱]] <br>
[[/بایگانی۲|بایگانی۲]] <br>
[[/بایگانی۳|بایگانی۳]] <br>
[[/بایگانی۴|بایگانی۴]] <br>
{{سخ}}
}}
</div>
0io4bfp079a0tgcwjxuyn33yso24b5y
135290
135285
2026-09-29T06:21:30Z
Fwldom
26269
اصلاح نشانی وب
135290
wikitext
text/x-wiki
{{جعبه بایگانی|
[[/بایگانی۱|بایگانی۱]] <br>
[[/بایگانی۲|بایگانی۲]] <br>
[[/بایگانی۳|بایگانی۳]] <br>
{{سخ}}
}}
<div style="width:90%;background:#FFFFF0;color:#8B4513;padding:40px;
font-size:9pt;a:link:#8B0000;a:visited:#CD853F;">
<div align="center" dir=rtl>گفتوگو با کاربر Fwldom</div>
----
<div align="center" class="usermessage" style=" center; border:#8B4513 solid 3px; margin:15; background: FloralWhite">[[Image:Cup-o-coffee-simple.svg|50px|left]]'''<span class="plainlinks">
<font color="Maroon" size="3px" face="Arial" color="Black">
برای مطرح نمودن بحث جدید [https://fa.wikibooks.org/w/index.php?title=بحث_کاربر:Fwldom&action=edit§ion=new اینجا] کلیک کنید!<br>
</font></span></div>
برای موارد زیر میتوانید بحث ایجاد کنید.
* اعطای دسترسی
* گزارش خرابکاری یا هرزهنگاری
* درخواست حذف یا انتقال صفحات ([[ویکیکتاب: نظرخواهی برای حذف|نظرخواهی برای حذف]])
* جمع بندی نظرخواهی ها ([[ویکیکتاب:نظرخواهی|نظرخواهی]])
* و ...
</div>
278hzulnsyrsl76r0cxpz0t9gf3vwyl
135294
135290
2026-09-29T06:40:42Z
Vivairan2
28134
/* هشدار */ بخش جدید
135294
wikitext
text/x-wiki
{{جعبه بایگانی|
[[/بایگانی۱|بایگانی۱]] <br>
[[/بایگانی۲|بایگانی۲]] <br>
[[/بایگانی۳|بایگانی۳]] <br>
{{سخ}}
}}
<div style="width:90%;background:#FFFFF0;color:#8B4513;padding:40px;
font-size:9pt;a:link:#8B0000;a:visited:#CD853F;">
<div align="center" dir=rtl>گفتوگو با کاربر Fwldom</div>
----
<div align="center" class="usermessage" style=" center; border:#8B4513 solid 3px; margin:15; background: FloralWhite">[[Image:Cup-o-coffee-simple.svg|50px|left]]'''<span class="plainlinks">
<font color="Maroon" size="3px" face="Arial" color="Black">
برای مطرح نمودن بحث جدید [https://fa.wikibooks.org/w/index.php?title=بحث_کاربر:Fwldom&action=edit§ion=new اینجا] کلیک کنید!<br>
</font></span></div>
برای موارد زیر میتوانید بحث ایجاد کنید.
* اعطای دسترسی
* گزارش خرابکاری یا هرزهنگاری
* درخواست حذف یا انتقال صفحات ([[ویکیکتاب: نظرخواهی برای حذف|نظرخواهی برای حذف]])
* جمع بندی نظرخواهی ها ([[ویکیکتاب:نظرخواهی|نظرخواهی]])
* و ...
</div>
== هشدار ==
درود. درخواست مدیر شدن من رو پاک نکنید وگرنه ازتون شکایت میکنم. [[کاربر:Vivairan2|Vivairan2]] ([[بحث کاربر:Vivairan2|بحث]]) ۲۹ سپتامبر ۲۰۲۶، ساعت ۰۶:۴۰ (UTC)
ctvxp8fzptv3niaudik3jdkur8g3ffd
135296
135294
2026-09-29T06:44:11Z
Fwldom
26269
/* هشدار */ پاسخ
135296
wikitext
text/x-wiki
{{جعبه بایگانی|
[[/بایگانی۱|بایگانی۱]] <br>
[[/بایگانی۲|بایگانی۲]] <br>
[[/بایگانی۳|بایگانی۳]] <br>
{{سخ}}
}}
<div style="width:90%;background:#FFFFF0;color:#8B4513;padding:40px;
font-size:9pt;a:link:#8B0000;a:visited:#CD853F;">
<div align="center" dir=rtl>گفتوگو با کاربر Fwldom</div>
----
<div align="center" class="usermessage" style=" center; border:#8B4513 solid 3px; margin:15; background: FloralWhite">[[Image:Cup-o-coffee-simple.svg|50px|left]]'''<span class="plainlinks">
<font color="Maroon" size="3px" face="Arial" color="Black">
برای مطرح نمودن بحث جدید [https://fa.wikibooks.org/w/index.php?title=بحث_کاربر:Fwldom&action=edit§ion=new اینجا] کلیک کنید!<br>
</font></span></div>
برای موارد زیر میتوانید بحث ایجاد کنید.
* اعطای دسترسی
* گزارش خرابکاری یا هرزهنگاری
* درخواست حذف یا انتقال صفحات ([[ویکیکتاب: نظرخواهی برای حذف|نظرخواهی برای حذف]])
* جمع بندی نظرخواهی ها ([[ویکیکتاب:نظرخواهی|نظرخواهی]])
* و ...
</div>
== هشدار ==
درود. درخواست مدیر شدن من رو پاک نکنید وگرنه ازتون شکایت میکنم. [[کاربر:Vivairan2|Vivairan2]] ([[بحث کاربر:Vivairan2|بحث]]) ۲۹ سپتامبر ۲۰۲۶، ساعت ۰۶:۴۰ (UTC)
:درود بر شما،
:اگر شما انقدر خواهان مدیریت هستید تا 3 روز دیگر این درخواست را باز نگه میدارم. پس از این مدت درخواست شما جمع بندی و به بایگانی منتقل خواهد شد و در صورت ادامه درخواستدادن با توجه به قوانین ویکیکتاب برای بستن دسترسی ویرایش شما اقدام خواهم کرد. [[کاربر:Fwldom|Fwldom]] ([[بحث کاربر:Fwldom|بحث]]) ۲۹ سپتامبر ۲۰۲۶، ساعت ۰۶:۴۴ (UTC)
b196x42ag4z77lkjai3od3up352dbdg
135297
135296
2026-09-29T06:46:49Z
Vivairan2
28134
/* هشدار */ پاسخ
135297
wikitext
text/x-wiki
{{جعبه بایگانی|
[[/بایگانی۱|بایگانی۱]] <br>
[[/بایگانی۲|بایگانی۲]] <br>
[[/بایگانی۳|بایگانی۳]] <br>
{{سخ}}
}}
<div style="width:90%;background:#FFFFF0;color:#8B4513;padding:40px;
font-size:9pt;a:link:#8B0000;a:visited:#CD853F;">
<div align="center" dir=rtl>گفتوگو با کاربر Fwldom</div>
----
<div align="center" class="usermessage" style=" center; border:#8B4513 solid 3px; margin:15; background: FloralWhite">[[Image:Cup-o-coffee-simple.svg|50px|left]]'''<span class="plainlinks">
<font color="Maroon" size="3px" face="Arial" color="Black">
برای مطرح نمودن بحث جدید [https://fa.wikibooks.org/w/index.php?title=بحث_کاربر:Fwldom&action=edit§ion=new اینجا] کلیک کنید!<br>
</font></span></div>
برای موارد زیر میتوانید بحث ایجاد کنید.
* اعطای دسترسی
* گزارش خرابکاری یا هرزهنگاری
* درخواست حذف یا انتقال صفحات ([[ویکیکتاب: نظرخواهی برای حذف|نظرخواهی برای حذف]])
* جمع بندی نظرخواهی ها ([[ویکیکتاب:نظرخواهی|نظرخواهی]])
* و ...
</div>
== هشدار ==
درود. درخواست مدیر شدن من رو پاک نکنید وگرنه ازتون شکایت میکنم. [[کاربر:Vivairan2|Vivairan2]] ([[بحث کاربر:Vivairan2|بحث]]) ۲۹ سپتامبر ۲۰۲۶، ساعت ۰۶:۴۰ (UTC)
:درود بر شما،
:اگر شما انقدر خواهان مدیریت هستید تا 3 روز دیگر این درخواست را باز نگه میدارم. پس از این مدت درخواست شما جمع بندی و به بایگانی منتقل خواهد شد و در صورت ادامه درخواستدادن با توجه به قوانین ویکیکتاب برای بستن دسترسی ویرایش شما اقدام خواهم کرد. [[کاربر:Fwldom|Fwldom]] ([[بحث کاربر:Fwldom|بحث]]) ۲۹ سپتامبر ۲۰۲۶، ساعت ۰۶:۴۴ (UTC)
::من خواهان چیزی نیستم. درخواست من باید حداقل تا یک ماه و حتی بیشتر باز باشد. اگر خطایی بکنید از شما شکایت میکنم. [[کاربر:Vivairan2|Vivairan2]] ([[بحث کاربر:Vivairan2|بحث]]) ۲۹ سپتامبر ۲۰۲۶، ساعت ۰۶:۴۶ (UTC)
6ht9hbtooy6kb4obk27aquzdr27iskf
135313
135297
2026-09-29T08:13:31Z
Fwldom
26269
/* هشدار */ پاسخ
135313
wikitext
text/x-wiki
{{جعبه بایگانی|
[[/بایگانی۱|بایگانی۱]] <br>
[[/بایگانی۲|بایگانی۲]] <br>
[[/بایگانی۳|بایگانی۳]] <br>
{{سخ}}
}}
<div style="width:90%;background:#FFFFF0;color:#8B4513;padding:40px;
font-size:9pt;a:link:#8B0000;a:visited:#CD853F;">
<div align="center" dir=rtl>گفتوگو با کاربر Fwldom</div>
----
<div align="center" class="usermessage" style=" center; border:#8B4513 solid 3px; margin:15; background: FloralWhite">[[Image:Cup-o-coffee-simple.svg|50px|left]]'''<span class="plainlinks">
<font color="Maroon" size="3px" face="Arial" color="Black">
برای مطرح نمودن بحث جدید [https://fa.wikibooks.org/w/index.php?title=بحث_کاربر:Fwldom&action=edit§ion=new اینجا] کلیک کنید!<br>
</font></span></div>
برای موارد زیر میتوانید بحث ایجاد کنید.
* اعطای دسترسی
* گزارش خرابکاری یا هرزهنگاری
* درخواست حذف یا انتقال صفحات ([[ویکیکتاب: نظرخواهی برای حذف|نظرخواهی برای حذف]])
* جمع بندی نظرخواهی ها ([[ویکیکتاب:نظرخواهی|نظرخواهی]])
* و ...
</div>
== هشدار ==
درود. درخواست مدیر شدن من رو پاک نکنید وگرنه ازتون شکایت میکنم. [[کاربر:Vivairan2|Vivairan2]] ([[بحث کاربر:Vivairan2|بحث]]) ۲۹ سپتامبر ۲۰۲۶، ساعت ۰۶:۴۰ (UTC)
:درود بر شما،
:اگر شما انقدر خواهان مدیریت هستید تا 3 روز دیگر این درخواست را باز نگه میدارم. پس از این مدت درخواست شما جمع بندی و به بایگانی منتقل خواهد شد و در صورت ادامه درخواستدادن با توجه به قوانین ویکیکتاب برای بستن دسترسی ویرایش شما اقدام خواهم کرد. [[کاربر:Fwldom|Fwldom]] ([[بحث کاربر:Fwldom|بحث]]) ۲۹ سپتامبر ۲۰۲۶، ساعت ۰۶:۴۴ (UTC)
::من خواهان چیزی نیستم. درخواست من باید حداقل تا یک ماه و حتی بیشتر باز باشد. اگر خطایی بکنید از شما شکایت میکنم. [[کاربر:Vivairan2|Vivairan2]] ([[بحث کاربر:Vivairan2|بحث]]) ۲۹ سپتامبر ۲۰۲۶، ساعت ۰۶:۴۶ (UTC)
:::مشکلی نیست درخواست شما میتواند نهایتا تا 17 مهر 1405 بر روی صفحه نظرخواهی باشد. [[کاربر:Fwldom|Fwldom]] ([[بحث کاربر:Fwldom|بحث]]) ۲۹ سپتامبر ۲۰۲۶، ساعت ۰۸:۱۳ (UTC)
fpmpkiiae6bwgo13kgbm74knrow5otp
135315
135313
2026-09-29T08:16:13Z
Vivairan2
28134
/* هشدار */ ابرابزار
135315
wikitext
text/x-wiki
{{جعبه بایگانی|
[[/بایگانی۱|بایگانی۱]] <br>
[[/بایگانی۲|بایگانی۲]] <br>
[[/بایگانی۳|بایگانی۳]] <br>
{{سخ}}
}}
<div style="width:90%;background:#FFFFF0;color:#8B4513;padding:40px;
font-size:9pt;a:link:#8B0000;a:visited:#CD853F;">
<div align="center" dir=rtl>گفتوگو با کاربر Fwldom</div>
----
<div align="center" class="usermessage" style=" center; border:#8B4513 solid 3px; margin:15; background: FloralWhite">[[Image:Cup-o-coffee-simple.svg|50px|left]]'''<span class="plainlinks">
<font color="Maroon" size="3px" face="Arial" color="Black">
برای مطرح نمودن بحث جدید [https://fa.wikibooks.org/w/index.php?title=بحث_کاربر:Fwldom&action=edit§ion=new اینجا] کلیک کنید!<br>
</font></span></div>
برای موارد زیر میتوانید بحث ایجاد کنید.
* اعطای دسترسی
* گزارش خرابکاری یا هرزهنگاری
* درخواست حذف یا انتقال صفحات ([[ویکیکتاب: نظرخواهی برای حذف|نظرخواهی برای حذف]])
* جمع بندی نظرخواهی ها ([[ویکیکتاب:نظرخواهی|نظرخواهی]])
* و ...
</div>
== هشدار ==
درود. درخواست مدیر شدن من رو پاک نکنید وگرنه ازتون شکایت میکنم. [[کاربر:Vivairan2|Vivairan2]] ([[بحث کاربر:Vivairan2|بحث]]) ۲۹ سپتامبر ۲۰۲۶، ساعت ۰۶:۴۰ (UTC)
:درود بر شما،
:اگر شما انقدر خواهان مدیریت هستید تا ۳ روز دیگر این درخواست را باز نگه میدارم. پس از این مدت درخواست شما جمعبندی و به بایگانی منتقل خواهد شد و در صورت ادامه درخواستدادن با توجه به قوانین ویکیکتاب برای بستن دسترسی ویرایش شما اقدام خواهم کرد. [[کاربر:Fwldom|Fwldom]] ([[بحث کاربر:Fwldom|بحث]]) ۲۹ سپتامبر ۲۰۲۶، ساعت ۰۶:۴۴ (UTC)
::من خواهان چیزی نیستم. درخواست من باید حداقل تا یک ماه و حتی بیشتر باز باشد. اگر خطایی بکنید از شما شکایت میکنم. [[کاربر:Vivairan2|Vivairan2]] ([[بحث کاربر:Vivairan2|بحث]]) ۲۹ سپتامبر ۲۰۲۶، ساعت ۰۶:۴۶ (UTC)
:::مشکلی نیست درخواست شما میتواند نهایتاً تا ۱۷ مهر ۱۴۰۵ بر روی صفحه نظرخواهی باشد. [[کاربر:Fwldom|Fwldom]] ([[بحث کاربر:Fwldom|بحث]]) ۲۹ سپتامبر ۲۰۲۶، ساعت ۰۸:۱۳ (UTC)
6rs6q5xxl1zltnh048bcora81q73lyp
کاربر:Fwldom
2
39169
135284
135053
2026-09-29T05:56:14Z
Fwldom
26269
135284
wikitext
text/x-wiki
{نشان های من: >>>
{{نشان مدیر}}
{{خوش آمد گویی صفحه کاربری}}
{{جعبه رنگیشده
| background-content-color = gold
| text-color = gold
| title = درود بر شما
| content = {{شعر|نستعلیق}}
{{ب|بیا تا جهان را به بد نسپریم|به کوشش همه دست نیکی بریم}}
{{ب|نباشد همی نیک و بد ، پایدار|همان به که نیکی بود یادگار}}
{{پایان شعر}}
}}
== کتاب های ایجاد شده توسط من ==
*[[آموزش کامل خط فرمان ویندوز]]
*[[مبانی شبکههای کامپیوتری و سختافزار|مبانی شبکههای کامپیوتری و سخت افزار]]
*[[برنامه نویسی PSP]]
*[[زبان برنامهنویسی گو]]
*[[سیاساس|CSS]]
===همکاری در کتاب های: ===
*[[پیاچپی|پی اچ پی]]
*[[آموزش کار با تریدی مکس]]
*[[اچتیامال]]
=== آمار ===
* الگو ها: ۳
* کتاب کامل: ۴
* کتاب ناقص: ۱
* [[کاربر:Fwldom/آمار|آمار کاربر]]
{{کاربر کوروش بزرگ}}
[[رده:کاربران ایران|{{PAGENAME}}]]
lk700rnk1dwi1jpf2wszzhlsuo681kf
آموزش کامل خط فرمان ویندوز/آشنایی با خط فرمان و دستورات پایه آن
0
39170
135301
134976
2026-09-29T07:02:40Z
Fwldom
26269
/* ﻧﮑﺎت cmd */
135301
wikitext
text/x-wiki
== مقدمه ==
=== وﯾﻨﺪوز ﭼﯿﺴﺖ؟ ===
ﻣﺎﯾﮑﺮوﺳﺎﻓﺖ وﯾﻨﺪوز (به اﻧﮕﻠﯿﺴﯽ: Microsoft Windows) ﯾﮏ ﺳﯿﺴﺘﻢﻋﺎﻣﻞ اﺳﺖ ﮐﻪ ﺗﻮﺳﻂ ﻣﺎﯾﮑﺮوﺳﺎﻓﺖ ﺗﻮﺳﻌﻪ ﯾﺎﻓﺘﻪ اﺳﺖ. وﯾﻨﺪوز از ﺳﺎل ۱۹۸۵ ﺗﺎﮐﻨﻮن ﺑﻪ ﺑﺎزار ﻋﺮﺿﻪ ﺷﺪه اﺳﺖ.
===cmd ﭼﯿﺴﺖ؟===
ﺳﯽامدی (ﺑﻪ اﻧﮕﻠﯿﺴﯽ: cmd) ﯾﮏ ﺧﻂ ﻓﺮﻣﺎن اﺳﺖ ﮐﻪ ﻣﺨﻔﻒ command Prompt اﺳﺖ. ﺧﻂ ﻓﺮﻣﺎن در ﻣﻘﺎﯾﺴﻪ ﺑﺎ راﺑﻂ ﮐﺎرﺑﺮی ﮔﺮاﻓﯿﮑﯽ ﻣﺤﯿﻄﯽ ﺑﯽروح دارد. ﺧﻂ ﻓﺮﻣﺎن در واﻗﻊ ﻣﺤﯿﻄﯽ اﺳﺖ ﮐﻪ در آن دﺳﺘﻮرات ﺑﻪ ﺻﻮرت ﻣﺘﻨﯽ ﺑﻪ ﮐﺎﻣﭙﯿﻮﺗﺮ داده ﻣﯽﺷﻮد. ﺧﻂ ﻓﺮﻣﺎن در ﺳﯿﺴﺘﻢﻋﺎﻣﻞﻫﺎﯾﯽ ﻣﺎﻧﻨﺪ وﯾﻨﺪوز، ﻟﯿﻨﻮﮐﺲ و ... ﺑﺼﻮرت ﯾﮏ ﻧﺮم اﻓﺰار اراﺋﻪ ﻣﯽﺷﻮد.
نکته خط فرمان ویندوز (سیامدی) یک CLI است در ادامه با CLI بیشتر آشنا میشویم.
===CLI چیست ؟===
Command Line Interface یا رابط خط فرمان به شکل مخفف CLI
یک روش تعامل با کامپیوتر یا سیستم عامل است که از طریق وارد کردن دستورات متنی انجام میپذیرد.
===GUI چیست ؟===
GUI مخفف Graphical User Interface به معنای رابط کاربری گرافیکی است. در مقابل CLI که به صورت متنی است، GUI به کاربر اجازه میدهد تا از طریق عناصر گرافیکی مانند دکمهها، منوها، صفحهها، تعامل کند.
===اجرای ﺧﻂ ﻓﺮﻣﺎن وﯾﻨﺪوز===
ﺑﺎ ﻧﮕﻪ داﺷﺘﻦ ﮐﻠﯿﺪﻫﺎی win + R ⊞ ﻣﯽﺗﻮاﻧﯿﺪ وﯾﻨﺪوز ران (Run) را ﺑﺎز ﮐﺮده و ﺳﭙﺲ ﺑﺎ ﺗﺎﯾﭗ cmd و ﻓﺸﺮدن ﮐﻠﯿﺪ اﯾﻨﺘﺮ (Enter) ﺧﻂ ﻓﺮﻣﺎن وﯾﻨﺪوز را ﺑﺎز ﮐﻨﯿﺪ.<br>
ﻫﻤﭽﻨﯿﻦ ﻧﯿﺰ ﻣﯽﺗﻮاﻧﯿﺪ ﺑﺎ ﺟﺴﺘﺠﻮ ﮐﻠﻤﻪ cmd آن را ﭘﯿﺪا و ﺑﺎز ﮐﻨﯿﺪ.
===ﺳﺎﺧﺘﺎر دﺳﺘﻮرات در ﺧﻂ ﻓﺮﻣﺎن وﯾﻨﺪوز===
* ساختار دستورات cmd بصورت زیر است:
<code>Command (parameter) (switch)</code>
===ﭘﺎراﻣﺘﺮ ﭼﯿﺴﺖ؟===
ﭘﺎراﻣﺘﺮﻫﺎ در واﻗﻊ ورودیﻫﺎ ﯾﺎ ﻣﺘﻐﯿﺮﻫﺎ ﺗﺎﺑﻊ (ﻓﺎﻧﮑﺸﻦ)ﻫﺎ ﻫﺴﺘﻨﺪ؛ ﺑﻪ ﺑﯿﺎﻧﯽ ﺳﺎدهﺗﺮ ﭘﺎراﻣﺘﺮﻫﺎ ﻣﻘﺎدﯾﺮی ﻫﺴﺘﻨﺪ ﮐﻪ ﺑﻪ ﺗﻮاﺑﻊ ﯾﺎ دﺳﺘﻮرات ﺑﺮای اﺟﺮای ﻋﻤﻠﯿﺎت ﺧﺎﺻﯽ داده ﻣﯽﺷﻮد.
==دﺳﺘﻮرات ﭘﺎﯾﻪ ﺧﻂ ﻓﺮﻣﺎن وﯾﻨﺪوز==
===دﺳﺘﻮر cd===
اﯾﻦ دﺳﺘﻮر ﺑﺮای ﻋﻮض ﮐﺮدن داﯾﺮﮐﺘﻮری ﻓﻌﻠﯽ ﮐﻪ در آن ﻫﺴﺘﯿﺪ ﮐﺎرﺑﺮد و ﺑﺎ اﯾﻦ دﺳﺘﻮر ﻣﯽﺗﻮاﻧﯿﺪ داﯾﺮﮐﺘﻮری ﻓﻌﻠﯿﺘﻮن رو ﻋﻮض ﮐﻨﯿﺪ. ﻣﺎﻧﻨﺪ
<syntaxhighlight lang="batch">
cd FolderName
</syntaxhighlight>
* ﺑﺎ اﺳﺘﻔﺎده از
<syntaxhighlight lang="batch">
cd ../
</syntaxhighlight>
ﻣﯽﺗﻮاﻧﯿﺪ ﺑﻪ داﯾﺮﮐﺘﻮری قبلی ﺑﺮوﯾﺪ و ﺑﺎ اﺳﺘﻔﺎده از
<syntaxhighlight lang="batch">
cd /
</syntaxhighlight>
ﻣﯽﺗﻮاﻧﯿﺪ ﺑﻪ رﯾﺸﻪ (root) ﺑﺮﮔﺮدﯾﺪ.
* برای مثال
<syntaxhighlight lang="batch">
cd testfolder
</syntaxhighlight>
به دایرکتوری testfolder میرود.
===دﺳﺘﻮر dir===
دﺳﺘﻮر dir ﺑﺮای ﻧﻤﺎﯾﺶ ﻣﺤﺘﻮﯾﺎت داﯾﺮﮐﺘﻮری ﻓﻌﻠﯽ اﺳﺖ ﺑﺎ اﺳﺘﻔﺎده از
dir /s
ﻣﯽﺗﻮاﻧﯿﺪ ﻣﺤﺘﻮای داﯾﺮﮐﺘﻮری ﻓﻌﻠﯽ و ﺗﻤﺎﻣﯽ
داﯾﺮﮐﺘﻮریﻫﺎی زﯾﺮﯾﻦ آن را ﻧﻤﺎﯾﺶ دﻫﯿﺪ.
===دﺳﺘﻮر mkdir===
اﯾﻦ دﺳﺘﻮر ﺑﺮای اﯾﺠﺎد ﯾﮏ داﯾﺮﮐﺘﻮری (ﭘﻮﺷﻪ) ﺑﻪ ﮐﺎر ﻣﯽرود و ﯾﮏ ﭘﺎراﻣﺘﺮ ﻣﻬﻢ از ﺷﻤﺎ ﻣﯽﮔﯿﺮد ﮐﻪ آن ﻧﺎم ﭘﻮﺷﻪ است ﻣﺎﻧﻨﺪ:
md testfoldername
ﻧﮑﺘﻪ: دﺳﺘﻮرات md و mkdir ﺑﺎ ﻫﻢ ﻓﺮﻗﯽ ﻧﺪارﻧﺪ. ﻧﯿﺰ ﺑﻬﺘﺮ اﺳﺖ ﻧﺎم پوﺷﻪ ﺑﯿﻦ "" ﻗﺮار دﻫﯿﺪ.
===دﺳﺘﻮر ren===
اﯾﻦ دﺳﺘﻮر ﺑﺮای ﻋﻮض ﮐﺮدن ﻧﺎم ﭘﻮﺷﻪﻫﺎ ﯾﺎ ﻓﺎﯾﻞﻫﺎ اﺳﺘﻔﺎده ﻣﯽﺷﻮد. ﻣﺎﻧﻨﺪ:
ren FileName.extension newName.extension
ren Folder NewFolderName
ﻧﮑﺘﻪ: ﺑﺮای ﺗﻐﯿﯿﺮ ﻧﺎم ﻓﺎﯾﻞﻫﺎ ﺣﺘما ﺑﺎﯾﺪ ﻧﺎم آن را ﺑﻬﺮاه ﭘﺴﻮﻧﺪ آن ﺑﻪ دﺳﺘﻮر داد و ﻫﻤﯿﻨﻄﻮر ﺑﺮای ﻧﺎم ﺟﺪﯾﺪ.
== دﺳﺘﻮرات cmd ==
===دﺳﺘﻮرات ﭘﺎﯾﻪ===
* color : ﺑﺮای ﻋﻮض ﮐﺮدن رﻧﮓ ﭘﺲ زﻣﯿﻨﻪ و ﻣﺘﻦ ﻣﺤﯿﻂ cmd ﺑﻪ ﮐﺎر ﻣﯽرود ﺑﺮای ﻣﺜﺎل: color 71
* exit : ﺑﺮای ﺧﺎرج ﺷﺪن از ﻣﺤﯿﻂ ﺧﻂ ﻓﺮﻣﺎن اﺳﺘﻔﺎده ﻣﯽﺷﻮد.
* help : راﻫﻨﻤﺎﯾﯽ در ﻣﻮرد ﺧﻂ ﻓﺮﻣﺎن ﻧﻤﺎﯾﺶ ﻣﯽدﻫﺪ.
* ver : ﻧﺴﺨﻪ وﯾﻨﺪوز را ﺑﻪ ﻧﻤﺎﯾﺶ ﻣﯽﮔﺬارد.
* whoami : ﻧﺎم ﮐﺎرﺑﺮی و ﻧﺎم راﯾﺎﻧﻪ را ﻧﻤﺎﯾﺶ ﻣﯽدﻫﺪ.
* systeminfo : اﻃﻼﻋﺎﺗﯽ در ﻣﻮرد راﯾﺎﻧﻪ را ﺑﻪ ﺷﻤﺎ ﻧﻤﺎﯾﺶ ﻣﯽدﻫﺪ ﻣﺎﻧﻨﺪ ﻧﺴﺨﻪ ﺳﯿﺴﺘﻢ ﻋﺎﻣﻞ و Bios و ﻧﻮع ﺳﯿﺴﺘﻢ.
* cls: برای پاک کردن صفحه کنسول استفاده میشود
مدیریت فایل
* md: ﺳﺎﺧﺖ ﭘﻮﺷﻪ ﯾﺎ ﻫﻤﺎن داﯾﺮﮐﺘﻮری ﺑﺮای ﻣﺜﺎل
md testfolder
ﻧﮑﺘﻪ mkdir ﺑﺎ md ﻫﯿﭻ ﻓﺮﻗﯽ ﻧﺪارد.
*fsutil: ﺑﺮای اﯾﺠﺎد ﻓﺎﯾﻞ ﺑﺎ ﺣﺠﻢ دﻟﺨﻮاه اﺳﺘﻔﺎده ﻣﯽﺷﻮد
4000 file.txt createnew file fsutil
ﻧﮑﺘﻪ: ﺣﺠﻢ دﻟﺨﻮاه ﺑﺮ اﺳﺎس ﺑﺎﯾﺖ اﺳﺖ.
* :rd/rmdir ﺑﺮای ﺣﺬف ﭘﻮﺷﻪ ﮐﺎرﺑﺮد دارد ﺑﺮای ﻣﺜﺎل
rmdir foldertest
* del: ﺑﺮای ﺣﺬف ﻓﺎﯾﻞﻫﺎ ﺑﺮای ﻣﺜﺎل
del file.txt
ﻓﺎﯾﻞ file.txt را ﺣﺬف ﻣﯽﮐﻨﺪ.
del *.txt : ﺗﻤﺎم ﻓﺎﯾﻞﻫﺎی دارای ﭘﺴﻮﻧﺪ txt را ﺣﺬف ﻣﯽﮐﻨﺪ.
ﻧﮑﺘﻪ: ﺑﻄﻮر ﮐﻠﯽ * ﺑﻪ ﻣﻌﻨﺎی ﻫﻤﻪ اﺳﺖ.
* rename/ren: ﺑﺮای ﺗﻐﯿﯿﺮ ﻧﺎم ﻓﺎﯾﻞﻫﺎ ﺑﮑﺎر ﻣﯽرود.
ren name.txt newname.txt
* tree: ﻣﺤﺘﻮﯾﺎت داﯾﺮﮐﺘﻮری ﻓﻌﻠﯽ را ﺑﺼﻮرت درﺧﺘﯽ ﻧﺸﺎن ﻣﯽدﻫﺪ.
* cp / copy : ﺑﺮای ﮐﭙﯽ ﻓﺎﯾﻞﻫﺎ اﺳﺘﻔﺎده میشود.
ﻣﯽﺷﻮد ﺑﺮای ﻣﺜﺎل:
cp directorytarget/newfilename.txt
directory/testfile.txt
فایل testfile.txt در directory را در directorytarget با نام newfilename.txt رونویسی (کپی) میکند.
* mv / move: ﻣﺜﺎل copy ﮐﺎر ﻣﯽﮐﻨﺪ ﻓﻘﻂ ﺑﺠﺎی ﮐﭙﯽ اﻧﺘﻘﺎل ﻣﯽدﻫﺪ.
ﺷﺒﮑﻪ
* ping : ﺑﺮای ﮔﺮﻓﺘﻦ ﺗﺄﺧﯿﺮ (ﭘﯿﻨﮓ) از ﻧﻮدﻫﺎ ﯾﺎ ... در ﺷﺒﮑﻪ ﮐﺎرﺑﺮد دارد.
127.0.0.1 ping از ﮐﺎرت ﺷﺒﮑﻪ ﺧﻮد ﭘﯿﻨﮓ ﻣﯽﮔﯿﺮد.
* tracert: ﺑﺮای ﺑﺮرﺳﯽ ﮐﺮدن ﺷﺒﮑﻪ و اﺗﺼﺎل اﯾﻨﺘﺮﻧﺖ در ﺣﺎﻟﯽ ﮐﻪ ﭘﯿﻨﮓ ﻓﻘﻂ اﺗﺼﺎل را ﺑﺮرﺳﯽ ﻣﯽﮐﻨﺪ (tracert) ﻣﺴﯿﺮ
اﺗﺼﺎل را ﺑﻪ ﺷﻤﺎ ﻧﺸﺎن ﻣﯽدﻫﺪ.
tracert (website or network location or IP Address)
* ipconfig : ﻣﺸﺨﺼﺎت ﮐﺎرتﻫﺎی ﺷﺒﮑﻪ ﻣﺘﺼﻞ ﺑﻪ ﺳﯿﺴﺘﻢ را ﺑﻪ ﺷﻤﺎ ﻧﺸﺎن ﻣﯽدﻫﺪ.
* getmac : ﻣﮏ آدرس ﺷﻤﺎ را ﺑﻪ ﺷﻤﺎ ﻧﻤﺎﯾﺶ ﻣﯽدﻫﺪ.
* arp : ﺑﺮای ﻧﻤﺎﯾﺶ ورودیﻫﺎی ﻣﻮﺟﻮد در ﺣﺎﻓﻈﻪ ﭘﻨﻬﺎن ﭘﺮوﺗﮑﻞ Resolution Address اﺳﺘﻔﺎده ﻣﯽﺷﻮد.
arp -a : ﺗﻤﺎﻣﯽ ورودیﻫﺎی ﻣﻮﺟﻮد را ﻧﻤﺎﯾﺶ ﻣﯽدﻫﺪ.
=== اﺷﮑﺎل زداﯾﯽ و ﺗﻌﻤﯿﺮ ===
* chkdsk : ﺑﺮای ﺷﻨﺎﺳﺎﯾﯽ و اﺻﻼح ﺑﺮﺧﯽ از ﺧﻄﺎﻫﺎیﻫﺎی ﻫﺎرددﯾﺴﮏ اﺳﺘﻔﺎده ﻣﯽﺷﻮد. اﯾﻦ دﺳﺘﻮر در ﺗﻤﺎﻣﯽ ﻧﺴﺨﻪﻫﺎی
وﯾﻨﺪوز ﻣﻮﺟﻮد ﻣﯽﺑﺎﺷﺪ ﺑﺮای ﻣﺜﺎل:
:chkdsk /f d
ﭘﺎرﺗﯿﺸﻦ دی را ﺑﺮرﺳﯽ و ﺧﻄﺎﻫﺎی آن را ﺑﺮﻃﺮف ﻣﯽﮐﻨﺪ.
* echo : ﺑﺮای ﭼﺎپ ﮐﺮدن ﯾﮏ ﻣﺘﻦ اﺳﺘﻔﺎده ﻣﯽﺷﻮد ﺑﺮای ﻣﺜﺎل: text echo
ﻧﮑﺘﻪ: off echo اﻋﻼن داس را ﮐﻪ ﻗﺒﻞ ﻫﺮ دﺳﺘﻮر ﻣﻮﺟﻮد اﺳﺖ دﯾﮕﺮ ﺑﻪ ﻧﻤﺎﯾﺶ ﻧﻤﯽﮔﺬارد و آن را ﺣﺬف ﻣﯽﮐﻨﺪ.
== ﻧﮑﺎت cmd ==
* ﻧﮑﺘﻪ ﻧﺨﺴﺖ: ﻣﯽﺗﻮاﻧﯿﺪ دﺳﺘﻮرات cmd را داﺧﻞ ﯾﮏ ﻓﺎﯾﻞ ﺑﺎ ﭘﺴﻮﻧﺪ bat. ﺑﮕﺬارﯾﺪ و آن را ﭘﺸﺖ ﺳﺮ ﻫﻢ اﺟﺮا ﮐﻨﯿﺪ.
* نکته دوم: ﺑﺮای ﻧﻤﺎﯾﺶ راﻫﻨﻤﺎی ﻫﺮ دﺳﺘﻮر ﮐﺎﻓﯿﺴﺖ ﺑﻌﺪ از ﻧﺎم دﺳﺘﻮر ﯾﮏ ﻓﺎﺻﻠﻪ ﺳﭙﺲ <code>?/</code> ﺑﮕﺬارﯾﺪ.
* ﻧﮑﺘﻪ ﺳﻮم: ﺑﺮای اﺟﺮای ﭼﻨﺪ دﺳﺘﻮر ﺑﻪ ﻃﻮر ﻫﻤﺰﻣﺎن ﻣﯽﺗﻮاﻧﯿﺪ ﺑﯿﻦ ﻫﺮ دﺳﺘﻮر <code>&&</code> ﺑﮕﺬارﯾﺪ.
* ﻧﮑﺘﻪ ﭼﻬﺎرم: ﺑﺮای ﻟﻐﻮ دﺳﺘﻮرات ﻫﻨﮕﺎم اﺟﺮا ﻣﯽﺗﻮاﻧﯿﺪ از ﮐﻠﯿﺪ ﺗﺮﮐﯿﺒﯽ <code>Control + C</code> اﺳﺘﻔﺎده ﮐﻨﯿﺪ.
* ﻧﮑﺘﻪ ﭘﻨﺠﻢ: ﺑﺮای ﻧﻤﺎﯾﺶ دﺳﺘﻮرات ﺑﺼﻮرت ﺻﻔﺤﻪ ﺑﻪ ﺻﻔﺤﻪ از more | command اﺳﺘﻔﺎده ﮐﻨﯿﺪ.
* ﻧﮑﺘﻪ ﺷﺸﻢ: clip | command ﻣﯽﺗﻮاﻧﯿﺪ ﭘﺲ از اﺟﺮای دﺳﺘﻮر آن را ﮐﭙﯽ ﮐﻨﯿﺪ.
* ﻧﮑﺘﻪ ﻫﻔﺘﻢ: ذﺧﯿﺮه ﺧﺮوﺟﯽ ﯾﮏ دﺳﺘﻮر ﺑﺼﻮرت ﻓﺎﯾﻞ:
command > filename.txt
* ﻧﮑﺘﻪ ﻫﺸﺘﻢ: ﺑﺎ اﺳﺘﻔﺎده از ﮐﻠﯿﺪ ﺗﺮﮐﯿﺒﯽ <code>ALT + ENTER</code> ﻣﯽﺗﻮاﻧﯿﺪ ﻣﺤﯿﻂ ﺧﻂ ﻓﺮﻣﺎن را ﺣﺎﻟﺖ ﺗﻤﺎم ﺻﻔﺤﻪ ﺑﺒﺮﯾﺪ.
[[رده:آموزش کامل خط فرمان ویندوز]]
6klnit2r8i3uzuwr7s77sgx4zdo5jqy
135302
135301
2026-09-29T07:04:13Z
Fwldom
26269
/* دﺳﺘﻮرات cmd */
135302
wikitext
text/x-wiki
== مقدمه ==
=== وﯾﻨﺪوز ﭼﯿﺴﺖ؟ ===
ﻣﺎﯾﮑﺮوﺳﺎﻓﺖ وﯾﻨﺪوز (به اﻧﮕﻠﯿﺴﯽ: Microsoft Windows) ﯾﮏ ﺳﯿﺴﺘﻢﻋﺎﻣﻞ اﺳﺖ ﮐﻪ ﺗﻮﺳﻂ ﻣﺎﯾﮑﺮوﺳﺎﻓﺖ ﺗﻮﺳﻌﻪ ﯾﺎﻓﺘﻪ اﺳﺖ. وﯾﻨﺪوز از ﺳﺎل ۱۹۸۵ ﺗﺎﮐﻨﻮن ﺑﻪ ﺑﺎزار ﻋﺮﺿﻪ ﺷﺪه اﺳﺖ.
===cmd ﭼﯿﺴﺖ؟===
ﺳﯽامدی (ﺑﻪ اﻧﮕﻠﯿﺴﯽ: cmd) ﯾﮏ ﺧﻂ ﻓﺮﻣﺎن اﺳﺖ ﮐﻪ ﻣﺨﻔﻒ command Prompt اﺳﺖ. ﺧﻂ ﻓﺮﻣﺎن در ﻣﻘﺎﯾﺴﻪ ﺑﺎ راﺑﻂ ﮐﺎرﺑﺮی ﮔﺮاﻓﯿﮑﯽ ﻣﺤﯿﻄﯽ ﺑﯽروح دارد. ﺧﻂ ﻓﺮﻣﺎن در واﻗﻊ ﻣﺤﯿﻄﯽ اﺳﺖ ﮐﻪ در آن دﺳﺘﻮرات ﺑﻪ ﺻﻮرت ﻣﺘﻨﯽ ﺑﻪ ﮐﺎﻣﭙﯿﻮﺗﺮ داده ﻣﯽﺷﻮد. ﺧﻂ ﻓﺮﻣﺎن در ﺳﯿﺴﺘﻢﻋﺎﻣﻞﻫﺎﯾﯽ ﻣﺎﻧﻨﺪ وﯾﻨﺪوز، ﻟﯿﻨﻮﮐﺲ و ... ﺑﺼﻮرت ﯾﮏ ﻧﺮم اﻓﺰار اراﺋﻪ ﻣﯽﺷﻮد.
نکته خط فرمان ویندوز (سیامدی) یک CLI است در ادامه با CLI بیشتر آشنا میشویم.
===CLI چیست ؟===
Command Line Interface یا رابط خط فرمان به شکل مخفف CLI
یک روش تعامل با کامپیوتر یا سیستم عامل است که از طریق وارد کردن دستورات متنی انجام میپذیرد.
===GUI چیست ؟===
GUI مخفف Graphical User Interface به معنای رابط کاربری گرافیکی است. در مقابل CLI که به صورت متنی است، GUI به کاربر اجازه میدهد تا از طریق عناصر گرافیکی مانند دکمهها، منوها، صفحهها، تعامل کند.
===اجرای ﺧﻂ ﻓﺮﻣﺎن وﯾﻨﺪوز===
ﺑﺎ ﻧﮕﻪ داﺷﺘﻦ ﮐﻠﯿﺪﻫﺎی win + R ⊞ ﻣﯽﺗﻮاﻧﯿﺪ وﯾﻨﺪوز ران (Run) را ﺑﺎز ﮐﺮده و ﺳﭙﺲ ﺑﺎ ﺗﺎﯾﭗ cmd و ﻓﺸﺮدن ﮐﻠﯿﺪ اﯾﻨﺘﺮ (Enter) ﺧﻂ ﻓﺮﻣﺎن وﯾﻨﺪوز را ﺑﺎز ﮐﻨﯿﺪ.<br>
ﻫﻤﭽﻨﯿﻦ ﻧﯿﺰ ﻣﯽﺗﻮاﻧﯿﺪ ﺑﺎ ﺟﺴﺘﺠﻮ ﮐﻠﻤﻪ cmd آن را ﭘﯿﺪا و ﺑﺎز ﮐﻨﯿﺪ.
===ﺳﺎﺧﺘﺎر دﺳﺘﻮرات در ﺧﻂ ﻓﺮﻣﺎن وﯾﻨﺪوز===
* ساختار دستورات cmd بصورت زیر است:
<code>Command (parameter) (switch)</code>
===ﭘﺎراﻣﺘﺮ ﭼﯿﺴﺖ؟===
ﭘﺎراﻣﺘﺮﻫﺎ در واﻗﻊ ورودیﻫﺎ ﯾﺎ ﻣﺘﻐﯿﺮﻫﺎ ﺗﺎﺑﻊ (ﻓﺎﻧﮑﺸﻦ)ﻫﺎ ﻫﺴﺘﻨﺪ؛ ﺑﻪ ﺑﯿﺎﻧﯽ ﺳﺎدهﺗﺮ ﭘﺎراﻣﺘﺮﻫﺎ ﻣﻘﺎدﯾﺮی ﻫﺴﺘﻨﺪ ﮐﻪ ﺑﻪ ﺗﻮاﺑﻊ ﯾﺎ دﺳﺘﻮرات ﺑﺮای اﺟﺮای ﻋﻤﻠﯿﺎت ﺧﺎﺻﯽ داده ﻣﯽﺷﻮد.
==دﺳﺘﻮرات ﭘﺎﯾﻪ ﺧﻂ ﻓﺮﻣﺎن وﯾﻨﺪوز==
===دﺳﺘﻮر cd===
اﯾﻦ دﺳﺘﻮر ﺑﺮای ﻋﻮض ﮐﺮدن داﯾﺮﮐﺘﻮری ﻓﻌﻠﯽ ﮐﻪ در آن ﻫﺴﺘﯿﺪ ﮐﺎرﺑﺮد و ﺑﺎ اﯾﻦ دﺳﺘﻮر ﻣﯽﺗﻮاﻧﯿﺪ داﯾﺮﮐﺘﻮری ﻓﻌﻠﯿﺘﻮن رو ﻋﻮض ﮐﻨﯿﺪ. ﻣﺎﻧﻨﺪ
<syntaxhighlight lang="batch">
cd FolderName
</syntaxhighlight>
* ﺑﺎ اﺳﺘﻔﺎده از
<syntaxhighlight lang="batch">
cd ../
</syntaxhighlight>
ﻣﯽﺗﻮاﻧﯿﺪ ﺑﻪ داﯾﺮﮐﺘﻮری قبلی ﺑﺮوﯾﺪ و ﺑﺎ اﺳﺘﻔﺎده از
<syntaxhighlight lang="batch">
cd /
</syntaxhighlight>
ﻣﯽﺗﻮاﻧﯿﺪ ﺑﻪ رﯾﺸﻪ (root) ﺑﺮﮔﺮدﯾﺪ.
* برای مثال
<syntaxhighlight lang="batch">
cd testfolder
</syntaxhighlight>
به دایرکتوری testfolder میرود.
===دﺳﺘﻮر dir===
دﺳﺘﻮر dir ﺑﺮای ﻧﻤﺎﯾﺶ ﻣﺤﺘﻮﯾﺎت داﯾﺮﮐﺘﻮری ﻓﻌﻠﯽ اﺳﺖ ﺑﺎ اﺳﺘﻔﺎده از
dir /s
ﻣﯽﺗﻮاﻧﯿﺪ ﻣﺤﺘﻮای داﯾﺮﮐﺘﻮری ﻓﻌﻠﯽ و ﺗﻤﺎﻣﯽ
داﯾﺮﮐﺘﻮریﻫﺎی زﯾﺮﯾﻦ آن را ﻧﻤﺎﯾﺶ دﻫﯿﺪ.
===دﺳﺘﻮر mkdir===
اﯾﻦ دﺳﺘﻮر ﺑﺮای اﯾﺠﺎد ﯾﮏ داﯾﺮﮐﺘﻮری (ﭘﻮﺷﻪ) ﺑﻪ ﮐﺎر ﻣﯽرود و ﯾﮏ ﭘﺎراﻣﺘﺮ ﻣﻬﻢ از ﺷﻤﺎ ﻣﯽﮔﯿﺮد ﮐﻪ آن ﻧﺎم ﭘﻮﺷﻪ است ﻣﺎﻧﻨﺪ:
md testfoldername
ﻧﮑﺘﻪ: دﺳﺘﻮرات md و mkdir ﺑﺎ ﻫﻢ ﻓﺮﻗﯽ ﻧﺪارﻧﺪ. ﻧﯿﺰ ﺑﻬﺘﺮ اﺳﺖ ﻧﺎم پوﺷﻪ ﺑﯿﻦ "" ﻗﺮار دﻫﯿﺪ.
===دﺳﺘﻮر ren===
اﯾﻦ دﺳﺘﻮر ﺑﺮای ﻋﻮض ﮐﺮدن ﻧﺎم ﭘﻮﺷﻪﻫﺎ ﯾﺎ ﻓﺎﯾﻞﻫﺎ اﺳﺘﻔﺎده ﻣﯽﺷﻮد. ﻣﺎﻧﻨﺪ:
ren FileName.extension newName.extension
ren Folder NewFolderName
ﻧﮑﺘﻪ: ﺑﺮای ﺗﻐﯿﯿﺮ ﻧﺎم ﻓﺎﯾﻞﻫﺎ ﺣﺘما ﺑﺎﯾﺪ ﻧﺎم آن را ﺑﻬﺮاه ﭘﺴﻮﻧﺪ آن ﺑﻪ دﺳﺘﻮر داد و ﻫﻤﯿﻨﻄﻮر ﺑﺮای ﻧﺎم ﺟﺪﯾﺪ.
== دﺳﺘﻮرات cmd ==
===دﺳﺘﻮرات ﭘﺎﯾﻪ===
* color : ﺑﺮای ﻋﻮض ﮐﺮدن رﻧﮓ ﭘﺲ زﻣﯿﻨﻪ و ﻣﺘﻦ ﻣﺤﯿﻂ cmd ﺑﻪ ﮐﺎر ﻣﯽرود ﺑﺮای ﻣﺜﺎل: color 71
* exit : ﺑﺮای ﺧﺎرج ﺷﺪن از ﻣﺤﯿﻂ ﺧﻂ ﻓﺮﻣﺎن اﺳﺘﻔﺎده ﻣﯽﺷﻮد.
* help : راﻫﻨﻤﺎﯾﯽ در ﻣﻮرد ﺧﻂ ﻓﺮﻣﺎن ﻧﻤﺎﯾﺶ ﻣﯽدﻫﺪ.
* ver : ﻧﺴﺨﻪ وﯾﻨﺪوز را ﺑﻪ ﻧﻤﺎﯾﺶ ﻣﯽﮔﺬارد.
* whoami : ﻧﺎم ﮐﺎرﺑﺮی و ﻧﺎم راﯾﺎﻧﻪ را ﻧﻤﺎﯾﺶ ﻣﯽدﻫﺪ.
* systeminfo : اﻃﻼﻋﺎﺗﯽ در ﻣﻮرد راﯾﺎﻧﻪ را ﺑﻪ ﺷﻤﺎ ﻧﻤﺎﯾﺶ ﻣﯽدﻫﺪ ﻣﺎﻧﻨﺪ ﻧﺴﺨﻪ ﺳﯿﺴﺘﻢ ﻋﺎﻣﻞ و Bios و ﻧﻮع ﺳﯿﺴﺘﻢ.
* cls: برای پاک کردن صفحه کنسول استفاده میشود
مدیریت فایل
* md: ﺳﺎﺧﺖ ﭘﻮﺷﻪ ﯾﺎ ﻫﻤﺎن داﯾﺮﮐﺘﻮری ﺑﺮای ﻣﺜﺎل
md testfolder
ﻧﮑﺘﻪ mkdir ﺑﺎ md ﻫﯿﭻ ﻓﺮﻗﯽ ﻧﺪارد.
*fsutil: ﺑﺮای اﯾﺠﺎد ﻓﺎﯾﻞ ﺑﺎ ﺣﺠﻢ دﻟﺨﻮاه اﺳﺘﻔﺎده ﻣﯽﺷﻮد
4000 file.txt createnew file fsutil
ﻧﮑﺘﻪ: ﺣﺠﻢ دﻟﺨﻮاه ﺑﺮ اﺳﺎس ﺑﺎﯾﺖ اﺳﺖ.
* :rd/rmdir ﺑﺮای ﺣﺬف ﭘﻮﺷﻪ ﮐﺎرﺑﺮد دارد ﺑﺮای ﻣﺜﺎل
rmdir foldertest
* del: ﺑﺮای ﺣﺬف ﻓﺎﯾﻞﻫﺎ ﺑﺮای ﻣﺜﺎل
del file.txt
ﻓﺎﯾﻞ file.txt را ﺣﺬف ﻣﯽﮐﻨﺪ.
del *.txt : ﺗﻤﺎم ﻓﺎﯾﻞﻫﺎی دارای ﭘﺴﻮﻧﺪ txt را ﺣﺬف ﻣﯽﮐﻨﺪ.
ﻧﮑﺘﻪ: ﺑﻄﻮر ﮐﻠﯽ * ﺑﻪ ﻣﻌﻨﺎی ﻫﻤﻪ اﺳﺖ.
* rename/ren: ﺑﺮای ﺗﻐﯿﯿﺮ ﻧﺎم ﻓﺎﯾﻞﻫﺎ ﺑﮑﺎر ﻣﯽرود.
ren name.txt newname.txt
* tree: ﻣﺤﺘﻮﯾﺎت داﯾﺮﮐﺘﻮری ﻓﻌﻠﯽ را ﺑﺼﻮرت درﺧﺘﯽ ﻧﺸﺎن ﻣﯽدﻫﺪ.
* cp / copy : ﺑﺮای ﮐﭙﯽ ﻓﺎﯾﻞﻫﺎ اﺳﺘﻔﺎده میشود.
ﻣﯽﺷﻮد ﺑﺮای ﻣﺜﺎل:
<syntaxhighlight lang="cmd">
cp directorytarget/newfilename.txt
directory/testfile.txt
</syntaxhighlight>
فایل testfile.txt در directory را در directorytarget با نام newfilename.txt رونویسی (کپی) میکند.
* mv / move: ﻣﺜﺎل copy ﮐﺎر ﻣﯽﮐﻨﺪ ﻓﻘﻂ ﺑﺠﺎی ﮐﭙﯽ اﻧﺘﻘﺎل ﻣﯽدﻫﺪ.
ﺷﺒﮑﻪ
* ping : ﺑﺮای ﮔﺮﻓﺘﻦ ﺗﺄﺧﯿﺮ (ﭘﯿﻨﮓ) از ﻧﻮدﻫﺎ ﯾﺎ ... در ﺷﺒﮑﻪ ﮐﺎرﺑﺮد دارد.
127.0.0.1 ping از ﮐﺎرت ﺷﺒﮑﻪ ﺧﻮد ﭘﯿﻨﮓ ﻣﯽﮔﯿﺮد.
* tracert: ﺑﺮای ﺑﺮرﺳﯽ ﮐﺮدن ﺷﺒﮑﻪ و اﺗﺼﺎل اﯾﻨﺘﺮﻧﺖ در ﺣﺎﻟﯽ ﮐﻪ ﭘﯿﻨﮓ ﻓﻘﻂ اﺗﺼﺎل را ﺑﺮرﺳﯽ ﻣﯽﮐﻨﺪ (tracert) ﻣﺴﯿﺮ
اﺗﺼﺎل را ﺑﻪ ﺷﻤﺎ ﻧﺸﺎن ﻣﯽدﻫﺪ.
tracert (website or network location or IP Address)
* ipconfig : ﻣﺸﺨﺼﺎت ﮐﺎرتﻫﺎی ﺷﺒﮑﻪ ﻣﺘﺼﻞ ﺑﻪ ﺳﯿﺴﺘﻢ را ﺑﻪ ﺷﻤﺎ ﻧﺸﺎن ﻣﯽدﻫﺪ.
* getmac : ﻣﮏ آدرس ﺷﻤﺎ را ﺑﻪ ﺷﻤﺎ ﻧﻤﺎﯾﺶ ﻣﯽدﻫﺪ.
* arp : ﺑﺮای ﻧﻤﺎﯾﺶ ورودیﻫﺎی ﻣﻮﺟﻮد در ﺣﺎﻓﻈﻪ ﭘﻨﻬﺎن ﭘﺮوﺗﮑﻞ Resolution Address اﺳﺘﻔﺎده ﻣﯽﺷﻮد.
arp -a : ﺗﻤﺎﻣﯽ ورودیﻫﺎی ﻣﻮﺟﻮد را ﻧﻤﺎﯾﺶ ﻣﯽدﻫﺪ.
=== اﺷﮑﺎل زداﯾﯽ و ﺗﻌﻤﯿﺮ ===
* chkdsk : ﺑﺮای ﺷﻨﺎﺳﺎﯾﯽ و اﺻﻼح ﺑﺮﺧﯽ از ﺧﻄﺎﻫﺎیﻫﺎی ﻫﺎرددﯾﺴﮏ اﺳﺘﻔﺎده ﻣﯽﺷﻮد. اﯾﻦ دﺳﺘﻮر در ﺗﻤﺎﻣﯽ ﻧﺴﺨﻪﻫﺎی
وﯾﻨﺪوز ﻣﻮﺟﻮد ﻣﯽﺑﺎﺷﺪ ﺑﺮای ﻣﺜﺎل:
:chkdsk /f d
ﭘﺎرﺗﯿﺸﻦ دی را ﺑﺮرﺳﯽ و ﺧﻄﺎﻫﺎی آن را ﺑﺮﻃﺮف ﻣﯽﮐﻨﺪ.
* echo : ﺑﺮای ﭼﺎپ ﮐﺮدن ﯾﮏ ﻣﺘﻦ اﺳﺘﻔﺎده ﻣﯽﺷﻮد ﺑﺮای ﻣﺜﺎل: text echo
ﻧﮑﺘﻪ: off echo اﻋﻼن داس را ﮐﻪ ﻗﺒﻞ ﻫﺮ دﺳﺘﻮر ﻣﻮﺟﻮد اﺳﺖ دﯾﮕﺮ ﺑﻪ ﻧﻤﺎﯾﺶ ﻧﻤﯽﮔﺬارد و آن را ﺣﺬف ﻣﯽﮐﻨﺪ.
== ﻧﮑﺎت cmd ==
* ﻧﮑﺘﻪ ﻧﺨﺴﺖ: ﻣﯽﺗﻮاﻧﯿﺪ دﺳﺘﻮرات cmd را داﺧﻞ ﯾﮏ ﻓﺎﯾﻞ ﺑﺎ ﭘﺴﻮﻧﺪ bat. ﺑﮕﺬارﯾﺪ و آن را ﭘﺸﺖ ﺳﺮ ﻫﻢ اﺟﺮا ﮐﻨﯿﺪ.
* نکته دوم: ﺑﺮای ﻧﻤﺎﯾﺶ راﻫﻨﻤﺎی ﻫﺮ دﺳﺘﻮر ﮐﺎﻓﯿﺴﺖ ﺑﻌﺪ از ﻧﺎم دﺳﺘﻮر ﯾﮏ ﻓﺎﺻﻠﻪ ﺳﭙﺲ <code>?/</code> ﺑﮕﺬارﯾﺪ.
* ﻧﮑﺘﻪ ﺳﻮم: ﺑﺮای اﺟﺮای ﭼﻨﺪ دﺳﺘﻮر ﺑﻪ ﻃﻮر ﻫﻤﺰﻣﺎن ﻣﯽﺗﻮاﻧﯿﺪ ﺑﯿﻦ ﻫﺮ دﺳﺘﻮر <code>&&</code> ﺑﮕﺬارﯾﺪ.
* ﻧﮑﺘﻪ ﭼﻬﺎرم: ﺑﺮای ﻟﻐﻮ دﺳﺘﻮرات ﻫﻨﮕﺎم اﺟﺮا ﻣﯽﺗﻮاﻧﯿﺪ از ﮐﻠﯿﺪ ﺗﺮﮐﯿﺒﯽ <code>Control + C</code> اﺳﺘﻔﺎده ﮐﻨﯿﺪ.
* ﻧﮑﺘﻪ ﭘﻨﺠﻢ: ﺑﺮای ﻧﻤﺎﯾﺶ دﺳﺘﻮرات ﺑﺼﻮرت ﺻﻔﺤﻪ ﺑﻪ ﺻﻔﺤﻪ از more | command اﺳﺘﻔﺎده ﮐﻨﯿﺪ.
* ﻧﮑﺘﻪ ﺷﺸﻢ: clip | command ﻣﯽﺗﻮاﻧﯿﺪ ﭘﺲ از اﺟﺮای دﺳﺘﻮر آن را ﮐﭙﯽ ﮐﻨﯿﺪ.
* ﻧﮑﺘﻪ ﻫﻔﺘﻢ: ذﺧﯿﺮه ﺧﺮوﺟﯽ ﯾﮏ دﺳﺘﻮر ﺑﺼﻮرت ﻓﺎﯾﻞ:
command > filename.txt
* ﻧﮑﺘﻪ ﻫﺸﺘﻢ: ﺑﺎ اﺳﺘﻔﺎده از ﮐﻠﯿﺪ ﺗﺮﮐﯿﺒﯽ <code>ALT + ENTER</code> ﻣﯽﺗﻮاﻧﯿﺪ ﻣﺤﯿﻂ ﺧﻂ ﻓﺮﻣﺎن را ﺣﺎﻟﺖ ﺗﻤﺎم ﺻﻔﺤﻪ ﺑﺒﺮﯾﺪ.
[[رده:آموزش کامل خط فرمان ویندوز]]
qbrl1drbc4ihhuotvpotkx3h9ljigqj
135303
135302
2026-09-29T07:05:24Z
Fwldom
26269
/* دﺳﺘﻮر dir */
135303
wikitext
text/x-wiki
== مقدمه ==
=== وﯾﻨﺪوز ﭼﯿﺴﺖ؟ ===
ﻣﺎﯾﮑﺮوﺳﺎﻓﺖ وﯾﻨﺪوز (به اﻧﮕﻠﯿﺴﯽ: Microsoft Windows) ﯾﮏ ﺳﯿﺴﺘﻢﻋﺎﻣﻞ اﺳﺖ ﮐﻪ ﺗﻮﺳﻂ ﻣﺎﯾﮑﺮوﺳﺎﻓﺖ ﺗﻮﺳﻌﻪ ﯾﺎﻓﺘﻪ اﺳﺖ. وﯾﻨﺪوز از ﺳﺎل ۱۹۸۵ ﺗﺎﮐﻨﻮن ﺑﻪ ﺑﺎزار ﻋﺮﺿﻪ ﺷﺪه اﺳﺖ.
===cmd ﭼﯿﺴﺖ؟===
ﺳﯽامدی (ﺑﻪ اﻧﮕﻠﯿﺴﯽ: cmd) ﯾﮏ ﺧﻂ ﻓﺮﻣﺎن اﺳﺖ ﮐﻪ ﻣﺨﻔﻒ command Prompt اﺳﺖ. ﺧﻂ ﻓﺮﻣﺎن در ﻣﻘﺎﯾﺴﻪ ﺑﺎ راﺑﻂ ﮐﺎرﺑﺮی ﮔﺮاﻓﯿﮑﯽ ﻣﺤﯿﻄﯽ ﺑﯽروح دارد. ﺧﻂ ﻓﺮﻣﺎن در واﻗﻊ ﻣﺤﯿﻄﯽ اﺳﺖ ﮐﻪ در آن دﺳﺘﻮرات ﺑﻪ ﺻﻮرت ﻣﺘﻨﯽ ﺑﻪ ﮐﺎﻣﭙﯿﻮﺗﺮ داده ﻣﯽﺷﻮد. ﺧﻂ ﻓﺮﻣﺎن در ﺳﯿﺴﺘﻢﻋﺎﻣﻞﻫﺎﯾﯽ ﻣﺎﻧﻨﺪ وﯾﻨﺪوز، ﻟﯿﻨﻮﮐﺲ و ... ﺑﺼﻮرت ﯾﮏ ﻧﺮم اﻓﺰار اراﺋﻪ ﻣﯽﺷﻮد.
نکته خط فرمان ویندوز (سیامدی) یک CLI است در ادامه با CLI بیشتر آشنا میشویم.
===CLI چیست ؟===
Command Line Interface یا رابط خط فرمان به شکل مخفف CLI
یک روش تعامل با کامپیوتر یا سیستم عامل است که از طریق وارد کردن دستورات متنی انجام میپذیرد.
===GUI چیست ؟===
GUI مخفف Graphical User Interface به معنای رابط کاربری گرافیکی است. در مقابل CLI که به صورت متنی است، GUI به کاربر اجازه میدهد تا از طریق عناصر گرافیکی مانند دکمهها، منوها، صفحهها، تعامل کند.
===اجرای ﺧﻂ ﻓﺮﻣﺎن وﯾﻨﺪوز===
ﺑﺎ ﻧﮕﻪ داﺷﺘﻦ ﮐﻠﯿﺪﻫﺎی win + R ⊞ ﻣﯽﺗﻮاﻧﯿﺪ وﯾﻨﺪوز ران (Run) را ﺑﺎز ﮐﺮده و ﺳﭙﺲ ﺑﺎ ﺗﺎﯾﭗ cmd و ﻓﺸﺮدن ﮐﻠﯿﺪ اﯾﻨﺘﺮ (Enter) ﺧﻂ ﻓﺮﻣﺎن وﯾﻨﺪوز را ﺑﺎز ﮐﻨﯿﺪ.<br>
ﻫﻤﭽﻨﯿﻦ ﻧﯿﺰ ﻣﯽﺗﻮاﻧﯿﺪ ﺑﺎ ﺟﺴﺘﺠﻮ ﮐﻠﻤﻪ cmd آن را ﭘﯿﺪا و ﺑﺎز ﮐﻨﯿﺪ.
===ﺳﺎﺧﺘﺎر دﺳﺘﻮرات در ﺧﻂ ﻓﺮﻣﺎن وﯾﻨﺪوز===
* ساختار دستورات cmd بصورت زیر است:
<code>Command (parameter) (switch)</code>
===ﭘﺎراﻣﺘﺮ ﭼﯿﺴﺖ؟===
ﭘﺎراﻣﺘﺮﻫﺎ در واﻗﻊ ورودیﻫﺎ ﯾﺎ ﻣﺘﻐﯿﺮﻫﺎ ﺗﺎﺑﻊ (ﻓﺎﻧﮑﺸﻦ)ﻫﺎ ﻫﺴﺘﻨﺪ؛ ﺑﻪ ﺑﯿﺎﻧﯽ ﺳﺎدهﺗﺮ ﭘﺎراﻣﺘﺮﻫﺎ ﻣﻘﺎدﯾﺮی ﻫﺴﺘﻨﺪ ﮐﻪ ﺑﻪ ﺗﻮاﺑﻊ ﯾﺎ دﺳﺘﻮرات ﺑﺮای اﺟﺮای ﻋﻤﻠﯿﺎت ﺧﺎﺻﯽ داده ﻣﯽﺷﻮد.
==دﺳﺘﻮرات ﭘﺎﯾﻪ ﺧﻂ ﻓﺮﻣﺎن وﯾﻨﺪوز==
===دﺳﺘﻮر cd===
اﯾﻦ دﺳﺘﻮر ﺑﺮای ﻋﻮض ﮐﺮدن داﯾﺮﮐﺘﻮری ﻓﻌﻠﯽ ﮐﻪ در آن ﻫﺴﺘﯿﺪ ﮐﺎرﺑﺮد و ﺑﺎ اﯾﻦ دﺳﺘﻮر ﻣﯽﺗﻮاﻧﯿﺪ داﯾﺮﮐﺘﻮری ﻓﻌﻠﯿﺘﻮن رو ﻋﻮض ﮐﻨﯿﺪ. ﻣﺎﻧﻨﺪ
<syntaxhighlight lang="batch">
cd FolderName
</syntaxhighlight>
* ﺑﺎ اﺳﺘﻔﺎده از
<syntaxhighlight lang="batch">
cd ../
</syntaxhighlight>
ﻣﯽﺗﻮاﻧﯿﺪ ﺑﻪ داﯾﺮﮐﺘﻮری قبلی ﺑﺮوﯾﺪ و ﺑﺎ اﺳﺘﻔﺎده از
<syntaxhighlight lang="batch">
cd /
</syntaxhighlight>
ﻣﯽﺗﻮاﻧﯿﺪ ﺑﻪ رﯾﺸﻪ (root) ﺑﺮﮔﺮدﯾﺪ.
* برای مثال
<syntaxhighlight lang="batch">
cd testfolder
</syntaxhighlight>
به دایرکتوری testfolder میرود.
===دﺳﺘﻮر dir===
دﺳﺘﻮر dir ﺑﺮای ﻧﻤﺎﯾﺶ ﻣﺤﺘﻮﯾﺎت داﯾﺮﮐﺘﻮری ﻓﻌﻠﯽ اﺳﺖ ﺑﺎ اﺳﺘﻔﺎده از دستور زیر:
<syntaxhighlight lang="batch">
dir /s
</syntaxhighlight>
ﻣﯽﺗﻮاﻧﯿﺪ ﻣﺤﺘﻮای داﯾﺮﮐﺘﻮری ﻓﻌﻠﯽ و ﺗﻤﺎﻣﯽ
داﯾﺮﮐﺘﻮریﻫﺎی زﯾﺮﯾﻦ آن را ﻧﻤﺎﯾﺶ دﻫﯿﺪ.
===دﺳﺘﻮر mkdir===
اﯾﻦ دﺳﺘﻮر ﺑﺮای اﯾﺠﺎد ﯾﮏ داﯾﺮﮐﺘﻮری (ﭘﻮﺷﻪ) ﺑﻪ ﮐﺎر ﻣﯽرود و ﯾﮏ ﭘﺎراﻣﺘﺮ ﻣﻬﻢ از ﺷﻤﺎ ﻣﯽﮔﯿﺮد ﮐﻪ آن ﻧﺎم ﭘﻮﺷﻪ است ﻣﺎﻧﻨﺪ:
md testfoldername
ﻧﮑﺘﻪ: دﺳﺘﻮرات md و mkdir ﺑﺎ ﻫﻢ ﻓﺮﻗﯽ ﻧﺪارﻧﺪ. ﻧﯿﺰ ﺑﻬﺘﺮ اﺳﺖ ﻧﺎم پوﺷﻪ ﺑﯿﻦ "" ﻗﺮار دﻫﯿﺪ.
===دﺳﺘﻮر ren===
اﯾﻦ دﺳﺘﻮر ﺑﺮای ﻋﻮض ﮐﺮدن ﻧﺎم ﭘﻮﺷﻪﻫﺎ ﯾﺎ ﻓﺎﯾﻞﻫﺎ اﺳﺘﻔﺎده ﻣﯽﺷﻮد. ﻣﺎﻧﻨﺪ:
ren FileName.extension newName.extension
ren Folder NewFolderName
ﻧﮑﺘﻪ: ﺑﺮای ﺗﻐﯿﯿﺮ ﻧﺎم ﻓﺎﯾﻞﻫﺎ ﺣﺘما ﺑﺎﯾﺪ ﻧﺎم آن را ﺑﻬﺮاه ﭘﺴﻮﻧﺪ آن ﺑﻪ دﺳﺘﻮر داد و ﻫﻤﯿﻨﻄﻮر ﺑﺮای ﻧﺎم ﺟﺪﯾﺪ.
== دﺳﺘﻮرات cmd ==
===دﺳﺘﻮرات ﭘﺎﯾﻪ===
* color : ﺑﺮای ﻋﻮض ﮐﺮدن رﻧﮓ ﭘﺲ زﻣﯿﻨﻪ و ﻣﺘﻦ ﻣﺤﯿﻂ cmd ﺑﻪ ﮐﺎر ﻣﯽرود ﺑﺮای ﻣﺜﺎل: color 71
* exit : ﺑﺮای ﺧﺎرج ﺷﺪن از ﻣﺤﯿﻂ ﺧﻂ ﻓﺮﻣﺎن اﺳﺘﻔﺎده ﻣﯽﺷﻮد.
* help : راﻫﻨﻤﺎﯾﯽ در ﻣﻮرد ﺧﻂ ﻓﺮﻣﺎن ﻧﻤﺎﯾﺶ ﻣﯽدﻫﺪ.
* ver : ﻧﺴﺨﻪ وﯾﻨﺪوز را ﺑﻪ ﻧﻤﺎﯾﺶ ﻣﯽﮔﺬارد.
* whoami : ﻧﺎم ﮐﺎرﺑﺮی و ﻧﺎم راﯾﺎﻧﻪ را ﻧﻤﺎﯾﺶ ﻣﯽدﻫﺪ.
* systeminfo : اﻃﻼﻋﺎﺗﯽ در ﻣﻮرد راﯾﺎﻧﻪ را ﺑﻪ ﺷﻤﺎ ﻧﻤﺎﯾﺶ ﻣﯽدﻫﺪ ﻣﺎﻧﻨﺪ ﻧﺴﺨﻪ ﺳﯿﺴﺘﻢ ﻋﺎﻣﻞ و Bios و ﻧﻮع ﺳﯿﺴﺘﻢ.
* cls: برای پاک کردن صفحه کنسول استفاده میشود
مدیریت فایل
* md: ﺳﺎﺧﺖ ﭘﻮﺷﻪ ﯾﺎ ﻫﻤﺎن داﯾﺮﮐﺘﻮری ﺑﺮای ﻣﺜﺎل
md testfolder
ﻧﮑﺘﻪ mkdir ﺑﺎ md ﻫﯿﭻ ﻓﺮﻗﯽ ﻧﺪارد.
*fsutil: ﺑﺮای اﯾﺠﺎد ﻓﺎﯾﻞ ﺑﺎ ﺣﺠﻢ دﻟﺨﻮاه اﺳﺘﻔﺎده ﻣﯽﺷﻮد
4000 file.txt createnew file fsutil
ﻧﮑﺘﻪ: ﺣﺠﻢ دﻟﺨﻮاه ﺑﺮ اﺳﺎس ﺑﺎﯾﺖ اﺳﺖ.
* :rd/rmdir ﺑﺮای ﺣﺬف ﭘﻮﺷﻪ ﮐﺎرﺑﺮد دارد ﺑﺮای ﻣﺜﺎل
rmdir foldertest
* del: ﺑﺮای ﺣﺬف ﻓﺎﯾﻞﻫﺎ ﺑﺮای ﻣﺜﺎل
del file.txt
ﻓﺎﯾﻞ file.txt را ﺣﺬف ﻣﯽﮐﻨﺪ.
del *.txt : ﺗﻤﺎم ﻓﺎﯾﻞﻫﺎی دارای ﭘﺴﻮﻧﺪ txt را ﺣﺬف ﻣﯽﮐﻨﺪ.
ﻧﮑﺘﻪ: ﺑﻄﻮر ﮐﻠﯽ * ﺑﻪ ﻣﻌﻨﺎی ﻫﻤﻪ اﺳﺖ.
* rename/ren: ﺑﺮای ﺗﻐﯿﯿﺮ ﻧﺎم ﻓﺎﯾﻞﻫﺎ ﺑﮑﺎر ﻣﯽرود.
ren name.txt newname.txt
* tree: ﻣﺤﺘﻮﯾﺎت داﯾﺮﮐﺘﻮری ﻓﻌﻠﯽ را ﺑﺼﻮرت درﺧﺘﯽ ﻧﺸﺎن ﻣﯽدﻫﺪ.
* cp / copy : ﺑﺮای ﮐﭙﯽ ﻓﺎﯾﻞﻫﺎ اﺳﺘﻔﺎده میشود.
ﻣﯽﺷﻮد ﺑﺮای ﻣﺜﺎل:
<syntaxhighlight lang="cmd">
cp directorytarget/newfilename.txt
directory/testfile.txt
</syntaxhighlight>
فایل testfile.txt در directory را در directorytarget با نام newfilename.txt رونویسی (کپی) میکند.
* mv / move: ﻣﺜﺎل copy ﮐﺎر ﻣﯽﮐﻨﺪ ﻓﻘﻂ ﺑﺠﺎی ﮐﭙﯽ اﻧﺘﻘﺎل ﻣﯽدﻫﺪ.
ﺷﺒﮑﻪ
* ping : ﺑﺮای ﮔﺮﻓﺘﻦ ﺗﺄﺧﯿﺮ (ﭘﯿﻨﮓ) از ﻧﻮدﻫﺎ ﯾﺎ ... در ﺷﺒﮑﻪ ﮐﺎرﺑﺮد دارد.
127.0.0.1 ping از ﮐﺎرت ﺷﺒﮑﻪ ﺧﻮد ﭘﯿﻨﮓ ﻣﯽﮔﯿﺮد.
* tracert: ﺑﺮای ﺑﺮرﺳﯽ ﮐﺮدن ﺷﺒﮑﻪ و اﺗﺼﺎل اﯾﻨﺘﺮﻧﺖ در ﺣﺎﻟﯽ ﮐﻪ ﭘﯿﻨﮓ ﻓﻘﻂ اﺗﺼﺎل را ﺑﺮرﺳﯽ ﻣﯽﮐﻨﺪ (tracert) ﻣﺴﯿﺮ
اﺗﺼﺎل را ﺑﻪ ﺷﻤﺎ ﻧﺸﺎن ﻣﯽدﻫﺪ.
tracert (website or network location or IP Address)
* ipconfig : ﻣﺸﺨﺼﺎت ﮐﺎرتﻫﺎی ﺷﺒﮑﻪ ﻣﺘﺼﻞ ﺑﻪ ﺳﯿﺴﺘﻢ را ﺑﻪ ﺷﻤﺎ ﻧﺸﺎن ﻣﯽدﻫﺪ.
* getmac : ﻣﮏ آدرس ﺷﻤﺎ را ﺑﻪ ﺷﻤﺎ ﻧﻤﺎﯾﺶ ﻣﯽدﻫﺪ.
* arp : ﺑﺮای ﻧﻤﺎﯾﺶ ورودیﻫﺎی ﻣﻮﺟﻮد در ﺣﺎﻓﻈﻪ ﭘﻨﻬﺎن ﭘﺮوﺗﮑﻞ Resolution Address اﺳﺘﻔﺎده ﻣﯽﺷﻮد.
arp -a : ﺗﻤﺎﻣﯽ ورودیﻫﺎی ﻣﻮﺟﻮد را ﻧﻤﺎﯾﺶ ﻣﯽدﻫﺪ.
=== اﺷﮑﺎل زداﯾﯽ و ﺗﻌﻤﯿﺮ ===
* chkdsk : ﺑﺮای ﺷﻨﺎﺳﺎﯾﯽ و اﺻﻼح ﺑﺮﺧﯽ از ﺧﻄﺎﻫﺎیﻫﺎی ﻫﺎرددﯾﺴﮏ اﺳﺘﻔﺎده ﻣﯽﺷﻮد. اﯾﻦ دﺳﺘﻮر در ﺗﻤﺎﻣﯽ ﻧﺴﺨﻪﻫﺎی
وﯾﻨﺪوز ﻣﻮﺟﻮد ﻣﯽﺑﺎﺷﺪ ﺑﺮای ﻣﺜﺎل:
:chkdsk /f d
ﭘﺎرﺗﯿﺸﻦ دی را ﺑﺮرﺳﯽ و ﺧﻄﺎﻫﺎی آن را ﺑﺮﻃﺮف ﻣﯽﮐﻨﺪ.
* echo : ﺑﺮای ﭼﺎپ ﮐﺮدن ﯾﮏ ﻣﺘﻦ اﺳﺘﻔﺎده ﻣﯽﺷﻮد ﺑﺮای ﻣﺜﺎل: text echo
ﻧﮑﺘﻪ: off echo اﻋﻼن داس را ﮐﻪ ﻗﺒﻞ ﻫﺮ دﺳﺘﻮر ﻣﻮﺟﻮد اﺳﺖ دﯾﮕﺮ ﺑﻪ ﻧﻤﺎﯾﺶ ﻧﻤﯽﮔﺬارد و آن را ﺣﺬف ﻣﯽﮐﻨﺪ.
== ﻧﮑﺎت cmd ==
* ﻧﮑﺘﻪ ﻧﺨﺴﺖ: ﻣﯽﺗﻮاﻧﯿﺪ دﺳﺘﻮرات cmd را داﺧﻞ ﯾﮏ ﻓﺎﯾﻞ ﺑﺎ ﭘﺴﻮﻧﺪ bat. ﺑﮕﺬارﯾﺪ و آن را ﭘﺸﺖ ﺳﺮ ﻫﻢ اﺟﺮا ﮐﻨﯿﺪ.
* نکته دوم: ﺑﺮای ﻧﻤﺎﯾﺶ راﻫﻨﻤﺎی ﻫﺮ دﺳﺘﻮر ﮐﺎﻓﯿﺴﺖ ﺑﻌﺪ از ﻧﺎم دﺳﺘﻮر ﯾﮏ ﻓﺎﺻﻠﻪ ﺳﭙﺲ <code>?/</code> ﺑﮕﺬارﯾﺪ.
* ﻧﮑﺘﻪ ﺳﻮم: ﺑﺮای اﺟﺮای ﭼﻨﺪ دﺳﺘﻮر ﺑﻪ ﻃﻮر ﻫﻤﺰﻣﺎن ﻣﯽﺗﻮاﻧﯿﺪ ﺑﯿﻦ ﻫﺮ دﺳﺘﻮر <code>&&</code> ﺑﮕﺬارﯾﺪ.
* ﻧﮑﺘﻪ ﭼﻬﺎرم: ﺑﺮای ﻟﻐﻮ دﺳﺘﻮرات ﻫﻨﮕﺎم اﺟﺮا ﻣﯽﺗﻮاﻧﯿﺪ از ﮐﻠﯿﺪ ﺗﺮﮐﯿﺒﯽ <code>Control + C</code> اﺳﺘﻔﺎده ﮐﻨﯿﺪ.
* ﻧﮑﺘﻪ ﭘﻨﺠﻢ: ﺑﺮای ﻧﻤﺎﯾﺶ دﺳﺘﻮرات ﺑﺼﻮرت ﺻﻔﺤﻪ ﺑﻪ ﺻﻔﺤﻪ از more | command اﺳﺘﻔﺎده ﮐﻨﯿﺪ.
* ﻧﮑﺘﻪ ﺷﺸﻢ: clip | command ﻣﯽﺗﻮاﻧﯿﺪ ﭘﺲ از اﺟﺮای دﺳﺘﻮر آن را ﮐﭙﯽ ﮐﻨﯿﺪ.
* ﻧﮑﺘﻪ ﻫﻔﺘﻢ: ذﺧﯿﺮه ﺧﺮوﺟﯽ ﯾﮏ دﺳﺘﻮر ﺑﺼﻮرت ﻓﺎﯾﻞ:
command > filename.txt
* ﻧﮑﺘﻪ ﻫﺸﺘﻢ: ﺑﺎ اﺳﺘﻔﺎده از ﮐﻠﯿﺪ ﺗﺮﮐﯿﺒﯽ <code>ALT + ENTER</code> ﻣﯽﺗﻮاﻧﯿﺪ ﻣﺤﯿﻂ ﺧﻂ ﻓﺮﻣﺎن را ﺣﺎﻟﺖ ﺗﻤﺎم ﺻﻔﺤﻪ ﺑﺒﺮﯾﺪ.
[[رده:آموزش کامل خط فرمان ویندوز]]
al1k3o9do6jhmrdnpqz9c0pduddak0h
135304
135303
2026-09-29T07:05:49Z
Fwldom
26269
/* دﺳﺘﻮر mkdir */
135304
wikitext
text/x-wiki
== مقدمه ==
=== وﯾﻨﺪوز ﭼﯿﺴﺖ؟ ===
ﻣﺎﯾﮑﺮوﺳﺎﻓﺖ وﯾﻨﺪوز (به اﻧﮕﻠﯿﺴﯽ: Microsoft Windows) ﯾﮏ ﺳﯿﺴﺘﻢﻋﺎﻣﻞ اﺳﺖ ﮐﻪ ﺗﻮﺳﻂ ﻣﺎﯾﮑﺮوﺳﺎﻓﺖ ﺗﻮﺳﻌﻪ ﯾﺎﻓﺘﻪ اﺳﺖ. وﯾﻨﺪوز از ﺳﺎل ۱۹۸۵ ﺗﺎﮐﻨﻮن ﺑﻪ ﺑﺎزار ﻋﺮﺿﻪ ﺷﺪه اﺳﺖ.
===cmd ﭼﯿﺴﺖ؟===
ﺳﯽامدی (ﺑﻪ اﻧﮕﻠﯿﺴﯽ: cmd) ﯾﮏ ﺧﻂ ﻓﺮﻣﺎن اﺳﺖ ﮐﻪ ﻣﺨﻔﻒ command Prompt اﺳﺖ. ﺧﻂ ﻓﺮﻣﺎن در ﻣﻘﺎﯾﺴﻪ ﺑﺎ راﺑﻂ ﮐﺎرﺑﺮی ﮔﺮاﻓﯿﮑﯽ ﻣﺤﯿﻄﯽ ﺑﯽروح دارد. ﺧﻂ ﻓﺮﻣﺎن در واﻗﻊ ﻣﺤﯿﻄﯽ اﺳﺖ ﮐﻪ در آن دﺳﺘﻮرات ﺑﻪ ﺻﻮرت ﻣﺘﻨﯽ ﺑﻪ ﮐﺎﻣﭙﯿﻮﺗﺮ داده ﻣﯽﺷﻮد. ﺧﻂ ﻓﺮﻣﺎن در ﺳﯿﺴﺘﻢﻋﺎﻣﻞﻫﺎﯾﯽ ﻣﺎﻧﻨﺪ وﯾﻨﺪوز، ﻟﯿﻨﻮﮐﺲ و ... ﺑﺼﻮرت ﯾﮏ ﻧﺮم اﻓﺰار اراﺋﻪ ﻣﯽﺷﻮد.
نکته خط فرمان ویندوز (سیامدی) یک CLI است در ادامه با CLI بیشتر آشنا میشویم.
===CLI چیست ؟===
Command Line Interface یا رابط خط فرمان به شکل مخفف CLI
یک روش تعامل با کامپیوتر یا سیستم عامل است که از طریق وارد کردن دستورات متنی انجام میپذیرد.
===GUI چیست ؟===
GUI مخفف Graphical User Interface به معنای رابط کاربری گرافیکی است. در مقابل CLI که به صورت متنی است، GUI به کاربر اجازه میدهد تا از طریق عناصر گرافیکی مانند دکمهها، منوها، صفحهها، تعامل کند.
===اجرای ﺧﻂ ﻓﺮﻣﺎن وﯾﻨﺪوز===
ﺑﺎ ﻧﮕﻪ داﺷﺘﻦ ﮐﻠﯿﺪﻫﺎی win + R ⊞ ﻣﯽﺗﻮاﻧﯿﺪ وﯾﻨﺪوز ران (Run) را ﺑﺎز ﮐﺮده و ﺳﭙﺲ ﺑﺎ ﺗﺎﯾﭗ cmd و ﻓﺸﺮدن ﮐﻠﯿﺪ اﯾﻨﺘﺮ (Enter) ﺧﻂ ﻓﺮﻣﺎن وﯾﻨﺪوز را ﺑﺎز ﮐﻨﯿﺪ.<br>
ﻫﻤﭽﻨﯿﻦ ﻧﯿﺰ ﻣﯽﺗﻮاﻧﯿﺪ ﺑﺎ ﺟﺴﺘﺠﻮ ﮐﻠﻤﻪ cmd آن را ﭘﯿﺪا و ﺑﺎز ﮐﻨﯿﺪ.
===ﺳﺎﺧﺘﺎر دﺳﺘﻮرات در ﺧﻂ ﻓﺮﻣﺎن وﯾﻨﺪوز===
* ساختار دستورات cmd بصورت زیر است:
<code>Command (parameter) (switch)</code>
===ﭘﺎراﻣﺘﺮ ﭼﯿﺴﺖ؟===
ﭘﺎراﻣﺘﺮﻫﺎ در واﻗﻊ ورودیﻫﺎ ﯾﺎ ﻣﺘﻐﯿﺮﻫﺎ ﺗﺎﺑﻊ (ﻓﺎﻧﮑﺸﻦ)ﻫﺎ ﻫﺴﺘﻨﺪ؛ ﺑﻪ ﺑﯿﺎﻧﯽ ﺳﺎدهﺗﺮ ﭘﺎراﻣﺘﺮﻫﺎ ﻣﻘﺎدﯾﺮی ﻫﺴﺘﻨﺪ ﮐﻪ ﺑﻪ ﺗﻮاﺑﻊ ﯾﺎ دﺳﺘﻮرات ﺑﺮای اﺟﺮای ﻋﻤﻠﯿﺎت ﺧﺎﺻﯽ داده ﻣﯽﺷﻮد.
==دﺳﺘﻮرات ﭘﺎﯾﻪ ﺧﻂ ﻓﺮﻣﺎن وﯾﻨﺪوز==
===دﺳﺘﻮر cd===
اﯾﻦ دﺳﺘﻮر ﺑﺮای ﻋﻮض ﮐﺮدن داﯾﺮﮐﺘﻮری ﻓﻌﻠﯽ ﮐﻪ در آن ﻫﺴﺘﯿﺪ ﮐﺎرﺑﺮد و ﺑﺎ اﯾﻦ دﺳﺘﻮر ﻣﯽﺗﻮاﻧﯿﺪ داﯾﺮﮐﺘﻮری ﻓﻌﻠﯿﺘﻮن رو ﻋﻮض ﮐﻨﯿﺪ. ﻣﺎﻧﻨﺪ
<syntaxhighlight lang="batch">
cd FolderName
</syntaxhighlight>
* ﺑﺎ اﺳﺘﻔﺎده از
<syntaxhighlight lang="batch">
cd ../
</syntaxhighlight>
ﻣﯽﺗﻮاﻧﯿﺪ ﺑﻪ داﯾﺮﮐﺘﻮری قبلی ﺑﺮوﯾﺪ و ﺑﺎ اﺳﺘﻔﺎده از
<syntaxhighlight lang="batch">
cd /
</syntaxhighlight>
ﻣﯽﺗﻮاﻧﯿﺪ ﺑﻪ رﯾﺸﻪ (root) ﺑﺮﮔﺮدﯾﺪ.
* برای مثال
<syntaxhighlight lang="batch">
cd testfolder
</syntaxhighlight>
به دایرکتوری testfolder میرود.
===دﺳﺘﻮر dir===
دﺳﺘﻮر dir ﺑﺮای ﻧﻤﺎﯾﺶ ﻣﺤﺘﻮﯾﺎت داﯾﺮﮐﺘﻮری ﻓﻌﻠﯽ اﺳﺖ ﺑﺎ اﺳﺘﻔﺎده از دستور زیر:
<syntaxhighlight lang="batch">
dir /s
</syntaxhighlight>
ﻣﯽﺗﻮاﻧﯿﺪ ﻣﺤﺘﻮای داﯾﺮﮐﺘﻮری ﻓﻌﻠﯽ و ﺗﻤﺎﻣﯽ
داﯾﺮﮐﺘﻮریﻫﺎی زﯾﺮﯾﻦ آن را ﻧﻤﺎﯾﺶ دﻫﯿﺪ.
===دﺳﺘﻮر mkdir===
اﯾﻦ دﺳﺘﻮر ﺑﺮای اﯾﺠﺎد ﯾﮏ داﯾﺮﮐﺘﻮری (ﭘﻮﺷﻪ) ﺑﻪ ﮐﺎر ﻣﯽرود و ﯾﮏ ﭘﺎراﻣﺘﺮ ﻣﻬﻢ از ﺷﻤﺎ ﻣﯽﮔﯿﺮد ﮐﻪ آن ﻧﺎم ﭘﻮﺷﻪ است ﻣﺎﻧﻨﺪ:
<syntaxhighlight lang="batch">
md testfoldername
</syntaxhighlight>
ﻧﮑﺘﻪ: دﺳﺘﻮرات md و mkdir ﺑﺎ ﻫﻢ ﻓﺮﻗﯽ ﻧﺪارﻧﺪ. ﻧﯿﺰ ﺑﻬﺘﺮ اﺳﺖ ﻧﺎم پوﺷﻪ ﺑﯿﻦ "" ﻗﺮار دﻫﯿﺪ.
===دﺳﺘﻮر ren===
اﯾﻦ دﺳﺘﻮر ﺑﺮای ﻋﻮض ﮐﺮدن ﻧﺎم ﭘﻮﺷﻪﻫﺎ ﯾﺎ ﻓﺎﯾﻞﻫﺎ اﺳﺘﻔﺎده ﻣﯽﺷﻮد. ﻣﺎﻧﻨﺪ:
ren FileName.extension newName.extension
ren Folder NewFolderName
ﻧﮑﺘﻪ: ﺑﺮای ﺗﻐﯿﯿﺮ ﻧﺎم ﻓﺎﯾﻞﻫﺎ ﺣﺘما ﺑﺎﯾﺪ ﻧﺎم آن را ﺑﻬﺮاه ﭘﺴﻮﻧﺪ آن ﺑﻪ دﺳﺘﻮر داد و ﻫﻤﯿﻨﻄﻮر ﺑﺮای ﻧﺎم ﺟﺪﯾﺪ.
== دﺳﺘﻮرات cmd ==
===دﺳﺘﻮرات ﭘﺎﯾﻪ===
* color : ﺑﺮای ﻋﻮض ﮐﺮدن رﻧﮓ ﭘﺲ زﻣﯿﻨﻪ و ﻣﺘﻦ ﻣﺤﯿﻂ cmd ﺑﻪ ﮐﺎر ﻣﯽرود ﺑﺮای ﻣﺜﺎل: color 71
* exit : ﺑﺮای ﺧﺎرج ﺷﺪن از ﻣﺤﯿﻂ ﺧﻂ ﻓﺮﻣﺎن اﺳﺘﻔﺎده ﻣﯽﺷﻮد.
* help : راﻫﻨﻤﺎﯾﯽ در ﻣﻮرد ﺧﻂ ﻓﺮﻣﺎن ﻧﻤﺎﯾﺶ ﻣﯽدﻫﺪ.
* ver : ﻧﺴﺨﻪ وﯾﻨﺪوز را ﺑﻪ ﻧﻤﺎﯾﺶ ﻣﯽﮔﺬارد.
* whoami : ﻧﺎم ﮐﺎرﺑﺮی و ﻧﺎم راﯾﺎﻧﻪ را ﻧﻤﺎﯾﺶ ﻣﯽدﻫﺪ.
* systeminfo : اﻃﻼﻋﺎﺗﯽ در ﻣﻮرد راﯾﺎﻧﻪ را ﺑﻪ ﺷﻤﺎ ﻧﻤﺎﯾﺶ ﻣﯽدﻫﺪ ﻣﺎﻧﻨﺪ ﻧﺴﺨﻪ ﺳﯿﺴﺘﻢ ﻋﺎﻣﻞ و Bios و ﻧﻮع ﺳﯿﺴﺘﻢ.
* cls: برای پاک کردن صفحه کنسول استفاده میشود
مدیریت فایل
* md: ﺳﺎﺧﺖ ﭘﻮﺷﻪ ﯾﺎ ﻫﻤﺎن داﯾﺮﮐﺘﻮری ﺑﺮای ﻣﺜﺎل
md testfolder
ﻧﮑﺘﻪ mkdir ﺑﺎ md ﻫﯿﭻ ﻓﺮﻗﯽ ﻧﺪارد.
*fsutil: ﺑﺮای اﯾﺠﺎد ﻓﺎﯾﻞ ﺑﺎ ﺣﺠﻢ دﻟﺨﻮاه اﺳﺘﻔﺎده ﻣﯽﺷﻮد
4000 file.txt createnew file fsutil
ﻧﮑﺘﻪ: ﺣﺠﻢ دﻟﺨﻮاه ﺑﺮ اﺳﺎس ﺑﺎﯾﺖ اﺳﺖ.
* :rd/rmdir ﺑﺮای ﺣﺬف ﭘﻮﺷﻪ ﮐﺎرﺑﺮد دارد ﺑﺮای ﻣﺜﺎل
rmdir foldertest
* del: ﺑﺮای ﺣﺬف ﻓﺎﯾﻞﻫﺎ ﺑﺮای ﻣﺜﺎل
del file.txt
ﻓﺎﯾﻞ file.txt را ﺣﺬف ﻣﯽﮐﻨﺪ.
del *.txt : ﺗﻤﺎم ﻓﺎﯾﻞﻫﺎی دارای ﭘﺴﻮﻧﺪ txt را ﺣﺬف ﻣﯽﮐﻨﺪ.
ﻧﮑﺘﻪ: ﺑﻄﻮر ﮐﻠﯽ * ﺑﻪ ﻣﻌﻨﺎی ﻫﻤﻪ اﺳﺖ.
* rename/ren: ﺑﺮای ﺗﻐﯿﯿﺮ ﻧﺎم ﻓﺎﯾﻞﻫﺎ ﺑﮑﺎر ﻣﯽرود.
ren name.txt newname.txt
* tree: ﻣﺤﺘﻮﯾﺎت داﯾﺮﮐﺘﻮری ﻓﻌﻠﯽ را ﺑﺼﻮرت درﺧﺘﯽ ﻧﺸﺎن ﻣﯽدﻫﺪ.
* cp / copy : ﺑﺮای ﮐﭙﯽ ﻓﺎﯾﻞﻫﺎ اﺳﺘﻔﺎده میشود.
ﻣﯽﺷﻮد ﺑﺮای ﻣﺜﺎل:
<syntaxhighlight lang="cmd">
cp directorytarget/newfilename.txt
directory/testfile.txt
</syntaxhighlight>
فایل testfile.txt در directory را در directorytarget با نام newfilename.txt رونویسی (کپی) میکند.
* mv / move: ﻣﺜﺎل copy ﮐﺎر ﻣﯽﮐﻨﺪ ﻓﻘﻂ ﺑﺠﺎی ﮐﭙﯽ اﻧﺘﻘﺎل ﻣﯽدﻫﺪ.
ﺷﺒﮑﻪ
* ping : ﺑﺮای ﮔﺮﻓﺘﻦ ﺗﺄﺧﯿﺮ (ﭘﯿﻨﮓ) از ﻧﻮدﻫﺎ ﯾﺎ ... در ﺷﺒﮑﻪ ﮐﺎرﺑﺮد دارد.
127.0.0.1 ping از ﮐﺎرت ﺷﺒﮑﻪ ﺧﻮد ﭘﯿﻨﮓ ﻣﯽﮔﯿﺮد.
* tracert: ﺑﺮای ﺑﺮرﺳﯽ ﮐﺮدن ﺷﺒﮑﻪ و اﺗﺼﺎل اﯾﻨﺘﺮﻧﺖ در ﺣﺎﻟﯽ ﮐﻪ ﭘﯿﻨﮓ ﻓﻘﻂ اﺗﺼﺎل را ﺑﺮرﺳﯽ ﻣﯽﮐﻨﺪ (tracert) ﻣﺴﯿﺮ
اﺗﺼﺎل را ﺑﻪ ﺷﻤﺎ ﻧﺸﺎن ﻣﯽدﻫﺪ.
tracert (website or network location or IP Address)
* ipconfig : ﻣﺸﺨﺼﺎت ﮐﺎرتﻫﺎی ﺷﺒﮑﻪ ﻣﺘﺼﻞ ﺑﻪ ﺳﯿﺴﺘﻢ را ﺑﻪ ﺷﻤﺎ ﻧﺸﺎن ﻣﯽدﻫﺪ.
* getmac : ﻣﮏ آدرس ﺷﻤﺎ را ﺑﻪ ﺷﻤﺎ ﻧﻤﺎﯾﺶ ﻣﯽدﻫﺪ.
* arp : ﺑﺮای ﻧﻤﺎﯾﺶ ورودیﻫﺎی ﻣﻮﺟﻮد در ﺣﺎﻓﻈﻪ ﭘﻨﻬﺎن ﭘﺮوﺗﮑﻞ Resolution Address اﺳﺘﻔﺎده ﻣﯽﺷﻮد.
arp -a : ﺗﻤﺎﻣﯽ ورودیﻫﺎی ﻣﻮﺟﻮد را ﻧﻤﺎﯾﺶ ﻣﯽدﻫﺪ.
=== اﺷﮑﺎل زداﯾﯽ و ﺗﻌﻤﯿﺮ ===
* chkdsk : ﺑﺮای ﺷﻨﺎﺳﺎﯾﯽ و اﺻﻼح ﺑﺮﺧﯽ از ﺧﻄﺎﻫﺎیﻫﺎی ﻫﺎرددﯾﺴﮏ اﺳﺘﻔﺎده ﻣﯽﺷﻮد. اﯾﻦ دﺳﺘﻮر در ﺗﻤﺎﻣﯽ ﻧﺴﺨﻪﻫﺎی
وﯾﻨﺪوز ﻣﻮﺟﻮد ﻣﯽﺑﺎﺷﺪ ﺑﺮای ﻣﺜﺎل:
:chkdsk /f d
ﭘﺎرﺗﯿﺸﻦ دی را ﺑﺮرﺳﯽ و ﺧﻄﺎﻫﺎی آن را ﺑﺮﻃﺮف ﻣﯽﮐﻨﺪ.
* echo : ﺑﺮای ﭼﺎپ ﮐﺮدن ﯾﮏ ﻣﺘﻦ اﺳﺘﻔﺎده ﻣﯽﺷﻮد ﺑﺮای ﻣﺜﺎل: text echo
ﻧﮑﺘﻪ: off echo اﻋﻼن داس را ﮐﻪ ﻗﺒﻞ ﻫﺮ دﺳﺘﻮر ﻣﻮﺟﻮد اﺳﺖ دﯾﮕﺮ ﺑﻪ ﻧﻤﺎﯾﺶ ﻧﻤﯽﮔﺬارد و آن را ﺣﺬف ﻣﯽﮐﻨﺪ.
== ﻧﮑﺎت cmd ==
* ﻧﮑﺘﻪ ﻧﺨﺴﺖ: ﻣﯽﺗﻮاﻧﯿﺪ دﺳﺘﻮرات cmd را داﺧﻞ ﯾﮏ ﻓﺎﯾﻞ ﺑﺎ ﭘﺴﻮﻧﺪ bat. ﺑﮕﺬارﯾﺪ و آن را ﭘﺸﺖ ﺳﺮ ﻫﻢ اﺟﺮا ﮐﻨﯿﺪ.
* نکته دوم: ﺑﺮای ﻧﻤﺎﯾﺶ راﻫﻨﻤﺎی ﻫﺮ دﺳﺘﻮر ﮐﺎﻓﯿﺴﺖ ﺑﻌﺪ از ﻧﺎم دﺳﺘﻮر ﯾﮏ ﻓﺎﺻﻠﻪ ﺳﭙﺲ <code>?/</code> ﺑﮕﺬارﯾﺪ.
* ﻧﮑﺘﻪ ﺳﻮم: ﺑﺮای اﺟﺮای ﭼﻨﺪ دﺳﺘﻮر ﺑﻪ ﻃﻮر ﻫﻤﺰﻣﺎن ﻣﯽﺗﻮاﻧﯿﺪ ﺑﯿﻦ ﻫﺮ دﺳﺘﻮر <code>&&</code> ﺑﮕﺬارﯾﺪ.
* ﻧﮑﺘﻪ ﭼﻬﺎرم: ﺑﺮای ﻟﻐﻮ دﺳﺘﻮرات ﻫﻨﮕﺎم اﺟﺮا ﻣﯽﺗﻮاﻧﯿﺪ از ﮐﻠﯿﺪ ﺗﺮﮐﯿﺒﯽ <code>Control + C</code> اﺳﺘﻔﺎده ﮐﻨﯿﺪ.
* ﻧﮑﺘﻪ ﭘﻨﺠﻢ: ﺑﺮای ﻧﻤﺎﯾﺶ دﺳﺘﻮرات ﺑﺼﻮرت ﺻﻔﺤﻪ ﺑﻪ ﺻﻔﺤﻪ از more | command اﺳﺘﻔﺎده ﮐﻨﯿﺪ.
* ﻧﮑﺘﻪ ﺷﺸﻢ: clip | command ﻣﯽﺗﻮاﻧﯿﺪ ﭘﺲ از اﺟﺮای دﺳﺘﻮر آن را ﮐﭙﯽ ﮐﻨﯿﺪ.
* ﻧﮑﺘﻪ ﻫﻔﺘﻢ: ذﺧﯿﺮه ﺧﺮوﺟﯽ ﯾﮏ دﺳﺘﻮر ﺑﺼﻮرت ﻓﺎﯾﻞ:
command > filename.txt
* ﻧﮑﺘﻪ ﻫﺸﺘﻢ: ﺑﺎ اﺳﺘﻔﺎده از ﮐﻠﯿﺪ ﺗﺮﮐﯿﺒﯽ <code>ALT + ENTER</code> ﻣﯽﺗﻮاﻧﯿﺪ ﻣﺤﯿﻂ ﺧﻂ ﻓﺮﻣﺎن را ﺣﺎﻟﺖ ﺗﻤﺎم ﺻﻔﺤﻪ ﺑﺒﺮﯾﺪ.
[[رده:آموزش کامل خط فرمان ویندوز]]
3939nzpndydvkcfu4tjgyno6cz8obf4
135305
135304
2026-09-29T07:06:19Z
Fwldom
26269
/* دﺳﺘﻮر ren */
135305
wikitext
text/x-wiki
== مقدمه ==
=== وﯾﻨﺪوز ﭼﯿﺴﺖ؟ ===
ﻣﺎﯾﮑﺮوﺳﺎﻓﺖ وﯾﻨﺪوز (به اﻧﮕﻠﯿﺴﯽ: Microsoft Windows) ﯾﮏ ﺳﯿﺴﺘﻢﻋﺎﻣﻞ اﺳﺖ ﮐﻪ ﺗﻮﺳﻂ ﻣﺎﯾﮑﺮوﺳﺎﻓﺖ ﺗﻮﺳﻌﻪ ﯾﺎﻓﺘﻪ اﺳﺖ. وﯾﻨﺪوز از ﺳﺎل ۱۹۸۵ ﺗﺎﮐﻨﻮن ﺑﻪ ﺑﺎزار ﻋﺮﺿﻪ ﺷﺪه اﺳﺖ.
===cmd ﭼﯿﺴﺖ؟===
ﺳﯽامدی (ﺑﻪ اﻧﮕﻠﯿﺴﯽ: cmd) ﯾﮏ ﺧﻂ ﻓﺮﻣﺎن اﺳﺖ ﮐﻪ ﻣﺨﻔﻒ command Prompt اﺳﺖ. ﺧﻂ ﻓﺮﻣﺎن در ﻣﻘﺎﯾﺴﻪ ﺑﺎ راﺑﻂ ﮐﺎرﺑﺮی ﮔﺮاﻓﯿﮑﯽ ﻣﺤﯿﻄﯽ ﺑﯽروح دارد. ﺧﻂ ﻓﺮﻣﺎن در واﻗﻊ ﻣﺤﯿﻄﯽ اﺳﺖ ﮐﻪ در آن دﺳﺘﻮرات ﺑﻪ ﺻﻮرت ﻣﺘﻨﯽ ﺑﻪ ﮐﺎﻣﭙﯿﻮﺗﺮ داده ﻣﯽﺷﻮد. ﺧﻂ ﻓﺮﻣﺎن در ﺳﯿﺴﺘﻢﻋﺎﻣﻞﻫﺎﯾﯽ ﻣﺎﻧﻨﺪ وﯾﻨﺪوز، ﻟﯿﻨﻮﮐﺲ و ... ﺑﺼﻮرت ﯾﮏ ﻧﺮم اﻓﺰار اراﺋﻪ ﻣﯽﺷﻮد.
نکته خط فرمان ویندوز (سیامدی) یک CLI است در ادامه با CLI بیشتر آشنا میشویم.
===CLI چیست ؟===
Command Line Interface یا رابط خط فرمان به شکل مخفف CLI
یک روش تعامل با کامپیوتر یا سیستم عامل است که از طریق وارد کردن دستورات متنی انجام میپذیرد.
===GUI چیست ؟===
GUI مخفف Graphical User Interface به معنای رابط کاربری گرافیکی است. در مقابل CLI که به صورت متنی است، GUI به کاربر اجازه میدهد تا از طریق عناصر گرافیکی مانند دکمهها، منوها، صفحهها، تعامل کند.
===اجرای ﺧﻂ ﻓﺮﻣﺎن وﯾﻨﺪوز===
ﺑﺎ ﻧﮕﻪ داﺷﺘﻦ ﮐﻠﯿﺪﻫﺎی win + R ⊞ ﻣﯽﺗﻮاﻧﯿﺪ وﯾﻨﺪوز ران (Run) را ﺑﺎز ﮐﺮده و ﺳﭙﺲ ﺑﺎ ﺗﺎﯾﭗ cmd و ﻓﺸﺮدن ﮐﻠﯿﺪ اﯾﻨﺘﺮ (Enter) ﺧﻂ ﻓﺮﻣﺎن وﯾﻨﺪوز را ﺑﺎز ﮐﻨﯿﺪ.<br>
ﻫﻤﭽﻨﯿﻦ ﻧﯿﺰ ﻣﯽﺗﻮاﻧﯿﺪ ﺑﺎ ﺟﺴﺘﺠﻮ ﮐﻠﻤﻪ cmd آن را ﭘﯿﺪا و ﺑﺎز ﮐﻨﯿﺪ.
===ﺳﺎﺧﺘﺎر دﺳﺘﻮرات در ﺧﻂ ﻓﺮﻣﺎن وﯾﻨﺪوز===
* ساختار دستورات cmd بصورت زیر است:
<code>Command (parameter) (switch)</code>
===ﭘﺎراﻣﺘﺮ ﭼﯿﺴﺖ؟===
ﭘﺎراﻣﺘﺮﻫﺎ در واﻗﻊ ورودیﻫﺎ ﯾﺎ ﻣﺘﻐﯿﺮﻫﺎ ﺗﺎﺑﻊ (ﻓﺎﻧﮑﺸﻦ)ﻫﺎ ﻫﺴﺘﻨﺪ؛ ﺑﻪ ﺑﯿﺎﻧﯽ ﺳﺎدهﺗﺮ ﭘﺎراﻣﺘﺮﻫﺎ ﻣﻘﺎدﯾﺮی ﻫﺴﺘﻨﺪ ﮐﻪ ﺑﻪ ﺗﻮاﺑﻊ ﯾﺎ دﺳﺘﻮرات ﺑﺮای اﺟﺮای ﻋﻤﻠﯿﺎت ﺧﺎﺻﯽ داده ﻣﯽﺷﻮد.
==دﺳﺘﻮرات ﭘﺎﯾﻪ ﺧﻂ ﻓﺮﻣﺎن وﯾﻨﺪوز==
===دﺳﺘﻮر cd===
اﯾﻦ دﺳﺘﻮر ﺑﺮای ﻋﻮض ﮐﺮدن داﯾﺮﮐﺘﻮری ﻓﻌﻠﯽ ﮐﻪ در آن ﻫﺴﺘﯿﺪ ﮐﺎرﺑﺮد و ﺑﺎ اﯾﻦ دﺳﺘﻮر ﻣﯽﺗﻮاﻧﯿﺪ داﯾﺮﮐﺘﻮری ﻓﻌﻠﯿﺘﻮن رو ﻋﻮض ﮐﻨﯿﺪ. ﻣﺎﻧﻨﺪ
<syntaxhighlight lang="batch">
cd FolderName
</syntaxhighlight>
* ﺑﺎ اﺳﺘﻔﺎده از
<syntaxhighlight lang="batch">
cd ../
</syntaxhighlight>
ﻣﯽﺗﻮاﻧﯿﺪ ﺑﻪ داﯾﺮﮐﺘﻮری قبلی ﺑﺮوﯾﺪ و ﺑﺎ اﺳﺘﻔﺎده از
<syntaxhighlight lang="batch">
cd /
</syntaxhighlight>
ﻣﯽﺗﻮاﻧﯿﺪ ﺑﻪ رﯾﺸﻪ (root) ﺑﺮﮔﺮدﯾﺪ.
* برای مثال
<syntaxhighlight lang="batch">
cd testfolder
</syntaxhighlight>
به دایرکتوری testfolder میرود.
===دﺳﺘﻮر dir===
دﺳﺘﻮر dir ﺑﺮای ﻧﻤﺎﯾﺶ ﻣﺤﺘﻮﯾﺎت داﯾﺮﮐﺘﻮری ﻓﻌﻠﯽ اﺳﺖ ﺑﺎ اﺳﺘﻔﺎده از دستور زیر:
<syntaxhighlight lang="batch">
dir /s
</syntaxhighlight>
ﻣﯽﺗﻮاﻧﯿﺪ ﻣﺤﺘﻮای داﯾﺮﮐﺘﻮری ﻓﻌﻠﯽ و ﺗﻤﺎﻣﯽ
داﯾﺮﮐﺘﻮریﻫﺎی زﯾﺮﯾﻦ آن را ﻧﻤﺎﯾﺶ دﻫﯿﺪ.
===دﺳﺘﻮر mkdir===
اﯾﻦ دﺳﺘﻮر ﺑﺮای اﯾﺠﺎد ﯾﮏ داﯾﺮﮐﺘﻮری (ﭘﻮﺷﻪ) ﺑﻪ ﮐﺎر ﻣﯽرود و ﯾﮏ ﭘﺎراﻣﺘﺮ ﻣﻬﻢ از ﺷﻤﺎ ﻣﯽﮔﯿﺮد ﮐﻪ آن ﻧﺎم ﭘﻮﺷﻪ است ﻣﺎﻧﻨﺪ:
<syntaxhighlight lang="batch">
md testfoldername
</syntaxhighlight>
ﻧﮑﺘﻪ: دﺳﺘﻮرات md و mkdir ﺑﺎ ﻫﻢ ﻓﺮﻗﯽ ﻧﺪارﻧﺪ. ﻧﯿﺰ ﺑﻬﺘﺮ اﺳﺖ ﻧﺎم پوﺷﻪ ﺑﯿﻦ "" ﻗﺮار دﻫﯿﺪ.
===دﺳﺘﻮر ren===
اﯾﻦ دﺳﺘﻮر ﺑﺮای ﻋﻮض ﮐﺮدن ﻧﺎم ﭘﻮﺷﻪﻫﺎ ﯾﺎ ﻓﺎﯾﻞﻫﺎ اﺳﺘﻔﺎده ﻣﯽﺷﻮد. ﻣﺎﻧﻨﺪ:
<syntaxhighlight lang="batch">
ren FileName.extension newName.extension
ren Folder NewFolderName
</syntaxhighlight>
ﻧﮑﺘﻪ: ﺑﺮای ﺗﻐﯿﯿﺮ ﻧﺎم ﻓﺎﯾﻞﻫﺎ ﺣﺘما ﺑﺎﯾﺪ ﻧﺎم آن را ﺑﻬﺮاه ﭘﺴﻮﻧﺪ آن ﺑﻪ دﺳﺘﻮر داد و ﻫﻤﯿﻨﻄﻮر ﺑﺮای ﻧﺎم ﺟﺪﯾﺪ.
== دﺳﺘﻮرات cmd ==
===دﺳﺘﻮرات ﭘﺎﯾﻪ===
* color : ﺑﺮای ﻋﻮض ﮐﺮدن رﻧﮓ ﭘﺲ زﻣﯿﻨﻪ و ﻣﺘﻦ ﻣﺤﯿﻂ cmd ﺑﻪ ﮐﺎر ﻣﯽرود ﺑﺮای ﻣﺜﺎل: color 71
* exit : ﺑﺮای ﺧﺎرج ﺷﺪن از ﻣﺤﯿﻂ ﺧﻂ ﻓﺮﻣﺎن اﺳﺘﻔﺎده ﻣﯽﺷﻮد.
* help : راﻫﻨﻤﺎﯾﯽ در ﻣﻮرد ﺧﻂ ﻓﺮﻣﺎن ﻧﻤﺎﯾﺶ ﻣﯽدﻫﺪ.
* ver : ﻧﺴﺨﻪ وﯾﻨﺪوز را ﺑﻪ ﻧﻤﺎﯾﺶ ﻣﯽﮔﺬارد.
* whoami : ﻧﺎم ﮐﺎرﺑﺮی و ﻧﺎم راﯾﺎﻧﻪ را ﻧﻤﺎﯾﺶ ﻣﯽدﻫﺪ.
* systeminfo : اﻃﻼﻋﺎﺗﯽ در ﻣﻮرد راﯾﺎﻧﻪ را ﺑﻪ ﺷﻤﺎ ﻧﻤﺎﯾﺶ ﻣﯽدﻫﺪ ﻣﺎﻧﻨﺪ ﻧﺴﺨﻪ ﺳﯿﺴﺘﻢ ﻋﺎﻣﻞ و Bios و ﻧﻮع ﺳﯿﺴﺘﻢ.
* cls: برای پاک کردن صفحه کنسول استفاده میشود
مدیریت فایل
* md: ﺳﺎﺧﺖ ﭘﻮﺷﻪ ﯾﺎ ﻫﻤﺎن داﯾﺮﮐﺘﻮری ﺑﺮای ﻣﺜﺎل
md testfolder
ﻧﮑﺘﻪ mkdir ﺑﺎ md ﻫﯿﭻ ﻓﺮﻗﯽ ﻧﺪارد.
*fsutil: ﺑﺮای اﯾﺠﺎد ﻓﺎﯾﻞ ﺑﺎ ﺣﺠﻢ دﻟﺨﻮاه اﺳﺘﻔﺎده ﻣﯽﺷﻮد
4000 file.txt createnew file fsutil
ﻧﮑﺘﻪ: ﺣﺠﻢ دﻟﺨﻮاه ﺑﺮ اﺳﺎس ﺑﺎﯾﺖ اﺳﺖ.
* :rd/rmdir ﺑﺮای ﺣﺬف ﭘﻮﺷﻪ ﮐﺎرﺑﺮد دارد ﺑﺮای ﻣﺜﺎل
rmdir foldertest
* del: ﺑﺮای ﺣﺬف ﻓﺎﯾﻞﻫﺎ ﺑﺮای ﻣﺜﺎل
del file.txt
ﻓﺎﯾﻞ file.txt را ﺣﺬف ﻣﯽﮐﻨﺪ.
del *.txt : ﺗﻤﺎم ﻓﺎﯾﻞﻫﺎی دارای ﭘﺴﻮﻧﺪ txt را ﺣﺬف ﻣﯽﮐﻨﺪ.
ﻧﮑﺘﻪ: ﺑﻄﻮر ﮐﻠﯽ * ﺑﻪ ﻣﻌﻨﺎی ﻫﻤﻪ اﺳﺖ.
* rename/ren: ﺑﺮای ﺗﻐﯿﯿﺮ ﻧﺎم ﻓﺎﯾﻞﻫﺎ ﺑﮑﺎر ﻣﯽرود.
ren name.txt newname.txt
* tree: ﻣﺤﺘﻮﯾﺎت داﯾﺮﮐﺘﻮری ﻓﻌﻠﯽ را ﺑﺼﻮرت درﺧﺘﯽ ﻧﺸﺎن ﻣﯽدﻫﺪ.
* cp / copy : ﺑﺮای ﮐﭙﯽ ﻓﺎﯾﻞﻫﺎ اﺳﺘﻔﺎده میشود.
ﻣﯽﺷﻮد ﺑﺮای ﻣﺜﺎل:
<syntaxhighlight lang="cmd">
cp directorytarget/newfilename.txt
directory/testfile.txt
</syntaxhighlight>
فایل testfile.txt در directory را در directorytarget با نام newfilename.txt رونویسی (کپی) میکند.
* mv / move: ﻣﺜﺎل copy ﮐﺎر ﻣﯽﮐﻨﺪ ﻓﻘﻂ ﺑﺠﺎی ﮐﭙﯽ اﻧﺘﻘﺎل ﻣﯽدﻫﺪ.
ﺷﺒﮑﻪ
* ping : ﺑﺮای ﮔﺮﻓﺘﻦ ﺗﺄﺧﯿﺮ (ﭘﯿﻨﮓ) از ﻧﻮدﻫﺎ ﯾﺎ ... در ﺷﺒﮑﻪ ﮐﺎرﺑﺮد دارد.
127.0.0.1 ping از ﮐﺎرت ﺷﺒﮑﻪ ﺧﻮد ﭘﯿﻨﮓ ﻣﯽﮔﯿﺮد.
* tracert: ﺑﺮای ﺑﺮرﺳﯽ ﮐﺮدن ﺷﺒﮑﻪ و اﺗﺼﺎل اﯾﻨﺘﺮﻧﺖ در ﺣﺎﻟﯽ ﮐﻪ ﭘﯿﻨﮓ ﻓﻘﻂ اﺗﺼﺎل را ﺑﺮرﺳﯽ ﻣﯽﮐﻨﺪ (tracert) ﻣﺴﯿﺮ
اﺗﺼﺎل را ﺑﻪ ﺷﻤﺎ ﻧﺸﺎن ﻣﯽدﻫﺪ.
tracert (website or network location or IP Address)
* ipconfig : ﻣﺸﺨﺼﺎت ﮐﺎرتﻫﺎی ﺷﺒﮑﻪ ﻣﺘﺼﻞ ﺑﻪ ﺳﯿﺴﺘﻢ را ﺑﻪ ﺷﻤﺎ ﻧﺸﺎن ﻣﯽدﻫﺪ.
* getmac : ﻣﮏ آدرس ﺷﻤﺎ را ﺑﻪ ﺷﻤﺎ ﻧﻤﺎﯾﺶ ﻣﯽدﻫﺪ.
* arp : ﺑﺮای ﻧﻤﺎﯾﺶ ورودیﻫﺎی ﻣﻮﺟﻮد در ﺣﺎﻓﻈﻪ ﭘﻨﻬﺎن ﭘﺮوﺗﮑﻞ Resolution Address اﺳﺘﻔﺎده ﻣﯽﺷﻮد.
arp -a : ﺗﻤﺎﻣﯽ ورودیﻫﺎی ﻣﻮﺟﻮد را ﻧﻤﺎﯾﺶ ﻣﯽدﻫﺪ.
=== اﺷﮑﺎل زداﯾﯽ و ﺗﻌﻤﯿﺮ ===
* chkdsk : ﺑﺮای ﺷﻨﺎﺳﺎﯾﯽ و اﺻﻼح ﺑﺮﺧﯽ از ﺧﻄﺎﻫﺎیﻫﺎی ﻫﺎرددﯾﺴﮏ اﺳﺘﻔﺎده ﻣﯽﺷﻮد. اﯾﻦ دﺳﺘﻮر در ﺗﻤﺎﻣﯽ ﻧﺴﺨﻪﻫﺎی
وﯾﻨﺪوز ﻣﻮﺟﻮد ﻣﯽﺑﺎﺷﺪ ﺑﺮای ﻣﺜﺎل:
:chkdsk /f d
ﭘﺎرﺗﯿﺸﻦ دی را ﺑﺮرﺳﯽ و ﺧﻄﺎﻫﺎی آن را ﺑﺮﻃﺮف ﻣﯽﮐﻨﺪ.
* echo : ﺑﺮای ﭼﺎپ ﮐﺮدن ﯾﮏ ﻣﺘﻦ اﺳﺘﻔﺎده ﻣﯽﺷﻮد ﺑﺮای ﻣﺜﺎل: text echo
ﻧﮑﺘﻪ: off echo اﻋﻼن داس را ﮐﻪ ﻗﺒﻞ ﻫﺮ دﺳﺘﻮر ﻣﻮﺟﻮد اﺳﺖ دﯾﮕﺮ ﺑﻪ ﻧﻤﺎﯾﺶ ﻧﻤﯽﮔﺬارد و آن را ﺣﺬف ﻣﯽﮐﻨﺪ.
== ﻧﮑﺎت cmd ==
* ﻧﮑﺘﻪ ﻧﺨﺴﺖ: ﻣﯽﺗﻮاﻧﯿﺪ دﺳﺘﻮرات cmd را داﺧﻞ ﯾﮏ ﻓﺎﯾﻞ ﺑﺎ ﭘﺴﻮﻧﺪ bat. ﺑﮕﺬارﯾﺪ و آن را ﭘﺸﺖ ﺳﺮ ﻫﻢ اﺟﺮا ﮐﻨﯿﺪ.
* نکته دوم: ﺑﺮای ﻧﻤﺎﯾﺶ راﻫﻨﻤﺎی ﻫﺮ دﺳﺘﻮر ﮐﺎﻓﯿﺴﺖ ﺑﻌﺪ از ﻧﺎم دﺳﺘﻮر ﯾﮏ ﻓﺎﺻﻠﻪ ﺳﭙﺲ <code>?/</code> ﺑﮕﺬارﯾﺪ.
* ﻧﮑﺘﻪ ﺳﻮم: ﺑﺮای اﺟﺮای ﭼﻨﺪ دﺳﺘﻮر ﺑﻪ ﻃﻮر ﻫﻤﺰﻣﺎن ﻣﯽﺗﻮاﻧﯿﺪ ﺑﯿﻦ ﻫﺮ دﺳﺘﻮر <code>&&</code> ﺑﮕﺬارﯾﺪ.
* ﻧﮑﺘﻪ ﭼﻬﺎرم: ﺑﺮای ﻟﻐﻮ دﺳﺘﻮرات ﻫﻨﮕﺎم اﺟﺮا ﻣﯽﺗﻮاﻧﯿﺪ از ﮐﻠﯿﺪ ﺗﺮﮐﯿﺒﯽ <code>Control + C</code> اﺳﺘﻔﺎده ﮐﻨﯿﺪ.
* ﻧﮑﺘﻪ ﭘﻨﺠﻢ: ﺑﺮای ﻧﻤﺎﯾﺶ دﺳﺘﻮرات ﺑﺼﻮرت ﺻﻔﺤﻪ ﺑﻪ ﺻﻔﺤﻪ از more | command اﺳﺘﻔﺎده ﮐﻨﯿﺪ.
* ﻧﮑﺘﻪ ﺷﺸﻢ: clip | command ﻣﯽﺗﻮاﻧﯿﺪ ﭘﺲ از اﺟﺮای دﺳﺘﻮر آن را ﮐﭙﯽ ﮐﻨﯿﺪ.
* ﻧﮑﺘﻪ ﻫﻔﺘﻢ: ذﺧﯿﺮه ﺧﺮوﺟﯽ ﯾﮏ دﺳﺘﻮر ﺑﺼﻮرت ﻓﺎﯾﻞ:
command > filename.txt
* ﻧﮑﺘﻪ ﻫﺸﺘﻢ: ﺑﺎ اﺳﺘﻔﺎده از ﮐﻠﯿﺪ ﺗﺮﮐﯿﺒﯽ <code>ALT + ENTER</code> ﻣﯽﺗﻮاﻧﯿﺪ ﻣﺤﯿﻂ ﺧﻂ ﻓﺮﻣﺎن را ﺣﺎﻟﺖ ﺗﻤﺎم ﺻﻔﺤﻪ ﺑﺒﺮﯾﺪ.
[[رده:آموزش کامل خط فرمان ویندوز]]
fljvtpd8g8m7axxi06ocjhj7o0bmzbp
135307
135305
2026-09-29T07:19:17Z
Fwldom
26269
/* دﺳﺘﻮرات cmd */
135307
wikitext
text/x-wiki
== مقدمه ==
=== وﯾﻨﺪوز ﭼﯿﺴﺖ؟ ===
ﻣﺎﯾﮑﺮوﺳﺎﻓﺖ وﯾﻨﺪوز (به اﻧﮕﻠﯿﺴﯽ: Microsoft Windows) ﯾﮏ ﺳﯿﺴﺘﻢﻋﺎﻣﻞ اﺳﺖ ﮐﻪ ﺗﻮﺳﻂ ﻣﺎﯾﮑﺮوﺳﺎﻓﺖ ﺗﻮﺳﻌﻪ ﯾﺎﻓﺘﻪ اﺳﺖ. وﯾﻨﺪوز از ﺳﺎل ۱۹۸۵ ﺗﺎﮐﻨﻮن ﺑﻪ ﺑﺎزار ﻋﺮﺿﻪ ﺷﺪه اﺳﺖ.
===cmd ﭼﯿﺴﺖ؟===
ﺳﯽامدی (ﺑﻪ اﻧﮕﻠﯿﺴﯽ: cmd) ﯾﮏ ﺧﻂ ﻓﺮﻣﺎن اﺳﺖ ﮐﻪ ﻣﺨﻔﻒ command Prompt اﺳﺖ. ﺧﻂ ﻓﺮﻣﺎن در ﻣﻘﺎﯾﺴﻪ ﺑﺎ راﺑﻂ ﮐﺎرﺑﺮی ﮔﺮاﻓﯿﮑﯽ ﻣﺤﯿﻄﯽ ﺑﯽروح دارد. ﺧﻂ ﻓﺮﻣﺎن در واﻗﻊ ﻣﺤﯿﻄﯽ اﺳﺖ ﮐﻪ در آن دﺳﺘﻮرات ﺑﻪ ﺻﻮرت ﻣﺘﻨﯽ ﺑﻪ ﮐﺎﻣﭙﯿﻮﺗﺮ داده ﻣﯽﺷﻮد. ﺧﻂ ﻓﺮﻣﺎن در ﺳﯿﺴﺘﻢﻋﺎﻣﻞﻫﺎﯾﯽ ﻣﺎﻧﻨﺪ وﯾﻨﺪوز، ﻟﯿﻨﻮﮐﺲ و ... ﺑﺼﻮرت ﯾﮏ ﻧﺮم اﻓﺰار اراﺋﻪ ﻣﯽﺷﻮد.
نکته خط فرمان ویندوز (سیامدی) یک CLI است در ادامه با CLI بیشتر آشنا میشویم.
===CLI چیست ؟===
Command Line Interface یا رابط خط فرمان به شکل مخفف CLI
یک روش تعامل با کامپیوتر یا سیستم عامل است که از طریق وارد کردن دستورات متنی انجام میپذیرد.
===GUI چیست ؟===
GUI مخفف Graphical User Interface به معنای رابط کاربری گرافیکی است. در مقابل CLI که به صورت متنی است، GUI به کاربر اجازه میدهد تا از طریق عناصر گرافیکی مانند دکمهها، منوها، صفحهها، تعامل کند.
===اجرای ﺧﻂ ﻓﺮﻣﺎن وﯾﻨﺪوز===
ﺑﺎ ﻧﮕﻪ داﺷﺘﻦ ﮐﻠﯿﺪﻫﺎی win + R ⊞ ﻣﯽﺗﻮاﻧﯿﺪ وﯾﻨﺪوز ران (Run) را ﺑﺎز ﮐﺮده و ﺳﭙﺲ ﺑﺎ ﺗﺎﯾﭗ cmd و ﻓﺸﺮدن ﮐﻠﯿﺪ اﯾﻨﺘﺮ (Enter) ﺧﻂ ﻓﺮﻣﺎن وﯾﻨﺪوز را ﺑﺎز ﮐﻨﯿﺪ.<br>
ﻫﻤﭽﻨﯿﻦ ﻧﯿﺰ ﻣﯽﺗﻮاﻧﯿﺪ ﺑﺎ ﺟﺴﺘﺠﻮ ﮐﻠﻤﻪ cmd آن را ﭘﯿﺪا و ﺑﺎز ﮐﻨﯿﺪ.
===ﺳﺎﺧﺘﺎر دﺳﺘﻮرات در ﺧﻂ ﻓﺮﻣﺎن وﯾﻨﺪوز===
* ساختار دستورات cmd بصورت زیر است:
<code>Command (parameter) (switch)</code>
===ﭘﺎراﻣﺘﺮ ﭼﯿﺴﺖ؟===
ﭘﺎراﻣﺘﺮﻫﺎ در واﻗﻊ ورودیﻫﺎ ﯾﺎ ﻣﺘﻐﯿﺮﻫﺎ ﺗﺎﺑﻊ (ﻓﺎﻧﮑﺸﻦ)ﻫﺎ ﻫﺴﺘﻨﺪ؛ ﺑﻪ ﺑﯿﺎﻧﯽ ﺳﺎدهﺗﺮ ﭘﺎراﻣﺘﺮﻫﺎ ﻣﻘﺎدﯾﺮی ﻫﺴﺘﻨﺪ ﮐﻪ ﺑﻪ ﺗﻮاﺑﻊ ﯾﺎ دﺳﺘﻮرات ﺑﺮای اﺟﺮای ﻋﻤﻠﯿﺎت ﺧﺎﺻﯽ داده ﻣﯽﺷﻮد.
==دﺳﺘﻮرات ﭘﺎﯾﻪ ﺧﻂ ﻓﺮﻣﺎن وﯾﻨﺪوز==
===دﺳﺘﻮر cd===
اﯾﻦ دﺳﺘﻮر ﺑﺮای ﻋﻮض ﮐﺮدن داﯾﺮﮐﺘﻮری ﻓﻌﻠﯽ ﮐﻪ در آن ﻫﺴﺘﯿﺪ ﮐﺎرﺑﺮد و ﺑﺎ اﯾﻦ دﺳﺘﻮر ﻣﯽﺗﻮاﻧﯿﺪ داﯾﺮﮐﺘﻮری ﻓﻌﻠﯿﺘﻮن رو ﻋﻮض ﮐﻨﯿﺪ. ﻣﺎﻧﻨﺪ
<syntaxhighlight lang="batch">
cd FolderName
</syntaxhighlight>
* ﺑﺎ اﺳﺘﻔﺎده از
<syntaxhighlight lang="batch">
cd ../
</syntaxhighlight>
ﻣﯽﺗﻮاﻧﯿﺪ ﺑﻪ داﯾﺮﮐﺘﻮری قبلی ﺑﺮوﯾﺪ و ﺑﺎ اﺳﺘﻔﺎده از
<syntaxhighlight lang="batch">
cd /
</syntaxhighlight>
ﻣﯽﺗﻮاﻧﯿﺪ ﺑﻪ رﯾﺸﻪ (root) ﺑﺮﮔﺮدﯾﺪ.
* برای مثال
<syntaxhighlight lang="batch">
cd testfolder
</syntaxhighlight>
به دایرکتوری testfolder میرود.
===دﺳﺘﻮر dir===
دﺳﺘﻮر dir ﺑﺮای ﻧﻤﺎﯾﺶ ﻣﺤﺘﻮﯾﺎت داﯾﺮﮐﺘﻮری ﻓﻌﻠﯽ اﺳﺖ ﺑﺎ اﺳﺘﻔﺎده از دستور زیر:
<syntaxhighlight lang="batch">
dir /s
</syntaxhighlight>
ﻣﯽﺗﻮاﻧﯿﺪ ﻣﺤﺘﻮای داﯾﺮﮐﺘﻮری ﻓﻌﻠﯽ و ﺗﻤﺎﻣﯽ
داﯾﺮﮐﺘﻮریﻫﺎی زﯾﺮﯾﻦ آن را ﻧﻤﺎﯾﺶ دﻫﯿﺪ.
===دﺳﺘﻮر mkdir===
اﯾﻦ دﺳﺘﻮر ﺑﺮای اﯾﺠﺎد ﯾﮏ داﯾﺮﮐﺘﻮری (ﭘﻮﺷﻪ) ﺑﻪ ﮐﺎر ﻣﯽرود و ﯾﮏ ﭘﺎراﻣﺘﺮ ﻣﻬﻢ از ﺷﻤﺎ ﻣﯽﮔﯿﺮد ﮐﻪ آن ﻧﺎم ﭘﻮﺷﻪ است ﻣﺎﻧﻨﺪ:
<syntaxhighlight lang="batch">
md testfoldername
</syntaxhighlight>
ﻧﮑﺘﻪ: دﺳﺘﻮرات md و mkdir ﺑﺎ ﻫﻢ ﻓﺮﻗﯽ ﻧﺪارﻧﺪ. ﻧﯿﺰ ﺑﻬﺘﺮ اﺳﺖ ﻧﺎم پوﺷﻪ ﺑﯿﻦ "" ﻗﺮار دﻫﯿﺪ.
===دﺳﺘﻮر ren===
اﯾﻦ دﺳﺘﻮر ﺑﺮای ﻋﻮض ﮐﺮدن ﻧﺎم ﭘﻮﺷﻪﻫﺎ ﯾﺎ ﻓﺎﯾﻞﻫﺎ اﺳﺘﻔﺎده ﻣﯽﺷﻮد. ﻣﺎﻧﻨﺪ:
<syntaxhighlight lang="batch">
ren FileName.extension newName.extension
ren Folder NewFolderName
</syntaxhighlight>
ﻧﮑﺘﻪ: ﺑﺮای ﺗﻐﯿﯿﺮ ﻧﺎم ﻓﺎﯾﻞﻫﺎ ﺣﺘما ﺑﺎﯾﺪ ﻧﺎم آن را ﺑﻬﺮاه ﭘﺴﻮﻧﺪ آن ﺑﻪ دﺳﺘﻮر داد و ﻫﻤﯿﻨﻄﻮر ﺑﺮای ﻧﺎم ﺟﺪﯾﺪ.
== دﺳﺘﻮرات cmd ==
===دﺳﺘﻮرات ﭘﺎﯾﻪ===
* color: ﺑﺮای ﻋﻮض ﮐﺮدن رﻧﮓ ﭘﺲ زﻣﯿﻨﻪ و ﻣﺘﻦ ﻣﺤﯿﻂ cmd ﺑﻪ ﮐﺎر ﻣﯽرود ﺑﺮای ﻣﺜﺎل: color 71
* exit: ﺑﺮای ﺧﺎرج ﺷﺪن از ﻣﺤﯿﻂ ﺧﻂ ﻓﺮﻣﺎن اﺳﺘﻔﺎده ﻣﯽﺷﻮد.
* help: راﻫﻨﻤﺎﯾﯽ در ﻣﻮرد ﺧﻂ ﻓﺮﻣﺎن ﻧﻤﺎﯾﺶ ﻣﯽدﻫﺪ.
* ver: ﻧﺴﺨﻪ وﯾﻨﺪوز را ﺑﻪ ﻧﻤﺎﯾﺶ ﻣﯽﮔﺬارد.
* whoami: ﻧﺎم ﮐﺎرﺑﺮی و ﻧﺎم راﯾﺎﻧﻪ را ﻧﻤﺎﯾﺶ ﻣﯽدﻫﺪ.
* systeminfo: اﻃﻼﻋﺎﺗﯽ در ﻣﻮرد راﯾﺎﻧﻪ را ﺑﻪ ﺷﻤﺎ ﻧﻤﺎﯾﺶ ﻣﯽدﻫﺪ ﻣﺎﻧﻨﺪ ﻧﺴﺨﻪ ﺳﯿﺴﺘﻢ ﻋﺎﻣﻞ و Bios و ﻧﻮع ﺳﯿﺴﺘﻢ.
* cls: برای پاک کردن صفحه کنسول استفاده میشود
==== مدیریت فایل ====
* md: ﺳﺎﺧﺖ ﭘﻮﺷﻪ ﯾﺎ ﻫﻤﺎن داﯾﺮﮐﺘﻮری ﺑﺮای ﻣﺜﺎل:
<syntaxhighlight lang="batch">
md testfolder
</syntaxhighlight>
ﻧﮑﺘﻪ: mkdir ﺑﺎ md ﻫﯿﭻ ﻓﺮﻗﯽ ﻧﺪارد.
* :rd | rmdir ﺑﺮای ﺣﺬف ﭘﻮﺷﻪ ﮐﺎرﺑﺮد دارد ﺑﺮای ﻣﺜﺎل:
<syntaxhighlight lang="batch">
rmdir foldertest
</syntaxhighlight>
* del: ﺑﺮای ﺣﺬف ﻓﺎﯾﻞﻫﺎ ﺑﺮای ﻣﺜﺎل:
<syntaxhighlight lang="batch">
del file.txt
</syntaxhighlight>
ﻓﺎﯾﻞ file.txt را ﺣﺬف ﻣﯽﮐﻨﺪ.
نکته: <code>del *.txt</code> ﺗﻤﺎم ﻓﺎﯾﻞﻫﺎی دارای ﭘﺴﻮﻧﺪ txt را ﺣﺬف ﻣﯽﮐﻨﺪ.
ﻧﮑﺘﻪ: ﺑﻄﻮر ﮐﻠﯽ * ﺑﻪ ﻣﻌﻨﺎی ﻫﻤﻪ اﺳﺖ.
* rename | ren: ﺑﺮای ﺗﻐﯿﯿﺮ ﻧﺎم ﻓﺎﯾﻞﻫﺎ ﺑﮑﺎر ﻣﯽرود.
<syntaxhighlight lang="batch">
ren name.txt newname.txt
</syntaxhighlight>
* tree: ﻣﺤﺘﻮﯾﺎت داﯾﺮﮐﺘﻮری ﻓﻌﻠﯽ را ﺑﺼﻮرت درﺧﺘﯽ ﻧﺸﺎن ﻣﯽدﻫﺪ.
* cp | copy : ﺑﺮای ﮐﭙﯽ ﻓﺎﯾﻞﻫﺎ اﺳﺘﻔﺎده میشود.
ﻣﯽﺷﻮد ﺑﺮای ﻣﺜﺎل:
<syntaxhighlight lang="batch">
copy directory/source.txt directorytarget/destination.txt
</syntaxhighlight>
فایل source.txt در directory را در directorytarget با نام destination.txt رونویسی (کپی) میکند.
* mv | move: همانند copy ﮐﺎر ﻣﯽﮐﻨﺪ ﻓﻘﻂ ﺑﺠﺎی ﮐﭙﯽ اﻧﺘﻘﺎل ﻣﯽدﻫﺪ.
==== ﺷﺒﮑﻪ ====
* ping: ﺑﺮای بررسی ﺗﺄﺧﯿﺮ (ﭘﯿﻨﮓ) از سایر سیستم ها در ﺷﺒﮑﻪ یا اینترنت ﮐﺎرﺑﺮد دارد.
<code>127.0.0.1 ping</code> از ﮐﺎرت ﺷﺒﮑﻪ کاربر ﭘﯿﻨﮓ ﻣﯽﮔﯿﺮد.
* tracert: ﺑﺮای ﺑﺮرﺳﯽ ﮐﺮدن ﺷﺒﮑﻪ و اﺗﺼﺎل اﯾﻨﺘﺮﻧﺖ در ﺣﺎﻟﯽ ﮐﻪ ﭘﯿﻨﮓ ﻓﻘﻂ اﺗﺼﺎل را ﺑﺮرﺳﯽ ﻣﯽﮐﻨﺪ (tracert) ﻣﺴﯿﺮ
اﺗﺼﺎل را ﺑﻪ ﺷﻤﺎ ﻧﺸﺎن ﻣﯽدﻫﺪ.
<syntaxhighlight lang="batch">
tracert (website or network location or IP Address)
</syntaxhighlight>
* ipconfig: ﻣﺸﺨﺼﺎت ﮐﺎرتﻫﺎی ﺷﺒﮑﻪ ﻣﺘﺼﻞ ﺑﻪ ﺳﯿﺴﺘﻢ را ﺑﻪ ﺷﻤﺎ ﻧﺸﺎن ﻣﯽدﻫﺪ.
* getmac: ﻣﮏ آدرس ﺷﻤﺎ را ﺑﻪ ﺷﻤﺎ ﻧﻤﺎﯾﺶ ﻣﯽدﻫﺪ.
* arp: ﺑﺮای ﻧﻤﺎﯾﺶ ورودیﻫﺎی ﻣﻮﺟﻮد در ﺣﺎﻓﻈﻪ ﭘﻨﻬﺎن ﭘﺮوﺗﮑﻞ Resolution Address اﺳﺘﻔﺎده ﻣﯽﺷﻮد.
arp -a : ﺗﻤﺎﻣﯽ ورودیﻫﺎی ﻣﻮﺟﻮد را ﻧﻤﺎﯾﺶ ﻣﯽدﻫﺪ.
=== اﺷﮑﺎل زداﯾﯽ و ﺗﻌﻤﯿﺮ ===
* chkdsk: ﺑﺮای ﺷﻨﺎﺳﺎﯾﯽ و اﺻﻼح ﺑﺮﺧﯽ از ﺧﻄﺎﻫﺎیﻫﺎی ﻫﺎرددﯾﺴﮏ اﺳﺘﻔﺎده ﻣﯽﺷﻮد. اﯾﻦ دﺳﺘﻮر در ﺗﻤﺎﻣﯽ ﻧﺴﺨﻪﻫﺎی وﯾﻨﺪوز ﻣﻮﺟﻮد ﻣﯽﺑﺎﺷﺪ ﺑﺮای ﻣﺜﺎل:
<syntaxhighlight lang="batch">
chkdsk /f d:
</syntaxhighlight>
ﭘﺎرﺗﯿﺸﻦ D را ﺑﺮرﺳﯽ و ﺧﻄﺎﻫﺎی آن را ﺑﺮﻃﺮف ﻣﯽﮐﻨﺪ.
* echo: ﺑﺮای ﭼﺎپ ﮐﺮدن ﯾﮏ ﻣﺘﻦ اﺳﺘﻔﺎده ﻣﯽﺷﻮد ﺑﺮای ﻣﺜﺎل:
<syntaxhighlight lang="batch">
echo hello
</syntaxhighlight>
ﻧﮑﺘﻪ: <code>echo off</code> اﻋﻼن داس را ﮐﻪ ﻗﺒﻞ ﻫﺮ دﺳﺘﻮر ﻣﻮﺟﻮد اﺳﺖ دﯾﮕﺮ ﺑﻪ ﻧﻤﺎﯾﺶ ﻧﻤﯽﮔﺬارد و آن را ﺣﺬف ﻣﯽﮐﻨﺪ.
== ﻧﮑﺎت cmd ==
* ﻧﮑﺘﻪ ﻧﺨﺴﺖ: ﻣﯽﺗﻮاﻧﯿﺪ دﺳﺘﻮرات cmd را داﺧﻞ ﯾﮏ ﻓﺎﯾﻞ ﺑﺎ ﭘﺴﻮﻧﺪ bat. ﺑﮕﺬارﯾﺪ و آن را ﭘﺸﺖ ﺳﺮ ﻫﻢ اﺟﺮا ﮐﻨﯿﺪ.
* نکته دوم: ﺑﺮای ﻧﻤﺎﯾﺶ راﻫﻨﻤﺎی ﻫﺮ دﺳﺘﻮر ﮐﺎﻓﯿﺴﺖ ﺑﻌﺪ از ﻧﺎم دﺳﺘﻮر ﯾﮏ ﻓﺎﺻﻠﻪ ﺳﭙﺲ <code>?/</code> ﺑﮕﺬارﯾﺪ.
* ﻧﮑﺘﻪ ﺳﻮم: ﺑﺮای اﺟﺮای ﭼﻨﺪ دﺳﺘﻮر ﺑﻪ ﻃﻮر ﻫﻤﺰﻣﺎن ﻣﯽﺗﻮاﻧﯿﺪ ﺑﯿﻦ ﻫﺮ دﺳﺘﻮر <code>&&</code> ﺑﮕﺬارﯾﺪ.
* ﻧﮑﺘﻪ ﭼﻬﺎرم: ﺑﺮای ﻟﻐﻮ دﺳﺘﻮرات ﻫﻨﮕﺎم اﺟﺮا ﻣﯽﺗﻮاﻧﯿﺪ از ﮐﻠﯿﺪ ﺗﺮﮐﯿﺒﯽ <code>Control + C</code> اﺳﺘﻔﺎده ﮐﻨﯿﺪ.
* ﻧﮑﺘﻪ ﭘﻨﺠﻢ: ﺑﺮای ﻧﻤﺎﯾﺶ دﺳﺘﻮرات ﺑﺼﻮرت ﺻﻔﺤﻪ ﺑﻪ ﺻﻔﺤﻪ از more | command اﺳﺘﻔﺎده ﮐﻨﯿﺪ.
* ﻧﮑﺘﻪ ﺷﺸﻢ: clip | command ﻣﯽﺗﻮاﻧﯿﺪ ﭘﺲ از اﺟﺮای دﺳﺘﻮر آن را ﮐﭙﯽ ﮐﻨﯿﺪ.
* ﻧﮑﺘﻪ ﻫﻔﺘﻢ: ذﺧﯿﺮه ﺧﺮوﺟﯽ ﯾﮏ دﺳﺘﻮر ﺑﺼﻮرت ﻓﺎﯾﻞ:
command > filename.txt
* ﻧﮑﺘﻪ ﻫﺸﺘﻢ: ﺑﺎ اﺳﺘﻔﺎده از ﮐﻠﯿﺪ ﺗﺮﮐﯿﺒﯽ <code>ALT + ENTER</code> ﻣﯽﺗﻮاﻧﯿﺪ ﻣﺤﯿﻂ ﺧﻂ ﻓﺮﻣﺎن را ﺣﺎﻟﺖ ﺗﻤﺎم ﺻﻔﺤﻪ ﺑﺒﺮﯾﺪ.
[[رده:آموزش کامل خط فرمان ویندوز]]
mda87vj2lr0tjvl18tyu7aeshpfslyl
مبانی شبکههای کامپیوتری و سختافزار
0
39181
135306
128952
2026-09-29T07:15:26Z
Fwldom
26269
/* درباره کتاب */
135306
wikitext
text/x-wiki
{{وضعیت|100%}}
== درباره کتاب ==
این کتاب نخست به سوی مفاهیم اولیه شبکه میرود (فصل اول)
سپس سختافزار رایانه را در فصل دوم مورد بررسی قرار میدهد.
در فصل سوم با سختافزار و تجهیزات ارتباطی شبکه مثل سوئیچ یا روتر یا هاب آشنا میشویم.
در فصل چهارم به صورت مقدماتی با کابلکشی شبکههای کامپیوتری آشنا شده و در آن مهارت پیدا میکنیم مثل سوکت زدن کابل شبکه.
در فصل پنجم سیستمعاملهای شبکه را معرفی میکنیم.
در فصل ششم ایجاد و پیوستن به workgroup و homegroup را یاد میگیریم.
در فصل هفتم نرمافزارهای کاربردی شبکه مثل nss آشنا و کمی در آن مهارت پیدا میکنیم.
در فصل هشتم به معرفی اجمالی شبکههای بیسیم میپردازیم.
در فصل نهم یاد میگیریم چطور ضروریات امنیتی را در شبکه پیادهسازی کنیم.
در فصل دهم چند شبکه اطلاعاتی در ایران و جهان معرفی میشود.
فصل یازدهم لایههای مدل ارتباطی osi و tcp/IP رو موشکافی میکنیم.
در پیوست اضافه نخست اگر قرار باشد مطلب جدیدی به دور از فصلها قرار گیرد قرار میگیرد.
== فهرست ==
{{مرحله}}
=== فصل نخست [[/مفاهیم شبکه مقدماتی/]] [[پرونده:100%.svg]] ===
=== فصل دوم [[/مبانی سختافزار رایانه/]] [[پرونده:100%.svg]] ===
=== فصل سوم [[مبانی شبکههای کامپیوتری و سختافزار/سختافزارها و تجهیزات ارتباطی شبکه|سخت افزارها و تجهیزات ارتباطی شبکه]] [[پرونده:100%.svg]]===
=== فصل چهارم [[مبانی شبکههای کامپیوتری و سختافزار/کابلکشی شبکههای کامپیوتری|اتصالات و کابلکشی شبکه کامپیوتری]] [[پرونده:100%.svg]]===
=== فصل پنجم [[/معرفی اجمالی سیستمهای عامل شبکه/]] [[پرونده:100%.svg]] ===
=== فصل ششم [[/نصب و راهاندازی workgroup و homegroup/]] [[پرونده:100%.svg]]===
=== فصل هفتم [[/نرمافزارهای کاربردی در شبکه/]] [[پرونده:100%.svg]] ===
=== فصل هشتم [[/شبکههای بیسیم/]] [[پرونده:100%.svg]]===
=== فصل نهم [[/مبانی امنیت در شبکههای کامپیوتری/]] [[پرونده:100%.svg]]===
=== فصل دهم [[/نگاهی به شبکههای اطلاعاتی در جهان/]] [[پرونده:100%.svg]]===
=== فصل یازدهم [[/لایههای شبکههای کامپیوتری/]] [[پرونده:100%.svg]]===
=== پیوست اضافه نخست ===
* [[/پیوست/]]
=== پیام پایانی ===
[[رده:مبانی شبکههای کامپیوتری و سختافزار]]
erzs3juq0knkk9cggd6rala6zajrs8a
آموزش کامل خط فرمان ویندوز/شخصی سازی محیط خط فرمان
0
39223
135300
126404
2026-09-29T07:00:00Z
Fwldom
26269
135300
wikitext
text/x-wiki
{{ناوبری خودکار}}
== مقدمه ==
نرمافزار خط فرمان ویندوز (cmd)، قابلیتهای شخصیسازی دارند مانند بزرگ کردن متن و عوض کردن رنگ متن یا پس زمینه متن.
== بخش فونت و رنگ متن و پس زمینه متن ==
=== عوض کردن فونت متن خط فرمان ===
1- ابتدا روی نوار عنوان خط فرمان کلیک راست کرده و گزینه Properties را انتخاب میکنیم.
[[پرونده:Properties CmD.png|بندانگشتی|با کلیک بر روی نوار عنوان پنجره خط فرمان منوی نوار عنوان مشاهده میشود.]]
2- به تب "'''Font'''" بروید.<br>
3- فونت، اندازه و سایر تنظیمات دلخواه خود را انتخاب کنید. روی "'''OK'''" کلیک کنید.
[[رده:آموزش کامل خط فرمان ویندوز]]
[[پرونده:Tab-font.png|بندانگشتی|چپ|جایگزین=تب فونت|تب فونت از بالا سایز و نوع فونت را مشخص مینمایید]]
=== عوض کردن رنگ متن خط فرمان ===
1- روی نوار عنوان راست کلیک سپس بر روی Properties ضربه بزنید.<br>
2- به تب Colors بروید.<br>
3- بین گزینه های موجود Screen Text را انتخاب نمایید.
<br>
4- رنگ مورد نظر خود برای متن را انتخاب نمایید نیز میتوانید از کد RGB برای رنگ استفاده نمایید.
=== شفاف کردن پنجره خط فرمان ===
1- به مسیر Properties > Colors بروید.<br>
2- درصد Opacity را تغییر دهید.
=== عوض کردن رنگ پس زمینه خط فرمان ===
1- روی نوار عنوان راست کلیک سپس بر روی Properties ضربه بزنید.<br>
2- به تب Colors بروید.<br>
3- بین گزینه های موجود Screen Background را انتخاب نمایید.
<br>
4- رنگ مورد نظر خود برای پس زمینه پنجره خط فرمان را انتخاب نمایید نیز میتوانید از کد RGB برای رنگ استفاده نمایید.
m6ww6fpbsah4o0uxz6b4f3rh5dp26bd
آموزش کامل خط فرمان ویندوز/دستورات پیشرفته خط فرمان
0
39353
135308
126365
2026-09-29T07:20:48Z
Fwldom
26269
/* دستور ipconfig */
135308
wikitext
text/x-wiki
{{ناوبری خودکار}}
== دستور ipconfig ==
این دستور برای نمایش اطلاعات شبکه و پیکربندی آن است{{سخ}}
'''ipconfig /all''' : نمایش اطلاعات پیکربندی تمامی کانکشنهای شبکه، شامل آدرسهای IPv4 و IPv6T و Gateway و DNS.<br>
''' ipconfig /flushdns ''' : پاکسازی محتویات کَش DNS در سمت کلاینت.<br>
''' ipconfig /renew ''' : به روز رسانی و تمدید مجدد پیکربندی های DHCP سرور مبتنی بر IPv4 در سمت کلاینت.<br>
''' ipconfig /renew6 ''' : به روز رسانی و تمدید مجدد پیکربندی های DHCP سرور مبتنی بر IPv6 در سمت کلاینت.
<br>
اگر دستور ipconfig را بدون هیچ پارامتری در خط فرمان ویندوز وارد کنید اطلاعات پایه از تنظیمات IP و DNS و … را به شما نمایش میدهد.<br>
برای تمدید اعتبار آدرس IP توسط پروتکل DHCP میتوانید از دستور ipconfig با پارامتر /release و نام کارت شبکه مورد نظر خود استفاده کنید. <br>
مثلا برای تمدید اعتبار آدرس IP کارت شبکه Wireless دستور به شکل زیر نوشته میشود:
<syntaxhighlight lang="batch">
Ipconfig /release Wireless
</syntaxhighlight>
در دستور بالا مشخص شده تنظیمات کارت شبکه Wireless باید تمدید شود. برای تمدید آدرس IPv6 باید از پارامتر /release6 استفاده کنید. برای مثال:
<syntaxhighlight lang="batch">
Ipconfig /release6
</syntaxhighlight>
هنگامی که در یک سایت وارد میشوید DNS آن سایت در کش DNS سیستم شما برای ورود سریعتر مجدد و ذخیره میشود. اگر میخواهید فهرست این DNS ها را مشاهده کنید میتوانید از پارامتر <code>displaydns/</code> استفاده کنید.<br>
== دستور logoff ==
کاربر را از سیستم عامل خارج میکند.
== دستور tasklist ==
وظیفه های در حال اجرا در سیستم عامل را به نمایش میگذارد.
== دستور taskkill ==
taskkill /f /im [process name]
بجای Procces Name باید نام وظیفه در حال اجرا را بنویسید آن وظیفه را پایان میدهد.
== دستور systeminfo ==
اطلاعات سیستم را به نمایش میگذارد.
[[رده:آموزش کامل خط فرمان ویندوز]]
2ylpry04501jeymnyza2bzh312gsgpg
135309
135308
2026-09-29T07:21:27Z
Fwldom
26269
/* دستور taskkill */
135309
wikitext
text/x-wiki
{{ناوبری خودکار}}
== دستور ipconfig ==
این دستور برای نمایش اطلاعات شبکه و پیکربندی آن است{{سخ}}
'''ipconfig /all''' : نمایش اطلاعات پیکربندی تمامی کانکشنهای شبکه، شامل آدرسهای IPv4 و IPv6T و Gateway و DNS.<br>
''' ipconfig /flushdns ''' : پاکسازی محتویات کَش DNS در سمت کلاینت.<br>
''' ipconfig /renew ''' : به روز رسانی و تمدید مجدد پیکربندی های DHCP سرور مبتنی بر IPv4 در سمت کلاینت.<br>
''' ipconfig /renew6 ''' : به روز رسانی و تمدید مجدد پیکربندی های DHCP سرور مبتنی بر IPv6 در سمت کلاینت.
<br>
اگر دستور ipconfig را بدون هیچ پارامتری در خط فرمان ویندوز وارد کنید اطلاعات پایه از تنظیمات IP و DNS و … را به شما نمایش میدهد.<br>
برای تمدید اعتبار آدرس IP توسط پروتکل DHCP میتوانید از دستور ipconfig با پارامتر /release و نام کارت شبکه مورد نظر خود استفاده کنید. <br>
مثلا برای تمدید اعتبار آدرس IP کارت شبکه Wireless دستور به شکل زیر نوشته میشود:
<syntaxhighlight lang="batch">
Ipconfig /release Wireless
</syntaxhighlight>
در دستور بالا مشخص شده تنظیمات کارت شبکه Wireless باید تمدید شود. برای تمدید آدرس IPv6 باید از پارامتر /release6 استفاده کنید. برای مثال:
<syntaxhighlight lang="batch">
Ipconfig /release6
</syntaxhighlight>
هنگامی که در یک سایت وارد میشوید DNS آن سایت در کش DNS سیستم شما برای ورود سریعتر مجدد و ذخیره میشود. اگر میخواهید فهرست این DNS ها را مشاهده کنید میتوانید از پارامتر <code>displaydns/</code> استفاده کنید.<br>
== دستور logoff ==
کاربر را از سیستم عامل خارج میکند.
== دستور tasklist ==
وظیفه های در حال اجرا در سیستم عامل را به نمایش میگذارد.
== دستور taskkill ==
<syntaxhighlight lang="batch">
taskkill /f /im [process name]
</syntaxhighlight>
بجای <code>Procces Name</code> باید نام وظیفه در حال اجرا را بنویسید آن وظیفه را پایان میدهد.
== دستور systeminfo ==
اطلاعات سیستم را به نمایش میگذارد.
[[رده:آموزش کامل خط فرمان ویندوز]]
7qj2j009ir4cl8k83fhc0dv4ovd6eli
آموزش کامل خط فرمان ویندوز/سوییچها یا گزینهها برای دستورات خط فرمان
0
39513
135299
126321
2026-09-29T06:57:09Z
Fwldom
26269
135299
wikitext
text/x-wiki
{{ناوبری خودکار}}
==سوییچها یا گزینهها در دستورات خط فرمان==
سوییچها یا گزینهها (همچنین به نام آرگومان یا flag شناخته میشوند) در دستورات خط فرمان، پارامترهایی هستند که به شما امکان میدهند نحوه عملکرد دستور را تغییر دهید.
* ترکیب سوئیچ: برای دستور میتوانید از چند سوئیچ همزمان استفاده کنید.
برای مثال
<code>ls /s</code>
برای استفاده از سوییچ ها معمولا از / یا - استفاده میشود.
== مهمترین سوییچها در دستورات پرکاربرد ویندوز ==
در ادامه، به تعدادی از دستورات پرکاربرد ویندوز به همراه مهمترین سوییچهای آنها اشاره میکنیم:
===دستور <code>dir</code>:===
* <code>a/</code>: نمایش همه فایلها، شامل فایلهای مخفی
* <code>w/</code>: نمایش عریض لیست فایلها
* <code>s/</code>: نمایش محتویات دایرکتوریها به صورت بازگشتی
===دستور <code>cd</code>:===
* <code>..</code>: رفتن به یک سطح بالاتر در سلسله مراتب دایرکتوریها
===دستور <code>copy</code>:===
* <code>y/</code>: عدم پرسش قبل از بازنویسی فایلهای موجود
* <code>v/</code>: نمایش جزئیات عملیات کپی
* <code>b/</code>: کپی کردن فایلها به صورت دودویی (باینری)
===دستور <code>move</code>:===
* <code>y/</code>: عدم پرسش قبل از بازنویسی فایلهای موجود
* <code>v/</code>: نمایش جزئیات عملیات جابجایی
===دستور <code>del</code>:===
* <code>q/</code>: حذف بدون پرسش
* <code>s/</code>: حذف دایرکتوری به صورت بازگشتی
* <code>f/</code>: حذف اجباری فایلها بدون پرسش
===دستور <code>mkdir</code>:===
* <code>p/</code>: ایجاد دایرکتوریهای پدر به صورت بازگشتی
===دستور <code>ping</code>:===
* <code>t/</code>: ارسال مداوم بستههای ping تا زمانی که کاربر دستور را متوقف کند
* <code>a/</code>: نمایش آدرس IP به جای نام میزبان
===دستور <code>ipconfig</code>:===
* <code>all/</code>: نمایش اطلاعات کامل پیکربندی شبکه
===دستور <code>netstat</code>:===
* <code>a/</code>: نمایش همه اتصالات شبکه
* <code>n/</code>: نمایش نامهای میزبان به جای آدرسهای IP
'''نکته:''' این فقط لیست مختصری از سوییچهای پرکاربرد در دستورات ویندوز است. برای مشاهده لیست کامل سوییچها و نحوه استفاده از آنها، میتوانید از دستور <code>?/</code> بعد از نام دستور استفاده کنید. مثلا : <code>?/ ls</code>
'''مثال:'''
<code>dir /a /w</code>
این دستور تمام فایلها (شامل فایلهای مخفی) را به صورت عریض نمایش میدهد.
[[رده:آموزش کامل خط فرمان ویندوز]]
mac7tn7zcv4rqvvz8jnmjst699m4184
آموزش کامل خط فرمان ویندوز/آشنایی با پاورشل
0
39515
135310
126530
2026-09-29T07:25:32Z
Fwldom
26269
135310
wikitext
text/x-wiki
{{ناوبری خودکار}}
==مقدمه==
پاورشل یک رابط خط فرمان و زبان برنامهنویسی مبتنی بر .NET است که توسط شرکت مایکروسافت توسعه یافته است. این ابزار قدرتمند به شما امکان میدهد وظایف مختلفی را در سیستمعامل ویندوز و سایر سیستمعاملها به صورت خودکار انجام دهید.
==ویژگیهای کلیدی==
''رابط خط فرمان'': پاورشل به شما امکان میدهد دستورات را به صورت خطی تایپ و اجرا کنید.<br>
''زبان برنامهنویسی'': پاورشل امکان نوشتن اسکریپتهای پیچیده برای خودکارسازی وظایف را فراهم میکند.<br>
''دسترسی به WMI و COM'': پاورشل به شما امکان میدهد به اطلاعات ویندوز و سایر سیستمعاملها از طریق WMI و COM دسترسی داشته باشید.<br>
''قابلیت توسعه'': پاورشل با استفاده از ماژولها و اسکریپتها قابلتوسعه است.<br>
==کاربردها==
مدیریت سیستم: پاورشل برای مدیریت سرورها، رایانههای شخصی، و سایر دستگاهها مورد استفاده قرار میگیرد.<br>
اتوماسیون وظایف: پاورشل برای خودکارسازی وظایف تکراری مانند نصب نرمافزار، پیکربندی سیستم، و مدیریت شبکه مورد استفاده قرار میگیرد.<br>
تجزیه و تحلیل دادهها: پاورشل برای تجزیه و تحلیل دادهها از منابع مختلف مورد استفاده قرار میگیرد.<br>
توسعه نرمافزار: پاورشل برای توسعه نرمافزارهای کاربردی مورد استفاده قرار میگیرد.<br>
==مزایای استفاده از پاورشل==
قدرتمند: پاورشل ابزاری قدرتمند برای انجام وظایف پیچیده است.<br>
انعطافپذیر: پاورشل برای طیف وسیعی از وظایف قابلاستفاده است.
آسان برای یادگیری: پاورشل از دستورات و نحو مشابه زبانهای برنامهنویسی دیگر مانند C# استفاده میکند.<br>
رایگان: پاورشل یک ابزار رایگان و منبعباز است.<br>
==شروع کار با پاورشل==
نصب: پاورشل به صورت پیشفرض در ویندوز 10 و 11 نصب شده است. برای نصب پاورشل در نسخههای قبلی ویندوز، میتوانید به وبسایت مایکروسافت مراجعه کنید.<br>
یادگیری: منابع آموزشی زیادی برای یادگیری پاورشل وجود دارد، از جمله کتابها، مقالات، وبینارها و دورههای آنلاین.<br>
تمرین: بهترین راه برای یادگیری پاورشل، تمرین و استفاده از آن برای انجام وظایف مختلف است.<br>
==مثالهایی از کاربردهای پاورشل==
نصب نرمافزار: میتوانید از پاورشل برای نصب نرمافزار بر روی چندین رایانه به صورت خودکار استفاده کنید.<br>
پیکربندی سیستم: میتوانید از پاورشل برای پیکربندی تنظیمات سیستم، مانند تنظیمات دیواره آتش ویندوز، به صورت خودکار استفاده کنید.<br>
مدیریت شبکه: میتوانید از پاورشل برای مدیریت شبکه، مانند ایجاد و حذف کاربران، به صورت خودکار استفاده کنید.<br>
تجزیه و تحلیل دادهها: میتوانید از پاورشل برای تجزیه و تحلیل دادهها از منابع مختلف، مانند فایلهای CSV و پایگاههای داده، استفاده کنید.<br>
توسعه نرمافزار: میتوانید از پاورشل برای توسعه نرمافزارهای کاربردی، مانند ابزارهای مدیریت سیستم و اسکریپتهای اتوماسیون، استفاده کنید.
<br>
1.دریافت اطلاعات سیستم:
علاوه بر دستور Get-ComputerInfo، میتوانید از دستورات زیر برای دریافت اطلاعات جزئیتر در مورد بخشهای مختلف سیستم خود استفاده کنید:
* اطلاعات مربوط به شبکه:
<syntaxhighlight lang="powershell">
Get-NetAdapter
</syntaxhighlight>
* اطلاعات مربوط به دیسکها:
<syntaxhighlight lang="powershell">
Get-Disk
</syntaxhighlight>
2.مدیریت فایلها:
علاوه بر دستورات Copy-Item و Move-Item، میتوانید از دستورات زیر برای مدیریت فایلها و دایرکتوریها استفاده کنید:
*ایجاد دایرکتوری جدید:
<syntaxhighlight lang="powershell">
New-Item -Path C:\NewDirectory -ItemType Directory
</syntaxhighlight>
* حذف دایرکتوری:
<syntaxhighlight lang="powershell">
Remove-Item -Path C:\NewDirectory -Recurse
</syntaxhighlight>
* تغییر نام فایل:
<syntaxhighlight lang="powershell">
Rename-Item -Path C:\file.txt -NewName
NewFile.txt
</syntaxhighlight>
* جستجو برای فایلها:
<syntaxhighlight lang="powershell">
Get-ChildItem -Path C:\ -Filter *.txt -Recurse
</syntaxhighlight>
3.مدیریت فرآیندها:
علاوه بر دستورات Get-Process، Start-Process و Stop-Process، میتوانید از دستورات زیر برای مدیریت فرآیندها استفاده کنید:
* مشاهده جزئیات بیشتر مربوط به یک فرآیند:
<syntaxhighlight lang="powershell">
Get-Process -Name notepad.exe | Select-Object - Property *
</syntaxhighlight>
* تغییر اولویت یک فرآیند:
<syntaxhighlight lang="powershell">
Set-Priority -Process notepad.exe -BelowNormal
</syntaxhighlight>
* متوقف کردن تمام فرآیندهای مربوط به یک برنامه:
<syntaxhighlight lang="powershell">
Stop-Process -Name notepad.exe -Force
</syntaxhighlight>
4.مدیریت خدمات:
علاوه بر دستورات Get-Service، Start-Service و Stop-Service، میتوانید از دستورات زیر برای مدیریت خدمات استفاده کنید:
* تغییر نوع Startup یک سرویس:
<syntaxhighlight lang="powershell">
Set-Service -Name w3svc -StartupType Automatic
</syntaxhighlight>
* فعال کردن یک سرویس:
Enable-Service -Name w3svc
</syntaxhighlight>
* غیرفعال کردن یک سرویس:
<syntaxhighlight lang="powershell">
Disable-Service -Name w3svc
</syntaxhighlight>
[[رده:آموزش کامل خط فرمان ویندوز]]
9fp7xolxicrq3scjzv2vy83uh94usen
135311
135310
2026-09-29T07:28:41Z
Fwldom
26269
135311
wikitext
text/x-wiki
{{ناوبری خودکار}}
==مقدمه==
پاورشل یک رابط خط فرمان و زبان برنامهنویسی مبتنی بر NET. است که توسط شرکت مایکروسافت توسعه یافته است. این ابزار قدرتمند به شما امکان میدهد وظایف مختلفی را در سیستمعامل ویندوز و سایر سیستمعاملها به صورت خودکار انجام دهید.
==ویژگیهای کلیدی==
''رابط خط فرمان'': پاورشل به شما امکان میدهد دستورات را به صورت خطی تایپ و اجرا کنید.<br>
''زبان برنامهنویسی'': پاورشل امکان نوشتن اسکریپتهای پیچیده برای خودکارسازی وظایف را فراهم میکند.<br>
''دسترسی به WMI و COM'': پاورشل به شما امکان میدهد به اطلاعات ویندوز و سایر سیستمعاملها از طریق WMI و COM دسترسی داشته باشید.<br>
''قابلیت توسعه'': پاورشل با استفاده از ماژولها و اسکریپتها قابلتوسعه است.<br>
==کاربردها==
مدیریت سیستم: پاورشل برای مدیریت سرورها، رایانههای شخصی، و سایر دستگاهها مورد استفاده قرار میگیرد.<br>
اتوماسیون وظایف: پاورشل برای خودکارسازی وظایف تکراری مانند نصب نرمافزار، پیکربندی سیستم، و مدیریت شبکه مورد استفاده قرار میگیرد.<br>
تجزیه و تحلیل دادهها: پاورشل برای تجزیه و تحلیل دادهها از منابع مختلف مورد استفاده قرار میگیرد.<br>
توسعه نرمافزار: پاورشل برای توسعه نرمافزارهای کاربردی مورد استفاده قرار میگیرد.<br>
==مزایای استفاده از پاورشل==
قدرتمند: پاورشل ابزاری قدرتمند برای انجام وظایف پیچیده است.
انعطافپذیر: پاورشل برای طیف وسیعی از وظایف قابلاستفاده است.
آسان برای یادگیری: پاورشل از دستورات و نحو مشابه زبانهای برنامهنویسی دیگر مانند C# استفاده میکند.
رایگان: پاورشل یک ابزار رایگان و منبعباز است.
==شروع کار با پاورشل==
نصب: پاورشل به صورت پیشفرض در ویندوز 10 و 11 نصب شده است. برای نصب پاورشل در نسخههای قبلی ویندوز، میتوانید به وبسایت مایکروسافت مراجعه کنید.<br>
یادگیری: منابع آموزشی زیادی برای یادگیری پاورشل وجود دارد، از جمله کتابها، مقالات، وبینارها و دورههای آنلاین.
تمرین: بهترین راه برای یادگیری پاورشل، تمرین و استفاده از آن برای انجام وظایف مختلف است.
==مثالهایی از کاربردهای پاورشل==
* نصب نرمافزار: میتوانید از پاورشل برای نصب نرمافزار بر روی چندین رایانه به صورت خودکار استفاده کنید.
* پیکربندی سیستم: میتوانید از پاورشل برای پیکربندی تنظیمات سیستم، مانند تنظیمات دیواره آتش ویندوز، به صورت خودکار استفاده کنید.
* مدیریت شبکه: میتوانید از پاورشل برای مدیریت شبکه، مانند ایجاد و حذف کاربران، به صورت خودکار استفاده کنید.
* تجزیه و تحلیل دادهها: میتوانید از پاورشل برای تجزیه و تحلیل دادهها از منابع مختلف، مانند فایلهای CSV و پایگاههای داده، استفاده کنید.
* توسعه نرمافزار: میتوانید از پاورشل برای توسعه نرمافزارهای کاربردی، مانند ابزارهای مدیریت سیستم و اسکریپتهای اتوماسیون، استفاده کنید.
===دریافت اطلاعات سیستم ===
علاوه بر دستور Get-ComputerInfo، میتوانید از دستورات زیر برای دریافت اطلاعات جزئیتر در مورد بخشهای مختلف سیستم خود استفاده کنید:
* اطلاعات مربوط به شبکه:
<syntaxhighlight lang="powershell">
Get-NetAdapter
</syntaxhighlight>
* اطلاعات مربوط به دیسکها:
<syntaxhighlight lang="powershell">
Get-Disk
</syntaxhighlight>
=== مدیریت فایلها: ===
علاوه بر دستورات Copy-Item و Move-Item، میتوانید از دستورات زیر برای مدیریت فایلها و دایرکتوریها استفاده کنید:
*ایجاد دایرکتوری جدید:
<syntaxhighlight lang="powershell">
New-Item -Path C:\NewDirectory -ItemType Directory
</syntaxhighlight>
* حذف دایرکتوری:
<syntaxhighlight lang="powershell">
Remove-Item -Path C:\NewDirectory -Recurse
</syntaxhighlight>
* تغییر نام فایل:
<syntaxhighlight lang="powershell">
Rename-Item -Path C:\file.txt -NewName
NewFile.txt
</syntaxhighlight>
* جستجو برای فایلها:
<syntaxhighlight lang="powershell">
Get-ChildItem -Path C:\ -Filter *.txt -Recurse
</syntaxhighlight>
=== مدیریت فرآیندها ===
علاوه بر دستورات Get-Process، Start-Process و Stop-Process، میتوانید از دستورات زیر برای مدیریت فرآیندها استفاده کنید:
* مشاهده جزئیات بیشتر مربوط به یک فرآیند:
<syntaxhighlight lang="powershell">
Get-Process -Name notepad.exe | Select-Object - Property *
</syntaxhighlight>
* تغییر اولویت یک فرآیند:
<syntaxhighlight lang="powershell">
Set-Priority -Process notepad.exe -BelowNormal
</syntaxhighlight>
* متوقف کردن تمام فرآیندهای مربوط به یک برنامه:
<syntaxhighlight lang="powershell">
Stop-Process -Name notepad.exe -Force
</syntaxhighlight>
=== مدیریت خدمات ===
علاوه بر دستورات Get-Service، Start-Service و Stop-Service، میتوانید از دستورات زیر برای مدیریت خدمات استفاده کنید:
* تغییر نوع Startup یک سرویس:
<syntaxhighlight lang="powershell">
Set-Service -Name w3svc -StartupType Automatic
</syntaxhighlight>
* فعال کردن یک سرویس:
<syntaxhighlight lang="powershell">
Enable-Service -Name w3svc
</syntaxhighlight>
* غیرفعال کردن یک سرویس:
<syntaxhighlight lang="powershell">
Disable-Service -Name w3svc
</syntaxhighlight>
[[رده:آموزش کامل خط فرمان ویندوز]]
dwk3g9wh3xpsqjemh6rjb21i73s4ooc
زبان برنامهنویسی گو
0
39985
135327
135044
2026-09-29T08:35:44Z
Fwldom
26269
اصلاح ارقام، اصلاح فاصلهٔ مجازی، اصلاح نویسههای عربی
135327
wikitext
text/x-wiki
{{وضعیت|25%}}
{{در دست ویرایش ۲|ماه=می|روز=۱۲|سال=۲۰۲۷}}
== دربارهٔ کتاب ==
این کتاب به آموزش جامع و گامبهگام زبان برنامهنویسی '''گو''' (به انگلیسی: ''Go'') میپردازد. زبان برنامهنویسی گو که توسط شرکت گوگل توسعه یافته است، به دلیل سادگی، سرعت بالا و پشتیبانی قوی از همزمانی (Concurrency) بهسرعت به یکی از زبانهای محبوب در حوزهٔ توسعهٔ نرمافزار، بهویژه در زمینهٔ سامانههای مقیاسپذیر و برنامههای تحت وب، تبدیل شده است.
این کتاب با زبانی روان و آموزشی تهیه شده و تلاش شده است تا علاوه بر بیان مفاهیم نظری، نمونهکدهای کاربردی و مثالهای عملی نیز ارائه گردد. هدف از نگارش این اثر آن است که خوانندگان با مفاهیم پایه تا مباحث پیشرفتهٔ این زبان آشنا شوند و توانایی استفادهٔ عملی از آن را در پروژههای مختلف به دست آورند.
مطالعهٔ این کتاب به علاقهمندان برنامهنویسی، دانشجویان، و همچنین برنامهنویسان حرفهای توصیه میشود که قصد دارند زبان گو را بهعنوان ابزاری قدرتمند برای توسعهٔ نرمافزار بیاموزند و در عمل بهکار گیرند.
== فهرست ==
{{Stages}}
<!--
* [[پرونده:00%.svg]]
* [[پرونده:25%.svg]]
* [[پرونده:50%.svg]]
* [[پرونده:75%.svg]]
* [[پرونده:100 percent.svg]]
-->
=== فصل نخست [[پرونده:100 percent.svg]] ===
* [[زبان برنامهنویسی گو/مقدمه|مقدمه]] [[پرونده:100 percent.svg]]
* [[زبان برنامهنویسی گو/اولین برنامه|اولین برنامه و اجرای آن]] [[پرونده:100 percent.svg]]
* [[زبان برنامهنویسی گو/ساختارکد|ساختار کد زبان برنامه نویسی گو]] [[پرونده:100 percent.svg]]
* [[زبان برنامهنویسی گو/عناصر لغوی|عناصر لغوی ]] [[پرونده:100 percent.svg]]
=== فصل ۲: مبانی[[پرونده:100 percent.svg]]===
* [[زبان برنامهنویسی گو/متغیرها|متغیرها]] [[پرونده:100 percent.svg]]
* [[زبان برنامهنویسی گو/ثابتها|ثابتها]] [[پرونده:100 percent.svg]]
* [[زبان برنامهنویسی گو/تایپها (نوعها)|تایپها (نوعها)]] [[پرونده:100 percent.svg]]
=== فصل ۳: شرطها و بلوکها [[پرونده:100 percent.svg]] ===
* [[زبان برنامهنویسی گو/بلوکهای کد|بلوکهای کد]] [[پرونده:100 percent.svg]]
* [[زبان برنامهنویسی گو/عملگرها و عبارات|عملگرها و عبارات]] [[پرونده:100 percent.svg]]
* [[زبان برنامهنویسی گو/شرطها if , else , switch|شرطها در گو]] [[پرونده:100 percent.svg]]
=== فصل ۴: ساختارهای دادهای پایه آرایهها [[پرونده:50 percent.svg]] ===
*[[زبان برنامهنویسی گو/اسلایسها|اسلایسها (Slices)]] [[پرونده:100 percent.svg]]
*[[زبان برنامهنویسی گو/نقشهها (Maps)|نقشهها (Maps)]] [[پرونده:100 percent.svg]]
*[[زبان برنامهنویسی گو/ساختارها (Structs)|ساختارها (Structs)]] [[پرونده:00 percent.svg]]
*[[زبان برنامهنویسی گو/اشارهگرها (Pointers)|اشارهگرها (Pointers)]] [[پرونده:00 percent.svg]]
=== فصل ۵: توابع [[پرونده:100 percent.svg]] ===
* [[زبان برنامهنویسی گو/تعریف و استفاده از توابع|تعریف و استفاده از توابع]] [[پرونده:100 percent.svg]]
* [[زبان برنامهنویسی گو/آرگومانها و مقادیر بازگشتی|آرگومانها و مقادیر بازگشتی]] [[پرونده:100 percent.svg]]
* [[زبان برنامهنویسی گو/توابع ناشناس و توابع به عنوان مقادیر|توابع ناشناس و توابع به عنوان مقادیر]] [[پرونده:100 percent.svg]]
* [[زبان برنامهنویسی گو/متدها و دریافتکنندهها|متدها و دریافتکنندهها (Receivers)]] [[پرونده:100 percent.svg]]
=== فصل ۶: بستهها و ماژولها ===
* [[زبان برنامهنویسی گو/ساختار و نحوه استفاده از بستهها|ساختار و نحوه استفاده از بستهها (Packages)]] [[پرونده:100 percent.svg]]
* [[زبان برنامهنویسی گو/مدیریت وابستگیها با استفاده از ماژولها|مدیریت وابستگیها با استفاده از ماژولها (Modules)]] [[پرونده:00 percent.svg]]
* [[زبان برنامهنویسی گو/استفاده از بستههای استاندارد گو|استفاده از بستههای استاندارد Go]] [[پرونده:00 percent.svg]]
* [[زبان برنامهنویسی گو/ایجاد و استفاده از بستههای شخصیسازی شده|ایجاد و استفاده از بستههای شخصیسازی شده]] [[پرونده:00 percent.svg]]
=== فصل ۷: برنامهنویسی همزمان (Concurrency) ===
* [[زبان برنامهنویسی گو/مفاهیم همزمانی|مفاهیم همزمانی در Go]] [[پرونده:00 percent.svg]]
* [[زبان برنامهنویسی گو/گوروتینها|گوروتینها (Goroutines)]] [[پرونده:00 percent.svg]]
* [[زبان برنامهنویسی گو/کانالها|کانالها (Channels)]] [[پرونده:00 percent.svg]]
* [[زبان برنامهنویسی گو/الگوهای همزمانی|الگوهای پیشرفته همزمانی]] [[پرونده:00 percent.svg]]
=== فصل ۸: مدیریت خطا و تست [[پرونده:50 percent.svg]] ===
* [[زبان برنامهنویسی گو/مدیریت خطاها|مدیریت خطاها در Go]] [[پرونده:100 percent.svg]]
* [[زبان برنامهنویسی گو/اصول نوشتن کدها|اصول نوشتن کدهای ایمن]] [[پرونده:100 percent.svg]]
* [[زبان برنامهنویسی گو/تست واحد|تست واحد (Unit Testing)]] [[پرونده:00 percent.svg]]
* [[زبان برنامهنویسی گو/تست یکپارچگی|تست یکپارچگی (Integration Testing)]] [[پرونده:00 percent.svg]]
* [[زبان برنامهنویسی گو/ابزارهای تست|ابزارهای تست در Go]] [[پرونده:00 percent.svg]]
=== فصل ۹: برنامهنویسی پیشرفته در Go ===
* [[زبان برنامهنویسی گو/اینترفیسها و پلیمورفیسم|اینترفیسها و پلیمورفیسم]] [[پرونده:25 percent.svg]]
* [[زبان برنامهنویسی گو/بازتاب|بازتاب (Reflection)]] [[پرونده:25 percent.svg]]
* [[زبان برنامهنویسی گو/کار با فایلها و سیستمعامل|کار با فایلها و سیستمعامل]] [[پرونده:25 percent.svg]]
* [[زبان برنامهنویسی گو/برنامهنویسی شبکه|برنامهنویسی شبکه (Networking)]] [[پرونده:25 percent.svg]]
* [[زبان برنامهنویسی گو/کار با دیتابیسها|کار با دیتابیسها]] [[پرونده:25 percent.svg]]
=== فصل ۱۰: بهینهسازی و ابزارهای کاربردی ===
* بهینهسازی عملکرد و حافظه
* پروفایلینگ و دیباگینگ
* استفاده از ابزارهای توسعه Go
* مدیریت پروژههای بزرگ
=== فصل ۱۱: پروژههای کاربردی ===
* ساخت یک وبسرویس ساده
* ساخت یک ابزار خط فرمان (CLI)
* توسعه یک برنامه توزیعشده با Go
=== فصل ۱۲: منابع بیشتر و مسیرهای یادگیری [[پرونده:25 percent.svg]] ===
* [[زبان برنامهنویسی گو/منابع آموزشی آنلاین|منابع آموزشی آنلاین]] [[پرونده:100 percent.svg]]
* جامعههای برنامهنویسی Go [[پرونده:00 percent.svg]]
* پروژههای متنباز برای مشارکت [[پرونده:00 percent.svg]]
* پیوستها [[پرونده:00 percent.svg]]
* مرجع دستورات Go [[پرونده:00 percent.svg]]
* سوالات متداول [[پرونده:00 percent.svg]]
* [[زبان برنامهنویسی گو/حل تمرینها|حل تمرینها]] [[پرونده:50 percent.svg]]
[[رده:زبان برنامهنویسی گو]]
pl1ggwiqymdc493tpcf8vy8z3qubchv
135328
135327
2026-09-29T08:38:34Z
Fwldom
26269
/* فصل ۳: شرطها و بلوکها پرونده:100 percent.svg */
135328
wikitext
text/x-wiki
{{وضعیت|25%}}
{{در دست ویرایش ۲|ماه=می|روز=۱۲|سال=۲۰۲۷}}
== دربارهٔ کتاب ==
این کتاب به آموزش جامع و گامبهگام زبان برنامهنویسی '''گو''' (به انگلیسی: ''Go'') میپردازد. زبان برنامهنویسی گو که توسط شرکت گوگل توسعه یافته است، به دلیل سادگی، سرعت بالا و پشتیبانی قوی از همزمانی (Concurrency) بهسرعت به یکی از زبانهای محبوب در حوزهٔ توسعهٔ نرمافزار، بهویژه در زمینهٔ سامانههای مقیاسپذیر و برنامههای تحت وب، تبدیل شده است.
این کتاب با زبانی روان و آموزشی تهیه شده و تلاش شده است تا علاوه بر بیان مفاهیم نظری، نمونهکدهای کاربردی و مثالهای عملی نیز ارائه گردد. هدف از نگارش این اثر آن است که خوانندگان با مفاهیم پایه تا مباحث پیشرفتهٔ این زبان آشنا شوند و توانایی استفادهٔ عملی از آن را در پروژههای مختلف به دست آورند.
مطالعهٔ این کتاب به علاقهمندان برنامهنویسی، دانشجویان، و همچنین برنامهنویسان حرفهای توصیه میشود که قصد دارند زبان گو را بهعنوان ابزاری قدرتمند برای توسعهٔ نرمافزار بیاموزند و در عمل بهکار گیرند.
== فهرست ==
{{Stages}}
<!--
* [[پرونده:00%.svg]]
* [[پرونده:25%.svg]]
* [[پرونده:50%.svg]]
* [[پرونده:75%.svg]]
* [[پرونده:100 percent.svg]]
-->
=== فصل نخست [[پرونده:100 percent.svg]] ===
* [[زبان برنامهنویسی گو/مقدمه|مقدمه]] [[پرونده:100 percent.svg]]
* [[زبان برنامهنویسی گو/اولین برنامه|اولین برنامه و اجرای آن]] [[پرونده:100 percent.svg]]
* [[زبان برنامهنویسی گو/ساختارکد|ساختار کد زبان برنامه نویسی گو]] [[پرونده:100 percent.svg]]
* [[زبان برنامهنویسی گو/عناصر لغوی|عناصر لغوی ]] [[پرونده:100 percent.svg]]
=== فصل ۲: مبانی[[پرونده:100 percent.svg]]===
* [[زبان برنامهنویسی گو/متغیرها|متغیرها]] [[پرونده:100 percent.svg]]
* [[زبان برنامهنویسی گو/ثابتها|ثابتها]] [[پرونده:100 percent.svg]]
* [[زبان برنامهنویسی گو/تایپها (نوعها)|تایپها (نوعها)]] [[پرونده:100 percent.svg]]
=== فصل ۳: شرطها و بلوکها [[پرونده:100 percent.svg]] ===
* [[زبان برنامهنویسی گو/بلوکهای کد|بلوکهای کد]] [[پرونده:100 percent.svg]]
* [[زبان برنامهنویسی گو/عملگرها و عبارات|عملگرها و عبارات]] [[پرونده:100 percent.svg]]
* [[زبان برنامهنویسی گو/شرطها|شرطها در گو]] [[پرونده:100 percent.svg]]
=== فصل ۴: ساختارهای دادهای پایه آرایهها [[پرونده:50 percent.svg]] ===
*[[زبان برنامهنویسی گو/اسلایسها|اسلایسها (Slices)]] [[پرونده:100 percent.svg]]
*[[زبان برنامهنویسی گو/نقشهها (Maps)|نقشهها (Maps)]] [[پرونده:100 percent.svg]]
*[[زبان برنامهنویسی گو/ساختارها (Structs)|ساختارها (Structs)]] [[پرونده:00 percent.svg]]
*[[زبان برنامهنویسی گو/اشارهگرها (Pointers)|اشارهگرها (Pointers)]] [[پرونده:00 percent.svg]]
=== فصل ۵: توابع [[پرونده:100 percent.svg]] ===
* [[زبان برنامهنویسی گو/تعریف و استفاده از توابع|تعریف و استفاده از توابع]] [[پرونده:100 percent.svg]]
* [[زبان برنامهنویسی گو/آرگومانها و مقادیر بازگشتی|آرگومانها و مقادیر بازگشتی]] [[پرونده:100 percent.svg]]
* [[زبان برنامهنویسی گو/توابع ناشناس و توابع به عنوان مقادیر|توابع ناشناس و توابع به عنوان مقادیر]] [[پرونده:100 percent.svg]]
* [[زبان برنامهنویسی گو/متدها و دریافتکنندهها|متدها و دریافتکنندهها (Receivers)]] [[پرونده:100 percent.svg]]
=== فصل ۶: بستهها و ماژولها ===
* [[زبان برنامهنویسی گو/ساختار و نحوه استفاده از بستهها|ساختار و نحوه استفاده از بستهها (Packages)]] [[پرونده:100 percent.svg]]
* [[زبان برنامهنویسی گو/مدیریت وابستگیها با استفاده از ماژولها|مدیریت وابستگیها با استفاده از ماژولها (Modules)]] [[پرونده:00 percent.svg]]
* [[زبان برنامهنویسی گو/استفاده از بستههای استاندارد گو|استفاده از بستههای استاندارد Go]] [[پرونده:00 percent.svg]]
* [[زبان برنامهنویسی گو/ایجاد و استفاده از بستههای شخصیسازی شده|ایجاد و استفاده از بستههای شخصیسازی شده]] [[پرونده:00 percent.svg]]
=== فصل ۷: برنامهنویسی همزمان (Concurrency) ===
* [[زبان برنامهنویسی گو/مفاهیم همزمانی|مفاهیم همزمانی در Go]] [[پرونده:00 percent.svg]]
* [[زبان برنامهنویسی گو/گوروتینها|گوروتینها (Goroutines)]] [[پرونده:00 percent.svg]]
* [[زبان برنامهنویسی گو/کانالها|کانالها (Channels)]] [[پرونده:00 percent.svg]]
* [[زبان برنامهنویسی گو/الگوهای همزمانی|الگوهای پیشرفته همزمانی]] [[پرونده:00 percent.svg]]
=== فصل ۸: مدیریت خطا و تست [[پرونده:50 percent.svg]] ===
* [[زبان برنامهنویسی گو/مدیریت خطاها|مدیریت خطاها در Go]] [[پرونده:100 percent.svg]]
* [[زبان برنامهنویسی گو/اصول نوشتن کدها|اصول نوشتن کدهای ایمن]] [[پرونده:100 percent.svg]]
* [[زبان برنامهنویسی گو/تست واحد|تست واحد (Unit Testing)]] [[پرونده:00 percent.svg]]
* [[زبان برنامهنویسی گو/تست یکپارچگی|تست یکپارچگی (Integration Testing)]] [[پرونده:00 percent.svg]]
* [[زبان برنامهنویسی گو/ابزارهای تست|ابزارهای تست در Go]] [[پرونده:00 percent.svg]]
=== فصل ۹: برنامهنویسی پیشرفته در Go ===
* [[زبان برنامهنویسی گو/اینترفیسها و پلیمورفیسم|اینترفیسها و پلیمورفیسم]] [[پرونده:25 percent.svg]]
* [[زبان برنامهنویسی گو/بازتاب|بازتاب (Reflection)]] [[پرونده:25 percent.svg]]
* [[زبان برنامهنویسی گو/کار با فایلها و سیستمعامل|کار با فایلها و سیستمعامل]] [[پرونده:25 percent.svg]]
* [[زبان برنامهنویسی گو/برنامهنویسی شبکه|برنامهنویسی شبکه (Networking)]] [[پرونده:25 percent.svg]]
* [[زبان برنامهنویسی گو/کار با دیتابیسها|کار با دیتابیسها]] [[پرونده:25 percent.svg]]
=== فصل ۱۰: بهینهسازی و ابزارهای کاربردی ===
* بهینهسازی عملکرد و حافظه
* پروفایلینگ و دیباگینگ
* استفاده از ابزارهای توسعه Go
* مدیریت پروژههای بزرگ
=== فصل ۱۱: پروژههای کاربردی ===
* ساخت یک وبسرویس ساده
* ساخت یک ابزار خط فرمان (CLI)
* توسعه یک برنامه توزیعشده با Go
=== فصل ۱۲: منابع بیشتر و مسیرهای یادگیری [[پرونده:25 percent.svg]] ===
* [[زبان برنامهنویسی گو/منابع آموزشی آنلاین|منابع آموزشی آنلاین]] [[پرونده:100 percent.svg]]
* جامعههای برنامهنویسی Go [[پرونده:00 percent.svg]]
* پروژههای متنباز برای مشارکت [[پرونده:00 percent.svg]]
* پیوستها [[پرونده:00 percent.svg]]
* مرجع دستورات Go [[پرونده:00 percent.svg]]
* سوالات متداول [[پرونده:00 percent.svg]]
* [[زبان برنامهنویسی گو/حل تمرینها|حل تمرینها]] [[پرونده:50 percent.svg]]
[[رده:زبان برنامهنویسی گو]]
qb74gpvvflcrf1evd4u0gx5x2gphfyi
135339
135328
2026-09-29T08:59:24Z
Fwldom
26269
/* فصل ۳: شرطها و بلوکها پرونده:100 percent.svg */
135339
wikitext
text/x-wiki
{{وضعیت|25%}}
{{در دست ویرایش ۲|ماه=می|روز=۱۲|سال=۲۰۲۷}}
== دربارهٔ کتاب ==
این کتاب به آموزش جامع و گامبهگام زبان برنامهنویسی '''گو''' (به انگلیسی: ''Go'') میپردازد. زبان برنامهنویسی گو که توسط شرکت گوگل توسعه یافته است، به دلیل سادگی، سرعت بالا و پشتیبانی قوی از همزمانی (Concurrency) بهسرعت به یکی از زبانهای محبوب در حوزهٔ توسعهٔ نرمافزار، بهویژه در زمینهٔ سامانههای مقیاسپذیر و برنامههای تحت وب، تبدیل شده است.
این کتاب با زبانی روان و آموزشی تهیه شده و تلاش شده است تا علاوه بر بیان مفاهیم نظری، نمونهکدهای کاربردی و مثالهای عملی نیز ارائه گردد. هدف از نگارش این اثر آن است که خوانندگان با مفاهیم پایه تا مباحث پیشرفتهٔ این زبان آشنا شوند و توانایی استفادهٔ عملی از آن را در پروژههای مختلف به دست آورند.
مطالعهٔ این کتاب به علاقهمندان برنامهنویسی، دانشجویان، و همچنین برنامهنویسان حرفهای توصیه میشود که قصد دارند زبان گو را بهعنوان ابزاری قدرتمند برای توسعهٔ نرمافزار بیاموزند و در عمل بهکار گیرند.
== فهرست ==
{{Stages}}
<!--
* [[پرونده:00%.svg]]
* [[پرونده:25%.svg]]
* [[پرونده:50%.svg]]
* [[پرونده:75%.svg]]
* [[پرونده:100 percent.svg]]
-->
=== فصل نخست [[پرونده:100 percent.svg]] ===
* [[زبان برنامهنویسی گو/مقدمه|مقدمه]] [[پرونده:100 percent.svg]]
* [[زبان برنامهنویسی گو/اولین برنامه|اولین برنامه و اجرای آن]] [[پرونده:100 percent.svg]]
* [[زبان برنامهنویسی گو/ساختارکد|ساختار کد زبان برنامه نویسی گو]] [[پرونده:100 percent.svg]]
* [[زبان برنامهنویسی گو/عناصر لغوی|عناصر لغوی ]] [[پرونده:100 percent.svg]]
=== فصل ۲: مبانی[[پرونده:100 percent.svg]]===
* [[زبان برنامهنویسی گو/متغیرها|متغیرها]] [[پرونده:100 percent.svg]]
* [[زبان برنامهنویسی گو/ثابتها|ثابتها]] [[پرونده:100 percent.svg]]
* [[زبان برنامهنویسی گو/تایپها (نوعها)|تایپها (نوعها)]] [[پرونده:100 percent.svg]]
=== فصل ۳: شرطها و حلقهها [[پرونده:100 percent.svg]] ===
* [[زبان برنامهنویسی گو/بلوکهای کد|بلوکهای کد]] [[پرونده:100 percent.svg]]
* [[زبان برنامهنویسی گو/عملگرها و عبارات|عملگرها و عبارات]] [[پرونده:100 percent.svg]]
* [[زبان برنامهنویسی گو/شرطها|شرطها در گو]] [[پرونده:100 percent.svg]]
* [[زبان برنامه نویسی سی/حلقه do while و while|حلقه while]] [[پرونده:100 percent.svg]]
* [[زبان برنامه نویسی سی/حلقه for|حلقه for]][[پرونده:100 percent.svg]]
=== فصل ۴: ساختارهای دادهای پایه آرایهها [[پرونده:50 percent.svg]] ===
*[[زبان برنامهنویسی گو/اسلایسها|اسلایسها (Slices)]] [[پرونده:100 percent.svg]]
*[[زبان برنامهنویسی گو/نقشهها (Maps)|نقشهها (Maps)]] [[پرونده:100 percent.svg]]
*[[زبان برنامهنویسی گو/ساختارها (Structs)|ساختارها (Structs)]] [[پرونده:00 percent.svg]]
*[[زبان برنامهنویسی گو/اشارهگرها (Pointers)|اشارهگرها (Pointers)]] [[پرونده:00 percent.svg]]
=== فصل ۵: توابع [[پرونده:100 percent.svg]] ===
* [[زبان برنامهنویسی گو/تعریف و استفاده از توابع|تعریف و استفاده از توابع]] [[پرونده:100 percent.svg]]
* [[زبان برنامهنویسی گو/آرگومانها و مقادیر بازگشتی|آرگومانها و مقادیر بازگشتی]] [[پرونده:100 percent.svg]]
* [[زبان برنامهنویسی گو/توابع ناشناس و توابع به عنوان مقادیر|توابع ناشناس و توابع به عنوان مقادیر]] [[پرونده:100 percent.svg]]
* [[زبان برنامهنویسی گو/متدها و دریافتکنندهها|متدها و دریافتکنندهها (Receivers)]] [[پرونده:100 percent.svg]]
=== فصل ۶: بستهها و ماژولها ===
* [[زبان برنامهنویسی گو/ساختار و نحوه استفاده از بستهها|ساختار و نحوه استفاده از بستهها (Packages)]] [[پرونده:100 percent.svg]]
* [[زبان برنامهنویسی گو/مدیریت وابستگیها با استفاده از ماژولها|مدیریت وابستگیها با استفاده از ماژولها (Modules)]] [[پرونده:00 percent.svg]]
* [[زبان برنامهنویسی گو/استفاده از بستههای استاندارد گو|استفاده از بستههای استاندارد Go]] [[پرونده:00 percent.svg]]
* [[زبان برنامهنویسی گو/ایجاد و استفاده از بستههای شخصیسازی شده|ایجاد و استفاده از بستههای شخصیسازی شده]] [[پرونده:00 percent.svg]]
=== فصل ۷: برنامهنویسی همزمان (Concurrency) ===
* [[زبان برنامهنویسی گو/مفاهیم همزمانی|مفاهیم همزمانی در Go]] [[پرونده:00 percent.svg]]
* [[زبان برنامهنویسی گو/گوروتینها|گوروتینها (Goroutines)]] [[پرونده:00 percent.svg]]
* [[زبان برنامهنویسی گو/کانالها|کانالها (Channels)]] [[پرونده:00 percent.svg]]
* [[زبان برنامهنویسی گو/الگوهای همزمانی|الگوهای پیشرفته همزمانی]] [[پرونده:00 percent.svg]]
=== فصل ۸: مدیریت خطا و تست [[پرونده:50 percent.svg]] ===
* [[زبان برنامهنویسی گو/مدیریت خطاها|مدیریت خطاها در Go]] [[پرونده:100 percent.svg]]
* [[زبان برنامهنویسی گو/اصول نوشتن کدها|اصول نوشتن کدهای ایمن]] [[پرونده:100 percent.svg]]
* [[زبان برنامهنویسی گو/تست واحد|تست واحد (Unit Testing)]] [[پرونده:00 percent.svg]]
* [[زبان برنامهنویسی گو/تست یکپارچگی|تست یکپارچگی (Integration Testing)]] [[پرونده:00 percent.svg]]
* [[زبان برنامهنویسی گو/ابزارهای تست|ابزارهای تست در Go]] [[پرونده:00 percent.svg]]
=== فصل ۹: برنامهنویسی پیشرفته در Go ===
* [[زبان برنامهنویسی گو/اینترفیسها و پلیمورفیسم|اینترفیسها و پلیمورفیسم]] [[پرونده:25 percent.svg]]
* [[زبان برنامهنویسی گو/بازتاب|بازتاب (Reflection)]] [[پرونده:25 percent.svg]]
* [[زبان برنامهنویسی گو/کار با فایلها و سیستمعامل|کار با فایلها و سیستمعامل]] [[پرونده:25 percent.svg]]
* [[زبان برنامهنویسی گو/برنامهنویسی شبکه|برنامهنویسی شبکه (Networking)]] [[پرونده:25 percent.svg]]
* [[زبان برنامهنویسی گو/کار با دیتابیسها|کار با دیتابیسها]] [[پرونده:25 percent.svg]]
=== فصل ۱۰: بهینهسازی و ابزارهای کاربردی ===
* بهینهسازی عملکرد و حافظه
* پروفایلینگ و دیباگینگ
* استفاده از ابزارهای توسعه Go
* مدیریت پروژههای بزرگ
=== فصل ۱۱: پروژههای کاربردی ===
* ساخت یک وبسرویس ساده
* ساخت یک ابزار خط فرمان (CLI)
* توسعه یک برنامه توزیعشده با Go
=== فصل ۱۲: منابع بیشتر و مسیرهای یادگیری [[پرونده:25 percent.svg]] ===
* [[زبان برنامهنویسی گو/منابع آموزشی آنلاین|منابع آموزشی آنلاین]] [[پرونده:100 percent.svg]]
* جامعههای برنامهنویسی Go [[پرونده:00 percent.svg]]
* پروژههای متنباز برای مشارکت [[پرونده:00 percent.svg]]
* پیوستها [[پرونده:00 percent.svg]]
* مرجع دستورات Go [[پرونده:00 percent.svg]]
* سوالات متداول [[پرونده:00 percent.svg]]
* [[زبان برنامهنویسی گو/حل تمرینها|حل تمرینها]] [[پرونده:50 percent.svg]]
[[رده:زبان برنامهنویسی گو]]
qugp2z3uhtosaj7e0zzle5r3j44owye
135340
135339
2026-09-29T09:00:34Z
Fwldom
26269
/* فصل ۳: شرطها و حلقهها پرونده:100 percent.svg */
135340
wikitext
text/x-wiki
{{وضعیت|25%}}
{{در دست ویرایش ۲|ماه=می|روز=۱۲|سال=۲۰۲۷}}
== دربارهٔ کتاب ==
این کتاب به آموزش جامع و گامبهگام زبان برنامهنویسی '''گو''' (به انگلیسی: ''Go'') میپردازد. زبان برنامهنویسی گو که توسط شرکت گوگل توسعه یافته است، به دلیل سادگی، سرعت بالا و پشتیبانی قوی از همزمانی (Concurrency) بهسرعت به یکی از زبانهای محبوب در حوزهٔ توسعهٔ نرمافزار، بهویژه در زمینهٔ سامانههای مقیاسپذیر و برنامههای تحت وب، تبدیل شده است.
این کتاب با زبانی روان و آموزشی تهیه شده و تلاش شده است تا علاوه بر بیان مفاهیم نظری، نمونهکدهای کاربردی و مثالهای عملی نیز ارائه گردد. هدف از نگارش این اثر آن است که خوانندگان با مفاهیم پایه تا مباحث پیشرفتهٔ این زبان آشنا شوند و توانایی استفادهٔ عملی از آن را در پروژههای مختلف به دست آورند.
مطالعهٔ این کتاب به علاقهمندان برنامهنویسی، دانشجویان، و همچنین برنامهنویسان حرفهای توصیه میشود که قصد دارند زبان گو را بهعنوان ابزاری قدرتمند برای توسعهٔ نرمافزار بیاموزند و در عمل بهکار گیرند.
== فهرست ==
{{Stages}}
<!--
* [[پرونده:00%.svg]]
* [[پرونده:25%.svg]]
* [[پرونده:50%.svg]]
* [[پرونده:75%.svg]]
* [[پرونده:100 percent.svg]]
-->
=== فصل نخست [[پرونده:100 percent.svg]] ===
* [[زبان برنامهنویسی گو/مقدمه|مقدمه]] [[پرونده:100 percent.svg]]
* [[زبان برنامهنویسی گو/اولین برنامه|اولین برنامه و اجرای آن]] [[پرونده:100 percent.svg]]
* [[زبان برنامهنویسی گو/ساختارکد|ساختار کد زبان برنامه نویسی گو]] [[پرونده:100 percent.svg]]
* [[زبان برنامهنویسی گو/عناصر لغوی|عناصر لغوی ]] [[پرونده:100 percent.svg]]
=== فصل ۲: مبانی[[پرونده:100 percent.svg]]===
* [[زبان برنامهنویسی گو/متغیرها|متغیرها]] [[پرونده:100 percent.svg]]
* [[زبان برنامهنویسی گو/ثابتها|ثابتها]] [[پرونده:100 percent.svg]]
* [[زبان برنامهنویسی گو/تایپها (نوعها)|تایپها (نوعها)]] [[پرونده:100 percent.svg]]
=== فصل ۳: شرطها و حلقهها [[پرونده:100 percent.svg]] ===
* [[زبان برنامهنویسی گو/بلوکهای کد|بلوکهای کد]] [[پرونده:100 percent.svg]]
* [[زبان برنامهنویسی گو/عملگرها و عبارات|عملگرها و عبارات]] [[پرونده:100 percent.svg]]
* [[زبان برنامهنویسی گو/شرطها|شرطها در گو]] [[پرونده:100 percent.svg]]
* [[زبان برنامه نویسی گو/حلقهها|حلقهها]] [[پرونده:100 percent.svg]]
=== فصل ۴: ساختارهای دادهای پایه آرایهها [[پرونده:50 percent.svg]] ===
*[[زبان برنامهنویسی گو/اسلایسها|اسلایسها (Slices)]] [[پرونده:100 percent.svg]]
*[[زبان برنامهنویسی گو/نقشهها (Maps)|نقشهها (Maps)]] [[پرونده:100 percent.svg]]
*[[زبان برنامهنویسی گو/ساختارها (Structs)|ساختارها (Structs)]] [[پرونده:00 percent.svg]]
*[[زبان برنامهنویسی گو/اشارهگرها (Pointers)|اشارهگرها (Pointers)]] [[پرونده:00 percent.svg]]
=== فصل ۵: توابع [[پرونده:100 percent.svg]] ===
* [[زبان برنامهنویسی گو/تعریف و استفاده از توابع|تعریف و استفاده از توابع]] [[پرونده:100 percent.svg]]
* [[زبان برنامهنویسی گو/آرگومانها و مقادیر بازگشتی|آرگومانها و مقادیر بازگشتی]] [[پرونده:100 percent.svg]]
* [[زبان برنامهنویسی گو/توابع ناشناس و توابع به عنوان مقادیر|توابع ناشناس و توابع به عنوان مقادیر]] [[پرونده:100 percent.svg]]
* [[زبان برنامهنویسی گو/متدها و دریافتکنندهها|متدها و دریافتکنندهها (Receivers)]] [[پرونده:100 percent.svg]]
=== فصل ۶: بستهها و ماژولها ===
* [[زبان برنامهنویسی گو/ساختار و نحوه استفاده از بستهها|ساختار و نحوه استفاده از بستهها (Packages)]] [[پرونده:100 percent.svg]]
* [[زبان برنامهنویسی گو/مدیریت وابستگیها با استفاده از ماژولها|مدیریت وابستگیها با استفاده از ماژولها (Modules)]] [[پرونده:00 percent.svg]]
* [[زبان برنامهنویسی گو/استفاده از بستههای استاندارد گو|استفاده از بستههای استاندارد Go]] [[پرونده:00 percent.svg]]
* [[زبان برنامهنویسی گو/ایجاد و استفاده از بستههای شخصیسازی شده|ایجاد و استفاده از بستههای شخصیسازی شده]] [[پرونده:00 percent.svg]]
=== فصل ۷: برنامهنویسی همزمان (Concurrency) ===
* [[زبان برنامهنویسی گو/مفاهیم همزمانی|مفاهیم همزمانی در Go]] [[پرونده:00 percent.svg]]
* [[زبان برنامهنویسی گو/گوروتینها|گوروتینها (Goroutines)]] [[پرونده:00 percent.svg]]
* [[زبان برنامهنویسی گو/کانالها|کانالها (Channels)]] [[پرونده:00 percent.svg]]
* [[زبان برنامهنویسی گو/الگوهای همزمانی|الگوهای پیشرفته همزمانی]] [[پرونده:00 percent.svg]]
=== فصل ۸: مدیریت خطا و تست [[پرونده:50 percent.svg]] ===
* [[زبان برنامهنویسی گو/مدیریت خطاها|مدیریت خطاها در Go]] [[پرونده:100 percent.svg]]
* [[زبان برنامهنویسی گو/اصول نوشتن کدها|اصول نوشتن کدهای ایمن]] [[پرونده:100 percent.svg]]
* [[زبان برنامهنویسی گو/تست واحد|تست واحد (Unit Testing)]] [[پرونده:00 percent.svg]]
* [[زبان برنامهنویسی گو/تست یکپارچگی|تست یکپارچگی (Integration Testing)]] [[پرونده:00 percent.svg]]
* [[زبان برنامهنویسی گو/ابزارهای تست|ابزارهای تست در Go]] [[پرونده:00 percent.svg]]
=== فصل ۹: برنامهنویسی پیشرفته در Go ===
* [[زبان برنامهنویسی گو/اینترفیسها و پلیمورفیسم|اینترفیسها و پلیمورفیسم]] [[پرونده:25 percent.svg]]
* [[زبان برنامهنویسی گو/بازتاب|بازتاب (Reflection)]] [[پرونده:25 percent.svg]]
* [[زبان برنامهنویسی گو/کار با فایلها و سیستمعامل|کار با فایلها و سیستمعامل]] [[پرونده:25 percent.svg]]
* [[زبان برنامهنویسی گو/برنامهنویسی شبکه|برنامهنویسی شبکه (Networking)]] [[پرونده:25 percent.svg]]
* [[زبان برنامهنویسی گو/کار با دیتابیسها|کار با دیتابیسها]] [[پرونده:25 percent.svg]]
=== فصل ۱۰: بهینهسازی و ابزارهای کاربردی ===
* بهینهسازی عملکرد و حافظه
* پروفایلینگ و دیباگینگ
* استفاده از ابزارهای توسعه Go
* مدیریت پروژههای بزرگ
=== فصل ۱۱: پروژههای کاربردی ===
* ساخت یک وبسرویس ساده
* ساخت یک ابزار خط فرمان (CLI)
* توسعه یک برنامه توزیعشده با Go
=== فصل ۱۲: منابع بیشتر و مسیرهای یادگیری [[پرونده:25 percent.svg]] ===
* [[زبان برنامهنویسی گو/منابع آموزشی آنلاین|منابع آموزشی آنلاین]] [[پرونده:100 percent.svg]]
* جامعههای برنامهنویسی Go [[پرونده:00 percent.svg]]
* پروژههای متنباز برای مشارکت [[پرونده:00 percent.svg]]
* پیوستها [[پرونده:00 percent.svg]]
* مرجع دستورات Go [[پرونده:00 percent.svg]]
* سوالات متداول [[پرونده:00 percent.svg]]
* [[زبان برنامهنویسی گو/حل تمرینها|حل تمرینها]] [[پرونده:50 percent.svg]]
[[رده:زبان برنامهنویسی گو]]
g2sqrro5v1p4uhnb4png7fpeajknk8s
135359
135340
2026-09-29T09:18:28Z
Fwldom
26269
135359
wikitext
text/x-wiki
{{وضعیت|50%}}
{{در دست ویرایش ۲|ماه=می|روز=۱۲|سال=۲۰۲۷}}
== دربارهٔ کتاب ==
این کتاب به آموزش جامع و گامبهگام زبان برنامهنویسی '''گو''' (به انگلیسی: ''Go'') میپردازد. زبان برنامهنویسی گو که توسط شرکت گوگل توسعه یافته است، به دلیل سادگی، سرعت بالا و پشتیبانی قوی از همزمانی (Concurrency) بهسرعت به یکی از زبانهای محبوب در حوزهٔ توسعهٔ نرمافزار، بهویژه در زمینهٔ سامانههای مقیاسپذیر و برنامههای تحت وب، تبدیل شده است.
این کتاب با زبانی روان و آموزشی تهیه شده و تلاش شده است تا علاوه بر بیان مفاهیم نظری، نمونهکدهای کاربردی و مثالهای عملی نیز ارائه گردد. هدف از نگارش این اثر آن است که خوانندگان با مفاهیم پایه تا مباحث پیشرفتهٔ این زبان آشنا شوند و توانایی استفادهٔ عملی از آن را در پروژههای مختلف به دست آورند.
مطالعهٔ این کتاب به علاقهمندان برنامهنویسی، دانشجویان، و همچنین برنامهنویسان حرفهای توصیه میشود که قصد دارند زبان گو را بهعنوان ابزاری قدرتمند برای توسعهٔ نرمافزار بیاموزند و در عمل بهکار گیرند.
== فهرست ==
{{Stages}}
<!--
* [[پرونده:00%.svg]]
* [[پرونده:25%.svg]]
* [[پرونده:50%.svg]]
* [[پرونده:75%.svg]]
* [[پرونده:100 percent.svg]]
-->
=== فصل نخست [[پرونده:100 percent.svg]] ===
* [[زبان برنامهنویسی گو/مقدمه|مقدمه]] [[پرونده:100 percent.svg]]
* [[زبان برنامهنویسی گو/اولین برنامه|اولین برنامه و اجرای آن]] [[پرونده:100 percent.svg]]
* [[زبان برنامهنویسی گو/ساختارکد|ساختار کد زبان برنامه نویسی گو]] [[پرونده:100 percent.svg]]
* [[زبان برنامهنویسی گو/عناصر لغوی|عناصر لغوی ]] [[پرونده:100 percent.svg]]
=== فصل ۲: مبانی[[پرونده:100 percent.svg]]===
* [[زبان برنامهنویسی گو/متغیرها|متغیرها]] [[پرونده:100 percent.svg]]
* [[زبان برنامهنویسی گو/ثابتها|ثابتها]] [[پرونده:100 percent.svg]]
* [[زبان برنامهنویسی گو/تایپها (نوعها)|تایپها (نوعها)]] [[پرونده:100 percent.svg]]
=== فصل ۳: شرطها و حلقهها [[پرونده:100 percent.svg]] ===
* [[زبان برنامهنویسی گو/بلوکهای کد|بلوکهای کد]] [[پرونده:100 percent.svg]]
* [[زبان برنامهنویسی گو/عملگرها و عبارات|عملگرها و عبارات]] [[پرونده:100 percent.svg]]
* [[زبان برنامهنویسی گو/شرطها|شرطها در گو]] [[پرونده:100 percent.svg]]
* [[زبان برنامه نویسی گو/حلقهها|حلقهها]] [[پرونده:100 percent.svg]]
=== فصل ۴: ساختارهای دادهای پایه آرایهها [[پرونده:50 percent.svg]] ===
*[[زبان برنامهنویسی گو/اسلایسها|اسلایسها (Slices)]] [[پرونده:100 percent.svg]]
*[[زبان برنامهنویسی گو/نقشهها (Maps)|نقشهها (Maps)]] [[پرونده:100 percent.svg]]
*[[زبان برنامهنویسی گو/ساختارها (Structs)|ساختارها (Structs)]] [[پرونده:00 percent.svg]]
*[[زبان برنامهنویسی گو/اشارهگرها (Pointers)|اشارهگرها (Pointers)]] [[پرونده:00 percent.svg]]
=== فصل ۵: توابع [[پرونده:100 percent.svg]] ===
* [[زبان برنامهنویسی گو/تعریف و استفاده از توابع|تعریف و استفاده از توابع]] [[پرونده:100 percent.svg]]
* [[زبان برنامهنویسی گو/آرگومانها و مقادیر بازگشتی|آرگومانها و مقادیر بازگشتی]] [[پرونده:100 percent.svg]]
* [[زبان برنامهنویسی گو/توابع ناشناس و توابع به عنوان مقادیر|توابع ناشناس و توابع به عنوان مقادیر]] [[پرونده:100 percent.svg]]
* [[زبان برنامهنویسی گو/متدها و دریافتکنندهها|متدها و دریافتکنندهها (Receivers)]] [[پرونده:100 percent.svg]]
=== فصل ۶: بستهها و ماژولها ===
* [[زبان برنامهنویسی گو/ساختار و نحوه استفاده از بستهها|ساختار و نحوه استفاده از بستهها (Packages)]] [[پرونده:100 percent.svg]]
* [[زبان برنامهنویسی گو/مدیریت وابستگیها با استفاده از ماژولها|مدیریت وابستگیها با استفاده از ماژولها (Modules)]] [[پرونده:00 percent.svg]]
* [[زبان برنامهنویسی گو/استفاده از بستههای استاندارد گو|استفاده از بستههای استاندارد Go]] [[پرونده:00 percent.svg]]
* [[زبان برنامهنویسی گو/ایجاد و استفاده از بستههای شخصیسازی شده|ایجاد و استفاده از بستههای شخصیسازی شده]] [[پرونده:00 percent.svg]]
=== فصل ۷: برنامهنویسی همزمان (Concurrency) ===
* [[زبان برنامهنویسی گو/مفاهیم همزمانی|مفاهیم همزمانی در Go]] [[پرونده:00 percent.svg]]
* [[زبان برنامهنویسی گو/گوروتینها|گوروتینها (Goroutines)]] [[پرونده:00 percent.svg]]
* [[زبان برنامهنویسی گو/کانالها|کانالها (Channels)]] [[پرونده:00 percent.svg]]
* [[زبان برنامهنویسی گو/الگوهای همزمانی|الگوهای پیشرفته همزمانی]] [[پرونده:00 percent.svg]]
=== فصل ۸: مدیریت خطا و تست [[پرونده:50 percent.svg]] ===
* [[زبان برنامهنویسی گو/مدیریت خطاها|مدیریت خطاها در Go]] [[پرونده:100 percent.svg]]
* [[زبان برنامهنویسی گو/اصول نوشتن کدها|اصول نوشتن کدهای ایمن]] [[پرونده:100 percent.svg]]
* [[زبان برنامهنویسی گو/تست واحد|تست واحد (Unit Testing)]] [[پرونده:00 percent.svg]]
* [[زبان برنامهنویسی گو/تست یکپارچگی|تست یکپارچگی (Integration Testing)]] [[پرونده:00 percent.svg]]
* [[زبان برنامهنویسی گو/ابزارهای تست|ابزارهای تست در Go]] [[پرونده:00 percent.svg]]
=== فصل ۹: برنامهنویسی پیشرفته در Go ===
* [[زبان برنامهنویسی گو/اینترفیسها و پلیمورفیسم|اینترفیسها و پلیمورفیسم]] [[پرونده:25 percent.svg]]
* [[زبان برنامهنویسی گو/بازتاب|بازتاب (Reflection)]] [[پرونده:25 percent.svg]]
* [[زبان برنامهنویسی گو/کار با فایلها و سیستمعامل|کار با فایلها و سیستمعامل]] [[پرونده:25 percent.svg]]
* [[زبان برنامهنویسی گو/برنامهنویسی شبکه|برنامهنویسی شبکه (Networking)]] [[پرونده:25 percent.svg]]
* [[زبان برنامهنویسی گو/کار با دیتابیسها|کار با دیتابیسها]] [[پرونده:25 percent.svg]]
=== فصل ۱۰: بهینهسازی و ابزارهای کاربردی ===
* بهینهسازی عملکرد و حافظه
* پروفایلینگ و دیباگینگ
* استفاده از ابزارهای توسعه Go
* مدیریت پروژههای بزرگ
=== فصل ۱۱: پروژههای کاربردی ===
* ساخت یک وبسرویس ساده
* ساخت یک ابزار خط فرمان (CLI)
* توسعه یک برنامه توزیعشده با Go
=== فصل ۱۲: منابع بیشتر و مسیرهای یادگیری [[پرونده:25 percent.svg]] ===
* [[زبان برنامهنویسی گو/منابع آموزشی آنلاین|منابع آموزشی آنلاین]] [[پرونده:100 percent.svg]]
* جامعههای برنامهنویسی Go [[پرونده:00 percent.svg]]
* پروژههای متنباز برای مشارکت [[پرونده:00 percent.svg]]
* پیوستها [[پرونده:00 percent.svg]]
* مرجع دستورات Go [[پرونده:00 percent.svg]]
* سوالات متداول [[پرونده:00 percent.svg]]
* [[زبان برنامهنویسی گو/حل تمرینها|حل تمرینها]] [[پرونده:50 percent.svg]]
[[رده:زبان برنامهنویسی گو]]
mn8lopg2b5wb7rg80u13nmfkdfeito3
135368
135359
2026-09-29T09:26:50Z
Fwldom
26269
/* فصل ۶: بستهها و ماژولها */
135368
wikitext
text/x-wiki
{{وضعیت|50%}}
{{در دست ویرایش ۲|ماه=می|روز=۱۲|سال=۲۰۲۷}}
== دربارهٔ کتاب ==
این کتاب به آموزش جامع و گامبهگام زبان برنامهنویسی '''گو''' (به انگلیسی: ''Go'') میپردازد. زبان برنامهنویسی گو که توسط شرکت گوگل توسعه یافته است، به دلیل سادگی، سرعت بالا و پشتیبانی قوی از همزمانی (Concurrency) بهسرعت به یکی از زبانهای محبوب در حوزهٔ توسعهٔ نرمافزار، بهویژه در زمینهٔ سامانههای مقیاسپذیر و برنامههای تحت وب، تبدیل شده است.
این کتاب با زبانی روان و آموزشی تهیه شده و تلاش شده است تا علاوه بر بیان مفاهیم نظری، نمونهکدهای کاربردی و مثالهای عملی نیز ارائه گردد. هدف از نگارش این اثر آن است که خوانندگان با مفاهیم پایه تا مباحث پیشرفتهٔ این زبان آشنا شوند و توانایی استفادهٔ عملی از آن را در پروژههای مختلف به دست آورند.
مطالعهٔ این کتاب به علاقهمندان برنامهنویسی، دانشجویان، و همچنین برنامهنویسان حرفهای توصیه میشود که قصد دارند زبان گو را بهعنوان ابزاری قدرتمند برای توسعهٔ نرمافزار بیاموزند و در عمل بهکار گیرند.
== فهرست ==
{{Stages}}
<!--
* [[پرونده:00%.svg]]
* [[پرونده:25%.svg]]
* [[پرونده:50%.svg]]
* [[پرونده:75%.svg]]
* [[پرونده:100 percent.svg]]
-->
=== فصل نخست [[پرونده:100 percent.svg]] ===
* [[زبان برنامهنویسی گو/مقدمه|مقدمه]] [[پرونده:100 percent.svg]]
* [[زبان برنامهنویسی گو/اولین برنامه|اولین برنامه و اجرای آن]] [[پرونده:100 percent.svg]]
* [[زبان برنامهنویسی گو/ساختارکد|ساختار کد زبان برنامه نویسی گو]] [[پرونده:100 percent.svg]]
* [[زبان برنامهنویسی گو/عناصر لغوی|عناصر لغوی ]] [[پرونده:100 percent.svg]]
=== فصل ۲: مبانی[[پرونده:100 percent.svg]]===
* [[زبان برنامهنویسی گو/متغیرها|متغیرها]] [[پرونده:100 percent.svg]]
* [[زبان برنامهنویسی گو/ثابتها|ثابتها]] [[پرونده:100 percent.svg]]
* [[زبان برنامهنویسی گو/تایپها (نوعها)|تایپها (نوعها)]] [[پرونده:100 percent.svg]]
=== فصل ۳: شرطها و حلقهها [[پرونده:100 percent.svg]] ===
* [[زبان برنامهنویسی گو/بلوکهای کد|بلوکهای کد]] [[پرونده:100 percent.svg]]
* [[زبان برنامهنویسی گو/عملگرها و عبارات|عملگرها و عبارات]] [[پرونده:100 percent.svg]]
* [[زبان برنامهنویسی گو/شرطها|شرطها در گو]] [[پرونده:100 percent.svg]]
* [[زبان برنامه نویسی گو/حلقهها|حلقهها]] [[پرونده:100 percent.svg]]
=== فصل ۴: ساختارهای دادهای پایه آرایهها [[پرونده:50 percent.svg]] ===
*[[زبان برنامهنویسی گو/اسلایسها|اسلایسها (Slices)]] [[پرونده:100 percent.svg]]
*[[زبان برنامهنویسی گو/نقشهها (Maps)|نقشهها (Maps)]] [[پرونده:100 percent.svg]]
*[[زبان برنامهنویسی گو/ساختارها (Structs)|ساختارها (Structs)]] [[پرونده:00 percent.svg]]
*[[زبان برنامهنویسی گو/اشارهگرها (Pointers)|اشارهگرها (Pointers)]] [[پرونده:00 percent.svg]]
=== فصل ۵: توابع [[پرونده:100 percent.svg]] ===
* [[زبان برنامهنویسی گو/تعریف و استفاده از توابع|تعریف و استفاده از توابع]] [[پرونده:100 percent.svg]]
* [[زبان برنامهنویسی گو/آرگومانها و مقادیر بازگشتی|آرگومانها و مقادیر بازگشتی]] [[پرونده:100 percent.svg]]
* [[زبان برنامهنویسی گو/توابع ناشناس و توابع به عنوان مقادیر|توابع ناشناس و توابع به عنوان مقادیر]] [[پرونده:100 percent.svg]]
* [[زبان برنامهنویسی گو/متدها و دریافتکنندهها|متدها و دریافتکنندهها (Receivers)]] [[پرونده:100 percent.svg]]
=== فصل ۶: بستهها و ماژولها [[پرونده:25 percent.svg]] ===
* [[زبان برنامهنویسی گو/ساختار و نحوه استفاده از بستهها|ساختار و نحوه استفاده از بستهها (Packages)]] [[پرونده:100 percent.svg]]
* [[زبان برنامهنویسی گو/مدیریت وابستگیها با استفاده از ماژولها|مدیریت وابستگیها با استفاده از ماژولها (Modules)]] [[پرونده:00 percent.svg]]
* [[زبان برنامهنویسی گو/استفاده از بستههای استاندارد گو|استفاده از بستههای استاندارد Go]] [[پرونده:00 percent.svg]]
* [[زبان برنامهنویسی گو/ایجاد و استفاده از بستههای شخصیسازی شده|ایجاد و استفاده از بستههای شخصیسازی شده]] [[پرونده:00 percent.svg]]
=== فصل ۷: برنامهنویسی همزمان (Concurrency) ===
* [[زبان برنامهنویسی گو/مفاهیم همزمانی|مفاهیم همزمانی در Go]] [[پرونده:00 percent.svg]]
* [[زبان برنامهنویسی گو/گوروتینها|گوروتینها (Goroutines)]] [[پرونده:00 percent.svg]]
* [[زبان برنامهنویسی گو/کانالها|کانالها (Channels)]] [[پرونده:00 percent.svg]]
* [[زبان برنامهنویسی گو/الگوهای همزمانی|الگوهای پیشرفته همزمانی]] [[پرونده:00 percent.svg]]
=== فصل ۸: مدیریت خطا و تست [[پرونده:50 percent.svg]] ===
* [[زبان برنامهنویسی گو/مدیریت خطاها|مدیریت خطاها در Go]] [[پرونده:100 percent.svg]]
* [[زبان برنامهنویسی گو/اصول نوشتن کدها|اصول نوشتن کدهای ایمن]] [[پرونده:100 percent.svg]]
* [[زبان برنامهنویسی گو/تست واحد|تست واحد (Unit Testing)]] [[پرونده:00 percent.svg]]
* [[زبان برنامهنویسی گو/تست یکپارچگی|تست یکپارچگی (Integration Testing)]] [[پرونده:00 percent.svg]]
* [[زبان برنامهنویسی گو/ابزارهای تست|ابزارهای تست در Go]] [[پرونده:00 percent.svg]]
=== فصل ۹: برنامهنویسی پیشرفته در Go ===
* [[زبان برنامهنویسی گو/اینترفیسها و پلیمورفیسم|اینترفیسها و پلیمورفیسم]] [[پرونده:25 percent.svg]]
* [[زبان برنامهنویسی گو/بازتاب|بازتاب (Reflection)]] [[پرونده:25 percent.svg]]
* [[زبان برنامهنویسی گو/کار با فایلها و سیستمعامل|کار با فایلها و سیستمعامل]] [[پرونده:25 percent.svg]]
* [[زبان برنامهنویسی گو/برنامهنویسی شبکه|برنامهنویسی شبکه (Networking)]] [[پرونده:25 percent.svg]]
* [[زبان برنامهنویسی گو/کار با دیتابیسها|کار با دیتابیسها]] [[پرونده:25 percent.svg]]
=== فصل ۱۰: بهینهسازی و ابزارهای کاربردی ===
* بهینهسازی عملکرد و حافظه
* پروفایلینگ و دیباگینگ
* استفاده از ابزارهای توسعه Go
* مدیریت پروژههای بزرگ
=== فصل ۱۱: پروژههای کاربردی ===
* ساخت یک وبسرویس ساده
* ساخت یک ابزار خط فرمان (CLI)
* توسعه یک برنامه توزیعشده با Go
=== فصل ۱۲: منابع بیشتر و مسیرهای یادگیری [[پرونده:25 percent.svg]] ===
* [[زبان برنامهنویسی گو/منابع آموزشی آنلاین|منابع آموزشی آنلاین]] [[پرونده:100 percent.svg]]
* جامعههای برنامهنویسی Go [[پرونده:00 percent.svg]]
* پروژههای متنباز برای مشارکت [[پرونده:00 percent.svg]]
* پیوستها [[پرونده:00 percent.svg]]
* مرجع دستورات Go [[پرونده:00 percent.svg]]
* سوالات متداول [[پرونده:00 percent.svg]]
* [[زبان برنامهنویسی گو/حل تمرینها|حل تمرینها]] [[پرونده:50 percent.svg]]
[[رده:زبان برنامهنویسی گو]]
piddp7mj5pfa00if8ou5up4oaredsqk
زبان برنامهنویسی گو/مقدمه
0
40000
135326
135123
2026-09-29T08:34:41Z
Fwldom
26269
/* نصب گو و شروع توسعه */
135326
wikitext
text/x-wiki
{{سرصفحه
| عنوان = مقدمه
| قسمت =
| قبلی = [[زبان برنامهنویسی گو|زبان برنامهنویسی گو]]
| بعدی = [[زبان برنامهنویسی گو/اولین برنامه|اولین برنامه]]
| یادداشت = [[زبان برنامهنویسی گو]]
}}
== گو چیست؟ ==
* Go یک زبان برنامه نویسی متن باز و چند پلتفرمی است.
* Go میتواند برای ایجاد برنامههای کاربردی با کارایی بالا استفاده شود.
* Go یک زبان سریع، تایپ ایستا و کامپایل شده است که به دلیل سادگی و کارایی خود شناخته شده است.
* Go توسط رابرت گریزمر، راب پایک و کن تامپسون در سال '''۲۰۰۷''' در '''گوگل''' توسعه یافت.
* سینتکس Go شبیه C است.
* گو برای توسعه اپلیکیشنهای وب (سمت سرور)، برنامههای مبتنی بر شبکه، برنامههای کاربردی سازمانی بین پلتفرمی، بومی ابری ، ... استفاده میشود.
== نصب گو و شروع توسعه ==
* نیازمندی های قبل شروع :
** یک محیط توسعه مانند Vscode
** یک کامپایلر، مانند GCC، برای ترجمه کد Go به زبانی که کامپیوتر آن را بفهمد.
* نصب گو
** ابتدا به سایت https://golang.org/dl/ بروید و گو را دانلود و نصب کنید.
** برای مطمئن شدن از نصب گو در خط فرمان
<syntaxhighlight lang="batch">
go version
</syntaxhighlight>
باید ورژن گو به شما نمایش داده شود و گرنه باید گو را دوباره نصب کنید.
* نصب محیط توسعه و آماده سازی آن برای Go:
** وی اس کد را از https://code.visualstudio.com/ دانلود و نصب کنید.
** به بخش extension بروید و Go را جستجو کنید و افزونه را نصب کنید.
** <code>Control + Shift + P</code> را نگه دارید و <code>Go: Install/Update Tools </code>را تایپ کنید و اینتر را بزنید.
*اکنون Go نصب شده و محیط توسعه برنامه آماده است.
[[رده:زبان برنامهنویسی گو]]
lv9jljji09cg6y889ygtglpptht5wwj
زبان برنامهنویسی گو/اولین برنامه
0
40038
135350
135124
2026-09-29T09:12:53Z
Fwldom
26269
/* اجرای اولین برنامه */
135350
wikitext
text/x-wiki
{{سرصفحه
| عنوان = اولین برنامه
| قسمت =
| قبلی = [[زبان برنامهنویسی گو/مقدمه|مقدمه]]
| بعدی = [[زبان برنامهنویسی گو/ساختارکد|ساختارکد]]
| یادداشت = [[زبان برنامهنویسی گو]]
}}
== ایجاد اولین برنامه (سلام دنیا!) ==
برای ساخت اولین برنامه ابتدا ویرایشگر خود را باز کرده و یک فایل جدید مثلا با نام main با همراه پسوند .go درست میکنیم.<br>
و کد برنامه را داخل آن مینویسم:
<syntaxhighlight lang='golang'>
package main
import "fmt"
func main() {
fmt.Println("Hello world!!!")
}
</syntaxhighlight>
در انتها، فایل ساخته شده را ذخیره میکنیم و حالا یک فایل گو با نام main.go داریم.
== اجرای اولین برنامه ==
برای اجرای برنامه در دایرکتوری که فایل را ساختیم cmd را باز میکنیم.و متن زیر را تایپ کرده و اینتر میزنیم:
<syntaxhighlight lang='batch'>
go run main.go
</syntaxhighlight>
* go به معنای فراخوانی زبان برنامه نویسی گو است.
* run برای اجرای برنامه استفاده میشود.
* main.go نام فایلی است که ساختیم توجه کنید کدهای زبان گو با پسوند .go هستند.
برنامه بالا یک پیغام با محتوای "!!!Hello world" در کنسول چاپ میکند.
[[رده:زبان برنامهنویسی گو]]
hpcsrger7bmm89fsh6nwfdxcera7aen
زبان برنامهنویسی گو/تایپها (نوعها)
0
40407
135351
129190
2026-09-29T09:14:05Z
Fwldom
26269
added [[Category:زبان برنامهنویسی گو]] با استفاده از ردهساز
135351
wikitext
text/x-wiki
{{سرصفحه
| عنوان = تایپها (نوعها)
| قسمت =
| قبلی = [[زبان برنامهنویسی گو/ثابتها|ثابتها]]
| بعدی = [[زبان برنامهنویسی گو/بلوکهای کد|بلوکهای کد]]
| یادداشت = [[زبان برنامهنویسی گو]]
}}
== تایپهای متغیرها و ثابتها در زبان برنامهنویسی گو ==
=== متغیرها ===
متغیرها در زبان گو برای ذخیرهسازی دادهها استفاده میشوند. برای تعریف یک متغیر، از کلمه کلیدی `var` استفاده میشود. به عنوان مثال:
<syntaxhighlight>
var x int
x = 10
</syntaxhighlight>
در این مثال، متغیری به نام `x` از نوع `int` تعریف شده و مقدار `10` به آن اختصاص داده شده است.
==== تعریف چند متغیر ====
میتوان چندین متغیر را به صورت همزمان تعریف کرد:
<syntaxhighlight>
var a, b, c int
</syntaxhighlight>
همچنین میتوان مقادیر اولیه را نیز به متغیرها اختصاص داد:
<syntaxhighlight>
var d, e, f int = 1, 2, 3
</syntaxhighlight>
==== متغیرهای کوتاه ====
در گو، میتوان از سینتکس کوتاه برای تعریف و مقداردهی متغیرها استفاده کرد:
<syntaxhighlight>
g := 4
</syntaxhighlight>
این روش فقط در داخل توابع قابل استفاده است.
=== ثابتها ===
ثابتها مقادیری هستند که پس از تعریف نمیتوانند تغییر کنند. برای تعریف ثابتها از کلمه کلیدی `const` استفاده میشود. به عنوان مثال:
<syntaxhighlight>
const Pi = 3.14
</syntaxhighlight>
در این مثال، ثابت `Pi` با مقدار `3.14` تعریف شده است.
==== تعریف چند ثابت ====
میتوان چندین ثابت را به صورت همزمان تعریف کرد:
<syntaxhighlight>
const (
A = 1
B = 2
C = 3
)
</syntaxhighlight>
=== نوع دادهها ===
در زبان گو، نوع دادهها مشخص میکنند که چه نوع دادهای میتواند در متغیر یا ثابت ذخیره شود. برخی از نوع دادههای رایج عبارتند از:
* `int` - عدد صحیح
* `float64` - عدد اعشاری
* `string` - رشته
* `bool` - بولین (درست یا نادرست)
=== نتیجهگیری ===
در زبان برنامهنویسی گو، متغیرها و ثابتها ابزارهای اساسی برای مدیریت دادهها هستند. با استفاده از این ابزارها، میتوان دادهها را به صورت کارآمد ذخیره و مدیریت کرد.
[[رده:زبان برنامهنویسی گو]]
nby674pa1jg7765ay8ck4dz2v5dv702
135352
135351
2026-09-29T09:14:38Z
Fwldom
26269
/* نوع دادهها */
135352
wikitext
text/x-wiki
{{سرصفحه
| عنوان = تایپها (نوعها)
| قسمت =
| قبلی = [[زبان برنامهنویسی گو/ثابتها|ثابتها]]
| بعدی = [[زبان برنامهنویسی گو/بلوکهای کد|بلوکهای کد]]
| یادداشت = [[زبان برنامهنویسی گو]]
}}
== تایپهای متغیرها و ثابتها در زبان برنامهنویسی گو ==
=== متغیرها ===
متغیرها در زبان گو برای ذخیرهسازی دادهها استفاده میشوند. برای تعریف یک متغیر، از کلمه کلیدی `var` استفاده میشود. به عنوان مثال:
<syntaxhighlight>
var x int
x = 10
</syntaxhighlight>
در این مثال، متغیری به نام `x` از نوع `int` تعریف شده و مقدار `10` به آن اختصاص داده شده است.
==== تعریف چند متغیر ====
میتوان چندین متغیر را به صورت همزمان تعریف کرد:
<syntaxhighlight>
var a, b, c int
</syntaxhighlight>
همچنین میتوان مقادیر اولیه را نیز به متغیرها اختصاص داد:
<syntaxhighlight>
var d, e, f int = 1, 2, 3
</syntaxhighlight>
==== متغیرهای کوتاه ====
در گو، میتوان از سینتکس کوتاه برای تعریف و مقداردهی متغیرها استفاده کرد:
<syntaxhighlight>
g := 4
</syntaxhighlight>
این روش فقط در داخل توابع قابل استفاده است.
=== ثابتها ===
ثابتها مقادیری هستند که پس از تعریف نمیتوانند تغییر کنند. برای تعریف ثابتها از کلمه کلیدی `const` استفاده میشود. به عنوان مثال:
<syntaxhighlight>
const Pi = 3.14
</syntaxhighlight>
در این مثال، ثابت `Pi` با مقدار `3.14` تعریف شده است.
==== تعریف چند ثابت ====
میتوان چندین ثابت را به صورت همزمان تعریف کرد:
<syntaxhighlight>
const (
A = 1
B = 2
C = 3
)
</syntaxhighlight>
=== نوع دادهها ===
در زبان گو، نوع دادهها مشخص میکنند که چه نوع دادهای میتواند در متغیر یا ثابت ذخیره شود. برخی از نوع دادههای رایج عبارتند از:
* int - عدد صحیح
* float64 - عدد اعشاری
* string - رشته
* bool - بولین (درست یا نادرست)
=== نتیجهگیری ===
در زبان برنامهنویسی گو، متغیرها و ثابتها ابزارهای اساسی برای مدیریت دادهها هستند. با استفاده از این ابزارها، میتوان دادهها را به صورت کارآمد ذخیره و مدیریت کرد.
[[رده:زبان برنامهنویسی گو]]
f8caaptzb1e7383nt6bgqkfb0v0wm09
135353
135352
2026-09-29T09:14:55Z
Fwldom
26269
135353
wikitext
text/x-wiki
{{سرصفحه
| عنوان = تایپها (نوعها)
| قسمت =
| قبلی = [[زبان برنامهنویسی گو/ثابتها|ثابتها]]
| بعدی = [[زبان برنامهنویسی گو/بلوکهای کد|بلوکهای کد]]
| یادداشت = [[زبان برنامهنویسی گو]]
}}
== تایپهای متغیرها و ثابتها در زبان برنامهنویسی گو ==
=== متغیرها ===
متغیرها در زبان گو برای ذخیرهسازی دادهها استفاده میشوند. برای تعریف یک متغیر، از کلمه کلیدی var استفاده میشود. به عنوان مثال:
<syntaxhighlight>
var x int
x = 10
</syntaxhighlight>
در این مثال، متغیری به نام x از نوع int تعریف شده و مقدار 10 به آن اختصاص داده شده است.
==== تعریف چند متغیر ====
میتوان چندین متغیر را به صورت همزمان تعریف کرد:
<syntaxhighlight>
var a, b, c int
</syntaxhighlight>
همچنین میتوان مقادیر اولیه را نیز به متغیرها اختصاص داد:
<syntaxhighlight>
var d, e, f int = 1, 2, 3
</syntaxhighlight>
==== متغیرهای کوتاه ====
در گو، میتوان از سینتکس کوتاه برای تعریف و مقداردهی متغیرها استفاده کرد:
<syntaxhighlight>
g := 4
</syntaxhighlight>
این روش فقط در داخل توابع قابل استفاده است.
=== ثابتها ===
ثابتها مقادیری هستند که پس از تعریف نمیتوانند تغییر کنند. برای تعریف ثابتها از کلمه کلیدی const استفاده میشود. به عنوان مثال:
<syntaxhighlight>
const Pi = 3.14
</syntaxhighlight>
در این مثال، ثابت Pi با مقدار 3.14 تعریف شده است.
==== تعریف چند ثابت ====
میتوان چندین ثابت را به صورت همزمان تعریف کرد:
<syntaxhighlight>
const (
A = 1
B = 2
C = 3
)
</syntaxhighlight>
=== نوع دادهها ===
در زبان گو، نوع دادهها مشخص میکنند که چه نوع دادهای میتواند در متغیر یا ثابت ذخیره شود. برخی از نوع دادههای رایج عبارتند از:
* int - عدد صحیح
* float64 - عدد اعشاری
* string - رشته
* bool - بولین (درست یا نادرست)
=== نتیجهگیری ===
در زبان برنامهنویسی گو، متغیرها و ثابتها ابزارهای اساسی برای مدیریت دادهها هستند. با استفاده از این ابزارها، میتوان دادهها را به صورت کارآمد ذخیره و مدیریت کرد.
[[رده:زبان برنامهنویسی گو]]
6050m3fttgbkivolrhhfbzmdqsg029k
زبان برنامهنویسی گو/بلوکهای کد
0
40412
135354
129189
2026-09-29T09:15:39Z
Fwldom
26269
135354
wikitext
text/x-wiki
{{سرصفحه
| عنوان = بلوکهای کد
| قسمت =
| قبلی = [[زبان برنامهنویسی گو/تایپها (نوعها)| انواع متغیرها]]
| بعدی = [[زبان برنامهنویسی گو/عملگرها و عبارات|عملگرها و عبارات]]
| یادداشت = [[زبان برنامهنویسی گو]]
}}
== بلوکها در زبان برنامهنویسی Go ==
در زبان برنامهنویسی Go، بلوکها (Blocks) مجموعهای از دستورات هستند که درون یک جفت آکولاد ''{'' و ''}'' قرار میگیرند. بلوکها برای تعیین محدودهی اجرای کد استفاده میشوند و معمولاً در ساختارهای کنترلی مانند ''if''، ''for'' و توابع کاربرد دارند.
=== ساختار بلوک ===
یک بلوک شامل یک یا چند دستور زبان برنامهنویسی است که به ترتیب اجرا میشوند. هر بلوک میتواند به صورت مستقل عمل کند و محدودهی متغیرهای تعریفشده درون بلوک تنها به همان بلوک محدود میشود.
<syntaxhighlight lang='go'>
package main
import "fmt"
func main() {
x := 10
if x > 5 {
fmt.Println("x بزرگتر از 5 است")
}
}
}}
</syntaxhighlight>
در این مثال، بلوک ''if'' تنها زمانی اجرا میشود که شرط تعیینشده صحیح باشد. متغیر ''x'' نیز تنها درون این تابع تعریف شده و در خارج از آن قابل دسترسی نیست.
=== بلوکهای تو در تو ===
در Go، بلوکها میتوانند درون یکدیگر تو در تو باشند. به این معنا که یک بلوک میتواند شامل بلوکهای دیگری باشد. این ویژگی امکان کنترل دقیقتر جریان اجرای برنامه را فراهم میکند.
<syntaxhighlight lang='go'>
package main
import "fmt"
func main() {
x := 10
if x > 5 {
if x < 20 {
fmt.Println("x بین 5 و 20 است")
}
}
}
}}
</syntaxhighlight>
در این مثال، بلوک دوم فقط زمانی اجرا میشود که شرط بلوک اول نیز برقرار باشد. این ساختار تو در تو به شما اجازه میدهد که شرایط پیچیدهتری را مدیریت کنید.
=== بلوکهای ناشناس ===
در Go، میتوان بلوکهای ناشناسی تعریف کرد که خارج از هر گونه ساختار کنترلی قرار دارند. این بلوکها به محض رسیدن جریان اجرای برنامه به آنها اجرا میشوند.
<syntaxhighlight lang='go'>
package main
import "fmt"
func main() {
x := 10
{
fmt.Println("این یک بلوک ناشناس است")
fmt.Println("x:", x)
}
}
}}
</syntaxhighlight>
در این مثال، بلوک ناشناس شامل دو دستور چاپ است که بلافاصله پس از تعریف اجرا میشوند. این نوع بلوکها معمولاً برای محدود کردن محدوده متغیرها یا انجام عملیاتهای خاص استفاده میشوند.
=== محدوده متغیرها در بلوکها ===
در Go، متغیرهایی که در یک بلوک تعریف میشوند تنها در همان بلوک معتبر هستند. این ویژگی به محدود کردن دسترسی به متغیرها کمک میکند و از مشکلات ناشی از استفاده نادرست از متغیرها در بخشهای دیگر برنامه جلوگیری میکند.
<syntaxhighlight lang='go'>
package main
import "fmt"
func main() {
x := 10
if x > 5 {
y := 20
fmt.Println("y:", y)
}
// در اینجا دسترسی به y امکانپذیر نیست
// fmt.Println("y:", y) // خطا
}
}}
</syntaxhighlight>
در این مثال، متغیر ''y'' تنها درون بلوک ''if'' تعریف شده و خارج از آن قابل دسترسی نیست. این یکی از روشهای مدیریت حافظه و کاهش پیچیدگی در برنامهنویسی است.
=== نتیجهگیری ===
بلوکها یکی از اساسیترین مفاهیم در زبان برنامهنویسی Go هستند که امکان کنترل دقیق جریان اجرای برنامه و مدیریت محدوده متغیرها را فراهم میکنند. با استفاده از بلوکها میتوانید کدهای خود را بهینهتر و قابل فهمتر بنویسید.
[[رده:زبان برنامهنویسی گو]]
mzrzo3aow39cy6cq6o28m3ka1l6dklh
زبان برنامهنویسی گو/عملگرها و عبارات
0
40442
135349
129340
2026-09-29T09:10:33Z
Fwldom
26269
135349
wikitext
text/x-wiki
{{سرصفحه
| عنوان = عملگرها و عبارات
| قسمت =
| قبلی = [[زبان برنامهنویسی گو/بلوکهای کد|بلوکهای کد]]
| بعدی = [[زبان برنامهنویسی گو/شرطها|شرطها]]
| یادداشت = [[زبان برنامهنویسی گو]]
}}
== عملگرها و عبارات در زبان برنامهنویسی Go ==
در زبان برنامهنویسی Go، عملگرها برای انجام عملیاتهای مختلف بر روی دادهها و متغیرها به کار میروند. این عملیاتها شامل عملگرهای حسابی، انتساب، مقایسهای، منطقی و بیتی است. عبارات (Expressions) نیز از ترکیب عملگرها، متغیرها و مقادیر برای ایجاد عملیاتهای پیچیدهتر تشکیل میشوند.
=== عملگرهای حسابی (Arithmetic Operators) ===
عملگرهای حسابی برای انجام عملیات ریاضی پایه استفاده میشوند:
* `+` (جمع): دو مقدار را با هم جمع میکند. مثال: `5 + 3` نتیجه: `8`
* `-` (تفریق): مقدار دوم را از مقدار اول کم میکند. مثال: `10 - 4` نتیجه: `6`
* `*` (ضرب): دو مقدار را در هم ضرب میکند. مثال: `7 * 2` نتیجه: `14`
* `/` (تقسیم): مقدار اول را بر مقدار دوم تقسیم میکند. مثال: `15 / 3` نتیجه: `5`
* `%` (باقیمانده تقسیم): باقیمانده تقسیم مقدار اول بر مقدار دوم را برمیگرداند. مثال: `10 % 3` نتیجه: `1`
نمونه کد:
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
a := 10
b := 3
fmt.Println("جمع: ", a + b) // خروجی: 13
fmt.Println("تفریق: ", a - b) // خروجی: 7
fmt.Println("ضرب: ", a * b) // خروجی: 30
fmt.Println("تقسیم: ", a / b) // خروجی: 3
fmt.Println("باقیمانده: ", a % b) // خروجی: 1
}
</syntaxhighlight>
=== عملگرهای انتساب (Assignment Operators) ===
عملگرهای انتساب برای تخصیص مقدار به یک متغیر استفاده میشوند:
* `=` (انتساب): مقدار را به متغیر تخصیص میدهد. مثال: `a = 5`
* `+=` (جمع و انتساب): مقدار را جمع کرده و به متغیر تخصیص میدهد. مثال: `a += 3`
* `-=` (تفریق و انتساب): مقدار را تفریق کرده و به متغیر تخصیص میدهد. مثال: `a -= 2`
* `*=` (ضرب و انتساب): مقدار را ضرب کرده و به متغیر تخصیص میدهد. مثال: `a *= 2`
* `/=` (تقسیم و انتساب): مقدار را تقسیم کرده و به متغیر تخصیص میدهد. مثال: `a /= 2`
* `%=` (باقیمانده تقسیم و انتساب): باقیمانده را محاسبه و به متغیر تخصیص میدهد. مثال: `a %= 3`
نمونه کد:
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
x := 5
x += 3 // x = 8
fmt.Println(x)
x *= 2 // x = 16
fmt.Println(x)
}
</syntaxhighlight>
=== عملگرهای مقایسهای (Comparison Operators) ===
عملگرهای مقایسهای برای مقایسه مقادیر دو عبارت استفاده میشوند. نتیجه این مقایسهها یک مقدار بولین (`true` یا `false`) خواهد بود:
* `==` (برابر بودن): بررسی میکند که آیا دو مقدار برابرند. مثال: `5 == 5` نتیجه: `true`
* `!=` (نابرابر بودن): بررسی میکند که آیا دو مقدار نابرابرند. مثال: `5 != 3` نتیجه: `true`
* `>` (بزرگتر بودن): بررسی میکند که آیا مقدار اول بزرگتر از مقدار دوم است. مثال: `7 > 4` نتیجه: `true`
* `<` (کوچکتر بودن): بررسی میکند که آیا مقدار اول کوچکتر از مقدار دوم است. مثال: `3 < 5` نتیجه: `true`
* `>=` (بزرگتر یا مساوی بودن): بررسی میکند که آیا مقدار اول بزرگتر یا مساوی با مقدار دوم است. مثال: `5 >= 5` نتیجه: `true`
* `<=` (کوچکتر یا مساوی بودن): بررسی میکند که آیا مقدار اول کوچکتر یا مساوی با مقدار دوم است. مثال: `4 <= 5` نتیجه: `true`
نمونه کد:
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
a := 10
b := 20
fmt.Println(a == b) // false
fmt.Println(a != b) // true
fmt.Println(a > b) // false
fmt.Println(a < b) // true
fmt.Println(a >= b) // false
fmt.Println(a <= b) // true
}
</syntaxhighlight>
=== عملگرهای منطقی (Logical Operators) ===
عملگرهای منطقی برای ترکیب عبارات شرطی استفاده میشوند:
* `&&` (AND منطقی): هر دو شرط باید درست باشند تا نتیجه درست باشد. مثال: `(true && false)` نتیجه: `false`
* `||` (OR منطقی): یکی از شرایط باید درست باشد تا نتیجه درست باشد. مثال: `(true || false)` نتیجه: `true`
* `!` (NOT منطقی): نتیجه شرط را معکوس میکند. مثال: `!true` نتیجه: `false`
نمونه کد:
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
a := true
b := false
fmt.Println(a && b) // false
fmt.Println(a || b) // true
fmt.Println(!a) // false
}
</syntaxhighlight>
=== عملگرهای بیتی (Bitwise Operators) ===
عملگرهای بیتی بر روی اعداد در سطح بیت عمل میکنند:
* `&` (AND بیتی): هر دو بیت باید 1 باشند تا نتیجه 1 باشد. مثال: `5 & 3` نتیجه: `1`
* `|` (OR بیتی): یکی از بیتها باید 1 باشد تا نتیجه 1 باشد. مثال: `5 | 3` نتیجه: `7`
* `^` (XOR بیتی): بیتها باید متفاوت باشند تا نتیجه 1 باشد. مثال: `5 ^ 3` نتیجه: `6`
* `<<` (شیفت چپ): بیتها به سمت چپ شیفت داده میشوند. مثال: `2 << 1` نتیجه: `4`
* `>>` (شیفت راست): بیتها به سمت راست شیفت داده میشوند. مثال: `8 >> 1` نتیجه: `4`
نمونه کد:
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
x := 5 // 101 در مبنای ۲
y := 3 // 011 در مبنای ۲
fmt.Println(x & y) // 1
fmt.Println(x | y) // 7
fmt.Println(x ^ y) // 6
fmt.Println(x << 1) // 10
fmt.Println(x >> 1) // 2
}
</syntaxhighlight>
[[رده:زبان برنامهنویسی گو]]
b56rgmzdgzpqheptulrhy1kmhitxqzs
135355
135349
2026-09-29T09:16:03Z
Fwldom
26269
135355
wikitext
text/x-wiki
{{سرصفحه
| عنوان = عملگرها و عبارات
| قسمت =
| قبلی = [[زبان برنامهنویسی گو/بلوکهای کد|بلوکهای کد]]
| بعدی = [[زبان برنامهنویسی گو/شرطها|شرطها]]
| یادداشت = [[زبان برنامهنویسی گو]]
}}
== عملگرها و عبارات در زبان برنامهنویسی Go ==
در زبان برنامهنویسی Go، عملگرها برای انجام عملیاتهای مختلف بر روی دادهها و متغیرها به کار میروند. این عملیاتها شامل عملگرهای حسابی، انتساب، مقایسهای، منطقی و بیتی است. عبارات (Expressions) نیز از ترکیب عملگرها، متغیرها و مقادیر برای ایجاد عملیاتهای پیچیدهتر تشکیل میشوند.
=== عملگرهای حسابی (Arithmetic Operators) ===
عملگرهای حسابی برای انجام عملیات ریاضی پایه استفاده میشوند:
* + (جمع): دو مقدار را با هم جمع میکند. مثال: 5 + 3 نتیجه: 8
* - (تفریق): مقدار دوم را از مقدار اول کم میکند. مثال: 10 - 4 نتیجه: 6
* * (ضرب): دو مقدار را در هم ضرب میکند. مثال: 7 * 2 نتیجه: 14
* / (تقسیم): مقدار اول را بر مقدار دوم تقسیم میکند. مثال: 15 / 3 نتیجه: 5
* % (باقیمانده تقسیم): باقیمانده تقسیم مقدار اول بر مقدار دوم را برمیگرداند. مثال: 10 % 3 نتیجه: 1
نمونه کد:
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
a := 10
b := 3
fmt.Println("جمع: ", a + b) // خروجی: 13
fmt.Println("تفریق: ", a - b) // خروجی: 7
fmt.Println("ضرب: ", a * b) // خروجی: 30
fmt.Println("تقسیم: ", a / b) // خروجی: 3
fmt.Println("باقیمانده: ", a % b) // خروجی: 1
}
</syntaxhighlight>
=== عملگرهای انتساب (Assignment Operators) ===
عملگرهای انتساب برای تخصیص مقدار به یک متغیر استفاده میشوند:
* = (انتساب): مقدار را به متغیر تخصیص میدهد. مثال: a = 5
* += (جمع و انتساب): مقدار را جمع کرده و به متغیر تخصیص میدهد. مثال: a += 3
* -= (تفریق و انتساب): مقدار را تفریق کرده و به متغیر تخصیص میدهد. مثال: a -= 2
* *= (ضرب و انتساب): مقدار را ضرب کرده و به متغیر تخصیص میدهد. مثال: a *= 2
* /= (تقسیم و انتساب): مقدار را تقسیم کرده و به متغیر تخصیص میدهد. مثال: a /= 2
* %= (باقیمانده تقسیم و انتساب): باقیمانده را محاسبه و به متغیر تخصیص میدهد. مثال: a %= 3
نمونه کد:
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
x := 5
x += 3 // x = 8
fmt.Println(x)
x *= 2 // x = 16
fmt.Println(x)
}
</syntaxhighlight>
=== عملگرهای مقایسهای (Comparison Operators) ===
عملگرهای مقایسهای برای مقایسه مقادیر دو عبارت استفاده میشوند. نتیجه این مقایسهها یک مقدار بولین (true یا false) خواهد بود:
* == (برابر بودن): بررسی میکند که آیا دو مقدار برابرند. مثال: 5 == 5 نتیجه: true
* != (نابرابر بودن): بررسی میکند که آیا دو مقدار نابرابرند. مثال: 5 != 3 نتیجه: true
* > (بزرگتر بودن): بررسی میکند که آیا مقدار اول بزرگتر از مقدار دوم است. مثال: 7 > 4 نتیجه: true
* < (کوچکتر بودن): بررسی میکند که آیا مقدار اول کوچکتر از مقدار دوم است. مثال: 3 < 5 نتیجه: true
* >= (بزرگتر یا مساوی بودن): بررسی میکند که آیا مقدار اول بزرگتر یا مساوی با مقدار دوم است. مثال: 5 >= 5 نتیجه: true
* <= (کوچکتر یا مساوی بودن): بررسی میکند که آیا مقدار اول کوچکتر یا مساوی با مقدار دوم است. مثال: 4 <= 5 نتیجه: true
نمونه کد:
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
a := 10
b := 20
fmt.Println(a == b) // false
fmt.Println(a != b) // true
fmt.Println(a > b) // false
fmt.Println(a < b) // true
fmt.Println(a >= b) // false
fmt.Println(a <= b) // true
}
</syntaxhighlight>
=== عملگرهای منطقی (Logical Operators) ===
عملگرهای منطقی برای ترکیب عبارات شرطی استفاده میشوند:
* && (AND منطقی): هر دو شرط باید درست باشند تا نتیجه درست باشد. مثال: (true && false) نتیجه: false
* || (OR منطقی): یکی از شرایط باید درست باشد تا نتیجه درست باشد. مثال: (true || false) نتیجه: true
* ! (NOT منطقی): نتیجه شرط را معکوس میکند. مثال: !true نتیجه: false
نمونه کد:
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
a := true
b := false
fmt.Println(a && b) // false
fmt.Println(a || b) // true
fmt.Println(!a) // false
}
</syntaxhighlight>
=== عملگرهای بیتی (Bitwise Operators) ===
عملگرهای بیتی بر روی اعداد در سطح بیت عمل میکنند:
* & (AND بیتی): هر دو بیت باید 1 باشند تا نتیجه 1 باشد. مثال: 5 & 3 نتیجه: 1
* | (OR بیتی): یکی از بیتها باید 1 باشد تا نتیجه 1 باشد. مثال: 5 | 3 نتیجه: 7
* ^ (XOR بیتی): بیتها باید متفاوت باشند تا نتیجه 1 باشد. مثال: 5 ^ 3 نتیجه: 6
* << (شیفت چپ): بیتها به سمت چپ شیفت داده میشوند. مثال: 2 << 1 نتیجه: 4
* >> (شیفت راست): بیتها به سمت راست شیفت داده میشوند. مثال: 8 >> 1 نتیجه: 4
نمونه کد:
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
x := 5 // 101 در مبنای ۲
y := 3 // 011 در مبنای ۲
fmt.Println(x & y) // 1
fmt.Println(x | y) // 7
fmt.Println(x ^ y) // 6
fmt.Println(x << 1) // 10
fmt.Println(x >> 1) // 2
}
</syntaxhighlight>
[[رده:زبان برنامهنویسی گو]]
47smfiojcn9sknkpj0k2kz7dw6c8gui
کاربر:Fwldom/آمار
2
40459
135325
134957
2026-09-29T08:33:26Z
Fwldom
26269
اصلاح ارقام
135325
wikitext
text/x-wiki
این صفحه جهت مستندسازی سابقه کاربر Fwldom ایجاد شده است.
== سابقه ==
تا ۲۶ شهریور ۱۴۰۵ {{کاربر ویرایش|۹۰۰}}
* این حساب کاربری در ۴ اسفند ۱۴۰۲ ایجاد شده است.
== الگوها ==
*تعداد: ۴
*[[الگو:کاربر زن زندگی آزادی]]
*[[الگو:کاربر کوروش بزرگ]]
*[[الگو:راهنمای تعاملی]]
* [[الگو:خوش آمد گویی صفحه کاربری]]
== کتابهای ایجاد شده توسط من==
* تعداد کل: ۵
* تعداد ناقص: ۱
* تعداد کامل: ۴
=== ناقص ===
*[[زبان برنامهنویسی گو]] [[پرونده:75 percent.svg]]
=== کامل ===
*[[آموزش کامل خط فرمان ویندوز]]
*[[مبانی شبکههای کامپیوتری و سختافزار|مبانی شبکههای کامپیوتری و سخت افزار]]
*[[برنامه نویسی PSP]]
*[[سیاساس]]
36azpjt73p2a50n96s9zpognldtvolu
135369
135325
2026-09-29T09:28:10Z
Fwldom
26269
/* سابقه */ اصلاح ارقام
135369
wikitext
text/x-wiki
این صفحه جهت مستندسازی سابقه کاربر Fwldom ایجاد شده است.
== سابقه ==
تا ۸ مهر ۱۴۰۵ {{کاربر ویرایش|۱۰۰۰}}
* این حساب کاربری در ۴ اسفند ۱۴۰۲ ایجاد شده است.
== الگوها ==
*تعداد: ۴
*[[الگو:کاربر زن زندگی آزادی]]
*[[الگو:کاربر کوروش بزرگ]]
*[[الگو:راهنمای تعاملی]]
* [[الگو:خوش آمد گویی صفحه کاربری]]
== کتابهای ایجاد شده توسط من==
* تعداد کل: ۵
* تعداد ناقص: ۱
* تعداد کامل: ۴
=== ناقص ===
*[[زبان برنامهنویسی گو]] [[پرونده:75 percent.svg]]
=== کامل ===
*[[آموزش کامل خط فرمان ویندوز]]
*[[مبانی شبکههای کامپیوتری و سختافزار|مبانی شبکههای کامپیوتری و سخت افزار]]
*[[برنامه نویسی PSP]]
*[[سیاساس]]
qxf6ok0vnvxyrxgb64zeyx4bi8wihgs
زبان برنامهنویسی گو/حل تمرینها
0
40464
135334
129341
2026-09-29T08:51:03Z
Fwldom
26269
جایگزینی صفحه با ' [[رده:زبان برنامهنویسی گو]]'
135334
wikitext
text/x-wiki
[[رده:زبان برنامهنویسی گو]]
0wcoc4q0wza16em1aiezxunbnhh62gi
135336
135334
2026-09-29T08:52:51Z
Fwldom
26269
135336
wikitext
text/x-wiki
* [[زبان برنامهنویسی گو/حل تمرینها/شرطها|حل تمرینهای صفحه شرطها]]
[[رده:زبان برنامهنویسی گو]]
pb61zsjs0c7cc3wa6mj3manbg0xtsli
ویکیکتاب:میز تحریر
4
41152
135291
135206
2026-09-29T06:24:26Z
Fwldom
26269
اصلاح ارقام
135291
wikitext
text/x-wiki
{| class="plainlinks" style="background:transparent; width:100%; border: 2px ridge #A7D7F9; "
|-
| colspan=2 style="vertical-align: top; background-color:#F0F2F5;text-align:center;font-size:9pt;border: 2px #A7D7F9;"|
{{میانبر|وک:مت}}
[[تصویر:Polarstern library hg.jpg|left|200px|link=ویکیکتاب:میز تحریر]]
[[تصویر:Gnome-applications.svg|right|140px|link=ویکیکتاب:میز تحریر]]
'''ردکردن به:''' [[#toc|فهرست بحثها]] {{ن}} [[#below_toc|آغاز بحثها]]{{ن}}[[#footer|پایین صفحه]]{{ن}}'''[{{fullurl:{{FULLPAGENAME}}|action=edit§ion=new}} افزودن بحث تازه]'''<br/>
{{Purge|پاکسازی میانگیر برای تازهکردن صفحه}}
----
<big>میز تحریر در ویکیکتاب، مکانی برای مطرح کردن سوالات عمومی، درخواست راهنمایی {{سخ}}و اظهار نظر از دیگر کاربران، و بحث بر سر مسایل مختلفی است که در ویکیکتاب اهمیت دارد.</big>
|-
| style="vertical-align: top; background-color:#F6F6F6;font-size:9pt;"|
<div style="padding:1px 10px; text-align:right; font-size: 13pt; border-bottom:1px solid #A7D7F9; background:#E8F2F8; color:#534741;">استفاده از این صفحه</div>
*بحثهای جدید را به '''انتهای''' این صفحه بیفزایید.
*'''[{{SERVER}}{{localurl:{{ns:project}}:میز تحریر|action=edit§ion=new}} برای افزودن بحث تازه اینجا کلیک کنید.]'''
<div style="padding:1px 10px; text-align:right; font-size: 13pt; border-bottom:1px solid #A7D7F9; background:#E8F2F8; color:#534741;">بایگانی</div>
{{جعبه بایگانی|
[[/بایگانی۱|بایگانی۱]]{{*}}
[[/بایگانی۲|بایگانی۲]]{{*}}
[[/بایگانی۳|بایگانی۳]]{{*}}
[[/بایگانی۴|بایگانی۴]]{{*}}
[[/بایگانی۵|بایگانی۵]]{{*}}
[[/بایگانی۶|بایگانی۶]]{{*}}
[[/بایگانی۷|بایگانی۷]]{{*}}
[[/بایگانی۸|بایگانی۸]]{{*}}
[[/بایگانی۹|بایگانی۹]]{{*}}
[[/بایگانی۱۰|بایگانی۱۰]]{{*}}
[[/بایگانی۱۱|بایگانی۱۱]]{{*}}
[[/بایگانی۱۲|بایگانی۱۲]]{{*}}
[[/بایگانی۱۳|بایگانی۱۳]]{{*}}
[[/بایگانی۱۴|بایگانی۱۴]]{{*}}
[[/بایگانی۱۵|بایگانی۱۵]]{{*}}
[[/بایگانی۱۶|بایگانی۱۶]]{{*}}
[[/بایگانی۱۷|بایگانی۱۷]]{{*}}
[[/بایگانی۱۸|بایگانی۱۸]]{{*}}
[[/بایگانی۱۹|بایگانی۱۹]]{{*}}
[[/بایگانی۲۰|بایگانی۲۰]]{{*}}
[[/بایگانی۲۱|بایگانی۲۱]]{{*}}
[[/بایگانی۲۲|بایگانی۲۲]]
[[/بایگانی۲۳|بایگانی۲۳]]
}}
<inputbox>
type=fulltext
bgcolor=transparent
prefix=ویکیکتاب:میز تحریر
break=no
searchbuttonlabel=جستجو در بایگانیهای میز تحریر
</inputbox>
|}
7j8s65s3jikncngfp20awcj02a2n9w6
زبان برنامهنویسی گو/ساختار و نحوه استفاده از بستهها
0
41329
135366
132086
2026-09-29T09:25:57Z
Fwldom
26269
135366
wikitext
text/x-wiki
{{سرصفحه
| عنوان = ساختار و نحوه استفاده از بستهها
| قسمت =
| قبلی = [[زبان برنامهنویسی گو/متدها و دریافتکنندهها |متدها و دریافتکنندهها]]
| بعدی = [[زبان برنامهنویسی گو/مدیریت وابستگیها با استفاده از ماژولها|مدیریت وابستگیها با استفاده از ماژولها]]
| یادداشت = [[زبان برنامهنویسی گو]]
}}
== ساختار برنامههای گو ==
هر برنامهی گو از بستهها (Packages) ساخته شده است. برنامهها از یک بسته اصلی به نام <code>main</code> شروع میشوند که نقطه ورودی برنامه، یعنی تابع <code>main</code> را شامل میشود.
=== اجزای یک برنامه ساده گو ===
یک برنامهی حداقلی گو شامل موارد زیر است:
# تعریف بسته (<code>package</code>)
# وارد کردن بستههای مورد نیاز (<code>import</code>)
# تعریف تابع اصلی (<code>func main</code>)
مثال برنامه "سلام دنیا":
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
fmt.Println("سلام دنیا!")
}
</syntaxhighlight>
== بستهها (Packages) در زبان گو ==
بستهها واحدهای سازماندهی کد در زبان Go هستند. هر فایل Go باید در ابتدای خود نام بسته را داشته باشد.
* بستهها به گروهبندی کدهای مرتبط کمک میکنند.
* بستهی <code>main</code> مشخص میکند برنامه اجرایی است.
* بستههای غیر <code>main</code> معمولا کتابخانه یا کدهای قابل استفاده مجدد را تعریف میکنند.
* هر بسته میتواند شامل توابع، متغیرها، ساختارها (structs) و اینترفیسها باشد.
=== تعریف بسته ===
در ابتدای هر فایل باید نام بسته مشخص شود، برای مثال:
<syntaxhighlight lang="go">
package greetings
</syntaxhighlight>
== وارد کردن بستهها (Import) ==
برای استفاده از قابلیتهای بستههای دیگر، باید آنها را وارد (<code>import</code>) کنید. وارد کردن به دو شکل انجام میشود:
* وارد کردن تکی:
<syntaxhighlight lang="go">
import "fmt"
</syntaxhighlight>
* وارد کردن چندتایی با پرانتز:
<syntaxhighlight lang="go">
import (
"fmt"
"math/rand"
)
</syntaxhighlight>
== بستههای استاندارد ==
زبان Go دارای مجموعه بزرگی از بستههای استاندارد است که امکانات متنوعی را فراهم میکنند، مانند:
* <code>fmt</code> برای ورودی/خروجی متنی
* <code>math</code> و <code>math/rand</code> برای عملیات ریاضی و تولید اعداد تصادفی
* <code>net/http</code> برای برنامهنویسی شبکه و وب
* <code>os</code> برای تعامل با سیستمعامل
== ساختار و استفاده از بستههای سفارشی ==
برای ساخت بستههای اختصاصی میتوانید در یک پوشه جداگانه فایلهای Go ایجاد کنید و نام بسته را در ابتدای فایل مشخص کنید.
مثال بستهای به نام <code>greetings</code>:
<syntaxhighlight lang="go">
// فایل greetings/greetings.go
package greetings
import "fmt"
// تابعی برای نمایش پیام خوشآمدگویی
func SayHello(name string) {
fmt.Printf("سلام، %s!\n", name)
}
</syntaxhighlight>
و برای استفاده از این بسته در برنامه اصلی:
<syntaxhighlight lang="go">
package main
import "yourmodule/greetings" // مسیر ماژول خود را وارد کنید
func main() {
greetings.SayHello("علی")
}
</syntaxhighlight>
== مدیریت ماژولها و وارد کردن بستهها ==
از نسخه Go 1.11 به بعد، سیستم مدیریت ماژولها (Go Modules) معرفی شده است که امکان مدیریت وابستگیها و بستهها را آسان میکند.
برای فعالسازی ماژول در پروژه:
<syntaxhighlight lang="bash">
go mod init yourmodule
</syntaxhighlight>
برای اضافه کردن بستههای خارجی از دستور:
<syntaxhighlight lang="bash">
go get example.com/some/package
</syntaxhighlight>
== قوانین نامگذاری بستهها ==
* نام بسته باید کوتاه و به زبان انگلیسی باشد.
* معمولاً نام بسته مطابق با نام پوشه است.
* نام بسته باید معرف وظیفه و محتوای آن باشد.
* در بستهها از حروف کوچک استفاده میشود و فاصله یا کاراکترهای خاص مجاز نیست.
== ساختار پوشهها و بستهها در پروژههای بزرگ ==
برای مدیریت پروژههای بزرگ، معمولاً ساختار دایرکتوری به این شکل است:
<code>
/yourmodule
/cmd # فایلهای اجرایی (main packages)
/pkg # کتابخانههای عمومی
/internal # کدهای خصوصی ماژول
/greetings # بسته greetings
</code>
== نکات مهم در استفاده از بستهها ==
* تنها توابع، متغیرها و نوعهایی که نام آنها با حرف بزرگ شروع شود (Capitalized) برای بستههای دیگر قابل دسترسیاند (public).
* نامهای با حرف کوچک خصوصی (private) به همان بسته محدود میشوند.
* برای دسترسی به اعضای بسته، نام بسته به عنوان پیشوند استفاده میشود، مانند <code>fmt.Println</code>.
== جمعبندی ==
* زبان Go بر پایه بستهها ساخته شده است که کد را سازماندهی و قابل استفاده مجدد میکنند.
* هر فایل Go باید یک بسته مشخص داشته باشد.
* بسته <code>main</code> برای برنامههای اجرایی و بستههای دیگر برای کتابخانهها استفاده میشود.
* با استفاده از کلیدواژه <code>import</code> میتوانید بستههای استاندارد و سفارشی را وارد کنید.
* سیستم مدیریت ماژول (Go Modules) وابستگیها را سادهتر میکند.
* نامگذاری و ساختار مناسب بستهها کلید نگهداری و توسعه راحت کدهای بزرگ است.
[[رده:زبان برنامهنویسی گو]]
pskfbvjxt9ghgr9mv7w67l0j4813jys
135367
135366
2026-09-29T09:26:14Z
Fwldom
26269
اصلاح ارقام، اصلاح فاصلهٔ مجازی، اصلاح سجاوندی
135367
wikitext
text/x-wiki
{{سرصفحه
| عنوان = ساختار و نحوه استفاده از بستهها
| قسمت =
| قبلی = [[زبان برنامهنویسی گو/متدها و دریافتکنندهها |متدها و دریافتکنندهها]]
| بعدی = [[زبان برنامهنویسی گو/مدیریت وابستگیها با استفاده از ماژولها|مدیریت وابستگیها با استفاده از ماژولها]]
| یادداشت = [[زبان برنامهنویسی گو]]
}}
== ساختار برنامههای گو ==
هر برنامهی گو از بستهها (Packages) ساخته شده است. برنامهها از یک بسته اصلی به نام <code>main</code> شروع میشوند که نقطه ورودی برنامه، یعنی تابع <code>main</code> را شامل میشود.
=== اجزای یک برنامه ساده گو ===
یک برنامهی حداقلی گو شامل موارد زیر است:
# تعریف بسته (<code>package</code>)
# وارد کردن بستههای مورد نیاز (<code>import</code>)
# تعریف تابع اصلی (<code>func main</code>)
مثال برنامه "سلام دنیا":
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
fmt.Println("سلام دنیا!")
}
</syntaxhighlight>
== بستهها (Packages) در زبان گو ==
بستهها واحدهای سازماندهی کد در زبان Go هستند. هر فایل Go باید در ابتدای خود نام بسته را داشته باشد.
* بستهها به گروهبندی کدهای مرتبط کمک میکنند.
* بستهی <code>main</code> مشخص میکند برنامه اجرایی است.
* بستههای غیر <code>main</code> معمولا کتابخانه یا کدهای قابل استفاده مجدد را تعریف میکنند.
* هر بسته میتواند شامل توابع، متغیرها، ساختارها (structs) و اینترفیسها باشد.
=== تعریف بسته ===
در ابتدای هر فایل باید نام بسته مشخص شود، برای مثال:
<syntaxhighlight lang="go">
package greetings
</syntaxhighlight>
== وارد کردن بستهها (Import) ==
برای استفاده از قابلیتهای بستههای دیگر، باید آنها را وارد (<code>import</code>) کنید. وارد کردن به دو شکل انجام میشود:
* وارد کردن تکی:
<syntaxhighlight lang="go">
import "fmt"
</syntaxhighlight>
* وارد کردن چندتایی با پرانتز:
<syntaxhighlight lang="go">
import (
"fmt"
"math/rand"
)
</syntaxhighlight>
== بستههای استاندارد ==
زبان Go دارای مجموعه بزرگی از بستههای استاندارد است که امکانات متنوعی را فراهم میکنند، مانند:
* <code>fmt</code> برای ورودی/خروجی متنی
* <code>math</code> و <code>math/rand</code> برای عملیات ریاضی و تولید اعداد تصادفی
* <code>net/http</code> برای برنامهنویسی شبکه و وب
* <code>os</code> برای تعامل با سیستمعامل
== ساختار و استفاده از بستههای سفارشی ==
برای ساخت بستههای اختصاصی میتوانید در یک پوشه جداگانه فایلهای Go ایجاد کنید و نام بسته را در ابتدای فایل مشخص کنید.
مثال بستهای به نام <code>greetings</code>:
<syntaxhighlight lang="go">
// فایل greetings/greetings.go
package greetings
import "fmt"
// تابعی برای نمایش پیام خوشآمدگویی
func SayHello(name string) {
fmt.Printf("سلام، %s!\n", name)
}
</syntaxhighlight>
و برای استفاده از این بسته در برنامه اصلی:
<syntaxhighlight lang="go">
package main
import "yourmodule/greetings" // مسیر ماژول خود را وارد کنید
func main() {
greetings.SayHello("علی")
}
</syntaxhighlight>
== مدیریت ماژولها و وارد کردن بستهها ==
از نسخه Go 1.11 به بعد، سیستم مدیریت ماژولها (Go Modules) معرفی شده است که امکان مدیریت وابستگیها و بستهها را آسان میکند.
برای فعالسازی ماژول در پروژه:
<syntaxhighlight lang="bash">
go mod init yourmodule
</syntaxhighlight>
برای اضافه کردن بستههای خارجی از دستور:
<syntaxhighlight lang="bash">
go get example.com/some/package
</syntaxhighlight>
== قوانین نامگذاری بستهها ==
* نام بسته باید کوتاه و به زبان انگلیسی باشد.
* معمولاً نام بسته مطابق با نام پوشه است.
* نام بسته باید معرف وظیفه و محتوای آن باشد.
* در بستهها از حروف کوچک استفاده میشود و فاصله یا کاراکترهای خاص مجاز نیست.
== ساختار پوشهها و بستهها در پروژههای بزرگ ==
برای مدیریت پروژههای بزرگ، معمولاً ساختار دایرکتوری به این شکل است:
<code>
/yourmodule
/cmd # فایلهای اجرایی (main packages)
/pkg # کتابخانههای عمومی
/internal # کدهای خصوصی ماژول
/greetings # بسته greetings
</code>
== نکات مهم در استفاده از بستهها ==
* تنها توابع، متغیرها و نوعهایی که نام آنها با حرف بزرگ شروع شود (Capitalized) برای بستههای دیگر قابل دسترسیاند (public).
* نامهای با حرف کوچک خصوصی (private) به همان بسته محدود میشوند.
* برای دسترسی به اعضای بسته، نام بسته به عنوان پیشوند استفاده میشود، مانند <code>fmt.Println</code>.
== جمعبندی ==
* زبان Go بر پایه بستهها ساخته شده است که کد را سازماندهی و قابل استفاده مجدد میکنند.
* هر فایل Go باید یک بسته مشخص داشته باشد.
* بسته <code>main</code> برای برنامههای اجرایی و بستههای دیگر برای کتابخانهها استفاده میشود.
* با استفاده از کلیدواژه <code>import</code> میتوانید بستههای استاندارد و سفارشی را وارد کنید.
* سیستم مدیریت ماژول (Go Modules) وابستگیها را سادهتر میکند.
* نامگذاری و ساختار مناسب بستهها کلید نگهداری و توسعه راحت کدهای بزرگ است.
[[رده:زبان برنامهنویسی گو]]
huyj5h6l3odjf49tdzxmirnuft1i6cf
بحث کاربر:Shamkhaliam
3
41401
135364
132362
2026-09-29T09:22:43Z
Xqbot
27251
اصلاح تغییرمسیر دوتایی به [[بحث کاربر:IRAN]]
135364
wikitext
text/x-wiki
#تغییر_مسیر [[بحث کاربر:IRAN]]
pbf19ij1wgbppqkre40lu7tl1yxdy6q
زبان برنامهنویسی گو/متدها و دریافتکنندهها
0
41505
135365
135048
2026-09-29T09:23:44Z
Fwldom
26269
135365
wikitext
text/x-wiki
{{سرصفحه
| عنوان = متدها و دریافتکنندهها
| قسمت =
| قبلی = [[زبان برنامهنویسی گو/توابع ناشناس و توابع به عنوان مقادیر|توابع ناشناس و توابع به عنوان مقادیر]]
| بعدی = [[زبان برنامهنویسی گو/ساختار و نحوه استفاده از بستهها|ساختار و نحوه استفاده از بستهها]]
| یادداشت = [[زبان برنامهنویسی گو]]
}}
== متدها و دریافتکنندهها در Go ==
در زبان برنامهنویسی '''Go''' علاوه بر توابع عادی، قابلیتی به نام '''متد (Method)''' وجود دارد.
متدها مشابه توابع هستند اما با یک تفاوت مهم: آنها به یک '''نوع (Type)''' خاص مرتبط میشوند.
این ارتباط از طریق چیزی به نام '''دریافتکننده (Receiver)''' برقرار میگردد.
== تعریف متد ==
یک متد در Go در واقع یک تابع است که یک '''دریافتکننده''' دارد.
دریافتکننده مشخص میکند که این متد متعلق به چه نوعی است.
<syntaxhighlight lang="go">
package main
import "fmt"
// تعریف یک نوع سفارشی
type Person struct {
name string
age int
}
// تعریف متد برای نوع Person
func (p Person) Greet() {
fmt.Println("سلام، من", p.name, "هستم و", p.age, "سال دارم.")
}
func main() {
p := Person{name: "علی", age: 30}
p.Greet() // فراخوانی متد
}
</syntaxhighlight>
== دریافتکننده (Receiver) ==
دریافتکننده به دو صورت تعریف میشود:
* '''دریافتکنندهٔ مقداری (Value Receiver)'''
* '''دریافتکنندهٔ اشارهگری (Pointer Receiver)'''
=== دریافتکنندهٔ مقداری ===
اگر دریافتکننده از نوع مقداری باشد، متد روی یک '''کپی''' از مقدار اصلی عمل میکند.
<syntaxhighlight lang="go">
package main
import "fmt"
type Rectangle struct {
width, height int
}
// متد با دریافتکننده مقداری
func (r Rectangle) Area() int {
return r.width * r.height
}
func main() {
rect := Rectangle{width: 10, height: 5}
fmt.Println("مساحت:", rect.Area())
}
</syntaxhighlight>
در این مثال، متد Area فقط دادهها را میخواند و تغییری ایجاد نمیکند، پس دریافتکنندهٔ مقداری کافی است.
=== دریافتکنندهٔ اشارهگری ===
اگر دریافتکننده از نوع اشارهگر باشد، متد روی '''خود شیء اصلی''' عمل میکند نه روی یک کپی.
این روش زمانی کاربرد دارد که بخواهیم وضعیت شیء را تغییر دهیم یا از کپی غیرضروری جلوگیری کنیم.
<syntaxhighlight lang="go">
package main
import "fmt"
type Counter struct {
value int
}
// متد با دریافتکننده اشارهگری
func (c *Counter) Increment() {
c.value++
}
func main() {
c := Counter{}
c.Increment()
fmt.Println("مقدار شمارنده:", c.value)
}
</syntaxhighlight>
اگر در این مثال از دریافتکنندهٔ مقداری استفاده میکردیم، تغییرات در نسخهٔ کپی انجام میشد و مقدار اصلی تغییر نمیکرد.
== انتخاب بین Value Receiver و Pointer Receiver ==
* اگر متد فقط دادهها را میخواند و نیازی به تغییر ندارد → '''مقداری'''
* اگر متد نیاز به تغییر مقادیر دارد یا نوع داده بزرگ است → '''اشارهگری'''
== متدها در انواع غیرساختاری ==
در Go حتی میتوان برای انواع سفارشی غیرساختاری (مانند نوع عددی) هم متد تعریف کرد.
<syntaxhighlight lang="go">
package main
import "fmt"
type MyInt int
// متدی برای نوع عددی سفارشی
func (m MyInt) IsEven() bool {
return m%2 == 0
}
func main() {
var n MyInt = 10
fmt.Println(n, "زوج است؟", n.IsEven())
}
</syntaxhighlight>
== مقایسه متدها و توابع ==
* توابع مستقل تعریف میشوند و به هیچ نوعی تعلق ندارند.
* متدها همیشه یک دریافتکننده دارند و به نوع خاصی متصل هستند.
== جمعبندی ==
* متدها در Go در واقع توابعی با دریافتکننده هستند.
* دریافتکننده میتواند مقداری یا اشارهگری باشد.
* دریافتکنندهٔ مقداری برای خواندن دادهها مناسب است، در حالیکه دریافتکنندهٔ اشارهگری برای تغییر وضعیت شیء استفاده میشود.
* امکان تعریف متد برای هر نوع سفارشی (ساختارها، نوعهای عددی و ...) وجود دارد.
این قابلیت به شما اجازه میدهد رفتارها را به انواع مختلف اضافه کنید و کدی تمیزتر و شیءگراتر بنویسید.
[[رده:زبان برنامهنویسی گو]]
6yxgz0xydxpy18ed9prr7v8tcjiedar
بحث کاربر:Vivairan2
3
41992
135289
134326
2026-09-29T06:12:55Z
Fwldom
26269
/* درخواست مدیرشدن */ بخش جدید
135289
wikitext
text/x-wiki
== خوش آمدید ==
[[File:Carl Spitzweg 021-detail.jpg|thumb|left|180px|خوشآمدید!]]
<br/>
سلام {{PAGENAME}}، به ویکیکتاب خوش آمدید. از مشارکت شما سپاسگزارم. امیدوارم که از اینجا خوشتان بیاید و تصمیم به ماندن بگیرید. راهنماهای ویکیکتاب در [[راهنما:فهرست|اینجا]] است اما پیوندهای زیر برای کاربرهای جدید مفیدند:
{|
|-
|[[پرونده:Noia 64 apps help index.png|30px|right|link=ویکیکتاب:ویکیکتاب چیست؟|ویکینسک (ویکیکتاب) چیست؟]] || [[ویکیکتاب:ویکیکتاب چیست؟|ویکینسک (ویکیکتاب) چیست؟]]
|-
| [[پرونده:Nuvola apps ksig.png|30px|right|link=ویکیکتاب:آموزش سریع|آموزش سریع]] || [[ویکیکتاب:آموزش سریع|آموزش سریع]] آموزش کار با زبان مدیاویکی (محیط ویکیکتاب)
|-
| [[پرونده:Cscr-featured.svg|30px|right|link=ویکیکتاب:کتابهای برگزیده|کتابهای برگزیده]] || [[ویکیکتاب:کتابهای برگزیده|کتابهای برگزیده]] فهرستی از کتابهای برگزیده
|-
| [[پرونده:Nuvola apps chat.png|30px|right|link=ویکیکتاب:میز تحریر|میز تحریر]]||[[ویکیکتاب:میز تحریر]] برای گفتگو دربارهٔ مسائل فنی و سیاستها.
|-
| [[پرونده:Nuvola_apps_bookcase_1.svg|30px|right|link=ویکیکتاب:خودآموز/کمک کردن در یکی از کتابهای موجود|کمک کردن در یکی از کتابهای موجود]]||[[ویکیکتاب:خودآموز/کمک کردن در یکی از کتابهای موجود|کمک کردن در یکی از کتابهای موجود]] راههای تکمیل و ویرایش ایبوکهای ویکیکتاب
|-
|[[File:Bucket in the sand.svg|right|50px|link=ویکیکتاب:صفحه تمرین|صفحه تمرین]]||[[ویکیکتاب:صفحه تمرین|صفحه تمرین]] برای تمرین ویرایش
|-
|[[پرونده:Nuvola apps agent.svg|30px|right|link=w:ویکیکتاب:خودآموز|آموزش پیشرفته]]||[[w:ویکیپدیا:خودآموز|آموزش پیشرفته]]
|-
|'''پروژههای دیگر بنیاد'''||[[پرونده:Wikipedia-logo.png|20px|link=w:صفحه_اصلی|ویکیپدیا]][[پرونده:HSWikimedia.svg|25px|link=m:Special:Recentchanges|فراویکی]] [[پرونده:HSCommons.svg|25px|link=commons:Special:Recentchanges|ویکیانبار]][[پرونده:HSWNews.svg|25px|link=n:ویژه:تغییرات اخیر|ویکیخبر]] [[پرونده:HSWtionary.svg|25px|link=wikt:صفحه_اصلی|ویکیواژه]] [[پرونده:HSWQuote.svg|25px|link=q:صفحه_اصلی|ویکیگفتاورد]][[پرونده:HSWSource.svg|30px|link=s:صفحه_اصلی|ویکینبشته]][[پرونده:Wikidata-logo.svg|25px|link=wikidata:صفحه_اصلی|ویکیداده]]
|}
امیدوارم از ''[[ویکینسک:ویکینسکنویسان|ویکینسکنویس]]'' بودن لذت ببرید! لطفاً برای آزمایش از [[ویکیکتاب:گودال ماسهبازی]] استفاده کنید. باز هم خوش آمد میگویم.شاد باشید!
-- [[کاربر:New user message|New user message]] ([[بحث کاربر:New user message|بحث]]) ۴ ژوئن ۲۰۲۶، ساعت ۰۶:۱۱ (UTC)
== درخواست مدیرشدن ==
درود بر شما، شما دوباره درخواست مدیرشدن ارسال کردید که با توجه به صلاح دید ویکیمدیا مدیر جدید انتخاب شده است. تا 2 دی 1405 بعد از آن میتوانید درخواست مدیریت خود را در صفحه نظرخواهی بگذارید.
* چندین مورد هرزهنگاری مستند شده (کپی برداری مطالب از سایر ویکیها بدون تغییر)
* همچنین سوگیری در صفحات تاریخ ایران.
این ها همه میتوانند دلایلی برای بستن دسترسی موقت شما باشند، خواهشمندم به ویرایش ادامه بدهید و موارد بالا را رعایت بفرمائید در غیر اینصورت با توجه به قوانین دسترسی ویرایش شما را بصورت موقت خواهم بست.
سپاس بیکران
نکته: اگر نیاز به دسترسی خاصی برای کمک به ویکیکتاب دارید میتوانید در صفحه بحث اینجانب درخواست خود را ارسال بفرمائید. [[کاربر:Fwldom|Fwldom]] ([[بحث کاربر:Fwldom|بحث]]) ۲۹ سپتامبر ۲۰۲۶، ساعت ۰۶:۱۲ (UTC)
afghamb53qeuifum3ltna03j0jed9j7
135320
135289
2026-09-29T08:26:23Z
Fwldom
26269
/* خرابکاری، سوگیری - هشدار به کاربر */ بخش جدید
135320
wikitext
text/x-wiki
== خوش آمدید ==
[[File:Carl Spitzweg 021-detail.jpg|thumb|left|180px|خوشآمدید!]]
<br/>
سلام {{PAGENAME}}، به ویکیکتاب خوش آمدید. از مشارکت شما سپاسگزارم. امیدوارم که از اینجا خوشتان بیاید و تصمیم به ماندن بگیرید. راهنماهای ویکیکتاب در [[راهنما:فهرست|اینجا]] است اما پیوندهای زیر برای کاربرهای جدید مفیدند:
{|
|-
|[[پرونده:Noia 64 apps help index.png|30px|right|link=ویکیکتاب:ویکیکتاب چیست؟|ویکینسک (ویکیکتاب) چیست؟]] || [[ویکیکتاب:ویکیکتاب چیست؟|ویکینسک (ویکیکتاب) چیست؟]]
|-
| [[پرونده:Nuvola apps ksig.png|30px|right|link=ویکیکتاب:آموزش سریع|آموزش سریع]] || [[ویکیکتاب:آموزش سریع|آموزش سریع]] آموزش کار با زبان مدیاویکی (محیط ویکیکتاب)
|-
| [[پرونده:Cscr-featured.svg|30px|right|link=ویکیکتاب:کتابهای برگزیده|کتابهای برگزیده]] || [[ویکیکتاب:کتابهای برگزیده|کتابهای برگزیده]] فهرستی از کتابهای برگزیده
|-
| [[پرونده:Nuvola apps chat.png|30px|right|link=ویکیکتاب:میز تحریر|میز تحریر]]||[[ویکیکتاب:میز تحریر]] برای گفتگو دربارهٔ مسائل فنی و سیاستها.
|-
| [[پرونده:Nuvola_apps_bookcase_1.svg|30px|right|link=ویکیکتاب:خودآموز/کمک کردن در یکی از کتابهای موجود|کمک کردن در یکی از کتابهای موجود]]||[[ویکیکتاب:خودآموز/کمک کردن در یکی از کتابهای موجود|کمک کردن در یکی از کتابهای موجود]] راههای تکمیل و ویرایش ایبوکهای ویکیکتاب
|-
|[[File:Bucket in the sand.svg|right|50px|link=ویکیکتاب:صفحه تمرین|صفحه تمرین]]||[[ویکیکتاب:صفحه تمرین|صفحه تمرین]] برای تمرین ویرایش
|-
|[[پرونده:Nuvola apps agent.svg|30px|right|link=w:ویکیکتاب:خودآموز|آموزش پیشرفته]]||[[w:ویکیپدیا:خودآموز|آموزش پیشرفته]]
|-
|'''پروژههای دیگر بنیاد'''||[[پرونده:Wikipedia-logo.png|20px|link=w:صفحه_اصلی|ویکیپدیا]][[پرونده:HSWikimedia.svg|25px|link=m:Special:Recentchanges|فراویکی]] [[پرونده:HSCommons.svg|25px|link=commons:Special:Recentchanges|ویکیانبار]][[پرونده:HSWNews.svg|25px|link=n:ویژه:تغییرات اخیر|ویکیخبر]] [[پرونده:HSWtionary.svg|25px|link=wikt:صفحه_اصلی|ویکیواژه]] [[پرونده:HSWQuote.svg|25px|link=q:صفحه_اصلی|ویکیگفتاورد]][[پرونده:HSWSource.svg|30px|link=s:صفحه_اصلی|ویکینبشته]][[پرونده:Wikidata-logo.svg|25px|link=wikidata:صفحه_اصلی|ویکیداده]]
|}
امیدوارم از ''[[ویکینسک:ویکینسکنویسان|ویکینسکنویس]]'' بودن لذت ببرید! لطفاً برای آزمایش از [[ویکیکتاب:گودال ماسهبازی]] استفاده کنید. باز هم خوش آمد میگویم.شاد باشید!
-- [[کاربر:New user message|New user message]] ([[بحث کاربر:New user message|بحث]]) ۴ ژوئن ۲۰۲۶، ساعت ۰۶:۱۱ (UTC)
== درخواست مدیرشدن ==
درود بر شما، شما دوباره درخواست مدیرشدن ارسال کردید که با توجه به صلاح دید ویکیمدیا مدیر جدید انتخاب شده است. تا 2 دی 1405 بعد از آن میتوانید درخواست مدیریت خود را در صفحه نظرخواهی بگذارید.
* چندین مورد هرزهنگاری مستند شده (کپی برداری مطالب از سایر ویکیها بدون تغییر)
* همچنین سوگیری در صفحات تاریخ ایران.
این ها همه میتوانند دلایلی برای بستن دسترسی موقت شما باشند، خواهشمندم به ویرایش ادامه بدهید و موارد بالا را رعایت بفرمائید در غیر اینصورت با توجه به قوانین دسترسی ویرایش شما را بصورت موقت خواهم بست.
سپاس بیکران
نکته: اگر نیاز به دسترسی خاصی برای کمک به ویکیکتاب دارید میتوانید در صفحه بحث اینجانب درخواست خود را ارسال بفرمائید. [[کاربر:Fwldom|Fwldom]] ([[بحث کاربر:Fwldom|بحث]]) ۲۹ سپتامبر ۲۰۲۶، ساعت ۰۶:۱۲ (UTC)
== خرابکاری، سوگیری - هشدار به کاربر ==
درود بر شما، تغییرات نامنساب و گاها خرابکاری یا سوگیری که با توجه به قوانین ویکی کتاب محسوب میشوند شامل موارد زیر است و با توجه به این موارد هشدار به شما میدهم.
* کپی از سایر ویکیها بدون تغییر و لینک های اشتباه در ([[ویکیکتاب:شیوه ارجاع به منابع]] و ...)
* سوگیری در کتاب [[تاریخ ایران]] با استفاده از نام توهین آمیز و اضافه کردن بخش جدیدی که نیاز نبود.
* یک اشتباه دیگر باعث میشود که حساب شما محدود شود.
<div style="color: #000; font-size: 1em; width: 90%; border: 1px solid #F30; background-color: #FFF0C0; text-align:center; direction:rtl; clear:both; padding:4px; margin:4px auto;">
[[پرونده:Stop2.png|right|50px]]
با درود! تغییراتی که در صفحهها میدهید [[w:وپ:خرابکار|خرابکاری]] محسوب میشود. خواهشمندیم که دست نگه دارید. برای تمرین، به [[ویکیکتاب:صفحه تمرین|صفحهٔ تمرین]] بروید. برای کسب اطلاعات بیشتر به [[وک:راهنما|صفحهٔ راهنما]] رجوع کنید.'''
</div>
<blockquote>[[رده:الگوهای هشدار به کاربر]]</blockquote>[[کاربر:Fwldom|Fwldom]] ([[بحث کاربر:Fwldom|بحث]]) ۲۹ سپتامبر ۲۰۲۶، ساعت ۰۸:۲۶ (UTC)
fp6rcs53p838pqpsjmu0xek7hcxvl2a
ویکیکودک:دایناسورها/موزاسور
110
42082
135331
134906
2026-09-29T08:45:04Z
Vivairan2
28134
افزودن مطلب جدید
135331
wikitext
text/x-wiki
{{دایناسور کودک}}
== آنها شبیه به چه چیزی بودند؟ ==
موزاسور به معنی «دایناسور رودخانهای» یک نوع سوسمار دریایی بزرگ بودند که در آخرین عصر دایناسورها در حدود ۷۰ میلیون سال پیش بر دریاها حکمرانی میکردند. آنها خزندههایی دریایی بودند که با بزمچههای امروزی ارتباط داشتند. موزاسورها با چهار باله خود و یک دم شبیه کوسه قادر بودند شکارهایی را به سرعت میدویدند تعقیب کنند و با آرواره غولپیکر خود آنها را قورت داده و یکجا بجوند. طول بدن موزاسور ۱۵-۱۲ متر بود البته در میانشان موزاسورهایی با طول بدن ۱۷ متر نیز یافت میشد.
==آنها چه میخوردند؟ ==
موزاسور، شکارچی رأس هرم غذایی بود، بنابراین از هیچ چیز نمیترسید به جز موزاسورهای دیگر.
==آنها در چه زمانی زندگی میکردند؟==
==آنها در کجا زندگی میکردند؟==
==آنها چکونه کشف شدند؟==
==چهچیزهایی نیاز داریم درباره شان بدانیم؟==
[[رده:دایناسورها]]
j86fn0osq83e55sfmfkfyfe6jufjehr
بحث کاربر:Mehrabhasanikha
3
42131
135295
135184
2026-09-29T06:40:55Z
Fwldom
26269
/* به ویکی کتاب، خوش آمدید! */ بخش جدید
135295
wikitext
text/x-wiki
== خوش آمدید ==
[[File:Carl Spitzweg 021-detail.jpg|thumb|left|180px|خوشآمدید!]]
<br/>
سلام {{PAGENAME}}، به ویکیکتاب خوش آمدید. از مشارکت شما سپاسگزارم. امیدوارم که از اینجا خوشتان بیاید و تصمیم به ماندن بگیرید. راهنماهای ویکیکتاب در [[راهنما:فهرست|اینجا]] است اما پیوندهای زیر برای کاربرهای جدید مفیدند:
{|
|-
|[[پرونده:Noia 64 apps help index.png|30px|right|link=ویکیکتاب:ویکیکتاب چیست؟|ویکینسک (ویکیکتاب) چیست؟]] || [[ویکیکتاب:ویکیکتاب چیست؟|ویکینسک (ویکیکتاب) چیست؟]]
|-
| [[پرونده:Nuvola apps ksig.png|30px|right|link=ویکیکتاب:آموزش سریع|آموزش سریع]] || [[ویکیکتاب:آموزش سریع|آموزش سریع]] آموزش کار با زبان مدیاویکی (محیط ویکیکتاب)
|-
| [[پرونده:Cscr-featured.svg|30px|right|link=ویکیکتاب:کتابهای برگزیده|کتابهای برگزیده]] || [[ویکیکتاب:کتابهای برگزیده|کتابهای برگزیده]] فهرستی از کتابهای برگزیده
|-
| [[پرونده:Nuvola apps chat.png|30px|right|link=ویکیکتاب:میز تحریر|میز تحریر]]||[[ویکیکتاب:میز تحریر]] برای گفتگو دربارهٔ مسائل فنی و سیاستها.
|-
| [[پرونده:Nuvola_apps_bookcase_1.svg|30px|right|link=ویکیکتاب:خودآموز/کمک کردن در یکی از کتابهای موجود|کمک کردن در یکی از کتابهای موجود]]||[[ویکیکتاب:خودآموز/کمک کردن در یکی از کتابهای موجود|کمک کردن در یکی از کتابهای موجود]] راههای تکمیل و ویرایش ایبوکهای ویکیکتاب
|-
|[[File:Bucket in the sand.svg|right|50px|link=ویکیکتاب:صفحه تمرین|صفحه تمرین]]||[[ویکیکتاب:صفحه تمرین|صفحه تمرین]] برای تمرین ویرایش
|-
|[[پرونده:Nuvola apps agent.svg|30px|right|link=w:ویکیکتاب:خودآموز|آموزش پیشرفته]]||[[w:ویکیپدیا:خودآموز|آموزش پیشرفته]]
|-
|'''پروژههای دیگر بنیاد'''||[[پرونده:Wikipedia-logo.png|20px|link=w:صفحه_اصلی|ویکیپدیا]][[پرونده:HSWikimedia.svg|25px|link=m:Special:Recentchanges|فراویکی]] [[پرونده:HSCommons.svg|25px|link=commons:Special:Recentchanges|ویکیانبار]][[پرونده:HSWNews.svg|25px|link=n:ویژه:تغییرات اخیر|ویکیخبر]] [[پرونده:HSWtionary.svg|25px|link=wikt:صفحه_اصلی|ویکیواژه]] [[پرونده:HSWQuote.svg|25px|link=q:صفحه_اصلی|ویکیگفتاورد]][[پرونده:HSWSource.svg|30px|link=s:صفحه_اصلی|ویکینبشته]][[پرونده:Wikidata-logo.svg|25px|link=wikidata:صفحه_اصلی|ویکیداده]]
|}
امیدوارم از ''[[ویکینسک:ویکینسکنویسان|ویکینسکنویس]]'' بودن لذت ببرید! لطفاً برای آزمایش از [[ویکیکتاب:گودال ماسهبازی]] استفاده کنید. باز هم خوش آمد میگویم.شاد باشید!
-- [[کاربر:New user message|New user message]] ([[بحث کاربر:New user message|بحث]]) ۲۳ سپتامبر ۲۰۲۶، ساعت ۱۸:۳۸ (UTC)
== به ویکی کتاب، خوش آمدید! ==
درود بر شما،
به ویکی کتاب خوش آمدید میتوانید ویرایش یا ایجاد کتابها رو شروع کنید:
* [[راهنما:فهرست|راهنما برای شروع]]
دلیل محتوای صفحه کاربریتان را نمیدانم تبلیغات است یا معرفی کاربر؟ خواهشمندم صفحه کاربریتان را بصورت اصولی ویرایش کنید. [[کاربر:Fwldom|Fwldom]] ([[بحث کاربر:Fwldom|بحث]]) ۲۹ سپتامبر ۲۰۲۶، ساعت ۰۶:۴۰ (UTC)
7rkxtcow64gsiyjf0b7bejwnjqso4c2
ویکیکتاب:شیوه ارجاع به منابع
4
42135
135317
135262
2026-09-29T08:21:21Z
Vivairan2
28134
در ویکیکتاب ممکن است گاهی نیاز به دیدگاه کمی جانبدارانه باشد. قوانین ویکیکتاب مستقل از ویکیپدیا است.
135317
wikitext
text/x-wiki
{{فهرست رهنمودها}}
{{رهنمود|وک:شام|وک:شابم|وک:منابع|وک:شیوهم|وک:ارجاعدهی|وک:یادکرد}}
{{سرنویس|بهتر است ابتدا [[ویکیکتاب:تأییدپذیری|سیاست تأییدپذیری]] را دربارهٔ معتبر بودن منابع بخوانید.}}
ساختاربندی فهرست منابع یک کتاب [[وک:ویکیکتاب چیست؟|ویکیکتاب]] جزو جزئیاتی است که در درجهٔ دوم اهمیت قرار دارند و در حال حاضر در ویکیکتاب انگلیسی نیز هنوز توافق عام بر روی یک روش مشخص یادکرد منابع، بهدست نیامده است؛ بنابراین در صورتی که شما یک روش خاص (بخصوص روشهایی که بهوسیلهٔ اهل فن در آن رشتهٔ خاص استفاده میشود) را برای یادکرد منابع بکار میبرید، '''لطفاً استفاده از همان روش را ادامه دهید'''. اما در صورتی که نمیتوانید در مورد اینکه چه شیوه و روشی را انتخاب کنید، تصمیم بگیرید یا نمیدانید چه اطلاعاتی را در یادکرد منبع باید گنجاند، به خواندن این رهنمود ادامه دهید.
در این رهنمود یک شیوهٔ نوعی بر مبنای شیوهٔ استانداردی که در کتاب ''شیوهنامهٔ شیکاگو'' از آن با عنوان «ساختاربندی علمی» یاد شده، آمده است. در ''شیوهنامهٔ شیکاگو''، که اینجا هم از آن پیروی شده است، یادکرد منابع (یعنی ارجاع به منابع برای مستند کردن ادعا) در پانویس است و پانویسها با شماره مشخص میشود. میتوان در پایان رساله فهرستی الفبایی از مآخذ ذکر کرد اما اجباری نیست، به شرطی که یادکرد منابع در پانویسها کامل و دقیق باشد. از سوی دیگر میتوان در یادکرد منابع از کوتهنوشتها و خلاصهنویسی سود جست، در این صورت ذکر کامل فهرست منابع و مآخذ اجباریاست. در ویکیپدیای فارسی شِقّ دوم پیشنهاد میشود؛ یعنی ارجاعات پانویسی به اختصار صورت میگیرد و سپس در پایان مقاله فهرست کاملی از منابع و مآخذ به ترتیب الفبایی نام خانوادگی نویسندگان ذکر میشود. یادکرد دقیق و عملی منابع در معنای کلی دو مرحله دارد. یکی اینکه جملهها و دعاوی را به منابع معتبر ارجاع دهیم و دوم فهرست کامل منابع را با اسلوب و چیدمانی خاص در پایان مقاله ذکر کنیم. در این نوشتار به هر دو جنبه پرداخته خواهد شد.
ابتدا شیوهٔ ارجاع به منابع در متن مقاله را معرفی میکنیم. پس از مطالعهٔ این بخش ویکینویس میداند که چگونه در مقاله به منابع در پانویس ارجاع دهد. در مرحلهٔ بعد روش یادکرد اطلاعات مربوط به منابع مختلف (کتاب، مقالات و…) را بررسی میکنیم. این اطلاعاتیاست که در بخش <nowiki>== منابع ==</nowiki> هر مقاله باید ذکر شود. ارائهٔ این اطلاعات (یعنی مشخصات منابع) به شیوه و اسلوب خاصی باید باشد؛ مثلاً ابتدا نام خانوادگی نویسنده باید ذکر شود و سپس نام کوچک وی. پس از آن نام کتاب به صورت ''ایتالیک'' نشان داده میشود و سپس سایر جزئیات ذکر میگردد. بخشهای مختلف این نوشتار به مهمترین جنبههای اسلوب ذکر اطلاعات کتابشناختی منابع خواهند پرداخت. فراگرفتن و به خاطر سپردن تمام این جزئیات بایسته نیست. ویکینویسان میتوانند بر حسب نیاز به این صفحه رجوع کنند. به علاوه الگوهایی برای آسانسازی کار آنها ساخته شده است که در بیشتر موارد ایشان را از دانستن جزئیات بینیاز میکند. این الگوها نیز در نوشتار معرفی شدهاند.
== یادکرد منابع، چرا و چه زمان؟ ==
=== چندرسانهای ===
جزئیات مبدأ و وضعیت حق تکثیر تصاویر و دیگر پروندههای رسانهای باید در صفحهٔ پرونده (در ویکیکتاب یا ویکیانبار) درج شود. تصویر نیز باید همانند سایر بخشهای مقالهها دارای منبع و ارجاع مناسب باشد. برای توصیفهایی نظیر [[ویکیپدیا:متن جایگزین برای تصاویر|متن جایگزین]]، که بهطور مستقیم از طریق خود تصویر قابل اثبات هستند، و برای متنی که صرفاً به شناساندن منبع میپردازد (نظیر توضیح «''[[شب پرستاره]]'' (۱۸۸۹)» برای ''[[:پرونده:VanGogh-starry night ballance1.jpg]]'')، نیازی به یادکرد نیست.
== روش اشاره به منابع در متن ==
{{میانبر|وک:ارجاع درونخطی|وک:ارجاع دقیق}}
روش اشاره به منابع این است که منابع را در بخش مربوط فهرست میکنند و در هنگام یادکرد در داخل متن به پانویس یادکرد میدهند که در آنجا نام خلاصهٔ منبع آمده است. به این روش اصطلاحاً «پانویس کوتاهشده» نیز گفته میشود.
برای وارد کردن پاورقی در داخل متن اصلی مقاله جایی که شمارهٔ پاورقی باید داده شود متن پاورقی را بین <nowiki><ref>و</ref></nowiki> ذکر میکنند. سرانجام برای نمایش همهٔ پانویسها در بخش ''پانویس'' از الگوی {{الگو|پانویس}} استفاده میکنند؛ مثلاً به این صورت:
<blockquote style="color:#999; background:white; padding:1em; border:1px solid DarkSeaGreen;">
این متن اصلی مقاله است که از کتاب خاصی<span style="color:black;">'''<ref>'''روحانی، ''کتاب دانش''، ۲۳۴.'''</ref>'''</span> و کتاب دیگری<span style="color:black;">'''<ref>'''احمدی، ''پرونده در پرونده''. '''</ref>'''</span> برداشته شده است و یک پانویس توضیحی<sup>*</sup><span style="color:black;">'''<ref>'''این یک پانویس توضیحیاست. '''</ref>'''</span> هم دارد.
{{سخ}}
{{سخ}}
<span style="color:#666;">== پانویس ==</span>
{{سخ}}
<span style="color:black;"><nowiki>{{پانویس|۲}}</nowiki></span>
{{سخ}}
{{سخ}}
<nowiki>== منابع ==</nowiki>
{{سخ}}
<nowiki>
* روحانی، محمد. ''کتاب دانش''. تهران: نشر، ۱۳۷۰.</nowiki>
{{سخ}}<nowiki>
* احمدی، احمد. ''پرونده در پرونده''. تهران: نشر۲، ۱۳۷۵.</nowiki>
</blockquote>
که در آن از <sup>[۱]</sup> و <sup>[۲]</sup> به عنوان «پانویس ارجاعی» و <sup>*[۳]</sup> به عنوان «پانویس توضیحی» بهره برده شده است. نتیجهٔ پایانی آن به صورت زیر خواهد بود:
<blockquote style="background:white; padding:1em; border:1px solid #999;">
این متن اصلی مقاله است که از کتاب خاصی<ref>روحانی، ''کتاب دانش''، ۲۳۴.</ref> و کتاب دیگری<ref>احمدی، ''پرونده در پرونده''.</ref> برداشته شده است و یک پانویس توضیحی<sup>*</sup><ref>این یک پانویس توضیحیاست.</ref> هم دارد.
{{سخ}}
{{سخ}}
<font size="5">پانویس</font>
----
{{پانویس}}
<font size="5">منابع</font>
----
* احمدی، احمد. ''پرونده در پرونده''. تهران: نشر۲، ۱۳۷۵.
* روحانی، محمد. ''کتاب دانش''. تهران: نشر، ۱۳۷۰.
</blockquote>
نکته: اگر ویرگول یا نقطه در محل منبعدهی باشد تگ <nowiki><ref>...</ref></nowiki> به طور طبیعی پس از نقطه یا ویرگول قرار میگیرد.
== الگوهای کمکی برای یادکرد منابع در ویکیپدیای فارسی ==
توصیه میشود به جای ارجاع دستی از الگوهای یادکرد استفاده کنید. خروجی این الگوها با ضابطههایی که در این صفحه توضیح داده خواهد شد منطبق است. برای یادکرد کتاب از الگوی {{الگو|یادکرد کتاب}}، برای ژورنال از {{الگو|یادکرد ژورنال}}، برای یادکرد مطالبی که در اینترنت آمده از {{الگو|یادکرد وب}} و در موارد کلی، از الگوی {{الگو|یادکرد}} استفاده کنید. همچنین برای ارجاعهای خلاصهشده در بخش پانویس میتوانید از الگوی {{الگو|پانویس کوتاهشده}} استفاده کنید. در زیر مثالی از نحوهٔ استفاده از این الگوها آمده است:
<blockquote style="color:#999; background:white; padding:1em; border:1px solid DarkSeaGreen;">
این متن اصلی مقاله است که منبع آن خبری از خبرگزاری ایسنا<span style="color:black;">'''<ref>'''<nowiki>{{</nowiki>یادکرد وب|نشانی = <nowiki>http://www.isna.ir/etc</nowiki> {{رچ}}|عنوان = عنوان خبر|ناشر = ایسنا|تاریخ بازدید = ۱۸ ژانویه ۲۰۱۳|تاریخ = ۱۱ فروردین ۱۳۸۸}}'''</ref>'''</span> و مطلبی است که در یک کتاب دیگر آمده است.<span style="color:black;">'''<ref>'''<nowiki>{{</nowiki>یادکرد|نویسنده = احمدی، احمد|عنوان = ساختار پرونده|ناشر = نشر زیبا|شهر = تهران|تاریخ = ۱۳۷۵}}'''</ref>'''</span>
{{سخ}}
{{سخ}}
<span style="color:#666;">== منابع ==</span>
{{سخ}}
<span style="color:black;"><nowiki>{{پانویس}}</nowiki></span>
</blockquote>
و نتیجهٔ آن به صورت زیر خواهد بود:
<blockquote style="background:white; padding:1em; border:1px solid #999;">
این متن اصلی مقاله است که منبع آن خبری از خبرگزاری ایسنا<ref>{{یادکرد وب|نشانی = http://www.isna.ir/etc |عنوان = عنوان خبر|ناشر = ایسنا|تاریخ بازدید = ۱۸ ژانویه ۲۰۱۳|تاریخ = ۱۱ فروردین ۱۳۸۸}}</ref> و مطلبی است که در یک کتاب دیگر آمده است.<ref>{{یادکرد|نویسنده = احمدی، احمد|عنوان = ساختار پرونده|ناشر = نشر زیبا|شهر = تهران|تاریخ = ۱۳۷۵}}</ref>
{{سخ}}
{{سخ}}
<font size="5">منابع</font>
----
{{پانویس|}}
</blockquote>
=== پانویس کوتاهشده ===
{{میانبر|وک:پک|وک:پانویس کوتاهشده}}
استفاده از پانویسهای کوتاهشده یکی از روشهای استفاده شده در ویکیکتاب فارسی است و خروجی متداول در ویکیکتاب فارسی نیز بر اساس '''شیوهنامه شیکاگو''' است. برای راحتی ایجاد پانویسهای کوتاهشده به این روش، الگوی {{الگوی|پک}} (مخفف پانویس کوتاهشده) و {{الگوی|پک/بن}} (مخفف پانویس کوتاهشده بدون نویسنده) به کار گرفته میشوند.
الگوهای پانویس کوتاهشده، یک پیوند داخلی در صفحه ایجاد میکنند که به کمک آن، با کلیک کردن روی متن پانویس میشود به اصل منبع رسید. برای مثال، با کلیک کردن روی عبارت
<blockquote style="color:#999; background:white; padding:1em; border:1px solid DarkSeaGreen;">
این متن اصلی مقاله است که منبع آن صفحهای از یک کتاب است<span style="color:black;">'''<ref>'''<nowiki>{{</nowiki>پک|اصغری|۱۳۹۲|ک=تاریخ ایران|ص=۶۶}}'''</ref>'''</span> و این مطلبی است که از صفحهای دیگر از همان کتاب دیگر آمده است.<span style="color:black;">'''<ref>'''<nowiki>{{</nowiki>پک|اصغری|۱۳۹۲|ک=تاریخ ایران|ص=۹۳}}'''</ref>'''</span> این جمله از یک خبر به عنوان منبع استفاده میکند که نام نویسنده ندارد.<span style="color:black;">'''<ref>'''<nowiki>{{</nowiki>پک/بن|تاریخنگار|ک=فرازهایی از تاریخ ایران}}'''</ref>'''</span>
{{سخ}}
{{سخ}}
<span style="color:#666;">== پانویس ==</span>
{{سخ}}
<span style="color:black;"><nowiki>{{پانویس}}</nowiki></span>
{{سخ}}
{{سخ}}
<span style="color:#666;">== منابع ==</span>
{{سخ}}
<span style="color:black;"><nowiki>* {{</nowiki>یادکرد کتاب|نام خانوادگی = اصغری|نام = احمد|عنوان = تاریخ ایران: مروری بر منابع فارسی، عربی و انگلیسی|ناشر = نشر معاصر|شهر = تهران|سال = ۱۳۹۲}}</span>
{{سخ}}
<span style="color:black;"><nowiki>* {{</nowiki>یادکرد وب|نام خانوادگی = |نام = |عنوان = فرازهایی از تاریخ ایران|ناشر = تاریخنگار| نشانی = <nowiki>http://www.example.com/etc</nowiki> |تاریخ = ۱۴ اردیبهشت ۱۳۹۴| تاریخ بازبینی = ۷ مهر ۱۳۹۵|شناسه=<nowiki>{{</nowiki>شناسه یادکرد|تاریخنگار}} }}</span>
</blockquote>
و نتیجهٔ آن به صورت زیر خواهد بود:
<blockquote style="background:white; padding:1em; border:1px solid #999;">
این متن اصلی مقاله است که منبع آن صفحهای از یک کتاب است<ref>{{پک|اصغری|۱۳۹۲|ک=تاریخ ایران|ص=۶۶}}</ref> و این مطلبی است که از صفحهای دیگر از همان کتاب دیگر آمده است.<ref>{{پک|اصغری|۱۳۹۲|ک=تاریخ ایران|ص=۹۳}}</ref> این جمله از یک خبر به عنوان منبع استفاده میکند که نام نویسنده ندارد.<ref>{{پک/بن|تاریخنگار|ک=فرازهایی از تاریخ ایران|ص=۱۱}}</ref>
{{سخ}}
{{سخ}}
<font size="5">پانویس</font>
----
{{پانویس|}}
<font size="5">منابع</font>
----
* {{یادکرد کتاب|نام خانوادگی = اصغری|نام = احمد|عنوان = تاریخ ایران: مروری بر منابع فارسی، عربی و انگلیسی|ناشر = نشر معاصر|شهر = تهران|سال = ۱۳۹۲}}
* * {{یادکرد وب|نام خانوادگی = |نام = |عنوان = فرازهایی از تاریخ ایران|ناشر = تاریخنگار|نشانی = http://www.example.com/etc |تاریخ = ۱۴ اردیبهشت ۱۳۹۴| تاریخ بازبینی = ۷ مهر ۱۳۹۵|شناسه={{شناسه یادکرد|تاریخنگار}} }}
</blockquote>
در خروجی بالا، اگر روی پیوند «اصغری، ''تاریخ ایران''» در بخش پانویس کلیک کنید، به توضیحات کامل آن منبع میروید. شمارههای ۶۶ و ۹۳ شماره صفحههای مربوط از آن منبع را نشان میدهند.
همچنین اگر روی پیوند «''فرازهایی از تاریخ ایران''» در بخش پانویس کلیک کنید، به توضیحات کامل آن منبع میروید. برای این که این ویژگی به درستی کار کند باید پارامترهای الگوی پانویس کوتاهشده و پارامترهای الگوی یادکرد را به دقت وارد کنید.
ساختار پانویس کوتاهشده به این شکل است: <code><nowiki>{{پک|نام اول|نام دوم|سال|ک=نام کتاب یا اثر|ص=شمارهٔ صفحه}}</nowiki></code> و در آن «''نام اول''» باید با نام خانوادگی نویسندهٔ اول در الگوی یادکرد مطابقت کند، «''نام دوم''» با نام خانوادگی نویسندهٔ دوم، و «''سال''» هم باید با پارامتر سال مطابقت کند. اگر اثری فقط یک نویسنده دارد، نیازی به پارامتر «''نام دوم''» نخواهد بود و ورودی به صورت <code><nowiki>{{پک|نام اول|سال|ک=نام کتاب یا اثر|ص=شمارهٔ صفحه}}</nowiki></code> وارد میشود. پارامتر «''ک''» با الگوی یادکرد مطابقت داده نمیشود و ترجیح آن است که این پارامتر شکلی کوتاه شده از عنوان اصلی یادکرد را در خود داشته باشد، مگر آن که عنوان اصلی خودش کوتاه باشد که در آن صورت عیناً تکرار میشود. به مثال زیر توجه کنید:
{|
! {{خیر|روش اشتباه}}
|
<syntaxhighlight dir=rtl>
...
متن {{پک|دریابندری|ک=کتاب مستطاب|ص=۱}}
...
* {{یادکرد کتاب|نام خانوادگی = دریابندری | نام = نجف | عنوان = کتاب مستطاب آشپزی، از سیر تا پیاز|ناشر = نشر کارنامه|سال = ۱۳۷۹|مکان = تهران}}
</syntaxhighlight>
|-
! {{بله|روش درست}}
|
<syntaxhighlight dir=rtl>
...
متن {{پک|دریابندری|۱۳۷۹|ک=کتاب مستطاب|ص=۱}}
...
* {{یادکرد کتاب|نام خانوادگی = دریابندری | نام = نجف | عنوان = کتاب مستطاب آشپزی، از سیر تا پیاز|ناشر = نشر کارنامه|سال = ۱۳۷۹|مکان = تهران}}
</syntaxhighlight>
|}
از آنجا که در الگوی ''<code><nowiki>{{یادکرد کتاب}}</nowiki></code>'' پارامترهای «''نام خانوادگی''» و «''سال''» ذکر شدهاند، پانویس کوتاهشده هم باید به آنها به همان شکل اشاره کند اگر نه پیوند بین پانویس کوتاه و یادکرد کامل از کار میافتد.
گاه پیش میآید که مطلبی نویسنده ندارد؛ در این حالت خروجی پیشفرض الگوهای یادکرد، برای استفاده با الگوی پانویس کوتاهشده مناسب نیست. همچنین اگر ترکیب نام خانوادگی و سال، یکتا نباشد (مثلاً دو منبع وجود داشته باشد که هر دوشان نویسنده و سالشان یکی باشد) لازم میشود که پیوند بین پانویس و یادکرد به صورت دستی تنظیم بشود. در تمام این حالات، میتوان از پارامتر ''شناسه'' در الگوی یادکرد استفاده کرد. برای نمونه در مثالی که در ابتدای این بخش آمد، الگوی یادکرد وب پارامتر ''شناسه'' داشت به این شکل: <code><nowiki>شناسه={{شناسه یادکرد|تاریخنگار}}</nowiki></code> و این دستور با کمک الگوی {{الگوی|شناسه یادکرد}} خروجی یادکرد را به شکلی تغییر میدهد که اگر جایی در متن از پانویس کوتاه شده به صورت <code><nowiki>{{پک|تاریخنگار|ک=..|ص=..}}</nowiki></code> استفاده بشود، پیوند بین این دو با استفاده از شناسهٔ «تاریخنگار» برقرار میگردد.
:نکته: پارامتر ''شناسه'' با نام ''ref'' نیز شناخته میشود و الگوی {{الگوی|شناسه یادکرد}} نیز گاهی با نام {{الگوی|harvid}} شناخته میشود.
=== یادکردهای لاتین ===
در منابع فارسی مرسوم است که اگر در متنی هم از منابع فارسی و عربی (که زبانهایی از راست به چپ هستند) و هم از منابع لاتین (مثلاً انگلیسی و فرانسوی که زبانهایی چپ به راست هستند) استفاده شود، متن پانویسها و یادکردهای لاتین به درستی از چپ به راست و به زبان انگلیسی (به عنوان زبان رایج در متون علمی) نوشته بشود. این کار به سادگی با کمک استفاده از پارامتر ''dir'' (مخفف direction به معنای جهت) در برچسب ''<code><nowiki><ref></nowiki></code>'' میسر است. مقدار این پارامتر در ویکیپدیای فارسی به طور پیشفرض برابر است با <code><nowiki>rtl</nowiki></code> (مخفف right-to-left یعنی راست به چپ) در نتیجه برای بیشتر منابع که به فارسی هستند، این پارامتر اصلاً ذکر نمیشود اما برای منابع لاتین مقدار آن باید به صورت <code><nowiki>ltr</nowiki></code> (مخفف left-to-right به معنی چپ به راست) ذکر بشود.
همچنین، اگر چه الگوهای یادکرد (مثل {{الگوی|یادکرد کتاب}} و {{الگوی|یادکرد وب}}) توانایی تولید خروجی به انگلیسی را نیز دارند (با کمک پارامتر ''زبان'') اما خروجی که از الگوهای مشابه انگلیسی (نظیر {{الگوی|cite book}} و {{الگوی|cite web}}) به دست میآید، استانداردتر است. در نتیجه معمولاً یادکردهای لاتین با الگوهای خانوادهٔ cite، و یادکردهای فارسی و عربی با الگوهای خانوادهٔ یادکرد ذکر میشوند.
:نکته: برخلاف الگوهای خانوادهٔ یادکرد، که اگر نام نویسنده و سال در آن ذکر بشود نیازی به وارد کردن شناسه نیست، در الگوهای خانوادهٔ cite پارامتر ''ref'' باید همیشه ذکر بشود تا پیوند پانویسهای کوتاهشده درست کار کند.
:نکته: برای این که شمارهٔ صفحه در الگوی پانویس کوتاهشده با نقطهگذاری صحیح نمایش یابد، از پارامتر <code><nowiki>زبان=en</nowiki></code> استفاده کنید.
مثال زیر، یک متن از یادکردهایی در زبانهای مختلف استفاده میکند را نشان میدهد.
<blockquote style="color:#999; background:white; padding:1em; border:1px solid DarkSeaGreen;">
این متن اصلی مقاله است که منبع آن صفحهای از یک کتاب فارسی است<span style="color:black;">'''<ref>'''<nowiki>{{</nowiki>پک|نگهبان|۱۳۸۸|ک=تاریخ ایران|ص=۶۶}}'''</ref>'''</span> و این مطلبی است که از یک کتاب عربی نقل شده است.<span style="color:black;">'''<ref>'''<nowiki>{{</nowiki>پک|زرکلی|۱۹۷۲|ک=الأعلام|ص=۴۹۷}}'''</ref>'''</span> این جمله از یک منبع انگلیسی به عنوان منبع استفاده میکند،<span style="color:black;">'''<ref dir=ltr>'''<nowiki>{{</nowiki>پک|Smith|2006|ک=Intro to Physics|ص=584|زبان=en}}'''</ref>'''</span> و این یکی از یک منبع انگلیسی که نام نویسنده ندارد.<span style="color:black;">'''<ref dir=ltr>'''<nowiki>{{</nowiki>پک/بن|Wired|ک=Quantum computing in the 20th century|زبان=en}}'''</ref>'''</span>
{{سخ}}
{{سخ}}
<span style="color:#666;">== پانویس ==</span>
{{سخ}}
<span style="color:black;"><nowiki>{{پانویس}}</nowiki></span>
{{سخ}}
{{سخ}}
<span style="color:#666;">== منابع ==</span>
{{سخ}}
<span style="color:black;"><nowiki>* {{</nowiki>یادکرد کتاب|نام خانوادگی = نگهبان|نام = تورج|عنوان = مبانی فیزیک کاربردی|ناشر = فرهنگستان علوم |شهر = تهران|سال = ۱۳۸۸|شابک=۹۷۸-۶۰۰-۱۲۳۴۵-۹-۰}}</span>
{{سخ}}
<span style="color:black;"><nowiki>* {{</nowiki>یادکرد کتاب| نام خانوادگی = زرکلی | نام = خیرالدین | عنوان = الأعلام | سال = ۱۹۷۲ | ناشر = دارالعلم للملایین | مکان = قاهره}}</span>
{{سخ}}
<nowiki>{{چپچین}}</nowiki>
{{چپچین}}
<span style="color:black;"><nowiki>* {{</nowiki>cite book| ref= {{harvid|Smith|2006}} | last= Smith | first = John | title = Introduction to Physics | publisher = Harvard University Press | year = 2006 | location = Cambridge, MA | isbn = 978-0-470-40942-8}}</span>
{{سخ}}
<span style="color:black;"><nowiki>* {{</nowiki>cite web| ref= <nowiki>{{</nowiki>harvid|Wired}} | last= | first = | title = Quantum Computing in the 20th Century | publisher = Wired | url = <nowiki>http://www.wired.com/etc</nowiki> | year = 2018 | date = 2018-01-14 | accessdate = 2018-08-03}}</span>
{{پایان چپچین}}
<nowiki>{{پایان چپچین}}</nowiki>
</blockquote>
و نتیجهٔ آن به صورت زیر خواهد بود:
<blockquote style="background:white; padding:1em; border:1px solid #999;">
این متن اصلی مقاله است که منبع آن صفحهای از یک کتاب فارسی است<ref>{{پک|نگهبان|۱۳۸۸|ک=مبانی فیزیک کاربردی|ص=۱۴۴}}</ref> و این مطلبی است که از یک کتاب عربی نقل شده است.<ref>{{پک|زرکلی|۱۹۷۲|ک=الأعلام|ص=۴۹۷}}</ref> این جمله از یک منبع انگلیسی به عنوان منبع استفاده میکند،<ref dir=ltr>{{پک|Smith|2006|ک=Intro to Physics|ص=584|زبان=en}}</ref> و این یکی از یک منبع انگلیسی که نام نویسنده ندارد.<ref dir=ltr>{{پک/بن|Wired|ک=Quantum computing in the 20th century|زبان=en}}</ref>
{{سخ}}
{{سخ}}
<font size="5">پانویس</font>
----
{{پانویس|}}
<font size="5">منابع</font>
----
* {{یادکرد کتاب|نام خانوادگی = نگهبان|نام = تورج|عنوان = مبانی فیزیک کاربردی|ناشر = فرهنگستان علوم |شهر = تهران|سال = ۱۳۸۸|شابک=۹۷۸-۶۰۰-۱۲۳۴۵-۹-۰}}
* {{یادکرد کتاب| نام خانوادگی = زرکلی | نام = خیرالدین | عنوان = الأعلام | سال = ۱۹۷۲ | ناشر = دارالعلم للملایین | مکان = قاهره}}
{{چپچین}}
* {{cite book| ref= {{harvid|Smith|2006}} | last= Smith | first = John | title = Introduction to Physics | publisher = Harvard University Press | year = 2006 | location = Cambridge, MA | isbn = 978-0-470-40942-8}}
* {{cite web| ref= {{harvid|Wired}} | last= | first = | title = Quantum Computing in the 20th Century | publisher = Wired | url = http://www.wired.com/etc | year = 2018 | date = 2018-01-14 | accessdate = 2018-08-03}}
{{پایان چپچین}}
</blockquote>
== ارجاع گروهی ==
{{میانبر|وک:ارجاع گروهی}}
اگر به یک منبع بیش از یک بار ارجاع میدهید، میتوانید از پارامترِ <code><nowiki>name</nowiki></code> در دستورِ <code><nowiki>ref</nowiki></code> استفاده کنید تا ارجاعهای شما چند بار شماره نخورند. توجه کنید که '''اگر از پانویس کوتاهشده استفاده میکنید، نبایستی از ارجاع گروهی استفاده کنید'''. ارجاع گروهی فقط برای مواردی مناسب است که تمام پانویسها طولانی باشند.
به مثال زیر نگاه کنید:
<blockquote style="color:#999; background:white; padding:1em; border:1px solid DarkSeaGreen;">
این متن اصلیِ مقاله است که منبع آن خبری از خبرگزاری ایسنا<span style="color:black;" ><span dir="ltr">'''<ref name="isna">'''</span><nowiki>{{</nowiki>یادکرد وب|نشانی = <nowiki>http://www.isna.ir/etc</nowiki> {{رچ}}|عنوان = عنوان خبر|ناشر = ایسنا|تاریخ بازدید = ۱۸ ژانویهٔ ۲۰۱۳|تاریخ = ۱۱ فروردین ۱۳۸۸}}'''</ref>'''</span> و مطلبی است که در یک کتاب دیگر آمده است.<span style="color:black;">'''<ref>'''<nowiki>{{</nowiki>یادکرد|نویسنده = احمدی، احمد|عنوان = ساختار پرونده|ناشر = نشر زیبا|شهر = تهران|تاریخ = ۱۳۷۵}}'''</ref>'''</span>
{{سخ}}
{{سخ}}
در قسمت دیگری از متن، دوباره به خبر ایسنا ارجاع میشود.<span style="color:black;" dir="ltr">'''<ref name="isna"/>'''</span>
{{سخ}}
{{سخ}}
<span style="color:#666;">== منابع ==</span>
{{سخ}}
<span style="color:black;"><nowiki>{{پانویس}}</nowiki></span>
</blockquote>
که نتیجه میدهد:
<blockquote style="background:white; padding:1em; border:1px solid #999;">
این متن اصلی مقاله است که منبع آن خبری از خبرگزاری ایسنا<ref name="isna">{{یادکرد وب|پیوند = http://www.isna.ir/etc | عنوان = عنوان خبر|ناشر = ایسنا|تاریخ بازدید = ۱۸ ژانویهٔ ۲۰۱۳|تاریخ = ۱۱ فروردین ۱۳۸۸}}</ref> و مطلبی است که در یک کتاب دیگر آمده است.<ref>{{یادکرد|نویسنده = احمدی، احمد|عنوان = ساختار پرونده|ناشر = نشر زیبا|شهر = تهران|تاریخ = ۱۳۷۵}}</ref>
{{سخ}}
{{سخ}}
در قسمت دیگری از متن، دوباره به خبر ایسنا ارجاع میشود.<ref name="isna"/>
{{سخ}}
{{سخ}}
<font size="5">منابع</font>
----
{{پانویس|}}
</blockquote>
{{لنگر|ارجاع گروهی نه}}
{{میانبر|وپ:ارجاع گروهی نه}}
'''نکتهٔ مهم:''' زمانی که از پانویسهای کوتاهشده استفاده میکنید، ارجاعها نباید تجمیع شوند بلکه باید تکرار شوند؛ مثلاً اگر دوبار به یک صفحه از یک کتاب ارجاع میدهید، باید دستور الگوی پانویس کوتاهشده را عیناً دو بار تکرار کنید. در متون چاپی، برای بار دوم به بعد از «''همان''» در پانویس استفاده میکنند و حتی اگر چند پانویس پیاپی، مربوط به صفحههای مختلفی از یک منبع باشند از مورد دوم به بعد به صورت «''همان، ۴۴''» و «''همان، ۴۷''» پانویس داده میشود (که ۴۴ و ۴۷ شمارهٔ صفحه هستند). در ویکیپدیا، استفاده از «همان» مناسب نیست چرا که صفحهها مدام در حال تغییر هستند و ممکن است بین دو پانویس، پانویس جدیدی اضافه شود که معنای «همان» را تغییر بدهد. در نتیجه در تمام موارد، پانویس کوتاهشده عیناً تکرار میشود تا نگهداری صفحهها راحتتر باشد.
== کتابها ==
در این بخش نحوهٔ نگارش یادکردها توضیح داده میشود. استفاده از الگوهای توصیه شده کمک میکند تا یادکردها به آسانی به روش زیر نگاشته شوند و نیاز به تنظیم دستی نحوهٔ نمایش آنها نباشد.
=== ساختار یادکرد ===
این ترتیب برای یادکرد اطلاعات مربوط به کتابها استفاده میشود:
::نام مؤلف به شکل نام خانوادگی، ویرگول، نام، (برای بیشتر از یک نویسنده به مثالها رجوع کنید) نقطه، عنوان کتاب (به شکل ایرانیک یعنی بهصورت <nowiki>''عنوان''</nowiki>)، ویرگول(،) نوبت ویرایش (اگر غیر از نوبت اول است) نقطه، نام شهر محل نشر، دونقطه (:) نام ناشر، سال چاپ برای نوبت ذکر شده. شابک.
در انتها نیز در صورتی که آن کتاب صفحهٔ وبی دارد (مثلاً در وبگاه [http://www.ketab.ir/ ketab.ir])، پیوند به آن صفحهٔ وب میآید.
مثال:
* شاملو، احمد. ''در آستانه''. تهران: مؤسسه انتشارات نگاه، ۱۳۷۶ {{شابک|964-6174-28-0}}. [http://www.ketab.ir/DesktopDefault.aspx?TabID=3564&Alias=Ketab&Lang=fa-IR&BookID=167130 خانهٔ کتاب].
برای دو نویسنده:
* بودریار، ژان، و احمد مومیایی رازی. ''سرگشتگی نشانهها، نمونههایی از نقد پسامدرن''. ترجمهٔ باب رحمتی. تهران: نشر مرکز، ۱۳۷۴. ISBN 964305120X, [http://www.ketab.ir/DesktopDefault.aspx?TabID=3564&Alias=Ketab&Lang=fa-IR&BookID=140309 خانهٔ کتاب].
بیشتر از دو نویسنده:
* لوگان، جان، و دیگران. ''سه توپ دارم قلقلیه''. تهران: نشر بادبادک، ۱۳۷۷.
=== نکات کلی ===
* بسیار خوب است اگر که نام نویسنده یا نویسندگان کتاب به همان شکلی که در کتاب (و مقالات) ثبت شده است آورده شود. در بعضی شیوهها برای صرفهجویی در فضا نام کوچک نویسنده را بهطور مختصر مینویسند ولی از آنجا که در ویکیپدیا معضل فضا وجود ندارد، ''نیازی به خلاصه کردن نام نگارنده نیست'' و میتوان آن را بهطور کامل نوشت. بهعلاوه، ''ثبت نام کامل نویسنده'' باعث سادگی در یافتن منبع یادکرده و یافتن منابع یادکردهٔ دیگر از همان نویسنده، خواهد بود.
* نام کتابهای نگاشته به زبانهای غیر فارسی، به فارسی ترجمه نمیشود، مگر اینکه ارجاع به ترجمهٔ فارسی آنها باشد، که در آن صورت عنوان کتاب به زبان اصلی ذکر نمیشود. این مسئله برای دیگر انواع منابع هم صادق است.
* در صورتیکه ویکیپدیا صفحهای اختصاصی برای کتابی که در حال ثبت مشخصات آن هستید، دارد، ''عنوان کتاب'' را به مقالهای که در موردش نوشته شده است، پیوند دهید.
* در صورتیکه نویسندهٔ کتاب شخص معروفی است، و در متن اصلی مقاله پیوندی به مقالهٔ اختصاص یافته به آن نویسنده نیامده است، نام او را در یادکرد اطلاعات کتاب پیونددار نمایید. بعضی از اوقات پیوند ساختن برای نام ناشر، محل نشر و غیره هم منطقی و قابل قبول است.
* در الگوهای یادکرد باید از تاریخی استفاده شود که شناسنامهٔ منبع استفاده کرده است؛ مثلاً اگر منبع چاپ ایران است از هجری شمسی استفاده میشود.
* هنگام هر گونه ارجاع به هر کتابی، بهتر است [[شابک]] (ISBN) کتاب ذکر شود. شمارهٔ مربوط به شابک بهطور خودکار ویکیسازی خواهد شد. برای این منظور از الگوی {{الگوی|شابک}} میتوان استفاده کرد؛ الگوهای خانوادهٔ یادکرد و خانوادهٔ cite همگی به طور خودکار الگوی شابک را فراخوانی میکنند در نتیجه در پارامتر «شابک» یا «isbn» این الگوها، فقط خود شابک وارد میگردد.
* با اینکه خدمات جستجوی کتاب ویکیپدیا در وبگاههایی مانند Amazon (که از طریق پیوندی که روی شمارهٔ شابک قرار میگیرد قابل دسترسی است) معمولاً به نمایش نتایج کتاب موردنظر نمیانجامد و اطلاعات کتابهای فارسی در [[دادگان]] آن وبگاهها ثبت نشدهاند، ولی بهتر است که بهعنوان آیندهنگری شمارههای شابک کتابها به شکل صحیح و دارای پیوند ذکر شوند.
* اشاره به یک مقاله یا یک فصل خاص در داخل کتابی که هر فصل (یا مقاله) از آن نویسندگان متفاوتی دارد به شکل زیر است:
:: * دلوز، ژیل. «تفکر ایلیاتی». در بودریار، ژان و دیگران. ''سرگشتگی نشانهها، نمونههایی از نقد پسامدرن''. ترجمهٔ بابک احمدی. ۳۰–۵۰ تهران: نشر مرکز. ۱۳۷۴، ISBN 964305120X, [http://www.ketab.ir/DesktopDefault.aspx?TabID=3564&Alias=Ketab&Lang=fa-IR&BookID=140309 خانهٔ کتاب].
== مقالههای ژورنالها ==
یادکرد یک مقاله از یک ژورنال شامل موارد زیر است:
* نام نویسنده (یا نویسندگان)
* سال و در بعضی موارد ماه انتشار
* عنوان مقاله در نشان نقل قول (گیومه)
* نام ژورنال به صورت ایتالیک
* شمارهٔ جلد، شمارهٔ انتشار، و شمارهٔ صفحه (شماره مقاله در بعضی مقالات مربوط به برق)
'''مثال:'''
* احمدی، احمد. «مقابله با حملات DoS»، ''مجموعه مقالات پژوهشگاه امنیت فناوری اطلاعات'' '''۲''' (۳): ۲۳۴–۲۵۱.
توجه کنید که اعدادی که بعد از عنوان ژورنال آمدهاند بهترتیب «'''دوره''' (شماره)، شمارهٔ صفحات» هستند.
به جای شماره میتوان تاریخ را وارد کرد، و اگر هر دو هم ذکر شوند موردی ندارد. ممکن است به هر دلیلی دوره، شماره یا هر دو ذکر نشوند. در این حالتها شیوهٔ یادکرد قدری متفاوت میشود. توصیه میشود از الگوی {{الگو|یادکرد ژورنال}} استفاده کنید.
برای مقالهای که جایی بر روی وب نسخهای از آن موجود است میتوانید عنوان مقاله را پیوندی به نسخهٔ وبی بدهید.
== روزنامهها، مجلهها و نشریههای ادواری ==
به مثالها توجه کنید:
* مرجایی، فرید. «کودتا علیه عرصهٔ عمومی». ''شرق''، ۲۹ مرداد ۱۳۸۴، شماره ۵۵۴، ص ۶.
یا در صورتی که مقاله نام نگارنده ندارد:
* «در ستایش لیبرالیسم». ''کیهان''، ۱ دی ۱۳۹۰، ص ۳.
به همچنین در صورتی که بخواهیم به نسخهٔ موجود روی وب از این مقالهٔ روزنامه پیوند دهیم باید از بخش عنوان مقاله برای پیونددهی استفاده کنیم. در این حالت دیگر نوشتن شمارهٔ صفحه لازم نیست (و البته ضرری هم ندارد):
* باباحاجی، ایرچ. [http://www.sharghnewspaper.com/840530/html/hist.htm#s282201 سرنوشتی که در خیابان رقم خورد]، ''شرق''، یکشنبه ۳۰ مرداد ۱۳۸۴، شماره ۵۵۵.
== وبگاهها و مقالهها (غیر از مقالههای نشریات ادواری) ==
:''تذکر: توجه کنید که در بعضی موارد، بنا بر [[وک:اثبات|سیاست اثباتپذیری]] ویکیکتاب، وبلاگها و امثال آن که جزو منابع خودچاپکرده به شمار میآیند منبع خوبی برای مقالههای ویکیپدیا نیستند؛ خصوصاً هنگامی که راجع به خود صحبت نمیکنند.''
برای یادکرد کل یک وبگاه بدون اشاره به یک سند یا صفحهٔ خاص بر روی آن وبگاه میتوان به سادگی، آدرس وبی (URL) آن را در متن مقاله آورد. در ویکیپدیا یک URL ساده که با «<nowiki>//:http</nowiki>» شروع شود بهطور خودکار تبدیل به پیوند قابل کلیک کردن خواهد شد. بهعنوان مثال این متن را در نظر بگیرید: «اسلشدات یک وبگاه محبوب است که در این آدرس http://slashdot.org قرار دارد». با توجه به اینکه به کلیت یک وبگاه اشاره میکنید و نه به محتویاتی خاص بر روی آن، بنابراین احتیاجی به ذکر تاریخ بازبینی اطلاعات از آن وبگاه نیست.
برای یادکرد صفحات وب خاص (یا مجموعهای از آنها) همانند یادکرد کتابها عمل میکنیم (و ''عنوان'' را پیونددار میکنیم)، اما در این حالت باید یک تاریخ بازبینی هم نوشته شود:
* پارسا، مانی. [http://www.chn.ir/news/?section=2&id=45418 «ثبت جهانی دماوند به عنوان نخستین میراث طبیعی کشور تکذیب شد»]. (۸ اردیبهشت ۱۳۸۴). بازبینی ۱ شهریور ۱۳۸۴.
تاریخ داخل پرانتز تاریخ ساخته شدن این صفحه برای اولین بار یا تاریخ آخرین بهروز رسانی این صفحه است. در صورت نامشخص بودن این بحث میتوان آن را حذف کرد و ذکر ننمود. بخش مربوط به ''تاریخ بازبینی'' به خواننده کمک میکند که از طریق ابزارهایی مانند [[بایگانی اینترنت]] دقیقاً نسخهای که مدنظر شماست را بازیابی کند.
توجه داشته باشید که در ویکیپدیا معمول است که بخشی با عنوان ''پیوند به بیرون'' (پس از ''منابع'') وجود داشته باشد که پیوندهای متفاوتی به وبگاهها و صفحات متفاوت در آن بخش قرار میگیرد.
به دلیل پویایی وب، ممکن است صفحهای که به عنوان منبع استفاده شده است، غیرفعال شود. چنین یادکردی را با وجود اینکه غیرفعال است، حذف نکنید؛ زیرا تنها با وجود داشتن این یادکرد است که مشخصات منبعی که قبلاً وجود داشته است ثبت میگردد. میتوانید در کنار یادکرد یادداشتی ثبت کنید و در آن تاریخی که پیوند اصلی صفحهٔ مورد بحث غیرفعال شده است را بنویسید. در صورتیکه نسخهای در خدمات بایگانی اینترنت میشناسید، یک پیوند به آن بدهید. برای این منظور [[ویکیپدیا:پیوندهای مرده]] را ببینید.
== به آنچه خودتان خواندهاید ارجاع دهید ==
{{میانبر|وک:ارجاع نادیده}}
تنها به منابعی ارجاع دهید که به چشم خودتان دیدهاید. اگر میخواهید از ''نویسندهٔ ب'' یاد کنید در حالی که خودتان تنها نوشتهٔ ''نویسندهٔ الف'' را که در آن از ''نویسندهٔ ب'' گفتاوردی آمده است خواندهاید، آنگاه لازم است هنگام یادکرد، در ادامهٔ نوشتن مشخصات منبع ''ب'' (که خودتان ندیدهاید)، با افزودن عبارتی مثل «به نقل از» و سپس آوردن مشخصات منبع الف (که خودتان دیدهاید)، این موضوع را مشخص کنید.
با این حال اگر خودتان منبع ''ب'' را از نزدیک دیده و صحتش را بررسی کردهاید، میتوانید مستقیم و تنها از همین منبع یاد کنید. ذکر شیوهٔ دستیابی شما به منبع نیز لازم نیست؛ بنابراین اگر از طریق یک جویشگر اینترنتی، کتابخانه، وبگاه، یا مانند آن به منبع دست یافتید، به شرط اینکه بتوان اطمینان حاصل کرد که این منبع یک کپی دقیق و دستنخورده است، لازم نیست این موارد را هنگام ارجاع به منبع ذکر کنید. به طور مشابه اهمیتی نخواهد داشت اگر کتابی را در [[w:fa:گوگل بوکس|گوگل بوکس]]، [[جیاستور]]، در پیشنمایش یک کتابفروشی برخط معتبر مانند [[W:fa:آمازون|آمازون]]، یا کتابخوان الکترونیکی شخصیتان (مگر در حالتی که در شمارهگذاری صفحهها تأثیر داشته باشد) مطالعه کرده باشید.
== شیوهنامهٔ ارجاعدهی ==
{{میانبر|وک:شیوهنامه ارجاع|وک:سبک ارجاع}}
ویکیپدیا از یک شیوهنامهٔ ارجاعدهی خاص به عنوان پیشفرض استفاده نمیکند با این حال ارجاعدهی در یک مقالهٔ خاص باید از یک شیوهنامهٔ ارجاعدهی مشخص پیروی کند.
تعدادی از شیوهنامههای ارجاعدهی مورد قبول ویکیکتاب در صفحات '''استناد'''، '''شیوهنامهٔ انجمن روانشناسی آمریکا'''، '''شیوهنامهٔ ایاسای'''، '''دستنامه امالای'''، '''شیوهنامهٔ شیکاگو'''، '''منبعدهی هاروارد'''، '''شیوهنامهٔ ونکوور''' و '''کتابآبی''' شرح دادهشدهاند.
با وجودی که برای انتخاب شیوهنامهٔ ارجاعدهی، ویکیپدیا دستتان را باز گذاشته است، اشاره به تاریخ باید از شیوهٔ مشخصی تبعیت کند.<ref name="enwiki19-11-95">{{یادکرد وب |نویسنده = |نشانی=https://en.wikipedia.org/w/index.php?title=Wikipedia:Citing_sources&oldid=763923862 |عنوان=ترجمه از ویکیپدیای انگلیسی | ناشر = |تاریخ = |تاریخ بازبینی=۱۹ بهمن ۱۳۹۵}}</ref>
=== تنوع در شیوهنامههای ارجاعدهی ===
{{میانبر|وک:ارجاع متنوع}}
ویرایشگران نباید شیوهنامهٔ ارجاعدهی غالب یک مقاله را به دلخواه خودشان یا برای مشابهسازی با سایر مقالات تغییر دهند و باید به [[ویکیکتاب:اجماع|اجماع]] صورت گرفته در مورد آن مقاله توجه کنند (در صورتی که موجود باشد و اگر موجود نبود باید به اجماع برسند)
بر پایهٔ [[ویکیکتاب:شیوهنامه|شیوه ویرایشی]] فعالترین ویرایشگران مقاله، شیوهنامهٔ ارجاعدهی مقاله مشخص میشود یا بر پایهٔ اجماع صورت گرفته میان کاربران فعال در توسعهٔ مقاله میتوان شیوهنامهٔ ارجاعدهی مقاله را مشخص کرد. اگر مقالهای که بر روی آن کار میکنید دارای سبک ارجاعدهیست باید به آن احترام گذاشت و مابقی ارجاعها مشابه آن انجام گیرند. اگر تصور میکنید تغییر شیوهنامهٔ ارجاعدهی برای مقاله واجب است باید در بحث مقاله تلاش کنید نظر دیگر کاربران را جلب کنید و به اجماع برسید. اگر اولین کاربر هستید که به مقاله منبع میافزایید سعی کنید شیوهنامهٔ ارجاعدهی مناسب با موضوع مقاله انتخاب کنید.
اگر بیشتر منابع ارجاع شده در مقاله بدون الگوهای ارجاع استفاده شدهاند و فقط پیوند اینترنتی بدون ذکر نام نویسنده، تاریخ نشر، شمارهٔ صفحه است و این اطلاعات را میتوانید بهدست بیاورید مسلماً اینگونه ارجاعدهی نمیتواند به عنوان شیوهنامهٔ ارجاعدهی مقاله در نظر گرفت و میتوانید آن را با شیوهنامهٔ ارجاعدهی مناسب که جزئیات بیشتری در مورد منابع به مقاله میافزاید انتخاب کنید.<ref name="enwiki19-11-95"/>
==== کارهایی که باید از انجامشان اجتناب کرد ====
زمانی که یک مقاله یک شیوهنامهٔ ارجاعدهی مشخص دارد، کارهای زیر را نباید انجام داد:
* تغییر دادن شیوهنامهٔ ارجاعدهی غالب مقاله با شیوهنامهٔ ارجاعدهی دیگر مثلاً تغییر شیوهنامهٔ ارجاعدهی پرانتزدار با شیوهنامهٔ ارجاعدهی بدون پرانتز، یا جایگزین کردن یک شیوهنامهٔ ارجاعدهی آکادمیک با شیوهنامهٔ ارجاعدهی دیگر آکادمیک. (مثلاً تغییر شیوهنامهٔ ارجاعدهی شیکاگو به شیوهنامهٔ ارجاعدهی هاروارد)
* افزودن الگوهای ارجاعدهی به مقالهای که از پیوند اینترنتی بدون الگو استفاده میکند یا حذف الگوهای ارجاعدهی از یک مقاله که از آن شیوهنامهٔ ارجاعدهی خاص استفاده میکند.
* تغییر مکان ارجاعهای تعریف شده، مثلاً انتقال ارجاعها از متن مقاله به بخش منابع یا انتقال ارجاعها از بخش منابع به درون متن (به صورت درونخطی)<ref name="enwiki19-11-95"/>
== انتساب درمتن ==
{{میانبر|وپ:درمتن}}
'''انتساب درمتن''' بهمعنای نسبتدادن یک جمله به منبع آن در درون خود جمله است که درکنار [[وپ:یادر|یادکرد درخط]] استفاده میشود. انتساب درمتن باید در نقلقولهای مستقیم، نقلقولهای غیرمستقیم و در خلاصهنویسیها بهکار رود. انتساب درمتن باعث جلوگیری از دستبرد فکری سهوی میشود و به خواننده این اجازه را میدهد تا بداند یک دیدگاه از چه کسی یا چه کسانی است. پس از انتساب درمتن، حتماً باید از یادکرد درخط نیز استفاده کرد.
برای مثال:
{{نقلقول|{{ضربدر}} سلاح هستهای بازدارندگی به ارمغان نمیآورد.{{مرجع ساختگی|۲}}}}
{{نقلقول|{{تیک}} کوربین معتقد است سلاح هستهای بازدارندگی به ارمغان نمیآورد.{{مرجع ساختگی|۲}}}}
هنگام استفاده از انتساب درمتن سعی کنید که دیدگاه بیطرف را نقض نکنید.
برای مثال:
{{نقلقول|{{ضربدر}} داروین میگوید انسانها با ابزار انتخاب طبیعی تکامل یافتهاند،{{مرجع ساختگی|۳}} اما اکبرخان میگوید انسانها از کرهٔ ماه آمدهاند.{{مرجع ساختگی|۴}}}}
{{نقلقول|{{تیک}} داروین معتقد بود انسانها با ابزار انتخاب طبیعی تکامل یافتهاند.{{مرجع ساختگی|۳}}}}
مشکل خط اول این است که به برابری دو منبع دلالت دارد و مشخص نمیکند که دیدگاه داروین، دیدگاه غالب است.
همچنین انتساب درمتن ممکن است باعث این تلقی شود که یک دیدگاه تنها از کشفیات یکنفر یا یک گروه است.
{{نقلقول|{{ضربدر}} اکبرخان معتقد است که دو بهعلاوه دو میشود چهار.}}
{{نقلقول|{{تیک}} دو بهعلاوه دو میشود چهار.}}
برای حقایق ساده میتوان از یادکردهای درخط استفاده کرد، اما معمولاً از انتساب درمتن استفاده نمیشود.
{{نقلقول|{{تیک}} مولکول آب از دو اتم هیدروژن و یک اتم اکسیژن تشکیل شده است.{{مرجع ساختگی|۵}}}}
== الگوهای ارجاعدهی ==
[[وک:الگوها]]
== جستارهای وابسته ==
برای مطالعهٔ بیشتر به صفحات زیر در ویکیپدیای انگلیسی مراجعه کنید:
* [[:en:Wikipedia:Citation_templates|الگوهای مورد استفاده در ارجاع به منابع]]
* [[:en:Wikipedia:Scientific_citation_guidelines|قواعد ارجاع به منابع علمی]]
* [[:en:Harvard_referencing|ارجاع به روش هاروارد]]
== منابع ==
* {{یادکرد|نویسنده=ادیب سلطانی، میرشمسالدین|کتاب=راهنمای آمادهساختن کتاب|ویرایش=ویراست سوم|سال=۱۳۸۱|ناشر=انتشارات علمی و فرهنگی|شهر=تهران}}
{{چپچین}}
* Fowler, H. Ramsey. ''The Little, Brown Handbook''. second Canadian ed. Don Mills, Ontario, 1998. 660–668.
* ''The Chicago Manual of Style''. 15th ed. Chicago: University of Chicago Press, 2003.
* ''The Chicago Manual of Style Online''. 16th ed. [http://www.chicagomanualofstyle.org/16/ch14/ch14_toc.html chap. 14].
{{پایان چپچین}}
== پیوند به بیرون ==
* [http://tools.wmflabs.org/yadfa/ یادفا]، ابزار ایجاد یادکرد ویکی با استفاده از کتابخانههای دیجیتال [[گوگل بوکس]]، [[نورمگز]] و [[کتابخانه دیجیتال نور]].
o4x7tl1xg06gbpdnsrx5p1zty5mlygm
135318
135317
2026-09-29T08:22:40Z
Vivairan2
28134
/* به آنچه خودتان خواندهاید ارجاع دهید */
135318
wikitext
text/x-wiki
{{فهرست رهنمودها}}
{{رهنمود|وک:شام|وک:شابم|وک:منابع|وک:شیوهم|وک:ارجاعدهی|وک:یادکرد}}
{{سرنویس|بهتر است ابتدا [[ویکیکتاب:تأییدپذیری|سیاست تأییدپذیری]] را دربارهٔ معتبر بودن منابع بخوانید.}}
ساختاربندی فهرست منابع یک کتاب [[وک:ویکیکتاب چیست؟|ویکیکتاب]] جزو جزئیاتی است که در درجهٔ دوم اهمیت قرار دارند و در حال حاضر در ویکیکتاب انگلیسی نیز هنوز توافق عام بر روی یک روش مشخص یادکرد منابع، بهدست نیامده است؛ بنابراین در صورتی که شما یک روش خاص (بخصوص روشهایی که بهوسیلهٔ اهل فن در آن رشتهٔ خاص استفاده میشود) را برای یادکرد منابع بکار میبرید، '''لطفاً استفاده از همان روش را ادامه دهید'''. اما در صورتی که نمیتوانید در مورد اینکه چه شیوه و روشی را انتخاب کنید، تصمیم بگیرید یا نمیدانید چه اطلاعاتی را در یادکرد منبع باید گنجاند، به خواندن این رهنمود ادامه دهید.
در این رهنمود یک شیوهٔ نوعی بر مبنای شیوهٔ استانداردی که در کتاب ''شیوهنامهٔ شیکاگو'' از آن با عنوان «ساختاربندی علمی» یاد شده، آمده است. در ''شیوهنامهٔ شیکاگو''، که اینجا هم از آن پیروی شده است، یادکرد منابع (یعنی ارجاع به منابع برای مستند کردن ادعا) در پانویس است و پانویسها با شماره مشخص میشود. میتوان در پایان رساله فهرستی الفبایی از مآخذ ذکر کرد اما اجباری نیست، به شرطی که یادکرد منابع در پانویسها کامل و دقیق باشد. از سوی دیگر میتوان در یادکرد منابع از کوتهنوشتها و خلاصهنویسی سود جست، در این صورت ذکر کامل فهرست منابع و مآخذ اجباریاست. در ویکیپدیای فارسی شِقّ دوم پیشنهاد میشود؛ یعنی ارجاعات پانویسی به اختصار صورت میگیرد و سپس در پایان مقاله فهرست کاملی از منابع و مآخذ به ترتیب الفبایی نام خانوادگی نویسندگان ذکر میشود. یادکرد دقیق و عملی منابع در معنای کلی دو مرحله دارد. یکی اینکه جملهها و دعاوی را به منابع معتبر ارجاع دهیم و دوم فهرست کامل منابع را با اسلوب و چیدمانی خاص در پایان مقاله ذکر کنیم. در این نوشتار به هر دو جنبه پرداخته خواهد شد.
ابتدا شیوهٔ ارجاع به منابع در متن مقاله را معرفی میکنیم. پس از مطالعهٔ این بخش ویکینویس میداند که چگونه در مقاله به منابع در پانویس ارجاع دهد. در مرحلهٔ بعد روش یادکرد اطلاعات مربوط به منابع مختلف (کتاب، مقالات و…) را بررسی میکنیم. این اطلاعاتیاست که در بخش <nowiki>== منابع ==</nowiki> هر مقاله باید ذکر شود. ارائهٔ این اطلاعات (یعنی مشخصات منابع) به شیوه و اسلوب خاصی باید باشد؛ مثلاً ابتدا نام خانوادگی نویسنده باید ذکر شود و سپس نام کوچک وی. پس از آن نام کتاب به صورت ''ایتالیک'' نشان داده میشود و سپس سایر جزئیات ذکر میگردد. بخشهای مختلف این نوشتار به مهمترین جنبههای اسلوب ذکر اطلاعات کتابشناختی منابع خواهند پرداخت. فراگرفتن و به خاطر سپردن تمام این جزئیات بایسته نیست. ویکینویسان میتوانند بر حسب نیاز به این صفحه رجوع کنند. به علاوه الگوهایی برای آسانسازی کار آنها ساخته شده است که در بیشتر موارد ایشان را از دانستن جزئیات بینیاز میکند. این الگوها نیز در نوشتار معرفی شدهاند.
== یادکرد منابع، چرا و چه زمان؟ ==
=== چندرسانهای ===
جزئیات مبدأ و وضعیت حق تکثیر تصاویر و دیگر پروندههای رسانهای باید در صفحهٔ پرونده (در ویکیکتاب یا ویکیانبار) درج شود. تصویر نیز باید همانند سایر بخشهای مقالهها دارای منبع و ارجاع مناسب باشد. برای توصیفهایی نظیر [[ویکیپدیا:متن جایگزین برای تصاویر|متن جایگزین]]، که بهطور مستقیم از طریق خود تصویر قابل اثبات هستند، و برای متنی که صرفاً به شناساندن منبع میپردازد (نظیر توضیح «''[[شب پرستاره]]'' (۱۸۸۹)» برای ''[[:پرونده:VanGogh-starry night ballance1.jpg]]'')، نیازی به یادکرد نیست.
== روش اشاره به منابع در متن ==
{{میانبر|وک:ارجاع درونخطی|وک:ارجاع دقیق}}
روش اشاره به منابع این است که منابع را در بخش مربوط فهرست میکنند و در هنگام یادکرد در داخل متن به پانویس یادکرد میدهند که در آنجا نام خلاصهٔ منبع آمده است. به این روش اصطلاحاً «پانویس کوتاهشده» نیز گفته میشود.
برای وارد کردن پاورقی در داخل متن اصلی مقاله جایی که شمارهٔ پاورقی باید داده شود متن پاورقی را بین <nowiki><ref>و</ref></nowiki> ذکر میکنند. سرانجام برای نمایش همهٔ پانویسها در بخش ''پانویس'' از الگوی {{الگو|پانویس}} استفاده میکنند؛ مثلاً به این صورت:
<blockquote style="color:#999; background:white; padding:1em; border:1px solid DarkSeaGreen;">
این متن اصلی مقاله است که از کتاب خاصی<span style="color:black;">'''<ref>'''روحانی، ''کتاب دانش''، ۲۳۴.'''</ref>'''</span> و کتاب دیگری<span style="color:black;">'''<ref>'''احمدی، ''پرونده در پرونده''. '''</ref>'''</span> برداشته شده است و یک پانویس توضیحی<sup>*</sup><span style="color:black;">'''<ref>'''این یک پانویس توضیحیاست. '''</ref>'''</span> هم دارد.
{{سخ}}
{{سخ}}
<span style="color:#666;">== پانویس ==</span>
{{سخ}}
<span style="color:black;"><nowiki>{{پانویس|۲}}</nowiki></span>
{{سخ}}
{{سخ}}
<nowiki>== منابع ==</nowiki>
{{سخ}}
<nowiki>
* روحانی، محمد. ''کتاب دانش''. تهران: نشر، ۱۳۷۰.</nowiki>
{{سخ}}<nowiki>
* احمدی، احمد. ''پرونده در پرونده''. تهران: نشر۲، ۱۳۷۵.</nowiki>
</blockquote>
که در آن از <sup>[۱]</sup> و <sup>[۲]</sup> به عنوان «پانویس ارجاعی» و <sup>*[۳]</sup> به عنوان «پانویس توضیحی» بهره برده شده است. نتیجهٔ پایانی آن به صورت زیر خواهد بود:
<blockquote style="background:white; padding:1em; border:1px solid #999;">
این متن اصلی مقاله است که از کتاب خاصی<ref>روحانی، ''کتاب دانش''، ۲۳۴.</ref> و کتاب دیگری<ref>احمدی، ''پرونده در پرونده''.</ref> برداشته شده است و یک پانویس توضیحی<sup>*</sup><ref>این یک پانویس توضیحیاست.</ref> هم دارد.
{{سخ}}
{{سخ}}
<font size="5">پانویس</font>
----
{{پانویس}}
<font size="5">منابع</font>
----
* احمدی، احمد. ''پرونده در پرونده''. تهران: نشر۲، ۱۳۷۵.
* روحانی، محمد. ''کتاب دانش''. تهران: نشر، ۱۳۷۰.
</blockquote>
نکته: اگر ویرگول یا نقطه در محل منبعدهی باشد تگ <nowiki><ref>...</ref></nowiki> به طور طبیعی پس از نقطه یا ویرگول قرار میگیرد.
== الگوهای کمکی برای یادکرد منابع در ویکیپدیای فارسی ==
توصیه میشود به جای ارجاع دستی از الگوهای یادکرد استفاده کنید. خروجی این الگوها با ضابطههایی که در این صفحه توضیح داده خواهد شد منطبق است. برای یادکرد کتاب از الگوی {{الگو|یادکرد کتاب}}، برای ژورنال از {{الگو|یادکرد ژورنال}}، برای یادکرد مطالبی که در اینترنت آمده از {{الگو|یادکرد وب}} و در موارد کلی، از الگوی {{الگو|یادکرد}} استفاده کنید. همچنین برای ارجاعهای خلاصهشده در بخش پانویس میتوانید از الگوی {{الگو|پانویس کوتاهشده}} استفاده کنید. در زیر مثالی از نحوهٔ استفاده از این الگوها آمده است:
<blockquote style="color:#999; background:white; padding:1em; border:1px solid DarkSeaGreen;">
این متن اصلی مقاله است که منبع آن خبری از خبرگزاری ایسنا<span style="color:black;">'''<ref>'''<nowiki>{{</nowiki>یادکرد وب|نشانی = <nowiki>http://www.isna.ir/etc</nowiki> {{رچ}}|عنوان = عنوان خبر|ناشر = ایسنا|تاریخ بازدید = ۱۸ ژانویه ۲۰۱۳|تاریخ = ۱۱ فروردین ۱۳۸۸}}'''</ref>'''</span> و مطلبی است که در یک کتاب دیگر آمده است.<span style="color:black;">'''<ref>'''<nowiki>{{</nowiki>یادکرد|نویسنده = احمدی، احمد|عنوان = ساختار پرونده|ناشر = نشر زیبا|شهر = تهران|تاریخ = ۱۳۷۵}}'''</ref>'''</span>
{{سخ}}
{{سخ}}
<span style="color:#666;">== منابع ==</span>
{{سخ}}
<span style="color:black;"><nowiki>{{پانویس}}</nowiki></span>
</blockquote>
و نتیجهٔ آن به صورت زیر خواهد بود:
<blockquote style="background:white; padding:1em; border:1px solid #999;">
این متن اصلی مقاله است که منبع آن خبری از خبرگزاری ایسنا<ref>{{یادکرد وب|نشانی = http://www.isna.ir/etc |عنوان = عنوان خبر|ناشر = ایسنا|تاریخ بازدید = ۱۸ ژانویه ۲۰۱۳|تاریخ = ۱۱ فروردین ۱۳۸۸}}</ref> و مطلبی است که در یک کتاب دیگر آمده است.<ref>{{یادکرد|نویسنده = احمدی، احمد|عنوان = ساختار پرونده|ناشر = نشر زیبا|شهر = تهران|تاریخ = ۱۳۷۵}}</ref>
{{سخ}}
{{سخ}}
<font size="5">منابع</font>
----
{{پانویس|}}
</blockquote>
=== پانویس کوتاهشده ===
{{میانبر|وک:پک|وک:پانویس کوتاهشده}}
استفاده از پانویسهای کوتاهشده یکی از روشهای استفاده شده در ویکیکتاب فارسی است و خروجی متداول در ویکیکتاب فارسی نیز بر اساس '''شیوهنامه شیکاگو''' است. برای راحتی ایجاد پانویسهای کوتاهشده به این روش، الگوی {{الگوی|پک}} (مخفف پانویس کوتاهشده) و {{الگوی|پک/بن}} (مخفف پانویس کوتاهشده بدون نویسنده) به کار گرفته میشوند.
الگوهای پانویس کوتاهشده، یک پیوند داخلی در صفحه ایجاد میکنند که به کمک آن، با کلیک کردن روی متن پانویس میشود به اصل منبع رسید. برای مثال، با کلیک کردن روی عبارت
<blockquote style="color:#999; background:white; padding:1em; border:1px solid DarkSeaGreen;">
این متن اصلی مقاله است که منبع آن صفحهای از یک کتاب است<span style="color:black;">'''<ref>'''<nowiki>{{</nowiki>پک|اصغری|۱۳۹۲|ک=تاریخ ایران|ص=۶۶}}'''</ref>'''</span> و این مطلبی است که از صفحهای دیگر از همان کتاب دیگر آمده است.<span style="color:black;">'''<ref>'''<nowiki>{{</nowiki>پک|اصغری|۱۳۹۲|ک=تاریخ ایران|ص=۹۳}}'''</ref>'''</span> این جمله از یک خبر به عنوان منبع استفاده میکند که نام نویسنده ندارد.<span style="color:black;">'''<ref>'''<nowiki>{{</nowiki>پک/بن|تاریخنگار|ک=فرازهایی از تاریخ ایران}}'''</ref>'''</span>
{{سخ}}
{{سخ}}
<span style="color:#666;">== پانویس ==</span>
{{سخ}}
<span style="color:black;"><nowiki>{{پانویس}}</nowiki></span>
{{سخ}}
{{سخ}}
<span style="color:#666;">== منابع ==</span>
{{سخ}}
<span style="color:black;"><nowiki>* {{</nowiki>یادکرد کتاب|نام خانوادگی = اصغری|نام = احمد|عنوان = تاریخ ایران: مروری بر منابع فارسی، عربی و انگلیسی|ناشر = نشر معاصر|شهر = تهران|سال = ۱۳۹۲}}</span>
{{سخ}}
<span style="color:black;"><nowiki>* {{</nowiki>یادکرد وب|نام خانوادگی = |نام = |عنوان = فرازهایی از تاریخ ایران|ناشر = تاریخنگار| نشانی = <nowiki>http://www.example.com/etc</nowiki> |تاریخ = ۱۴ اردیبهشت ۱۳۹۴| تاریخ بازبینی = ۷ مهر ۱۳۹۵|شناسه=<nowiki>{{</nowiki>شناسه یادکرد|تاریخنگار}} }}</span>
</blockquote>
و نتیجهٔ آن به صورت زیر خواهد بود:
<blockquote style="background:white; padding:1em; border:1px solid #999;">
این متن اصلی مقاله است که منبع آن صفحهای از یک کتاب است<ref>{{پک|اصغری|۱۳۹۲|ک=تاریخ ایران|ص=۶۶}}</ref> و این مطلبی است که از صفحهای دیگر از همان کتاب دیگر آمده است.<ref>{{پک|اصغری|۱۳۹۲|ک=تاریخ ایران|ص=۹۳}}</ref> این جمله از یک خبر به عنوان منبع استفاده میکند که نام نویسنده ندارد.<ref>{{پک/بن|تاریخنگار|ک=فرازهایی از تاریخ ایران|ص=۱۱}}</ref>
{{سخ}}
{{سخ}}
<font size="5">پانویس</font>
----
{{پانویس|}}
<font size="5">منابع</font>
----
* {{یادکرد کتاب|نام خانوادگی = اصغری|نام = احمد|عنوان = تاریخ ایران: مروری بر منابع فارسی، عربی و انگلیسی|ناشر = نشر معاصر|شهر = تهران|سال = ۱۳۹۲}}
* * {{یادکرد وب|نام خانوادگی = |نام = |عنوان = فرازهایی از تاریخ ایران|ناشر = تاریخنگار|نشانی = http://www.example.com/etc |تاریخ = ۱۴ اردیبهشت ۱۳۹۴| تاریخ بازبینی = ۷ مهر ۱۳۹۵|شناسه={{شناسه یادکرد|تاریخنگار}} }}
</blockquote>
در خروجی بالا، اگر روی پیوند «اصغری، ''تاریخ ایران''» در بخش پانویس کلیک کنید، به توضیحات کامل آن منبع میروید. شمارههای ۶۶ و ۹۳ شماره صفحههای مربوط از آن منبع را نشان میدهند.
همچنین اگر روی پیوند «''فرازهایی از تاریخ ایران''» در بخش پانویس کلیک کنید، به توضیحات کامل آن منبع میروید. برای این که این ویژگی به درستی کار کند باید پارامترهای الگوی پانویس کوتاهشده و پارامترهای الگوی یادکرد را به دقت وارد کنید.
ساختار پانویس کوتاهشده به این شکل است: <code><nowiki>{{پک|نام اول|نام دوم|سال|ک=نام کتاب یا اثر|ص=شمارهٔ صفحه}}</nowiki></code> و در آن «''نام اول''» باید با نام خانوادگی نویسندهٔ اول در الگوی یادکرد مطابقت کند، «''نام دوم''» با نام خانوادگی نویسندهٔ دوم، و «''سال''» هم باید با پارامتر سال مطابقت کند. اگر اثری فقط یک نویسنده دارد، نیازی به پارامتر «''نام دوم''» نخواهد بود و ورودی به صورت <code><nowiki>{{پک|نام اول|سال|ک=نام کتاب یا اثر|ص=شمارهٔ صفحه}}</nowiki></code> وارد میشود. پارامتر «''ک''» با الگوی یادکرد مطابقت داده نمیشود و ترجیح آن است که این پارامتر شکلی کوتاه شده از عنوان اصلی یادکرد را در خود داشته باشد، مگر آن که عنوان اصلی خودش کوتاه باشد که در آن صورت عیناً تکرار میشود. به مثال زیر توجه کنید:
{|
! {{خیر|روش اشتباه}}
|
<syntaxhighlight dir=rtl>
...
متن {{پک|دریابندری|ک=کتاب مستطاب|ص=۱}}
...
* {{یادکرد کتاب|نام خانوادگی = دریابندری | نام = نجف | عنوان = کتاب مستطاب آشپزی، از سیر تا پیاز|ناشر = نشر کارنامه|سال = ۱۳۷۹|مکان = تهران}}
</syntaxhighlight>
|-
! {{بله|روش درست}}
|
<syntaxhighlight dir=rtl>
...
متن {{پک|دریابندری|۱۳۷۹|ک=کتاب مستطاب|ص=۱}}
...
* {{یادکرد کتاب|نام خانوادگی = دریابندری | نام = نجف | عنوان = کتاب مستطاب آشپزی، از سیر تا پیاز|ناشر = نشر کارنامه|سال = ۱۳۷۹|مکان = تهران}}
</syntaxhighlight>
|}
از آنجا که در الگوی ''<code><nowiki>{{یادکرد کتاب}}</nowiki></code>'' پارامترهای «''نام خانوادگی''» و «''سال''» ذکر شدهاند، پانویس کوتاهشده هم باید به آنها به همان شکل اشاره کند اگر نه پیوند بین پانویس کوتاه و یادکرد کامل از کار میافتد.
گاه پیش میآید که مطلبی نویسنده ندارد؛ در این حالت خروجی پیشفرض الگوهای یادکرد، برای استفاده با الگوی پانویس کوتاهشده مناسب نیست. همچنین اگر ترکیب نام خانوادگی و سال، یکتا نباشد (مثلاً دو منبع وجود داشته باشد که هر دوشان نویسنده و سالشان یکی باشد) لازم میشود که پیوند بین پانویس و یادکرد به صورت دستی تنظیم بشود. در تمام این حالات، میتوان از پارامتر ''شناسه'' در الگوی یادکرد استفاده کرد. برای نمونه در مثالی که در ابتدای این بخش آمد، الگوی یادکرد وب پارامتر ''شناسه'' داشت به این شکل: <code><nowiki>شناسه={{شناسه یادکرد|تاریخنگار}}</nowiki></code> و این دستور با کمک الگوی {{الگوی|شناسه یادکرد}} خروجی یادکرد را به شکلی تغییر میدهد که اگر جایی در متن از پانویس کوتاه شده به صورت <code><nowiki>{{پک|تاریخنگار|ک=..|ص=..}}</nowiki></code> استفاده بشود، پیوند بین این دو با استفاده از شناسهٔ «تاریخنگار» برقرار میگردد.
:نکته: پارامتر ''شناسه'' با نام ''ref'' نیز شناخته میشود و الگوی {{الگوی|شناسه یادکرد}} نیز گاهی با نام {{الگوی|harvid}} شناخته میشود.
=== یادکردهای لاتین ===
در منابع فارسی مرسوم است که اگر در متنی هم از منابع فارسی و عربی (که زبانهایی از راست به چپ هستند) و هم از منابع لاتین (مثلاً انگلیسی و فرانسوی که زبانهایی چپ به راست هستند) استفاده شود، متن پانویسها و یادکردهای لاتین به درستی از چپ به راست و به زبان انگلیسی (به عنوان زبان رایج در متون علمی) نوشته بشود. این کار به سادگی با کمک استفاده از پارامتر ''dir'' (مخفف direction به معنای جهت) در برچسب ''<code><nowiki><ref></nowiki></code>'' میسر است. مقدار این پارامتر در ویکیپدیای فارسی به طور پیشفرض برابر است با <code><nowiki>rtl</nowiki></code> (مخفف right-to-left یعنی راست به چپ) در نتیجه برای بیشتر منابع که به فارسی هستند، این پارامتر اصلاً ذکر نمیشود اما برای منابع لاتین مقدار آن باید به صورت <code><nowiki>ltr</nowiki></code> (مخفف left-to-right به معنی چپ به راست) ذکر بشود.
همچنین، اگر چه الگوهای یادکرد (مثل {{الگوی|یادکرد کتاب}} و {{الگوی|یادکرد وب}}) توانایی تولید خروجی به انگلیسی را نیز دارند (با کمک پارامتر ''زبان'') اما خروجی که از الگوهای مشابه انگلیسی (نظیر {{الگوی|cite book}} و {{الگوی|cite web}}) به دست میآید، استانداردتر است. در نتیجه معمولاً یادکردهای لاتین با الگوهای خانوادهٔ cite، و یادکردهای فارسی و عربی با الگوهای خانوادهٔ یادکرد ذکر میشوند.
:نکته: برخلاف الگوهای خانوادهٔ یادکرد، که اگر نام نویسنده و سال در آن ذکر بشود نیازی به وارد کردن شناسه نیست، در الگوهای خانوادهٔ cite پارامتر ''ref'' باید همیشه ذکر بشود تا پیوند پانویسهای کوتاهشده درست کار کند.
:نکته: برای این که شمارهٔ صفحه در الگوی پانویس کوتاهشده با نقطهگذاری صحیح نمایش یابد، از پارامتر <code><nowiki>زبان=en</nowiki></code> استفاده کنید.
مثال زیر، یک متن از یادکردهایی در زبانهای مختلف استفاده میکند را نشان میدهد.
<blockquote style="color:#999; background:white; padding:1em; border:1px solid DarkSeaGreen;">
این متن اصلی مقاله است که منبع آن صفحهای از یک کتاب فارسی است<span style="color:black;">'''<ref>'''<nowiki>{{</nowiki>پک|نگهبان|۱۳۸۸|ک=تاریخ ایران|ص=۶۶}}'''</ref>'''</span> و این مطلبی است که از یک کتاب عربی نقل شده است.<span style="color:black;">'''<ref>'''<nowiki>{{</nowiki>پک|زرکلی|۱۹۷۲|ک=الأعلام|ص=۴۹۷}}'''</ref>'''</span> این جمله از یک منبع انگلیسی به عنوان منبع استفاده میکند،<span style="color:black;">'''<ref dir=ltr>'''<nowiki>{{</nowiki>پک|Smith|2006|ک=Intro to Physics|ص=584|زبان=en}}'''</ref>'''</span> و این یکی از یک منبع انگلیسی که نام نویسنده ندارد.<span style="color:black;">'''<ref dir=ltr>'''<nowiki>{{</nowiki>پک/بن|Wired|ک=Quantum computing in the 20th century|زبان=en}}'''</ref>'''</span>
{{سخ}}
{{سخ}}
<span style="color:#666;">== پانویس ==</span>
{{سخ}}
<span style="color:black;"><nowiki>{{پانویس}}</nowiki></span>
{{سخ}}
{{سخ}}
<span style="color:#666;">== منابع ==</span>
{{سخ}}
<span style="color:black;"><nowiki>* {{</nowiki>یادکرد کتاب|نام خانوادگی = نگهبان|نام = تورج|عنوان = مبانی فیزیک کاربردی|ناشر = فرهنگستان علوم |شهر = تهران|سال = ۱۳۸۸|شابک=۹۷۸-۶۰۰-۱۲۳۴۵-۹-۰}}</span>
{{سخ}}
<span style="color:black;"><nowiki>* {{</nowiki>یادکرد کتاب| نام خانوادگی = زرکلی | نام = خیرالدین | عنوان = الأعلام | سال = ۱۹۷۲ | ناشر = دارالعلم للملایین | مکان = قاهره}}</span>
{{سخ}}
<nowiki>{{چپچین}}</nowiki>
{{چپچین}}
<span style="color:black;"><nowiki>* {{</nowiki>cite book| ref= {{harvid|Smith|2006}} | last= Smith | first = John | title = Introduction to Physics | publisher = Harvard University Press | year = 2006 | location = Cambridge, MA | isbn = 978-0-470-40942-8}}</span>
{{سخ}}
<span style="color:black;"><nowiki>* {{</nowiki>cite web| ref= <nowiki>{{</nowiki>harvid|Wired}} | last= | first = | title = Quantum Computing in the 20th Century | publisher = Wired | url = <nowiki>http://www.wired.com/etc</nowiki> | year = 2018 | date = 2018-01-14 | accessdate = 2018-08-03}}</span>
{{پایان چپچین}}
<nowiki>{{پایان چپچین}}</nowiki>
</blockquote>
و نتیجهٔ آن به صورت زیر خواهد بود:
<blockquote style="background:white; padding:1em; border:1px solid #999;">
این متن اصلی مقاله است که منبع آن صفحهای از یک کتاب فارسی است<ref>{{پک|نگهبان|۱۳۸۸|ک=مبانی فیزیک کاربردی|ص=۱۴۴}}</ref> و این مطلبی است که از یک کتاب عربی نقل شده است.<ref>{{پک|زرکلی|۱۹۷۲|ک=الأعلام|ص=۴۹۷}}</ref> این جمله از یک منبع انگلیسی به عنوان منبع استفاده میکند،<ref dir=ltr>{{پک|Smith|2006|ک=Intro to Physics|ص=584|زبان=en}}</ref> و این یکی از یک منبع انگلیسی که نام نویسنده ندارد.<ref dir=ltr>{{پک/بن|Wired|ک=Quantum computing in the 20th century|زبان=en}}</ref>
{{سخ}}
{{سخ}}
<font size="5">پانویس</font>
----
{{پانویس|}}
<font size="5">منابع</font>
----
* {{یادکرد کتاب|نام خانوادگی = نگهبان|نام = تورج|عنوان = مبانی فیزیک کاربردی|ناشر = فرهنگستان علوم |شهر = تهران|سال = ۱۳۸۸|شابک=۹۷۸-۶۰۰-۱۲۳۴۵-۹-۰}}
* {{یادکرد کتاب| نام خانوادگی = زرکلی | نام = خیرالدین | عنوان = الأعلام | سال = ۱۹۷۲ | ناشر = دارالعلم للملایین | مکان = قاهره}}
{{چپچین}}
* {{cite book| ref= {{harvid|Smith|2006}} | last= Smith | first = John | title = Introduction to Physics | publisher = Harvard University Press | year = 2006 | location = Cambridge, MA | isbn = 978-0-470-40942-8}}
* {{cite web| ref= {{harvid|Wired}} | last= | first = | title = Quantum Computing in the 20th Century | publisher = Wired | url = http://www.wired.com/etc | year = 2018 | date = 2018-01-14 | accessdate = 2018-08-03}}
{{پایان چپچین}}
</blockquote>
== ارجاع گروهی ==
{{میانبر|وک:ارجاع گروهی}}
اگر به یک منبع بیش از یک بار ارجاع میدهید، میتوانید از پارامترِ <code><nowiki>name</nowiki></code> در دستورِ <code><nowiki>ref</nowiki></code> استفاده کنید تا ارجاعهای شما چند بار شماره نخورند. توجه کنید که '''اگر از پانویس کوتاهشده استفاده میکنید، نبایستی از ارجاع گروهی استفاده کنید'''. ارجاع گروهی فقط برای مواردی مناسب است که تمام پانویسها طولانی باشند.
به مثال زیر نگاه کنید:
<blockquote style="color:#999; background:white; padding:1em; border:1px solid DarkSeaGreen;">
این متن اصلیِ مقاله است که منبع آن خبری از خبرگزاری ایسنا<span style="color:black;" ><span dir="ltr">'''<ref name="isna">'''</span><nowiki>{{</nowiki>یادکرد وب|نشانی = <nowiki>http://www.isna.ir/etc</nowiki> {{رچ}}|عنوان = عنوان خبر|ناشر = ایسنا|تاریخ بازدید = ۱۸ ژانویهٔ ۲۰۱۳|تاریخ = ۱۱ فروردین ۱۳۸۸}}'''</ref>'''</span> و مطلبی است که در یک کتاب دیگر آمده است.<span style="color:black;">'''<ref>'''<nowiki>{{</nowiki>یادکرد|نویسنده = احمدی، احمد|عنوان = ساختار پرونده|ناشر = نشر زیبا|شهر = تهران|تاریخ = ۱۳۷۵}}'''</ref>'''</span>
{{سخ}}
{{سخ}}
در قسمت دیگری از متن، دوباره به خبر ایسنا ارجاع میشود.<span style="color:black;" dir="ltr">'''<ref name="isna"/>'''</span>
{{سخ}}
{{سخ}}
<span style="color:#666;">== منابع ==</span>
{{سخ}}
<span style="color:black;"><nowiki>{{پانویس}}</nowiki></span>
</blockquote>
که نتیجه میدهد:
<blockquote style="background:white; padding:1em; border:1px solid #999;">
این متن اصلی مقاله است که منبع آن خبری از خبرگزاری ایسنا<ref name="isna">{{یادکرد وب|پیوند = http://www.isna.ir/etc | عنوان = عنوان خبر|ناشر = ایسنا|تاریخ بازدید = ۱۸ ژانویهٔ ۲۰۱۳|تاریخ = ۱۱ فروردین ۱۳۸۸}}</ref> و مطلبی است که در یک کتاب دیگر آمده است.<ref>{{یادکرد|نویسنده = احمدی، احمد|عنوان = ساختار پرونده|ناشر = نشر زیبا|شهر = تهران|تاریخ = ۱۳۷۵}}</ref>
{{سخ}}
{{سخ}}
در قسمت دیگری از متن، دوباره به خبر ایسنا ارجاع میشود.<ref name="isna"/>
{{سخ}}
{{سخ}}
<font size="5">منابع</font>
----
{{پانویس|}}
</blockquote>
{{لنگر|ارجاع گروهی نه}}
{{میانبر|وپ:ارجاع گروهی نه}}
'''نکتهٔ مهم:''' زمانی که از پانویسهای کوتاهشده استفاده میکنید، ارجاعها نباید تجمیع شوند بلکه باید تکرار شوند؛ مثلاً اگر دوبار به یک صفحه از یک کتاب ارجاع میدهید، باید دستور الگوی پانویس کوتاهشده را عیناً دو بار تکرار کنید. در متون چاپی، برای بار دوم به بعد از «''همان''» در پانویس استفاده میکنند و حتی اگر چند پانویس پیاپی، مربوط به صفحههای مختلفی از یک منبع باشند از مورد دوم به بعد به صورت «''همان، ۴۴''» و «''همان، ۴۷''» پانویس داده میشود (که ۴۴ و ۴۷ شمارهٔ صفحه هستند). در ویکیپدیا، استفاده از «همان» مناسب نیست چرا که صفحهها مدام در حال تغییر هستند و ممکن است بین دو پانویس، پانویس جدیدی اضافه شود که معنای «همان» را تغییر بدهد. در نتیجه در تمام موارد، پانویس کوتاهشده عیناً تکرار میشود تا نگهداری صفحهها راحتتر باشد.
== کتابها ==
در این بخش نحوهٔ نگارش یادکردها توضیح داده میشود. استفاده از الگوهای توصیه شده کمک میکند تا یادکردها به آسانی به روش زیر نگاشته شوند و نیاز به تنظیم دستی نحوهٔ نمایش آنها نباشد.
=== ساختار یادکرد ===
این ترتیب برای یادکرد اطلاعات مربوط به کتابها استفاده میشود:
::نام مؤلف به شکل نام خانوادگی، ویرگول، نام، (برای بیشتر از یک نویسنده به مثالها رجوع کنید) نقطه، عنوان کتاب (به شکل ایرانیک یعنی بهصورت <nowiki>''عنوان''</nowiki>)، ویرگول(،) نوبت ویرایش (اگر غیر از نوبت اول است) نقطه، نام شهر محل نشر، دونقطه (:) نام ناشر، سال چاپ برای نوبت ذکر شده. شابک.
در انتها نیز در صورتی که آن کتاب صفحهٔ وبی دارد (مثلاً در وبگاه [http://www.ketab.ir/ ketab.ir])، پیوند به آن صفحهٔ وب میآید.
مثال:
* شاملو، احمد. ''در آستانه''. تهران: مؤسسه انتشارات نگاه، ۱۳۷۶ {{شابک|964-6174-28-0}}. [http://www.ketab.ir/DesktopDefault.aspx?TabID=3564&Alias=Ketab&Lang=fa-IR&BookID=167130 خانهٔ کتاب].
برای دو نویسنده:
* بودریار، ژان، و احمد مومیایی رازی. ''سرگشتگی نشانهها، نمونههایی از نقد پسامدرن''. ترجمهٔ باب رحمتی. تهران: نشر مرکز، ۱۳۷۴. ISBN 964305120X, [http://www.ketab.ir/DesktopDefault.aspx?TabID=3564&Alias=Ketab&Lang=fa-IR&BookID=140309 خانهٔ کتاب].
بیشتر از دو نویسنده:
* لوگان، جان، و دیگران. ''سه توپ دارم قلقلیه''. تهران: نشر بادبادک، ۱۳۷۷.
=== نکات کلی ===
* بسیار خوب است اگر که نام نویسنده یا نویسندگان کتاب به همان شکلی که در کتاب (و مقالات) ثبت شده است آورده شود. در بعضی شیوهها برای صرفهجویی در فضا نام کوچک نویسنده را بهطور مختصر مینویسند ولی از آنجا که در ویکیپدیا معضل فضا وجود ندارد، ''نیازی به خلاصه کردن نام نگارنده نیست'' و میتوان آن را بهطور کامل نوشت. بهعلاوه، ''ثبت نام کامل نویسنده'' باعث سادگی در یافتن منبع یادکرده و یافتن منابع یادکردهٔ دیگر از همان نویسنده، خواهد بود.
* نام کتابهای نگاشته به زبانهای غیر فارسی، به فارسی ترجمه نمیشود، مگر اینکه ارجاع به ترجمهٔ فارسی آنها باشد، که در آن صورت عنوان کتاب به زبان اصلی ذکر نمیشود. این مسئله برای دیگر انواع منابع هم صادق است.
* در صورتیکه ویکیپدیا صفحهای اختصاصی برای کتابی که در حال ثبت مشخصات آن هستید، دارد، ''عنوان کتاب'' را به مقالهای که در موردش نوشته شده است، پیوند دهید.
* در صورتیکه نویسندهٔ کتاب شخص معروفی است، و در متن اصلی مقاله پیوندی به مقالهٔ اختصاص یافته به آن نویسنده نیامده است، نام او را در یادکرد اطلاعات کتاب پیونددار نمایید. بعضی از اوقات پیوند ساختن برای نام ناشر، محل نشر و غیره هم منطقی و قابل قبول است.
* در الگوهای یادکرد باید از تاریخی استفاده شود که شناسنامهٔ منبع استفاده کرده است؛ مثلاً اگر منبع چاپ ایران است از هجری شمسی استفاده میشود.
* هنگام هر گونه ارجاع به هر کتابی، بهتر است [[شابک]] (ISBN) کتاب ذکر شود. شمارهٔ مربوط به شابک بهطور خودکار ویکیسازی خواهد شد. برای این منظور از الگوی {{الگوی|شابک}} میتوان استفاده کرد؛ الگوهای خانوادهٔ یادکرد و خانوادهٔ cite همگی به طور خودکار الگوی شابک را فراخوانی میکنند در نتیجه در پارامتر «شابک» یا «isbn» این الگوها، فقط خود شابک وارد میگردد.
* با اینکه خدمات جستجوی کتاب ویکیپدیا در وبگاههایی مانند Amazon (که از طریق پیوندی که روی شمارهٔ شابک قرار میگیرد قابل دسترسی است) معمولاً به نمایش نتایج کتاب موردنظر نمیانجامد و اطلاعات کتابهای فارسی در [[دادگان]] آن وبگاهها ثبت نشدهاند، ولی بهتر است که بهعنوان آیندهنگری شمارههای شابک کتابها به شکل صحیح و دارای پیوند ذکر شوند.
* اشاره به یک مقاله یا یک فصل خاص در داخل کتابی که هر فصل (یا مقاله) از آن نویسندگان متفاوتی دارد به شکل زیر است:
:: * دلوز، ژیل. «تفکر ایلیاتی». در بودریار، ژان و دیگران. ''سرگشتگی نشانهها، نمونههایی از نقد پسامدرن''. ترجمهٔ بابک احمدی. ۳۰–۵۰ تهران: نشر مرکز. ۱۳۷۴، ISBN 964305120X, [http://www.ketab.ir/DesktopDefault.aspx?TabID=3564&Alias=Ketab&Lang=fa-IR&BookID=140309 خانهٔ کتاب].
== مقالههای ژورنالها ==
یادکرد یک مقاله از یک ژورنال شامل موارد زیر است:
* نام نویسنده (یا نویسندگان)
* سال و در بعضی موارد ماه انتشار
* عنوان مقاله در نشان نقل قول (گیومه)
* نام ژورنال به صورت ایتالیک
* شمارهٔ جلد، شمارهٔ انتشار، و شمارهٔ صفحه (شماره مقاله در بعضی مقالات مربوط به برق)
'''مثال:'''
* احمدی، احمد. «مقابله با حملات DoS»، ''مجموعه مقالات پژوهشگاه امنیت فناوری اطلاعات'' '''۲''' (۳): ۲۳۴–۲۵۱.
توجه کنید که اعدادی که بعد از عنوان ژورنال آمدهاند بهترتیب «'''دوره''' (شماره)، شمارهٔ صفحات» هستند.
به جای شماره میتوان تاریخ را وارد کرد، و اگر هر دو هم ذکر شوند موردی ندارد. ممکن است به هر دلیلی دوره، شماره یا هر دو ذکر نشوند. در این حالتها شیوهٔ یادکرد قدری متفاوت میشود. توصیه میشود از الگوی {{الگو|یادکرد ژورنال}} استفاده کنید.
برای مقالهای که جایی بر روی وب نسخهای از آن موجود است میتوانید عنوان مقاله را پیوندی به نسخهٔ وبی بدهید.
== روزنامهها، مجلهها و نشریههای ادواری ==
به مثالها توجه کنید:
* مرجایی، فرید. «کودتا علیه عرصهٔ عمومی». ''شرق''، ۲۹ مرداد ۱۳۸۴، شماره ۵۵۴، ص ۶.
یا در صورتی که مقاله نام نگارنده ندارد:
* «در ستایش لیبرالیسم». ''کیهان''، ۱ دی ۱۳۹۰، ص ۳.
به همچنین در صورتی که بخواهیم به نسخهٔ موجود روی وب از این مقالهٔ روزنامه پیوند دهیم باید از بخش عنوان مقاله برای پیونددهی استفاده کنیم. در این حالت دیگر نوشتن شمارهٔ صفحه لازم نیست (و البته ضرری هم ندارد):
* باباحاجی، ایرچ. [http://www.sharghnewspaper.com/840530/html/hist.htm#s282201 سرنوشتی که در خیابان رقم خورد]، ''شرق''، یکشنبه ۳۰ مرداد ۱۳۸۴، شماره ۵۵۵.
== وبگاهها و مقالهها (غیر از مقالههای نشریات ادواری) ==
:''تذکر: توجه کنید که در بعضی موارد، بنا بر [[وک:اثبات|سیاست اثباتپذیری]] ویکیکتاب، وبلاگها و امثال آن که جزو منابع خودچاپکرده به شمار میآیند منبع خوبی برای مقالههای ویکیپدیا نیستند؛ خصوصاً هنگامی که راجع به خود صحبت نمیکنند.''
برای یادکرد کل یک وبگاه بدون اشاره به یک سند یا صفحهٔ خاص بر روی آن وبگاه میتوان به سادگی، آدرس وبی (URL) آن را در متن مقاله آورد. در ویکیپدیا یک URL ساده که با «<nowiki>//:http</nowiki>» شروع شود بهطور خودکار تبدیل به پیوند قابل کلیک کردن خواهد شد. بهعنوان مثال این متن را در نظر بگیرید: «اسلشدات یک وبگاه محبوب است که در این آدرس http://slashdot.org قرار دارد». با توجه به اینکه به کلیت یک وبگاه اشاره میکنید و نه به محتویاتی خاص بر روی آن، بنابراین احتیاجی به ذکر تاریخ بازبینی اطلاعات از آن وبگاه نیست.
برای یادکرد صفحات وب خاص (یا مجموعهای از آنها) همانند یادکرد کتابها عمل میکنیم (و ''عنوان'' را پیونددار میکنیم)، اما در این حالت باید یک تاریخ بازبینی هم نوشته شود:
* پارسا، مانی. [http://www.chn.ir/news/?section=2&id=45418 «ثبت جهانی دماوند به عنوان نخستین میراث طبیعی کشور تکذیب شد»]. (۸ اردیبهشت ۱۳۸۴). بازبینی ۱ شهریور ۱۳۸۴.
تاریخ داخل پرانتز تاریخ ساخته شدن این صفحه برای اولین بار یا تاریخ آخرین بهروز رسانی این صفحه است. در صورت نامشخص بودن این بحث میتوان آن را حذف کرد و ذکر ننمود. بخش مربوط به ''تاریخ بازبینی'' به خواننده کمک میکند که از طریق ابزارهایی مانند [[بایگانی اینترنت]] دقیقاً نسخهای که مدنظر شماست را بازیابی کند.
توجه داشته باشید که در ویکیپدیا معمول است که بخشی با عنوان ''پیوند به بیرون'' (پس از ''منابع'') وجود داشته باشد که پیوندهای متفاوتی به وبگاهها و صفحات متفاوت در آن بخش قرار میگیرد.
به دلیل پویایی وب، ممکن است صفحهای که به عنوان منبع استفاده شده است، غیرفعال شود. چنین یادکردی را با وجود اینکه غیرفعال است، حذف نکنید؛ زیرا تنها با وجود داشتن این یادکرد است که مشخصات منبعی که قبلاً وجود داشته است ثبت میگردد. میتوانید در کنار یادکرد یادداشتی ثبت کنید و در آن تاریخی که پیوند اصلی صفحهٔ مورد بحث غیرفعال شده است را بنویسید. در صورتیکه نسخهای در خدمات بایگانی اینترنت میشناسید، یک پیوند به آن بدهید. برای این منظور [[ویکیپدیا:پیوندهای مرده]] را ببینید.
== به آنچه خودتان خواندهاید ارجاع دهید ==
{{میانبر|وک:ارجاع نادیده}}
تنها به منابعی ارجاع دهید که به چشم خودتان دیدهاید. اگر میخواهید از ''نویسندهٔ ب'' یاد کنید در حالی که خودتان تنها نوشتهٔ ''نویسندهٔ الف'' را که در آن از ''نویسندهٔ ب'' گفتاوردی آمده است خواندهاید، آنگاه لازم است هنگام یادکرد، در ادامهٔ نوشتن مشخصات منبع ''ب'' (که خودتان ندیدهاید)، با افزودن عبارتی مثل «به نقل از» و سپس آوردن مشخصات منبع الف (که خودتان دیدهاید)، این موضوع را مشخص کنید.
با این حال اگر خودتان منبع ''ب'' را از نزدیک دیده و صحتش را بررسی کردهاید، میتوانید مستقیم و تنها از همین منبع یاد کنید. ذکر شیوهٔ دستیابی شما به منبع نیز لازم نیست؛ بنابراین اگر از طریق یک جویشگر اینترنتی، کتابخانه، وبگاه، یا مانند آن به منبع دست یافتید، به شرط اینکه بتوان اطمینان حاصل کرد که این منبع یک کپی دقیق و دستنخورده است، لازم نیست این موارد را هنگام ارجاع به منبع ذکر کنید. به طور مشابه اهمیتی نخواهد داشت اگر کتابی را در [[w:fa:گوگل بوکس|گوگل بوکس]]، جیاستو، در پیشنمایش یک کتابفروشی برخط معتبر مانند [[W:fa:آمازون|آمازون]]، یا کتابخوان الکترونیکی شخصیتان (مگر در حالتی که در شمارهگذاری صفحهها تأثیر داشته باشد) مطالعه کرده باشید.
== شیوهنامهٔ ارجاعدهی ==
{{میانبر|وک:شیوهنامه ارجاع|وک:سبک ارجاع}}
ویکیپدیا از یک شیوهنامهٔ ارجاعدهی خاص به عنوان پیشفرض استفاده نمیکند با این حال ارجاعدهی در یک مقالهٔ خاص باید از یک شیوهنامهٔ ارجاعدهی مشخص پیروی کند.
تعدادی از شیوهنامههای ارجاعدهی مورد قبول ویکیکتاب در صفحات '''استناد'''، '''شیوهنامهٔ انجمن روانشناسی آمریکا'''، '''شیوهنامهٔ ایاسای'''، '''دستنامه امالای'''، '''شیوهنامهٔ شیکاگو'''، '''منبعدهی هاروارد'''، '''شیوهنامهٔ ونکوور''' و '''کتابآبی''' شرح دادهشدهاند.
با وجودی که برای انتخاب شیوهنامهٔ ارجاعدهی، ویکیپدیا دستتان را باز گذاشته است، اشاره به تاریخ باید از شیوهٔ مشخصی تبعیت کند.<ref name="enwiki19-11-95">{{یادکرد وب |نویسنده = |نشانی=https://en.wikipedia.org/w/index.php?title=Wikipedia:Citing_sources&oldid=763923862 |عنوان=ترجمه از ویکیپدیای انگلیسی | ناشر = |تاریخ = |تاریخ بازبینی=۱۹ بهمن ۱۳۹۵}}</ref>
=== تنوع در شیوهنامههای ارجاعدهی ===
{{میانبر|وک:ارجاع متنوع}}
ویرایشگران نباید شیوهنامهٔ ارجاعدهی غالب یک مقاله را به دلخواه خودشان یا برای مشابهسازی با سایر مقالات تغییر دهند و باید به [[ویکیکتاب:اجماع|اجماع]] صورت گرفته در مورد آن مقاله توجه کنند (در صورتی که موجود باشد و اگر موجود نبود باید به اجماع برسند)
بر پایهٔ [[ویکیکتاب:شیوهنامه|شیوه ویرایشی]] فعالترین ویرایشگران مقاله، شیوهنامهٔ ارجاعدهی مقاله مشخص میشود یا بر پایهٔ اجماع صورت گرفته میان کاربران فعال در توسعهٔ مقاله میتوان شیوهنامهٔ ارجاعدهی مقاله را مشخص کرد. اگر مقالهای که بر روی آن کار میکنید دارای سبک ارجاعدهیست باید به آن احترام گذاشت و مابقی ارجاعها مشابه آن انجام گیرند. اگر تصور میکنید تغییر شیوهنامهٔ ارجاعدهی برای مقاله واجب است باید در بحث مقاله تلاش کنید نظر دیگر کاربران را جلب کنید و به اجماع برسید. اگر اولین کاربر هستید که به مقاله منبع میافزایید سعی کنید شیوهنامهٔ ارجاعدهی مناسب با موضوع مقاله انتخاب کنید.
اگر بیشتر منابع ارجاع شده در مقاله بدون الگوهای ارجاع استفاده شدهاند و فقط پیوند اینترنتی بدون ذکر نام نویسنده، تاریخ نشر، شمارهٔ صفحه است و این اطلاعات را میتوانید بهدست بیاورید مسلماً اینگونه ارجاعدهی نمیتواند به عنوان شیوهنامهٔ ارجاعدهی مقاله در نظر گرفت و میتوانید آن را با شیوهنامهٔ ارجاعدهی مناسب که جزئیات بیشتری در مورد منابع به مقاله میافزاید انتخاب کنید.<ref name="enwiki19-11-95"/>
==== کارهایی که باید از انجامشان اجتناب کرد ====
زمانی که یک مقاله یک شیوهنامهٔ ارجاعدهی مشخص دارد، کارهای زیر را نباید انجام داد:
* تغییر دادن شیوهنامهٔ ارجاعدهی غالب مقاله با شیوهنامهٔ ارجاعدهی دیگر مثلاً تغییر شیوهنامهٔ ارجاعدهی پرانتزدار با شیوهنامهٔ ارجاعدهی بدون پرانتز، یا جایگزین کردن یک شیوهنامهٔ ارجاعدهی آکادمیک با شیوهنامهٔ ارجاعدهی دیگر آکادمیک. (مثلاً تغییر شیوهنامهٔ ارجاعدهی شیکاگو به شیوهنامهٔ ارجاعدهی هاروارد)
* افزودن الگوهای ارجاعدهی به مقالهای که از پیوند اینترنتی بدون الگو استفاده میکند یا حذف الگوهای ارجاعدهی از یک مقاله که از آن شیوهنامهٔ ارجاعدهی خاص استفاده میکند.
* تغییر مکان ارجاعهای تعریف شده، مثلاً انتقال ارجاعها از متن مقاله به بخش منابع یا انتقال ارجاعها از بخش منابع به درون متن (به صورت درونخطی)<ref name="enwiki19-11-95"/>
== انتساب درمتن ==
{{میانبر|وپ:درمتن}}
'''انتساب درمتن''' بهمعنای نسبتدادن یک جمله به منبع آن در درون خود جمله است که درکنار [[وپ:یادر|یادکرد درخط]] استفاده میشود. انتساب درمتن باید در نقلقولهای مستقیم، نقلقولهای غیرمستقیم و در خلاصهنویسیها بهکار رود. انتساب درمتن باعث جلوگیری از دستبرد فکری سهوی میشود و به خواننده این اجازه را میدهد تا بداند یک دیدگاه از چه کسی یا چه کسانی است. پس از انتساب درمتن، حتماً باید از یادکرد درخط نیز استفاده کرد.
برای مثال:
{{نقلقول|{{ضربدر}} سلاح هستهای بازدارندگی به ارمغان نمیآورد.{{مرجع ساختگی|۲}}}}
{{نقلقول|{{تیک}} کوربین معتقد است سلاح هستهای بازدارندگی به ارمغان نمیآورد.{{مرجع ساختگی|۲}}}}
هنگام استفاده از انتساب درمتن سعی کنید که دیدگاه بیطرف را نقض نکنید.
برای مثال:
{{نقلقول|{{ضربدر}} داروین میگوید انسانها با ابزار انتخاب طبیعی تکامل یافتهاند،{{مرجع ساختگی|۳}} اما اکبرخان میگوید انسانها از کرهٔ ماه آمدهاند.{{مرجع ساختگی|۴}}}}
{{نقلقول|{{تیک}} داروین معتقد بود انسانها با ابزار انتخاب طبیعی تکامل یافتهاند.{{مرجع ساختگی|۳}}}}
مشکل خط اول این است که به برابری دو منبع دلالت دارد و مشخص نمیکند که دیدگاه داروین، دیدگاه غالب است.
همچنین انتساب درمتن ممکن است باعث این تلقی شود که یک دیدگاه تنها از کشفیات یکنفر یا یک گروه است.
{{نقلقول|{{ضربدر}} اکبرخان معتقد است که دو بهعلاوه دو میشود چهار.}}
{{نقلقول|{{تیک}} دو بهعلاوه دو میشود چهار.}}
برای حقایق ساده میتوان از یادکردهای درخط استفاده کرد، اما معمولاً از انتساب درمتن استفاده نمیشود.
{{نقلقول|{{تیک}} مولکول آب از دو اتم هیدروژن و یک اتم اکسیژن تشکیل شده است.{{مرجع ساختگی|۵}}}}
== الگوهای ارجاعدهی ==
[[وک:الگوها]]
== جستارهای وابسته ==
برای مطالعهٔ بیشتر به صفحات زیر در ویکیپدیای انگلیسی مراجعه کنید:
* [[:en:Wikipedia:Citation_templates|الگوهای مورد استفاده در ارجاع به منابع]]
* [[:en:Wikipedia:Scientific_citation_guidelines|قواعد ارجاع به منابع علمی]]
* [[:en:Harvard_referencing|ارجاع به روش هاروارد]]
== منابع ==
* {{یادکرد|نویسنده=ادیب سلطانی، میرشمسالدین|کتاب=راهنمای آمادهساختن کتاب|ویرایش=ویراست سوم|سال=۱۳۸۱|ناشر=انتشارات علمی و فرهنگی|شهر=تهران}}
{{چپچین}}
* Fowler, H. Ramsey. ''The Little, Brown Handbook''. second Canadian ed. Don Mills, Ontario, 1998. 660–668.
* ''The Chicago Manual of Style''. 15th ed. Chicago: University of Chicago Press, 2003.
* ''The Chicago Manual of Style Online''. 16th ed. [http://www.chicagomanualofstyle.org/16/ch14/ch14_toc.html chap. 14].
{{پایان چپچین}}
== پیوند به بیرون ==
* [http://tools.wmflabs.org/yadfa/ یادفا]، ابزار ایجاد یادکرد ویکی با استفاده از کتابخانههای دیجیتال [[گوگل بوکس]]، [[نورمگز]] و [[کتابخانه دیجیتال نور]].
8j6q0sov8d1un04j2k8pogmcv597myr
135319
135318
2026-09-29T08:24:58Z
Vivairan2
28134
/* وبگاهها و مقالهها (غیر از مقالههای نشریات ادواری) */
135319
wikitext
text/x-wiki
{{فهرست رهنمودها}}
{{رهنمود|وک:شام|وک:شابم|وک:منابع|وک:شیوهم|وک:ارجاعدهی|وک:یادکرد}}
{{سرنویس|بهتر است ابتدا [[ویکیکتاب:تأییدپذیری|سیاست تأییدپذیری]] را دربارهٔ معتبر بودن منابع بخوانید.}}
ساختاربندی فهرست منابع یک کتاب [[وک:ویکیکتاب چیست؟|ویکیکتاب]] جزو جزئیاتی است که در درجهٔ دوم اهمیت قرار دارند و در حال حاضر در ویکیکتاب انگلیسی نیز هنوز توافق عام بر روی یک روش مشخص یادکرد منابع، بهدست نیامده است؛ بنابراین در صورتی که شما یک روش خاص (بخصوص روشهایی که بهوسیلهٔ اهل فن در آن رشتهٔ خاص استفاده میشود) را برای یادکرد منابع بکار میبرید، '''لطفاً استفاده از همان روش را ادامه دهید'''. اما در صورتی که نمیتوانید در مورد اینکه چه شیوه و روشی را انتخاب کنید، تصمیم بگیرید یا نمیدانید چه اطلاعاتی را در یادکرد منبع باید گنجاند، به خواندن این رهنمود ادامه دهید.
در این رهنمود یک شیوهٔ نوعی بر مبنای شیوهٔ استانداردی که در کتاب ''شیوهنامهٔ شیکاگو'' از آن با عنوان «ساختاربندی علمی» یاد شده، آمده است. در ''شیوهنامهٔ شیکاگو''، که اینجا هم از آن پیروی شده است، یادکرد منابع (یعنی ارجاع به منابع برای مستند کردن ادعا) در پانویس است و پانویسها با شماره مشخص میشود. میتوان در پایان رساله فهرستی الفبایی از مآخذ ذکر کرد اما اجباری نیست، به شرطی که یادکرد منابع در پانویسها کامل و دقیق باشد. از سوی دیگر میتوان در یادکرد منابع از کوتهنوشتها و خلاصهنویسی سود جست، در این صورت ذکر کامل فهرست منابع و مآخذ اجباریاست. در ویکیپدیای فارسی شِقّ دوم پیشنهاد میشود؛ یعنی ارجاعات پانویسی به اختصار صورت میگیرد و سپس در پایان مقاله فهرست کاملی از منابع و مآخذ به ترتیب الفبایی نام خانوادگی نویسندگان ذکر میشود. یادکرد دقیق و عملی منابع در معنای کلی دو مرحله دارد. یکی اینکه جملهها و دعاوی را به منابع معتبر ارجاع دهیم و دوم فهرست کامل منابع را با اسلوب و چیدمانی خاص در پایان مقاله ذکر کنیم. در این نوشتار به هر دو جنبه پرداخته خواهد شد.
ابتدا شیوهٔ ارجاع به منابع در متن مقاله را معرفی میکنیم. پس از مطالعهٔ این بخش ویکینویس میداند که چگونه در مقاله به منابع در پانویس ارجاع دهد. در مرحلهٔ بعد روش یادکرد اطلاعات مربوط به منابع مختلف (کتاب، مقالات و…) را بررسی میکنیم. این اطلاعاتیاست که در بخش <nowiki>== منابع ==</nowiki> هر مقاله باید ذکر شود. ارائهٔ این اطلاعات (یعنی مشخصات منابع) به شیوه و اسلوب خاصی باید باشد؛ مثلاً ابتدا نام خانوادگی نویسنده باید ذکر شود و سپس نام کوچک وی. پس از آن نام کتاب به صورت ''ایتالیک'' نشان داده میشود و سپس سایر جزئیات ذکر میگردد. بخشهای مختلف این نوشتار به مهمترین جنبههای اسلوب ذکر اطلاعات کتابشناختی منابع خواهند پرداخت. فراگرفتن و به خاطر سپردن تمام این جزئیات بایسته نیست. ویکینویسان میتوانند بر حسب نیاز به این صفحه رجوع کنند. به علاوه الگوهایی برای آسانسازی کار آنها ساخته شده است که در بیشتر موارد ایشان را از دانستن جزئیات بینیاز میکند. این الگوها نیز در نوشتار معرفی شدهاند.
== یادکرد منابع، چرا و چه زمان؟ ==
=== چندرسانهای ===
جزئیات مبدأ و وضعیت حق تکثیر تصاویر و دیگر پروندههای رسانهای باید در صفحهٔ پرونده (در ویکیکتاب یا ویکیانبار) درج شود. تصویر نیز باید همانند سایر بخشهای مقالهها دارای منبع و ارجاع مناسب باشد. برای توصیفهایی نظیر [[ویکیپدیا:متن جایگزین برای تصاویر|متن جایگزین]]، که بهطور مستقیم از طریق خود تصویر قابل اثبات هستند، و برای متنی که صرفاً به شناساندن منبع میپردازد (نظیر توضیح «''[[شب پرستاره]]'' (۱۸۸۹)» برای ''[[:پرونده:VanGogh-starry night ballance1.jpg]]'')، نیازی به یادکرد نیست.
== روش اشاره به منابع در متن ==
{{میانبر|وک:ارجاع درونخطی|وک:ارجاع دقیق}}
روش اشاره به منابع این است که منابع را در بخش مربوط فهرست میکنند و در هنگام یادکرد در داخل متن به پانویس یادکرد میدهند که در آنجا نام خلاصهٔ منبع آمده است. به این روش اصطلاحاً «پانویس کوتاهشده» نیز گفته میشود.
برای وارد کردن پاورقی در داخل متن اصلی مقاله جایی که شمارهٔ پاورقی باید داده شود متن پاورقی را بین <nowiki><ref>و</ref></nowiki> ذکر میکنند. سرانجام برای نمایش همهٔ پانویسها در بخش ''پانویس'' از الگوی {{الگو|پانویس}} استفاده میکنند؛ مثلاً به این صورت:
<blockquote style="color:#999; background:white; padding:1em; border:1px solid DarkSeaGreen;">
این متن اصلی مقاله است که از کتاب خاصی<span style="color:black;">'''<ref>'''روحانی، ''کتاب دانش''، ۲۳۴.'''</ref>'''</span> و کتاب دیگری<span style="color:black;">'''<ref>'''احمدی، ''پرونده در پرونده''. '''</ref>'''</span> برداشته شده است و یک پانویس توضیحی<sup>*</sup><span style="color:black;">'''<ref>'''این یک پانویس توضیحیاست. '''</ref>'''</span> هم دارد.
{{سخ}}
{{سخ}}
<span style="color:#666;">== پانویس ==</span>
{{سخ}}
<span style="color:black;"><nowiki>{{پانویس|۲}}</nowiki></span>
{{سخ}}
{{سخ}}
<nowiki>== منابع ==</nowiki>
{{سخ}}
<nowiki>
* روحانی، محمد. ''کتاب دانش''. تهران: نشر، ۱۳۷۰.</nowiki>
{{سخ}}<nowiki>
* احمدی، احمد. ''پرونده در پرونده''. تهران: نشر۲، ۱۳۷۵.</nowiki>
</blockquote>
که در آن از <sup>[۱]</sup> و <sup>[۲]</sup> به عنوان «پانویس ارجاعی» و <sup>*[۳]</sup> به عنوان «پانویس توضیحی» بهره برده شده است. نتیجهٔ پایانی آن به صورت زیر خواهد بود:
<blockquote style="background:white; padding:1em; border:1px solid #999;">
این متن اصلی مقاله است که از کتاب خاصی<ref>روحانی، ''کتاب دانش''، ۲۳۴.</ref> و کتاب دیگری<ref>احمدی، ''پرونده در پرونده''.</ref> برداشته شده است و یک پانویس توضیحی<sup>*</sup><ref>این یک پانویس توضیحیاست.</ref> هم دارد.
{{سخ}}
{{سخ}}
<font size="5">پانویس</font>
----
{{پانویس}}
<font size="5">منابع</font>
----
* احمدی، احمد. ''پرونده در پرونده''. تهران: نشر۲، ۱۳۷۵.
* روحانی، محمد. ''کتاب دانش''. تهران: نشر، ۱۳۷۰.
</blockquote>
نکته: اگر ویرگول یا نقطه در محل منبعدهی باشد تگ <nowiki><ref>...</ref></nowiki> به طور طبیعی پس از نقطه یا ویرگول قرار میگیرد.
== الگوهای کمکی برای یادکرد منابع در ویکیپدیای فارسی ==
توصیه میشود به جای ارجاع دستی از الگوهای یادکرد استفاده کنید. خروجی این الگوها با ضابطههایی که در این صفحه توضیح داده خواهد شد منطبق است. برای یادکرد کتاب از الگوی {{الگو|یادکرد کتاب}}، برای ژورنال از {{الگو|یادکرد ژورنال}}، برای یادکرد مطالبی که در اینترنت آمده از {{الگو|یادکرد وب}} و در موارد کلی، از الگوی {{الگو|یادکرد}} استفاده کنید. همچنین برای ارجاعهای خلاصهشده در بخش پانویس میتوانید از الگوی {{الگو|پانویس کوتاهشده}} استفاده کنید. در زیر مثالی از نحوهٔ استفاده از این الگوها آمده است:
<blockquote style="color:#999; background:white; padding:1em; border:1px solid DarkSeaGreen;">
این متن اصلی مقاله است که منبع آن خبری از خبرگزاری ایسنا<span style="color:black;">'''<ref>'''<nowiki>{{</nowiki>یادکرد وب|نشانی = <nowiki>http://www.isna.ir/etc</nowiki> {{رچ}}|عنوان = عنوان خبر|ناشر = ایسنا|تاریخ بازدید = ۱۸ ژانویه ۲۰۱۳|تاریخ = ۱۱ فروردین ۱۳۸۸}}'''</ref>'''</span> و مطلبی است که در یک کتاب دیگر آمده است.<span style="color:black;">'''<ref>'''<nowiki>{{</nowiki>یادکرد|نویسنده = احمدی، احمد|عنوان = ساختار پرونده|ناشر = نشر زیبا|شهر = تهران|تاریخ = ۱۳۷۵}}'''</ref>'''</span>
{{سخ}}
{{سخ}}
<span style="color:#666;">== منابع ==</span>
{{سخ}}
<span style="color:black;"><nowiki>{{پانویس}}</nowiki></span>
</blockquote>
و نتیجهٔ آن به صورت زیر خواهد بود:
<blockquote style="background:white; padding:1em; border:1px solid #999;">
این متن اصلی مقاله است که منبع آن خبری از خبرگزاری ایسنا<ref>{{یادکرد وب|نشانی = http://www.isna.ir/etc |عنوان = عنوان خبر|ناشر = ایسنا|تاریخ بازدید = ۱۸ ژانویه ۲۰۱۳|تاریخ = ۱۱ فروردین ۱۳۸۸}}</ref> و مطلبی است که در یک کتاب دیگر آمده است.<ref>{{یادکرد|نویسنده = احمدی، احمد|عنوان = ساختار پرونده|ناشر = نشر زیبا|شهر = تهران|تاریخ = ۱۳۷۵}}</ref>
{{سخ}}
{{سخ}}
<font size="5">منابع</font>
----
{{پانویس|}}
</blockquote>
=== پانویس کوتاهشده ===
{{میانبر|وک:پک|وک:پانویس کوتاهشده}}
استفاده از پانویسهای کوتاهشده یکی از روشهای استفاده شده در ویکیکتاب فارسی است و خروجی متداول در ویکیکتاب فارسی نیز بر اساس '''شیوهنامه شیکاگو''' است. برای راحتی ایجاد پانویسهای کوتاهشده به این روش، الگوی {{الگوی|پک}} (مخفف پانویس کوتاهشده) و {{الگوی|پک/بن}} (مخفف پانویس کوتاهشده بدون نویسنده) به کار گرفته میشوند.
الگوهای پانویس کوتاهشده، یک پیوند داخلی در صفحه ایجاد میکنند که به کمک آن، با کلیک کردن روی متن پانویس میشود به اصل منبع رسید. برای مثال، با کلیک کردن روی عبارت
<blockquote style="color:#999; background:white; padding:1em; border:1px solid DarkSeaGreen;">
این متن اصلی مقاله است که منبع آن صفحهای از یک کتاب است<span style="color:black;">'''<ref>'''<nowiki>{{</nowiki>پک|اصغری|۱۳۹۲|ک=تاریخ ایران|ص=۶۶}}'''</ref>'''</span> و این مطلبی است که از صفحهای دیگر از همان کتاب دیگر آمده است.<span style="color:black;">'''<ref>'''<nowiki>{{</nowiki>پک|اصغری|۱۳۹۲|ک=تاریخ ایران|ص=۹۳}}'''</ref>'''</span> این جمله از یک خبر به عنوان منبع استفاده میکند که نام نویسنده ندارد.<span style="color:black;">'''<ref>'''<nowiki>{{</nowiki>پک/بن|تاریخنگار|ک=فرازهایی از تاریخ ایران}}'''</ref>'''</span>
{{سخ}}
{{سخ}}
<span style="color:#666;">== پانویس ==</span>
{{سخ}}
<span style="color:black;"><nowiki>{{پانویس}}</nowiki></span>
{{سخ}}
{{سخ}}
<span style="color:#666;">== منابع ==</span>
{{سخ}}
<span style="color:black;"><nowiki>* {{</nowiki>یادکرد کتاب|نام خانوادگی = اصغری|نام = احمد|عنوان = تاریخ ایران: مروری بر منابع فارسی، عربی و انگلیسی|ناشر = نشر معاصر|شهر = تهران|سال = ۱۳۹۲}}</span>
{{سخ}}
<span style="color:black;"><nowiki>* {{</nowiki>یادکرد وب|نام خانوادگی = |نام = |عنوان = فرازهایی از تاریخ ایران|ناشر = تاریخنگار| نشانی = <nowiki>http://www.example.com/etc</nowiki> |تاریخ = ۱۴ اردیبهشت ۱۳۹۴| تاریخ بازبینی = ۷ مهر ۱۳۹۵|شناسه=<nowiki>{{</nowiki>شناسه یادکرد|تاریخنگار}} }}</span>
</blockquote>
و نتیجهٔ آن به صورت زیر خواهد بود:
<blockquote style="background:white; padding:1em; border:1px solid #999;">
این متن اصلی مقاله است که منبع آن صفحهای از یک کتاب است<ref>{{پک|اصغری|۱۳۹۲|ک=تاریخ ایران|ص=۶۶}}</ref> و این مطلبی است که از صفحهای دیگر از همان کتاب دیگر آمده است.<ref>{{پک|اصغری|۱۳۹۲|ک=تاریخ ایران|ص=۹۳}}</ref> این جمله از یک خبر به عنوان منبع استفاده میکند که نام نویسنده ندارد.<ref>{{پک/بن|تاریخنگار|ک=فرازهایی از تاریخ ایران|ص=۱۱}}</ref>
{{سخ}}
{{سخ}}
<font size="5">پانویس</font>
----
{{پانویس|}}
<font size="5">منابع</font>
----
* {{یادکرد کتاب|نام خانوادگی = اصغری|نام = احمد|عنوان = تاریخ ایران: مروری بر منابع فارسی، عربی و انگلیسی|ناشر = نشر معاصر|شهر = تهران|سال = ۱۳۹۲}}
* * {{یادکرد وب|نام خانوادگی = |نام = |عنوان = فرازهایی از تاریخ ایران|ناشر = تاریخنگار|نشانی = http://www.example.com/etc |تاریخ = ۱۴ اردیبهشت ۱۳۹۴| تاریخ بازبینی = ۷ مهر ۱۳۹۵|شناسه={{شناسه یادکرد|تاریخنگار}} }}
</blockquote>
در خروجی بالا، اگر روی پیوند «اصغری، ''تاریخ ایران''» در بخش پانویس کلیک کنید، به توضیحات کامل آن منبع میروید. شمارههای ۶۶ و ۹۳ شماره صفحههای مربوط از آن منبع را نشان میدهند.
همچنین اگر روی پیوند «''فرازهایی از تاریخ ایران''» در بخش پانویس کلیک کنید، به توضیحات کامل آن منبع میروید. برای این که این ویژگی به درستی کار کند باید پارامترهای الگوی پانویس کوتاهشده و پارامترهای الگوی یادکرد را به دقت وارد کنید.
ساختار پانویس کوتاهشده به این شکل است: <code><nowiki>{{پک|نام اول|نام دوم|سال|ک=نام کتاب یا اثر|ص=شمارهٔ صفحه}}</nowiki></code> و در آن «''نام اول''» باید با نام خانوادگی نویسندهٔ اول در الگوی یادکرد مطابقت کند، «''نام دوم''» با نام خانوادگی نویسندهٔ دوم، و «''سال''» هم باید با پارامتر سال مطابقت کند. اگر اثری فقط یک نویسنده دارد، نیازی به پارامتر «''نام دوم''» نخواهد بود و ورودی به صورت <code><nowiki>{{پک|نام اول|سال|ک=نام کتاب یا اثر|ص=شمارهٔ صفحه}}</nowiki></code> وارد میشود. پارامتر «''ک''» با الگوی یادکرد مطابقت داده نمیشود و ترجیح آن است که این پارامتر شکلی کوتاه شده از عنوان اصلی یادکرد را در خود داشته باشد، مگر آن که عنوان اصلی خودش کوتاه باشد که در آن صورت عیناً تکرار میشود. به مثال زیر توجه کنید:
{|
! {{خیر|روش اشتباه}}
|
<syntaxhighlight dir=rtl>
...
متن {{پک|دریابندری|ک=کتاب مستطاب|ص=۱}}
...
* {{یادکرد کتاب|نام خانوادگی = دریابندری | نام = نجف | عنوان = کتاب مستطاب آشپزی، از سیر تا پیاز|ناشر = نشر کارنامه|سال = ۱۳۷۹|مکان = تهران}}
</syntaxhighlight>
|-
! {{بله|روش درست}}
|
<syntaxhighlight dir=rtl>
...
متن {{پک|دریابندری|۱۳۷۹|ک=کتاب مستطاب|ص=۱}}
...
* {{یادکرد کتاب|نام خانوادگی = دریابندری | نام = نجف | عنوان = کتاب مستطاب آشپزی، از سیر تا پیاز|ناشر = نشر کارنامه|سال = ۱۳۷۹|مکان = تهران}}
</syntaxhighlight>
|}
از آنجا که در الگوی ''<code><nowiki>{{یادکرد کتاب}}</nowiki></code>'' پارامترهای «''نام خانوادگی''» و «''سال''» ذکر شدهاند، پانویس کوتاهشده هم باید به آنها به همان شکل اشاره کند اگر نه پیوند بین پانویس کوتاه و یادکرد کامل از کار میافتد.
گاه پیش میآید که مطلبی نویسنده ندارد؛ در این حالت خروجی پیشفرض الگوهای یادکرد، برای استفاده با الگوی پانویس کوتاهشده مناسب نیست. همچنین اگر ترکیب نام خانوادگی و سال، یکتا نباشد (مثلاً دو منبع وجود داشته باشد که هر دوشان نویسنده و سالشان یکی باشد) لازم میشود که پیوند بین پانویس و یادکرد به صورت دستی تنظیم بشود. در تمام این حالات، میتوان از پارامتر ''شناسه'' در الگوی یادکرد استفاده کرد. برای نمونه در مثالی که در ابتدای این بخش آمد، الگوی یادکرد وب پارامتر ''شناسه'' داشت به این شکل: <code><nowiki>شناسه={{شناسه یادکرد|تاریخنگار}}</nowiki></code> و این دستور با کمک الگوی {{الگوی|شناسه یادکرد}} خروجی یادکرد را به شکلی تغییر میدهد که اگر جایی در متن از پانویس کوتاه شده به صورت <code><nowiki>{{پک|تاریخنگار|ک=..|ص=..}}</nowiki></code> استفاده بشود، پیوند بین این دو با استفاده از شناسهٔ «تاریخنگار» برقرار میگردد.
:نکته: پارامتر ''شناسه'' با نام ''ref'' نیز شناخته میشود و الگوی {{الگوی|شناسه یادکرد}} نیز گاهی با نام {{الگوی|harvid}} شناخته میشود.
=== یادکردهای لاتین ===
در منابع فارسی مرسوم است که اگر در متنی هم از منابع فارسی و عربی (که زبانهایی از راست به چپ هستند) و هم از منابع لاتین (مثلاً انگلیسی و فرانسوی که زبانهایی چپ به راست هستند) استفاده شود، متن پانویسها و یادکردهای لاتین به درستی از چپ به راست و به زبان انگلیسی (به عنوان زبان رایج در متون علمی) نوشته بشود. این کار به سادگی با کمک استفاده از پارامتر ''dir'' (مخفف direction به معنای جهت) در برچسب ''<code><nowiki><ref></nowiki></code>'' میسر است. مقدار این پارامتر در ویکیپدیای فارسی به طور پیشفرض برابر است با <code><nowiki>rtl</nowiki></code> (مخفف right-to-left یعنی راست به چپ) در نتیجه برای بیشتر منابع که به فارسی هستند، این پارامتر اصلاً ذکر نمیشود اما برای منابع لاتین مقدار آن باید به صورت <code><nowiki>ltr</nowiki></code> (مخفف left-to-right به معنی چپ به راست) ذکر بشود.
همچنین، اگر چه الگوهای یادکرد (مثل {{الگوی|یادکرد کتاب}} و {{الگوی|یادکرد وب}}) توانایی تولید خروجی به انگلیسی را نیز دارند (با کمک پارامتر ''زبان'') اما خروجی که از الگوهای مشابه انگلیسی (نظیر {{الگوی|cite book}} و {{الگوی|cite web}}) به دست میآید، استانداردتر است. در نتیجه معمولاً یادکردهای لاتین با الگوهای خانوادهٔ cite، و یادکردهای فارسی و عربی با الگوهای خانوادهٔ یادکرد ذکر میشوند.
:نکته: برخلاف الگوهای خانوادهٔ یادکرد، که اگر نام نویسنده و سال در آن ذکر بشود نیازی به وارد کردن شناسه نیست، در الگوهای خانوادهٔ cite پارامتر ''ref'' باید همیشه ذکر بشود تا پیوند پانویسهای کوتاهشده درست کار کند.
:نکته: برای این که شمارهٔ صفحه در الگوی پانویس کوتاهشده با نقطهگذاری صحیح نمایش یابد، از پارامتر <code><nowiki>زبان=en</nowiki></code> استفاده کنید.
مثال زیر، یک متن از یادکردهایی در زبانهای مختلف استفاده میکند را نشان میدهد.
<blockquote style="color:#999; background:white; padding:1em; border:1px solid DarkSeaGreen;">
این متن اصلی مقاله است که منبع آن صفحهای از یک کتاب فارسی است<span style="color:black;">'''<ref>'''<nowiki>{{</nowiki>پک|نگهبان|۱۳۸۸|ک=تاریخ ایران|ص=۶۶}}'''</ref>'''</span> و این مطلبی است که از یک کتاب عربی نقل شده است.<span style="color:black;">'''<ref>'''<nowiki>{{</nowiki>پک|زرکلی|۱۹۷۲|ک=الأعلام|ص=۴۹۷}}'''</ref>'''</span> این جمله از یک منبع انگلیسی به عنوان منبع استفاده میکند،<span style="color:black;">'''<ref dir=ltr>'''<nowiki>{{</nowiki>پک|Smith|2006|ک=Intro to Physics|ص=584|زبان=en}}'''</ref>'''</span> و این یکی از یک منبع انگلیسی که نام نویسنده ندارد.<span style="color:black;">'''<ref dir=ltr>'''<nowiki>{{</nowiki>پک/بن|Wired|ک=Quantum computing in the 20th century|زبان=en}}'''</ref>'''</span>
{{سخ}}
{{سخ}}
<span style="color:#666;">== پانویس ==</span>
{{سخ}}
<span style="color:black;"><nowiki>{{پانویس}}</nowiki></span>
{{سخ}}
{{سخ}}
<span style="color:#666;">== منابع ==</span>
{{سخ}}
<span style="color:black;"><nowiki>* {{</nowiki>یادکرد کتاب|نام خانوادگی = نگهبان|نام = تورج|عنوان = مبانی فیزیک کاربردی|ناشر = فرهنگستان علوم |شهر = تهران|سال = ۱۳۸۸|شابک=۹۷۸-۶۰۰-۱۲۳۴۵-۹-۰}}</span>
{{سخ}}
<span style="color:black;"><nowiki>* {{</nowiki>یادکرد کتاب| نام خانوادگی = زرکلی | نام = خیرالدین | عنوان = الأعلام | سال = ۱۹۷۲ | ناشر = دارالعلم للملایین | مکان = قاهره}}</span>
{{سخ}}
<nowiki>{{چپچین}}</nowiki>
{{چپچین}}
<span style="color:black;"><nowiki>* {{</nowiki>cite book| ref= {{harvid|Smith|2006}} | last= Smith | first = John | title = Introduction to Physics | publisher = Harvard University Press | year = 2006 | location = Cambridge, MA | isbn = 978-0-470-40942-8}}</span>
{{سخ}}
<span style="color:black;"><nowiki>* {{</nowiki>cite web| ref= <nowiki>{{</nowiki>harvid|Wired}} | last= | first = | title = Quantum Computing in the 20th Century | publisher = Wired | url = <nowiki>http://www.wired.com/etc</nowiki> | year = 2018 | date = 2018-01-14 | accessdate = 2018-08-03}}</span>
{{پایان چپچین}}
<nowiki>{{پایان چپچین}}</nowiki>
</blockquote>
و نتیجهٔ آن به صورت زیر خواهد بود:
<blockquote style="background:white; padding:1em; border:1px solid #999;">
این متن اصلی مقاله است که منبع آن صفحهای از یک کتاب فارسی است<ref>{{پک|نگهبان|۱۳۸۸|ک=مبانی فیزیک کاربردی|ص=۱۴۴}}</ref> و این مطلبی است که از یک کتاب عربی نقل شده است.<ref>{{پک|زرکلی|۱۹۷۲|ک=الأعلام|ص=۴۹۷}}</ref> این جمله از یک منبع انگلیسی به عنوان منبع استفاده میکند،<ref dir=ltr>{{پک|Smith|2006|ک=Intro to Physics|ص=584|زبان=en}}</ref> و این یکی از یک منبع انگلیسی که نام نویسنده ندارد.<ref dir=ltr>{{پک/بن|Wired|ک=Quantum computing in the 20th century|زبان=en}}</ref>
{{سخ}}
{{سخ}}
<font size="5">پانویس</font>
----
{{پانویس|}}
<font size="5">منابع</font>
----
* {{یادکرد کتاب|نام خانوادگی = نگهبان|نام = تورج|عنوان = مبانی فیزیک کاربردی|ناشر = فرهنگستان علوم |شهر = تهران|سال = ۱۳۸۸|شابک=۹۷۸-۶۰۰-۱۲۳۴۵-۹-۰}}
* {{یادکرد کتاب| نام خانوادگی = زرکلی | نام = خیرالدین | عنوان = الأعلام | سال = ۱۹۷۲ | ناشر = دارالعلم للملایین | مکان = قاهره}}
{{چپچین}}
* {{cite book| ref= {{harvid|Smith|2006}} | last= Smith | first = John | title = Introduction to Physics | publisher = Harvard University Press | year = 2006 | location = Cambridge, MA | isbn = 978-0-470-40942-8}}
* {{cite web| ref= {{harvid|Wired}} | last= | first = | title = Quantum Computing in the 20th Century | publisher = Wired | url = http://www.wired.com/etc | year = 2018 | date = 2018-01-14 | accessdate = 2018-08-03}}
{{پایان چپچین}}
</blockquote>
== ارجاع گروهی ==
{{میانبر|وک:ارجاع گروهی}}
اگر به یک منبع بیش از یک بار ارجاع میدهید، میتوانید از پارامترِ <code><nowiki>name</nowiki></code> در دستورِ <code><nowiki>ref</nowiki></code> استفاده کنید تا ارجاعهای شما چند بار شماره نخورند. توجه کنید که '''اگر از پانویس کوتاهشده استفاده میکنید، نبایستی از ارجاع گروهی استفاده کنید'''. ارجاع گروهی فقط برای مواردی مناسب است که تمام پانویسها طولانی باشند.
به مثال زیر نگاه کنید:
<blockquote style="color:#999; background:white; padding:1em; border:1px solid DarkSeaGreen;">
این متن اصلیِ مقاله است که منبع آن خبری از خبرگزاری ایسنا<span style="color:black;" ><span dir="ltr">'''<ref name="isna">'''</span><nowiki>{{</nowiki>یادکرد وب|نشانی = <nowiki>http://www.isna.ir/etc</nowiki> {{رچ}}|عنوان = عنوان خبر|ناشر = ایسنا|تاریخ بازدید = ۱۸ ژانویهٔ ۲۰۱۳|تاریخ = ۱۱ فروردین ۱۳۸۸}}'''</ref>'''</span> و مطلبی است که در یک کتاب دیگر آمده است.<span style="color:black;">'''<ref>'''<nowiki>{{</nowiki>یادکرد|نویسنده = احمدی، احمد|عنوان = ساختار پرونده|ناشر = نشر زیبا|شهر = تهران|تاریخ = ۱۳۷۵}}'''</ref>'''</span>
{{سخ}}
{{سخ}}
در قسمت دیگری از متن، دوباره به خبر ایسنا ارجاع میشود.<span style="color:black;" dir="ltr">'''<ref name="isna"/>'''</span>
{{سخ}}
{{سخ}}
<span style="color:#666;">== منابع ==</span>
{{سخ}}
<span style="color:black;"><nowiki>{{پانویس}}</nowiki></span>
</blockquote>
که نتیجه میدهد:
<blockquote style="background:white; padding:1em; border:1px solid #999;">
این متن اصلی مقاله است که منبع آن خبری از خبرگزاری ایسنا<ref name="isna">{{یادکرد وب|پیوند = http://www.isna.ir/etc | عنوان = عنوان خبر|ناشر = ایسنا|تاریخ بازدید = ۱۸ ژانویهٔ ۲۰۱۳|تاریخ = ۱۱ فروردین ۱۳۸۸}}</ref> و مطلبی است که در یک کتاب دیگر آمده است.<ref>{{یادکرد|نویسنده = احمدی، احمد|عنوان = ساختار پرونده|ناشر = نشر زیبا|شهر = تهران|تاریخ = ۱۳۷۵}}</ref>
{{سخ}}
{{سخ}}
در قسمت دیگری از متن، دوباره به خبر ایسنا ارجاع میشود.<ref name="isna"/>
{{سخ}}
{{سخ}}
<font size="5">منابع</font>
----
{{پانویس|}}
</blockquote>
{{لنگر|ارجاع گروهی نه}}
{{میانبر|وپ:ارجاع گروهی نه}}
'''نکتهٔ مهم:''' زمانی که از پانویسهای کوتاهشده استفاده میکنید، ارجاعها نباید تجمیع شوند بلکه باید تکرار شوند؛ مثلاً اگر دوبار به یک صفحه از یک کتاب ارجاع میدهید، باید دستور الگوی پانویس کوتاهشده را عیناً دو بار تکرار کنید. در متون چاپی، برای بار دوم به بعد از «''همان''» در پانویس استفاده میکنند و حتی اگر چند پانویس پیاپی، مربوط به صفحههای مختلفی از یک منبع باشند از مورد دوم به بعد به صورت «''همان، ۴۴''» و «''همان، ۴۷''» پانویس داده میشود (که ۴۴ و ۴۷ شمارهٔ صفحه هستند). در ویکیپدیا، استفاده از «همان» مناسب نیست چرا که صفحهها مدام در حال تغییر هستند و ممکن است بین دو پانویس، پانویس جدیدی اضافه شود که معنای «همان» را تغییر بدهد. در نتیجه در تمام موارد، پانویس کوتاهشده عیناً تکرار میشود تا نگهداری صفحهها راحتتر باشد.
== کتابها ==
در این بخش نحوهٔ نگارش یادکردها توضیح داده میشود. استفاده از الگوهای توصیه شده کمک میکند تا یادکردها به آسانی به روش زیر نگاشته شوند و نیاز به تنظیم دستی نحوهٔ نمایش آنها نباشد.
=== ساختار یادکرد ===
این ترتیب برای یادکرد اطلاعات مربوط به کتابها استفاده میشود:
::نام مؤلف به شکل نام خانوادگی، ویرگول، نام، (برای بیشتر از یک نویسنده به مثالها رجوع کنید) نقطه، عنوان کتاب (به شکل ایرانیک یعنی بهصورت <nowiki>''عنوان''</nowiki>)، ویرگول(،) نوبت ویرایش (اگر غیر از نوبت اول است) نقطه، نام شهر محل نشر، دونقطه (:) نام ناشر، سال چاپ برای نوبت ذکر شده. شابک.
در انتها نیز در صورتی که آن کتاب صفحهٔ وبی دارد (مثلاً در وبگاه [http://www.ketab.ir/ ketab.ir])، پیوند به آن صفحهٔ وب میآید.
مثال:
* شاملو، احمد. ''در آستانه''. تهران: مؤسسه انتشارات نگاه، ۱۳۷۶ {{شابک|964-6174-28-0}}. [http://www.ketab.ir/DesktopDefault.aspx?TabID=3564&Alias=Ketab&Lang=fa-IR&BookID=167130 خانهٔ کتاب].
برای دو نویسنده:
* بودریار، ژان، و احمد مومیایی رازی. ''سرگشتگی نشانهها، نمونههایی از نقد پسامدرن''. ترجمهٔ باب رحمتی. تهران: نشر مرکز، ۱۳۷۴. ISBN 964305120X, [http://www.ketab.ir/DesktopDefault.aspx?TabID=3564&Alias=Ketab&Lang=fa-IR&BookID=140309 خانهٔ کتاب].
بیشتر از دو نویسنده:
* لوگان، جان، و دیگران. ''سه توپ دارم قلقلیه''. تهران: نشر بادبادک، ۱۳۷۷.
=== نکات کلی ===
* بسیار خوب است اگر که نام نویسنده یا نویسندگان کتاب به همان شکلی که در کتاب (و مقالات) ثبت شده است آورده شود. در بعضی شیوهها برای صرفهجویی در فضا نام کوچک نویسنده را بهطور مختصر مینویسند ولی از آنجا که در ویکیپدیا معضل فضا وجود ندارد، ''نیازی به خلاصه کردن نام نگارنده نیست'' و میتوان آن را بهطور کامل نوشت. بهعلاوه، ''ثبت نام کامل نویسنده'' باعث سادگی در یافتن منبع یادکرده و یافتن منابع یادکردهٔ دیگر از همان نویسنده، خواهد بود.
* نام کتابهای نگاشته به زبانهای غیر فارسی، به فارسی ترجمه نمیشود، مگر اینکه ارجاع به ترجمهٔ فارسی آنها باشد، که در آن صورت عنوان کتاب به زبان اصلی ذکر نمیشود. این مسئله برای دیگر انواع منابع هم صادق است.
* در صورتیکه ویکیپدیا صفحهای اختصاصی برای کتابی که در حال ثبت مشخصات آن هستید، دارد، ''عنوان کتاب'' را به مقالهای که در موردش نوشته شده است، پیوند دهید.
* در صورتیکه نویسندهٔ کتاب شخص معروفی است، و در متن اصلی مقاله پیوندی به مقالهٔ اختصاص یافته به آن نویسنده نیامده است، نام او را در یادکرد اطلاعات کتاب پیونددار نمایید. بعضی از اوقات پیوند ساختن برای نام ناشر، محل نشر و غیره هم منطقی و قابل قبول است.
* در الگوهای یادکرد باید از تاریخی استفاده شود که شناسنامهٔ منبع استفاده کرده است؛ مثلاً اگر منبع چاپ ایران است از هجری شمسی استفاده میشود.
* هنگام هر گونه ارجاع به هر کتابی، بهتر است [[شابک]] (ISBN) کتاب ذکر شود. شمارهٔ مربوط به شابک بهطور خودکار ویکیسازی خواهد شد. برای این منظور از الگوی {{الگوی|شابک}} میتوان استفاده کرد؛ الگوهای خانوادهٔ یادکرد و خانوادهٔ cite همگی به طور خودکار الگوی شابک را فراخوانی میکنند در نتیجه در پارامتر «شابک» یا «isbn» این الگوها، فقط خود شابک وارد میگردد.
* با اینکه خدمات جستجوی کتاب ویکیپدیا در وبگاههایی مانند Amazon (که از طریق پیوندی که روی شمارهٔ شابک قرار میگیرد قابل دسترسی است) معمولاً به نمایش نتایج کتاب موردنظر نمیانجامد و اطلاعات کتابهای فارسی در [[دادگان]] آن وبگاهها ثبت نشدهاند، ولی بهتر است که بهعنوان آیندهنگری شمارههای شابک کتابها به شکل صحیح و دارای پیوند ذکر شوند.
* اشاره به یک مقاله یا یک فصل خاص در داخل کتابی که هر فصل (یا مقاله) از آن نویسندگان متفاوتی دارد به شکل زیر است:
:: * دلوز، ژیل. «تفکر ایلیاتی». در بودریار، ژان و دیگران. ''سرگشتگی نشانهها، نمونههایی از نقد پسامدرن''. ترجمهٔ بابک احمدی. ۳۰–۵۰ تهران: نشر مرکز. ۱۳۷۴، ISBN 964305120X, [http://www.ketab.ir/DesktopDefault.aspx?TabID=3564&Alias=Ketab&Lang=fa-IR&BookID=140309 خانهٔ کتاب].
== مقالههای ژورنالها ==
یادکرد یک مقاله از یک ژورنال شامل موارد زیر است:
* نام نویسنده (یا نویسندگان)
* سال و در بعضی موارد ماه انتشار
* عنوان مقاله در نشان نقل قول (گیومه)
* نام ژورنال به صورت ایتالیک
* شمارهٔ جلد، شمارهٔ انتشار، و شمارهٔ صفحه (شماره مقاله در بعضی مقالات مربوط به برق)
'''مثال:'''
* احمدی، احمد. «مقابله با حملات DoS»، ''مجموعه مقالات پژوهشگاه امنیت فناوری اطلاعات'' '''۲''' (۳): ۲۳۴–۲۵۱.
توجه کنید که اعدادی که بعد از عنوان ژورنال آمدهاند بهترتیب «'''دوره''' (شماره)، شمارهٔ صفحات» هستند.
به جای شماره میتوان تاریخ را وارد کرد، و اگر هر دو هم ذکر شوند موردی ندارد. ممکن است به هر دلیلی دوره، شماره یا هر دو ذکر نشوند. در این حالتها شیوهٔ یادکرد قدری متفاوت میشود. توصیه میشود از الگوی {{الگو|یادکرد ژورنال}} استفاده کنید.
برای مقالهای که جایی بر روی وب نسخهای از آن موجود است میتوانید عنوان مقاله را پیوندی به نسخهٔ وبی بدهید.
== روزنامهها، مجلهها و نشریههای ادواری ==
به مثالها توجه کنید:
* مرجایی، فرید. «کودتا علیه عرصهٔ عمومی». ''شرق''، ۲۹ مرداد ۱۳۸۴، شماره ۵۵۴، ص ۶.
یا در صورتی که مقاله نام نگارنده ندارد:
* «در ستایش لیبرالیسم». ''کیهان''، ۱ دی ۱۳۹۰، ص ۳.
به همچنین در صورتی که بخواهیم به نسخهٔ موجود روی وب از این مقالهٔ روزنامه پیوند دهیم باید از بخش عنوان مقاله برای پیونددهی استفاده کنیم. در این حالت دیگر نوشتن شمارهٔ صفحه لازم نیست (و البته ضرری هم ندارد):
* باباحاجی، ایرچ. [http://www.sharghnewspaper.com/840530/html/hist.htm#s282201 سرنوشتی که در خیابان رقم خورد]، ''شرق''، یکشنبه ۳۰ مرداد ۱۳۸۴، شماره ۵۵۵.
== وبگاهها و مقالهها (غیر از مقالههای نشریات ادواری) ==
:''تذکر: توجه کنید که در بعضی موارد، بنا بر [[وک:اثبات|سیاست اثباتپذیری]] ویکیکتاب، وبلاگها و امثال آن که جزو منابع خودچاپکرده به شمار میآیند منبع خوبی برای مقالههای ویکیپدیا نیستند؛ خصوصاً هنگامی که راجع به خود صحبت نمیکنند.''
برای یادکرد کل یک وبگاه بدون اشاره به یک سند یا صفحهٔ خاص بر روی آن وبگاه میتوان به سادگی، آدرس وبی (URL) آن را در متن مقاله آورد. در ویکیپدیا یک URL ساده که با «<nowiki>//:http</nowiki>» شروع شود بهطور خودکار تبدیل به پیوند قابل کلیک کردن خواهد شد. بهعنوان مثال این متن را در نظر بگیرید: «اسلشدات یک وبگاه محبوب است که در این آدرس http://slashdot.org قرار دارد». با توجه به اینکه به کلیت یک وبگاه اشاره میکنید و نه به محتویاتی خاص بر روی آن، بنابراین احتیاجی به ذکر تاریخ بازبینی اطلاعات از آن وبگاه نیست.
برای یادکرد صفحات وب خاص (یا مجموعهای از آنها) همانند یادکرد کتابها عمل میکنیم (و ''عنوان'' را پیونددار میکنیم)، اما در این حالت باید یک تاریخ بازبینی هم نوشته شود:
* پارسا، مانی. [http://www.chn.ir/news/?section=2&id=45418 «ثبت جهانی دماوند به عنوان نخستین میراث طبیعی کشور تکذیب شد»]. (۸ اردیبهشت ۱۳۸۴). بازبینی ۱ شهریور ۱۳۸۴.
تاریخ داخل پرانتز تاریخ ساخته شدن این صفحه برای اولین بار یا تاریخ آخرین بهروز رسانی این صفحه است. در صورت نامشخص بودن این بحث میتوان آن را حذف کرد و ذکر ننمود. بخش مربوط به ''تاریخ بازبینی'' به خواننده کمک میکند که از طریق ابزارهایی مانند [[w:fa:بایگانی اینترنت|بایگانی اینترنت]] دقیقاً نسخهای که مدنظر شماست را بازیابی کند.
توجه داشته باشید که در ویکیپدیا معمول است که بخشی با عنوان ''پیوند به بیرون'' (پس از ''منابع'') وجود داشته باشد که پیوندهای متفاوتی به وبگاهها و صفحات متفاوت در آن بخش قرار میگیرد.
به دلیل پویایی وب، ممکن است صفحهای که به عنوان منبع استفاده شده است، غیرفعال شود. چنین یادکردی را با وجود اینکه غیرفعال است، حذف نکنید؛ زیرا تنها با وجود داشتن این یادکرد است که مشخصات منبعی که قبلاً وجود داشته است ثبت میگردد. میتوانید در کنار یادکرد یادداشتی ثبت کنید و در آن تاریخی که پیوند اصلی صفحهٔ مورد بحث غیرفعال شده است را بنویسید. در صورتیکه نسخهای در خدمات بایگانی اینترنت میشناسید، یک پیوند به آن بدهید. به عبارت دیگر پیوندهای مرده را باید مشخص کنید.
== به آنچه خودتان خواندهاید ارجاع دهید ==
{{میانبر|وک:ارجاع نادیده}}
تنها به منابعی ارجاع دهید که به چشم خودتان دیدهاید. اگر میخواهید از ''نویسندهٔ ب'' یاد کنید در حالی که خودتان تنها نوشتهٔ ''نویسندهٔ الف'' را که در آن از ''نویسندهٔ ب'' گفتاوردی آمده است خواندهاید، آنگاه لازم است هنگام یادکرد، در ادامهٔ نوشتن مشخصات منبع ''ب'' (که خودتان ندیدهاید)، با افزودن عبارتی مثل «به نقل از» و سپس آوردن مشخصات منبع الف (که خودتان دیدهاید)، این موضوع را مشخص کنید.
با این حال اگر خودتان منبع ''ب'' را از نزدیک دیده و صحتش را بررسی کردهاید، میتوانید مستقیم و تنها از همین منبع یاد کنید. ذکر شیوهٔ دستیابی شما به منبع نیز لازم نیست؛ بنابراین اگر از طریق یک جویشگر اینترنتی، کتابخانه، وبگاه، یا مانند آن به منبع دست یافتید، به شرط اینکه بتوان اطمینان حاصل کرد که این منبع یک کپی دقیق و دستنخورده است، لازم نیست این موارد را هنگام ارجاع به منبع ذکر کنید. به طور مشابه اهمیتی نخواهد داشت اگر کتابی را در [[w:fa:گوگل بوکس|گوگل بوکس]]، جیاستو، در پیشنمایش یک کتابفروشی برخط معتبر مانند [[W:fa:آمازون|آمازون]]، یا کتابخوان الکترونیکی شخصیتان (مگر در حالتی که در شمارهگذاری صفحهها تأثیر داشته باشد) مطالعه کرده باشید.
== شیوهنامهٔ ارجاعدهی ==
{{میانبر|وک:شیوهنامه ارجاع|وک:سبک ارجاع}}
ویکیپدیا از یک شیوهنامهٔ ارجاعدهی خاص به عنوان پیشفرض استفاده نمیکند با این حال ارجاعدهی در یک مقالهٔ خاص باید از یک شیوهنامهٔ ارجاعدهی مشخص پیروی کند.
تعدادی از شیوهنامههای ارجاعدهی مورد قبول ویکیکتاب در صفحات '''استناد'''، '''شیوهنامهٔ انجمن روانشناسی آمریکا'''، '''شیوهنامهٔ ایاسای'''، '''دستنامه امالای'''، '''شیوهنامهٔ شیکاگو'''، '''منبعدهی هاروارد'''، '''شیوهنامهٔ ونکوور''' و '''کتابآبی''' شرح دادهشدهاند.
با وجودی که برای انتخاب شیوهنامهٔ ارجاعدهی، ویکیپدیا دستتان را باز گذاشته است، اشاره به تاریخ باید از شیوهٔ مشخصی تبعیت کند.<ref name="enwiki19-11-95">{{یادکرد وب |نویسنده = |نشانی=https://en.wikipedia.org/w/index.php?title=Wikipedia:Citing_sources&oldid=763923862 |عنوان=ترجمه از ویکیپدیای انگلیسی | ناشر = |تاریخ = |تاریخ بازبینی=۱۹ بهمن ۱۳۹۵}}</ref>
=== تنوع در شیوهنامههای ارجاعدهی ===
{{میانبر|وک:ارجاع متنوع}}
ویرایشگران نباید شیوهنامهٔ ارجاعدهی غالب یک مقاله را به دلخواه خودشان یا برای مشابهسازی با سایر مقالات تغییر دهند و باید به [[ویکیکتاب:اجماع|اجماع]] صورت گرفته در مورد آن مقاله توجه کنند (در صورتی که موجود باشد و اگر موجود نبود باید به اجماع برسند)
بر پایهٔ [[ویکیکتاب:شیوهنامه|شیوه ویرایشی]] فعالترین ویرایشگران مقاله، شیوهنامهٔ ارجاعدهی مقاله مشخص میشود یا بر پایهٔ اجماع صورت گرفته میان کاربران فعال در توسعهٔ مقاله میتوان شیوهنامهٔ ارجاعدهی مقاله را مشخص کرد. اگر مقالهای که بر روی آن کار میکنید دارای سبک ارجاعدهیست باید به آن احترام گذاشت و مابقی ارجاعها مشابه آن انجام گیرند. اگر تصور میکنید تغییر شیوهنامهٔ ارجاعدهی برای مقاله واجب است باید در بحث مقاله تلاش کنید نظر دیگر کاربران را جلب کنید و به اجماع برسید. اگر اولین کاربر هستید که به مقاله منبع میافزایید سعی کنید شیوهنامهٔ ارجاعدهی مناسب با موضوع مقاله انتخاب کنید.
اگر بیشتر منابع ارجاع شده در مقاله بدون الگوهای ارجاع استفاده شدهاند و فقط پیوند اینترنتی بدون ذکر نام نویسنده، تاریخ نشر، شمارهٔ صفحه است و این اطلاعات را میتوانید بهدست بیاورید مسلماً اینگونه ارجاعدهی نمیتواند به عنوان شیوهنامهٔ ارجاعدهی مقاله در نظر گرفت و میتوانید آن را با شیوهنامهٔ ارجاعدهی مناسب که جزئیات بیشتری در مورد منابع به مقاله میافزاید انتخاب کنید.<ref name="enwiki19-11-95"/>
==== کارهایی که باید از انجامشان اجتناب کرد ====
زمانی که یک مقاله یک شیوهنامهٔ ارجاعدهی مشخص دارد، کارهای زیر را نباید انجام داد:
* تغییر دادن شیوهنامهٔ ارجاعدهی غالب مقاله با شیوهنامهٔ ارجاعدهی دیگر مثلاً تغییر شیوهنامهٔ ارجاعدهی پرانتزدار با شیوهنامهٔ ارجاعدهی بدون پرانتز، یا جایگزین کردن یک شیوهنامهٔ ارجاعدهی آکادمیک با شیوهنامهٔ ارجاعدهی دیگر آکادمیک. (مثلاً تغییر شیوهنامهٔ ارجاعدهی شیکاگو به شیوهنامهٔ ارجاعدهی هاروارد)
* افزودن الگوهای ارجاعدهی به مقالهای که از پیوند اینترنتی بدون الگو استفاده میکند یا حذف الگوهای ارجاعدهی از یک مقاله که از آن شیوهنامهٔ ارجاعدهی خاص استفاده میکند.
* تغییر مکان ارجاعهای تعریف شده، مثلاً انتقال ارجاعها از متن مقاله به بخش منابع یا انتقال ارجاعها از بخش منابع به درون متن (به صورت درونخطی)<ref name="enwiki19-11-95"/>
== انتساب درمتن ==
{{میانبر|وپ:درمتن}}
'''انتساب درمتن''' بهمعنای نسبتدادن یک جمله به منبع آن در درون خود جمله است که درکنار [[وپ:یادر|یادکرد درخط]] استفاده میشود. انتساب درمتن باید در نقلقولهای مستقیم، نقلقولهای غیرمستقیم و در خلاصهنویسیها بهکار رود. انتساب درمتن باعث جلوگیری از دستبرد فکری سهوی میشود و به خواننده این اجازه را میدهد تا بداند یک دیدگاه از چه کسی یا چه کسانی است. پس از انتساب درمتن، حتماً باید از یادکرد درخط نیز استفاده کرد.
برای مثال:
{{نقلقول|{{ضربدر}} سلاح هستهای بازدارندگی به ارمغان نمیآورد.{{مرجع ساختگی|۲}}}}
{{نقلقول|{{تیک}} کوربین معتقد است سلاح هستهای بازدارندگی به ارمغان نمیآورد.{{مرجع ساختگی|۲}}}}
هنگام استفاده از انتساب درمتن سعی کنید که دیدگاه بیطرف را نقض نکنید.
برای مثال:
{{نقلقول|{{ضربدر}} داروین میگوید انسانها با ابزار انتخاب طبیعی تکامل یافتهاند،{{مرجع ساختگی|۳}} اما اکبرخان میگوید انسانها از کرهٔ ماه آمدهاند.{{مرجع ساختگی|۴}}}}
{{نقلقول|{{تیک}} داروین معتقد بود انسانها با ابزار انتخاب طبیعی تکامل یافتهاند.{{مرجع ساختگی|۳}}}}
مشکل خط اول این است که به برابری دو منبع دلالت دارد و مشخص نمیکند که دیدگاه داروین، دیدگاه غالب است.
همچنین انتساب درمتن ممکن است باعث این تلقی شود که یک دیدگاه تنها از کشفیات یکنفر یا یک گروه است.
{{نقلقول|{{ضربدر}} اکبرخان معتقد است که دو بهعلاوه دو میشود چهار.}}
{{نقلقول|{{تیک}} دو بهعلاوه دو میشود چهار.}}
برای حقایق ساده میتوان از یادکردهای درخط استفاده کرد، اما معمولاً از انتساب درمتن استفاده نمیشود.
{{نقلقول|{{تیک}} مولکول آب از دو اتم هیدروژن و یک اتم اکسیژن تشکیل شده است.{{مرجع ساختگی|۵}}}}
== الگوهای ارجاعدهی ==
[[وک:الگوها]]
== جستارهای وابسته ==
برای مطالعهٔ بیشتر به صفحات زیر در ویکیپدیای انگلیسی مراجعه کنید:
* [[:en:Wikipedia:Citation_templates|الگوهای مورد استفاده در ارجاع به منابع]]
* [[:en:Wikipedia:Scientific_citation_guidelines|قواعد ارجاع به منابع علمی]]
* [[:en:Harvard_referencing|ارجاع به روش هاروارد]]
== منابع ==
* {{یادکرد|نویسنده=ادیب سلطانی، میرشمسالدین|کتاب=راهنمای آمادهساختن کتاب|ویرایش=ویراست سوم|سال=۱۳۸۱|ناشر=انتشارات علمی و فرهنگی|شهر=تهران}}
{{چپچین}}
* Fowler, H. Ramsey. ''The Little, Brown Handbook''. second Canadian ed. Don Mills, Ontario, 1998. 660–668.
* ''The Chicago Manual of Style''. 15th ed. Chicago: University of Chicago Press, 2003.
* ''The Chicago Manual of Style Online''. 16th ed. [http://www.chicagomanualofstyle.org/16/ch14/ch14_toc.html chap. 14].
{{پایان چپچین}}
== پیوند به بیرون ==
* [http://tools.wmflabs.org/yadfa/ یادفا]، ابزار ایجاد یادکرد ویکی با استفاده از کتابخانههای دیجیتال [[گوگل بوکس]]، [[نورمگز]] و [[کتابخانه دیجیتال نور]].
ra0mphkhpcp3hp8pnuhhroj4y7xzxai
ویکیکتاب:حل اختلاف
4
42148
135312
135268
2026-09-29T08:11:08Z
Vivairan2
28134
135312
wikitext
text/x-wiki
{{سیاست}}
{{میانبر|وک:حا|وک:اختلاف}}
{{چکیده|مهارتهای معاشرت و مذاکره را به کار بگیرید. اگر نمیتوانید اختلاف را حل کنید، برای نظر خواستن از دیگر کاربران به '''[[ویکیکتاب:نظرخواهی]]''' یا '''[[ویکیکتاب:نظر سوم|نظر سوم]]''' مراجعه کنید. مرحلهٔ بعدی میانجیگری است؛ میتوانید از '''[[ویکیکتاب:میانجیگری|میانجیها]]''' درخواست کمک کنید.}}
{{حل اختلاف}}
این سیاست، اقداماتی را توضیح میدهد که در زمان بروز اختلاف با ویرایشگر دیگر میتوانید انجام دهید. نکات بیشتر را در رهنمود [[w:fa:ویکیپدیا:آداب معاشرت|ویکیپدیا:آداب معاشرت]] و انشای [[ویکیپدیا:هنگام مجادلهٔ ویرایشی، خونسرد بمانید]] بخوانید.
== گام ۱: بر مضمون تمرکز کنید ==
[[وک:حمله|روی محتوا تمرکز کنید، نه روی ویرایشگر دیگر]]. ویکیکتاب بر اساس اصل [[وپ:دبط|بیان منصفانه، متناسب و بدون جانبداری دیدگاهها]] ساخته شده است. زمانی که در مقالهای، نقلقولی را مییابید که جانبدارانه نوشته شده یا نادرست است؛ اگر میتوانید اصلاحش کنید. اگر این کار ممکن نبود و بهطور کامل با دیدگاه مطرح شده در مقالهای مخالف بودید، [[وپ:جو|قبل از حذف آن، بیشتر تأمل کنید]]. ترجیحاً سعی کنید آن را با بیان موضع خود متعادل کنید. دقت کنید که [[ویکیکتاب:منابع معتبر|منابع معتبر]]ی را ذکر کنید. متون بدون منبع، ممکن است علامتگذاری شده یا حذف شوند. در این مورد [[ویکیکتاب:اثباتپذیری]] را ببینید.
همواره تغییرات خود را توضیح دهید؛ «بهویژه» زمانی که میخواهید سایرین با شما موافقت کنند. اگر بیان توضیحاتتان در یک خط ممکن است، از [[راهنما:خلاصه ویرایش|خلاصه ویرایش]] استفاده کنید و در غیر این صورت برای بیان توضیحات بلندتر از صفحه بحث کمک بگیرید و در خلاصه ویرایش عبارت «بحث را ببینید» را بنویسید.
پیروی از سیاست [[ویکیکتاب:دیدگاه بیطرف|دیدگاه بیطرف]] کمکتان خواهد کرد تا بهتر بنویسید و جانبداری خود در هنگام نوشتن را محدود کنید.
== گام ۲: آیا موضوع فوریت دارد؟ ==
{{میانبر|وک:فوریت}}
اگر موقعیتی نیاز به توجه فوری داشت، آن را در [[وک:تام]] گزارش کنید یا برای [[ویکیکتاب:تام|حفاظت از صفحه]] درخواستی ایجاد کنید. مدیری این درخواست را بررسی خواهد کرد. <!-- ممکن است لازم باشد تا برای این کار به الگو یا صفحهای با توضیحات بیشتر نیاز باشد. -->
== گام ۳: خونسرد باشید ==
{{میانبر|وک:خونسردی}}
بسیاری از موقعیتها، فوری نیستند. لطفاً هم به خود و هم به طرف مقابل مدتی فرصت بدهید. بهتر است نفس عمیقی بکشید و در مورد موضوع گپ دوستانهای بزنید و بگذارید مدتی از بروز آن بگذرد. نگران نباشید! همیشه میتوانید مشکل را در آینده حل کنید. (''هر وقت که خواستید''، میتوانید برای پیدا کردن آخرین نگارشی که روی آن کار کردهاید، به [[راهنما:تاریخچه صفحه|تاریخچه صفحه]] مراجعه کنید و آن را با نگارش کنونی مقایسه کنید تا ببینید که آیا هنوز چیزی وجود دارد که بخواهید آن را حذف یا اضافه کنید)
دیدگاه بلندمدت داشتهباشید. با گذشت زمان احتمالاً قادر خواهید بود که بازگردید و در حالی که مشکل دیگر وجود ندارد و بدون حضور ویرایشگری که با وی اختلاف داشتید، ویرایش خود را انجام دهید. در این مدت، مقاله مورد اختلاف، رشد خواهد کرد و ممکن است سایر ویرایشگران، به موضوع علاقهمند شوند و این بار اگر باز هم موردی به وجود بیاید، دیدگاههای بیشتری وجود خواهند داشت.
این مسئله بهطور ویژه هنگام بروز اختلاف با [[ویکیپدیا:لطفاً با چماق به استقبال تازهواردها نروید|تازهواردها]] مفید است؛ چرا که به آنها فرصت میدهد تا با سیاستها و فرهنگ ویکیپدیا آشنا شوند. روی مقاله دیگری تمرکز کنید که میتوانید در پیشرفت آن نقش سازندهای داشته باشید.
== گام ۴: با شخص مقابل در مورد موضوع بحث کنید ==
{{میانبر|وک:اختلاف#بحث}}دربارهٔ موضوع در [[ویکیکتاب:صفحهٔ بحث|صفحهٔ بحث]] تبادلنظر کنید. با طرف مقابل از طریق صفحه بحث وی تماس بگیرید یا سؤال خود را در صفحه بحث مقاله مورد نظرتان مطرح کنید. (حتی میتوانید مطالب پیشنهادی خود را در صفحه بحث ارسال کنید)
زمانی که در مورد موضوع پیشآمده بحث میکنید، [[حفظ خونسردی]] را فراموش نکنید. اگر برخورد غیرمودبانه یا نامناسبی دیدید، در مقابل وسوسه ارسال پاسخ غیر دوستانه مقاومت کنید و [[ویکیکتاب:حملههای شخصی ممنوع|مسئله را شخصی نکنید]]. دیدگاه طرف مقابل را درنظر بگیرید و سعی کنید به زمینه مشترک برسید. فرض کنید که طرف مقابل [[ویکیکتاب:فرض حسن نیت|حسن نیت]] دارد مگر اینکه برای خلاف آن، شاهد روشنی وجود داشته باشد.
هم در این مرحله و هم در طی فرایند حل اختلاف، صحبت با سایرین، صرفاً قسمتی از تشریفات لازم برای مراجعه به گروه دیگر نیست. عدم موفقیت در ادامه بحث با حسن نیت، نشان میدهد که شما بیشتر به دنبال جنجال بر سر اختلاف و پیشبرد نامناسب آن هستید تا حل آن. این مسئله باعث میشود تا اشخاص، کمتر به نظر شما اهمیت بدهند و ممکن است مانع استفاده مؤثر شما از مراحل بعدی حل اختلاف گردد. در مقابل، حفظ بحث و مذاکره بین طرفین، حتی اگر بلافاصله موفق نباشد، نشان میدهد که شما به دنبال یافتن راهحلی هستید که با سیاستهای ویکیپدیا انطباق داشتهباشد.
== گام ۵: آتشبس ==
انجام مذاکره را نوعی آتشبس تلقی کنید. بد نیست در جریان مذاکره از نظرات و ایدههای دیگر کاربران خارج از بحث هم استفاده کنید؛ چون آنها هم میتوانند روند پیشرفت بحث را بدون سردرگمی و بهطور منصفانه ببینند.
== گام ۶: از دیگران کمک بخواهید ==
اگر گامهای قبل برای حل اختلاف به نتیجه نرسید، یکی از روشهای زیر را امتحان کنید. اینکه کدام راه را انتخاب میکنید یا به چه ترتیبی آنها را بهکار میگیرید، به ماهیت اختلاف نظر و ترجیحات اشخاص درگیر بستگی دارد.
;نظر اصلاحی بخواهید: سری به [[ویکیکتاب:درخواست برای نظر]] که محل اصلی طرح اختلاف نظرهای عمومی است بزنید.
;نظر یک شخص سوم را بخواهید: در صورتی که در اختلاف نظری که تنها دو ویرایشگر در آنها درگیرند به عقیده بیطرفانهای احتیاج دارید به [[ویکیپدیا:نظر سوم]] بروید.
;دربارهٔ موضوع بپرسید: در صفحه بحث یک [[ویکیپدیا:ویکیپروژه]] موضوع-محور، سؤال کنید. معمولاً اینگونه پروژهها در بالای صفحهٔ بحث مقاله فهرست میشوند.
;دربارهٔ سیاستها بپرسید: در [[ویکیکتاب:سیاستها و رهنمودها|صفحه بحث سیاست]] مربوط به موضوع سؤال خود را بپرسید.
;در یکی از تابلوی اعلانات مربوط تقاضای کمک کنید:اگر اختلاف نظر شما مربوط به یکی از موضوعات زیر است، میتوانید برای گرفتن نظر سایر ویرایشگرانی که با اختلاف نظرهای مشابه آشنا هستند، در یکی از مکانهای زیر بنویسید:
:* [[ویکیپدیا:تابلوی اعلانات منابع معتبر|تابلوی اعلانات منابع معتبر]] - برای بحث در مورد اینکه آیا یک منبع معتبر است یا نه.
:* [[ویکیپدیا:تابلوی اعلانات تحقیق دست اول]] - برای بررسی تحقیق دست اول نبودن موضوعی.
:* [[ویکیپدیا:درخواست بازرسی کاربر|تابلوی اعلانات درخواست بازرسی از مظنونین دارندگان حسابهای زاپاس]] - برای درخواست بازرسی از یک [[ویکیکتاب:حساب زاپاس|حساب زاپاس]] غیرمجاز
;میانجیگری:
{{اصلی|ویکیپدیا:میانجیگری}}
زمانی که احساس میکنید مسائل دارد پیچیده میشود، سعی کنید از افرادی که دارای خونسردی لازم هستند، بخواهید که در بحث مداخله و کمک نمایند. این کار ممکن است به حل مسئله کمک کند. گاهی ممکن است با ارائه درخواست خود بتوانید از ویرایشگرانی که نظر سوم را ارائه کردهاند یا به تقاضای ارسال نظر اصلاحی پاسخ دادهاند بخواهید که میانجیگری کنند. [[وک:میانجیگری|میانجیها]] نیز برای فرونشاندن اختلاف نظرها، شما را یاری خواهندکرد. برای اختلاف بهوجودآمده [[وک:میانجیگری|درخواست میانجیگری]] کنید. [[وک:میانجیگری|میانجیگری]] یک فرایند داوطلبانه است که در آن اشخاصی که دیدگاه بیطرف دارند، با طرفین درگیر در اختلاف همکاری میکنند. میانجی به طرفهای اختلاف کمک میکند تا به توافقی قابل قبول برای همه دست پیدا کنند. زمانی که درخواست میانجیگری میکنید، آماده باشید که نشان دهید برای حل اختلاف نظر موجود، قبلاً با استفاده از گامهای بالا تلاش خود را کردهاید. ضمناً میانجیگری زمانی امکانپذیر است که تمام طرفهای درگیر، موافق میانجیگری باشند، آن را بپذیرند و بخواهند داوطلبانه در آن شرکت کنند.
;نظرسنجی برگزار کنید:
اگر رسیدن به اجماع فقط با بحث قابل سنجش نباشد، میتوانید با نظرسنجی، موضوعات موجود در بحث را روشن کنید. دقت کنید که نظرسنجی نمیتواند اجماع ''ایجاد'' کند، ولی برای درک آن مفید خواهد بود. به همین ترتیب اگر فکر میکنید که کاربران، رسیدن به اجماع را در نظر نمیگیرند، نظرسنجی نمیتواند آنها را مجبور کند که اجماعنظر پیشنهادی شما را بپذیرند. هرچند نظرسنجی در اختلاف ''میتواند'' کاربران را در درک نقطه تعادل عقاید و مقصود اشخاص از عقایدشان کمک کند، اما ممکن است باعث شود تا ادعا گردد که نظرسنجی، ساختگی و نمایشی است. برای دیدن دلایل لزوم بحث کردن، آنهم پیش از رأیگیری ''[[ویکیکتاب:رایگیری جایگزین بحث نیست]]'' را ببینید.
<!-- در ویکیپدیای فارسی هیئت داروی تشکیل نشده است
= آخرین راه: داوری ==
اگر تمام گامهای معقول دیگر را برای حلّ اختلاف برداشتهاید و اختلافی که بر سر محتویات مقاله وجود دارد، هنوز رفع نشده، [[ویکیپدیا:درخواستهای داوری|درخواست داوری]] کنید. آماده باشید که نشان دهید که برای حلّ اختلاف از راههای دیگر، تلاش خود را کردهاید. تفاوت [[قضاوت|داوری]] با میانجیگری در این است که اینبار به جای اینکه به طرفین برای رسیدن به توافق کمک شود، [[ویکیپدیا:کمیته داوری|کمیتهٔ داوری]] موضوع را بررسی کرده و تصمیمگیری میکند. اگر در نتیجهٔ داوری، تصمیمی گرفته شود، از شما انتظار میرود که از آن تبعیت کنید. اگر موضوع مربوط به سوءرفتار جدی کاربری باشد، مطابق آنچه در [[ویکیپدیا:سیاست داوری|سیاست داوری]] آمده، داوری میتواند منجر به عواقب بعدی نظیر [[ویکیکتاب:قطع دسترسی|قطع کامل دسترسی]] یک کاربر به ویرایش صفحات گردد.
:''اطلاعات بیشتر: [[ویکیپدیا:کمیته داوری|کمیتهٔ داوری]]، [[ویکیپدیا:سیاست داوری|سیاست داوری]]، [[ویکیپدیا:درخواستهای داوری|درخواستهای داوری]]''
-->
<!--{{Wikipedia policies and guidelines}}-->
{{سیاستها و رهنمودهای ویکیپدیا}}
[[رده:حل اختلاف ویکیپدیا|{{PAGENAME}}]]
ekxrt9egd5frqqjhhfce0b53wffx7dz
135314
135312
2026-09-29T08:13:35Z
Vivairan2
28134
/* گام ۶: از دیگران کمک بخواهید */
135314
wikitext
text/x-wiki
{{سیاست}}
{{میانبر|وک:حا|وک:اختلاف}}
{{چکیده|مهارتهای معاشرت و مذاکره را به کار بگیرید. اگر نمیتوانید اختلاف را حل کنید، برای نظر خواستن از دیگر کاربران به '''[[ویکیکتاب:نظرخواهی]]''' یا '''[[ویکیکتاب:نظر سوم|نظر سوم]]''' مراجعه کنید. مرحلهٔ بعدی میانجیگری است؛ میتوانید از '''[[ویکیکتاب:میانجیگری|میانجیها]]''' درخواست کمک کنید.}}
{{حل اختلاف}}
این سیاست، اقداماتی را توضیح میدهد که در زمان بروز اختلاف با ویرایشگر دیگر میتوانید انجام دهید. نکات بیشتر را در رهنمود [[w:fa:ویکیپدیا:آداب معاشرت|ویکیپدیا:آداب معاشرت]] و انشای [[ویکیپدیا:هنگام مجادلهٔ ویرایشی، خونسرد بمانید]] بخوانید.
== گام ۱: بر مضمون تمرکز کنید ==
[[وک:حمله|روی محتوا تمرکز کنید، نه روی ویرایشگر دیگر]]. ویکیکتاب بر اساس اصل [[وپ:دبط|بیان منصفانه، متناسب و بدون جانبداری دیدگاهها]] ساخته شده است. زمانی که در مقالهای، نقلقولی را مییابید که جانبدارانه نوشته شده یا نادرست است؛ اگر میتوانید اصلاحش کنید. اگر این کار ممکن نبود و بهطور کامل با دیدگاه مطرح شده در مقالهای مخالف بودید، [[وپ:جو|قبل از حذف آن، بیشتر تأمل کنید]]. ترجیحاً سعی کنید آن را با بیان موضع خود متعادل کنید. دقت کنید که [[ویکیکتاب:منابع معتبر|منابع معتبر]]ی را ذکر کنید. متون بدون منبع، ممکن است علامتگذاری شده یا حذف شوند. در این مورد [[ویکیکتاب:اثباتپذیری]] را ببینید.
همواره تغییرات خود را توضیح دهید؛ «بهویژه» زمانی که میخواهید سایرین با شما موافقت کنند. اگر بیان توضیحاتتان در یک خط ممکن است، از [[راهنما:خلاصه ویرایش|خلاصه ویرایش]] استفاده کنید و در غیر این صورت برای بیان توضیحات بلندتر از صفحه بحث کمک بگیرید و در خلاصه ویرایش عبارت «بحث را ببینید» را بنویسید.
پیروی از سیاست [[ویکیکتاب:دیدگاه بیطرف|دیدگاه بیطرف]] کمکتان خواهد کرد تا بهتر بنویسید و جانبداری خود در هنگام نوشتن را محدود کنید.
== گام ۲: آیا موضوع فوریت دارد؟ ==
{{میانبر|وک:فوریت}}
اگر موقعیتی نیاز به توجه فوری داشت، آن را در [[وک:تام]] گزارش کنید یا برای [[ویکیکتاب:تام|حفاظت از صفحه]] درخواستی ایجاد کنید. مدیری این درخواست را بررسی خواهد کرد. <!-- ممکن است لازم باشد تا برای این کار به الگو یا صفحهای با توضیحات بیشتر نیاز باشد. -->
== گام ۳: خونسرد باشید ==
{{میانبر|وک:خونسردی}}
بسیاری از موقعیتها، فوری نیستند. لطفاً هم به خود و هم به طرف مقابل مدتی فرصت بدهید. بهتر است نفس عمیقی بکشید و در مورد موضوع گپ دوستانهای بزنید و بگذارید مدتی از بروز آن بگذرد. نگران نباشید! همیشه میتوانید مشکل را در آینده حل کنید. (''هر وقت که خواستید''، میتوانید برای پیدا کردن آخرین نگارشی که روی آن کار کردهاید، به [[راهنما:تاریخچه صفحه|تاریخچه صفحه]] مراجعه کنید و آن را با نگارش کنونی مقایسه کنید تا ببینید که آیا هنوز چیزی وجود دارد که بخواهید آن را حذف یا اضافه کنید)
دیدگاه بلندمدت داشتهباشید. با گذشت زمان احتمالاً قادر خواهید بود که بازگردید و در حالی که مشکل دیگر وجود ندارد و بدون حضور ویرایشگری که با وی اختلاف داشتید، ویرایش خود را انجام دهید. در این مدت، مقاله مورد اختلاف، رشد خواهد کرد و ممکن است سایر ویرایشگران، به موضوع علاقهمند شوند و این بار اگر باز هم موردی به وجود بیاید، دیدگاههای بیشتری وجود خواهند داشت.
این مسئله بهطور ویژه هنگام بروز اختلاف با [[ویکیپدیا:لطفاً با چماق به استقبال تازهواردها نروید|تازهواردها]] مفید است؛ چرا که به آنها فرصت میدهد تا با سیاستها و فرهنگ ویکیپدیا آشنا شوند. روی مقاله دیگری تمرکز کنید که میتوانید در پیشرفت آن نقش سازندهای داشته باشید.
== گام ۴: با شخص مقابل در مورد موضوع بحث کنید ==
{{میانبر|وک:اختلاف#بحث}}دربارهٔ موضوع در [[ویکیکتاب:صفحهٔ بحث|صفحهٔ بحث]] تبادلنظر کنید. با طرف مقابل از طریق صفحه بحث وی تماس بگیرید یا سؤال خود را در صفحه بحث مقاله مورد نظرتان مطرح کنید. (حتی میتوانید مطالب پیشنهادی خود را در صفحه بحث ارسال کنید)
زمانی که در مورد موضوع پیشآمده بحث میکنید، [[حفظ خونسردی]] را فراموش نکنید. اگر برخورد غیرمودبانه یا نامناسبی دیدید، در مقابل وسوسه ارسال پاسخ غیر دوستانه مقاومت کنید و [[ویکیکتاب:حملههای شخصی ممنوع|مسئله را شخصی نکنید]]. دیدگاه طرف مقابل را درنظر بگیرید و سعی کنید به زمینه مشترک برسید. فرض کنید که طرف مقابل [[ویکیکتاب:فرض حسن نیت|حسن نیت]] دارد مگر اینکه برای خلاف آن، شاهد روشنی وجود داشته باشد.
هم در این مرحله و هم در طی فرایند حل اختلاف، صحبت با سایرین، صرفاً قسمتی از تشریفات لازم برای مراجعه به گروه دیگر نیست. عدم موفقیت در ادامه بحث با حسن نیت، نشان میدهد که شما بیشتر به دنبال جنجال بر سر اختلاف و پیشبرد نامناسب آن هستید تا حل آن. این مسئله باعث میشود تا اشخاص، کمتر به نظر شما اهمیت بدهند و ممکن است مانع استفاده مؤثر شما از مراحل بعدی حل اختلاف گردد. در مقابل، حفظ بحث و مذاکره بین طرفین، حتی اگر بلافاصله موفق نباشد، نشان میدهد که شما به دنبال یافتن راهحلی هستید که با سیاستهای ویکیپدیا انطباق داشتهباشد.
== گام ۵: آتشبس ==
انجام مذاکره را نوعی آتشبس تلقی کنید. بد نیست در جریان مذاکره از نظرات و ایدههای دیگر کاربران خارج از بحث هم استفاده کنید؛ چون آنها هم میتوانند روند پیشرفت بحث را بدون سردرگمی و بهطور منصفانه ببینند.
== گام ۶: از دیگران کمک بخواهید ==
اگر گامهای قبل برای حل اختلاف به نتیجه نرسید، یکی از روشهای زیر را امتحان کنید. اینکه کدام راه را انتخاب میکنید یا به چه ترتیبی آنها را بهکار میگیرید، به ماهیت اختلاف نظر و ترجیحات اشخاص درگیر بستگی دارد.
;نظر اصلاحی بخواهید: سری به [[ویکیکتاب:نظرخواهی]] که محل اصلی طرح اختلاف نظرهای عمومی است بزنید.
;نظر یک شخص سوم را بخواهید: در صورتی که در اختلاف نظری که تنها دو ویرایشگر در آنها درگیرند به عقیده بیطرفانهای احتیاج دارید به [[ویکیپدیا:نظر سوم]] بروید.
;دربارهٔ موضوع بپرسید: در صفحه بحث یک [[ویکیپدیا:ویکیپروژه]] موضوع-محور، سؤال کنید. معمولاً اینگونه پروژهها در بالای صفحهٔ بحث مقاله فهرست میشوند.
;دربارهٔ سیاستها بپرسید: در [[ویکیکتاب:سیاستها و رهنمودها|صفحه بحث سیاست]] مربوط به موضوع سؤال خود را بپرسید.
;در یکی از تابلوی اعلانات مربوط تقاضای کمک کنید:اگر اختلاف نظر شما مربوط به یکی از موضوعات زیر است، میتوانید برای گرفتن نظر سایر ویرایشگرانی که با اختلاف نظرهای مشابه آشنا هستند، در یکی از مکانهای زیر بنویسید:
:* [[ویکیپدیا:تابلوی اعلانات منابع معتبر|تابلوی اعلانات منابع معتبر]] - برای بحث در مورد اینکه آیا یک منبع معتبر است یا نه.
:* [[ویکیپدیا:تابلوی اعلانات تحقیق دست اول]] - برای بررسی تحقیق دست اول نبودن موضوعی.
:* [[ویکیپدیا:درخواست بازرسی کاربر|تابلوی اعلانات درخواست بازرسی از مظنونین دارندگان حسابهای زاپاس]] - برای درخواست بازرسی از یک [[ویکیکتاب:حساب زاپاس|حساب زاپاس]] غیرمجاز
;میانجیگری:
{{اصلی|ویکیکتاب:میانجیگری}}
زمانی که احساس میکنید مسائل دارد پیچیده میشود، سعی کنید از افرادی که دارای خونسردی لازم هستند، بخواهید که در بحث مداخله و کمک نمایند. این کار ممکن است به حل مسئله کمک کند. گاهی ممکن است با ارائه درخواست خود بتوانید از ویرایشگرانی که نظر سوم را ارائه کردهاند یا به تقاضای ارسال نظر اصلاحی پاسخ دادهاند بخواهید که میانجیگری کنند. [[وک:میانجیگری|میانجیها]] نیز برای فرونشاندن اختلاف نظرها، شما را یاری خواهندکرد. برای اختلاف بهوجودآمده [[وک:میانجیگری|درخواست میانجیگری]] کنید. [[وک:میانجیگری|میانجیگری]] یک فرایند داوطلبانه است که در آن اشخاصی که دیدگاه بیطرف دارند، با طرفین درگیر در اختلاف همکاری میکنند. میانجی به طرفهای اختلاف کمک میکند تا به توافقی قابل قبول برای همه دست پیدا کنند. زمانی که درخواست میانجیگری میکنید، آماده باشید که نشان دهید برای حل اختلاف نظر موجود، قبلاً با استفاده از گامهای بالا تلاش خود را کردهاید. ضمناً میانجیگری زمانی امکانپذیر است که تمام طرفهای درگیر، موافق میانجیگری باشند، آن را بپذیرند و بخواهند داوطلبانه در آن شرکت کنند.
;نظرسنجی برگزار کنید:
اگر رسیدن به اجماع فقط با بحث قابل سنجش نباشد، میتوانید با نظرسنجی، موضوعات موجود در بحث را روشن کنید. دقت کنید که نظرسنجی نمیتواند اجماع ''ایجاد'' کند، ولی برای درک آن مفید خواهد بود. به همین ترتیب اگر فکر میکنید که کاربران، رسیدن به اجماع را در نظر نمیگیرند، نظرسنجی نمیتواند آنها را مجبور کند که اجماعنظر پیشنهادی شما را بپذیرند. هرچند نظرسنجی در اختلاف ''میتواند'' کاربران را در درک نقطه تعادل عقاید و مقصود اشخاص از عقایدشان کمک کند، اما ممکن است باعث شود تا ادعا گردد که نظرسنجی، ساختگی و نمایشی است. برای دیدن دلایل لزوم بحث کردن، آنهم پیش از رأیگیری ''[[ویکیکتاب:رایگیری جایگزین بحث نیست]]'' را ببینید.
<!-- در ویکیپدیای فارسی هیئت داروی تشکیل نشده است
= آخرین راه: داوری ==
اگر تمام گامهای معقول دیگر را برای حلّ اختلاف برداشتهاید و اختلافی که بر سر محتویات مقاله وجود دارد، هنوز رفع نشده، [[ویکیپدیا:درخواستهای داوری|درخواست داوری]] کنید. آماده باشید که نشان دهید که برای حلّ اختلاف از راههای دیگر، تلاش خود را کردهاید. تفاوت [[قضاوت|داوری]] با میانجیگری در این است که اینبار به جای اینکه به طرفین برای رسیدن به توافق کمک شود، [[ویکیپدیا:کمیته داوری|کمیتهٔ داوری]] موضوع را بررسی کرده و تصمیمگیری میکند. اگر در نتیجهٔ داوری، تصمیمی گرفته شود، از شما انتظار میرود که از آن تبعیت کنید. اگر موضوع مربوط به سوءرفتار جدی کاربری باشد، مطابق آنچه در [[ویکیپدیا:سیاست داوری|سیاست داوری]] آمده، داوری میتواند منجر به عواقب بعدی نظیر [[ویکیکتاب:قطع دسترسی|قطع کامل دسترسی]] یک کاربر به ویرایش صفحات گردد.
:''اطلاعات بیشتر: [[ویکیپدیا:کمیته داوری|کمیتهٔ داوری]]، [[ویکیپدیا:سیاست داوری|سیاست داوری]]، [[ویکیپدیا:درخواستهای داوری|درخواستهای داوری]]''
-->
<!--{{Wikipedia policies and guidelines}}-->
{{سیاستها و رهنمودهای ویکیپدیا}}
[[رده:حل اختلاف ویکیپدیا|{{PAGENAME}}]]
k7v1gv48mt0zckb0sdalglifhpkpkd1
بحث ویکیکتاب:حل اختلاف
5
42152
135282
2026-09-28T12:20:34Z
Fwldom
26269
/* کپی از مطالب ویکی پدیا، هشدار برای کاربر vivairan2 */ بخش جدید
135282
wikitext
text/x-wiki
== کپی از مطالب ویکی پدیا، هشدار برای کاربر vivairan2 ==
درود، گویا مطالب این صفحه بدون هیچگونه تغییری از ویکی پدیا کپی/پیست شده است. این کار باعث اضافه شدن مطالب اشتباه به ویکیکتاب میشود و امکان دارد کاربران را گمراه کند.
اگر اینگونه ویرایش ها ادامه پیدا کند پس از چندین اخطار مجبور به محدودیت های موقت برای حساب کاربری شما میشویم.
سپاس بیکران.
@[[کاربر:Vivairan2|Vivairan2]] [[کاربر:Fwldom|Fwldom]] ([[بحث کاربر:Fwldom|بحث]]) ۲۸ سپتامبر ۲۰۲۶، ساعت ۱۲:۲۰ (UTC)
88xudh747wg25pcmaxq74tbzo5md57h
بحث ویکیکتاب:شیوه ارجاع به منابع
5
42153
135283
2026-09-28T12:22:47Z
Fwldom
26269
/* کپی از مطالب ویکی پدیا، هشدار برای کاربر vivairan2 */ بخش جدید
135283
wikitext
text/x-wiki
== کپی از مطالب ویکی پدیا، هشدار برای کاربر vivairan2 ==
دومین هشدار برای هرزهنگاری در ویکی کتاب. [[کاربر:Fwldom|Fwldom]] ([[بحث کاربر:Fwldom|بحث]]) ۲۸ سپتامبر ۲۰۲۶، ساعت ۱۲:۲۲ (UTC)
jdm3obtea2n57npgs4a7665g1g4d4tb
بحث کاربر:Fwldom/بایگانی۲
3
42154
135286
2026-09-29T05:57:05Z
Fwldom
26269
صفحهای تازه حاوی «==میزان توسعه کتاب های شما== درود. [[ویکیکتاب:ایبوکها بر حسب وضعیت تکمیلشدگی|وضعیت توسعه کتابهایی که در دست تکمیل دارید]] به شرح زیر برآورد شده است: {|class="wikitable sortable" |- ! نام کتاب!! میزان توسعه!! موضوع!! مشارکت کنندگان |- | [[زبان برنامهنویسی گو]]...» ایجاد کرد
135286
wikitext
text/x-wiki
==میزان توسعه کتاب های شما==
درود. [[ویکیکتاب:ایبوکها بر حسب وضعیت تکمیلشدگی|وضعیت توسعه کتابهایی که در دست تکمیل دارید]] به شرح زیر برآورد شده است:
{|class="wikitable sortable"
|-
! نام کتاب!! میزان توسعه!! موضوع!! مشارکت کنندگان
|-
| [[زبان برنامهنویسی گو]]
|۲۵٪
|رایانه
| Fwldom
|-
| [[برنامه نویسی PSP]]
|۷۵٪
|رایانه
| Fwldom
|-
| [[مبانی شبکههای کامپیوتری و سختافزار]]
|۱۰۰٪
|رایانه
| Fwldom
|} [[کاربر:Doostdar|دوستدار ایران بزرگ]] [[بحث کاربر:Doostdar|☎]] یکشنبه،۴ شهریور ۱۴۰۳، ساعت ۱۲:۵۸ (ایران) ۲۵ اوت ۲۰۲۴، ساعت ۰۸:۲۸ (UTC)
:درود کتاب های برنامه نویسی psp و مبانی شبکه های کامپیوتری و سخت افزار تکمیل شده اند فقط کافیست چند مثال و عکس بهشون اضافه کنم.
:باسپاس [[کاربر:Fwldom|Fwldom]] ([[بحث کاربر:Fwldom|بحث]]) ۲۵ اوت ۲۰۲۴، ساعت ۱۰:۵۰ (UTC)
::صفحه های زیر خالی هستند
::* [[برنامه نویسی PSP/مدیریت خطا]]
::* برنامه نویسی PSP/فهرست راهنمای تکراری
::[[کاربر:Doostdar|دوستدار ایران بزرگ]] [[بحث کاربر:Doostdar|☎]] چهارشنبه،۷ شهریور ۱۴۰۳، ساعت ۰۰:۲۵ (ایران) ۲۷ اوت ۲۰۲۴، ساعت ۱۹:۵۵ (UTC)
::در صفحه [[برنامه نویسی PSP/راه اندازی ابزار]] وابستگی ها به چه معناست؟ [[کاربر:Doostdar|دوستدار ایران بزرگ]] [[بحث کاربر:Doostdar|☎]] چهارشنبه،۷ شهریور ۱۴۰۳، ساعت ۰۰:۵۹ (ایران) ۲۷ اوت ۲۰۲۴، ساعت ۲۰:۲۹ (UTC)
:::اصلاح شد.
:::کتاب یک صفحه اش رو کامل کردم و یک صفحه اضافی را در فهرست حذف کردم.
:::کتاب کامل است. [[کاربر:Fwldom|Fwldom]] ([[بحث کاربر:Fwldom|بحث]]) ۳۱ اوت ۲۰۲۴، ساعت ۱۸:۰۷ (UTC)
::::مفاهیم گنگ برای خوانندگان را توضیح بدهید. منبع نوشته ها کجاست؟ [[کاربر:Doostdar|دوستدار ایران بزرگ]] [[بحث کاربر:Doostdar|☎]] چهارشنبه،۱۴ شهریور ۱۴۰۳، ساعت ۱۳:۵۷ (ایران) ۴ سپتامبر ۲۰۲۴، ساعت ۰۹:۲۷ (UTC)
:::::این مفهوم گنگ نیست زنجیره ابزار pspdev برای اجرا برنامه های psp نیاز به چند وابستگی دارد همین.
:::::منبع ها را گفتم شما هم پایین کتاب اضافه کردید.
:::::اگر دوباره نگاه بيندازيد میبینید.
:::::بدرود [[کاربر:Fwldom|Fwldom]] ([[بحث کاربر:Fwldom|بحث]]) ۴ سپتامبر ۲۰۲۴، ساعت ۱۰:۰۱ (UTC)
::::::این مطالب جدید رو هم از همان منابع قبلی برداشته اید؟ [[کاربر:Doostdar|دوستدار ایران بزرگ]] [[بحث کاربر:Doostdar|☎]] جمعه،۱۶ شهریور ۱۴۰۳، ساعت ۰۲:۳۹ (ایران) ۵ سپتامبر ۲۰۲۴، ساعت ۲۲:۰۹ (UTC)
:::::::بله و کد رو هم خودم نوشتم اما نام ابزار ها از pspdev.github.io بود و ویکی کتاب انگلیسی [[کاربر:Fwldom|Fwldom]] ([[بحث کاربر:Fwldom|بحث]]) ۶ سپتامبر ۲۰۲۴، ساعت ۰۸:۲۷ (UTC)
::::::::وابستگی یک نوع افزونه رایانهای است؟ [[کاربر:Doostdar|دوستدار ایران بزرگ]] [[بحث کاربر:Doostdar|☎]] شنبه،۱۷ شهریور ۱۴۰۳، ساعت ۱۲:۱۵ (ایران) ۷ سپتامبر ۲۰۲۴، ساعت ۰۷:۴۵ (UTC)
:::::::::شاید بشه گفت افزونه نرم افزاری رایانه.
:::::::::یعنی برای مثال شما میخواید یک نرم افزار نصب کنید نیاز به پکیج DirectX دارید به پکیچ DirectX میگن وابستگی [[کاربر:Fwldom|Fwldom]] ([[بحث کاربر:Fwldom|بحث]]) ۷ سپتامبر ۲۰۲۴، ساعت ۱۰:۰۲ (UTC)
== ایجاد الگوهای زاید ==
درود. چرا الگوهایی میسازید که هبچ جا استفاده نشده مثل [[:الگو:راهنمای تعاملی|این]]؟ [[کاربر:Doostdar|دوستدار ایران بزرگ]] [[بحث کاربر:Doostdar|☎]] چهارشنبه،۱۴ شهریور ۱۴۰۳، ساعت ۱۴:۰۸ (ایران) ۴ سپتامبر ۲۰۲۴، ساعت ۰۹:۳۸ (UTC)
:درود
:برای کتاب های برنامه نویسی که کد را مرحله به مرحله بررسی میکنند.
:مفید است [[کاربر:Fwldom|Fwldom]] ([[بحث کاربر:Fwldom|بحث]]) ۴ سپتامبر ۲۰۲۴، ساعت ۰۹:۴۵ (UTC)
:بعد الگو های دیگری که ایجاد کردم همگی کاربردی یا تا حدود کمی مهم بودند.
:یک نکته مهم بود که بهتر از الگو نکته هست.
:یک کاربر زن زندگی آزادی بود که فکر نکنم زائد باشد.
:یک کاربر کوروش بزرگ بود که آن هم برای کاربران است و تا حالا نمونه اش رو نداشتیم.
:یک الگو چای که برای کسانی که ویرایش های زیادی دارند میتوانید در بحث شان بگذارید.
:فقط این الگو راهنمای تعاملی ممکن است کمی کم استفاده باشد فقط برای کتاب های خاص. [[کاربر:Fwldom|Fwldom]] ([[بحث کاربر:Fwldom|بحث]]) ۴ سپتامبر ۲۰۲۴، ساعت ۰۹:۵۶ (UTC)
== درخواست همزمان برای خوبیدگی و برگزیدگی ==
درود. این کار [[ویکیکتاب:خرابکاری|خرابکاری]] است. در صورت مشاهده دوباره حساب کاربری شما بسته خواهد شد. [[کاربر:Doostdar|دوستدار ایران بزرگ]] [[بحث کاربر:Doostdar|☎]] چهارشنبه،۱۴ شهریور ۱۴۰۳، ساعت ۱۴:۱۰ (ایران) ۴ سپتامبر ۲۰۲۴، ساعت ۰۹:۴۰ (UTC)
:من نمیدونستم نمیتوانم این کار را انجام بدم و خرابکاری تلقی میشود. [[کاربر:Fwldom|Fwldom]] ([[بحث کاربر:Fwldom|بحث]]) ۴ سپتامبر ۲۰۲۴، ساعت ۰۹:۴۹ (UTC)
== Notice of expiration of your rollbacker right ==
<div dir="ltr">Hi, as part of [[:m:Global reminder bot|Global reminder bot]], this is an automated reminder to let you know that your permission "rollbacker" (واگردانان) will expire on 2024-12-16 20:04:29. Please renew this right if you would like to continue using it. <i>In other languages: [[:m:Global reminder bot/Messages/default|click here]]</i> [[کاربر:Leaderbot|Leaderbot]] ([[بحث کاربر:Leaderbot|بحث]]) ۱۰ دسامبر ۲۰۲۴، ساعت ۱۹:۴۳ (UTC)</div>
== میزان توسعه کتاب های شما (دوباره) ==
درود. چه قدر کتاب هایی رو که شروع کردید تونستید تکمیل کنید؟ [[کاربر:Doostdar|دوستدار ایران بزرگ]] [[بحث کاربر:Doostdar|☎]] چهارشنبه،۱۷ اردیبهشت ۱۴۰۴، ساعت ۱۱:۰۱ (ایران) ۷ مهٔ ۲۰۲۵، ساعت ۰۶:۳۱ (UTC)
:درخواست شما در [[ویکیکتاب:گزیدن کتابهای خوب]] جمعبندی شد. --[[کاربر:Doostdar|دوستدار ایران بزرگ]] [[بحث کاربر:Doostdar|☎]] چهارشنبه،۳۱ اردیبهشت ۱۴۰۴، ساعت ۱۵:۱۹ (ایران) ۲۱ مهٔ ۲۰۲۵، ساعت ۱۰:۴۹ (UTC)
==میزان توسعه کتاب های شما (مرداد ۱۴۰۴)==
درود. [[ویکیکتاب:ایبوکها بر حسب وضعیت تکمیلشدگی|وضعیت توسعه کتابهایی که در دست تکمیل دارید]] به شرح زیر برآورد شده است:
{|class="wikitable sortable"
|-
! نام کتاب!! میزان توسعه!! موضوع!! مشارکت کنندگان
|-
| [[سیاساس]]
|۷۰٪
|رایانه
| Fwldom
|-
| [[زبان برنامهنویسی گو]]
|۲۵٪
|رایانه
| Fwldom
|-
| [[برنامه نویسی PSP]]
|۱۰۰٪
|رایانه
| Fwldom
|-
| [[مبانی شبکههای کامپیوتری و سختافزار]]
|۱۰۰٪
|رایانه
| Fwldom
|} [[کاربر:Doostdar|دوستدار ایران بزرگ]] [[بحث کاربر:Doostdar|☎]] دوشنبه،۳۰ تیر ۱۴۰۴، ساعت ۱۲:۱۲ (ایران) ۲۱ ژوئیهٔ ۲۰۲۵، ساعت ۰۷:۴۲ (UTC)
==میزان توسعه کتاب های شما (شهریور ۱۴۰۴)==
درود. [[ویکیکتاب:ایبوکها بر حسب وضعیت تکمیلشدگی|وضعیت توسعه کتابهایی که در دست تکمیل دارید]] به شرح زیر برآورد شده است:
{|class="wikitable sortable"
|-
! نام کتاب!! میزان توسعه!! موضوع!! مشارکت کنندگان
|-
| [[سیاساس]]
|۱۰۰٪
|رایانه
| Fwldom
|-
| [[زبان برنامهنویسی گو]]
|۲۵٪
|رایانه
| Fwldom
|-
| [[برنامه نویسی PSP]]
|۱۰۰٪
|رایانه
| Fwldom
|-
| [[مبانی شبکههای کامپیوتری و سختافزار]]
|۱۰۰٪
|رایانه
| Fwldom
|} [[کاربر:Doostdar|دوستدار ایران بزرگ]] [[بحث کاربر:Doostdar|☎]] دوشنبه،۳ شهریور ۱۴۰۴، ساعت ۱۳:۴۰ (ایران) ۲۵ اوت ۲۰۲۵، ساعت ۰۹:۱۰ (UTC)
== خوش بازگشتید ==
درود. بازگشت شما را خجسته باد میگویم. خیلی خوش بازگشتید. امیدوارم ویرایش هایتان بهتر از پیش شوند. کتاب سیاساس را پیشتر کامل کرده بودید با این حال از اینکه باز هم در جهت بهتر کردن مطالب آن کوشش کردید خرسندم. سعی کنید در شرایطی که در یک کتاب ویرایش نکردهاید و از موضوع آگاه نیستید درباره مطالب کاربران دیگر نظر ندهید. در مورد سوگیری و اسپم مطلب هم سعی کنید خودتان سوگیری انجام ندهید و از منابع معتبر استفاده کنید. درباره ویرایشهای کاربرهای این ویکی بدون اجازه من نیتخوانی نکنید. همچنین به صفحه نظرخواهی بروید و رای بدهید تا مدیر شوم. برای اینکه دسترسی به شما بدهم دست کم پانصد ویرایش جدید انجام بدهید تا سپس وضعیت شما را بررسی کنم. در صورت خوب بودن ویرایش ها میتوانم دسترسی بیشتر به شما بدهم. [[کاربر:Vivairan2|Vivairan2]] ([[بحث کاربر:Vivairan2|بحث]]) ۱۷ سپتامبر ۲۰۲۶، ساعت ۱۸:۴۸ (UTC)
:درود بر شما، سپاس بیکران
:بنده نیتخوانی یا قضاوتی انجام ندادم و صرفا بر اساس قوانین ویکیکتاب (بنیاد ویکی مدیا) نکتهای را گوشزد کردم تا بدست مراتب بالاتر اصلاح شود.
:اگر بنده سوگیری ناخواستهای انجام دادم میتوانید گوشزد کنید تا اصلاح کنم. خیر همچین کاری نخواهم کرد و دلایل را قبلا به در صفحه نظرخواهی گفتم و دلیلی برای تغییر نظراتم مشاهده نمیکنم.
:دسترسی نیاز ندارم و اگر نیاز داشته باشم از مدیر جدید که به زودی تعیین خواهد شد خواهم گرفت و همچنین ترجیح میدونم یک کاربر ساده ویرایش بدون سوگیری در مطالب باشم. [[کاربر:Fwldom|Fwldom]] ([[بحث کاربر:Fwldom|بحث]]) ۱۹ سپتامبر ۲۰۲۶، ساعت ۱۸:۲۵ (UTC)
f12b3s3gdwj024mq4z22y5tsiwlf9r1
ویکیکتاب:میز تحریر/بایگانی۲۳
4
42155
135292
2026-09-29T06:24:45Z
Fwldom
26269
انتقال بحثهای قدیمی به بایگانی
135292
wikitext
text/x-wiki
==ویکیکتاب فارسی بیست و یک ساله شد==
بیش از ۲۰ سال از راهاندازی ویکیکتاب فارسی میگذرد. پارسال [[ویکیکتاب:ستاد برگزاری بیستمین سالگرد ویکیکتاب|بیستسالگی]] آن را جشن گرفتیم. اکنون ویکیکتاب فارسی در رتبه ۱۶ هست و یکی از موفقترین پروژههای پارسی بنیاد ویکیمدیا است. ویکیکتاب، یک پروژه مبتنی بر ویکی است که توسط سازمان ناسودبر بنیاد ویکیمدیا اداره میشود. البته همچنان مشکلاتی نیز پس از گذشت سالها گریبانگیر ویکیکتاب است از جمله اینکه معیارهای سرشناسی در ویکیکتاب هنوز به طور دقیق مشحص نیست. هنوز به دقت مشخص نشده است چه صفحههایی سرشناسی کافی دارند و چه صفحههایی سرشناسی ندارند. به طور کلی تا مشخص شدن معیارهای سرشناسی ویکیکتاب، بهتر است به کتاب های با موضوع سیاسی و اجتماعی که به مسائل روز میپردازند اجازه نشر ندهیم زیرا چنین کتاب هایی معمولا هدف آموزشی ندارند.
[[پرونده:TRABAJO COLABORATIVO.jpg|250px|بیقاب|وسط]]
در ویکیکتاب، ممکن است درباره یک موضوع چند کتاب مختلف وجود داشته باشد اما نوشتن داستان و سفرنامه در این وبگاه ممنوع است. تا حد امکان در صفحههای کتاب، از دادن پیوندهای بیرونی خودداری میشود. ایبوک یا کتاب الکترونیکی، پدیدهای کاملاً تازهاست و انتظار میرود تا نظام آموزش و اطلاعرسانی را در ایران همانند سایر کشورها با دگرگونیهایی اساسی مواجه سازد. کتابخانه دیجیتال کتابخانه ای است که در آن اسناد و منابع به جای کاغذ یا سایر رسانهها به صورت الکترونیکی ذخیره شدهاند. به کتابخانه دیجیتال، کتابخانه آنلاین یا کتابخانه اینترنتی نیز میگویند. جستجو در این کتابخانهها به مراتب آسانتر از کتابخانههای سنتی است. ویکیکتاب یک کتابخانه دیجیتال است که نسخه انگلیسی آن نزدیک به ۱۰۰ هزار صفحه مفید دارد ولی نسخه فارسی آن هنوز ۳ هزار و پانصد صفحه مفید دارد.
پروژه ویکیکتاب اگرچه نسخههایی به زبانهای دیگر نیز دارد ولی هر زبان مستقل عمل میکند. این طور نیست که ویکیکتاب فارسی بر طبق سیاستها و رهنمودهای آلمانی یا انگلیسی عمل کند. در [[ویکیکتاب:نظرخواهی/نویسنده کتاب|یکی از نظرخواهیها (نظرخواهی برای تصمیم گرفتن درباره درج نام نویسنده یا نویسندگان)]] یک کاربر پیشنهاد داد از رهنمود ویکیکتاب انگلیسی استفاده کنیم (بگذریم که ویکیکتاب انگلیسی خود رهنمود مشخصی ندارد برای این منظور) اساسا نظرخواهی برای چیست؟ جامعه کاربری ویکیکتاب فارسی نظرش مهم نیست؟ در این خلاصه خواستم تأکید کنم ما در ویکیکتاب فارسی خودمان برای خودمان تصمیم میگیریم و چیزی را ترجمه نمیکنیم و اگر ترجمه ای انجام شود اول باید توسط کاربران همین ویکی [[ویکیکتاب:خودآموز/بحث و اجماع|تأیید یا تغییر داده شود]]. شایان ذکر است بخش نظرخواهی ویکیکتاب فارسی در سال ۱۳۹۲ راهاندازی شد تا کاربران بتوانند در تصمیمگیریهای راهبردی مشارکت کنند.
در سال ۱۴۰۳ پروانه تمام فایلهای بارگزاری شده اعم از نگاره، فایل صوتی، پیدیاف، ... از گنو (GFDL) به کریتیو کامنز (CC ویرایش چهارم) تغییر کرد و از آن پس، پروژههای ویکیمدیا دیگر از پروانه گنو استفاده نکردند.
--[[کاربر:Doostdar|دوستدار ایران بزرگ]] [[بحث کاربر:Doostdar|☎]] یکشنبه،۱۱ خرداد ۱۴۰۴، ساعت ۰۱:۱۳ (ایران) ۳۱ مهٔ ۲۰۲۵، ساعت ۲۰:۴۳ (UTC)
__NEWSECTIONLINK__
[[en:Wikibooks:Reading room/General]]
== شروع حمله اسرائیل به ایران ==
[[پرونده:Al-Tabieen school massacre 05.jpg|250px|بندانگشتی|چپ|اجساد تکه تکه شده نسلکشی فلسطین توسط نظامیان اسرائیلی]]
در ساعات اولیهٔ صبح روز ۲۳ خرداد ۱۴۰۴ اسرائیل با چند فروند هواپیمای نظامی به ایران حمله کرد. در پی این حمله انفجارهایی در سراسر تهران گزارش شد، از جمله در نزدیکی پایگاههای نظامی و محلههایی که فرماندهان ارشد نظامی در آن سکونت داشتند. برخی از دولتها، اسرائیل را به دلیل این حمله محکوم کردند. [[کاربر:Doostdar|دوستدار ایران بزرگ]] [[بحث کاربر:Doostdar|☎]] یکشنبه،۲۵ خرداد ۱۴۰۴، ساعت ۲۱:۳۴ (ایران) ۱۵ ژوئن ۲۰۲۵، ساعت ۱۷:۰۴ (UTC)
:پس از حدود دو هفته، جنگ متوقف شد. نکته جالب، ظهور افراد خائن (وطنفروشان) بود که از روشهای مختلف در این مدت کوتاه با دشمن همکاری کردند و تعدادی از آنها که شناسایی شدند به مجازات رسیدند. [[کاربر:Doostdar|دوستدار ایران بزرگ]] [[بحث کاربر:Doostdar|☎]] پنجشنبه،۵ تیر ۱۴۰۴، ساعت ۱۹:۳۷ (ایران) ۲۶ ژوئن ۲۰۲۵، ساعت ۱۵:۰۷ (UTC)
::{{شعر}}
::{{ب|{{نستعلیق|وطن بسوزد و من در خروش و جوش نباشم}}|{{نستعلیق|خدا کند که بمیرم وطنفروش نباشم}}}}
::{{پایان شعر}} [[کاربر:Doostdar|دوستدار ایران بزرگ]] [[بحث کاربر:Doostdar|☎]] جمعه،۱۳ تیر ۱۴۰۴، ساعت ۱۸:۲۱ (ایران) ۴ ژوئیهٔ ۲۰۲۵، ساعت ۱۳:۵۱ (UTC)
== موفقترین پروژههای ویکیمدیا ==
به نظر میرسد ویکیسفر، ویکیکتاب، ویکیپدیا، ویکینبشته و ویکیگفتاورد موفقترین پروژههای پارسی باشند. [[کاربر:Doostdar|دوستدار ایران بزرگ]] [[بحث کاربر:Doostdar|☎]] دوشنبه،۹ تیر ۱۴۰۴، ساعت ۱۳:۴۸ (ایران) ۳۰ ژوئن ۲۰۲۵، ساعت ۰۹:۱۸ (UTC)
== قربانی قتل ناموسی ==
یک جوان هفده ساله در مشهد قربانی قتل ناموسی شد. محمدجواد ایزانلو در خیابان رسالت به دلیل رابطه دوستی توسط یک پسر به قتل رسید. یک نوجوان دیگر به دلایل ناموسی دست به این قتل زد. اگر به ویکیپدیا نگاه کنید هیچ مقالهای درباره این قتل پیدا نمی کنید اما در مورد قتل های ناموسی دیگر مثل قتل مونا حیدری در اهواز حتما مقاله ایجاد کردهاند. رویکرد فمینیستی در ویکیپدیای فارسی دلیل این موضوع است. [[کاربر:Doostdar|دوستدار ایران بزرگ]] [[بحث کاربر:Doostdar|☎]] شنبه،۱۴ تیر ۱۴۰۴، ساعت ۲۲:۰۷ (ایران) ۵ ژوئیهٔ ۲۰۲۵، ساعت ۱۷:۳۷ (UTC)
:در سال ۱۳۹۹ در زمینهای کشاورزی اطراف روستای عباسآباد مشهد یک مرد ۳۸ ساله توسط خانواده دختر به دلیل ازدواج با دخترشان به قتل رسیده است ولی این هم مقالهای در ویکیپدیا ندارد. گویا ویکینویسهای فارسی، فمنیست هستند و به مذاقشان خوش نمیآید! [[w:fa:قتل ناموسی در ایران|به ویکیپدیا بروید و خودتان ببینید]]. [[کاربر:Doostdar|دوستدار ایران بزرگ]] [[بحث کاربر:Doostdar|☎]] شنبه،۱۴ تیر ۱۴۰۴، ساعت ۲۲:۱۸ (ایران) ۵ ژوئیهٔ ۲۰۲۵، ساعت ۱۷:۴۸ (UTC)
:درود بر شما
:فکر نکنم برچسب زدن به ویکی پدیا و یک اندیشه (فمینیست) کار درستی باشد، اگر مقاله ای در این مورد نوشته نشده دلیلش میتواند رسانه ای نشدن این نام ها باشد. زیرا رسانه های زرد بیشتر بدنبال محتوای زرد میگردند و قتل یک مرد محتوای زرد نیست (مگر در مواردی عجیب).
:رسانه هم دلیلی است اما دلیلی دیگر وجود دارد به نام "جامعه" جامعه که به این اخبار اهمیت نمیدهد و بدنبال اصلاح نیست.
:پس بجای اینکه به یک اندیشه یا شخص برچسب زده شود بهتر است جامعه اصلاح شود تا بتواند هر چیز را اصلاح کند. شاید بعضی از اعضا فمینیست باشند اما هیچ قانون و منطقی اجازه برخورد با آن ها را نمیدهد. [[کاربر:Fwldom|Fwldom]] ([[بحث کاربر:Fwldom|بحث]]) ۶ ژوئیهٔ ۲۰۲۵، ساعت ۱۴:۳۸ (UTC)
== صفحههای ویژه ==
:پیوند به [[Special:SpecialPages|صفحههای ویژه]]
[[کاربر:Doostdar|دوستدار ایران بزرگ]] [[بحث کاربر:Doostdar|☎]] دوشنبه،۱۶ تیر ۱۴۰۴، ساعت ۱۶:۲۲ (ایران) ۷ ژوئیهٔ ۲۰۲۵، ساعت ۱۱:۵۲ (UTC)
== نگارههایی از همایش ویکیکتاب در اندونزی (آگست ۲۰۲۵) ==
[[پرونده:Dokumentasi WikiLatih WikiBuku Jember 2.jpg|250px|بیقاب|چپ]]
[[پرونده:Dokumentasi WikiLatih WikiBuku Makassar 2.jpg|250px|بیقاب|راست]]
{{سخ}}
--[[کاربر:Doostdar|دوستدار ایران بزرگ]] [[بحث کاربر:Doostdar|☎]] سهشنبه،۱۴ مرداد ۱۴۰۴، ساعت ۱۲:۲۵ (ایران) ۵ اوت ۲۰۲۵، ساعت ۰۷:۵۵ (UTC)
== آبانگان روز نکوداشت آناهیتا ایزدبانوی آبها ==
[[پرونده:Anahita Vessel, 300-500 AD, Sasanian, Iran, silver and gilt - Cleveland Museum of Art - DSC08130.JPG|بندانگشتی|راست|نگارهای از آناهیتا بر روی کوزهای باستانی]]
[[پرونده:Fuman anahita.jpg|500px|بندانگشتی|چپ|تندیسی از ایزدبانو آناهیتا]] [[کاربر:Doostdar|دوستدار ایران بزرگ]] [[بحث کاربر:Doostdar|☎]] شنبه،۱۷ آبان ۱۴۰۴، ساعت ۱۲:۴۵ (ایران) ۸ نوامبر ۲۰۲۵، ساعت ۰۹:۱۵ (UTC)
==شب یلدا (۲۱ دسمبر)==
شب یلدا یا شب چله یکی از کهنترین جشنهای ایرانی است که هر سال با فرا رسیدن بلندترین شب سال برگزار میشود. مراسم شب یلدا از غروب آفتاب ۳۰ آذر آغاز شده و تا طلوع آفتاب ۱ دی ادامه مییابد. در این شب، ایرانیان میوهها و خشکبار مانند انار، هندوانه و خرمالو را آماده کرده و در دورهمی دوستانه میخورند؛ این میوهها نمادی از زندگی، انرژی و امید هستند. در برخی مناطق اعتقاد بر این است که چهل نوع خوراکی باید در مراسم شب چله آماده باشد. رنگ قرمز این میوهها نماد رنگهای سرخ سپیدهدم و تابش زندگی است.
<div style="font-size:large">
[[پرونده:Flickr_-_Government_Press_Office_(GPO)_-_Pomegranate_Fruits.jpg|350px|بندانگشتی|چپ|شب یلدا خجسته باد]]
* {{رنگی|آبی}}Happy Yalda Night{{رنگی/پ}}
* {{رنگی|سبز}}Feliz Yaldá{{رنگی/پ}}
* {{رنگی|زرد}}С Ялда{{رنگی/پ}}
* {{رنگی|قرمز}}جه ژنی شەوی یەڵدا{{رنگی/پ}}
* {{رنگی|خاکستری}}Yelda gece mübarək olsun{{رنگی/پ}}
* {{رنگی|بنفش}}یلدا گئجهسی موبارك اولسون{{رنگی/پ}}
* {{رنگی|قرمز}}Шáби Ялдó Мoбаpаc{{رنگی/پ}}
</div>
--[[کاربر:Doostdar|دوستدار ایران بزرگ]] [[بحث کاربر:Doostdar|☎]] جمعه،۲۸ آذر ۱۴۰۴، ساعت ۱۲:۲۲ (ایران) ۱۹ دسامبر ۲۰۲۵، ساعت ۰۸:۵۲ (UTC)
== ویکیکتابهای برتر (۲۰۲۵ میلادی)==
همانطور که در جدول زیر نشان داده شده است نسخههای ویکیکتاب به زبانهای مختلف از نظر کمی به سرعت در حال رشد هستند به گونهای که ویکیکتاب انگلیسی نزدیک به ۱۰۰ هزار صفحه دارد. اعداد نوشته شده در جدول بر حسب هزار صفحه است.
[[پرونده:Wikibooks-logo-fa2.svg|200px|بندانگشتی|چپ|ویکیکتاب]]
{|class="wikitable sortable"
|-
! نام ویکیکتاب!! ۲۰۲۴ میلادی!! ۲۰۲۵ میلادی
|-
| انگلیسی
|۹۷
|۹۸
|-
| مجاری
|۳۹
|۴۵
|-
| آلمانی
|۳۱
|۳۳
|-
| فرانسوی
|۱۹
|۲۱
|-
| ایتالیایی
|۱۶
|۱۹
|-
| ژاپنی
|۱۴
|۱۷
|-
| پرتغالی
|۱۳
|۱۳
|-
| اسپانیایی
|۹
|۹
|-
| هلندی
|۹
|۹
|-
| اندونزیایی
|۵
|۵
|-
| فارسی
|۳
|۳
|}
--[[کاربر:Doostdar|دوستدار ایران بزرگ]] [[بحث کاربر:Doostdar|☎]] دوشنبه،۱ دی ۱۴۰۴، ساعت ۰۱:۲۴ (ایران) ۲۱ دسامبر ۲۰۲۵، ساعت ۲۱:۵۴ (UTC)
==جشن سده (۳۰ جنوئری)==
[[پرونده:Sadeh Festival in Shiraz 2020-01-30 05.jpg|200px|بندانگشتی|چپ|جشن سده خجسته باد]]
'''سد به سده، سی به گله پنجاه به نوروز'''
<div style="font-size:large">
* {{رنگی|سبز}}جشن سده خجسته باد{{رنگی/پ}}
* {{رنگی|آبی}}Happy Sadeh{{رنگی/پ}}
* {{رنگی|زرد}}Ҷашни Сада Мoбаpаc{{رنگی/پ}}
* {{رنگی|قرمز}}Félicitations pour Sadeh{{رنگی/پ}}
* {{رنگی|سبز}}С Новым Содо{{رنگی/پ}}
* {{رنگی|بنفش}}bimbarek Sadeh{{رنگی/پ}}
</div> [[کاربر:Doostdar|دوستدار ایران بزرگ]] [[بحث کاربر:Doostdar|☎]] جمعه،۱۰ بهمن ۱۴۰۴، ساعت ۲۰:۰۵ (ایران) ۳۰ ژانویهٔ ۲۰۲۶، ساعت ۱۶:۳۵ (UTC)
== همدردی با مردم برای از دست رفتگان در جنگ ==
[[پرونده:Shajareh Tayyebeh school in Minab photos from Mehr (12).jpg|بندانگشتی|چپ|گوشهای از آثار جنگ (میناب)]]
درود. کشته شدن تعدادی از هموطنان در جنگ تحمیلی سوم را که منجر به تشدید بحران در خاورمیانه و غرب آسیا شده است تسلیت میگویم. --[[کاربر:Vivairan2|Vivairan2]] ([[بحث کاربر:Vivairan2|بحث]]) ۴ ژوئن ۲۰۲۶، ساعت ۰۸:۲۴ (UTC)
== آثاری که با همکاری کاربران تکمیل میشود (تیر ۱۴۰۵) [[پرونده:Wikibooks-logo-fa2.svg|20px]] ==
[[پرونده:Couverture-wikimedia.jpg|بیقاب|چپ]]
هماکنون ۵۳ کتابچه [[ویکیکتاب:ایبوکها بر حسب وضعیت تکمیلشدگی|در حال تکمیل شدن هستند]]. [[کاربر:Vivairan2|Vivairan2]] ([[بحث کاربر:Vivairan2|بحث]]) ۲۹ ژوئن ۲۰۲۶، ساعت ۰۵:۱۴ (UTC)
:اگر قصد مشارکت در نوشتن یا ویرایش یکی از این ایبوکها رو دارید اعلام کنید. [[کاربر:Vivairan2|Vivairan2]] ([[بحث کاربر:Vivairan2|بحث]]) ۵ ژوئیهٔ ۲۰۲۶، ساعت ۰۵:۰۷ (UTC)
:چهارچوب اصلی محتوای هر ایبوک با توجه به فهرستی که در صفحه اول قرار داده شده مشخص شده است. [[کاربر:Vivairan2|Vivairan2]] ([[بحث کاربر:Vivairan2|بحث]]) ۵ ژوئیهٔ ۲۰۲۶، ساعت ۰۵:۰۸ (UTC)
:تعداد زیرصفحه هایی که در هر ایبوک تا کنون ایجاد شده و نیز موضوع ایبوک مشخص شده. لطفا با توجه به اطلاعات و توانایی هایی که در نوشتن دارید اقدام به مشارکت کنید. [[کاربر:Vivairan2|Vivairan2]] ([[بحث کاربر:Vivairan2|بحث]]) ۵ ژوئیهٔ ۲۰۲۶، ساعت ۰۵:۱۰ (UTC)
:در پایین صفحه نام آخرین ایبوک هایی که در چند سال گذشته توسط کاربران در ویکیکتاب تکمیل شدهاند در یک جدول جداگانه نوشته شده است. [[کاربر:Vivairan2|Vivairan2]] ([[بحث کاربر:Vivairan2|بحث]]) ۵ ژوئیهٔ ۲۰۲۶، ساعت ۰۵:۱۶ (UTC)
:میزان توسعه برای ایبوکهای در حال تکمیل به صورت تقریبی میباشد و وضعیت آنها به صورت در حال انجام نشان میدهد نیاز به مشارکت کاربران نویسنده دارد. [[کاربر:Vivairan2|Vivairan2]] ([[بحث کاربر:Vivairan2|بحث]]) ۵ ژوئیهٔ ۲۰۲۶، ساعت ۰۵:۲۴ (UTC)
== درگاههای علمی ویکیپدیا ==
بعضی از درگاههای علمی ویکیپدیا که برای موضوعات علمی قابل استفاده هستن. اگر قصد نوشتن یا ویرایش کتابی تو ویکیکتاب رو دارید می تونید از این درگاه ها کمک بگیرید:
{| class="wikitable" style="font-size: 95%"
!'''نام درگاه'''||'''موضوع'''||'''توضیحات'''
|-
||''[[W:fa:درگاه:دانش|دانش]]''|| دانش|| موضوعات مختلف علمی همچون اخترشاسی، زمینشناسی، الخ
|-
||''[[w:fa:درگاه:اخترشناسی|اخترشناسی]]''|| اخترشناسی|| پدیدههای آسمانی از جمله ستارگان، سیارات، دنبالهدار، کهکشانها و پدیدههایی مانند شفق قطبی
|-
||''[[w:fa:درگاه:جغرافیا|گیتاشناسی]]''|| گیتاشناسی|| جغرافیا دانشیاست دربارهٔ سطح زمین و پدیدههای طبیعی، آبوهوا، رستنیها، خاک، فراوردهها؛ شهرها و کشورها و قاره ها
|-
||''[[W:fa:درگاه:ریاضیات|ریاضیات]]''|| ریاضیات|| هندسه، آمار، توابع مثلثاتی، جبر، حساب دیفرانسیل و انتگرال، الخ
|-
||''[[W:fa:درگاه:حسابداری|حسابداری]]''|| حسابداری|| حسابداری، تجارت، حسابرسی، الخ
|-
||''[[w:fa:درگاه:شیمی|شیمی]]''|| شیمی|| عنصرهای شیمیایی و ترکیبهای شیمیایی شامل اتمها، مولکولها و برهمکنش میان آنها
|-
||''[[w:fa:درگاه:تاریخ|تاریخ]]''|| تاریخ|| باستانشناسی، تاریخ ایران، تاریخ هنر، تاریخ جنگ، الخ
|-
||''[[W:fa:درگاه:پزشکی|پزشکی]]''|| پزشکی|| شناخت بیماریها، تشخیص، درمان و جلوگیری از بروز آنها
|-
||''[[w:fa:درگاه:فیزیک|فیزیک]]''|| فیزیک|| مفهومهایی همچون انرژی و نیرو که در چگونگی و نوع رفتار ماده تاثیرگذارند
|-
||''[[w:fa:درگاه:پرستاری|پرستاری]]''|| پرستاری|| اصول علمی و مهارتهای حرفهای مراقبت، درمان و آموزش بیماران
|-
||''[[w:fa:درگاه:فناوری|فناوری]]''|| فناوری|| شیوه و شگرد ساخت و کاربرد ابزار، دستگاهها، مادهها و فرایندهای گرهگشای دشواریهای انسان
|-
||''[[w:fa:درگاه:رایانه|رایانه]]''|| رایانه|| سختافزار، نرمافزار، تعامل انسان و رایانه، انواع رایانه، رایانش، الخ
|-
||''[[w:fa:درگاه:انرژی|انرژی]]''|| انرژی|| یک کمیت بنیادین فیزیکی شامل انرژی جنبشی، انرژی پتانسیل، انرژی گرمایی، انرژی شیمیایی و انرژی هستهای، الخ
|-
||''[[w:fa:درگاه:زیستشناسی|زیستشناسی]]''|| زیستشناسی|| فیزیولوژی، بومشناسی، زیستشناسی مولکولی و سلولی، زیستشیمی، ژنتیک، الخ
|-
||''[[w:fa:درگاه:اینترنت|اینترنت]]''|| اینترنت|| اینترنت سامانهای جهانی از شبکههای رایانهای بهم پیوستهاست که از مجموعه پروتکل اینترنت برای ارتباط با یکدیگر استفاده مینمایند
|-
||''[[w:fa:درگاه:داروسازی و داروشناسی|داروسازی و داروشناسی]]''|| داروسازی و داروشناسی|| داروشناسی شاخهای از داروسازی و زیستشناسی است که به مطالعه واکنش متقابل داروها بر موجودات زنده میپردازد.
|-
||''[[w:fa:درگاه:علوم زمین|علوم زمین]]''|| علوم زمین|| علوم زمین گونهای خاص از سیارهشناسی است که به مطالعهٔ ساختار و ترکیبات زمین، خاستگاه، ویژگیهای فیزیکی، ... میپردازد.
|} [[کاربر:Vivairan2|Vivairan2]] ([[بحث کاربر:Vivairan2|بحث]]) ۵ ژوئیهٔ ۲۰۲۶، ساعت ۰۵:۰۶ (UTC)
== چرا ویکیکتاب؟ ==
«باید درهای علم به روی همه باز باشد، هرجا مزرعه هست، هرجا آدم هست، آنجا کتاب هم باید باشد.»
: ''ویکتور هوگو''
[[کاربر:Vivairan2|Vivairan2]] ([[بحث کاربر:Vivairan2|بحث]]) ۵ ژوئیهٔ ۲۰۲۶، ساعت ۰۶:۰۲ (UTC)
== ویکیکتابهای برتر (۲۰۲۵ میلادی) با میزان رشد ==
همانطور که در جدول زیر نشان داده شده است نسخههای ویکیکتاب به زبانهای مختلف از نظر کمی به سرعت در حال رشد هستند به گونهای که ویکیکتاب انگلیسی نزدیک به ۱۰۰ هزار صفحه دارد. اعداد نوشته شده در جدول بر حسب هزار صفحه است.
[[پرونده:Wikibooks-logo-fa2.svg|200px|بندانگشتی|چپ|ویکیکتاب]]
{|class="wikitable sortable"
|-
! نام ویکیکتاب!! ۲۰۱۵ میلادی!! ۲۰۲۴ میلادی!! ۲۰۲۵ میلادی
|-
| انگلیسی
|۵۰
|۹۷
|۹۸
|-
| مجاری
|ن
|۳۹
|۴۵
|-
| آلمانی
|۲۲
|۳۱
|۳۳
|-
| فرانسوی
|۱۶
|۱۹
|۲۱
|-
| ایتالیایی
|ن
|۱۶
|۱۹
|-
| ژاپنی
|۱۰
|۱۴
|۱۷
|-
| پرتغالی
|۷
|۱۳
|۱۳
|-
| اسپانیایی
|ن
|۹
|۹
|-
| هلندی
|۶
|۹
|۹
|-
| اندونزیایی
|۳
|۵
|۵
|-
| فارسی
|۱
|۳
|۳
|} [[کاربر:Vivairan2|Vivairan2]] ([[بحث کاربر:Vivairan2|بحث]]) ۵ ژوئیهٔ ۲۰۲۶، ساعت ۰۶:۳۶ (UTC)
== همه چیز درباره خواندنیهای خوب ==
'''تقدیم به همه کاربران فعال ویکی کتاب'''
[[آموزش کار با گودریدز|گودریدز]] یک شبکه اجتماعی کتاب است، که کاربران در آن کتابهایی که خواندهاند را پیدا میکنند، به کتابها امتیاز میدهند، و کتابهای محبوب خود را به دوستان خود توصیه میکنند.
وبگاه گودریدز در دسامبر ۲۰۰۶ توسط اوتیس چندلر، یک مهندس نرمافزار و کارآفرین وب باز شد و در دسامبر ۲۰۰۷ بیش از ۶۵۰٬۰۰۰ عضو داشت و بیش از ۱۰٬۰۰۰٬۰۰۰ کتاب به آن افزوده شده بود. در ژوئیه ۲۰۱۲ اعلام شد که گودریدز ۱۰ میلیون عضو و ۲۰ میلیون بازدید ماهانه دارد. در ژوئیه ۲۰۱۳ در وبلاگ خود اعلام کردند که تعداد اعضای گودریدز از مرز ۲۰ میلیون نفر گذشته است. این رقم نشان دهنده ی این است که تعداد اعضای گودریدز در کمتر از یک سال دو برابر شده است.
در این شبکه اجتماعی کاربران به سه شکل میتوانند وضعیت مطالعه کتاب را نشان دهند؛ یا کتاب را پیشتر خواندهاند، یا در حال مطالعهاند، یا اینکه قرار است بعداً کتاب را بخوانند. کاربران میتوانند در مورد کتابها نظرشان را بنویسند و در کلوبهای مجازی بحث کنند. برای هر کتاب امکان امتیازدهی اعضا هم وجود دارد و کسانی که کتاب را مطالعه کردهاند به کتاب امتیاز میدهند.
از ویژگیهای این شبکه، امکان یافتن کتابهای قدیمی، کتابهای ناشران غیر رسمی، یا کتابهایی کمترشناختهشده در کنار دیگر کتابهای مشهور به زبانهای گوناگون است. [[کاربر:Vivairan2|Vivairan2]] ([[بحث کاربر:Vivairan2|بحث]]) ۵ ژوئیهٔ ۲۰۲۶، ساعت ۰۶:۵۴ (UTC)
== کپی ممنوع ==
{| class="wikitable"
|لطفا توجه کنید که در بیشتر موارد موارد کپی خطبهخط از وبگاهها، وبلاگها یا کتابها خلاف قانون حق تکثیر اینجا است. به جای کُپی-پیست کردن مطالب، میتوانید آن را با انشای خودتان به طور کامل بازنویسی کنید؛ البته آوردن مطلب با تغییر بسیار اندک، به طوری که نوشتهٔ جدید اثری منتج تلقی شود نیز هنوز در تضاد با قانون حق تکثیر است. --[[کاربر:Vivairan2|Vivairan2]] ([[بحث کاربر:Vivairan2|بحث]]) ۵ ژوئیهٔ ۲۰۲۶، ساعت ۰۷:۰۳ (UTC)
|}
== درگاه کتاب ==
[[w:fa:درگاه:کتاب|درگاه کتاب]] توضیحاتی درباره انواع کتاب، صنعت چاپ، گفتاورد درباره کتاب داره. نوشتار برگزیده این درگاه «محمد علی جمالزاده» و نگاره برگزیده اون یکی از نسخ قدیمی قرآن هست. حتما از این درگاه بازدید کنید. [[کاربر:Vivairan2|Vivairan2]] ([[بحث کاربر:Vivairan2|بحث]]) ۵ ژوئیهٔ ۲۰۲۶، ساعت ۰۷:۲۰ (UTC)
== نام ویکی از کجا اومده؟ ==
کانینگهام در ۲۵ مارس ۱۹۹۵ این نرمافزار (ویکی) را روی وبگاه شرکت خودش (کانینگهام اند کانینگهام) نصب کرد. کانینگهام به یاد مسئول باجه فرودگاه هونولولو که به او گفته بود برای رفتن به پایانه فرودگاه سوار اتوبوس ویکیویکی شود این نام را برگزید. ویکیویکی دوگانسازی واژه «ویکی» است که در زبان هاوایی به معنی تند و زود به کار میرود. [[کاربر:Vivairan2|Vivairan2]] ([[بحث کاربر:Vivairan2|بحث]]) ۵ ژوئیهٔ ۲۰۲۶، ساعت ۰۷:۲۹ (UTC)
== چرا ویکیپدیا نه؟ ==
(منظور از ویکیپدیا در اینجا، ویکیپدیای فارسیه) راهی که کاربران ویکیپدیای فارسی طی کردند ستودنی است اما افزایش جایگاه زبان فارسی در بین سایر ویکیپدیاها بعید به نظر میرسه (اکنون در جایگاه ۱۷ قرار دارد). برعکس، ویکیهای کوچکتر مثل ویکیکتاب فارسی روند رو به رشدی رو طی میکنند و در صورت مشارکت بیشتر، نیل به جایگاه های بهتر برای این پروژهها دور از انتظار نیست. در سالهای اخیر پربازدیدترین مقالههای ویکیپدیا مربوط به موضوع تفریح و سرگرمی، ترندهای سیاسی و جنجالی بوده و موضوعهای علمی جایگاه خوبی در بین مخاطبان ویکیپدیا نداشتهاند، در حالیکه بیشتر محتوای ویکیکتاب، علمی و آموزشیه و در ماه اخیر (شاید به علت رویداد کرونا و افزایش آموزش آنلاین دانشجویان) صفحههای مربوط به [[ریاضی پایه]] و [[اسید و باز]] جزو ۱۰ تای پربازدید ویکیکتاب فارسی بودند. این یکی از مهمترین انگیزههای ویکینویسها برای فعالیت در ویکیکتابه چون بسیاری از مقالههای علمی ویکیپدیا خُرد هستند و مطالب کافی ندارند. به نظر بنده با توجه به روند کنونی، دور از ذهن به نظر میرسه که مقاله های علمی بتونند در ویکیپدیا رشد کنند چرا که بیشتر ویرایشها در مقاله های سیاسی و اجتماعی انجام میشه و کمتر به موضوعهای علمی پرداخته میشه. [[کاربر:Vivairan2|Vivairan2]] ([[بحث کاربر:Vivairan2|بحث]]) ۵ ژوئیهٔ ۲۰۲۶، ساعت ۰۷:۳۳ (UTC)
== کاربر گرامی! ویکی برای تبلیغ شما نیست ==
شوربختانه در ویکی های فارسی مثل ویکی کتاب، ویکی گفتاورد، ویکی پدیا، ... ویرایش های خرابکارانه، توهین، فحش و تبلیغات بسیار زیاد هست و در مقایسه با زبان های دیگر میزان خرابکاری بیشتر است. همچنان که گزارش نشان داد مسئول بخش عمده ای از این خرابکاری ها و تبلیغات آیپی ها هستند ولی ممکن است نام کاربری هم بسازند و با نام کاربری اقدام به خرابکاری کنند. در هر صورت از کاربران دارای ویرایش مفید و سازنده دعوت میکنم با خرابکاران مبارزه کنند. [[کاربر:Vivairan2|Vivairan2]] ([[بحث کاربر:Vivairan2|بحث]]) ۵ ژوئیهٔ ۲۰۲۶، ساعت ۰۷:۳۶ (UTC)
==اگر قصد ایجاد کتاب جدیدی دارید ...==
{{جعبه هشدار|پیش از اینکه کتاب جدیدی در ویکیکتاب ایجاد کنید حتما سری به [[ویکیکتاب:ایبوکها بر حسب وضعیت تکمیلشدگی|این صفحه]] بزنید. اگر کتابی هست که موضوعی شبیه به موضوع دلخواه شما داشت میتونید محتوای خودتون رو به اون کتاب اضافه کنید. کتاب هایی که در جدول فهرست شدهاند هنوز تکمیل نشدهاند و در انتظار تکمیل شدن به دست کاربران ویکیکتاب چون شما هستند.}} [[کاربر:Vivairan2|Vivairan2]] ([[بحث کاربر:Vivairan2|بحث]]) ۵ ژوئیهٔ ۲۰۲۶، ساعت ۰۷:۴۰ (UTC)
== نکاتی برای درج تصویر و میانویکی ==
برای افزودن میانویکی به صفحات و زیر صفحات [[ویکیکتاب:همکاری با ویکیداده|این راهنما]] رو مطالعه کنید. میانویکیها در [[d:Wikidata:Main_Page|ویکیداده]] باید افزوده بشه.
برای افزودن تصویر [[ویکیکتاب:خودآموز/اضافه کردن عکس|این راهنما]] رو مطالعه کنید. تصویرها در [[w:fa:ویکیانبار|ویکیانبار]] یا ویکیکتاب باید بارگذاری بشه. [[کاربر:Vivairan2|Vivairan2]] ([[بحث کاربر:Vivairan2|بحث]]) ۵ ژوئیهٔ ۲۰۲۶، ساعت ۰۷:۴۳ (UTC)
== ویکیکتاب فارسی ==
<div dir="Rtl"><div style="background: #FFFFFF; text-align: right; font-family: Tahoma; font-size: 1em; font-weight:;"><div style="padding: 1em; border: 1px solid #003882; -moz-border-radius: 5px; -webkit-border-radius: 4px; border-radius: 5px;">
<div style="margin-top: 5px;">
</div>
[[file:Wikibooks-logo-fa2.svg|180px|right|link:https://fa.wikibooks.org]]
[[پرونده:13-11-02-olb-by-RalfR-03.jpg|180px|بیقاب|چپ]]
[https://fa.wikibooks.org/wiki/صفحهٔ_اصلی '''ویکیکتاب'''] تارنمایی برای کتابهای درسی، متون تفسیری، راهنماهای آموزشی و دستور عملها است. این موارد میتوانند در یک کلاس درس، آموزشگاه معتبر، به شکل خودآموز یا بعنوان بخشی از آموزشهای ویکیدانشگاه مورد استفاده قرار بگیرند. از کتابهای ویکی میتوان نسخه چاپی یا پیدیاف تهیه کرد و در کلاس درس، به طور رایگان به جای کتابهای سنتی چاپشده مورد استفاده قرار داد. این یک مزیت است برای مدارس و دانشآموزانی که بضاعت ندارند کتابهای درسی سنتی را تهیه کنند.
از تاسیس '''ویکیکتاب فارسی''' تا کنون بیش از ۲۰ سال میگذرد و این وبگاه هم اکنون (امرداد ۱۴۰۵) در رتبه ۱۸ قرار دارد. پروژه ویکیکتاب هر نوع کتابی را میزبانی نمیکند، به طور کلی ویکیکتاب فارسی را میتوان شامل چهار بخش تعلیمی، راهنماها (کاتالوگ)، کودک و نوجوان و آشپزی دانست. کتابها و درسنامههای تعلیمی (آموزشی) میتواند شامل درسنامههای دانشگاهی و دانشآموزی، کتاب حل تمرین (حل المسائل)، گزارش کار آزمایشگاه، نمونه سوالات امتحانی، الخ باشد. زیر پروژههای ویکیکودک، ویکیراهنما، ویکیمدرسه، ویکیجزوه و ویکیآشپزی نیز در ویکیکتاب وجود دارند.
<center>
[https://fa.wikibooks.org/wiki/صفحهٔ_اصلی صفحه اصلی ویکیکتاب]{{•}} [https://fa.wikibooks.org/wiki/موضوع:کتابها_بر_اساس_موضوع کتابهای ویکیکتاب فارسی]{{•}} [https://fa.wikibooks.org/wiki/ویکیکتاب:میز_تحریر میز تحریر]
</center>
</div>
--[[کاربر:Vivairan2|Vivairan2]] ([[بحث کاربر:Vivairan2|بحث]]) ۲۶ ژوئیهٔ ۲۰۲۶، ساعت ۲۱:۰۵ (UTC)
== بسته شده پروژه ویکیخبر ==
ویکیخبر پس از رایگیری از جامعه کاربری و غیرکاربری آن برای همیشه بسته شد. عمده ایرادهایی که به این پروژه وارد بود عبارت بود از مشارکت کم، قابل استفاده نبودن محتوای وبگاه در دیگر وبگاههای ویکیمدیا، بهروز نبودن خبرها، پایین بودن تقاضا توسط کاربران برای ویکیخبر در موتورهای جستجو، استفاده از ربات برای تولید محتوا در چند زبان، ... [[کاربر:Vivairan2|Vivairan2]] ([[بحث کاربر:Vivairan2|بحث]]) ۱ سپتامبر ۲۰۲۶، ساعت ۲۱:۲۰ (UTC)
== درخواست جدید برای مدیریت ویکیکتاب ==
[[ویکیکتاب:درخواستهای مدیر شدن#درخواست مدیر شدن، vivairan|درخواست مدیر شدن، vivairan]] [[کاربر:Vivairan2|Vivairan2]] ([[بحث کاربر:Vivairan2|بحث]]) ۱۱ سپتامبر ۲۰۲۶، ساعت ۱۲:۲۴ (UTC)
== ویکی شما به زودی در حالت فقط خواندن قرار خواهد گرفت ==
<section begin="server-switch"/><div class="plainlinks">
[[:m:Special:MyLanguage/Tech/Server switch|این خبرنامه را در زبان دیگری بخوانید]] • [https://meta.wikimedia.org/w/index.php?title=Special:Translate&group=page-Tech%2FServer+switch&language=&action=page&filter= {{int:please-translate}}]
[[foundation:|بنیاد ویکیمدیا]] ترافیک را بین مراکز دادهاش جابهجا خواهد کرد. این کار باعث میشود که ویکیپدیا و دیگر ویکیهای ویکیمدیا حتی پس از یک فاجعه آنلاین بمانند.
تمام ترافیک در '''{{#time:j xg|2026-09-23|fa}}''' جابهجا خواهد شد. جابهجایی از ساعت '''[https://zonestamp.toolforge.org/{{#time:U|2026-09-23T14:00|en}} {{#time:H:i e|2026-09-23T14:00}}]''' آغاز خواهد شد.
متأسفانه، به دلیل برخی محدودیتها در [[mw:Special:MyLanguage/Manual:What is MediaWiki?|مدیاویکی]]، تمام ویرایشها باید در هنگام جابهجایی متوقف شوند. بابت این اختلال پوزش میطلبیم و در تلاش هستیم که آن را در آینده به حداقل برسانیم.
یک بنر ۳۰ دقیقه پیش از انجام این عملیات در تمام ویکیها نمایش داده خواهد شد. این بنر تا پایان عملیات قابل مشاهده خواهد بود.
<span lang="en" dir="ltr" class="mw-content-ltr">You can contribute to the [https://meta.wikimedia.org/w/index.php?title=Special%3ATranslate&group=Centralnotice-tgroup-read_only_banner&task=view&language=&filter=&action=translate translation or proofreading] of this banner text.</span>
'''شما قادر خواهید بود تمام ویکیها را بخوانید، اما برای مدت کوتاهی امکان ویرایش نخواهید داشت.'''
* تا یک ساعت در '''{{#time:l j xg Y|2026-09-23|fa}}''' قادر به ویرایش نخواهید بود.
* اگر در این مدت تلاش کنید ویرایش کنید یا تغییرات را ذخیره نمایید، یک پیام خطا مشاهده خواهید کرد. امیدواریم که در این دقایق هیچ ویرایشی از دست نرود، اما نمیتوانیم آن را تضمین کنیم. اگر پیام خطا را مشاهده کردید، لطفاً منتظر بمانید تا همه چیز به حالت عادی بازگردد. پس از آن باید بتوانید ویرایش خود را ذخیره کنید. اما توصیه میکنیم که برای احتیاط، ابتدا یک نسخه از تغییرات خود تهیه کنید.
''تأثیرات دیگر:''
* وظایف پسزمینه کندتر اجرا خواهند شد و برخی ممکن است حذف شوند. پیوندهای قرمز ممکن است به سرعت معمول بهروز نشوند. اگر مقالهای ایجاد کنید که قبلاً در جای دیگری پیوند داده شده است، پیوند آن بیشتر از حد معمول قرمز خواهد ماند. برخی اسکریپتهای بلندمدت باید متوقف شوند.
* انتظار داریم که استقرار کد مانند هر هفتهٔ دیگر انجام شود. با این حال، در برخی موارد، در صورت لزوم، مسدودسازی موقتی کد ممکن است بهصورت موردی انجام شود.
* [[mw:Special:MyLanguage/GitLab|گیتلب]] برای حدود ۹۰ دقیقه در دسترس نخواهد بود.
این پروژه در صورت لزوم ممکن است به تعویق بیفتد. میتوانید [[wikitech:Switch_Datacenter|برنامهٔ زمانی را در wikitech.wikimedia.org بخوانید]]. هرگونه تغییر در برنامهٔ زمانی اعلام خواهد شد.
'''لطفاً این اطلاعات را با جامعهٔ خود به اشتراک بگذارید.'''</div><section end="server-switch"/>
[[m:user:Trizek (WMF)|Trizek (WMF)]] ۱۵ سپتامبر ۲۰۲۶، ساعت ۱۲:۵۸ (UTC)
<!-- پیام توسط کاربر:Trizek (WMF)@metawiki با استفاده از فهرست در https://meta.wikimedia.org/w/index.php?title=Distribution_list/Non-Technical_Village_Pumps_distribution_list&oldid=30513874 ارسال شده است -->
== Your feedback wanted: Remove ''(Language link added:) and similar'' edits from Special:RecentChanges ==
''(Apologies for posting in English. You can help by translating it)''
Hello, I’m Danny from [[:en:w:Wikimedia_Deutschland|Wikimedia Deutschland’s]] [[m:Wikidata_For_Wikimedia_Projects|Wikidata For Wikimedia Projects]] team.<br/>
We have been investigating and examining how Wikidata’s use in the [[Special:RecentChanges]] and [[Special:Watchlist]] pages can be made to be more useful, or less ‘noisy’ (fewer edits that have little value to the reader).
We are currently exploring to make a change in the volume and the type of Wikidata edits that appear in these pages, and '''we need your feedback''' to help us ensure this is a positive change for the Wikis and won’t disrupt your workflows.<br/>
Language links are also known as sitelinks or interlanguage links and describe when a Wikidata item is connected to a Wiki, adding it to the language dropdown tool for other connected Wikis.
[[File:Types of Lang Link changes.png|x350px|frame|A variety of "Language Link" edits as seen in the Recent Changes feed]]
The request for feedback is whether you support the removal of these language link edits from the Recent Changes and Watchlist feed, or would you oppose such a change and if so, why?
Please share you thoughts on the dedicated '''[[m:Talk:Wikidata_For_Wikimedia_Projects/Clearer_Wikidata_Edit_Summaries/Hide_Language_Link_edits|metawiki Talk page]]'''.
Further information about this change: [[m:Wikidata_For_Wikimedia_Projects/Clearer_Wikidata_Edit_Summaries/Hide_Language_Link_edits|m:Wikidata_For_Wikimedia_Projects/Hide_Language_Link_edits]]
Thank you for any participation or feedback you give, -- [[m:User:Danny_Benjafield_(WMDE)|User:Danny Benjafield (WMDE)]] ۲۵ سپتامبر ۲۰۲۶، ساعت ۱۱:۴۶ (UTC)
<!-- پیام توسط کاربر:Danny Benjafield (WMDE)@metawiki با استفاده از فهرست در https://meta.wikimedia.org/w/index.php?title=User:Danny_Benjafield_(WMDE)/MassMessage_test_list&oldid=31080832 ارسال شده است -->
9ms6728fkl0ge7y4yy33mrunhpmta7n
ویکیکتاب:ره
4
42156
135321
2026-09-29T08:28:49Z
Fwldom
26269
تغییرمسیر به [[ویکیکتاب:سیاستها و رهنمودها]]
135321
wikitext
text/x-wiki
#تغییر_مسیر [[ویکیکتاب: سیاستها و رهنمودها]]
kj3pus26ujw1oes7c5wiou72y6caxuo
ویکیکودک:دایناسورها/اسپاینوسور
110
42157
135329
2026-09-29T08:38:52Z
Vivairan2
28134
صفحهای تازه حاوی «اسپاینوسور از تبارشاخه ددپایان است. این دایناسور در دوره کرتاسه در شمال آفریقا زندگی میکرد. ==آنها شبیه به چه چیزی بودند؟== [[رده:دایناسورها]]» ایجاد کرد
135329
wikitext
text/x-wiki
اسپاینوسور از تبارشاخه ددپایان است. این دایناسور در دوره کرتاسه در شمال آفریقا زندگی میکرد.
==آنها شبیه به چه چیزی بودند؟==
[[رده:دایناسورها]]
7v18pyku6o5zef2j7wng02g6l8mlr2z
135330
135329
2026-09-29T08:40:43Z
Vivairan2
28134
افزودن مطلب جدید
135330
wikitext
text/x-wiki
اسپاینوسور از تبارشاخه ددپایان است. این دایناسور در دوره کرتاسه در شمال آفریقا زندگی میکرد.
== آنها شبیه به چه چیزی بودند؟ ==
اسپاینوسورها ۱۵ متر طول و ۴ متر قد داشتند که ۲ متر دیگر هم به دلیل بال پشتی شان افزوده میشد.
[[رده:دایناسورها]]
7drvk30lgme0h7ufkugka1eb00hqr84
زبان برنامهنویسی گو/شرطها
0
42158
135332
2026-09-29T08:48:52Z
Fwldom
26269
اصلاح ارقام، اصلاح نویسه، اصلاح فاصلهٔ مجازی، اصلاح نویسههای عربی، اصلاح املا، اصلاح سجاوندی، ابرابزار
135332
wikitext
text/x-wiki
= شرطها در گو =
در برنامهنویسی لازم است برنامه بر اساس یک وضعیت یا یک شرط، تصمیم متفاوتی بگیرد. برای مثال، میتوان بررسی کرد که آیا یک عدد مثبت است یا منفی، آیا کاربر به سن مشخصی رسیده است، یا آیا یک رمز عبور صحیح وارد شده است.
در زبان برنامهنویسی گو، برای اجرای دستورات بهصورت شرطی از دستورهای '''if'''، '''else if''' و '''else''' استفاده میشود. همچنین گو دارای دستور '''switch''' برای بررسی چند حالت مختلف است.
در این صفحه با ساختار شرطها، عملگرهای مقایسهای و منطقی، شرطهای تو در تو، دستور switch و نکات مهم مربوط به شرطها در گو آشنا میشوید.
== شرط if ==
سادهترین شکل شرط در گو، دستور '''if''' است. اگر عبارت شرطی مقدار '''true''' داشته باشد، دستورات داخل بلوک اجرا میشوند و اگر مقدار آن '''false''' باشد، این دستورات اجرا نمیشوند.
ساختار کلی:
<syntaxhighlight lang="go">
if شرط {
// دستورها
}
</syntaxhighlight>
برای مثال:
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
age := 20
if age >= 18 {
fmt.Println("شما بزرگسال هستید.")
}
} </syntaxhighlight>
در این مثال ابتدا متغیر '''age''' برابر ۲۰ قرار گرفته است. سپس شرط '''age >= ۱۸''' بررسی میشود. چون این شرط درست است، پیام داخل بلوک '''if''' چاپ خواهد شد.
=== آکولادها در if ===
در گو، آکولادهای '''{''' و '''}''' بخشی از ساختار دستور '''if''' هستند و باید استفاده شوند. برخلاف بعضی زبانها، نمیتوان بدنهٔ شرط را بدون آکولاد نوشت.
نمونهٔ صحیح:
<syntaxhighlight lang="go">
if age >= 18 {
fmt.Println("Adult")
}
</syntaxhighlight>
* بیشتر بخوانید: [[زبان برنامهنویسی گو/بلوکهای کد|بلوکهای کد]]
== شرط if و else ==
اگر بخواهیم در صورت نادرست بودن شرط، دستور دیگری اجرا شود، از '''else''' استفاده میکنیم.
ساختار:
<syntaxhighlight lang="go">
if شرط {
// اگر شرط درست باشد
} else {
// اگر شرط نادرست باشد
}
</syntaxhighlight>
مثال:
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
number := 7
if number > 0 {
fmt.Println("عدد مثبت است.")
} else {
fmt.Println("عدد مثبت نیست.")
}
} </syntaxhighlight>
در این مثال چون مقدار '''number''' برابر ۷ است، شرط '''number > 0''' درست است و پیام اول نمایش داده میشود.
== شرط else if ==
گاهی لازم است چند شرط مختلف را بهترتیب بررسی کنیم. در این حالت میتوان از '''else if''' استفاده کرد.
مثال:
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
number := -5
if number > 0 {
fmt.Println("مثبت")
} else if number < 0 {
fmt.Println("منفی")
} else {
fmt.Println("صفر")
}
} </syntaxhighlight>
برنامه شرطها را از بالا به پایین بررسی میکند. به محض اینکه یکی از شرطها درست باشد، بلوک مربوط به آن اجرا میشود و شرطهای بعدی بررسی نمیشوند.
در این مثال:
# ابتدا بررسی میشود که آیا عدد بزرگتر از صفر است.
# سپس بررسی میشود که آیا عدد کوچکتر از صفر است.
# اگر هیچکدام درست نباشند، عدد باید صفر باشد.
== عملگرهای مقایسهای ==
برای ساختن شرطها معمولاً از عملگرهای مقایسهای استفاده میشود.
* بیشتر بخوانید: [[زبان برنامهنویسی گو/عملگرها و عبارات|عملگرها و عبارات]]
برای مثال:
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
a := 10
b := 20
if a < b {
fmt.Println("a کوچکتر از b است.")
}
} </syntaxhighlight>
=== تفاوت == و = ===
یکی از اشتباههای رایج هنگام نوشتن شرط این است که '''=''' با '''==''' اشتباه گرفته شود.
علامت '''=''' برای انتساب مقدار استفاده میشود:
<syntaxhighlight lang="go">
age := 20
age = 21
</syntaxhighlight>
اما '''==''' برای مقایسهٔ دو مقدار استفاده میشود:
<syntaxhighlight lang="go">
if age == 21 {
fmt.Println("سن برابر ۲۱ است.")
}
</syntaxhighlight>
بنابراین این دو عمل متفاوتی انجام میدهند.
== عملگرهای منطقی ==
برای ترکیب چند شرط میتوان از عملگرهای منطقی استفاده کرد.
=== عملگر AND یا ===
عملگر '''&&''' زمانی مقدار '''true''' دارد که هر دو شرط درست باشند.
مثال:
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
age := 20
hasCard := true
if age >= 18 && hasCard {
fmt.Println("ورود مجاز است.")
}
} </syntaxhighlight>
در اینجا هر دو شرط باید درست باشند:
* سن باید حداقل ۱۸ باشد.
* مقدار '''hasCard''' باید '''true''' باشد.
=== عملگر OR یا || ===
عملگر '''||''' زمانی '''true''' است که حداقل یکی از شرطها درست باشد.
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
day := "Friday"
if day == "Friday" || day == "Saturday" {
fmt.Println("تعطیل است.")
}
} </syntaxhighlight>
در این مثال اگر روز جمعه یا شنبه باشد، شرط درست خواهد بود.
=== عملگر NOT یا! ===
عملگر '''!''' نتیجهٔ یک مقدار منطقی را معکوس میکند.
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
isLocked := false
if !isLocked {
fmt.Println("در باز است.")
}
} </syntaxhighlight>
چون مقدار '''isLocked''' برابر '''false''' است، مقدار '''!isLocked''' برابر '''true''' خواهد بود.
== ترکیب چند شرط ==
میتوان چند عملگر منطقی را در یک شرط استفاده کرد.
برای مثال:
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
age := 25
score := 85
if age >= 18 && score >= 60 {
fmt.Println("شرایط قبول شدن را دارید.")
} else {
fmt.Println("شرایط قبول شدن را ندارید.")
}
} </syntaxhighlight>
هنگام ترکیب شرطهای پیچیده، استفاده از پرانتز میتواند خوانایی برنامه را افزایش دهد.
<syntaxhighlight lang="go">
if (age >= 18 && score >= 60) || isAdmin {
fmt.Println("دسترسی مجاز است.")
}
</syntaxhighlight>
== مقداردهی در خود if ==
یکی از ویژگیهای مهم گو این است که میتوان یک دستور ساده را قبل از شرط و در همان عبارت '''if''' قرار داد.
ساختار:
<syntaxhighlight lang="go">
if مقداردهی; شرط {
// دستورها
}
</syntaxhighlight>
برای مثال:
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
if number := 10; number > 0 {
fmt.Println("عدد مثبت است.")
}
} </syntaxhighlight>
در این مثال متغیر '''number''' در بخش آغازین '''if''' ساخته شده است.
محدودهٔ این متغیر به شرط و بلوکهای مرتبط با همان '''if''' محدود میشود؛ بنابراین نمیتوان بعد از پایان این ساختار از '''number''' استفاده کرد.
مثال:
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
if number := 10; number > 0 {
fmt.Println(number)
}
// اینجا number قابل استفاده نیست.
} </syntaxhighlight>
این قابلیت زمانی مفید است که یک مقدار فقط برای بررسی یک شرط مورد نیاز باشد.
== شرطهای تو در تو ==
میتوان یک '''if''' را داخل '''if''' دیگری قرار داد. به این ساختار شرط تو در تو یا '''nested if''' گفته میشود.
مثال:
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
age := 20
hasTicket := true
if age >= 18 {
if hasTicket {
fmt.Println("ورود مجاز است.")
}
}
} </syntaxhighlight>
در این مثال ابتدا سن بررسی میشود و سپس در صورت بزرگسال بودن، داشتن بلیت بررسی میشود.
البته در بسیاری از موارد میتوان چنین کدی را سادهتر نوشت:
<syntaxhighlight lang="go">
if age >= 18 && hasTicket {
fmt.Println("ورود مجاز است.")
}
</syntaxhighlight>
بنابراین باید بین خوانایی و پیچیدگی شرطها تعادل برقرار کرد.
== دستور switch ==
وقتی چند مقدار یا حالت مشخص داریم، استفادهٔ زیاد از '''else if''' میتواند کد را طولانی کند. برای چنین مواردی '''switch''' گزینهٔ مناسبی است.
ساختار ساده:
<syntaxhighlight lang="go">
switch مقدار {
case مقدار۱:
// دستورها
case مقدار۲:
// دستورها
default:
// اگر هیچ case ای مطابقت نداشت
}
</syntaxhighlight>
مثال:
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
day := 2
switch day {
case 1:
fmt.Println("شنبه")
case 2:
fmt.Println("یکشنبه")
case 3:
fmt.Println("دوشنبه")
default:
fmt.Println("روز نامعتبر")
}
} </syntaxhighlight>
در این مثال مقدار '''day''' با مقدارهای مختلف در '''case''' مقایسه میشود.
=== default در switch ===
بخش '''default''' اختیاری است و زمانی اجرا میشود که هیچیک از '''case'''ها مطابقت نداشته باشند.
<syntaxhighlight lang="go">
switch number {
case 1:
fmt.Println("یک")
case 2:
fmt.Println("دو")
default:
fmt.Println("عدد دیگری")
}
</syntaxhighlight>
== چند مقدار در یک case ==
در گو میتوان چند مقدار را در یک '''case''' قرار داد.
برای مثال:
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
day := "Friday"
switch day {
case "Friday", "Saturday":
fmt.Println("تعطیل")
default:
fmt.Println("روز کاری")
}
} </syntaxhighlight>
اگر مقدار '''day''' برابر هرکدام از دو مقدار مشخصشده باشد، همان بخش اجرا میشود.
== switch بدون عبارت ==
در گو میتوان '''switch''' را بدون قرار دادن یک عبارت بعد از کلمهٔ '''switch''' نوشت. در این حالت هر '''case''' میتواند یک شرط منطقی باشد.
مثال:
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
score := 75
switch {
case score >= 90:
fmt.Println("عالی")
case score >= 70:
fmt.Println("خوب")
case score >= 50:
fmt.Println("قبول")
default:
fmt.Println("مردود")
}
} </syntaxhighlight>
این روش در مواردی که چند شرط مختلف داریم میتواند خوانایی خوبی داشته باشد.
== break در switch ==
در بسیاری از زبانها پس از اجرای یک '''case''' در '''switch''' باید از '''break''' برای جلوگیری از اجرای case بعدی استفاده کرد.
در گو، رفتار پیشفرض '''switch''' این است که پس از اجرای case منطبقشده، اجرای switch پایان پیدا میکند؛ بنابراین معمولاً نیازی به نوشتن '''break''' نیست.
مثال:
<syntaxhighlight lang="go">
switch number {
case 1:
fmt.Println("یک")
case 2:
fmt.Println("دو")
case 3:
fmt.Println("سه")
}
</syntaxhighlight>
اگر '''number''' برابر ۲ باشد، فقط بخش مربوط به '''case 2''' اجرا میشود.
== استفاده از fallthrough ==
اگر بخواهیم اجرای برنامه از یک '''case''' به '''case''' بعدی ادامه پیدا کند، میتوان از '''fallthrough''' استفاده کرد.
مثال:
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
number := 1
switch number {
case 1:
fmt.Println("case 1")
fallthrough
case 2:
fmt.Println("case 2")
default:
fmt.Println("default")
}
} </syntaxhighlight>
در این مثال، با توجه به وجود '''fallthrough'''، پس از اجرای '''case 1'''، بخش '''case 2''' نیز اجرا میشود.
'''fallthrough''' باید با دقت استفاده شود، زیرا منطق معمول '''switch''' در گو این است که پس از اجرای یک case، از switch خارج شویم.
== مقایسهٔ if و switch ==
هر دو ساختار برای تصمیمگیری در برنامه استفاده میشوند، اما کاربرد آنها همیشه یکسان نیست.
'''if''' معمولاً برای بررسی شرایط و روابط منطقی مناسب است:
<syntaxhighlight lang="go">
if age >= 18 && hasTicket {
fmt.Println("ورود مجاز است.")
}
</syntaxhighlight>
'''switch''' زمانی میتواند مناسب باشد که یک مقدار را با چند حالت مختلف مقایسه کنیم:
<syntaxhighlight lang="go">
switch command {
case "start":
fmt.Println("شروع")
case "stop":
fmt.Println("توقف")
case "pause":
fmt.Println("مکث")
}
</syntaxhighlight>
برای شرطهای پیچیده و وابسته به چند رابطهٔ منطقی، '''if''' معمولاً انتخاب طبیعیتری است. برای چند حالت مشخص و مجزا، '''switch''' میتواند کد را خواناتر کند.
== مثال کامل: تشخیص نمره ==
در مثال زیر نمرهٔ یک دانشآموز بررسی میشود.
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
score := 82
if score < 0 || score > 100 {
fmt.Println("نمره نامعتبر است.")
} else if score >= 90 {
fmt.Println("عالی")
} else if score >= 80 {
fmt.Println("خیلی خوب")
} else if score >= 70 {
fmt.Println("خوب")
} else if score >= 60 {
fmt.Println("قابل قبول")
} else {
fmt.Println("مردود")
}
} </syntaxhighlight>
در این برنامه ابتدا معتبر بودن نمره بررسی میشود. سپس نمره از مقدارهای بالاتر به پایینتر بررسی میشود.
== مثال کامل: بررسی دسترسی کاربر ==
فرض کنید یک برنامه باید بر اساس سن و وضعیت حساب کاربر تصمیم بگیرد.
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
age := 21
active := true
if age >= 18 && active {
fmt.Println("دسترسی مجاز است.")
} else if !active {
fmt.Println("حساب کاربر فعال نیست.")
} else {
fmt.Println("کاربر به سن مجاز نرسیده است.")
}
} </syntaxhighlight>
در این مثال:
* اگر سن حداقل ۱۸ سال و حساب فعال باشد، دسترسی داده میشود.
* اگر حساب فعال نباشد، پیام مربوط به غیرفعال بودن حساب نمایش داده میشود.
* در غیر این صورت، کاربر به سن مورد نیاز نرسیده است.
== اشتباههای رایج ==
=== اشتباه در استفاده از = و == ===
برای مقایسه باید از '''==''' استفاده شود.
نمونهٔ درست:
<syntaxhighlight lang="go">
if x == 10 {
fmt.Println("x برابر 10 است.")
}
</syntaxhighlight>
=== فراموش کردن آکولادها ===
بدنهٔ شرط باید داخل آکولاد قرار بگیرد:
<syntaxhighlight lang="go">
if x > 0 {
fmt.Println("مثبت")
}
</syntaxhighlight>
=== پیچیده کردن بیش از حد شرطها ===
گاهی یک شرط بسیار طولانی نوشته میشود که خواندن آن دشوار است. در چنین شرایطی بهتر است منطق برنامه به قسمتهای سادهتر تقسیم شود یا از متغیرهای توضیحی استفاده شود.
برای مثال:
<syntaxhighlight lang="go">
isAdult := age >= 18
hasPermission := permission == "admin"
if isAdult && hasPermission {
fmt.Println("دسترسی مجاز است.")
} </syntaxhighlight>
این روش میتواند معنای شرط را واضحتر کند.
=== ترتیب نامناسب شرطها ===
در زنجیرهٔ '''if''' و '''else if''' ترتیب شرطها اهمیت دارد.
مثال:
<syntaxhighlight lang="go">
score := 95
if score >= 50 {
fmt.Println("قبول")
} else if score >= 90 {
fmt.Println("عالی")
} </syntaxhighlight>
در این مثال شرط اول برای نمرهٔ ۹۵ درست است؛ بنابراین شرط دوم هرگز اجرا نمیشود.
اگر هدف این باشد که نمرههای ۹۰ به بالا «عالی» محسوب شوند، ترتیب باید اصلاح شود:
<syntaxhighlight lang="go">
if score >= 90 {
fmt.Println("عالی")
} else if score >= 50 {
fmt.Println("قبول")
} else {
fmt.Println("مردود")
}
</syntaxhighlight>
== نکات مهم ==
* شرطها در گو بر اساس مقدارهای '''true''' و '''false''' تصمیمگیری میکنند.
* برای مقایسه از عملگرهایی مانند '''==''', '''!=''', '''>''', '''<''', '''>=''' و '''<=''' استفاده میشود.
* برای ترکیب شرطها از '''&&''', '''||''' و '''!''' استفاده میشود.
* در گو میتوان در ابتدای '''if''' یک متغیر محلی تعریف کرد.
* متغیری که در ابتدای '''if''' تعریف میشود، محدودهٔ محدودی دارد.
* '''else''' باید در همان ساختار '''if''' قرار داشته باشد.
* در '''switch''' معمولاً نیازی به '''break''' نیست.
* '''fallthrough''' برای ادامه دادن اجرای یک case به case بعدی استفاده میشود.
* برای چند حالت مشخص، '''switch''' میتواند خوانایی بیشتری نسبت به زنجیرهٔ طولانی '''else if''' داشته باشد.
* شرطهای پیچیده بهتر است تا حد امکان خوانا و قابل فهم نوشته شوند.
== تمرینها ==
=== تمرین ۱: مثبت، منفی یا صفر ===
برنامهای بنویسید که یک عدد صحیح را دریافت کند و مشخص کند:
* عدد مثبت است.
* عدد منفی است.
* یا صفر است.
'''راهنما:''' از '''if'''، '''else if''' و '''else''' استفاده کنید.
=== تمرین ۲: تشخیص زوج یا فرد ===
برنامهای بنویسید که مشخص کند یک عدد زوج است یا فرد.
'''راهنما:''' از عملگر باقیماندهٔ تقسیم '''%''' استفاده کنید.
برای مثال:
<syntaxhighlight lang="go">
number%2 == 0
</syntaxhighlight>
اگر این شرط درست باشد، عدد زوج است.
=== تمرین ۳: بررسی سن ===
برنامهای بنویسید که متغیر '''age''' را بررسی کند:
* کمتر از ۱۳: کودک
* از ۱۳ تا کمتر از ۱۸: نوجوان
* ۱۸ سال یا بیشتر: بزرگسال
=== تمرین ۴: سیستم نمرهدهی ===
برنامهای بنویسید که یک نمره از ۰ تا ۱۰۰ دریافت کند و نتیجهٔ زیر را نمایش دهد:
* ۹۰ تا ۱۰۰: عالی
* ۸۰ تا ۸۹: خیلی خوب
* ۷۰ تا ۷۹: خوب
* ۶۰ تا ۶۹: قابل قبول
* کمتر از ۶۰: مردود
* خارج از بازهٔ ۰ تا ۱۰۰: نمرهٔ نامعتبر
=== تمرین ۵: بررسی دسترسی ===
سه متغیر زیر را در نظر بگیرید:
<syntaxhighlight lang="go">
age := 22
hasAccount := true
isActive := true
</syntaxhighlight>
برنامهای بنویسید که فقط زمانی پیام '''دسترسی مجاز است''' را چاپ کند که کاربر حداقل ۱۸ سال داشته باشد، حساب داشته باشد و حساب او فعال باشد.
=== تمرین ۶: استفاده از switch ===
برنامهای بنویسید که عددی بین ۱ تا ۷ دریافت کند و نام روز مربوط به آن را نمایش دهد.
برای مثال:
<syntaxhighlight lang="go">
1 -> شنبه
2 -> یکشنبه
3 -> دوشنبه
</syntaxhighlight>
برای پیادهسازی این تمرین از '''switch''' استفاده کنید.
=== تمرین ۷: ماشین حساب ساده ===
دو عدد و یک عملگر مانند '''+'''، '''-'''، '''*''' یا '''/''' در نظر بگیرید. سپس با استفاده از '''switch''' عملیات مناسب را انجام دهید.
نمونهٔ ورودی:
<syntaxhighlight lang="go">
a := 20
b := 5
operator := "/"
</syntaxhighlight>
خروجی مورد انتظار:
<syntaxhighlight lang="text">
4
</syntaxhighlight>
=== تمرین ۸: تشخیص سال کبیسه ===
برنامهای بنویسید که یک سال را دریافت کند و مشخص کند آیا سال کبیسه است یا خیر.
'''راهنما:''' برای حل این تمرین باید بتوانید چند شرط منطقی را با '''&&''' و '''||''' ترکیب کنید.
== پاسخ نمونهٔ تمرینها ==
پاسخهای زیر فقط یک روش برای حل تمرینها هستند و ممکن است هر مسئله را بتوان با روشهای دیگری نیز حل کرد.
=== پاسخ تمرین ۱ ===
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
number := -8
if number > 0 {
fmt.Println("مثبت")
} else if number < 0 {
fmt.Println("منفی")
} else {
fmt.Println("صفر")
}
} </syntaxhighlight>
=== پاسخ تمرین ۲ ===
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
number := 17
if number%2 == 0 {
fmt.Println("زوج")
} else {
fmt.Println("فرد")
}
} </syntaxhighlight>
=== پاسخ تمرین ۳ ===
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
age := 16
if age < 13 {
fmt.Println("کودک")
} else if age < 18 {
fmt.Println("نوجوان")
} else {
fmt.Println("بزرگسال")
}
} </syntaxhighlight>
=== پاسخ تمرین ۶ ===
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
day := 4
switch day {
case 1:
fmt.Println("شنبه")
case 2:
fmt.Println("یکشنبه")
case 3:
fmt.Println("دوشنبه")
case 4:
fmt.Println("سهشنبه")
case 5:
fmt.Println("چهارشنبه")
case 6:
fmt.Println("پنجشنبه")
case 7:
fmt.Println("جمعه")
default:
fmt.Println("روز نامعتبر")
}
} </syntaxhighlight>
=== پاسخ تمرین ۷ ===
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
a := 20
b := 5
operator := "/"
switch operator {
case "+":
fmt.Println(a + b)
case "-":
fmt.Println(a - b)
case "*":
fmt.Println(a * b)
case "/":
if b != 0 {
fmt.Println(a / b)
} else {
fmt.Println("تقسیم بر صفر مجاز نیست.")
}
default:
fmt.Println("عملگر نامعتبر است.")
}
} </syntaxhighlight>
== جمعبندی ==
شرطها یکی از پایهایترین بخشهای برنامهنویسی هستند و به برنامه اجازه میدهند بر اساس وضعیت دادهها تصمیمگیری کند. در گو برای این کار میتوان از '''if'''، '''else if''' و '''else''' استفاده کرد. برای ترکیب شرایط نیز عملگرهای '''&&'''، '''||''' و '''!''' در دسترس هستند.
هنگامی که برنامه باید میان چند حالت مشخص انتخاب کند، '''switch''' میتواند ساختار مناسبتری ایجاد کند. همچنین گو امکان تعریف یک متغیر در ابتدای عبارت '''if''' و استفاده از '''switch''' بدون عبارت را فراهم میکند.
تسلط بر شرطها برای یادگیری مباحث بعدی مانند [[حلقهها در گو]]، [[توابع در گو]] و [[ساختارهای داده در گو]] ضروری است.
or79unfdypfifsge7gy5yun0wrr9eta
135333
135332
2026-09-29T08:49:22Z
Fwldom
26269
/* پاسخ نمونهٔ تمرینها */
135333
wikitext
text/x-wiki
= شرطها در گو =
در برنامهنویسی لازم است برنامه بر اساس یک وضعیت یا یک شرط، تصمیم متفاوتی بگیرد. برای مثال، میتوان بررسی کرد که آیا یک عدد مثبت است یا منفی، آیا کاربر به سن مشخصی رسیده است، یا آیا یک رمز عبور صحیح وارد شده است.
در زبان برنامهنویسی گو، برای اجرای دستورات بهصورت شرطی از دستورهای '''if'''، '''else if''' و '''else''' استفاده میشود. همچنین گو دارای دستور '''switch''' برای بررسی چند حالت مختلف است.
در این صفحه با ساختار شرطها، عملگرهای مقایسهای و منطقی، شرطهای تو در تو، دستور switch و نکات مهم مربوط به شرطها در گو آشنا میشوید.
== شرط if ==
سادهترین شکل شرط در گو، دستور '''if''' است. اگر عبارت شرطی مقدار '''true''' داشته باشد، دستورات داخل بلوک اجرا میشوند و اگر مقدار آن '''false''' باشد، این دستورات اجرا نمیشوند.
ساختار کلی:
<syntaxhighlight lang="go">
if شرط {
// دستورها
}
</syntaxhighlight>
برای مثال:
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
age := 20
if age >= 18 {
fmt.Println("شما بزرگسال هستید.")
}
} </syntaxhighlight>
در این مثال ابتدا متغیر '''age''' برابر ۲۰ قرار گرفته است. سپس شرط '''age >= ۱۸''' بررسی میشود. چون این شرط درست است، پیام داخل بلوک '''if''' چاپ خواهد شد.
=== آکولادها در if ===
در گو، آکولادهای '''{''' و '''}''' بخشی از ساختار دستور '''if''' هستند و باید استفاده شوند. برخلاف بعضی زبانها، نمیتوان بدنهٔ شرط را بدون آکولاد نوشت.
نمونهٔ صحیح:
<syntaxhighlight lang="go">
if age >= 18 {
fmt.Println("Adult")
}
</syntaxhighlight>
* بیشتر بخوانید: [[زبان برنامهنویسی گو/بلوکهای کد|بلوکهای کد]]
== شرط if و else ==
اگر بخواهیم در صورت نادرست بودن شرط، دستور دیگری اجرا شود، از '''else''' استفاده میکنیم.
ساختار:
<syntaxhighlight lang="go">
if شرط {
// اگر شرط درست باشد
} else {
// اگر شرط نادرست باشد
}
</syntaxhighlight>
مثال:
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
number := 7
if number > 0 {
fmt.Println("عدد مثبت است.")
} else {
fmt.Println("عدد مثبت نیست.")
}
} </syntaxhighlight>
در این مثال چون مقدار '''number''' برابر ۷ است، شرط '''number > 0''' درست است و پیام اول نمایش داده میشود.
== شرط else if ==
گاهی لازم است چند شرط مختلف را بهترتیب بررسی کنیم. در این حالت میتوان از '''else if''' استفاده کرد.
مثال:
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
number := -5
if number > 0 {
fmt.Println("مثبت")
} else if number < 0 {
fmt.Println("منفی")
} else {
fmt.Println("صفر")
}
} </syntaxhighlight>
برنامه شرطها را از بالا به پایین بررسی میکند. به محض اینکه یکی از شرطها درست باشد، بلوک مربوط به آن اجرا میشود و شرطهای بعدی بررسی نمیشوند.
در این مثال:
# ابتدا بررسی میشود که آیا عدد بزرگتر از صفر است.
# سپس بررسی میشود که آیا عدد کوچکتر از صفر است.
# اگر هیچکدام درست نباشند، عدد باید صفر باشد.
== عملگرهای مقایسهای ==
برای ساختن شرطها معمولاً از عملگرهای مقایسهای استفاده میشود.
* بیشتر بخوانید: [[زبان برنامهنویسی گو/عملگرها و عبارات|عملگرها و عبارات]]
برای مثال:
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
a := 10
b := 20
if a < b {
fmt.Println("a کوچکتر از b است.")
}
} </syntaxhighlight>
=== تفاوت == و = ===
یکی از اشتباههای رایج هنگام نوشتن شرط این است که '''=''' با '''==''' اشتباه گرفته شود.
علامت '''=''' برای انتساب مقدار استفاده میشود:
<syntaxhighlight lang="go">
age := 20
age = 21
</syntaxhighlight>
اما '''==''' برای مقایسهٔ دو مقدار استفاده میشود:
<syntaxhighlight lang="go">
if age == 21 {
fmt.Println("سن برابر ۲۱ است.")
}
</syntaxhighlight>
بنابراین این دو عمل متفاوتی انجام میدهند.
== عملگرهای منطقی ==
برای ترکیب چند شرط میتوان از عملگرهای منطقی استفاده کرد.
=== عملگر AND یا ===
عملگر '''&&''' زمانی مقدار '''true''' دارد که هر دو شرط درست باشند.
مثال:
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
age := 20
hasCard := true
if age >= 18 && hasCard {
fmt.Println("ورود مجاز است.")
}
} </syntaxhighlight>
در اینجا هر دو شرط باید درست باشند:
* سن باید حداقل ۱۸ باشد.
* مقدار '''hasCard''' باید '''true''' باشد.
=== عملگر OR یا || ===
عملگر '''||''' زمانی '''true''' است که حداقل یکی از شرطها درست باشد.
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
day := "Friday"
if day == "Friday" || day == "Saturday" {
fmt.Println("تعطیل است.")
}
} </syntaxhighlight>
در این مثال اگر روز جمعه یا شنبه باشد، شرط درست خواهد بود.
=== عملگر NOT یا! ===
عملگر '''!''' نتیجهٔ یک مقدار منطقی را معکوس میکند.
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
isLocked := false
if !isLocked {
fmt.Println("در باز است.")
}
} </syntaxhighlight>
چون مقدار '''isLocked''' برابر '''false''' است، مقدار '''!isLocked''' برابر '''true''' خواهد بود.
== ترکیب چند شرط ==
میتوان چند عملگر منطقی را در یک شرط استفاده کرد.
برای مثال:
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
age := 25
score := 85
if age >= 18 && score >= 60 {
fmt.Println("شرایط قبول شدن را دارید.")
} else {
fmt.Println("شرایط قبول شدن را ندارید.")
}
} </syntaxhighlight>
هنگام ترکیب شرطهای پیچیده، استفاده از پرانتز میتواند خوانایی برنامه را افزایش دهد.
<syntaxhighlight lang="go">
if (age >= 18 && score >= 60) || isAdmin {
fmt.Println("دسترسی مجاز است.")
}
</syntaxhighlight>
== مقداردهی در خود if ==
یکی از ویژگیهای مهم گو این است که میتوان یک دستور ساده را قبل از شرط و در همان عبارت '''if''' قرار داد.
ساختار:
<syntaxhighlight lang="go">
if مقداردهی; شرط {
// دستورها
}
</syntaxhighlight>
برای مثال:
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
if number := 10; number > 0 {
fmt.Println("عدد مثبت است.")
}
} </syntaxhighlight>
در این مثال متغیر '''number''' در بخش آغازین '''if''' ساخته شده است.
محدودهٔ این متغیر به شرط و بلوکهای مرتبط با همان '''if''' محدود میشود؛ بنابراین نمیتوان بعد از پایان این ساختار از '''number''' استفاده کرد.
مثال:
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
if number := 10; number > 0 {
fmt.Println(number)
}
// اینجا number قابل استفاده نیست.
} </syntaxhighlight>
این قابلیت زمانی مفید است که یک مقدار فقط برای بررسی یک شرط مورد نیاز باشد.
== شرطهای تو در تو ==
میتوان یک '''if''' را داخل '''if''' دیگری قرار داد. به این ساختار شرط تو در تو یا '''nested if''' گفته میشود.
مثال:
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
age := 20
hasTicket := true
if age >= 18 {
if hasTicket {
fmt.Println("ورود مجاز است.")
}
}
} </syntaxhighlight>
در این مثال ابتدا سن بررسی میشود و سپس در صورت بزرگسال بودن، داشتن بلیت بررسی میشود.
البته در بسیاری از موارد میتوان چنین کدی را سادهتر نوشت:
<syntaxhighlight lang="go">
if age >= 18 && hasTicket {
fmt.Println("ورود مجاز است.")
}
</syntaxhighlight>
بنابراین باید بین خوانایی و پیچیدگی شرطها تعادل برقرار کرد.
== دستور switch ==
وقتی چند مقدار یا حالت مشخص داریم، استفادهٔ زیاد از '''else if''' میتواند کد را طولانی کند. برای چنین مواردی '''switch''' گزینهٔ مناسبی است.
ساختار ساده:
<syntaxhighlight lang="go">
switch مقدار {
case مقدار۱:
// دستورها
case مقدار۲:
// دستورها
default:
// اگر هیچ case ای مطابقت نداشت
}
</syntaxhighlight>
مثال:
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
day := 2
switch day {
case 1:
fmt.Println("شنبه")
case 2:
fmt.Println("یکشنبه")
case 3:
fmt.Println("دوشنبه")
default:
fmt.Println("روز نامعتبر")
}
} </syntaxhighlight>
در این مثال مقدار '''day''' با مقدارهای مختلف در '''case''' مقایسه میشود.
=== default در switch ===
بخش '''default''' اختیاری است و زمانی اجرا میشود که هیچیک از '''case'''ها مطابقت نداشته باشند.
<syntaxhighlight lang="go">
switch number {
case 1:
fmt.Println("یک")
case 2:
fmt.Println("دو")
default:
fmt.Println("عدد دیگری")
}
</syntaxhighlight>
== چند مقدار در یک case ==
در گو میتوان چند مقدار را در یک '''case''' قرار داد.
برای مثال:
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
day := "Friday"
switch day {
case "Friday", "Saturday":
fmt.Println("تعطیل")
default:
fmt.Println("روز کاری")
}
} </syntaxhighlight>
اگر مقدار '''day''' برابر هرکدام از دو مقدار مشخصشده باشد، همان بخش اجرا میشود.
== switch بدون عبارت ==
در گو میتوان '''switch''' را بدون قرار دادن یک عبارت بعد از کلمهٔ '''switch''' نوشت. در این حالت هر '''case''' میتواند یک شرط منطقی باشد.
مثال:
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
score := 75
switch {
case score >= 90:
fmt.Println("عالی")
case score >= 70:
fmt.Println("خوب")
case score >= 50:
fmt.Println("قبول")
default:
fmt.Println("مردود")
}
} </syntaxhighlight>
این روش در مواردی که چند شرط مختلف داریم میتواند خوانایی خوبی داشته باشد.
== break در switch ==
در بسیاری از زبانها پس از اجرای یک '''case''' در '''switch''' باید از '''break''' برای جلوگیری از اجرای case بعدی استفاده کرد.
در گو، رفتار پیشفرض '''switch''' این است که پس از اجرای case منطبقشده، اجرای switch پایان پیدا میکند؛ بنابراین معمولاً نیازی به نوشتن '''break''' نیست.
مثال:
<syntaxhighlight lang="go">
switch number {
case 1:
fmt.Println("یک")
case 2:
fmt.Println("دو")
case 3:
fmt.Println("سه")
}
</syntaxhighlight>
اگر '''number''' برابر ۲ باشد، فقط بخش مربوط به '''case 2''' اجرا میشود.
== استفاده از fallthrough ==
اگر بخواهیم اجرای برنامه از یک '''case''' به '''case''' بعدی ادامه پیدا کند، میتوان از '''fallthrough''' استفاده کرد.
مثال:
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
number := 1
switch number {
case 1:
fmt.Println("case 1")
fallthrough
case 2:
fmt.Println("case 2")
default:
fmt.Println("default")
}
} </syntaxhighlight>
در این مثال، با توجه به وجود '''fallthrough'''، پس از اجرای '''case 1'''، بخش '''case 2''' نیز اجرا میشود.
'''fallthrough''' باید با دقت استفاده شود، زیرا منطق معمول '''switch''' در گو این است که پس از اجرای یک case، از switch خارج شویم.
== مقایسهٔ if و switch ==
هر دو ساختار برای تصمیمگیری در برنامه استفاده میشوند، اما کاربرد آنها همیشه یکسان نیست.
'''if''' معمولاً برای بررسی شرایط و روابط منطقی مناسب است:
<syntaxhighlight lang="go">
if age >= 18 && hasTicket {
fmt.Println("ورود مجاز است.")
}
</syntaxhighlight>
'''switch''' زمانی میتواند مناسب باشد که یک مقدار را با چند حالت مختلف مقایسه کنیم:
<syntaxhighlight lang="go">
switch command {
case "start":
fmt.Println("شروع")
case "stop":
fmt.Println("توقف")
case "pause":
fmt.Println("مکث")
}
</syntaxhighlight>
برای شرطهای پیچیده و وابسته به چند رابطهٔ منطقی، '''if''' معمولاً انتخاب طبیعیتری است. برای چند حالت مشخص و مجزا، '''switch''' میتواند کد را خواناتر کند.
== مثال کامل: تشخیص نمره ==
در مثال زیر نمرهٔ یک دانشآموز بررسی میشود.
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
score := 82
if score < 0 || score > 100 {
fmt.Println("نمره نامعتبر است.")
} else if score >= 90 {
fmt.Println("عالی")
} else if score >= 80 {
fmt.Println("خیلی خوب")
} else if score >= 70 {
fmt.Println("خوب")
} else if score >= 60 {
fmt.Println("قابل قبول")
} else {
fmt.Println("مردود")
}
} </syntaxhighlight>
در این برنامه ابتدا معتبر بودن نمره بررسی میشود. سپس نمره از مقدارهای بالاتر به پایینتر بررسی میشود.
== مثال کامل: بررسی دسترسی کاربر ==
فرض کنید یک برنامه باید بر اساس سن و وضعیت حساب کاربر تصمیم بگیرد.
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
age := 21
active := true
if age >= 18 && active {
fmt.Println("دسترسی مجاز است.")
} else if !active {
fmt.Println("حساب کاربر فعال نیست.")
} else {
fmt.Println("کاربر به سن مجاز نرسیده است.")
}
} </syntaxhighlight>
در این مثال:
* اگر سن حداقل ۱۸ سال و حساب فعال باشد، دسترسی داده میشود.
* اگر حساب فعال نباشد، پیام مربوط به غیرفعال بودن حساب نمایش داده میشود.
* در غیر این صورت، کاربر به سن مورد نیاز نرسیده است.
== اشتباههای رایج ==
=== اشتباه در استفاده از = و == ===
برای مقایسه باید از '''==''' استفاده شود.
نمونهٔ درست:
<syntaxhighlight lang="go">
if x == 10 {
fmt.Println("x برابر 10 است.")
}
</syntaxhighlight>
=== فراموش کردن آکولادها ===
بدنهٔ شرط باید داخل آکولاد قرار بگیرد:
<syntaxhighlight lang="go">
if x > 0 {
fmt.Println("مثبت")
}
</syntaxhighlight>
=== پیچیده کردن بیش از حد شرطها ===
گاهی یک شرط بسیار طولانی نوشته میشود که خواندن آن دشوار است. در چنین شرایطی بهتر است منطق برنامه به قسمتهای سادهتر تقسیم شود یا از متغیرهای توضیحی استفاده شود.
برای مثال:
<syntaxhighlight lang="go">
isAdult := age >= 18
hasPermission := permission == "admin"
if isAdult && hasPermission {
fmt.Println("دسترسی مجاز است.")
} </syntaxhighlight>
این روش میتواند معنای شرط را واضحتر کند.
=== ترتیب نامناسب شرطها ===
در زنجیرهٔ '''if''' و '''else if''' ترتیب شرطها اهمیت دارد.
مثال:
<syntaxhighlight lang="go">
score := 95
if score >= 50 {
fmt.Println("قبول")
} else if score >= 90 {
fmt.Println("عالی")
} </syntaxhighlight>
در این مثال شرط اول برای نمرهٔ ۹۵ درست است؛ بنابراین شرط دوم هرگز اجرا نمیشود.
اگر هدف این باشد که نمرههای ۹۰ به بالا «عالی» محسوب شوند، ترتیب باید اصلاح شود:
<syntaxhighlight lang="go">
if score >= 90 {
fmt.Println("عالی")
} else if score >= 50 {
fmt.Println("قبول")
} else {
fmt.Println("مردود")
}
</syntaxhighlight>
== نکات مهم ==
* شرطها در گو بر اساس مقدارهای '''true''' و '''false''' تصمیمگیری میکنند.
* برای مقایسه از عملگرهایی مانند '''==''', '''!=''', '''>''', '''<''', '''>=''' و '''<=''' استفاده میشود.
* برای ترکیب شرطها از '''&&''', '''||''' و '''!''' استفاده میشود.
* در گو میتوان در ابتدای '''if''' یک متغیر محلی تعریف کرد.
* متغیری که در ابتدای '''if''' تعریف میشود، محدودهٔ محدودی دارد.
* '''else''' باید در همان ساختار '''if''' قرار داشته باشد.
* در '''switch''' معمولاً نیازی به '''break''' نیست.
* '''fallthrough''' برای ادامه دادن اجرای یک case به case بعدی استفاده میشود.
* برای چند حالت مشخص، '''switch''' میتواند خوانایی بیشتری نسبت به زنجیرهٔ طولانی '''else if''' داشته باشد.
* شرطهای پیچیده بهتر است تا حد امکان خوانا و قابل فهم نوشته شوند.
== تمرینها ==
=== تمرین ۱: مثبت، منفی یا صفر ===
برنامهای بنویسید که یک عدد صحیح را دریافت کند و مشخص کند:
* عدد مثبت است.
* عدد منفی است.
* یا صفر است.
'''راهنما:''' از '''if'''، '''else if''' و '''else''' استفاده کنید.
=== تمرین ۲: تشخیص زوج یا فرد ===
برنامهای بنویسید که مشخص کند یک عدد زوج است یا فرد.
'''راهنما:''' از عملگر باقیماندهٔ تقسیم '''%''' استفاده کنید.
برای مثال:
<syntaxhighlight lang="go">
number%2 == 0
</syntaxhighlight>
اگر این شرط درست باشد، عدد زوج است.
=== تمرین ۳: بررسی سن ===
برنامهای بنویسید که متغیر '''age''' را بررسی کند:
* کمتر از ۱۳: کودک
* از ۱۳ تا کمتر از ۱۸: نوجوان
* ۱۸ سال یا بیشتر: بزرگسال
=== تمرین ۴: سیستم نمرهدهی ===
برنامهای بنویسید که یک نمره از ۰ تا ۱۰۰ دریافت کند و نتیجهٔ زیر را نمایش دهد:
* ۹۰ تا ۱۰۰: عالی
* ۸۰ تا ۸۹: خیلی خوب
* ۷۰ تا ۷۹: خوب
* ۶۰ تا ۶۹: قابل قبول
* کمتر از ۶۰: مردود
* خارج از بازهٔ ۰ تا ۱۰۰: نمرهٔ نامعتبر
=== تمرین ۵: بررسی دسترسی ===
سه متغیر زیر را در نظر بگیرید:
<syntaxhighlight lang="go">
age := 22
hasAccount := true
isActive := true
</syntaxhighlight>
برنامهای بنویسید که فقط زمانی پیام '''دسترسی مجاز است''' را چاپ کند که کاربر حداقل ۱۸ سال داشته باشد، حساب داشته باشد و حساب او فعال باشد.
=== تمرین ۶: استفاده از switch ===
برنامهای بنویسید که عددی بین ۱ تا ۷ دریافت کند و نام روز مربوط به آن را نمایش دهد.
برای مثال:
<syntaxhighlight lang="go">
1 -> شنبه
2 -> یکشنبه
3 -> دوشنبه
</syntaxhighlight>
برای پیادهسازی این تمرین از '''switch''' استفاده کنید.
=== تمرین ۷: ماشین حساب ساده ===
دو عدد و یک عملگر مانند '''+'''، '''-'''، '''*''' یا '''/''' در نظر بگیرید. سپس با استفاده از '''switch''' عملیات مناسب را انجام دهید.
نمونهٔ ورودی:
<syntaxhighlight lang="go">
a := 20
b := 5
operator := "/"
</syntaxhighlight>
خروجی مورد انتظار:
<syntaxhighlight lang="text">
4
</syntaxhighlight>
=== تمرین ۸: تشخیص سال کبیسه ===
برنامهای بنویسید که یک سال را دریافت کند و مشخص کند آیا سال کبیسه است یا خیر.
'''راهنما:''' برای حل این تمرین باید بتوانید چند شرط منطقی را با '''&&''' و '''||''' ترکیب کنید.
== جمعبندی ==
شرطها یکی از پایهایترین بخشهای برنامهنویسی هستند و به برنامه اجازه میدهند بر اساس وضعیت دادهها تصمیمگیری کند. در گو برای این کار میتوان از '''if'''، '''else if''' و '''else''' استفاده کرد. برای ترکیب شرایط نیز عملگرهای '''&&'''، '''||''' و '''!''' در دسترس هستند.
هنگامی که برنامه باید میان چند حالت مشخص انتخاب کند، '''switch''' میتواند ساختار مناسبتری ایجاد کند. همچنین گو امکان تعریف یک متغیر در ابتدای عبارت '''if''' و استفاده از '''switch''' بدون عبارت را فراهم میکند.
تسلط بر شرطها برای یادگیری مباحث بعدی مانند [[حلقهها در گو]]، [[توابع در گو]] و [[ساختارهای داده در گو]] ضروری است.
178ieqlj9ux81dhg8tovhozuyag6fuy
135337
135333
2026-09-29T08:54:38Z
Fwldom
26269
/* تمرین ۸: تشخیص سال کبیسه */
135337
wikitext
text/x-wiki
= شرطها در گو =
در برنامهنویسی لازم است برنامه بر اساس یک وضعیت یا یک شرط، تصمیم متفاوتی بگیرد. برای مثال، میتوان بررسی کرد که آیا یک عدد مثبت است یا منفی، آیا کاربر به سن مشخصی رسیده است، یا آیا یک رمز عبور صحیح وارد شده است.
در زبان برنامهنویسی گو، برای اجرای دستورات بهصورت شرطی از دستورهای '''if'''، '''else if''' و '''else''' استفاده میشود. همچنین گو دارای دستور '''switch''' برای بررسی چند حالت مختلف است.
در این صفحه با ساختار شرطها، عملگرهای مقایسهای و منطقی، شرطهای تو در تو، دستور switch و نکات مهم مربوط به شرطها در گو آشنا میشوید.
== شرط if ==
سادهترین شکل شرط در گو، دستور '''if''' است. اگر عبارت شرطی مقدار '''true''' داشته باشد، دستورات داخل بلوک اجرا میشوند و اگر مقدار آن '''false''' باشد، این دستورات اجرا نمیشوند.
ساختار کلی:
<syntaxhighlight lang="go">
if شرط {
// دستورها
}
</syntaxhighlight>
برای مثال:
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
age := 20
if age >= 18 {
fmt.Println("شما بزرگسال هستید.")
}
} </syntaxhighlight>
در این مثال ابتدا متغیر '''age''' برابر ۲۰ قرار گرفته است. سپس شرط '''age >= ۱۸''' بررسی میشود. چون این شرط درست است، پیام داخل بلوک '''if''' چاپ خواهد شد.
=== آکولادها در if ===
در گو، آکولادهای '''{''' و '''}''' بخشی از ساختار دستور '''if''' هستند و باید استفاده شوند. برخلاف بعضی زبانها، نمیتوان بدنهٔ شرط را بدون آکولاد نوشت.
نمونهٔ صحیح:
<syntaxhighlight lang="go">
if age >= 18 {
fmt.Println("Adult")
}
</syntaxhighlight>
* بیشتر بخوانید: [[زبان برنامهنویسی گو/بلوکهای کد|بلوکهای کد]]
== شرط if و else ==
اگر بخواهیم در صورت نادرست بودن شرط، دستور دیگری اجرا شود، از '''else''' استفاده میکنیم.
ساختار:
<syntaxhighlight lang="go">
if شرط {
// اگر شرط درست باشد
} else {
// اگر شرط نادرست باشد
}
</syntaxhighlight>
مثال:
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
number := 7
if number > 0 {
fmt.Println("عدد مثبت است.")
} else {
fmt.Println("عدد مثبت نیست.")
}
} </syntaxhighlight>
در این مثال چون مقدار '''number''' برابر ۷ است، شرط '''number > 0''' درست است و پیام اول نمایش داده میشود.
== شرط else if ==
گاهی لازم است چند شرط مختلف را بهترتیب بررسی کنیم. در این حالت میتوان از '''else if''' استفاده کرد.
مثال:
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
number := -5
if number > 0 {
fmt.Println("مثبت")
} else if number < 0 {
fmt.Println("منفی")
} else {
fmt.Println("صفر")
}
} </syntaxhighlight>
برنامه شرطها را از بالا به پایین بررسی میکند. به محض اینکه یکی از شرطها درست باشد، بلوک مربوط به آن اجرا میشود و شرطهای بعدی بررسی نمیشوند.
در این مثال:
# ابتدا بررسی میشود که آیا عدد بزرگتر از صفر است.
# سپس بررسی میشود که آیا عدد کوچکتر از صفر است.
# اگر هیچکدام درست نباشند، عدد باید صفر باشد.
== عملگرهای مقایسهای ==
برای ساختن شرطها معمولاً از عملگرهای مقایسهای استفاده میشود.
* بیشتر بخوانید: [[زبان برنامهنویسی گو/عملگرها و عبارات|عملگرها و عبارات]]
برای مثال:
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
a := 10
b := 20
if a < b {
fmt.Println("a کوچکتر از b است.")
}
} </syntaxhighlight>
=== تفاوت == و = ===
یکی از اشتباههای رایج هنگام نوشتن شرط این است که '''=''' با '''==''' اشتباه گرفته شود.
علامت '''=''' برای انتساب مقدار استفاده میشود:
<syntaxhighlight lang="go">
age := 20
age = 21
</syntaxhighlight>
اما '''==''' برای مقایسهٔ دو مقدار استفاده میشود:
<syntaxhighlight lang="go">
if age == 21 {
fmt.Println("سن برابر ۲۱ است.")
}
</syntaxhighlight>
بنابراین این دو عمل متفاوتی انجام میدهند.
== عملگرهای منطقی ==
برای ترکیب چند شرط میتوان از عملگرهای منطقی استفاده کرد.
=== عملگر AND یا ===
عملگر '''&&''' زمانی مقدار '''true''' دارد که هر دو شرط درست باشند.
مثال:
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
age := 20
hasCard := true
if age >= 18 && hasCard {
fmt.Println("ورود مجاز است.")
}
} </syntaxhighlight>
در اینجا هر دو شرط باید درست باشند:
* سن باید حداقل ۱۸ باشد.
* مقدار '''hasCard''' باید '''true''' باشد.
=== عملگر OR یا || ===
عملگر '''||''' زمانی '''true''' است که حداقل یکی از شرطها درست باشد.
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
day := "Friday"
if day == "Friday" || day == "Saturday" {
fmt.Println("تعطیل است.")
}
} </syntaxhighlight>
در این مثال اگر روز جمعه یا شنبه باشد، شرط درست خواهد بود.
=== عملگر NOT یا! ===
عملگر '''!''' نتیجهٔ یک مقدار منطقی را معکوس میکند.
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
isLocked := false
if !isLocked {
fmt.Println("در باز است.")
}
} </syntaxhighlight>
چون مقدار '''isLocked''' برابر '''false''' است، مقدار '''!isLocked''' برابر '''true''' خواهد بود.
== ترکیب چند شرط ==
میتوان چند عملگر منطقی را در یک شرط استفاده کرد.
برای مثال:
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
age := 25
score := 85
if age >= 18 && score >= 60 {
fmt.Println("شرایط قبول شدن را دارید.")
} else {
fmt.Println("شرایط قبول شدن را ندارید.")
}
} </syntaxhighlight>
هنگام ترکیب شرطهای پیچیده، استفاده از پرانتز میتواند خوانایی برنامه را افزایش دهد.
<syntaxhighlight lang="go">
if (age >= 18 && score >= 60) || isAdmin {
fmt.Println("دسترسی مجاز است.")
}
</syntaxhighlight>
== مقداردهی در خود if ==
یکی از ویژگیهای مهم گو این است که میتوان یک دستور ساده را قبل از شرط و در همان عبارت '''if''' قرار داد.
ساختار:
<syntaxhighlight lang="go">
if مقداردهی; شرط {
// دستورها
}
</syntaxhighlight>
برای مثال:
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
if number := 10; number > 0 {
fmt.Println("عدد مثبت است.")
}
} </syntaxhighlight>
در این مثال متغیر '''number''' در بخش آغازین '''if''' ساخته شده است.
محدودهٔ این متغیر به شرط و بلوکهای مرتبط با همان '''if''' محدود میشود؛ بنابراین نمیتوان بعد از پایان این ساختار از '''number''' استفاده کرد.
مثال:
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
if number := 10; number > 0 {
fmt.Println(number)
}
// اینجا number قابل استفاده نیست.
} </syntaxhighlight>
این قابلیت زمانی مفید است که یک مقدار فقط برای بررسی یک شرط مورد نیاز باشد.
== شرطهای تو در تو ==
میتوان یک '''if''' را داخل '''if''' دیگری قرار داد. به این ساختار شرط تو در تو یا '''nested if''' گفته میشود.
مثال:
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
age := 20
hasTicket := true
if age >= 18 {
if hasTicket {
fmt.Println("ورود مجاز است.")
}
}
} </syntaxhighlight>
در این مثال ابتدا سن بررسی میشود و سپس در صورت بزرگسال بودن، داشتن بلیت بررسی میشود.
البته در بسیاری از موارد میتوان چنین کدی را سادهتر نوشت:
<syntaxhighlight lang="go">
if age >= 18 && hasTicket {
fmt.Println("ورود مجاز است.")
}
</syntaxhighlight>
بنابراین باید بین خوانایی و پیچیدگی شرطها تعادل برقرار کرد.
== دستور switch ==
وقتی چند مقدار یا حالت مشخص داریم، استفادهٔ زیاد از '''else if''' میتواند کد را طولانی کند. برای چنین مواردی '''switch''' گزینهٔ مناسبی است.
ساختار ساده:
<syntaxhighlight lang="go">
switch مقدار {
case مقدار۱:
// دستورها
case مقدار۲:
// دستورها
default:
// اگر هیچ case ای مطابقت نداشت
}
</syntaxhighlight>
مثال:
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
day := 2
switch day {
case 1:
fmt.Println("شنبه")
case 2:
fmt.Println("یکشنبه")
case 3:
fmt.Println("دوشنبه")
default:
fmt.Println("روز نامعتبر")
}
} </syntaxhighlight>
در این مثال مقدار '''day''' با مقدارهای مختلف در '''case''' مقایسه میشود.
=== default در switch ===
بخش '''default''' اختیاری است و زمانی اجرا میشود که هیچیک از '''case'''ها مطابقت نداشته باشند.
<syntaxhighlight lang="go">
switch number {
case 1:
fmt.Println("یک")
case 2:
fmt.Println("دو")
default:
fmt.Println("عدد دیگری")
}
</syntaxhighlight>
== چند مقدار در یک case ==
در گو میتوان چند مقدار را در یک '''case''' قرار داد.
برای مثال:
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
day := "Friday"
switch day {
case "Friday", "Saturday":
fmt.Println("تعطیل")
default:
fmt.Println("روز کاری")
}
} </syntaxhighlight>
اگر مقدار '''day''' برابر هرکدام از دو مقدار مشخصشده باشد، همان بخش اجرا میشود.
== switch بدون عبارت ==
در گو میتوان '''switch''' را بدون قرار دادن یک عبارت بعد از کلمهٔ '''switch''' نوشت. در این حالت هر '''case''' میتواند یک شرط منطقی باشد.
مثال:
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
score := 75
switch {
case score >= 90:
fmt.Println("عالی")
case score >= 70:
fmt.Println("خوب")
case score >= 50:
fmt.Println("قبول")
default:
fmt.Println("مردود")
}
} </syntaxhighlight>
این روش در مواردی که چند شرط مختلف داریم میتواند خوانایی خوبی داشته باشد.
== break در switch ==
در بسیاری از زبانها پس از اجرای یک '''case''' در '''switch''' باید از '''break''' برای جلوگیری از اجرای case بعدی استفاده کرد.
در گو، رفتار پیشفرض '''switch''' این است که پس از اجرای case منطبقشده، اجرای switch پایان پیدا میکند؛ بنابراین معمولاً نیازی به نوشتن '''break''' نیست.
مثال:
<syntaxhighlight lang="go">
switch number {
case 1:
fmt.Println("یک")
case 2:
fmt.Println("دو")
case 3:
fmt.Println("سه")
}
</syntaxhighlight>
اگر '''number''' برابر ۲ باشد، فقط بخش مربوط به '''case 2''' اجرا میشود.
== استفاده از fallthrough ==
اگر بخواهیم اجرای برنامه از یک '''case''' به '''case''' بعدی ادامه پیدا کند، میتوان از '''fallthrough''' استفاده کرد.
مثال:
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
number := 1
switch number {
case 1:
fmt.Println("case 1")
fallthrough
case 2:
fmt.Println("case 2")
default:
fmt.Println("default")
}
} </syntaxhighlight>
در این مثال، با توجه به وجود '''fallthrough'''، پس از اجرای '''case 1'''، بخش '''case 2''' نیز اجرا میشود.
'''fallthrough''' باید با دقت استفاده شود، زیرا منطق معمول '''switch''' در گو این است که پس از اجرای یک case، از switch خارج شویم.
== مقایسهٔ if و switch ==
هر دو ساختار برای تصمیمگیری در برنامه استفاده میشوند، اما کاربرد آنها همیشه یکسان نیست.
'''if''' معمولاً برای بررسی شرایط و روابط منطقی مناسب است:
<syntaxhighlight lang="go">
if age >= 18 && hasTicket {
fmt.Println("ورود مجاز است.")
}
</syntaxhighlight>
'''switch''' زمانی میتواند مناسب باشد که یک مقدار را با چند حالت مختلف مقایسه کنیم:
<syntaxhighlight lang="go">
switch command {
case "start":
fmt.Println("شروع")
case "stop":
fmt.Println("توقف")
case "pause":
fmt.Println("مکث")
}
</syntaxhighlight>
برای شرطهای پیچیده و وابسته به چند رابطهٔ منطقی، '''if''' معمولاً انتخاب طبیعیتری است. برای چند حالت مشخص و مجزا، '''switch''' میتواند کد را خواناتر کند.
== مثال کامل: تشخیص نمره ==
در مثال زیر نمرهٔ یک دانشآموز بررسی میشود.
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
score := 82
if score < 0 || score > 100 {
fmt.Println("نمره نامعتبر است.")
} else if score >= 90 {
fmt.Println("عالی")
} else if score >= 80 {
fmt.Println("خیلی خوب")
} else if score >= 70 {
fmt.Println("خوب")
} else if score >= 60 {
fmt.Println("قابل قبول")
} else {
fmt.Println("مردود")
}
} </syntaxhighlight>
در این برنامه ابتدا معتبر بودن نمره بررسی میشود. سپس نمره از مقدارهای بالاتر به پایینتر بررسی میشود.
== مثال کامل: بررسی دسترسی کاربر ==
فرض کنید یک برنامه باید بر اساس سن و وضعیت حساب کاربر تصمیم بگیرد.
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
age := 21
active := true
if age >= 18 && active {
fmt.Println("دسترسی مجاز است.")
} else if !active {
fmt.Println("حساب کاربر فعال نیست.")
} else {
fmt.Println("کاربر به سن مجاز نرسیده است.")
}
} </syntaxhighlight>
در این مثال:
* اگر سن حداقل ۱۸ سال و حساب فعال باشد، دسترسی داده میشود.
* اگر حساب فعال نباشد، پیام مربوط به غیرفعال بودن حساب نمایش داده میشود.
* در غیر این صورت، کاربر به سن مورد نیاز نرسیده است.
== اشتباههای رایج ==
=== اشتباه در استفاده از = و == ===
برای مقایسه باید از '''==''' استفاده شود.
نمونهٔ درست:
<syntaxhighlight lang="go">
if x == 10 {
fmt.Println("x برابر 10 است.")
}
</syntaxhighlight>
=== فراموش کردن آکولادها ===
بدنهٔ شرط باید داخل آکولاد قرار بگیرد:
<syntaxhighlight lang="go">
if x > 0 {
fmt.Println("مثبت")
}
</syntaxhighlight>
=== پیچیده کردن بیش از حد شرطها ===
گاهی یک شرط بسیار طولانی نوشته میشود که خواندن آن دشوار است. در چنین شرایطی بهتر است منطق برنامه به قسمتهای سادهتر تقسیم شود یا از متغیرهای توضیحی استفاده شود.
برای مثال:
<syntaxhighlight lang="go">
isAdult := age >= 18
hasPermission := permission == "admin"
if isAdult && hasPermission {
fmt.Println("دسترسی مجاز است.")
} </syntaxhighlight>
این روش میتواند معنای شرط را واضحتر کند.
=== ترتیب نامناسب شرطها ===
در زنجیرهٔ '''if''' و '''else if''' ترتیب شرطها اهمیت دارد.
مثال:
<syntaxhighlight lang="go">
score := 95
if score >= 50 {
fmt.Println("قبول")
} else if score >= 90 {
fmt.Println("عالی")
} </syntaxhighlight>
در این مثال شرط اول برای نمرهٔ ۹۵ درست است؛ بنابراین شرط دوم هرگز اجرا نمیشود.
اگر هدف این باشد که نمرههای ۹۰ به بالا «عالی» محسوب شوند، ترتیب باید اصلاح شود:
<syntaxhighlight lang="go">
if score >= 90 {
fmt.Println("عالی")
} else if score >= 50 {
fmt.Println("قبول")
} else {
fmt.Println("مردود")
}
</syntaxhighlight>
== نکات مهم ==
* شرطها در گو بر اساس مقدارهای '''true''' و '''false''' تصمیمگیری میکنند.
* برای مقایسه از عملگرهایی مانند '''==''', '''!=''', '''>''', '''<''', '''>=''' و '''<=''' استفاده میشود.
* برای ترکیب شرطها از '''&&''', '''||''' و '''!''' استفاده میشود.
* در گو میتوان در ابتدای '''if''' یک متغیر محلی تعریف کرد.
* متغیری که در ابتدای '''if''' تعریف میشود، محدودهٔ محدودی دارد.
* '''else''' باید در همان ساختار '''if''' قرار داشته باشد.
* در '''switch''' معمولاً نیازی به '''break''' نیست.
* '''fallthrough''' برای ادامه دادن اجرای یک case به case بعدی استفاده میشود.
* برای چند حالت مشخص، '''switch''' میتواند خوانایی بیشتری نسبت به زنجیرهٔ طولانی '''else if''' داشته باشد.
* شرطهای پیچیده بهتر است تا حد امکان خوانا و قابل فهم نوشته شوند.
== تمرینها ==
=== تمرین ۱: مثبت، منفی یا صفر ===
برنامهای بنویسید که یک عدد صحیح را دریافت کند و مشخص کند:
* عدد مثبت است.
* عدد منفی است.
* یا صفر است.
'''راهنما:''' از '''if'''، '''else if''' و '''else''' استفاده کنید.
=== تمرین ۲: تشخیص زوج یا فرد ===
برنامهای بنویسید که مشخص کند یک عدد زوج است یا فرد.
'''راهنما:''' از عملگر باقیماندهٔ تقسیم '''%''' استفاده کنید.
برای مثال:
<syntaxhighlight lang="go">
number%2 == 0
</syntaxhighlight>
اگر این شرط درست باشد، عدد زوج است.
=== تمرین ۳: بررسی سن ===
برنامهای بنویسید که متغیر '''age''' را بررسی کند:
* کمتر از ۱۳: کودک
* از ۱۳ تا کمتر از ۱۸: نوجوان
* ۱۸ سال یا بیشتر: بزرگسال
=== تمرین ۴: سیستم نمرهدهی ===
برنامهای بنویسید که یک نمره از ۰ تا ۱۰۰ دریافت کند و نتیجهٔ زیر را نمایش دهد:
* ۹۰ تا ۱۰۰: عالی
* ۸۰ تا ۸۹: خیلی خوب
* ۷۰ تا ۷۹: خوب
* ۶۰ تا ۶۹: قابل قبول
* کمتر از ۶۰: مردود
* خارج از بازهٔ ۰ تا ۱۰۰: نمرهٔ نامعتبر
=== تمرین ۵: بررسی دسترسی ===
سه متغیر زیر را در نظر بگیرید:
<syntaxhighlight lang="go">
age := 22
hasAccount := true
isActive := true
</syntaxhighlight>
برنامهای بنویسید که فقط زمانی پیام '''دسترسی مجاز است''' را چاپ کند که کاربر حداقل ۱۸ سال داشته باشد، حساب داشته باشد و حساب او فعال باشد.
=== تمرین ۶: استفاده از switch ===
برنامهای بنویسید که عددی بین ۱ تا ۷ دریافت کند و نام روز مربوط به آن را نمایش دهد.
برای مثال:
<syntaxhighlight lang="go">
1 -> شنبه
2 -> یکشنبه
3 -> دوشنبه
</syntaxhighlight>
برای پیادهسازی این تمرین از '''switch''' استفاده کنید.
=== تمرین ۷: ماشین حساب ساده ===
دو عدد و یک عملگر مانند '''+'''، '''-'''، '''*''' یا '''/''' در نظر بگیرید. سپس با استفاده از '''switch''' عملیات مناسب را انجام دهید.
نمونهٔ ورودی:
<syntaxhighlight lang="go">
a := 20
b := 5
operator := "/"
</syntaxhighlight>
خروجی مورد انتظار:
<syntaxhighlight lang="text">
4
</syntaxhighlight>
=== تمرین ۸: تشخیص سال کبیسه ===
برنامهای بنویسید که یک سال را دریافت کند و مشخص کند آیا سال کبیسه است یا خیر.
'''راهنما:''' برای حل این تمرین باید بتوانید چند شرط منطقی را با '''&&''' و '''||''' ترکیب کنید.
== حل تمرینها ==
* در صفحه [[زبان برنامهنویسی گو/حل تمرینها/شرطها|حل تمرینها/شرطها]] میتوانید جواب تمرین ها را پیدا کنید.
== جمعبندی ==
شرطها یکی از پایهایترین بخشهای برنامهنویسی هستند و به برنامه اجازه میدهند بر اساس وضعیت دادهها تصمیمگیری کند. در گو برای این کار میتوان از '''if'''، '''else if''' و '''else''' استفاده کرد. برای ترکیب شرایط نیز عملگرهای '''&&'''، '''||''' و '''!''' در دسترس هستند.
هنگامی که برنامه باید میان چند حالت مشخص انتخاب کند، '''switch''' میتواند ساختار مناسبتری ایجاد کند. همچنین گو امکان تعریف یک متغیر در ابتدای عبارت '''if''' و استفاده از '''switch''' بدون عبارت را فراهم میکند.
تسلط بر شرطها برای یادگیری مباحث بعدی مانند [[حلقهها در گو]]، [[توابع در گو]] و [[ساختارهای داده در گو]] ضروری است.
ljnz14bmbatqxhjqy928bqyusn5jfjw
135338
135337
2026-09-29T08:56:17Z
Fwldom
26269
/* جمعبندی */
135338
wikitext
text/x-wiki
= شرطها در گو =
در برنامهنویسی لازم است برنامه بر اساس یک وضعیت یا یک شرط، تصمیم متفاوتی بگیرد. برای مثال، میتوان بررسی کرد که آیا یک عدد مثبت است یا منفی، آیا کاربر به سن مشخصی رسیده است، یا آیا یک رمز عبور صحیح وارد شده است.
در زبان برنامهنویسی گو، برای اجرای دستورات بهصورت شرطی از دستورهای '''if'''، '''else if''' و '''else''' استفاده میشود. همچنین گو دارای دستور '''switch''' برای بررسی چند حالت مختلف است.
در این صفحه با ساختار شرطها، عملگرهای مقایسهای و منطقی، شرطهای تو در تو، دستور switch و نکات مهم مربوط به شرطها در گو آشنا میشوید.
== شرط if ==
سادهترین شکل شرط در گو، دستور '''if''' است. اگر عبارت شرطی مقدار '''true''' داشته باشد، دستورات داخل بلوک اجرا میشوند و اگر مقدار آن '''false''' باشد، این دستورات اجرا نمیشوند.
ساختار کلی:
<syntaxhighlight lang="go">
if شرط {
// دستورها
}
</syntaxhighlight>
برای مثال:
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
age := 20
if age >= 18 {
fmt.Println("شما بزرگسال هستید.")
}
} </syntaxhighlight>
در این مثال ابتدا متغیر '''age''' برابر ۲۰ قرار گرفته است. سپس شرط '''age >= ۱۸''' بررسی میشود. چون این شرط درست است، پیام داخل بلوک '''if''' چاپ خواهد شد.
=== آکولادها در if ===
در گو، آکولادهای '''{''' و '''}''' بخشی از ساختار دستور '''if''' هستند و باید استفاده شوند. برخلاف بعضی زبانها، نمیتوان بدنهٔ شرط را بدون آکولاد نوشت.
نمونهٔ صحیح:
<syntaxhighlight lang="go">
if age >= 18 {
fmt.Println("Adult")
}
</syntaxhighlight>
* بیشتر بخوانید: [[زبان برنامهنویسی گو/بلوکهای کد|بلوکهای کد]]
== شرط if و else ==
اگر بخواهیم در صورت نادرست بودن شرط، دستور دیگری اجرا شود، از '''else''' استفاده میکنیم.
ساختار:
<syntaxhighlight lang="go">
if شرط {
// اگر شرط درست باشد
} else {
// اگر شرط نادرست باشد
}
</syntaxhighlight>
مثال:
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
number := 7
if number > 0 {
fmt.Println("عدد مثبت است.")
} else {
fmt.Println("عدد مثبت نیست.")
}
} </syntaxhighlight>
در این مثال چون مقدار '''number''' برابر ۷ است، شرط '''number > 0''' درست است و پیام اول نمایش داده میشود.
== شرط else if ==
گاهی لازم است چند شرط مختلف را بهترتیب بررسی کنیم. در این حالت میتوان از '''else if''' استفاده کرد.
مثال:
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
number := -5
if number > 0 {
fmt.Println("مثبت")
} else if number < 0 {
fmt.Println("منفی")
} else {
fmt.Println("صفر")
}
} </syntaxhighlight>
برنامه شرطها را از بالا به پایین بررسی میکند. به محض اینکه یکی از شرطها درست باشد، بلوک مربوط به آن اجرا میشود و شرطهای بعدی بررسی نمیشوند.
در این مثال:
# ابتدا بررسی میشود که آیا عدد بزرگتر از صفر است.
# سپس بررسی میشود که آیا عدد کوچکتر از صفر است.
# اگر هیچکدام درست نباشند، عدد باید صفر باشد.
== عملگرهای مقایسهای ==
برای ساختن شرطها معمولاً از عملگرهای مقایسهای استفاده میشود.
* بیشتر بخوانید: [[زبان برنامهنویسی گو/عملگرها و عبارات|عملگرها و عبارات]]
برای مثال:
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
a := 10
b := 20
if a < b {
fmt.Println("a کوچکتر از b است.")
}
} </syntaxhighlight>
=== تفاوت == و = ===
یکی از اشتباههای رایج هنگام نوشتن شرط این است که '''=''' با '''==''' اشتباه گرفته شود.
علامت '''=''' برای انتساب مقدار استفاده میشود:
<syntaxhighlight lang="go">
age := 20
age = 21
</syntaxhighlight>
اما '''==''' برای مقایسهٔ دو مقدار استفاده میشود:
<syntaxhighlight lang="go">
if age == 21 {
fmt.Println("سن برابر ۲۱ است.")
}
</syntaxhighlight>
بنابراین این دو عمل متفاوتی انجام میدهند.
== عملگرهای منطقی ==
برای ترکیب چند شرط میتوان از عملگرهای منطقی استفاده کرد.
=== عملگر AND یا ===
عملگر '''&&''' زمانی مقدار '''true''' دارد که هر دو شرط درست باشند.
مثال:
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
age := 20
hasCard := true
if age >= 18 && hasCard {
fmt.Println("ورود مجاز است.")
}
} </syntaxhighlight>
در اینجا هر دو شرط باید درست باشند:
* سن باید حداقل ۱۸ باشد.
* مقدار '''hasCard''' باید '''true''' باشد.
=== عملگر OR یا || ===
عملگر '''||''' زمانی '''true''' است که حداقل یکی از شرطها درست باشد.
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
day := "Friday"
if day == "Friday" || day == "Saturday" {
fmt.Println("تعطیل است.")
}
} </syntaxhighlight>
در این مثال اگر روز جمعه یا شنبه باشد، شرط درست خواهد بود.
=== عملگر NOT یا! ===
عملگر '''!''' نتیجهٔ یک مقدار منطقی را معکوس میکند.
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
isLocked := false
if !isLocked {
fmt.Println("در باز است.")
}
} </syntaxhighlight>
چون مقدار '''isLocked''' برابر '''false''' است، مقدار '''!isLocked''' برابر '''true''' خواهد بود.
== ترکیب چند شرط ==
میتوان چند عملگر منطقی را در یک شرط استفاده کرد.
برای مثال:
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
age := 25
score := 85
if age >= 18 && score >= 60 {
fmt.Println("شرایط قبول شدن را دارید.")
} else {
fmt.Println("شرایط قبول شدن را ندارید.")
}
} </syntaxhighlight>
هنگام ترکیب شرطهای پیچیده، استفاده از پرانتز میتواند خوانایی برنامه را افزایش دهد.
<syntaxhighlight lang="go">
if (age >= 18 && score >= 60) || isAdmin {
fmt.Println("دسترسی مجاز است.")
}
</syntaxhighlight>
== مقداردهی در خود if ==
یکی از ویژگیهای مهم گو این است که میتوان یک دستور ساده را قبل از شرط و در همان عبارت '''if''' قرار داد.
ساختار:
<syntaxhighlight lang="go">
if مقداردهی; شرط {
// دستورها
}
</syntaxhighlight>
برای مثال:
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
if number := 10; number > 0 {
fmt.Println("عدد مثبت است.")
}
} </syntaxhighlight>
در این مثال متغیر '''number''' در بخش آغازین '''if''' ساخته شده است.
محدودهٔ این متغیر به شرط و بلوکهای مرتبط با همان '''if''' محدود میشود؛ بنابراین نمیتوان بعد از پایان این ساختار از '''number''' استفاده کرد.
مثال:
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
if number := 10; number > 0 {
fmt.Println(number)
}
// اینجا number قابل استفاده نیست.
} </syntaxhighlight>
این قابلیت زمانی مفید است که یک مقدار فقط برای بررسی یک شرط مورد نیاز باشد.
== شرطهای تو در تو ==
میتوان یک '''if''' را داخل '''if''' دیگری قرار داد. به این ساختار شرط تو در تو یا '''nested if''' گفته میشود.
مثال:
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
age := 20
hasTicket := true
if age >= 18 {
if hasTicket {
fmt.Println("ورود مجاز است.")
}
}
} </syntaxhighlight>
در این مثال ابتدا سن بررسی میشود و سپس در صورت بزرگسال بودن، داشتن بلیت بررسی میشود.
البته در بسیاری از موارد میتوان چنین کدی را سادهتر نوشت:
<syntaxhighlight lang="go">
if age >= 18 && hasTicket {
fmt.Println("ورود مجاز است.")
}
</syntaxhighlight>
بنابراین باید بین خوانایی و پیچیدگی شرطها تعادل برقرار کرد.
== دستور switch ==
وقتی چند مقدار یا حالت مشخص داریم، استفادهٔ زیاد از '''else if''' میتواند کد را طولانی کند. برای چنین مواردی '''switch''' گزینهٔ مناسبی است.
ساختار ساده:
<syntaxhighlight lang="go">
switch مقدار {
case مقدار۱:
// دستورها
case مقدار۲:
// دستورها
default:
// اگر هیچ case ای مطابقت نداشت
}
</syntaxhighlight>
مثال:
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
day := 2
switch day {
case 1:
fmt.Println("شنبه")
case 2:
fmt.Println("یکشنبه")
case 3:
fmt.Println("دوشنبه")
default:
fmt.Println("روز نامعتبر")
}
} </syntaxhighlight>
در این مثال مقدار '''day''' با مقدارهای مختلف در '''case''' مقایسه میشود.
=== default در switch ===
بخش '''default''' اختیاری است و زمانی اجرا میشود که هیچیک از '''case'''ها مطابقت نداشته باشند.
<syntaxhighlight lang="go">
switch number {
case 1:
fmt.Println("یک")
case 2:
fmt.Println("دو")
default:
fmt.Println("عدد دیگری")
}
</syntaxhighlight>
== چند مقدار در یک case ==
در گو میتوان چند مقدار را در یک '''case''' قرار داد.
برای مثال:
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
day := "Friday"
switch day {
case "Friday", "Saturday":
fmt.Println("تعطیل")
default:
fmt.Println("روز کاری")
}
} </syntaxhighlight>
اگر مقدار '''day''' برابر هرکدام از دو مقدار مشخصشده باشد، همان بخش اجرا میشود.
== switch بدون عبارت ==
در گو میتوان '''switch''' را بدون قرار دادن یک عبارت بعد از کلمهٔ '''switch''' نوشت. در این حالت هر '''case''' میتواند یک شرط منطقی باشد.
مثال:
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
score := 75
switch {
case score >= 90:
fmt.Println("عالی")
case score >= 70:
fmt.Println("خوب")
case score >= 50:
fmt.Println("قبول")
default:
fmt.Println("مردود")
}
} </syntaxhighlight>
این روش در مواردی که چند شرط مختلف داریم میتواند خوانایی خوبی داشته باشد.
== break در switch ==
در بسیاری از زبانها پس از اجرای یک '''case''' در '''switch''' باید از '''break''' برای جلوگیری از اجرای case بعدی استفاده کرد.
در گو، رفتار پیشفرض '''switch''' این است که پس از اجرای case منطبقشده، اجرای switch پایان پیدا میکند؛ بنابراین معمولاً نیازی به نوشتن '''break''' نیست.
مثال:
<syntaxhighlight lang="go">
switch number {
case 1:
fmt.Println("یک")
case 2:
fmt.Println("دو")
case 3:
fmt.Println("سه")
}
</syntaxhighlight>
اگر '''number''' برابر ۲ باشد، فقط بخش مربوط به '''case 2''' اجرا میشود.
== استفاده از fallthrough ==
اگر بخواهیم اجرای برنامه از یک '''case''' به '''case''' بعدی ادامه پیدا کند، میتوان از '''fallthrough''' استفاده کرد.
مثال:
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
number := 1
switch number {
case 1:
fmt.Println("case 1")
fallthrough
case 2:
fmt.Println("case 2")
default:
fmt.Println("default")
}
} </syntaxhighlight>
در این مثال، با توجه به وجود '''fallthrough'''، پس از اجرای '''case 1'''، بخش '''case 2''' نیز اجرا میشود.
'''fallthrough''' باید با دقت استفاده شود، زیرا منطق معمول '''switch''' در گو این است که پس از اجرای یک case، از switch خارج شویم.
== مقایسهٔ if و switch ==
هر دو ساختار برای تصمیمگیری در برنامه استفاده میشوند، اما کاربرد آنها همیشه یکسان نیست.
'''if''' معمولاً برای بررسی شرایط و روابط منطقی مناسب است:
<syntaxhighlight lang="go">
if age >= 18 && hasTicket {
fmt.Println("ورود مجاز است.")
}
</syntaxhighlight>
'''switch''' زمانی میتواند مناسب باشد که یک مقدار را با چند حالت مختلف مقایسه کنیم:
<syntaxhighlight lang="go">
switch command {
case "start":
fmt.Println("شروع")
case "stop":
fmt.Println("توقف")
case "pause":
fmt.Println("مکث")
}
</syntaxhighlight>
برای شرطهای پیچیده و وابسته به چند رابطهٔ منطقی، '''if''' معمولاً انتخاب طبیعیتری است. برای چند حالت مشخص و مجزا، '''switch''' میتواند کد را خواناتر کند.
== مثال کامل: تشخیص نمره ==
در مثال زیر نمرهٔ یک دانشآموز بررسی میشود.
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
score := 82
if score < 0 || score > 100 {
fmt.Println("نمره نامعتبر است.")
} else if score >= 90 {
fmt.Println("عالی")
} else if score >= 80 {
fmt.Println("خیلی خوب")
} else if score >= 70 {
fmt.Println("خوب")
} else if score >= 60 {
fmt.Println("قابل قبول")
} else {
fmt.Println("مردود")
}
} </syntaxhighlight>
در این برنامه ابتدا معتبر بودن نمره بررسی میشود. سپس نمره از مقدارهای بالاتر به پایینتر بررسی میشود.
== مثال کامل: بررسی دسترسی کاربر ==
فرض کنید یک برنامه باید بر اساس سن و وضعیت حساب کاربر تصمیم بگیرد.
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
age := 21
active := true
if age >= 18 && active {
fmt.Println("دسترسی مجاز است.")
} else if !active {
fmt.Println("حساب کاربر فعال نیست.")
} else {
fmt.Println("کاربر به سن مجاز نرسیده است.")
}
} </syntaxhighlight>
در این مثال:
* اگر سن حداقل ۱۸ سال و حساب فعال باشد، دسترسی داده میشود.
* اگر حساب فعال نباشد، پیام مربوط به غیرفعال بودن حساب نمایش داده میشود.
* در غیر این صورت، کاربر به سن مورد نیاز نرسیده است.
== اشتباههای رایج ==
=== اشتباه در استفاده از = و == ===
برای مقایسه باید از '''==''' استفاده شود.
نمونهٔ درست:
<syntaxhighlight lang="go">
if x == 10 {
fmt.Println("x برابر 10 است.")
}
</syntaxhighlight>
=== فراموش کردن آکولادها ===
بدنهٔ شرط باید داخل آکولاد قرار بگیرد:
<syntaxhighlight lang="go">
if x > 0 {
fmt.Println("مثبت")
}
</syntaxhighlight>
=== پیچیده کردن بیش از حد شرطها ===
گاهی یک شرط بسیار طولانی نوشته میشود که خواندن آن دشوار است. در چنین شرایطی بهتر است منطق برنامه به قسمتهای سادهتر تقسیم شود یا از متغیرهای توضیحی استفاده شود.
برای مثال:
<syntaxhighlight lang="go">
isAdult := age >= 18
hasPermission := permission == "admin"
if isAdult && hasPermission {
fmt.Println("دسترسی مجاز است.")
} </syntaxhighlight>
این روش میتواند معنای شرط را واضحتر کند.
=== ترتیب نامناسب شرطها ===
در زنجیرهٔ '''if''' و '''else if''' ترتیب شرطها اهمیت دارد.
مثال:
<syntaxhighlight lang="go">
score := 95
if score >= 50 {
fmt.Println("قبول")
} else if score >= 90 {
fmt.Println("عالی")
} </syntaxhighlight>
در این مثال شرط اول برای نمرهٔ ۹۵ درست است؛ بنابراین شرط دوم هرگز اجرا نمیشود.
اگر هدف این باشد که نمرههای ۹۰ به بالا «عالی» محسوب شوند، ترتیب باید اصلاح شود:
<syntaxhighlight lang="go">
if score >= 90 {
fmt.Println("عالی")
} else if score >= 50 {
fmt.Println("قبول")
} else {
fmt.Println("مردود")
}
</syntaxhighlight>
== نکات مهم ==
* شرطها در گو بر اساس مقدارهای '''true''' و '''false''' تصمیمگیری میکنند.
* برای مقایسه از عملگرهایی مانند '''==''', '''!=''', '''>''', '''<''', '''>=''' و '''<=''' استفاده میشود.
* برای ترکیب شرطها از '''&&''', '''||''' و '''!''' استفاده میشود.
* در گو میتوان در ابتدای '''if''' یک متغیر محلی تعریف کرد.
* متغیری که در ابتدای '''if''' تعریف میشود، محدودهٔ محدودی دارد.
* '''else''' باید در همان ساختار '''if''' قرار داشته باشد.
* در '''switch''' معمولاً نیازی به '''break''' نیست.
* '''fallthrough''' برای ادامه دادن اجرای یک case به case بعدی استفاده میشود.
* برای چند حالت مشخص، '''switch''' میتواند خوانایی بیشتری نسبت به زنجیرهٔ طولانی '''else if''' داشته باشد.
* شرطهای پیچیده بهتر است تا حد امکان خوانا و قابل فهم نوشته شوند.
== تمرینها ==
=== تمرین ۱: مثبت، منفی یا صفر ===
برنامهای بنویسید که یک عدد صحیح را دریافت کند و مشخص کند:
* عدد مثبت است.
* عدد منفی است.
* یا صفر است.
'''راهنما:''' از '''if'''، '''else if''' و '''else''' استفاده کنید.
=== تمرین ۲: تشخیص زوج یا فرد ===
برنامهای بنویسید که مشخص کند یک عدد زوج است یا فرد.
'''راهنما:''' از عملگر باقیماندهٔ تقسیم '''%''' استفاده کنید.
برای مثال:
<syntaxhighlight lang="go">
number%2 == 0
</syntaxhighlight>
اگر این شرط درست باشد، عدد زوج است.
=== تمرین ۳: بررسی سن ===
برنامهای بنویسید که متغیر '''age''' را بررسی کند:
* کمتر از ۱۳: کودک
* از ۱۳ تا کمتر از ۱۸: نوجوان
* ۱۸ سال یا بیشتر: بزرگسال
=== تمرین ۴: سیستم نمرهدهی ===
برنامهای بنویسید که یک نمره از ۰ تا ۱۰۰ دریافت کند و نتیجهٔ زیر را نمایش دهد:
* ۹۰ تا ۱۰۰: عالی
* ۸۰ تا ۸۹: خیلی خوب
* ۷۰ تا ۷۹: خوب
* ۶۰ تا ۶۹: قابل قبول
* کمتر از ۶۰: مردود
* خارج از بازهٔ ۰ تا ۱۰۰: نمرهٔ نامعتبر
=== تمرین ۵: بررسی دسترسی ===
سه متغیر زیر را در نظر بگیرید:
<syntaxhighlight lang="go">
age := 22
hasAccount := true
isActive := true
</syntaxhighlight>
برنامهای بنویسید که فقط زمانی پیام '''دسترسی مجاز است''' را چاپ کند که کاربر حداقل ۱۸ سال داشته باشد، حساب داشته باشد و حساب او فعال باشد.
=== تمرین ۶: استفاده از switch ===
برنامهای بنویسید که عددی بین ۱ تا ۷ دریافت کند و نام روز مربوط به آن را نمایش دهد.
برای مثال:
<syntaxhighlight lang="go">
1 -> شنبه
2 -> یکشنبه
3 -> دوشنبه
</syntaxhighlight>
برای پیادهسازی این تمرین از '''switch''' استفاده کنید.
=== تمرین ۷: ماشین حساب ساده ===
دو عدد و یک عملگر مانند '''+'''، '''-'''، '''*''' یا '''/''' در نظر بگیرید. سپس با استفاده از '''switch''' عملیات مناسب را انجام دهید.
نمونهٔ ورودی:
<syntaxhighlight lang="go">
a := 20
b := 5
operator := "/"
</syntaxhighlight>
خروجی مورد انتظار:
<syntaxhighlight lang="text">
4
</syntaxhighlight>
=== تمرین ۸: تشخیص سال کبیسه ===
برنامهای بنویسید که یک سال را دریافت کند و مشخص کند آیا سال کبیسه است یا خیر.
'''راهنما:''' برای حل این تمرین باید بتوانید چند شرط منطقی را با '''&&''' و '''||''' ترکیب کنید.
== حل تمرینها ==
* در صفحه [[زبان برنامهنویسی گو/حل تمرینها/شرطها|حل تمرینها/شرطها]] میتوانید جواب تمرین ها را پیدا کنید.
== جمعبندی ==
شرطها یکی از پایهایترین بخشهای برنامهنویسی هستند و به برنامه اجازه میدهند بر اساس وضعیت دادهها تصمیمگیری کند. در گو برای این کار میتوان از '''if'''، '''else if''' و '''else''' استفاده کرد. برای ترکیب شرایط نیز عملگرهای '''&&'''، '''||''' و '''!''' در دسترس هستند.
هنگامی که برنامه باید میان چند حالت مشخص انتخاب کند، '''switch''' میتواند ساختار مناسبتری ایجاد کند. همچنین گو امکان تعریف یک متغیر در ابتدای عبارت '''if''' و استفاده از '''switch''' بدون عبارت را فراهم میکند.
تسلط بر شرطها برای یادگیری مباحثی مانند [[زبان برنامه نویسی سی/حلقه do while و while]]، [[زبان برنامهنویسی گو/تعریف و استفاده از توابع]] ضروری است.
6kz3vlms8ylg2teu9suklduxik14se4
135342
135338
2026-09-29T09:04:45Z
Fwldom
26269
135342
wikitext
text/x-wiki
{{سرصفحه
| عنوان = شرطها
| قسمت =
| قبلی = [[زبان برنامهنویسی گو/عملگرها و عبارات|عملگرها و عبارات]]
| بعدی = [[زبان برنامهنویسی گو/حلقهها|حلقهها]]
| یادداشت = [[زبان برنامهنویسی گو]]
}}
== شرطها در گو ==
در برنامهنویسی لازم است برنامه بر اساس یک وضعیت یا یک شرط، تصمیم متفاوتی بگیرد. برای مثال، میتوان بررسی کرد که آیا یک عدد مثبت است یا منفی، آیا کاربر به سن مشخصی رسیده است، یا آیا یک رمز عبور صحیح وارد شده است.
در زبان برنامهنویسی گو، برای اجرای دستورات بهصورت شرطی از دستورهای '''if'''، '''else if''' و '''else''' استفاده میشود. همچنین گو دارای دستور '''switch''' برای بررسی چند حالت مختلف است.
در این صفحه با ساختار شرطها، عملگرهای مقایسهای و منطقی، شرطهای تو در تو، دستور switch و نکات مهم مربوط به شرطها در گو آشنا میشوید.
== شرط if ==
سادهترین شکل شرط در گو، دستور '''if''' است. اگر عبارت شرطی مقدار '''true''' داشته باشد، دستورات داخل بلوک اجرا میشوند و اگر مقدار آن '''false''' باشد، این دستورات اجرا نمیشوند.
ساختار کلی:
<syntaxhighlight lang="go">
if شرط {
// دستورها
}
</syntaxhighlight>
برای مثال:
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
age := 20
if age >= 18 {
fmt.Println("شما بزرگسال هستید.")
}
} </syntaxhighlight>
در این مثال ابتدا متغیر '''age''' برابر ۲۰ قرار گرفته است. سپس شرط '''age >= ۱۸''' بررسی میشود. چون این شرط درست است، پیام داخل بلوک '''if''' چاپ خواهد شد.
=== آکولادها در if ===
در گو، آکولادهای '''{''' و '''}''' بخشی از ساختار دستور '''if''' هستند و باید استفاده شوند. برخلاف بعضی زبانها، نمیتوان بدنهٔ شرط را بدون آکولاد نوشت.
نمونهٔ صحیح:
<syntaxhighlight lang="go">
if age >= 18 {
fmt.Println("Adult")
}
</syntaxhighlight>
* بیشتر بخوانید: [[زبان برنامهنویسی گو/بلوکهای کد|بلوکهای کد]]
== شرط if و else ==
اگر بخواهیم در صورت نادرست بودن شرط، دستور دیگری اجرا شود، از '''else''' استفاده میکنیم.
ساختار:
<syntaxhighlight lang="go">
if شرط {
// اگر شرط درست باشد
} else {
// اگر شرط نادرست باشد
}
</syntaxhighlight>
مثال:
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
number := 7
if number > 0 {
fmt.Println("عدد مثبت است.")
} else {
fmt.Println("عدد مثبت نیست.")
}
} </syntaxhighlight>
در این مثال چون مقدار '''number''' برابر ۷ است، شرط '''number > 0''' درست است و پیام اول نمایش داده میشود.
== شرط else if ==
گاهی لازم است چند شرط مختلف را بهترتیب بررسی کنیم. در این حالت میتوان از '''else if''' استفاده کرد.
مثال:
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
number := -5
if number > 0 {
fmt.Println("مثبت")
} else if number < 0 {
fmt.Println("منفی")
} else {
fmt.Println("صفر")
}
} </syntaxhighlight>
برنامه شرطها را از بالا به پایین بررسی میکند. به محض اینکه یکی از شرطها درست باشد، بلوک مربوط به آن اجرا میشود و شرطهای بعدی بررسی نمیشوند.
در این مثال:
# ابتدا بررسی میشود که آیا عدد بزرگتر از صفر است.
# سپس بررسی میشود که آیا عدد کوچکتر از صفر است.
# اگر هیچکدام درست نباشند، عدد باید صفر باشد.
== عملگرهای مقایسهای ==
برای ساختن شرطها معمولاً از عملگرهای مقایسهای استفاده میشود.
* بیشتر بخوانید: [[زبان برنامهنویسی گو/عملگرها و عبارات|عملگرها و عبارات]]
برای مثال:
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
a := 10
b := 20
if a < b {
fmt.Println("a کوچکتر از b است.")
}
} </syntaxhighlight>
=== تفاوت == و = ===
یکی از اشتباههای رایج هنگام نوشتن شرط این است که '''=''' با '''==''' اشتباه گرفته شود.
علامت '''=''' برای انتساب مقدار استفاده میشود:
<syntaxhighlight lang="go">
age := 20
age = 21
</syntaxhighlight>
اما '''==''' برای مقایسهٔ دو مقدار استفاده میشود:
<syntaxhighlight lang="go">
if age == 21 {
fmt.Println("سن برابر ۲۱ است.")
}
</syntaxhighlight>
بنابراین این دو عمل متفاوتی انجام میدهند.
== عملگرهای منطقی ==
برای ترکیب چند شرط میتوان از عملگرهای منطقی استفاده کرد.
=== عملگر AND یا ===
عملگر '''&&''' زمانی مقدار '''true''' دارد که هر دو شرط درست باشند.
مثال:
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
age := 20
hasCard := true
if age >= 18 && hasCard {
fmt.Println("ورود مجاز است.")
}
} </syntaxhighlight>
در اینجا هر دو شرط باید درست باشند:
* سن باید حداقل ۱۸ باشد.
* مقدار '''hasCard''' باید '''true''' باشد.
=== عملگر OR یا || ===
عملگر '''||''' زمانی '''true''' است که حداقل یکی از شرطها درست باشد.
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
day := "Friday"
if day == "Friday" || day == "Saturday" {
fmt.Println("تعطیل است.")
}
} </syntaxhighlight>
در این مثال اگر روز جمعه یا شنبه باشد، شرط درست خواهد بود.
=== عملگر NOT یا! ===
عملگر '''!''' نتیجهٔ یک مقدار منطقی را معکوس میکند.
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
isLocked := false
if !isLocked {
fmt.Println("در باز است.")
}
} </syntaxhighlight>
چون مقدار '''isLocked''' برابر '''false''' است، مقدار '''!isLocked''' برابر '''true''' خواهد بود.
== ترکیب چند شرط ==
میتوان چند عملگر منطقی را در یک شرط استفاده کرد.
برای مثال:
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
age := 25
score := 85
if age >= 18 && score >= 60 {
fmt.Println("شرایط قبول شدن را دارید.")
} else {
fmt.Println("شرایط قبول شدن را ندارید.")
}
} </syntaxhighlight>
هنگام ترکیب شرطهای پیچیده، استفاده از پرانتز میتواند خوانایی برنامه را افزایش دهد.
<syntaxhighlight lang="go">
if (age >= 18 && score >= 60) || isAdmin {
fmt.Println("دسترسی مجاز است.")
}
</syntaxhighlight>
== مقداردهی در خود if ==
یکی از ویژگیهای مهم گو این است که میتوان یک دستور ساده را قبل از شرط و در همان عبارت '''if''' قرار داد.
ساختار:
<syntaxhighlight lang="go">
if مقداردهی; شرط {
// دستورها
}
</syntaxhighlight>
برای مثال:
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
if number := 10; number > 0 {
fmt.Println("عدد مثبت است.")
}
} </syntaxhighlight>
در این مثال متغیر '''number''' در بخش آغازین '''if''' ساخته شده است.
محدودهٔ این متغیر به شرط و بلوکهای مرتبط با همان '''if''' محدود میشود؛ بنابراین نمیتوان بعد از پایان این ساختار از '''number''' استفاده کرد.
مثال:
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
if number := 10; number > 0 {
fmt.Println(number)
}
// اینجا number قابل استفاده نیست.
} </syntaxhighlight>
این قابلیت زمانی مفید است که یک مقدار فقط برای بررسی یک شرط مورد نیاز باشد.
== شرطهای تو در تو ==
میتوان یک '''if''' را داخل '''if''' دیگری قرار داد. به این ساختار شرط تو در تو یا '''nested if''' گفته میشود.
مثال:
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
age := 20
hasTicket := true
if age >= 18 {
if hasTicket {
fmt.Println("ورود مجاز است.")
}
}
} </syntaxhighlight>
در این مثال ابتدا سن بررسی میشود و سپس در صورت بزرگسال بودن، داشتن بلیت بررسی میشود.
البته در بسیاری از موارد میتوان چنین کدی را سادهتر نوشت:
<syntaxhighlight lang="go">
if age >= 18 && hasTicket {
fmt.Println("ورود مجاز است.")
}
</syntaxhighlight>
بنابراین باید بین خوانایی و پیچیدگی شرطها تعادل برقرار کرد.
== دستور switch ==
وقتی چند مقدار یا حالت مشخص داریم، استفادهٔ زیاد از '''else if''' میتواند کد را طولانی کند. برای چنین مواردی '''switch''' گزینهٔ مناسبی است.
ساختار ساده:
<syntaxhighlight lang="go">
switch مقدار {
case مقدار۱:
// دستورها
case مقدار۲:
// دستورها
default:
// اگر هیچ case ای مطابقت نداشت
}
</syntaxhighlight>
مثال:
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
day := 2
switch day {
case 1:
fmt.Println("شنبه")
case 2:
fmt.Println("یکشنبه")
case 3:
fmt.Println("دوشنبه")
default:
fmt.Println("روز نامعتبر")
}
} </syntaxhighlight>
در این مثال مقدار '''day''' با مقدارهای مختلف در '''case''' مقایسه میشود.
=== default در switch ===
بخش '''default''' اختیاری است و زمانی اجرا میشود که هیچیک از '''case'''ها مطابقت نداشته باشند.
<syntaxhighlight lang="go">
switch number {
case 1:
fmt.Println("یک")
case 2:
fmt.Println("دو")
default:
fmt.Println("عدد دیگری")
}
</syntaxhighlight>
== چند مقدار در یک case ==
در گو میتوان چند مقدار را در یک '''case''' قرار داد.
برای مثال:
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
day := "Friday"
switch day {
case "Friday", "Saturday":
fmt.Println("تعطیل")
default:
fmt.Println("روز کاری")
}
} </syntaxhighlight>
اگر مقدار '''day''' برابر هرکدام از دو مقدار مشخصشده باشد، همان بخش اجرا میشود.
== switch بدون عبارت ==
در گو میتوان '''switch''' را بدون قرار دادن یک عبارت بعد از کلمهٔ '''switch''' نوشت. در این حالت هر '''case''' میتواند یک شرط منطقی باشد.
مثال:
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
score := 75
switch {
case score >= 90:
fmt.Println("عالی")
case score >= 70:
fmt.Println("خوب")
case score >= 50:
fmt.Println("قبول")
default:
fmt.Println("مردود")
}
} </syntaxhighlight>
این روش در مواردی که چند شرط مختلف داریم میتواند خوانایی خوبی داشته باشد.
== break در switch ==
در بسیاری از زبانها پس از اجرای یک '''case''' در '''switch''' باید از '''break''' برای جلوگیری از اجرای case بعدی استفاده کرد.
در گو، رفتار پیشفرض '''switch''' این است که پس از اجرای case منطبقشده، اجرای switch پایان پیدا میکند؛ بنابراین معمولاً نیازی به نوشتن '''break''' نیست.
مثال:
<syntaxhighlight lang="go">
switch number {
case 1:
fmt.Println("یک")
case 2:
fmt.Println("دو")
case 3:
fmt.Println("سه")
}
</syntaxhighlight>
اگر '''number''' برابر ۲ باشد، فقط بخش مربوط به '''case 2''' اجرا میشود.
== استفاده از fallthrough ==
اگر بخواهیم اجرای برنامه از یک '''case''' به '''case''' بعدی ادامه پیدا کند، میتوان از '''fallthrough''' استفاده کرد.
مثال:
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
number := 1
switch number {
case 1:
fmt.Println("case 1")
fallthrough
case 2:
fmt.Println("case 2")
default:
fmt.Println("default")
}
} </syntaxhighlight>
در این مثال، با توجه به وجود '''fallthrough'''، پس از اجرای '''case 1'''، بخش '''case 2''' نیز اجرا میشود.
'''fallthrough''' باید با دقت استفاده شود، زیرا منطق معمول '''switch''' در گو این است که پس از اجرای یک case، از switch خارج شویم.
== مقایسهٔ if و switch ==
هر دو ساختار برای تصمیمگیری در برنامه استفاده میشوند، اما کاربرد آنها همیشه یکسان نیست.
'''if''' معمولاً برای بررسی شرایط و روابط منطقی مناسب است:
<syntaxhighlight lang="go">
if age >= 18 && hasTicket {
fmt.Println("ورود مجاز است.")
}
</syntaxhighlight>
'''switch''' زمانی میتواند مناسب باشد که یک مقدار را با چند حالت مختلف مقایسه کنیم:
<syntaxhighlight lang="go">
switch command {
case "start":
fmt.Println("شروع")
case "stop":
fmt.Println("توقف")
case "pause":
fmt.Println("مکث")
}
</syntaxhighlight>
برای شرطهای پیچیده و وابسته به چند رابطهٔ منطقی، '''if''' معمولاً انتخاب طبیعیتری است. برای چند حالت مشخص و مجزا، '''switch''' میتواند کد را خواناتر کند.
== مثال کامل: تشخیص نمره ==
در مثال زیر نمرهٔ یک دانشآموز بررسی میشود.
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
score := 82
if score < 0 || score > 100 {
fmt.Println("نمره نامعتبر است.")
} else if score >= 90 {
fmt.Println("عالی")
} else if score >= 80 {
fmt.Println("خیلی خوب")
} else if score >= 70 {
fmt.Println("خوب")
} else if score >= 60 {
fmt.Println("قابل قبول")
} else {
fmt.Println("مردود")
}
} </syntaxhighlight>
در این برنامه ابتدا معتبر بودن نمره بررسی میشود. سپس نمره از مقدارهای بالاتر به پایینتر بررسی میشود.
== مثال کامل: بررسی دسترسی کاربر ==
فرض کنید یک برنامه باید بر اساس سن و وضعیت حساب کاربر تصمیم بگیرد.
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
age := 21
active := true
if age >= 18 && active {
fmt.Println("دسترسی مجاز است.")
} else if !active {
fmt.Println("حساب کاربر فعال نیست.")
} else {
fmt.Println("کاربر به سن مجاز نرسیده است.")
}
} </syntaxhighlight>
در این مثال:
* اگر سن حداقل ۱۸ سال و حساب فعال باشد، دسترسی داده میشود.
* اگر حساب فعال نباشد، پیام مربوط به غیرفعال بودن حساب نمایش داده میشود.
* در غیر این صورت، کاربر به سن مورد نیاز نرسیده است.
== اشتباههای رایج ==
=== اشتباه در استفاده از = و == ===
برای مقایسه باید از '''==''' استفاده شود.
نمونهٔ درست:
<syntaxhighlight lang="go">
if x == 10 {
fmt.Println("x برابر 10 است.")
}
</syntaxhighlight>
=== فراموش کردن آکولادها ===
بدنهٔ شرط باید داخل آکولاد قرار بگیرد:
<syntaxhighlight lang="go">
if x > 0 {
fmt.Println("مثبت")
}
</syntaxhighlight>
=== پیچیده کردن بیش از حد شرطها ===
گاهی یک شرط بسیار طولانی نوشته میشود که خواندن آن دشوار است. در چنین شرایطی بهتر است منطق برنامه به قسمتهای سادهتر تقسیم شود یا از متغیرهای توضیحی استفاده شود.
برای مثال:
<syntaxhighlight lang="go">
isAdult := age >= 18
hasPermission := permission == "admin"
if isAdult && hasPermission {
fmt.Println("دسترسی مجاز است.")
} </syntaxhighlight>
این روش میتواند معنای شرط را واضحتر کند.
=== ترتیب نامناسب شرطها ===
در زنجیرهٔ '''if''' و '''else if''' ترتیب شرطها اهمیت دارد.
مثال:
<syntaxhighlight lang="go">
score := 95
if score >= 50 {
fmt.Println("قبول")
} else if score >= 90 {
fmt.Println("عالی")
} </syntaxhighlight>
در این مثال شرط اول برای نمرهٔ ۹۵ درست است؛ بنابراین شرط دوم هرگز اجرا نمیشود.
اگر هدف این باشد که نمرههای ۹۰ به بالا «عالی» محسوب شوند، ترتیب باید اصلاح شود:
<syntaxhighlight lang="go">
if score >= 90 {
fmt.Println("عالی")
} else if score >= 50 {
fmt.Println("قبول")
} else {
fmt.Println("مردود")
}
</syntaxhighlight>
== نکات مهم ==
* شرطها در گو بر اساس مقدارهای '''true''' و '''false''' تصمیمگیری میکنند.
* برای مقایسه از عملگرهایی مانند '''==''', '''!=''', '''>''', '''<''', '''>=''' و '''<=''' استفاده میشود.
* برای ترکیب شرطها از '''&&''', '''||''' و '''!''' استفاده میشود.
* در گو میتوان در ابتدای '''if''' یک متغیر محلی تعریف کرد.
* متغیری که در ابتدای '''if''' تعریف میشود، محدودهٔ محدودی دارد.
* '''else''' باید در همان ساختار '''if''' قرار داشته باشد.
* در '''switch''' معمولاً نیازی به '''break''' نیست.
* '''fallthrough''' برای ادامه دادن اجرای یک case به case بعدی استفاده میشود.
* برای چند حالت مشخص، '''switch''' میتواند خوانایی بیشتری نسبت به زنجیرهٔ طولانی '''else if''' داشته باشد.
* شرطهای پیچیده بهتر است تا حد امکان خوانا و قابل فهم نوشته شوند.
== تمرینها ==
=== تمرین ۱: مثبت، منفی یا صفر ===
برنامهای بنویسید که یک عدد صحیح را دریافت کند و مشخص کند:
* عدد مثبت است.
* عدد منفی است.
* یا صفر است.
'''راهنما:''' از '''if'''، '''else if''' و '''else''' استفاده کنید.
=== تمرین ۲: تشخیص زوج یا فرد ===
برنامهای بنویسید که مشخص کند یک عدد زوج است یا فرد.
'''راهنما:''' از عملگر باقیماندهٔ تقسیم '''%''' استفاده کنید.
برای مثال:
<syntaxhighlight lang="go">
number%2 == 0
</syntaxhighlight>
اگر این شرط درست باشد، عدد زوج است.
=== تمرین ۳: بررسی سن ===
برنامهای بنویسید که متغیر '''age''' را بررسی کند:
* کمتر از ۱۳: کودک
* از ۱۳ تا کمتر از ۱۸: نوجوان
* ۱۸ سال یا بیشتر: بزرگسال
=== تمرین ۴: سیستم نمرهدهی ===
برنامهای بنویسید که یک نمره از ۰ تا ۱۰۰ دریافت کند و نتیجهٔ زیر را نمایش دهد:
* ۹۰ تا ۱۰۰: عالی
* ۸۰ تا ۸۹: خیلی خوب
* ۷۰ تا ۷۹: خوب
* ۶۰ تا ۶۹: قابل قبول
* کمتر از ۶۰: مردود
* خارج از بازهٔ ۰ تا ۱۰۰: نمرهٔ نامعتبر
=== تمرین ۵: بررسی دسترسی ===
سه متغیر زیر را در نظر بگیرید:
<syntaxhighlight lang="go">
age := 22
hasAccount := true
isActive := true
</syntaxhighlight>
برنامهای بنویسید که فقط زمانی پیام '''دسترسی مجاز است''' را چاپ کند که کاربر حداقل ۱۸ سال داشته باشد، حساب داشته باشد و حساب او فعال باشد.
=== تمرین ۶: استفاده از switch ===
برنامهای بنویسید که عددی بین ۱ تا ۷ دریافت کند و نام روز مربوط به آن را نمایش دهد.
برای مثال:
<syntaxhighlight lang="go">
1 -> شنبه
2 -> یکشنبه
3 -> دوشنبه
</syntaxhighlight>
برای پیادهسازی این تمرین از '''switch''' استفاده کنید.
=== تمرین ۷: ماشین حساب ساده ===
دو عدد و یک عملگر مانند '''+'''، '''-'''، '''*''' یا '''/''' در نظر بگیرید. سپس با استفاده از '''switch''' عملیات مناسب را انجام دهید.
نمونهٔ ورودی:
<syntaxhighlight lang="go">
a := 20
b := 5
operator := "/"
</syntaxhighlight>
خروجی مورد انتظار:
<syntaxhighlight lang="text">
4
</syntaxhighlight>
=== تمرین ۸: تشخیص سال کبیسه ===
برنامهای بنویسید که یک سال را دریافت کند و مشخص کند آیا سال کبیسه است یا خیر.
'''راهنما:''' برای حل این تمرین باید بتوانید چند شرط منطقی را با '''&&''' و '''||''' ترکیب کنید.
== حل تمرینها ==
* در صفحه [[زبان برنامهنویسی گو/حل تمرینها/شرطها|حل تمرینها/شرطها]] میتوانید جواب تمرین ها را پیدا کنید.
== جمعبندی ==
شرطها یکی از پایهایترین بخشهای برنامهنویسی هستند و به برنامه اجازه میدهند بر اساس وضعیت دادهها تصمیمگیری کند. در گو برای این کار میتوان از '''if'''، '''else if''' و '''else''' استفاده کرد. برای ترکیب شرایط نیز عملگرهای '''&&'''، '''||''' و '''!''' در دسترس هستند.
هنگامی که برنامه باید میان چند حالت مشخص انتخاب کند، '''switch''' میتواند ساختار مناسبتری ایجاد کند. همچنین گو امکان تعریف یک متغیر در ابتدای عبارت '''if''' و استفاده از '''switch''' بدون عبارت را فراهم میکند.
تسلط بر شرطها برای یادگیری مباحثی مانند [[زبان برنامه نویسی سی/حلقه do while و while]]، [[زبان برنامهنویسی گو/تعریف و استفاده از توابع]] ضروری است.
eihpje9jceri0luee4b6t6molxbaxha
135343
135342
2026-09-29T09:05:35Z
Fwldom
26269
اصلاح ارقام، اصلاح فاصلهٔ مجازی، اصلاح نویسههای عربی، ابرابزار، اصلاح املا
135343
wikitext
text/x-wiki
{{سرصفحه
| عنوان = شرطها
| قسمت =
| قبلی = [[زبان برنامهنویسی گو/عملگرها و عبارات|عملگرها و عبارات]]
| بعدی = [[زبان برنامهنویسی گو/حلقهها|حلقهها]]
| یادداشت = [[زبان برنامهنویسی گو]]
}}
== شرطها در گو ==
در برنامهنویسی لازم است برنامه بر اساس یک وضعیت یا یک شرط، تصمیم متفاوتی بگیرد. برای مثال، میتوان بررسی کرد که آیا یک عدد مثبت است یا منفی، آیا کاربر به سن مشخصی رسیده است، یا آیا یک رمز عبور صحیح وارد شده است.
در زبان برنامهنویسی گو، برای اجرای دستورات بهصورت شرطی از دستورهای '''if'''، '''else if''' و '''else''' استفاده میشود. همچنین گو دارای دستور '''switch''' برای بررسی چند حالت مختلف است.
در این صفحه با ساختار شرطها، عملگرهای مقایسهای و منطقی، شرطهای تو در تو، دستور switch و نکات مهم مربوط به شرطها در گو آشنا میشوید.
== شرط if ==
سادهترین شکل شرط در گو، دستور '''if''' است. اگر عبارت شرطی مقدار '''true''' داشته باشد، دستورات داخل بلوک اجرا میشوند و اگر مقدار آن '''false''' باشد، این دستورات اجرا نمیشوند.
ساختار کلی:
<syntaxhighlight lang="go">
if شرط {
// دستورها
}
</syntaxhighlight>
برای مثال:
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
age := 20
if age >= 18 {
fmt.Println("شما بزرگسال هستید.")
}
} </syntaxhighlight>
در این مثال ابتدا متغیر '''age''' برابر ۲۰ قرار گرفته است. سپس شرط '''age >= ۱۸''' بررسی میشود. چون این شرط درست است، پیام داخل بلوک '''if''' چاپ خواهد شد.
=== آکولادها در if ===
در گو، آکولادهای '''{''' و '''}''' بخشی از ساختار دستور '''if''' هستند و باید استفاده شوند. برخلاف بعضی زبانها، نمیتوان بدنهٔ شرط را بدون آکولاد نوشت.
نمونهٔ صحیح:
<syntaxhighlight lang="go">
if age >= 18 {
fmt.Println("Adult")
}
</syntaxhighlight>
* بیشتر بخوانید: [[زبان برنامهنویسی گو/بلوکهای کد|بلوکهای کد]]
== شرط if و else ==
اگر بخواهیم در صورت نادرست بودن شرط، دستور دیگری اجرا شود، از '''else''' استفاده میکنیم.
ساختار:
<syntaxhighlight lang="go">
if شرط {
// اگر شرط درست باشد
} else {
// اگر شرط نادرست باشد
}
</syntaxhighlight>
مثال:
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
number := 7
if number > 0 {
fmt.Println("عدد مثبت است.")
} else {
fmt.Println("عدد مثبت نیست.")
}
} </syntaxhighlight>
در این مثال چون مقدار '''number''' برابر ۷ است، شرط '''number > 0''' درست است و پیام اول نمایش داده میشود.
== شرط else if ==
گاهی لازم است چند شرط مختلف را بهترتیب بررسی کنیم. در این حالت میتوان از '''else if''' استفاده کرد.
مثال:
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
number := -5
if number > 0 {
fmt.Println("مثبت")
} else if number < 0 {
fmt.Println("منفی")
} else {
fmt.Println("صفر")
}
} </syntaxhighlight>
برنامه شرطها را از بالا به پایین بررسی میکند. به محض اینکه یکی از شرطها درست باشد، بلوک مربوط به آن اجرا میشود و شرطهای بعدی بررسی نمیشوند.
در این مثال:
# ابتدا بررسی میشود که آیا عدد بزرگتر از صفر است.
# سپس بررسی میشود که آیا عدد کوچکتر از صفر است.
# اگر هیچکدام درست نباشند، عدد باید صفر باشد.
== عملگرهای مقایسهای ==
برای ساختن شرطها معمولاً از عملگرهای مقایسهای استفاده میشود.
* بیشتر بخوانید: [[زبان برنامهنویسی گو/عملگرها و عبارات|عملگرها و عبارات]]
برای مثال:
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
a := 10
b := 20
if a < b {
fmt.Println("a کوچکتر از b است.")
}
} </syntaxhighlight>
=== تفاوت == و = ===
یکی از اشتباههای رایج هنگام نوشتن شرط این است که '''=''' با '''==''' اشتباه گرفته شود.
علامت '''=''' برای انتساب مقدار استفاده میشود:
<syntaxhighlight lang="go">
age := 20
age = 21
</syntaxhighlight>
اما '''==''' برای مقایسهٔ دو مقدار استفاده میشود:
<syntaxhighlight lang="go">
if age == 21 {
fmt.Println("سن برابر ۲۱ است.")
}
</syntaxhighlight>
بنابراین این دو عمل متفاوتی انجام میدهند.
== عملگرهای منطقی ==
برای ترکیب چند شرط میتوان از عملگرهای منطقی استفاده کرد.
=== عملگر AND یا ===
عملگر '''&&''' زمانی مقدار '''true''' دارد که هر دو شرط درست باشند.
مثال:
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
age := 20
hasCard := true
if age >= 18 && hasCard {
fmt.Println("ورود مجاز است.")
}
} </syntaxhighlight>
در اینجا هر دو شرط باید درست باشند:
* سن باید حداقل ۱۸ باشد.
* مقدار '''hasCard''' باید '''true''' باشد.
=== عملگر OR یا || ===
عملگر '''||''' زمانی '''true''' است که حداقل یکی از شرطها درست باشد.
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
day := "Friday"
if day == "Friday" || day == "Saturday" {
fmt.Println("تعطیل است.")
}
} </syntaxhighlight>
در این مثال اگر روز جمعه یا شنبه باشد، شرط درست خواهد بود.
=== عملگر NOT یا! ===
عملگر '''!''' نتیجهٔ یک مقدار منطقی را معکوس میکند.
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
isLocked := false
if !isLocked {
fmt.Println("در باز است.")
}
} </syntaxhighlight>
چون مقدار '''isLocked''' برابر '''false''' است، مقدار '''!isLocked''' برابر '''true''' خواهد بود.
== ترکیب چند شرط ==
میتوان چند عملگر منطقی را در یک شرط استفاده کرد.
برای مثال:
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
age := 25
score := 85
if age >= 18 && score >= 60 {
fmt.Println("شرایط قبول شدن را دارید.")
} else {
fmt.Println("شرایط قبول شدن را ندارید.")
}
} </syntaxhighlight>
هنگام ترکیب شرطهای پیچیده، استفاده از پرانتز میتواند خوانایی برنامه را افزایش دهد.
<syntaxhighlight lang="go">
if (age >= 18 && score >= 60) || isAdmin {
fmt.Println("دسترسی مجاز است.")
}
</syntaxhighlight>
== مقداردهی در خود if ==
یکی از ویژگیهای مهم گو این است که میتوان یک دستور ساده را قبل از شرط و در همان عبارت '''if''' قرار داد.
ساختار:
<syntaxhighlight lang="go">
if مقداردهی; شرط {
// دستورها
}
</syntaxhighlight>
برای مثال:
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
if number := 10; number > 0 {
fmt.Println("عدد مثبت است.")
}
} </syntaxhighlight>
در این مثال متغیر '''number''' در بخش آغازین '''if''' ساخته شده است.
محدودهٔ این متغیر به شرط و بلوکهای مرتبط با همان '''if''' محدود میشود؛ بنابراین نمیتوان بعد از پایان این ساختار از '''number''' استفاده کرد.
مثال:
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
if number := 10; number > 0 {
fmt.Println(number)
}
// اینجا number قابل استفاده نیست.
} </syntaxhighlight>
این قابلیت زمانی مفید است که یک مقدار فقط برای بررسی یک شرط مورد نیاز باشد.
== شرطهای تو در تو ==
میتوان یک '''if''' را داخل '''if''' دیگری قرار داد. به این ساختار شرط تو در تو یا '''nested if''' گفته میشود.
مثال:
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
age := 20
hasTicket := true
if age >= 18 {
if hasTicket {
fmt.Println("ورود مجاز است.")
}
}
} </syntaxhighlight>
در این مثال ابتدا سن بررسی میشود و سپس در صورت بزرگسال بودن، داشتن بلیت بررسی میشود.
البته در بسیاری از موارد میتوان چنین کدی را سادهتر نوشت:
<syntaxhighlight lang="go">
if age >= 18 && hasTicket {
fmt.Println("ورود مجاز است.")
}
</syntaxhighlight>
بنابراین باید بین خوانایی و پیچیدگی شرطها تعادل برقرار کرد.
== دستور switch ==
وقتی چند مقدار یا حالت مشخص داریم، استفادهٔ زیاد از '''else if''' میتواند کد را طولانی کند. برای چنین مواردی '''switch''' گزینهٔ مناسبی است.
ساختار ساده:
<syntaxhighlight lang="go">
switch مقدار {
case مقدار۱:
// دستورها
case مقدار۲:
// دستورها
default:
// اگر هیچ case ای مطابقت نداشت
}
</syntaxhighlight>
مثال:
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
day := 2
switch day {
case 1:
fmt.Println("شنبه")
case 2:
fmt.Println("یکشنبه")
case 3:
fmt.Println("دوشنبه")
default:
fmt.Println("روز نامعتبر")
}
} </syntaxhighlight>
در این مثال مقدار '''day''' با مقدارهای مختلف در '''case''' مقایسه میشود.
=== default در switch ===
بخش '''default''' اختیاری است و زمانی اجرا میشود که هیچیک از '''case'''ها مطابقت نداشته باشند.
<syntaxhighlight lang="go">
switch number {
case 1:
fmt.Println("یک")
case 2:
fmt.Println("دو")
default:
fmt.Println("عدد دیگری")
}
</syntaxhighlight>
== چند مقدار در یک case ==
در گو میتوان چند مقدار را در یک '''case''' قرار داد.
برای مثال:
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
day := "Friday"
switch day {
case "Friday", "Saturday":
fmt.Println("تعطیل")
default:
fmt.Println("روز کاری")
}
} </syntaxhighlight>
اگر مقدار '''day''' برابر هرکدام از دو مقدار مشخصشده باشد، همان بخش اجرا میشود.
== switch بدون عبارت ==
در گو میتوان '''switch''' را بدون قرار دادن یک عبارت بعد از کلمهٔ '''switch''' نوشت. در این حالت هر '''case''' میتواند یک شرط منطقی باشد.
مثال:
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
score := 75
switch {
case score >= 90:
fmt.Println("عالی")
case score >= 70:
fmt.Println("خوب")
case score >= 50:
fmt.Println("قبول")
default:
fmt.Println("مردود")
}
} </syntaxhighlight>
این روش در مواردی که چند شرط مختلف داریم میتواند خوانایی خوبی داشته باشد.
== break در switch ==
در بسیاری از زبانها پس از اجرای یک '''case''' در '''switch''' باید از '''break''' برای جلوگیری از اجرای case بعدی استفاده کرد.
در گو، رفتار پیشفرض '''switch''' این است که پس از اجرای case منطبقشده، اجرای switch پایان پیدا میکند؛ بنابراین معمولاً نیازی به نوشتن '''break''' نیست.
مثال:
<syntaxhighlight lang="go">
switch number {
case 1:
fmt.Println("یک")
case 2:
fmt.Println("دو")
case 3:
fmt.Println("سه")
}
</syntaxhighlight>
اگر '''number''' برابر ۲ باشد، فقط بخش مربوط به '''case 2''' اجرا میشود.
== استفاده از fallthrough ==
اگر بخواهیم اجرای برنامه از یک '''case''' به '''case''' بعدی ادامه پیدا کند، میتوان از '''fallthrough''' استفاده کرد.
مثال:
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
number := 1
switch number {
case 1:
fmt.Println("case 1")
fallthrough
case 2:
fmt.Println("case 2")
default:
fmt.Println("default")
}
} </syntaxhighlight>
در این مثال، با توجه به وجود '''fallthrough'''، پس از اجرای '''case 1'''، بخش '''case 2''' نیز اجرا میشود.
'''fallthrough''' باید با دقت استفاده شود، زیرا منطق معمول '''switch''' در گو این است که پس از اجرای یک case، از switch خارج شویم.
== مقایسهٔ if و switch ==
هر دو ساختار برای تصمیمگیری در برنامه استفاده میشوند، اما کاربرد آنها همیشه یکسان نیست.
'''if''' معمولاً برای بررسی شرایط و روابط منطقی مناسب است:
<syntaxhighlight lang="go">
if age >= 18 && hasTicket {
fmt.Println("ورود مجاز است.")
}
</syntaxhighlight>
'''switch''' زمانی میتواند مناسب باشد که یک مقدار را با چند حالت مختلف مقایسه کنیم:
<syntaxhighlight lang="go">
switch command {
case "start":
fmt.Println("شروع")
case "stop":
fmt.Println("توقف")
case "pause":
fmt.Println("مکث")
}
</syntaxhighlight>
برای شرطهای پیچیده و وابسته به چند رابطهٔ منطقی، '''if''' معمولاً انتخاب طبیعیتری است. برای چند حالت مشخص و مجزا، '''switch''' میتواند کد را خواناتر کند.
== مثال کامل: تشخیص نمره ==
در مثال زیر نمرهٔ یک دانشآموز بررسی میشود.
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
score := 82
if score < 0 || score > 100 {
fmt.Println("نمره نامعتبر است.")
} else if score >= 90 {
fmt.Println("عالی")
} else if score >= 80 {
fmt.Println("خیلی خوب")
} else if score >= 70 {
fmt.Println("خوب")
} else if score >= 60 {
fmt.Println("قابل قبول")
} else {
fmt.Println("مردود")
}
} </syntaxhighlight>
در این برنامه ابتدا معتبر بودن نمره بررسی میشود. سپس نمره از مقدارهای بالاتر به پایینتر بررسی میشود.
== مثال کامل: بررسی دسترسی کاربر ==
فرض کنید یک برنامه باید بر اساس سن و وضعیت حساب کاربر تصمیم بگیرد.
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
age := 21
active := true
if age >= 18 && active {
fmt.Println("دسترسی مجاز است.")
} else if !active {
fmt.Println("حساب کاربر فعال نیست.")
} else {
fmt.Println("کاربر به سن مجاز نرسیده است.")
}
} </syntaxhighlight>
در این مثال:
* اگر سن حداقل ۱۸ سال و حساب فعال باشد، دسترسی داده میشود.
* اگر حساب فعال نباشد، پیام مربوط به غیرفعال بودن حساب نمایش داده میشود.
* در غیر این صورت، کاربر به سن مورد نیاز نرسیده است.
== اشتباههای رایج ==
=== اشتباه در استفاده از = و == ===
برای مقایسه باید از '''==''' استفاده شود.
نمونهٔ درست:
<syntaxhighlight lang="go">
if x == 10 {
fmt.Println("x برابر 10 است.")
}
</syntaxhighlight>
=== فراموش کردن آکولادها ===
بدنهٔ شرط باید داخل آکولاد قرار بگیرد:
<syntaxhighlight lang="go">
if x > 0 {
fmt.Println("مثبت")
}
</syntaxhighlight>
=== پیچیده کردن بیش از حد شرطها ===
گاهی یک شرط بسیار طولانی نوشته میشود که خواندن آن دشوار است. در چنین شرایطی بهتر است منطق برنامه به قسمتهای سادهتر تقسیم شود یا از متغیرهای توضیحی استفاده شود.
برای مثال:
<syntaxhighlight lang="go">
isAdult := age >= 18
hasPermission := permission == "admin"
if isAdult && hasPermission {
fmt.Println("دسترسی مجاز است.")
} </syntaxhighlight>
این روش میتواند معنای شرط را واضحتر کند.
=== ترتیب نامناسب شرطها ===
در زنجیرهٔ '''if''' و '''else if''' ترتیب شرطها اهمیت دارد.
مثال:
<syntaxhighlight lang="go">
score := 95
if score >= 50 {
fmt.Println("قبول")
} else if score >= 90 {
fmt.Println("عالی")
} </syntaxhighlight>
در این مثال شرط اول برای نمرهٔ ۹۵ درست است؛ بنابراین شرط دوم هرگز اجرا نمیشود.
اگر هدف این باشد که نمرههای ۹۰ به بالا «عالی» محسوب شوند، ترتیب باید اصلاح شود:
<syntaxhighlight lang="go">
if score >= 90 {
fmt.Println("عالی")
} else if score >= 50 {
fmt.Println("قبول")
} else {
fmt.Println("مردود")
}
</syntaxhighlight>
== نکات مهم ==
* شرطها در گو بر اساس مقدارهای '''true''' و '''false''' تصمیمگیری میکنند.
* برای مقایسه از عملگرهایی مانند '''==''', '''!=''', '''>''', '''<''', '''>=''' و '''<=''' استفاده میشود.
* برای ترکیب شرطها از '''&&''', '''||''' و '''!''' استفاده میشود.
* در گو میتوان در ابتدای '''if''' یک متغیر محلی تعریف کرد.
* متغیری که در ابتدای '''if''' تعریف میشود، محدودهٔ محدودی دارد.
* '''else''' باید در همان ساختار '''if''' قرار داشته باشد.
* در '''switch''' معمولاً نیازی به '''break''' نیست.
* '''fallthrough''' برای ادامه دادن اجرای یک case به case بعدی استفاده میشود.
* برای چند حالت مشخص، '''switch''' میتواند خوانایی بیشتری نسبت به زنجیرهٔ طولانی '''else if''' داشته باشد.
* شرطهای پیچیده بهتر است تا حد امکان خوانا و قابل فهم نوشته شوند.
== تمرینها ==
=== تمرین ۱: مثبت، منفی یا صفر ===
برنامهای بنویسید که یک عدد صحیح را دریافت کند و مشخص کند:
* عدد مثبت است.
* عدد منفی است.
* یا صفر است.
'''راهنما:''' از '''if'''، '''else if''' و '''else''' استفاده کنید.
=== تمرین ۲: تشخیص زوج یا فرد ===
برنامهای بنویسید که مشخص کند یک عدد زوج است یا فرد.
'''راهنما:''' از عملگر باقیماندهٔ تقسیم '''%''' استفاده کنید.
برای مثال:
<syntaxhighlight lang="go">
number%2 == 0
</syntaxhighlight>
اگر این شرط درست باشد، عدد زوج است.
=== تمرین ۳: بررسی سن ===
برنامهای بنویسید که متغیر '''age''' را بررسی کند:
* کمتر از ۱۳: کودک
* از ۱۳ تا کمتر از ۱۸: نوجوان
* ۱۸ سال یا بیشتر: بزرگسال
=== تمرین ۴: سیستم نمرهدهی ===
برنامهای بنویسید که یک نمره از ۰ تا ۱۰۰ دریافت کند و نتیجهٔ زیر را نمایش دهد:
* ۹۰ تا ۱۰۰: عالی
* ۸۰ تا ۸۹: خیلی خوب
* ۷۰ تا ۷۹: خوب
* ۶۰ تا ۶۹: قابل قبول
* کمتر از ۶۰: مردود
* خارج از بازهٔ ۰ تا ۱۰۰: نمرهٔ نامعتبر
=== تمرین ۵: بررسی دسترسی ===
سه متغیر زیر را در نظر بگیرید:
<syntaxhighlight lang="go">
age := 22
hasAccount := true
isActive := true
</syntaxhighlight>
برنامهای بنویسید که فقط زمانی پیام '''دسترسی مجاز است''' را چاپ کند که کاربر حداقل ۱۸ سال داشته باشد، حساب داشته باشد و حساب او فعال باشد.
=== تمرین ۶: استفاده از switch ===
برنامهای بنویسید که عددی بین ۱ تا ۷ دریافت کند و نام روز مربوط به آن را نمایش دهد.
برای مثال:
<syntaxhighlight lang="go">
1 -> شنبه
2 -> یکشنبه
3 -> دوشنبه
</syntaxhighlight>
برای پیادهسازی این تمرین از '''switch''' استفاده کنید.
=== تمرین ۷: ماشین حساب ساده ===
دو عدد و یک عملگر مانند '''+'''، '''-'''، '''*''' یا '''/''' در نظر بگیرید. سپس با استفاده از '''switch''' عملیات مناسب را انجام دهید.
نمونهٔ ورودی:
<syntaxhighlight lang="go">
a := 20
b := 5
operator := "/"
</syntaxhighlight>
خروجی مورد انتظار:
<syntaxhighlight lang="text">
4
</syntaxhighlight>
=== تمرین ۸: تشخیص سال کبیسه ===
برنامهای بنویسید که یک سال را دریافت کند و مشخص کند آیا سال کبیسه است یا خیر.
'''راهنما:''' برای حل این تمرین باید بتوانید چند شرط منطقی را با '''&&''' و '''||''' ترکیب کنید.
== حل تمرینها ==
* در صفحه [[زبان برنامهنویسی گو/حل تمرینها/شرطها|حل تمرینها/شرطها]] میتوانید جواب تمرینها را پیدا کنید.
== جمعبندی ==
شرطها یکی از پایهایترین بخشهای برنامهنویسی هستند و به برنامه اجازه میدهند بر اساس وضعیت دادهها تصمیمگیری کند. در گو برای این کار میتوان از '''if'''، '''else if''' و '''else''' استفاده کرد. برای ترکیب شرایط نیز عملگرهای '''&&'''، '''||''' و '''!''' در دسترس هستند.
هنگامی که برنامه باید میان چند حالت مشخص انتخاب کند، '''switch''' میتواند ساختار مناسبتری ایجاد کند. همچنین گو امکان تعریف یک متغیر در ابتدای عبارت '''if''' و استفاده از '''switch''' بدون عبارت را فراهم میکند.
تسلط بر شرطها برای یادگیری مباحثی مانند [[زبان برنامه نویسی سی/حلقه do while و while]]، [[زبان برنامهنویسی گو/تعریف و استفاده از توابع]] ضروری است.
m42vzk44y00sp347drh5jbh030cxrix
135346
135343
2026-09-29T09:08:18Z
Fwldom
26269
اصلاح سجاوندی، اصلاح املا، اصلاح نویسه
135346
wikitext
text/x-wiki
{{سرصفحه
| عنوان = شرطها
| قسمت =
| قبلی = [[زبان برنامهنویسی گو/عملگرها و عبارات|عملگرها و عبارات]]
| بعدی = [[زبان برنامهنویسی گو/حلقهها|حلقهها]]
| یادداشت = [[زبان برنامهنویسی گو]]
}}
== شرطها در گو ==
در برنامهنویسی لازم است برنامه بر اساس یک وضعیت یا یک شرط، تصمیم متفاوتی بگیرد. برای مثال، میتوان بررسی کرد که آیا یک عدد مثبت است یا منفی، آیا کاربر به سن مشخصی رسیده است، یا آیا یک رمز عبور صحیح وارد شده است.
در زبان برنامهنویسی گو، برای اجرای دستورات بهصورت شرطی از دستورهای '''if'''، '''else if''' و '''else''' استفاده میشود. همچنین گو دارای دستور '''switch''' برای بررسی چند حالت مختلف است.
در این صفحه با ساختار شرطها، عملگرهای مقایسهای و منطقی، شرطهای تو در تو، دستور switch و نکات مهم مربوط به شرطها در گو آشنا میشوید.
== شرط if ==
سادهترین شکل شرط در گو، دستور '''if''' است. اگر عبارت شرطی مقدار '''true''' داشته باشد، دستورات داخل بلوک اجرا میشوند و اگر مقدار آن '''false''' باشد، این دستورات اجرا نمیشوند.
ساختار کلی:
<syntaxhighlight lang="go">
if شرط {
// دستورها
}
</syntaxhighlight>
برای مثال:
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
age := 20
if age >= 18 {
fmt.Println("شما بزرگسال هستید.")
}
} </syntaxhighlight>
در این مثال ابتدا متغیر '''age''' برابر ۲۰ قرار گرفته است. سپس شرط '''age >= ۱۸''' بررسی میشود. چون این شرط درست است، پیام داخل بلوک '''if''' چاپ خواهد شد.
=== آکولادها در if ===
در گو، آکولادهای '''{''' و '''}''' بخشی از ساختار دستور '''if''' هستند و باید استفاده شوند. برخلاف بعضی زبانها، نمیتوان بدنهٔ شرط را بدون آکولاد نوشت.
نمونهٔ صحیح:
<syntaxhighlight lang="go">
if age >= 18 {
fmt.Println("Adult")
}
</syntaxhighlight>
* بیشتر بخوانید: [[زبان برنامهنویسی گو/بلوکهای کد|بلوکهای کد]]
== شرط if و else ==
اگر بخواهیم در صورت نادرست بودن شرط، دستور دیگری اجرا شود، از '''else''' استفاده میکنیم.
ساختار:
<syntaxhighlight lang="go">
if شرط {
// اگر شرط درست باشد
} else {
// اگر شرط نادرست باشد
}
</syntaxhighlight>
مثال:
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
number := 7
if number > 0 {
fmt.Println("عدد مثبت است.")
} else {
fmt.Println("عدد مثبت نیست.")
}
} </syntaxhighlight>
در این مثال چون مقدار '''number''' برابر ۷ است، شرط '''number > 0''' درست است و پیام اول نمایش داده میشود.
== شرط else if ==
گاهی لازم است چند شرط مختلف را بهترتیب بررسی کنیم. در این حالت میتوان از '''else if''' استفاده کرد.
مثال:
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
number := -5
if number > 0 {
fmt.Println("مثبت")
} else if number < 0 {
fmt.Println("منفی")
} else {
fmt.Println("صفر")
}
} </syntaxhighlight>
برنامه شرطها را از بالا به پایین بررسی میکند. به محض اینکه یکی از شرطها درست باشد، بلوک مربوط به آن اجرا میشود و شرطهای بعدی بررسی نمیشوند.
در این مثال:
# ابتدا بررسی میشود که آیا عدد بزرگتر از صفر است.
# سپس بررسی میشود که آیا عدد کوچکتر از صفر است.
# اگر هیچکدام درست نباشند، عدد باید صفر باشد.
== عملگرهای مقایسهای ==
برای ساختن شرطها معمولاً از عملگرهای مقایسهای استفاده میشود.
* بیشتر بخوانید: [[زبان برنامهنویسی گو/عملگرها و عبارات|عملگرها و عبارات]]
برای مثال:
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
a := 10
b := 20
if a < b {
fmt.Println("a کوچکتر از b است.")
}
} </syntaxhighlight>
=== تفاوت == و = ===
یکی از اشتباههای رایج هنگام نوشتن شرط این است که '''=''' با '''==''' اشتباه گرفته شود.
علامت '''=''' برای انتساب مقدار استفاده میشود:
<syntaxhighlight lang="go">
age := 20
age = 21
</syntaxhighlight>
اما '''==''' برای مقایسهٔ دو مقدار استفاده میشود:
<syntaxhighlight lang="go">
if age == 21 {
fmt.Println("سن برابر ۲۱ است.")
}
</syntaxhighlight>
بنابراین این دو عمل متفاوتی انجام میدهند.
== عملگرهای منطقی ==
برای ترکیب چند شرط میتوان از عملگرهای منطقی استفاده کرد.
=== عملگر AND یا ===
عملگر '''&&''' زمانی مقدار '''true''' دارد که هر دو شرط درست باشند.
مثال:
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
age := 20
hasCard := true
if age >= 18 && hasCard {
fmt.Println("ورود مجاز است.")
}
} </syntaxhighlight>
در اینجا هر دو شرط باید درست باشند:
* سن باید حداقل ۱۸ باشد.
* مقدار '''hasCard''' باید '''true''' باشد.
=== عملگر OR یا || ===
عملگر '''||''' زمانی '''true''' است که حداقل یکی از شرطها درست باشد.
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
day := "Friday"
if day == "Friday" || day == "Saturday" {
fmt.Println("تعطیل است.")
}
} </syntaxhighlight>
در این مثال اگر روز جمعه یا شنبه باشد، شرط درست خواهد بود.
=== عملگر NOT یا! ===
عملگر '''!''' نتیجهٔ یک مقدار منطقی را معکوس میکند.
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
isLocked := false
if !isLocked {
fmt.Println("در باز است.")
}
} </syntaxhighlight>
چون مقدار '''isLocked''' برابر '''false''' است، مقدار '''!isLocked''' برابر '''true''' خواهد بود.
== ترکیب چند شرط ==
میتوان چند عملگر منطقی را در یک شرط استفاده کرد.
برای مثال:
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
age := 25
score := 85
if age >= 18 && score >= 60 {
fmt.Println("شرایط قبول شدن را دارید.")
} else {
fmt.Println("شرایط قبول شدن را ندارید.")
}
} </syntaxhighlight>
هنگام ترکیب شرطهای پیچیده، استفاده از پرانتز میتواند خوانایی برنامه را افزایش دهد.
<syntaxhighlight lang="go">
if (age >= 18 && score >= 60) || isAdmin {
fmt.Println("دسترسی مجاز است.")
}
</syntaxhighlight>
== مقداردهی در خود if ==
یکی از ویژگیهای مهم گو این است که میتوان یک دستور ساده را قبل از شرط و در همان عبارت '''if''' قرار داد.
ساختار:
<syntaxhighlight lang="go">
if مقداردهی; شرط {
// دستورها
}
</syntaxhighlight>
برای مثال:
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
if number := 10; number > 0 {
fmt.Println("عدد مثبت است.")
}
} </syntaxhighlight>
در این مثال متغیر '''number''' در بخش آغازین '''if''' ساخته شده است.
محدودهٔ این متغیر به شرط و بلوکهای مرتبط با همان '''if''' محدود میشود؛ بنابراین نمیتوان بعد از پایان این ساختار از '''number''' استفاده کرد.
مثال:
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
if number := 10; number > 0 {
fmt.Println(number)
}
// اینجا number قابل استفاده نیست.
} </syntaxhighlight>
این قابلیت زمانی مفید است که یک مقدار فقط برای بررسی یک شرط مورد نیاز باشد.
== شرطهای تو در تو ==
میتوان یک '''if''' را داخل '''if''' دیگری قرار داد. به این ساختار شرط تو در تو یا '''nested if''' گفته میشود.
مثال:
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
age := 20
hasTicket := true
if age >= 18 {
if hasTicket {
fmt.Println("ورود مجاز است.")
}
}
} </syntaxhighlight>
در این مثال ابتدا سن بررسی میشود و سپس در صورت بزرگسال بودن، داشتن بلیت بررسی میشود.
البته در بسیاری از موارد میتوان چنین کدی را سادهتر نوشت:
<syntaxhighlight lang="go">
if age >= 18 && hasTicket {
fmt.Println("ورود مجاز است.")
}
</syntaxhighlight>
بنابراین باید بین خوانایی و پیچیدگی شرطها تعادل برقرار کرد.
== دستور switch ==
وقتی چند مقدار یا حالت مشخص داریم، استفادهٔ زیاد از '''else if''' میتواند کد را طولانی کند. برای چنین مواردی '''switch''' گزینهٔ مناسبی است.
ساختار ساده:
<syntaxhighlight lang="go">
switch مقدار {
case مقدار۱:
// دستورها
case مقدار۲:
// دستورها
default:
// اگر هیچ case ای مطابقت نداشت
}
</syntaxhighlight>
مثال:
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
day := 2
switch day {
case 1:
fmt.Println("شنبه")
case 2:
fmt.Println("یکشنبه")
case 3:
fmt.Println("دوشنبه")
default:
fmt.Println("روز نامعتبر")
}
} </syntaxhighlight>
در این مثال مقدار '''day''' با مقدارهای مختلف در '''case''' مقایسه میشود.
=== default در switch ===
بخش '''default''' اختیاری است و زمانی اجرا میشود که هیچیک از '''case'''ها مطابقت نداشته باشند.
<syntaxhighlight lang="go">
switch number {
case 1:
fmt.Println("یک")
case 2:
fmt.Println("دو")
default:
fmt.Println("عدد دیگری")
}
</syntaxhighlight>
== چند مقدار در یک case ==
در گو میتوان چند مقدار را در یک '''case''' قرار داد.
برای مثال:
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
day := "Friday"
switch day {
case "Friday", "Saturday":
fmt.Println("تعطیل")
default:
fmt.Println("روز کاری")
}
} </syntaxhighlight>
اگر مقدار '''day''' برابر هرکدام از دو مقدار مشخصشده باشد، همان بخش اجرا میشود.
== switch بدون عبارت ==
در گو میتوان '''switch''' را بدون قرار دادن یک عبارت بعد از کلمهٔ '''switch''' نوشت. در این حالت هر '''case''' میتواند یک شرط منطقی باشد.
مثال:
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
score := 75
switch {
case score >= 90:
fmt.Println("عالی")
case score >= 70:
fmt.Println("خوب")
case score >= 50:
fmt.Println("قبول")
default:
fmt.Println("مردود")
}
} </syntaxhighlight>
این روش در مواردی که چند شرط مختلف داریم میتواند خوانایی خوبی داشته باشد.
== break در switch ==
در بسیاری از زبانها پس از اجرای یک '''case''' در '''switch''' باید از '''break''' برای جلوگیری از اجرای case بعدی استفاده کرد.
در گو، رفتار پیشفرض '''switch''' این است که پس از اجرای case منطبقشده، اجرای switch پایان پیدا میکند؛ بنابراین معمولاً نیازی به نوشتن '''break''' نیست.
مثال:
<syntaxhighlight lang="go">
switch number {
case 1:
fmt.Println("یک")
case 2:
fmt.Println("دو")
case 3:
fmt.Println("سه")
}
</syntaxhighlight>
اگر '''number''' برابر ۲ باشد، فقط بخش مربوط به '''case 2''' اجرا میشود.
== استفاده از fallthrough ==
اگر بخواهیم اجرای برنامه از یک '''case''' به '''case''' بعدی ادامه پیدا کند، میتوان از '''fallthrough''' استفاده کرد.
مثال:
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
number := 1
switch number {
case 1:
fmt.Println("case 1")
fallthrough
case 2:
fmt.Println("case 2")
default:
fmt.Println("default")
}
} </syntaxhighlight>
در این مثال، با توجه به وجود '''fallthrough'''، پس از اجرای '''case 1'''، بخش '''case 2''' نیز اجرا میشود.
'''fallthrough''' باید با دقت استفاده شود، زیرا منطق معمول '''switch''' در گو این است که پس از اجرای یک case، از switch خارج شویم.
== مقایسهٔ if و switch ==
هر دو ساختار برای تصمیمگیری در برنامه استفاده میشوند، اما کاربرد آنها همیشه یکسان نیست.
'''if''' معمولاً برای بررسی شرایط و روابط منطقی مناسب است:
<syntaxhighlight lang="go">
if age >= 18 && hasTicket {
fmt.Println("ورود مجاز است.")
}
</syntaxhighlight>
'''switch''' زمانی میتواند مناسب باشد که یک مقدار را با چند حالت مختلف مقایسه کنیم:
<syntaxhighlight lang="go">
switch command {
case "start":
fmt.Println("شروع")
case "stop":
fmt.Println("توقف")
case "pause":
fmt.Println("مکث")
}
</syntaxhighlight>
برای شرطهای پیچیده و وابسته به چند رابطهٔ منطقی، '''if''' معمولاً انتخاب طبیعیتری است. برای چند حالت مشخص و مجزا، '''switch''' میتواند کد را خواناتر کند.
== مثال کامل: تشخیص نمره ==
در مثال زیر نمرهٔ یک دانشآموز بررسی میشود.
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
score := 82
if score < 0 || score > 100 {
fmt.Println("نمره نامعتبر است.")
} else if score >= 90 {
fmt.Println("عالی")
} else if score >= 80 {
fmt.Println("خیلی خوب")
} else if score >= 70 {
fmt.Println("خوب")
} else if score >= 60 {
fmt.Println("قابل قبول")
} else {
fmt.Println("مردود")
}
} </syntaxhighlight>
در این برنامه ابتدا معتبر بودن نمره بررسی میشود. سپس نمره از مقدارهای بالاتر به پایینتر بررسی میشود.
== مثال کامل: بررسی دسترسی کاربر ==
فرض کنید یک برنامه باید بر اساس سن و وضعیت حساب کاربر تصمیم بگیرد.
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
age := 21
active := true
if age >= 18 && active {
fmt.Println("دسترسی مجاز است.")
} else if !active {
fmt.Println("حساب کاربر فعال نیست.")
} else {
fmt.Println("کاربر به سن مجاز نرسیده است.")
}
} </syntaxhighlight>
در این مثال:
* اگر سن حداقل ۱۸ سال و حساب فعال باشد، دسترسی داده میشود.
* اگر حساب فعال نباشد، پیام مربوط به غیرفعال بودن حساب نمایش داده میشود.
* در غیر این صورت، کاربر به سن مورد نیاز نرسیده است.
== اشتباههای رایج ==
=== اشتباه در استفاده از = و == ===
برای مقایسه باید از '''==''' استفاده شود.
نمونهٔ درست:
<syntaxhighlight lang="go">
if x == 10 {
fmt.Println("x برابر 10 است.")
}
</syntaxhighlight>
=== فراموش کردن آکولادها ===
بدنهٔ شرط باید داخل آکولاد قرار بگیرد:
<syntaxhighlight lang="go">
if x > 0 {
fmt.Println("مثبت")
}
</syntaxhighlight>
=== پیچیده کردن بیش از حد شرطها ===
گاهی یک شرط بسیار طولانی نوشته میشود که خواندن آن دشوار است. در چنین شرایطی بهتر است منطق برنامه به قسمتهای سادهتر تقسیم شود یا از متغیرهای توضیحی استفاده شود.
برای مثال:
<syntaxhighlight lang="go">
isAdult := age >= 18
hasPermission := permission == "admin"
if isAdult && hasPermission {
fmt.Println("دسترسی مجاز است.")
} </syntaxhighlight>
این روش میتواند معنای شرط را واضحتر کند.
=== ترتیب نامناسب شرطها ===
در زنجیرهٔ '''if''' و '''else if''' ترتیب شرطها اهمیت دارد.
مثال:
<syntaxhighlight lang="go">
score := 95
if score >= 50 {
fmt.Println("قبول")
} else if score >= 90 {
fmt.Println("عالی")
} </syntaxhighlight>
در این مثال شرط اول برای نمرهٔ ۹۵ درست است؛ بنابراین شرط دوم هرگز اجرا نمیشود.
اگر هدف این باشد که نمرههای ۹۰ به بالا «عالی» محسوب شوند، ترتیب باید اصلاح شود:
<syntaxhighlight lang="go">
if score >= 90 {
fmt.Println("عالی")
} else if score >= 50 {
fmt.Println("قبول")
} else {
fmt.Println("مردود")
}
</syntaxhighlight>
== نکات مهم ==
* شرطها در گو بر اساس مقدارهای '''true''' و '''false''' تصمیمگیری میکنند.
* برای مقایسه از عملگرهایی مانند '''==''', '''!=''', '''>''', '''<''', '''>=''' و '''<=''' استفاده میشود.
* برای ترکیب شرطها از '''&&''', '''||''' و '''!''' استفاده میشود.
* در گو میتوان در ابتدای '''if''' یک متغیر محلی تعریف کرد.
* متغیری که در ابتدای '''if''' تعریف میشود، محدودهٔ محدودی دارد.
* '''else''' باید در همان ساختار '''if''' قرار داشته باشد.
* در '''switch''' معمولاً نیازی به '''break''' نیست.
* '''fallthrough''' برای ادامه دادن اجرای یک case به case بعدی استفاده میشود.
* برای چند حالت مشخص، '''switch''' میتواند خوانایی بیشتری نسبت به زنجیرهٔ طولانی '''else if''' داشته باشد.
* شرطهای پیچیده بهتر است تا حد امکان خوانا و قابل فهم نوشته شوند.
== تمرینها ==
=== تمرین ۱: مثبت، منفی یا صفر ===
برنامهای بنویسید که یک عدد صحیح را دریافت کند و مشخص کند:
* عدد مثبت است.
* عدد منفی است.
* یا صفر است.
'''راهنما:''' از '''if'''، '''else if''' و '''else''' استفاده کنید.
=== تمرین ۲: تشخیص زوج یا فرد ===
برنامهای بنویسید که مشخص کند یک عدد زوج است یا فرد.
'''راهنما:''' از عملگر باقیماندهٔ تقسیم '''%''' استفاده کنید.
برای مثال:
<syntaxhighlight lang="go">
number%2 == 0
</syntaxhighlight>
اگر این شرط درست باشد، عدد زوج است.
=== تمرین ۳: بررسی سن ===
برنامهای بنویسید که متغیر '''age''' را بررسی کند:
* کمتر از ۱۳: کودک
* از ۱۳ تا کمتر از ۱۸: نوجوان
* ۱۸ سال یا بیشتر: بزرگسال
=== تمرین ۴: سیستم نمرهدهی ===
برنامهای بنویسید که یک نمره از ۰ تا ۱۰۰ دریافت کند و نتیجهٔ زیر را نمایش دهد:
* ۹۰ تا ۱۰۰: عالی
* ۸۰ تا ۸۹: خیلی خوب
* ۷۰ تا ۷۹: خوب
* ۶۰ تا ۶۹: قابل قبول
* کمتر از ۶۰: مردود
* خارج از بازهٔ ۰ تا ۱۰۰: نمرهٔ نامعتبر
=== تمرین ۵: بررسی دسترسی ===
سه متغیر زیر را در نظر بگیرید:
<syntaxhighlight lang="go">
age := 22
hasAccount := true
isActive := true
</syntaxhighlight>
برنامهای بنویسید که فقط زمانی پیام '''دسترسی مجاز است''' را چاپ کند که کاربر حداقل ۱۸ سال داشته باشد، حساب داشته باشد و حساب او فعال باشد.
=== تمرین ۶: استفاده از switch ===
برنامهای بنویسید که عددی بین ۱ تا ۷ دریافت کند و نام روز مربوط به آن را نمایش دهد.
برای مثال:
<syntaxhighlight lang="go">
1 -> شنبه
2 -> یکشنبه
3 -> دوشنبه
</syntaxhighlight>
برای پیادهسازی این تمرین از '''switch''' استفاده کنید.
=== تمرین ۷: ماشین حساب ساده ===
دو عدد و یک عملگر مانند '''+'''، '''-'''، '''*''' یا '''/''' در نظر بگیرید. سپس با استفاده از '''switch''' عملیات مناسب را انجام دهید.
نمونهٔ ورودی:
<syntaxhighlight lang="go">
a := 20
b := 5
operator := "/"
</syntaxhighlight>
خروجی مورد انتظار:
<syntaxhighlight lang="text">
4
</syntaxhighlight>
=== تمرین ۸: تشخیص سال کبیسه ===
برنامهای بنویسید که یک سال را دریافت کند و مشخص کند آیا سال کبیسه است یا خیر.
'''راهنما:''' برای حل این تمرین باید بتوانید چند شرط منطقی را با '''&&''' و '''||''' ترکیب کنید.
== حل تمرینها ==
* در صفحه [[زبان برنامهنویسی گو/حل تمرینها/شرطها|حل تمرینها/شرطها]] میتوانید جواب تمرینها را پیدا کنید.
== جمعبندی ==
شرطها یکی از پایهایترین بخشهای برنامهنویسی هستند و به برنامه اجازه میدهند بر اساس وضعیت دادهها تصمیمگیری کند. در گو برای این کار میتوان از '''if'''، '''else if''' و '''else''' استفاده کرد. برای ترکیب شرایط نیز عملگرهای '''&&'''، '''||''' و '''!''' در دسترس هستند.
هنگامی که برنامه باید میان چند حالت مشخص انتخاب کند، '''switch''' میتواند ساختار مناسبتری ایجاد کند. همچنین گو امکان تعریف یک متغیر در ابتدای عبارت '''if''' و استفاده از '''switch''' بدون عبارت را فراهم میکند.
تسلط بر شرطها برای یادگیری مباحثی مانند [[زبان برنامه نویسی سی/حلقه do while و while]]، [[زبان برنامهنویسی گو/تعریف و استفاده از توابع]] ضروری است.
cfk9lna0o4iq99nl2zjx9wfg4bger7a
135356
135346
2026-09-29T09:16:44Z
Fwldom
26269
added [[Category:زبان برنامهنویسی گو]] با استفاده از ردهساز
135356
wikitext
text/x-wiki
{{سرصفحه
| عنوان = شرطها
| قسمت =
| قبلی = [[زبان برنامهنویسی گو/عملگرها و عبارات|عملگرها و عبارات]]
| بعدی = [[زبان برنامهنویسی گو/حلقهها|حلقهها]]
| یادداشت = [[زبان برنامهنویسی گو]]
}}
== شرطها در گو ==
در برنامهنویسی لازم است برنامه بر اساس یک وضعیت یا یک شرط، تصمیم متفاوتی بگیرد. برای مثال، میتوان بررسی کرد که آیا یک عدد مثبت است یا منفی، آیا کاربر به سن مشخصی رسیده است، یا آیا یک رمز عبور صحیح وارد شده است.
در زبان برنامهنویسی گو، برای اجرای دستورات بهصورت شرطی از دستورهای '''if'''، '''else if''' و '''else''' استفاده میشود. همچنین گو دارای دستور '''switch''' برای بررسی چند حالت مختلف است.
در این صفحه با ساختار شرطها، عملگرهای مقایسهای و منطقی، شرطهای تو در تو، دستور switch و نکات مهم مربوط به شرطها در گو آشنا میشوید.
== شرط if ==
سادهترین شکل شرط در گو، دستور '''if''' است. اگر عبارت شرطی مقدار '''true''' داشته باشد، دستورات داخل بلوک اجرا میشوند و اگر مقدار آن '''false''' باشد، این دستورات اجرا نمیشوند.
ساختار کلی:
<syntaxhighlight lang="go">
if شرط {
// دستورها
}
</syntaxhighlight>
برای مثال:
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
age := 20
if age >= 18 {
fmt.Println("شما بزرگسال هستید.")
}
} </syntaxhighlight>
در این مثال ابتدا متغیر '''age''' برابر ۲۰ قرار گرفته است. سپس شرط '''age >= ۱۸''' بررسی میشود. چون این شرط درست است، پیام داخل بلوک '''if''' چاپ خواهد شد.
=== آکولادها در if ===
در گو، آکولادهای '''{''' و '''}''' بخشی از ساختار دستور '''if''' هستند و باید استفاده شوند. برخلاف بعضی زبانها، نمیتوان بدنهٔ شرط را بدون آکولاد نوشت.
نمونهٔ صحیح:
<syntaxhighlight lang="go">
if age >= 18 {
fmt.Println("Adult")
}
</syntaxhighlight>
* بیشتر بخوانید: [[زبان برنامهنویسی گو/بلوکهای کد|بلوکهای کد]]
== شرط if و else ==
اگر بخواهیم در صورت نادرست بودن شرط، دستور دیگری اجرا شود، از '''else''' استفاده میکنیم.
ساختار:
<syntaxhighlight lang="go">
if شرط {
// اگر شرط درست باشد
} else {
// اگر شرط نادرست باشد
}
</syntaxhighlight>
مثال:
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
number := 7
if number > 0 {
fmt.Println("عدد مثبت است.")
} else {
fmt.Println("عدد مثبت نیست.")
}
} </syntaxhighlight>
در این مثال چون مقدار '''number''' برابر ۷ است، شرط '''number > 0''' درست است و پیام اول نمایش داده میشود.
== شرط else if ==
گاهی لازم است چند شرط مختلف را بهترتیب بررسی کنیم. در این حالت میتوان از '''else if''' استفاده کرد.
مثال:
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
number := -5
if number > 0 {
fmt.Println("مثبت")
} else if number < 0 {
fmt.Println("منفی")
} else {
fmt.Println("صفر")
}
} </syntaxhighlight>
برنامه شرطها را از بالا به پایین بررسی میکند. به محض اینکه یکی از شرطها درست باشد، بلوک مربوط به آن اجرا میشود و شرطهای بعدی بررسی نمیشوند.
در این مثال:
# ابتدا بررسی میشود که آیا عدد بزرگتر از صفر است.
# سپس بررسی میشود که آیا عدد کوچکتر از صفر است.
# اگر هیچکدام درست نباشند، عدد باید صفر باشد.
== عملگرهای مقایسهای ==
برای ساختن شرطها معمولاً از عملگرهای مقایسهای استفاده میشود.
* بیشتر بخوانید: [[زبان برنامهنویسی گو/عملگرها و عبارات|عملگرها و عبارات]]
برای مثال:
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
a := 10
b := 20
if a < b {
fmt.Println("a کوچکتر از b است.")
}
} </syntaxhighlight>
=== تفاوت == و = ===
یکی از اشتباههای رایج هنگام نوشتن شرط این است که '''=''' با '''==''' اشتباه گرفته شود.
علامت '''=''' برای انتساب مقدار استفاده میشود:
<syntaxhighlight lang="go">
age := 20
age = 21
</syntaxhighlight>
اما '''==''' برای مقایسهٔ دو مقدار استفاده میشود:
<syntaxhighlight lang="go">
if age == 21 {
fmt.Println("سن برابر ۲۱ است.")
}
</syntaxhighlight>
بنابراین این دو عمل متفاوتی انجام میدهند.
== عملگرهای منطقی ==
برای ترکیب چند شرط میتوان از عملگرهای منطقی استفاده کرد.
=== عملگر AND یا ===
عملگر '''&&''' زمانی مقدار '''true''' دارد که هر دو شرط درست باشند.
مثال:
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
age := 20
hasCard := true
if age >= 18 && hasCard {
fmt.Println("ورود مجاز است.")
}
} </syntaxhighlight>
در اینجا هر دو شرط باید درست باشند:
* سن باید حداقل ۱۸ باشد.
* مقدار '''hasCard''' باید '''true''' باشد.
=== عملگر OR یا || ===
عملگر '''||''' زمانی '''true''' است که حداقل یکی از شرطها درست باشد.
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
day := "Friday"
if day == "Friday" || day == "Saturday" {
fmt.Println("تعطیل است.")
}
} </syntaxhighlight>
در این مثال اگر روز جمعه یا شنبه باشد، شرط درست خواهد بود.
=== عملگر NOT یا! ===
عملگر '''!''' نتیجهٔ یک مقدار منطقی را معکوس میکند.
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
isLocked := false
if !isLocked {
fmt.Println("در باز است.")
}
} </syntaxhighlight>
چون مقدار '''isLocked''' برابر '''false''' است، مقدار '''!isLocked''' برابر '''true''' خواهد بود.
== ترکیب چند شرط ==
میتوان چند عملگر منطقی را در یک شرط استفاده کرد.
برای مثال:
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
age := 25
score := 85
if age >= 18 && score >= 60 {
fmt.Println("شرایط قبول شدن را دارید.")
} else {
fmt.Println("شرایط قبول شدن را ندارید.")
}
} </syntaxhighlight>
هنگام ترکیب شرطهای پیچیده، استفاده از پرانتز میتواند خوانایی برنامه را افزایش دهد.
<syntaxhighlight lang="go">
if (age >= 18 && score >= 60) || isAdmin {
fmt.Println("دسترسی مجاز است.")
}
</syntaxhighlight>
== مقداردهی در خود if ==
یکی از ویژگیهای مهم گو این است که میتوان یک دستور ساده را قبل از شرط و در همان عبارت '''if''' قرار داد.
ساختار:
<syntaxhighlight lang="go">
if مقداردهی; شرط {
// دستورها
}
</syntaxhighlight>
برای مثال:
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
if number := 10; number > 0 {
fmt.Println("عدد مثبت است.")
}
} </syntaxhighlight>
در این مثال متغیر '''number''' در بخش آغازین '''if''' ساخته شده است.
محدودهٔ این متغیر به شرط و بلوکهای مرتبط با همان '''if''' محدود میشود؛ بنابراین نمیتوان بعد از پایان این ساختار از '''number''' استفاده کرد.
مثال:
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
if number := 10; number > 0 {
fmt.Println(number)
}
// اینجا number قابل استفاده نیست.
} </syntaxhighlight>
این قابلیت زمانی مفید است که یک مقدار فقط برای بررسی یک شرط مورد نیاز باشد.
== شرطهای تو در تو ==
میتوان یک '''if''' را داخل '''if''' دیگری قرار داد. به این ساختار شرط تو در تو یا '''nested if''' گفته میشود.
مثال:
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
age := 20
hasTicket := true
if age >= 18 {
if hasTicket {
fmt.Println("ورود مجاز است.")
}
}
} </syntaxhighlight>
در این مثال ابتدا سن بررسی میشود و سپس در صورت بزرگسال بودن، داشتن بلیت بررسی میشود.
البته در بسیاری از موارد میتوان چنین کدی را سادهتر نوشت:
<syntaxhighlight lang="go">
if age >= 18 && hasTicket {
fmt.Println("ورود مجاز است.")
}
</syntaxhighlight>
بنابراین باید بین خوانایی و پیچیدگی شرطها تعادل برقرار کرد.
== دستور switch ==
وقتی چند مقدار یا حالت مشخص داریم، استفادهٔ زیاد از '''else if''' میتواند کد را طولانی کند. برای چنین مواردی '''switch''' گزینهٔ مناسبی است.
ساختار ساده:
<syntaxhighlight lang="go">
switch مقدار {
case مقدار۱:
// دستورها
case مقدار۲:
// دستورها
default:
// اگر هیچ case ای مطابقت نداشت
}
</syntaxhighlight>
مثال:
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
day := 2
switch day {
case 1:
fmt.Println("شنبه")
case 2:
fmt.Println("یکشنبه")
case 3:
fmt.Println("دوشنبه")
default:
fmt.Println("روز نامعتبر")
}
} </syntaxhighlight>
در این مثال مقدار '''day''' با مقدارهای مختلف در '''case''' مقایسه میشود.
=== default در switch ===
بخش '''default''' اختیاری است و زمانی اجرا میشود که هیچیک از '''case'''ها مطابقت نداشته باشند.
<syntaxhighlight lang="go">
switch number {
case 1:
fmt.Println("یک")
case 2:
fmt.Println("دو")
default:
fmt.Println("عدد دیگری")
}
</syntaxhighlight>
== چند مقدار در یک case ==
در گو میتوان چند مقدار را در یک '''case''' قرار داد.
برای مثال:
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
day := "Friday"
switch day {
case "Friday", "Saturday":
fmt.Println("تعطیل")
default:
fmt.Println("روز کاری")
}
} </syntaxhighlight>
اگر مقدار '''day''' برابر هرکدام از دو مقدار مشخصشده باشد، همان بخش اجرا میشود.
== switch بدون عبارت ==
در گو میتوان '''switch''' را بدون قرار دادن یک عبارت بعد از کلمهٔ '''switch''' نوشت. در این حالت هر '''case''' میتواند یک شرط منطقی باشد.
مثال:
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
score := 75
switch {
case score >= 90:
fmt.Println("عالی")
case score >= 70:
fmt.Println("خوب")
case score >= 50:
fmt.Println("قبول")
default:
fmt.Println("مردود")
}
} </syntaxhighlight>
این روش در مواردی که چند شرط مختلف داریم میتواند خوانایی خوبی داشته باشد.
== break در switch ==
در بسیاری از زبانها پس از اجرای یک '''case''' در '''switch''' باید از '''break''' برای جلوگیری از اجرای case بعدی استفاده کرد.
در گو، رفتار پیشفرض '''switch''' این است که پس از اجرای case منطبقشده، اجرای switch پایان پیدا میکند؛ بنابراین معمولاً نیازی به نوشتن '''break''' نیست.
مثال:
<syntaxhighlight lang="go">
switch number {
case 1:
fmt.Println("یک")
case 2:
fmt.Println("دو")
case 3:
fmt.Println("سه")
}
</syntaxhighlight>
اگر '''number''' برابر ۲ باشد، فقط بخش مربوط به '''case 2''' اجرا میشود.
== استفاده از fallthrough ==
اگر بخواهیم اجرای برنامه از یک '''case''' به '''case''' بعدی ادامه پیدا کند، میتوان از '''fallthrough''' استفاده کرد.
مثال:
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
number := 1
switch number {
case 1:
fmt.Println("case 1")
fallthrough
case 2:
fmt.Println("case 2")
default:
fmt.Println("default")
}
} </syntaxhighlight>
در این مثال، با توجه به وجود '''fallthrough'''، پس از اجرای '''case 1'''، بخش '''case 2''' نیز اجرا میشود.
'''fallthrough''' باید با دقت استفاده شود، زیرا منطق معمول '''switch''' در گو این است که پس از اجرای یک case، از switch خارج شویم.
== مقایسهٔ if و switch ==
هر دو ساختار برای تصمیمگیری در برنامه استفاده میشوند، اما کاربرد آنها همیشه یکسان نیست.
'''if''' معمولاً برای بررسی شرایط و روابط منطقی مناسب است:
<syntaxhighlight lang="go">
if age >= 18 && hasTicket {
fmt.Println("ورود مجاز است.")
}
</syntaxhighlight>
'''switch''' زمانی میتواند مناسب باشد که یک مقدار را با چند حالت مختلف مقایسه کنیم:
<syntaxhighlight lang="go">
switch command {
case "start":
fmt.Println("شروع")
case "stop":
fmt.Println("توقف")
case "pause":
fmt.Println("مکث")
}
</syntaxhighlight>
برای شرطهای پیچیده و وابسته به چند رابطهٔ منطقی، '''if''' معمولاً انتخاب طبیعیتری است. برای چند حالت مشخص و مجزا، '''switch''' میتواند کد را خواناتر کند.
== مثال کامل: تشخیص نمره ==
در مثال زیر نمرهٔ یک دانشآموز بررسی میشود.
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
score := 82
if score < 0 || score > 100 {
fmt.Println("نمره نامعتبر است.")
} else if score >= 90 {
fmt.Println("عالی")
} else if score >= 80 {
fmt.Println("خیلی خوب")
} else if score >= 70 {
fmt.Println("خوب")
} else if score >= 60 {
fmt.Println("قابل قبول")
} else {
fmt.Println("مردود")
}
} </syntaxhighlight>
در این برنامه ابتدا معتبر بودن نمره بررسی میشود. سپس نمره از مقدارهای بالاتر به پایینتر بررسی میشود.
== مثال کامل: بررسی دسترسی کاربر ==
فرض کنید یک برنامه باید بر اساس سن و وضعیت حساب کاربر تصمیم بگیرد.
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
age := 21
active := true
if age >= 18 && active {
fmt.Println("دسترسی مجاز است.")
} else if !active {
fmt.Println("حساب کاربر فعال نیست.")
} else {
fmt.Println("کاربر به سن مجاز نرسیده است.")
}
} </syntaxhighlight>
در این مثال:
* اگر سن حداقل ۱۸ سال و حساب فعال باشد، دسترسی داده میشود.
* اگر حساب فعال نباشد، پیام مربوط به غیرفعال بودن حساب نمایش داده میشود.
* در غیر این صورت، کاربر به سن مورد نیاز نرسیده است.
== اشتباههای رایج ==
=== اشتباه در استفاده از = و == ===
برای مقایسه باید از '''==''' استفاده شود.
نمونهٔ درست:
<syntaxhighlight lang="go">
if x == 10 {
fmt.Println("x برابر 10 است.")
}
</syntaxhighlight>
=== فراموش کردن آکولادها ===
بدنهٔ شرط باید داخل آکولاد قرار بگیرد:
<syntaxhighlight lang="go">
if x > 0 {
fmt.Println("مثبت")
}
</syntaxhighlight>
=== پیچیده کردن بیش از حد شرطها ===
گاهی یک شرط بسیار طولانی نوشته میشود که خواندن آن دشوار است. در چنین شرایطی بهتر است منطق برنامه به قسمتهای سادهتر تقسیم شود یا از متغیرهای توضیحی استفاده شود.
برای مثال:
<syntaxhighlight lang="go">
isAdult := age >= 18
hasPermission := permission == "admin"
if isAdult && hasPermission {
fmt.Println("دسترسی مجاز است.")
} </syntaxhighlight>
این روش میتواند معنای شرط را واضحتر کند.
=== ترتیب نامناسب شرطها ===
در زنجیرهٔ '''if''' و '''else if''' ترتیب شرطها اهمیت دارد.
مثال:
<syntaxhighlight lang="go">
score := 95
if score >= 50 {
fmt.Println("قبول")
} else if score >= 90 {
fmt.Println("عالی")
} </syntaxhighlight>
در این مثال شرط اول برای نمرهٔ ۹۵ درست است؛ بنابراین شرط دوم هرگز اجرا نمیشود.
اگر هدف این باشد که نمرههای ۹۰ به بالا «عالی» محسوب شوند، ترتیب باید اصلاح شود:
<syntaxhighlight lang="go">
if score >= 90 {
fmt.Println("عالی")
} else if score >= 50 {
fmt.Println("قبول")
} else {
fmt.Println("مردود")
}
</syntaxhighlight>
== نکات مهم ==
* شرطها در گو بر اساس مقدارهای '''true''' و '''false''' تصمیمگیری میکنند.
* برای مقایسه از عملگرهایی مانند '''==''', '''!=''', '''>''', '''<''', '''>=''' و '''<=''' استفاده میشود.
* برای ترکیب شرطها از '''&&''', '''||''' و '''!''' استفاده میشود.
* در گو میتوان در ابتدای '''if''' یک متغیر محلی تعریف کرد.
* متغیری که در ابتدای '''if''' تعریف میشود، محدودهٔ محدودی دارد.
* '''else''' باید در همان ساختار '''if''' قرار داشته باشد.
* در '''switch''' معمولاً نیازی به '''break''' نیست.
* '''fallthrough''' برای ادامه دادن اجرای یک case به case بعدی استفاده میشود.
* برای چند حالت مشخص، '''switch''' میتواند خوانایی بیشتری نسبت به زنجیرهٔ طولانی '''else if''' داشته باشد.
* شرطهای پیچیده بهتر است تا حد امکان خوانا و قابل فهم نوشته شوند.
== تمرینها ==
=== تمرین ۱: مثبت، منفی یا صفر ===
برنامهای بنویسید که یک عدد صحیح را دریافت کند و مشخص کند:
* عدد مثبت است.
* عدد منفی است.
* یا صفر است.
'''راهنما:''' از '''if'''، '''else if''' و '''else''' استفاده کنید.
=== تمرین ۲: تشخیص زوج یا فرد ===
برنامهای بنویسید که مشخص کند یک عدد زوج است یا فرد.
'''راهنما:''' از عملگر باقیماندهٔ تقسیم '''%''' استفاده کنید.
برای مثال:
<syntaxhighlight lang="go">
number%2 == 0
</syntaxhighlight>
اگر این شرط درست باشد، عدد زوج است.
=== تمرین ۳: بررسی سن ===
برنامهای بنویسید که متغیر '''age''' را بررسی کند:
* کمتر از ۱۳: کودک
* از ۱۳ تا کمتر از ۱۸: نوجوان
* ۱۸ سال یا بیشتر: بزرگسال
=== تمرین ۴: سیستم نمرهدهی ===
برنامهای بنویسید که یک نمره از ۰ تا ۱۰۰ دریافت کند و نتیجهٔ زیر را نمایش دهد:
* ۹۰ تا ۱۰۰: عالی
* ۸۰ تا ۸۹: خیلی خوب
* ۷۰ تا ۷۹: خوب
* ۶۰ تا ۶۹: قابل قبول
* کمتر از ۶۰: مردود
* خارج از بازهٔ ۰ تا ۱۰۰: نمرهٔ نامعتبر
=== تمرین ۵: بررسی دسترسی ===
سه متغیر زیر را در نظر بگیرید:
<syntaxhighlight lang="go">
age := 22
hasAccount := true
isActive := true
</syntaxhighlight>
برنامهای بنویسید که فقط زمانی پیام '''دسترسی مجاز است''' را چاپ کند که کاربر حداقل ۱۸ سال داشته باشد، حساب داشته باشد و حساب او فعال باشد.
=== تمرین ۶: استفاده از switch ===
برنامهای بنویسید که عددی بین ۱ تا ۷ دریافت کند و نام روز مربوط به آن را نمایش دهد.
برای مثال:
<syntaxhighlight lang="go">
1 -> شنبه
2 -> یکشنبه
3 -> دوشنبه
</syntaxhighlight>
برای پیادهسازی این تمرین از '''switch''' استفاده کنید.
=== تمرین ۷: ماشین حساب ساده ===
دو عدد و یک عملگر مانند '''+'''، '''-'''، '''*''' یا '''/''' در نظر بگیرید. سپس با استفاده از '''switch''' عملیات مناسب را انجام دهید.
نمونهٔ ورودی:
<syntaxhighlight lang="go">
a := 20
b := 5
operator := "/"
</syntaxhighlight>
خروجی مورد انتظار:
<syntaxhighlight lang="text">
4
</syntaxhighlight>
=== تمرین ۸: تشخیص سال کبیسه ===
برنامهای بنویسید که یک سال را دریافت کند و مشخص کند آیا سال کبیسه است یا خیر.
'''راهنما:''' برای حل این تمرین باید بتوانید چند شرط منطقی را با '''&&''' و '''||''' ترکیب کنید.
== حل تمرینها ==
* در صفحه [[زبان برنامهنویسی گو/حل تمرینها/شرطها|حل تمرینها/شرطها]] میتوانید جواب تمرینها را پیدا کنید.
== جمعبندی ==
شرطها یکی از پایهایترین بخشهای برنامهنویسی هستند و به برنامه اجازه میدهند بر اساس وضعیت دادهها تصمیمگیری کند. در گو برای این کار میتوان از '''if'''، '''else if''' و '''else''' استفاده کرد. برای ترکیب شرایط نیز عملگرهای '''&&'''، '''||''' و '''!''' در دسترس هستند.
هنگامی که برنامه باید میان چند حالت مشخص انتخاب کند، '''switch''' میتواند ساختار مناسبتری ایجاد کند. همچنین گو امکان تعریف یک متغیر در ابتدای عبارت '''if''' و استفاده از '''switch''' بدون عبارت را فراهم میکند.
تسلط بر شرطها برای یادگیری مباحثی مانند [[زبان برنامه نویسی سی/حلقه do while و while]]، [[زبان برنامهنویسی گو/تعریف و استفاده از توابع]] ضروری است.
[[رده:زبان برنامهنویسی گو]]
aaq9vo4nmllbn7qnmse0ordibcsuvul
135357
135356
2026-09-29T09:17:08Z
Fwldom
26269
/* جمعبندی */
135357
wikitext
text/x-wiki
{{سرصفحه
| عنوان = شرطها
| قسمت =
| قبلی = [[زبان برنامهنویسی گو/عملگرها و عبارات|عملگرها و عبارات]]
| بعدی = [[زبان برنامهنویسی گو/حلقهها|حلقهها]]
| یادداشت = [[زبان برنامهنویسی گو]]
}}
== شرطها در گو ==
در برنامهنویسی لازم است برنامه بر اساس یک وضعیت یا یک شرط، تصمیم متفاوتی بگیرد. برای مثال، میتوان بررسی کرد که آیا یک عدد مثبت است یا منفی، آیا کاربر به سن مشخصی رسیده است، یا آیا یک رمز عبور صحیح وارد شده است.
در زبان برنامهنویسی گو، برای اجرای دستورات بهصورت شرطی از دستورهای '''if'''، '''else if''' و '''else''' استفاده میشود. همچنین گو دارای دستور '''switch''' برای بررسی چند حالت مختلف است.
در این صفحه با ساختار شرطها، عملگرهای مقایسهای و منطقی، شرطهای تو در تو، دستور switch و نکات مهم مربوط به شرطها در گو آشنا میشوید.
== شرط if ==
سادهترین شکل شرط در گو، دستور '''if''' است. اگر عبارت شرطی مقدار '''true''' داشته باشد، دستورات داخل بلوک اجرا میشوند و اگر مقدار آن '''false''' باشد، این دستورات اجرا نمیشوند.
ساختار کلی:
<syntaxhighlight lang="go">
if شرط {
// دستورها
}
</syntaxhighlight>
برای مثال:
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
age := 20
if age >= 18 {
fmt.Println("شما بزرگسال هستید.")
}
} </syntaxhighlight>
در این مثال ابتدا متغیر '''age''' برابر ۲۰ قرار گرفته است. سپس شرط '''age >= ۱۸''' بررسی میشود. چون این شرط درست است، پیام داخل بلوک '''if''' چاپ خواهد شد.
=== آکولادها در if ===
در گو، آکولادهای '''{''' و '''}''' بخشی از ساختار دستور '''if''' هستند و باید استفاده شوند. برخلاف بعضی زبانها، نمیتوان بدنهٔ شرط را بدون آکولاد نوشت.
نمونهٔ صحیح:
<syntaxhighlight lang="go">
if age >= 18 {
fmt.Println("Adult")
}
</syntaxhighlight>
* بیشتر بخوانید: [[زبان برنامهنویسی گو/بلوکهای کد|بلوکهای کد]]
== شرط if و else ==
اگر بخواهیم در صورت نادرست بودن شرط، دستور دیگری اجرا شود، از '''else''' استفاده میکنیم.
ساختار:
<syntaxhighlight lang="go">
if شرط {
// اگر شرط درست باشد
} else {
// اگر شرط نادرست باشد
}
</syntaxhighlight>
مثال:
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
number := 7
if number > 0 {
fmt.Println("عدد مثبت است.")
} else {
fmt.Println("عدد مثبت نیست.")
}
} </syntaxhighlight>
در این مثال چون مقدار '''number''' برابر ۷ است، شرط '''number > 0''' درست است و پیام اول نمایش داده میشود.
== شرط else if ==
گاهی لازم است چند شرط مختلف را بهترتیب بررسی کنیم. در این حالت میتوان از '''else if''' استفاده کرد.
مثال:
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
number := -5
if number > 0 {
fmt.Println("مثبت")
} else if number < 0 {
fmt.Println("منفی")
} else {
fmt.Println("صفر")
}
} </syntaxhighlight>
برنامه شرطها را از بالا به پایین بررسی میکند. به محض اینکه یکی از شرطها درست باشد، بلوک مربوط به آن اجرا میشود و شرطهای بعدی بررسی نمیشوند.
در این مثال:
# ابتدا بررسی میشود که آیا عدد بزرگتر از صفر است.
# سپس بررسی میشود که آیا عدد کوچکتر از صفر است.
# اگر هیچکدام درست نباشند، عدد باید صفر باشد.
== عملگرهای مقایسهای ==
برای ساختن شرطها معمولاً از عملگرهای مقایسهای استفاده میشود.
* بیشتر بخوانید: [[زبان برنامهنویسی گو/عملگرها و عبارات|عملگرها و عبارات]]
برای مثال:
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
a := 10
b := 20
if a < b {
fmt.Println("a کوچکتر از b است.")
}
} </syntaxhighlight>
=== تفاوت == و = ===
یکی از اشتباههای رایج هنگام نوشتن شرط این است که '''=''' با '''==''' اشتباه گرفته شود.
علامت '''=''' برای انتساب مقدار استفاده میشود:
<syntaxhighlight lang="go">
age := 20
age = 21
</syntaxhighlight>
اما '''==''' برای مقایسهٔ دو مقدار استفاده میشود:
<syntaxhighlight lang="go">
if age == 21 {
fmt.Println("سن برابر ۲۱ است.")
}
</syntaxhighlight>
بنابراین این دو عمل متفاوتی انجام میدهند.
== عملگرهای منطقی ==
برای ترکیب چند شرط میتوان از عملگرهای منطقی استفاده کرد.
=== عملگر AND یا ===
عملگر '''&&''' زمانی مقدار '''true''' دارد که هر دو شرط درست باشند.
مثال:
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
age := 20
hasCard := true
if age >= 18 && hasCard {
fmt.Println("ورود مجاز است.")
}
} </syntaxhighlight>
در اینجا هر دو شرط باید درست باشند:
* سن باید حداقل ۱۸ باشد.
* مقدار '''hasCard''' باید '''true''' باشد.
=== عملگر OR یا || ===
عملگر '''||''' زمانی '''true''' است که حداقل یکی از شرطها درست باشد.
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
day := "Friday"
if day == "Friday" || day == "Saturday" {
fmt.Println("تعطیل است.")
}
} </syntaxhighlight>
در این مثال اگر روز جمعه یا شنبه باشد، شرط درست خواهد بود.
=== عملگر NOT یا! ===
عملگر '''!''' نتیجهٔ یک مقدار منطقی را معکوس میکند.
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
isLocked := false
if !isLocked {
fmt.Println("در باز است.")
}
} </syntaxhighlight>
چون مقدار '''isLocked''' برابر '''false''' است، مقدار '''!isLocked''' برابر '''true''' خواهد بود.
== ترکیب چند شرط ==
میتوان چند عملگر منطقی را در یک شرط استفاده کرد.
برای مثال:
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
age := 25
score := 85
if age >= 18 && score >= 60 {
fmt.Println("شرایط قبول شدن را دارید.")
} else {
fmt.Println("شرایط قبول شدن را ندارید.")
}
} </syntaxhighlight>
هنگام ترکیب شرطهای پیچیده، استفاده از پرانتز میتواند خوانایی برنامه را افزایش دهد.
<syntaxhighlight lang="go">
if (age >= 18 && score >= 60) || isAdmin {
fmt.Println("دسترسی مجاز است.")
}
</syntaxhighlight>
== مقداردهی در خود if ==
یکی از ویژگیهای مهم گو این است که میتوان یک دستور ساده را قبل از شرط و در همان عبارت '''if''' قرار داد.
ساختار:
<syntaxhighlight lang="go">
if مقداردهی; شرط {
// دستورها
}
</syntaxhighlight>
برای مثال:
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
if number := 10; number > 0 {
fmt.Println("عدد مثبت است.")
}
} </syntaxhighlight>
در این مثال متغیر '''number''' در بخش آغازین '''if''' ساخته شده است.
محدودهٔ این متغیر به شرط و بلوکهای مرتبط با همان '''if''' محدود میشود؛ بنابراین نمیتوان بعد از پایان این ساختار از '''number''' استفاده کرد.
مثال:
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
if number := 10; number > 0 {
fmt.Println(number)
}
// اینجا number قابل استفاده نیست.
} </syntaxhighlight>
این قابلیت زمانی مفید است که یک مقدار فقط برای بررسی یک شرط مورد نیاز باشد.
== شرطهای تو در تو ==
میتوان یک '''if''' را داخل '''if''' دیگری قرار داد. به این ساختار شرط تو در تو یا '''nested if''' گفته میشود.
مثال:
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
age := 20
hasTicket := true
if age >= 18 {
if hasTicket {
fmt.Println("ورود مجاز است.")
}
}
} </syntaxhighlight>
در این مثال ابتدا سن بررسی میشود و سپس در صورت بزرگسال بودن، داشتن بلیت بررسی میشود.
البته در بسیاری از موارد میتوان چنین کدی را سادهتر نوشت:
<syntaxhighlight lang="go">
if age >= 18 && hasTicket {
fmt.Println("ورود مجاز است.")
}
</syntaxhighlight>
بنابراین باید بین خوانایی و پیچیدگی شرطها تعادل برقرار کرد.
== دستور switch ==
وقتی چند مقدار یا حالت مشخص داریم، استفادهٔ زیاد از '''else if''' میتواند کد را طولانی کند. برای چنین مواردی '''switch''' گزینهٔ مناسبی است.
ساختار ساده:
<syntaxhighlight lang="go">
switch مقدار {
case مقدار۱:
// دستورها
case مقدار۲:
// دستورها
default:
// اگر هیچ case ای مطابقت نداشت
}
</syntaxhighlight>
مثال:
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
day := 2
switch day {
case 1:
fmt.Println("شنبه")
case 2:
fmt.Println("یکشنبه")
case 3:
fmt.Println("دوشنبه")
default:
fmt.Println("روز نامعتبر")
}
} </syntaxhighlight>
در این مثال مقدار '''day''' با مقدارهای مختلف در '''case''' مقایسه میشود.
=== default در switch ===
بخش '''default''' اختیاری است و زمانی اجرا میشود که هیچیک از '''case'''ها مطابقت نداشته باشند.
<syntaxhighlight lang="go">
switch number {
case 1:
fmt.Println("یک")
case 2:
fmt.Println("دو")
default:
fmt.Println("عدد دیگری")
}
</syntaxhighlight>
== چند مقدار در یک case ==
در گو میتوان چند مقدار را در یک '''case''' قرار داد.
برای مثال:
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
day := "Friday"
switch day {
case "Friday", "Saturday":
fmt.Println("تعطیل")
default:
fmt.Println("روز کاری")
}
} </syntaxhighlight>
اگر مقدار '''day''' برابر هرکدام از دو مقدار مشخصشده باشد، همان بخش اجرا میشود.
== switch بدون عبارت ==
در گو میتوان '''switch''' را بدون قرار دادن یک عبارت بعد از کلمهٔ '''switch''' نوشت. در این حالت هر '''case''' میتواند یک شرط منطقی باشد.
مثال:
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
score := 75
switch {
case score >= 90:
fmt.Println("عالی")
case score >= 70:
fmt.Println("خوب")
case score >= 50:
fmt.Println("قبول")
default:
fmt.Println("مردود")
}
} </syntaxhighlight>
این روش در مواردی که چند شرط مختلف داریم میتواند خوانایی خوبی داشته باشد.
== break در switch ==
در بسیاری از زبانها پس از اجرای یک '''case''' در '''switch''' باید از '''break''' برای جلوگیری از اجرای case بعدی استفاده کرد.
در گو، رفتار پیشفرض '''switch''' این است که پس از اجرای case منطبقشده، اجرای switch پایان پیدا میکند؛ بنابراین معمولاً نیازی به نوشتن '''break''' نیست.
مثال:
<syntaxhighlight lang="go">
switch number {
case 1:
fmt.Println("یک")
case 2:
fmt.Println("دو")
case 3:
fmt.Println("سه")
}
</syntaxhighlight>
اگر '''number''' برابر ۲ باشد، فقط بخش مربوط به '''case 2''' اجرا میشود.
== استفاده از fallthrough ==
اگر بخواهیم اجرای برنامه از یک '''case''' به '''case''' بعدی ادامه پیدا کند، میتوان از '''fallthrough''' استفاده کرد.
مثال:
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
number := 1
switch number {
case 1:
fmt.Println("case 1")
fallthrough
case 2:
fmt.Println("case 2")
default:
fmt.Println("default")
}
} </syntaxhighlight>
در این مثال، با توجه به وجود '''fallthrough'''، پس از اجرای '''case 1'''، بخش '''case 2''' نیز اجرا میشود.
'''fallthrough''' باید با دقت استفاده شود، زیرا منطق معمول '''switch''' در گو این است که پس از اجرای یک case، از switch خارج شویم.
== مقایسهٔ if و switch ==
هر دو ساختار برای تصمیمگیری در برنامه استفاده میشوند، اما کاربرد آنها همیشه یکسان نیست.
'''if''' معمولاً برای بررسی شرایط و روابط منطقی مناسب است:
<syntaxhighlight lang="go">
if age >= 18 && hasTicket {
fmt.Println("ورود مجاز است.")
}
</syntaxhighlight>
'''switch''' زمانی میتواند مناسب باشد که یک مقدار را با چند حالت مختلف مقایسه کنیم:
<syntaxhighlight lang="go">
switch command {
case "start":
fmt.Println("شروع")
case "stop":
fmt.Println("توقف")
case "pause":
fmt.Println("مکث")
}
</syntaxhighlight>
برای شرطهای پیچیده و وابسته به چند رابطهٔ منطقی، '''if''' معمولاً انتخاب طبیعیتری است. برای چند حالت مشخص و مجزا، '''switch''' میتواند کد را خواناتر کند.
== مثال کامل: تشخیص نمره ==
در مثال زیر نمرهٔ یک دانشآموز بررسی میشود.
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
score := 82
if score < 0 || score > 100 {
fmt.Println("نمره نامعتبر است.")
} else if score >= 90 {
fmt.Println("عالی")
} else if score >= 80 {
fmt.Println("خیلی خوب")
} else if score >= 70 {
fmt.Println("خوب")
} else if score >= 60 {
fmt.Println("قابل قبول")
} else {
fmt.Println("مردود")
}
} </syntaxhighlight>
در این برنامه ابتدا معتبر بودن نمره بررسی میشود. سپس نمره از مقدارهای بالاتر به پایینتر بررسی میشود.
== مثال کامل: بررسی دسترسی کاربر ==
فرض کنید یک برنامه باید بر اساس سن و وضعیت حساب کاربر تصمیم بگیرد.
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
age := 21
active := true
if age >= 18 && active {
fmt.Println("دسترسی مجاز است.")
} else if !active {
fmt.Println("حساب کاربر فعال نیست.")
} else {
fmt.Println("کاربر به سن مجاز نرسیده است.")
}
} </syntaxhighlight>
در این مثال:
* اگر سن حداقل ۱۸ سال و حساب فعال باشد، دسترسی داده میشود.
* اگر حساب فعال نباشد، پیام مربوط به غیرفعال بودن حساب نمایش داده میشود.
* در غیر این صورت، کاربر به سن مورد نیاز نرسیده است.
== اشتباههای رایج ==
=== اشتباه در استفاده از = و == ===
برای مقایسه باید از '''==''' استفاده شود.
نمونهٔ درست:
<syntaxhighlight lang="go">
if x == 10 {
fmt.Println("x برابر 10 است.")
}
</syntaxhighlight>
=== فراموش کردن آکولادها ===
بدنهٔ شرط باید داخل آکولاد قرار بگیرد:
<syntaxhighlight lang="go">
if x > 0 {
fmt.Println("مثبت")
}
</syntaxhighlight>
=== پیچیده کردن بیش از حد شرطها ===
گاهی یک شرط بسیار طولانی نوشته میشود که خواندن آن دشوار است. در چنین شرایطی بهتر است منطق برنامه به قسمتهای سادهتر تقسیم شود یا از متغیرهای توضیحی استفاده شود.
برای مثال:
<syntaxhighlight lang="go">
isAdult := age >= 18
hasPermission := permission == "admin"
if isAdult && hasPermission {
fmt.Println("دسترسی مجاز است.")
} </syntaxhighlight>
این روش میتواند معنای شرط را واضحتر کند.
=== ترتیب نامناسب شرطها ===
در زنجیرهٔ '''if''' و '''else if''' ترتیب شرطها اهمیت دارد.
مثال:
<syntaxhighlight lang="go">
score := 95
if score >= 50 {
fmt.Println("قبول")
} else if score >= 90 {
fmt.Println("عالی")
} </syntaxhighlight>
در این مثال شرط اول برای نمرهٔ ۹۵ درست است؛ بنابراین شرط دوم هرگز اجرا نمیشود.
اگر هدف این باشد که نمرههای ۹۰ به بالا «عالی» محسوب شوند، ترتیب باید اصلاح شود:
<syntaxhighlight lang="go">
if score >= 90 {
fmt.Println("عالی")
} else if score >= 50 {
fmt.Println("قبول")
} else {
fmt.Println("مردود")
}
</syntaxhighlight>
== نکات مهم ==
* شرطها در گو بر اساس مقدارهای '''true''' و '''false''' تصمیمگیری میکنند.
* برای مقایسه از عملگرهایی مانند '''==''', '''!=''', '''>''', '''<''', '''>=''' و '''<=''' استفاده میشود.
* برای ترکیب شرطها از '''&&''', '''||''' و '''!''' استفاده میشود.
* در گو میتوان در ابتدای '''if''' یک متغیر محلی تعریف کرد.
* متغیری که در ابتدای '''if''' تعریف میشود، محدودهٔ محدودی دارد.
* '''else''' باید در همان ساختار '''if''' قرار داشته باشد.
* در '''switch''' معمولاً نیازی به '''break''' نیست.
* '''fallthrough''' برای ادامه دادن اجرای یک case به case بعدی استفاده میشود.
* برای چند حالت مشخص، '''switch''' میتواند خوانایی بیشتری نسبت به زنجیرهٔ طولانی '''else if''' داشته باشد.
* شرطهای پیچیده بهتر است تا حد امکان خوانا و قابل فهم نوشته شوند.
== تمرینها ==
=== تمرین ۱: مثبت، منفی یا صفر ===
برنامهای بنویسید که یک عدد صحیح را دریافت کند و مشخص کند:
* عدد مثبت است.
* عدد منفی است.
* یا صفر است.
'''راهنما:''' از '''if'''، '''else if''' و '''else''' استفاده کنید.
=== تمرین ۲: تشخیص زوج یا فرد ===
برنامهای بنویسید که مشخص کند یک عدد زوج است یا فرد.
'''راهنما:''' از عملگر باقیماندهٔ تقسیم '''%''' استفاده کنید.
برای مثال:
<syntaxhighlight lang="go">
number%2 == 0
</syntaxhighlight>
اگر این شرط درست باشد، عدد زوج است.
=== تمرین ۳: بررسی سن ===
برنامهای بنویسید که متغیر '''age''' را بررسی کند:
* کمتر از ۱۳: کودک
* از ۱۳ تا کمتر از ۱۸: نوجوان
* ۱۸ سال یا بیشتر: بزرگسال
=== تمرین ۴: سیستم نمرهدهی ===
برنامهای بنویسید که یک نمره از ۰ تا ۱۰۰ دریافت کند و نتیجهٔ زیر را نمایش دهد:
* ۹۰ تا ۱۰۰: عالی
* ۸۰ تا ۸۹: خیلی خوب
* ۷۰ تا ۷۹: خوب
* ۶۰ تا ۶۹: قابل قبول
* کمتر از ۶۰: مردود
* خارج از بازهٔ ۰ تا ۱۰۰: نمرهٔ نامعتبر
=== تمرین ۵: بررسی دسترسی ===
سه متغیر زیر را در نظر بگیرید:
<syntaxhighlight lang="go">
age := 22
hasAccount := true
isActive := true
</syntaxhighlight>
برنامهای بنویسید که فقط زمانی پیام '''دسترسی مجاز است''' را چاپ کند که کاربر حداقل ۱۸ سال داشته باشد، حساب داشته باشد و حساب او فعال باشد.
=== تمرین ۶: استفاده از switch ===
برنامهای بنویسید که عددی بین ۱ تا ۷ دریافت کند و نام روز مربوط به آن را نمایش دهد.
برای مثال:
<syntaxhighlight lang="go">
1 -> شنبه
2 -> یکشنبه
3 -> دوشنبه
</syntaxhighlight>
برای پیادهسازی این تمرین از '''switch''' استفاده کنید.
=== تمرین ۷: ماشین حساب ساده ===
دو عدد و یک عملگر مانند '''+'''، '''-'''، '''*''' یا '''/''' در نظر بگیرید. سپس با استفاده از '''switch''' عملیات مناسب را انجام دهید.
نمونهٔ ورودی:
<syntaxhighlight lang="go">
a := 20
b := 5
operator := "/"
</syntaxhighlight>
خروجی مورد انتظار:
<syntaxhighlight lang="text">
4
</syntaxhighlight>
=== تمرین ۸: تشخیص سال کبیسه ===
برنامهای بنویسید که یک سال را دریافت کند و مشخص کند آیا سال کبیسه است یا خیر.
'''راهنما:''' برای حل این تمرین باید بتوانید چند شرط منطقی را با '''&&''' و '''||''' ترکیب کنید.
== حل تمرینها ==
* در صفحه [[زبان برنامهنویسی گو/حل تمرینها/شرطها|حل تمرینها/شرطها]] میتوانید جواب تمرینها را پیدا کنید.
== جمعبندی ==
شرطها یکی از پایهایترین بخشهای برنامهنویسی هستند و به برنامه اجازه میدهند بر اساس وضعیت دادهها تصمیمگیری کند. در گو برای این کار میتوان از '''if'''، '''else if''' و '''else''' استفاده کرد. برای ترکیب شرایط نیز عملگرهای '''&&'''، '''||''' و '''!''' در دسترس هستند.
هنگامی که برنامه باید میان چند حالت مشخص انتخاب کند، '''switch''' میتواند ساختار مناسبتری ایجاد کند. همچنین گو امکان تعریف یک متغیر در ابتدای عبارت '''if''' و استفاده از '''switch''' بدون عبارت را فراهم میکند.
تسلط بر شرطها برای یادگیری مباحثی مانند [[زبان برنامهنویسی گو/حلقهها]]، [[زبان برنامهنویسی گو/تعریف و استفاده از توابع]] ضروری است.
[[رده:زبان برنامهنویسی گو]]
3rosfhq7of18wmw7iw25wx88qg0pqbw
زبان برنامهنویسی گو/حل تمرینها/شرطها
0
42159
135335
2026-09-29T08:51:27Z
Fwldom
26269
صفحهای تازه حاوی «== پاسخ نمونهٔ تمرینها == پاسخهای زیر فقط یک روش برای حل تمرینها هستند و ممکن است هر مسئله را بتوان با روشهای دیگری نیز حل کرد. === پاسخ تمرین ۱ === <syntaxhighlight lang="go"> package main import "fmt" func main() { number := -8 if number > 0 { fmt.Println("مثبت") } else if number < 0 { fmt.Println("م...» ایجاد کرد
135335
wikitext
text/x-wiki
== پاسخ نمونهٔ تمرینها ==
پاسخهای زیر فقط یک روش برای حل تمرینها هستند و ممکن است هر مسئله را بتوان با روشهای دیگری نیز حل کرد.
=== پاسخ تمرین ۱ ===
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
number := -8
if number > 0 {
fmt.Println("مثبت")
} else if number < 0 {
fmt.Println("منفی")
} else {
fmt.Println("صفر")
}
} </syntaxhighlight>
=== پاسخ تمرین ۲ ===
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
number := 17
if number%2 == 0 {
fmt.Println("زوج")
} else {
fmt.Println("فرد")
}
} </syntaxhighlight>
=== پاسخ تمرین ۳ ===
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
age := 16
if age < 13 {
fmt.Println("کودک")
} else if age < 18 {
fmt.Println("نوجوان")
} else {
fmt.Println("بزرگسال")
}
} </syntaxhighlight>
=== پاسخ تمرین ۶ ===
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
day := 4
switch day {
case 1:
fmt.Println("شنبه")
case 2:
fmt.Println("یکشنبه")
case 3:
fmt.Println("دوشنبه")
case 4:
fmt.Println("سهشنبه")
case 5:
fmt.Println("چهارشنبه")
case 6:
fmt.Println("پنجشنبه")
case 7:
fmt.Println("جمعه")
default:
fmt.Println("روز نامعتبر")
}
} </syntaxhighlight>
=== پاسخ تمرین ۷ ===
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
a := 20
b := 5
operator := "/"
switch operator {
case "+":
fmt.Println(a + b)
case "-":
fmt.Println(a - b)
case "*":
fmt.Println(a * b)
case "/":
if b != 0 {
fmt.Println(a / b)
} else {
fmt.Println("تقسیم بر صفر مجاز نیست.")
}
default:
fmt.Println("عملگر نامعتبر است.")
}
} </syntaxhighlight>
5ya3tx60fykiwa6u7okjog2zmb7nvw9
زبان برنامهنویسی گو/حلقهها
0
42160
135341
2026-09-29T09:02:49Z
Fwldom
26269
صفحهای تازه حاوی «= حلقهها در گو = حلقهها (Loops) برای اجرای چندبارهٔ یک بخش از برنامه استفاده میشوند. در زبان برنامهنویسی Go، برخلاف بسیاری از زبانها، تنها ساختار '''for''' برای ایجاد حلقه وجود دارد و میتوان از آن برای حالتهای مختلف تکرار استفاده کرد. == حلق...» ایجاد کرد
135341
wikitext
text/x-wiki
= حلقهها در گو =
حلقهها (Loops) برای اجرای چندبارهٔ یک بخش از برنامه استفاده میشوند. در زبان برنامهنویسی Go، برخلاف بسیاری از زبانها، تنها ساختار '''for''' برای ایجاد حلقه وجود دارد و میتوان از آن برای حالتهای مختلف تکرار استفاده کرد.
== حلقه for ==
ساختار پایهٔ حلقهٔ '''for''' به شکل زیر است:
<syntaxhighlight lang="go">
for مقداردهی اولیه; شرط; تغییر {
// دستورها
}
</syntaxhighlight>
برای مثال:
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
for i := 1; i <= 5; i++ {
fmt.Println(i)
}
} </syntaxhighlight>
خروجی:
<syntaxhighlight lang="text">
1
2
3
4
5
</syntaxhighlight>
در این مثال:
* '''i := 1''' مقدار اولیهٔ شمارنده است.
* '''i <= 5''' شرط ادامهٔ حلقه است.
* '''i++''' پس از هر بار اجرای حلقه، مقدار '''i''' را یک واحد افزایش میدهد.
== حلقه با شرط ==
در گو میتوان از '''for''' مانند حلقهٔ '''while''' در زبانهای دیگر استفاده کرد. برای این کار فقط شرط را مینویسیم:
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
i := 1
```
for i <= 5 {
fmt.Println(i)
i++
}
```
} </syntaxhighlight>
حلقه تا زمانی اجرا میشود که شرط '''i <= 5''' درست باشد.
== حلقه بینهایت ==
اگر '''for''' را بدون شرط بنویسیم، حلقه بهصورت نامحدود اجرا میشود:
<syntaxhighlight lang="go">
for {
fmt.Println("Hello")
}
</syntaxhighlight>
برای متوقف کردن چنین حلقهای معمولاً از '''break''' استفاده میشود.
== دستور break ==
دستور '''break''' اجرای حلقه را متوقف میکند.
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
for i := 1; i <= 10; i++ {
if i == 6 {
break
}
```
fmt.Println(i)
}
```
} </syntaxhighlight>
در این مثال وقتی '''i''' به ۶ برسد، حلقه متوقف میشود.
== دستور continue ==
دستور '''continue''' باعث میشود اجرای فعلی حلقه متوقف شود و برنامه به تکرار بعدی برود.
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
for i := 1; i <= 5; i++ {
if i == 3 {
continue
}
```
fmt.Println(i)
}
```
} </syntaxhighlight>
خروجی:
<syntaxhighlight lang="text">
1
2
4
5
</syntaxhighlight>
در این مثال عدد ۳ چاپ نمیشود.
== حلقه روی آرایه، اسلایس و رشته ==
برای پیمایش مجموعهای از دادهها میتوان از '''range''' استفاده کرد.
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
numbers := []int{10, 20, 30}
```
for index, value := range numbers {
fmt.Println(index, value)
}
```
} </syntaxhighlight>
در اینجا '''index''' شمارهٔ عنصر و '''value''' مقدار آن عنصر است.
اگر فقط مقدار مورد نیاز باشد، میتوان اندیس را با '''_''' نادیده گرفت:
<syntaxhighlight lang="go">
for _, value := range numbers {
fmt.Println(value)
}
</syntaxhighlight>
== حلقهٔ تو در تو ==
میتوان یک حلقه را داخل حلقهٔ دیگر قرار داد.
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
for i := 1; i <= 3; i++ {
for j := 1; j <= 3; j++ {
fmt.Println(i, j)
}
}
} </syntaxhighlight>
در این حالت حلقهٔ داخلی برای هر بار اجرای حلقهٔ بیرونی اجرا میشود.
== نکات مهم ==
* در گو برای حلقهها فقط از '''for''' استفاده میشود.
* برای توقف کامل حلقه از '''break''' استفاده میشود.
* برای رفتن به تکرار بعدی از '''continue''' استفاده میشود.
* با '''range''' میتوان روی آرایهها، اسلایسها، رشتهها و برخی ساختارهای دیگر پیمایش کرد.
* حلقهٔ بدون شرط مانند '''for { }''' یک حلقهٔ بینهایت ایجاد میکند.
* هنگام استفاده از حلقهها باید مراقب شرایط پایان باشیم تا برنامه ناخواسته وارد حلقهٔ بینهایت نشود.
== تمرینها ==
# برنامهای بنویسید که اعداد ۱ تا ۱۰۰ را چاپ کند.
# برنامهای بنویسید که فقط اعداد زوج بین ۱ تا ۵۰ را چاپ کند.
# برنامهای بنویسید که مجموع اعداد ۱ تا ۱۰۰ را محاسبه کند.
# با استفاده از '''for''' و '''range''' تمام عناصر یک اسلایس را چاپ کنید.
# برنامهای بنویسید که اعداد ۱ تا ۱۰ را بررسی کند و با استفاده از '''continue''' اعداد فرد را چاپ نکند.
== جمعبندی ==
'''for''' مهمترین ابزار تکرار در زبان گو است. با ترکیب '''for'''، '''range'''، '''break''' و '''continue''' میتوان بیشتر نیازهای مربوط به حلقهها و پیمایش دادهها را پیادهسازی کرد. یادگیری حلقهها برای کار با آرایهها، اسلایسها، رشتهها و الگوریتمهای مختلف در گو ضروری است.
j2clsrgild7qtekfkmkvqs5z2uzk9d0
135344
135341
2026-09-29T09:07:20Z
Fwldom
26269
اصلاح املا، اصلاح سجاوندی
135344
wikitext
text/x-wiki
{{سرصفحه
| عنوان = حلقهها
| قسمت =
| قبلی = [[زبان برنامهنویسی گو/شرطها|شرطها]]
| بعدی = [[زبان برنامهنویسی گو/اسلایس|اسلایسها]]
| یادداشت = [[زبان برنامهنویسی گو]]
}}
== حلقهها در گو ==
حلقهها (Loops) برای اجرای چندبارهٔ یک بخش از برنامه استفاده میشوند. در زبان برنامهنویسی Go، برخلاف بسیاری از زبانها، تنها ساختار '''for''' برای ایجاد حلقه وجود دارد و میتوان از آن برای حالتهای مختلف تکرار استفاده کرد.
== حلقه for ==
ساختار پایهٔ حلقهٔ '''for''' به شکل زیر است:
<syntaxhighlight lang="go">
for مقداردهی اولیه; شرط; تغییر {
// دستورها
}
</syntaxhighlight>
برای مثال:
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
for i := 1; i <= 5; i++ {
fmt.Println(i)
}
} </syntaxhighlight>
خروجی:
<syntaxhighlight lang="text">
1
2
3
4
5
</syntaxhighlight>
در این مثال:
* '''i := 1''' مقدار اولیهٔ شمارنده است.
* '''i <= 5''' شرط ادامهٔ حلقه است.
* '''i++''' پس از هر بار اجرای حلقه، مقدار '''i''' را یک واحد افزایش میدهد.
== حلقه با شرط ==
در گو میتوان از '''for''' مانند حلقهٔ '''while''' در زبانهای دیگر استفاده کرد. برای این کار فقط شرط را مینویسیم:
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
i := 1
```
for i <= 5 {
fmt.Println(i)
i++
}
```
} </syntaxhighlight>
حلقه تا زمانی اجرا میشود که شرط '''i <= 5''' درست باشد.
== حلقه بینهایت ==
اگر '''for''' را بدون شرط بنویسیم، حلقه بهصورت نامحدود اجرا میشود:
<syntaxhighlight lang="go">
for {
fmt.Println("Hello")
}
</syntaxhighlight>
برای متوقف کردن چنین حلقهای معمولاً از '''break''' استفاده میشود.
== دستور break ==
دستور '''break''' اجرای حلقه را متوقف میکند.
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
for i := 1; i <= 10; i++ {
if i == 6 {
break
}
```
fmt.Println(i)
}
```
} </syntaxhighlight>
در این مثال وقتی '''i''' به ۶ برسد، حلقه متوقف میشود.
== دستور continue ==
دستور '''continue''' باعث میشود اجرای فعلی حلقه متوقف شود و برنامه به تکرار بعدی برود.
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
for i := 1; i <= 5; i++ {
if i == 3 {
continue
}
```
fmt.Println(i)
}
```
} </syntaxhighlight>
خروجی:
<syntaxhighlight lang="text">
1
2
4
5
</syntaxhighlight>
در این مثال عدد ۳ چاپ نمیشود.
== حلقه روی آرایه، اسلایس و رشته ==
برای پیمایش مجموعهای از دادهها میتوان از '''range''' استفاده کرد.
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
numbers := []int{10, 20, 30}
```
for index, value := range numbers {
fmt.Println(index, value)
}
```
} </syntaxhighlight>
در اینجا '''index''' شمارهٔ عنصر و '''value''' مقدار آن عنصر است.
اگر فقط مقدار مورد نیاز باشد، میتوان اندیس را با '''_''' نادیده گرفت:
<syntaxhighlight lang="go">
for _, value := range numbers {
fmt.Println(value)
}
</syntaxhighlight>
== حلقهٔ تو در تو ==
میتوان یک حلقه را داخل حلقهٔ دیگر قرار داد.
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
for i := 1; i <= 3; i++ {
for j := 1; j <= 3; j++ {
fmt.Println(i, j)
}
}
} </syntaxhighlight>
در این حالت حلقهٔ داخلی برای هر بار اجرای حلقهٔ بیرونی اجرا میشود.
== نکات مهم ==
* در گو برای حلقهها فقط از '''for''' استفاده میشود.
* برای توقف کامل حلقه از '''break''' استفاده میشود.
* برای رفتن به تکرار بعدی از '''continue''' استفاده میشود.
* با '''range''' میتوان روی آرایهها، اسلایسها، رشتهها و برخی ساختارهای دیگر پیمایش کرد.
* حلقهٔ بدون شرط مانند '''for { }''' یک حلقهٔ بینهایت ایجاد میکند.
* هنگام استفاده از حلقهها باید مراقب شرایط پایان باشیم تا برنامه ناخواسته وارد حلقهٔ بینهایت نشود.
== تمرینها ==
# برنامهای بنویسید که اعداد ۱ تا ۱۰۰ را چاپ کند.
# برنامهای بنویسید که فقط اعداد زوج بین ۱ تا ۵۰ را چاپ کند.
# برنامهای بنویسید که مجموع اعداد ۱ تا ۱۰۰ را محاسبه کند.
# با استفاده از '''for''' و '''range''' تمام عناصر یک اسلایس را چاپ کنید.
# برنامهای بنویسید که اعداد ۱ تا ۱۰ را بررسی کند و با استفاده از '''continue''' اعداد فرد را چاپ نکند.
== جمعبندی ==
'''for''' مهمترین ابزار تکرار در زبان گو است. با ترکیب '''for'''، '''range'''، '''break''' و '''continue''' میتوان بیشتر نیازهای مربوط به حلقهها و پیمایش دادهها را پیادهسازی کرد. یادگیری حلقهها برای کار با آرایهها، اسلایسها، رشتهها و الگوریتمهای مختلف در گو ضروری است.
olyq7wspg5vrbwuarihulqr74snpmfm
135345
135344
2026-09-29T09:07:46Z
Fwldom
26269
135345
wikitext
text/x-wiki
{{سرصفحه
| عنوان = حلقهها
| قسمت =
| قبلی = [[زبان برنامهنویسی گو/شرطها|شرطها]]
| بعدی = [[زبان برنامهنویسی گو/اسلایسها|اسلایسها]]
| یادداشت = [[زبان برنامهنویسی گو]]
}}
== حلقهها در گو ==
حلقهها (Loops) برای اجرای چندبارهٔ یک بخش از برنامه استفاده میشوند. در زبان برنامهنویسی Go، برخلاف بسیاری از زبانها، تنها ساختار '''for''' برای ایجاد حلقه وجود دارد و میتوان از آن برای حالتهای مختلف تکرار استفاده کرد.
== حلقه for ==
ساختار پایهٔ حلقهٔ '''for''' به شکل زیر است:
<syntaxhighlight lang="go">
for مقداردهی اولیه; شرط; تغییر {
// دستورها
}
</syntaxhighlight>
برای مثال:
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
for i := 1; i <= 5; i++ {
fmt.Println(i)
}
} </syntaxhighlight>
خروجی:
<syntaxhighlight lang="text">
1
2
3
4
5
</syntaxhighlight>
در این مثال:
* '''i := 1''' مقدار اولیهٔ شمارنده است.
* '''i <= 5''' شرط ادامهٔ حلقه است.
* '''i++''' پس از هر بار اجرای حلقه، مقدار '''i''' را یک واحد افزایش میدهد.
== حلقه با شرط ==
در گو میتوان از '''for''' مانند حلقهٔ '''while''' در زبانهای دیگر استفاده کرد. برای این کار فقط شرط را مینویسیم:
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
i := 1
```
for i <= 5 {
fmt.Println(i)
i++
}
```
} </syntaxhighlight>
حلقه تا زمانی اجرا میشود که شرط '''i <= 5''' درست باشد.
== حلقه بینهایت ==
اگر '''for''' را بدون شرط بنویسیم، حلقه بهصورت نامحدود اجرا میشود:
<syntaxhighlight lang="go">
for {
fmt.Println("Hello")
}
</syntaxhighlight>
برای متوقف کردن چنین حلقهای معمولاً از '''break''' استفاده میشود.
== دستور break ==
دستور '''break''' اجرای حلقه را متوقف میکند.
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
for i := 1; i <= 10; i++ {
if i == 6 {
break
}
```
fmt.Println(i)
}
```
} </syntaxhighlight>
در این مثال وقتی '''i''' به ۶ برسد، حلقه متوقف میشود.
== دستور continue ==
دستور '''continue''' باعث میشود اجرای فعلی حلقه متوقف شود و برنامه به تکرار بعدی برود.
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
for i := 1; i <= 5; i++ {
if i == 3 {
continue
}
```
fmt.Println(i)
}
```
} </syntaxhighlight>
خروجی:
<syntaxhighlight lang="text">
1
2
4
5
</syntaxhighlight>
در این مثال عدد ۳ چاپ نمیشود.
== حلقه روی آرایه، اسلایس و رشته ==
برای پیمایش مجموعهای از دادهها میتوان از '''range''' استفاده کرد.
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
numbers := []int{10, 20, 30}
```
for index, value := range numbers {
fmt.Println(index, value)
}
```
} </syntaxhighlight>
در اینجا '''index''' شمارهٔ عنصر و '''value''' مقدار آن عنصر است.
اگر فقط مقدار مورد نیاز باشد، میتوان اندیس را با '''_''' نادیده گرفت:
<syntaxhighlight lang="go">
for _, value := range numbers {
fmt.Println(value)
}
</syntaxhighlight>
== حلقهٔ تو در تو ==
میتوان یک حلقه را داخل حلقهٔ دیگر قرار داد.
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
for i := 1; i <= 3; i++ {
for j := 1; j <= 3; j++ {
fmt.Println(i, j)
}
}
} </syntaxhighlight>
در این حالت حلقهٔ داخلی برای هر بار اجرای حلقهٔ بیرونی اجرا میشود.
== نکات مهم ==
* در گو برای حلقهها فقط از '''for''' استفاده میشود.
* برای توقف کامل حلقه از '''break''' استفاده میشود.
* برای رفتن به تکرار بعدی از '''continue''' استفاده میشود.
* با '''range''' میتوان روی آرایهها، اسلایسها، رشتهها و برخی ساختارهای دیگر پیمایش کرد.
* حلقهٔ بدون شرط مانند '''for { }''' یک حلقهٔ بینهایت ایجاد میکند.
* هنگام استفاده از حلقهها باید مراقب شرایط پایان باشیم تا برنامه ناخواسته وارد حلقهٔ بینهایت نشود.
== تمرینها ==
# برنامهای بنویسید که اعداد ۱ تا ۱۰۰ را چاپ کند.
# برنامهای بنویسید که فقط اعداد زوج بین ۱ تا ۵۰ را چاپ کند.
# برنامهای بنویسید که مجموع اعداد ۱ تا ۱۰۰ را محاسبه کند.
# با استفاده از '''for''' و '''range''' تمام عناصر یک اسلایس را چاپ کنید.
# برنامهای بنویسید که اعداد ۱ تا ۱۰ را بررسی کند و با استفاده از '''continue''' اعداد فرد را چاپ نکند.
== جمعبندی ==
'''for''' مهمترین ابزار تکرار در زبان گو است. با ترکیب '''for'''، '''range'''، '''break''' و '''continue''' میتوان بیشتر نیازهای مربوط به حلقهها و پیمایش دادهها را پیادهسازی کرد. یادگیری حلقهها برای کار با آرایهها، اسلایسها، رشتهها و الگوریتمهای مختلف در گو ضروری است.
489xqf8wy71t8jrsnl96iytg7d3m15q
135347
135345
2026-09-29T09:09:53Z
Fwldom
26269
Fwldom صفحهٔ [[زبان برنامه نویسی گو/حلقهها]] را به [[زبان برنامهنویسی گو/حلقهها]] منتقل کرد: اصلاح نیم فاصله
135345
wikitext
text/x-wiki
{{سرصفحه
| عنوان = حلقهها
| قسمت =
| قبلی = [[زبان برنامهنویسی گو/شرطها|شرطها]]
| بعدی = [[زبان برنامهنویسی گو/اسلایسها|اسلایسها]]
| یادداشت = [[زبان برنامهنویسی گو]]
}}
== حلقهها در گو ==
حلقهها (Loops) برای اجرای چندبارهٔ یک بخش از برنامه استفاده میشوند. در زبان برنامهنویسی Go، برخلاف بسیاری از زبانها، تنها ساختار '''for''' برای ایجاد حلقه وجود دارد و میتوان از آن برای حالتهای مختلف تکرار استفاده کرد.
== حلقه for ==
ساختار پایهٔ حلقهٔ '''for''' به شکل زیر است:
<syntaxhighlight lang="go">
for مقداردهی اولیه; شرط; تغییر {
// دستورها
}
</syntaxhighlight>
برای مثال:
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
for i := 1; i <= 5; i++ {
fmt.Println(i)
}
} </syntaxhighlight>
خروجی:
<syntaxhighlight lang="text">
1
2
3
4
5
</syntaxhighlight>
در این مثال:
* '''i := 1''' مقدار اولیهٔ شمارنده است.
* '''i <= 5''' شرط ادامهٔ حلقه است.
* '''i++''' پس از هر بار اجرای حلقه، مقدار '''i''' را یک واحد افزایش میدهد.
== حلقه با شرط ==
در گو میتوان از '''for''' مانند حلقهٔ '''while''' در زبانهای دیگر استفاده کرد. برای این کار فقط شرط را مینویسیم:
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
i := 1
```
for i <= 5 {
fmt.Println(i)
i++
}
```
} </syntaxhighlight>
حلقه تا زمانی اجرا میشود که شرط '''i <= 5''' درست باشد.
== حلقه بینهایت ==
اگر '''for''' را بدون شرط بنویسیم، حلقه بهصورت نامحدود اجرا میشود:
<syntaxhighlight lang="go">
for {
fmt.Println("Hello")
}
</syntaxhighlight>
برای متوقف کردن چنین حلقهای معمولاً از '''break''' استفاده میشود.
== دستور break ==
دستور '''break''' اجرای حلقه را متوقف میکند.
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
for i := 1; i <= 10; i++ {
if i == 6 {
break
}
```
fmt.Println(i)
}
```
} </syntaxhighlight>
در این مثال وقتی '''i''' به ۶ برسد، حلقه متوقف میشود.
== دستور continue ==
دستور '''continue''' باعث میشود اجرای فعلی حلقه متوقف شود و برنامه به تکرار بعدی برود.
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
for i := 1; i <= 5; i++ {
if i == 3 {
continue
}
```
fmt.Println(i)
}
```
} </syntaxhighlight>
خروجی:
<syntaxhighlight lang="text">
1
2
4
5
</syntaxhighlight>
در این مثال عدد ۳ چاپ نمیشود.
== حلقه روی آرایه، اسلایس و رشته ==
برای پیمایش مجموعهای از دادهها میتوان از '''range''' استفاده کرد.
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
numbers := []int{10, 20, 30}
```
for index, value := range numbers {
fmt.Println(index, value)
}
```
} </syntaxhighlight>
در اینجا '''index''' شمارهٔ عنصر و '''value''' مقدار آن عنصر است.
اگر فقط مقدار مورد نیاز باشد، میتوان اندیس را با '''_''' نادیده گرفت:
<syntaxhighlight lang="go">
for _, value := range numbers {
fmt.Println(value)
}
</syntaxhighlight>
== حلقهٔ تو در تو ==
میتوان یک حلقه را داخل حلقهٔ دیگر قرار داد.
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
for i := 1; i <= 3; i++ {
for j := 1; j <= 3; j++ {
fmt.Println(i, j)
}
}
} </syntaxhighlight>
در این حالت حلقهٔ داخلی برای هر بار اجرای حلقهٔ بیرونی اجرا میشود.
== نکات مهم ==
* در گو برای حلقهها فقط از '''for''' استفاده میشود.
* برای توقف کامل حلقه از '''break''' استفاده میشود.
* برای رفتن به تکرار بعدی از '''continue''' استفاده میشود.
* با '''range''' میتوان روی آرایهها، اسلایسها، رشتهها و برخی ساختارهای دیگر پیمایش کرد.
* حلقهٔ بدون شرط مانند '''for { }''' یک حلقهٔ بینهایت ایجاد میکند.
* هنگام استفاده از حلقهها باید مراقب شرایط پایان باشیم تا برنامه ناخواسته وارد حلقهٔ بینهایت نشود.
== تمرینها ==
# برنامهای بنویسید که اعداد ۱ تا ۱۰۰ را چاپ کند.
# برنامهای بنویسید که فقط اعداد زوج بین ۱ تا ۵۰ را چاپ کند.
# برنامهای بنویسید که مجموع اعداد ۱ تا ۱۰۰ را محاسبه کند.
# با استفاده از '''for''' و '''range''' تمام عناصر یک اسلایس را چاپ کنید.
# برنامهای بنویسید که اعداد ۱ تا ۱۰ را بررسی کند و با استفاده از '''continue''' اعداد فرد را چاپ نکند.
== جمعبندی ==
'''for''' مهمترین ابزار تکرار در زبان گو است. با ترکیب '''for'''، '''range'''، '''break''' و '''continue''' میتوان بیشتر نیازهای مربوط به حلقهها و پیمایش دادهها را پیادهسازی کرد. یادگیری حلقهها برای کار با آرایهها، اسلایسها، رشتهها و الگوریتمهای مختلف در گو ضروری است.
489xqf8wy71t8jrsnl96iytg7d3m15q
135358
135347
2026-09-29T09:17:36Z
Fwldom
26269
added [[Category:زبان برنامهنویسی گو]] با استفاده از ردهساز
135358
wikitext
text/x-wiki
{{سرصفحه
| عنوان = حلقهها
| قسمت =
| قبلی = [[زبان برنامهنویسی گو/شرطها|شرطها]]
| بعدی = [[زبان برنامهنویسی گو/اسلایسها|اسلایسها]]
| یادداشت = [[زبان برنامهنویسی گو]]
}}
== حلقهها در گو ==
حلقهها (Loops) برای اجرای چندبارهٔ یک بخش از برنامه استفاده میشوند. در زبان برنامهنویسی Go، برخلاف بسیاری از زبانها، تنها ساختار '''for''' برای ایجاد حلقه وجود دارد و میتوان از آن برای حالتهای مختلف تکرار استفاده کرد.
== حلقه for ==
ساختار پایهٔ حلقهٔ '''for''' به شکل زیر است:
<syntaxhighlight lang="go">
for مقداردهی اولیه; شرط; تغییر {
// دستورها
}
</syntaxhighlight>
برای مثال:
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
for i := 1; i <= 5; i++ {
fmt.Println(i)
}
} </syntaxhighlight>
خروجی:
<syntaxhighlight lang="text">
1
2
3
4
5
</syntaxhighlight>
در این مثال:
* '''i := 1''' مقدار اولیهٔ شمارنده است.
* '''i <= 5''' شرط ادامهٔ حلقه است.
* '''i++''' پس از هر بار اجرای حلقه، مقدار '''i''' را یک واحد افزایش میدهد.
== حلقه با شرط ==
در گو میتوان از '''for''' مانند حلقهٔ '''while''' در زبانهای دیگر استفاده کرد. برای این کار فقط شرط را مینویسیم:
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
i := 1
```
for i <= 5 {
fmt.Println(i)
i++
}
```
} </syntaxhighlight>
حلقه تا زمانی اجرا میشود که شرط '''i <= 5''' درست باشد.
== حلقه بینهایت ==
اگر '''for''' را بدون شرط بنویسیم، حلقه بهصورت نامحدود اجرا میشود:
<syntaxhighlight lang="go">
for {
fmt.Println("Hello")
}
</syntaxhighlight>
برای متوقف کردن چنین حلقهای معمولاً از '''break''' استفاده میشود.
== دستور break ==
دستور '''break''' اجرای حلقه را متوقف میکند.
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
for i := 1; i <= 10; i++ {
if i == 6 {
break
}
```
fmt.Println(i)
}
```
} </syntaxhighlight>
در این مثال وقتی '''i''' به ۶ برسد، حلقه متوقف میشود.
== دستور continue ==
دستور '''continue''' باعث میشود اجرای فعلی حلقه متوقف شود و برنامه به تکرار بعدی برود.
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
for i := 1; i <= 5; i++ {
if i == 3 {
continue
}
```
fmt.Println(i)
}
```
} </syntaxhighlight>
خروجی:
<syntaxhighlight lang="text">
1
2
4
5
</syntaxhighlight>
در این مثال عدد ۳ چاپ نمیشود.
== حلقه روی آرایه، اسلایس و رشته ==
برای پیمایش مجموعهای از دادهها میتوان از '''range''' استفاده کرد.
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
numbers := []int{10, 20, 30}
```
for index, value := range numbers {
fmt.Println(index, value)
}
```
} </syntaxhighlight>
در اینجا '''index''' شمارهٔ عنصر و '''value''' مقدار آن عنصر است.
اگر فقط مقدار مورد نیاز باشد، میتوان اندیس را با '''_''' نادیده گرفت:
<syntaxhighlight lang="go">
for _, value := range numbers {
fmt.Println(value)
}
</syntaxhighlight>
== حلقهٔ تو در تو ==
میتوان یک حلقه را داخل حلقهٔ دیگر قرار داد.
<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
for i := 1; i <= 3; i++ {
for j := 1; j <= 3; j++ {
fmt.Println(i, j)
}
}
} </syntaxhighlight>
در این حالت حلقهٔ داخلی برای هر بار اجرای حلقهٔ بیرونی اجرا میشود.
== نکات مهم ==
* در گو برای حلقهها فقط از '''for''' استفاده میشود.
* برای توقف کامل حلقه از '''break''' استفاده میشود.
* برای رفتن به تکرار بعدی از '''continue''' استفاده میشود.
* با '''range''' میتوان روی آرایهها، اسلایسها، رشتهها و برخی ساختارهای دیگر پیمایش کرد.
* حلقهٔ بدون شرط مانند '''for { }''' یک حلقهٔ بینهایت ایجاد میکند.
* هنگام استفاده از حلقهها باید مراقب شرایط پایان باشیم تا برنامه ناخواسته وارد حلقهٔ بینهایت نشود.
== تمرینها ==
# برنامهای بنویسید که اعداد ۱ تا ۱۰۰ را چاپ کند.
# برنامهای بنویسید که فقط اعداد زوج بین ۱ تا ۵۰ را چاپ کند.
# برنامهای بنویسید که مجموع اعداد ۱ تا ۱۰۰ را محاسبه کند.
# با استفاده از '''for''' و '''range''' تمام عناصر یک اسلایس را چاپ کنید.
# برنامهای بنویسید که اعداد ۱ تا ۱۰ را بررسی کند و با استفاده از '''continue''' اعداد فرد را چاپ نکند.
== جمعبندی ==
'''for''' مهمترین ابزار تکرار در زبان گو است. با ترکیب '''for'''، '''range'''، '''break''' و '''continue''' میتوان بیشتر نیازهای مربوط به حلقهها و پیمایش دادهها را پیادهسازی کرد. یادگیری حلقهها برای کار با آرایهها، اسلایسها، رشتهها و الگوریتمهای مختلف در گو ضروری است.
[[رده:زبان برنامهنویسی گو]]
nnq9jfy9dy0h9ivwsjexrwpvcvt4las
زبان برنامه نویسی گو/حلقهها
0
42161
135348
2026-09-29T09:09:54Z
Fwldom
26269
Fwldom صفحهٔ [[زبان برنامه نویسی گو/حلقهها]] را به [[زبان برنامهنویسی گو/حلقهها]] منتقل کرد: اصلاح نیم فاصله
135348
wikitext
text/x-wiki
#تغییر_مسیر [[زبان برنامهنویسی گو/حلقهها]]
lw6zr2z7kxrnrkfrd2fgjbmj33hq1of
زبان برنامهنویسی گو/ساختارها (Structs)
0
42162
135360
2026-09-29T09:20:32Z
Fwldom
26269
صفحهای تازه حاوی «{{سرصفحه | عنوان = ساختارها (Structs) | قسمت = | قبلی = [[زبان برنامهنویسی گو/نقشهها (Maps)| نقشهها (Maps)]] | بعدی = [[زبان برنامهنویسی گو/اشارهگرها (Pointers)|اشارهگرها (Pointers)]] | یادداشت = [[زبان برنامهنویسی گو]] }}» ایجاد کرد
135360
wikitext
text/x-wiki
{{سرصفحه
| عنوان = ساختارها (Structs)
| قسمت =
| قبلی = [[زبان برنامهنویسی گو/نقشهها (Maps)| نقشهها (Maps)]]
| بعدی = [[زبان برنامهنویسی گو/اشارهگرها (Pointers)|اشارهگرها (Pointers)]]
| یادداشت = [[زبان برنامهنویسی گو]]
}}
2d345gk37pmcx9xo5lwxg6lgu4ii0h0
135361
135360
2026-09-29T09:21:13Z
Fwldom
26269
135361
wikitext
text/x-wiki
{{سرصفحه
| عنوان = ساختارها (Structs)
| قسمت =
| قبلی = [[زبان برنامهنویسی گو/نقشهها (Maps)| نقشهها (Maps)]]
| بعدی = [[زبان برنامهنویسی گو/اشارهگرها (Pointers)|اشارهگرها (Pointers)]]
| یادداشت = [[زبان برنامهنویسی گو]]
}}
[[رده:زبان برنامهنویسی گو]]
jezufe1w1yx45bphwuvz37ic0xtnbsd
زبان برنامهنویسی گو/اشارهگرها (Pointers)
0
42163
135362
2026-09-29T09:22:11Z
Fwldom
26269
صفحهای تازه حاوی «{{سرصفحه | عنوان = اشارهگرها (Pointers) | قسمت = | قبلی = [[زبان برنامهنویسی گو/ساختارها (Structs)|اساختارها (Structs)]] | بعدی = [[زبان برنامهنویسی گو/تعریف و استفاده از توابع|تعریف و استفاده از توابع]] | یادداشت = [[زبان برنامهنویسی گو]] }}» ایجاد کرد
135362
wikitext
text/x-wiki
{{سرصفحه
| عنوان = اشارهگرها (Pointers)
| قسمت =
| قبلی = [[زبان برنامهنویسی گو/ساختارها (Structs)|اساختارها (Structs)]]
| بعدی = [[زبان برنامهنویسی گو/تعریف و استفاده از توابع|تعریف و استفاده از توابع]]
| یادداشت = [[زبان برنامهنویسی گو]]
}}
qyne6u71wavz8tcb8wpyokpj5n3ks4t
135363
135362
2026-09-29T09:22:26Z
Fwldom
26269
added [[Category:زبان برنامهنویسی گو]] با استفاده از ردهساز
135363
wikitext
text/x-wiki
{{سرصفحه
| عنوان = اشارهگرها (Pointers)
| قسمت =
| قبلی = [[زبان برنامهنویسی گو/ساختارها (Structs)|اساختارها (Structs)]]
| بعدی = [[زبان برنامهنویسی گو/تعریف و استفاده از توابع|تعریف و استفاده از توابع]]
| یادداشت = [[زبان برنامهنویسی گو]]
}}
[[رده:زبان برنامهنویسی گو]]
37p83kw130g92tiobp5i4v2bc9p2iku