computerclub1

۱۲ دلیلی برای بهتر بودن لینوکس نسبت به ویندوز ۱۰


۱٫ سرعت کم ویندوز ۱۰ در سیستم های قدیمی
اگر شما از ویندوزهای قبل ویندوز ۱۰ مانند اکس پی و ویستا استفاده می کنید متوجه این موضوع شده اید که به اندازه ویندوزهای جدید مانند ۱۰ و ۸ قوی نیستند. که در این صورت یا شما باید سیستم خود را ارتقا داده و سیستم عامل های جدیدتری را نصب بنمایید و یا از لینوکس استفاده کنید.
بعضی از نسخه های لینوکس کارایی لازم را ندارند به خاطر این که مقداری از حافظه را پر می کنند اما ورژن های جدیدتر دسترسی بهتری دارد و سبک تر هستند بنابراین در سسیتم های قدیمی بهتر عمل می کنند.
برای سیتم هایی با سخت افزارهای جدید تر از یوبونت و ویندوز استفاده کنید و برای سیستم های دو تا چهار سال قبل از لینوکس مینت می توانید استفاده کنید البته MATE و XFCE سبک تر هستند.
و اگر سیستم شما خیلی قدیمی است از AntiX و Q4OSو Ubuntu می توانید استفاده نمایید.

۲٫ شما رابط کاربری ویندوز ۱۰ را دوست ندارید
اکثر مردم که می خواهند از یک سیستم عامل جدید استفاده می کنند نگران این هستند که نتوانند ارتباط خوبی با آن برقرار کنند مخصوصا اگر ظاهر آن تغییر کرده باشد. البته ممکن است که با شرایط جدید خودتان را وفق دهید ولی بعضی ها همان محیط ویندوز ۷ را ترجیح می دهند.
ولی در لینوکس مینت یک نگاه مدرن تری یه این موضوع کرده و با تولبار و منوهایی که همیشه دردسترس هست شما می توانیید به راحتی کار خود را انجام داده و یادگیری آن سخت از ویندوزهای ۷ و ۱۰ نمی باشد.

۳٫ فایل نصبی ویندوز خیلی سنگین است
اگر شما ویندوز را دانلود و نصب کرده باشید حتما به سنگین بدون این فایل که نزدیک به دو گیگابایت می باشد پی برده اید در صورتی که در لینوکس این طور نیست و با دانلود یک فایل تقریبا ۶۰۰ مگابایتی می توانید سیستم عامل خود را نصب کنید این سنگین بودن فایل نصب همان طور که می توانند زمان بر باشد هرینه هایی را هم به دنبال دارد.

۴٫ لینوکس رایگان است

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

۱۲ دلیلی برای بهتر بودن لینوکس نسبت به ویندوز ۱۰

۵٫ لینوکس برنامه های رایگان زیادی دارد
شاید برای شما هم پیش آمده است که از برنامه هایی در ویندوز استفاده کنید که پس از مدتی کار کردن و پول آن ها راندادن قفل شوند و شما مجبور شوید به دنبال کرک و یک سری مراحل پیچیده بروید در صورتی که در لینوکس برنامه های کاملا مشابه ای وجود دارد که همان کارها را انجام می دهد و چه بسا قوی تر و بهتر مانند: LibreOffice و Rhythmbox و VLC و Evolution و GIMP
۶٫ امنیت
هیچ سیستم عاملی نمی تواند ادعا کند که کاملا امن است و خطری ندارد ولی ویندوز یک هدف بزرگ برای توسعه دهندگان ویروس ها و بدافزارها است. که شما در آن مجبور می شوید از یکی از نرم افزار های آنتی ویروس استفاده نمایید.
ولی در لینوکس شما تنها باید مطمئن شوید که از منابع معتبری نرم افزار های خود را دریافت می کنید.
لینوکس به خاطر طبیعتش فقط امن تر از ویندوز است.
۷٫ عملکرد
لینوکس از نظر عملکرد و سرعت قوی تر است این برای نحوه ی نوشته شدن این سیستم عامل است. شاید برای شما هم پیش آمده باشد که با سیتم خود کار کنید ولی نیاز کامل نداشته باشید که از تمام پردازش سیستمتو استفاده کنید.
۸٫ حریم خصوصی
یکی از چیزهایی که خیلی اهمیت دارد بحث حریم خصوصی می باشد خیلی ها معتقد هستند که ماکروسافت کار جدیدی نسبت به گوگل و آمازون ویا فیس بوک تو این زمینه انجام نداده است به عنوان مثال، سیستم کنترل صدای جدید Cortana در مورد نحوه صحبت کردن شما و نحوه صحبت کردن با آن، با ارسال اطلاعات استفاده به مایکروسافت، یاد می گیرد. آنها می توانند از این داده ها برای بهبود کارایی Cortana استفاده کنند. مطمئنا Cortana آگهی های هدفمندی را برای شما ارسال می کند اما گوگل در حال حاضر این کار را انجام می دهد و بخشی از زندگی مدرن است.

+ نوشته شده در  پنجشنبه 5 مرداد 1396ساعت 12:11  توسط computerclub1  | 

مقایسه اندروید و ای او اس



امروزه باتوجه به شرایط بازار رقابت بین دو سیستم عامل قدرتمند ios و Android میباشد. که هر کدارم خدمات مختلفی رو به کاربران خودارائه میدهند که شما باید از آنها مطلع باشید و این دوسیستم عامل رو به خوبی بشناسید،
تا بتوانید انتخاب بهتری داشته باشید.
و این دو سیستم عامل دراخرین تغییرات خود امکانات جالبی مانند third play Air play , Itunes Home Sharing در ios اشاره کرد وهمچنین اندروید هم اپلیکیشن های مختلفی مانند ebook و… را هر روز وارد بازار میکند و جالباست بدانید که
اندروید مورد استفاده شرکت های مختلف میباشد درصورتی ک ios مخصوص شرکت اپل میباشد.

_اپل مایل است شما گوشی های ایفون روهمانگونه که خودش عملکردش را تنظیم کرده مورد استفاده قرار دهید .در صورتی که در اندروید به این صورت است که شما گوشی رو آنطور که خودتان دوست دارید و مایل هستید تنظیم کنید .
زیرا این سیستم عامل دارای قابلیت Opensource میباشد و دلیل این راحتی در تغییرات این است که SOURCE برنامه ها دراختیار شملا قرار میگیرد .
درصورتی ک در اپل سورس برنامه در شرکت اپل محفوظ است , و این شرکت اپل است که با تغییر درسورس برنامه ها قابلیت های جدیدی در اختیار کاربران قرر میدهد
البته این بدیهی است که هر دو این سیستم عامل ها از یک خانواده هستند ،
چراکه ریشه و اجدادشون از پایه Mac OS X ست ک خود مکینتاش اصالتا نوعی BSD میباشد

مقایسه اندروید و ای او اس


_یادمان باشد همیشه برای مقایسه دو سیستم عامل ابتدا باید هسته ی آن هارو مقایسه کرد .سپس پوسته سیستم عامل و در اخر خودبرنامه ها مورد مقایسه قراد میگیرند
هسته ios همان سبک شده داروین سیستم عامل مکینتاش است،و هسته اندروید هم همان لینوکس کرنل معروف است.
و اما مهمترین اختلاف این دو سیستم عامل دقیقا در همینجاست سیستم عامل ابذار های موبایل مانند هرسیستم عامل دیگر وظیفه ی مدیریت درخواست های برنامه ها و درخواست های کاربر و هماهنگ سازی اختصاص منابع سخت افزاری را دارد
در ios برنامه ها به صورت بومی native اجرا میشود اما در اندروید برنامه ها در بستر نرم افزاری fremework به اجرادر میاورد .
حالا در انیجا ما میگیم که چه تفاوتی دارد برنامه ها دربستر نرم افزاری fremework اجرا شود ویا به صورت native باشند ،
اجرای برنامه ها بصورت native میزان مصرف سخت افزار ما را بالا میبرد و شاید عمر کمتر باطری اندروید نسبت به ios ب همین دلیل است .
و ios ر سخت افزار های ضعیفتر سرعت بالاتری دارد
ودر مجموع اگر بخواهیم جمع بندی کنیم ios در زمینه ی به کارگیری و مدیریت منابع سخت افزار وبهینه بودن در مصرف انرژی
برنده ی این مقایسه است

+ نوشته شده در  پنجشنبه 5 مرداد 1396ساعت 12:00  توسط computerclub1  | 

آموزش برنامه نویسی جاوا: مفاهیم پایه در زبان جاوا (قسمت ۷)

پیش گفتار

تا قبل از این آموزش، ما 13 آموزش برنامه نویسی جاوا را منتشر کرده‌ایم. تمام سعی ما بر این است که این دوره‌ی آموزشی را به بهترین نحو پیش ببریم و مطالب را طوری آموزش دهیم تا کسانی که برنامه نویسی را با این دوره شروع کرده‌اند به راحتی مفاهیم را درک کنند. برای همین منظور حجم آموزش‌ها خیلی زیاد نیست. اما با توجه به نظرات کاربران در مورد کم بودن آموزش‌ها و مسلما طولانی شدن آموزش‌ها، تصمیم گرفتیم که از این آموزش به بعد حجم مطالب را افزایش دهیم. البته این افزایش مطلب باعث کلی گویی در آموزش‌ها نمی‌شود.
کلاس Scanner

یکی دیگر از روش‌های دریافت ورودی از کاربر استفاده از کلاس Scanner است. این کلاس در پکیج java.util قرار دارد و برای استفاده از این کلاس حتما باید پکیج مربوطه را import کنیم. برای استفاده از کلاس اسکنر ابتدا باید با استفاده از کلمه‌ی کلیدی new یک آبجکت یا شی بسازیم. با توجه به اینکه در حال حاضر ما به مبحث شی‌گرایی نرسیده‌ایم بهتر است فقط نحوه‌ی استفاده از این کلاس را حفظ کنید تا بعدا در مبحث مربوطه با جزئیات کار آشنا شوید. به کد زیر دقت کنید:

Scanner input = new Scanner(System.in);

همانطور که مشاهده می‌کنید ما ابتدا نام کلاس Scanner را نوشته‌ایم و بعد متغیری با نام input تعریف کرده‌ایم و بعد با استفاده از کلمه‌ی کلیدی new شی‌ را ساخته‌ایم. متغیر input در اصل ارجاعی به شی Scanner است نه اینکه خود input شی باشد. اما تمام برنامه نویسان برای راحتی کار به متغیر input آبجکت یا شی می‌گویند. به عملی که ما در بالا انجام داده‌ایم ساختن یک آبجکت یا شی از روی کلاس Scanner گفته می‌شود. در مبحث شی‌گرایی مفهومی است با نام Constructor یا سازنده که به متد هم نام آن کلاس گفته می‌شود. (این مفاهیم در مبحث شی گرایی به طور مفصل توضیح داده خواهد شد. پس نگران نباشید!!!). اگر در کد بالا دقت کنید ما در داخل پرانتز‌های باز و بسته‌، استریم (جریان) System.in را نوشته‌ایم. همانطور که در آموزش قبلی مشاهده کردید ما با استفاده از System.in از طریق کنسول برنامه ورودی‌ را دریافت کردیم. در اینجا System.in در کانستراکتور کلاس Scanner معرف جریان داده‌ای است که از طریق کنسول برنامه از کاربر دریافت می‌شود. این جریان داده در اختیار آبجکت اسکنر قرار داده می‌شود تا این آبجکت نیز داده‌ها را در قالب یک متن قابل تفسیر در اختیار ما قرار دهد. در ادامه ما با استفاده از متد‌هایی که در کلاس Scanner تعریف شده اند می‌توانیم از کاربر ورودی دریافت کنیم. بعضی از این متد‌ها در زیر آورده شده اند:

nextLine() - next() - nextInt() - nextDouble()

حالا می‌خواهیم برنامه‌ای بنویسیم که کاربر یک متنی را بنویسد و تا زمانی که دکمه‌ی Space را نزده است، متن نوشته شده توسط کاربر وارد برنامه شود. یعنی زمانی که Space زده شد، از Space به بعد را برنامه نادیده بگیرد (وارد برنامه نشود). به کد زیر توجه کنید:

Scanner
سلسله مطالب آمورش جاوا

آموزش برنامه نویسی جاوا - مقدمه
آموزش برنامه نویسی جاوا: در مورد جاوا
آموزش برنامه نویسی جاوا: JVM
آموزش برنامه نویسی جاوا: چگونه JDK را نصب کنیم؟
آموزش برنامه نویسی جاوا: Hello World
آموزش برنامه نویسی جاوا: eclipse
آموزش برنامه نویسی جاوا: راه اندازی اکلیپس
آموزش برنامه نویسی جاوا: مفاهیم پایه در زبان جاوا (قسمت1)
آموزش برنامه نویسی جاوا: مفاهیم پایه در زبان جاوا (قسمت 2)
آموزش برنامه نویسی جاوا: مفاهیم پایه در زبان جاوا (قسمت ۳)
آموزش برنامه نویسی جاوا: مفاهیم پایه در زبان جاوا (قسمت ۴)
آموزش برنامه نویسی جاوا: مفاهیم پایه در زبان جاوا (قسمت ۵)
آموزش برنامه نویسی جاوا: مفاهیم پایه در زبان جاوا (قسمت ۶)

در مورد کدی که در خط هفت نوشته شده است توضیح داده شد. مهم ترین خط، خط 10 است که ابتدا یک متغیر با نام name از نوع String تعریف کرده‌ایم و بعد علامت مساوی را قرار داده‌ایم. در سمت راست مساوی ما عملیات ورودی را انجام داده‌ایم. ما با استفاده از متد next می‌توانیم به متنی که توسط کاربر تایپ شده است دست یابیم. چون متد next در کلاس اسکنر است، بنابراین برای دسترسی به آن متد باید از آبجکتی که از روی آن کلاس ایجاد شده است استفاده کنیم. ما آبجکت input را از روی کلاس Scanner ایجاد کرده‌ایم. بنابراین ابتدا این آبجکت را می‌نویسیم و سپس یک نقطه (.) قرار می‌دهیم و بعد نام متد را می‌آوریم. وقتی اجرای برنامه به این خط از برنامه می‌رسد (خط 10)، برنامه منتظر می‌ماند تا کاربر چیزی را در کنسول برنامه تایپ کند و سپس دکمه‌ی اینتر را بزند. بعد از اینکه کاربر دکمه‌ی اینتر را فشار داد، چیز‌هایی که کاربر تایپ کرده است در متغیر name ذخیره می‌شود. در خط آخر برنامه هم (خط 13) استفاده از آبجکت اسکنر مسدود شده است. مسدود کردن آبجکت Scanner باعث آزاد شدن کنسول برنامه می‌شود تا قسمت‌های دیگر برنامه در صورت نیاز بتوانند از آن استفاده کنند.

نکته‌ی دیگری که در این برنامه باید به آن توجه کنیم این است که در خط اول برنامه پکیجی را import کرده‌ایم. همانطور که قبلا هم گفته شد برای استفاده از کلاس‌هایی که در پکیج‌های دیگر قرار دارند، باید آن‌ها را import کنیم. البته ما می‌توانستیم استفاده از کلاس اسکنر را به صورت زیر هم بنویسیم تا دیگر پکیج مربوطه را import نکنیم:

java.util.Scanner input = new java.util.Scanner(System.in);

اگر پکیج‌ها را import نکنیم و به شکل بالا از کلاس‌ها استفاده کنیم، نکته‌ای است که همانطور که مشاهده می‌کنید ما در هر جایی که بخواهیم از کلاس Scanner استفاده کنیم، باید نام کلاس به همراه نام دقیق پکیج آن نوشته شود. اما اگر import کنیم دیگر نیازی به این کار نیست. بنابراین import کردن بهترین کار است. نکته‌ی مهم دیگری که در این کار وجود دارد این است که import کردن فقط در فایل java. است و وقتی که برنامه‌ی ما توسط ابزار javac کامپایل می‌شود و فایل class. ایجاد می‌شود، دیگر در فایل class. خبری از import نیست. زیرا کامپایلر جاوا زمانی که می‌خواد برنامه را کامپایل کند و به کلاس اسکنر می‌رسد، به import ها نگاه می‌کند و کلاس مورد نظر را پیدا می‌کند و آن را دقیقا مشابه آن چیزی که ما در بالا نوشته‌ایم می‌نویسد.

خروجی برنامه‌فوق به صورت زیر است:

What is your name? Sina Doshiri

Your name is: Sina

همانطور که مشاهده می‌کنید من به عنوان ورودی نام کامل خودم را وارد کرده‌ام. اما خروجی فقط نام من را چاپ کرده است. علت این است که من از متد next استفاده کرده‌ام. بنابراین این متد از بعد از Space را در نظر نمی‌گیرد. در مورد متد‌های دیگر خودتان تحقیق کنید. همانطور که از نامشان پیداست برای دریافت عددصحیح و عدد اعشاری استفاده می‌شوند. متد nextLine هم مانند next است اما تمام Space ها را نیز در نظر می‌گیرد.
دریافت ورودی از طریق واسط کاربری

یکی دیگر از روش‌های دریافت ورودی در جاوا که روش جذابی هم است، استفاده از واسط کاربری است. منظور از واسط کاربری همان پنجره‌هایی است که مبنای کار سیستم عامل‌های امروزی است. از طریق این پنجره‌ها، ممکن است داده‌هایی را به یک برنامه وارد کنید یا خروجی اجرای یک برنامه را مشاهده کنید. کلاس JOptionPane یکی دیگر از کلاس‌های جاوا است که با استفاده از متد‌های آن می‌توان انواع مختلفی از پنجره‌های از پیش تعریف شده را نمایش داد. قبل از این آموزش ما با استفاده از کادر‌های گفتگو متنی را نمایش دادیم. اما در اینجا می‌خواهیم یک ورودی را از کاربر دیافت کنیم. برای این کار باید از متد showInputDialog استفاده کنیم. به کد زیر توجه کنید:

JOptionPaneهمانطور که در تصویر بالا مشاهده می‌کنید، هم کد و هم خروجی برنامه آورده شده است. کلاس JOptionPane در پکیج javax.swing قرار دارد و طبق معمول باید آن را import کرد.

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

sum-of-two-numbersبرنامه‌ی بالا را می‌توان یک ماشین حساب ساده در نظر گرفت. نکته‌ای که در مورد کادر‌های گفتگو وجود دارد این است که ورودی‌ که برنامه از این طریق دریافت می‌کند همگی از نوع String هستند. بنابراین برای اینکه ما بخواهیم مقداری که کاربر از طریق کادر‌های گفتگو وارد برنامه می‌کند را در یک متغیر ذخیره کنیم تا در ادامه‌ی برنامه از آن استفاده کنیم، آن متغیر باید از جنس String باشد. همانطور که در خطوط هف و هشت مشاهده می‌کنید ما دو متغیر از نوع String با نام‌های firstNum و secondNum تعریف کرده‌ایم تا به ترتیب عدد اول و عدد دوم را ذخیره کند. توجه داشته باشید که ما می‌خواهیم عملیات جمع انجام دهیم. بنابراین مثلا عدد 2 که به صورت String در حافظه ذخیره شده با 2 که به صورت int یا double ذخیره شده است تفاوت دارد. اجازه دهید کار خود را با یک مثال پیش ببریم. به کد زیر توجه کنید:

string-and-int

در برنامه‌ی بالا ابتدا دو متغیر از نوع String تعریف شده‌اند که هر کدام مقدار 2 را دریافت کرده اند. در خط هفت وقتی آن دو متغیر را با هم جمع می‌کنیم، براساس منطق ریاضی جواب باید 4 شود. اما جواب 22 است. در حقیقت 22 هم نیست!!!. فقط برنامه دو تا دو را در کنار هم نوشته است. اما در قسمت بعد برنامه ما دو متغیر از نوع int تعریف کرده‌ایم و در خط 11 آن‌ها را با هم جمع و در خروجی چاپ کرده‌ایم. اینبار جواب درست را می‌بینیم. یعنی 4.

در برنامه‌ای که دو عدد را از کاربر دریافت و سپس جمع می‌کند، برنامه ابتدا ورودی کاربر را در متغیر‌هایی از نوع String ذخیره کرده است. بنابراین اگر ما آن دو متغیر را با هم جمع کنیم، برنامه جواب درست را به ما نمی‌دهد. پس باید چه کاری انجام دهیم!؟ در خطوط 10 و 11 برنامه این مسئله روشن شده است. ما مقادیر String را به double تبدیل کرده‌ایم. در جلسه‌ی قبل در مورد cast کردن صحبت کردیم که می‌توانستیم داده‌ای از نوع دیگر را به داده‌ای از نوع دیگر تبدیل کنیم. اما در اینجا ما کست نکرده‌ایم. در حقیقت با استفاده از متد parseDouble، عمل پارس کردن را انجام داده‌ایم. علت هم این است که کست کردن فقط برای داده‌های پایه در جاوا است.

در جاوا ما به اندازه‌ی داده‌های پایه (Primitive Data Types)، کلاس‌های تقریبا با همین نام‌ها که با حروف بزرگ شروع می‌شوند داریم که به آن‌ها Wrapper class گفته می‌شود. ما در اینجا قصد صحبت کردن در مورد Wrapper class ها را نداریم. اما برای استفاده از متد parseDouble باید از Wrapper class ها استفاده می‌کردیم. نهایتا با کاری که ما در خطوط 10 و 11 انجام داده‌ایم، مقادیر String را به double تبدیل کرده‌ایم تا بتوانیم عملیات ریاضی بر روی آن‌ها انجام دهیم. خطوط بعدی برنامه هم کاملا واضح است. ما داده‌های تبدیل شده به double را با هم جمع کردیم و در یک متغیر دیگری از با نام result از نوع double ذخیره کرده‌ایم. در خط آخر هم جواب نهایی را با استفاده از کادر‌های گفتگو نمایش داده‌ایم.

یک نکته‌ی دیگری که باید به آن توجه کنید این است که در برنامه‌های جاوا به صورت معمول وقتی اجرای برنامه به آخر متد ()main می‌رسد، اجرای برنامه به صورت اتوماتیک خاتمه می‌یابد. اما در صورتی که برنامه از قسمت‌های نمایشی (مانند همین برنامه که از کادر‌های گفتگو استفاده کرده‌ است) تشکیل شده باشد، برای اتمام برنامه در آخرین خط، کد زیر را بنویسید:

System.exit(0);
استفاده از متد‌های کلاس Math

در جاوا کلاسی با نام Math وجود دارد که حاوی متد‌هایی برای انجام اعمال محسباتی و مثلثاتی است. بعضی از متد‌هایی که در این کلاس وجود دارند در زیر آمده است:

Math.sqrt() - Math.round() - Math.abs() - Math.ceil() - Math.floor() - Math.sin() - Math.cos()

متد‌های بسیار زیادی در این کلاس وجود دارد که در بالا فقط هفت متد آن آورده شده است.

Math.sqrt ریشه‌ی دوم یک عدد را حساب می‌کند (جذر می‌گیرد).
Math.round یک عدد را رُند می‌کند.
Math.abs قدر مطلق یک عدد را حساب می‌کند.
Math.ceil یک عدد را به سمت بالا رُند می‌کند.
Math.floor یک عدد را به سمت پایین رُند می‌کند.
Math.sin سینوس یک عدد را حساب می‌کند.
Math.cos کسینوس یک عدد را حساب می‌کند.

تمام هفت متد معرفی شده در برنامه‌ی زیر به کار رفته است:

Math

برنامه را اجرا کنید و خروجی آن را مشاهده کنید. (پاسخ سینوس و کسینوس را درست نمایش نمی‌دهد. در مورد آن سرچ کنید).

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

import-static

همانطور که مشاهده می‌کنید در خط اول import static را نوشته‌ایم و در استفاده از متد‌ها دیگر از نام کلاس Math استفاده نکرده‌ایم.
نگاهی عمیق‌تر به متد‌ها (توابع) در جاوا

در زبان‌های برنامه نویسی دیگری مثل ++C به متد‌ها تابع گفته می‌شود. اما در جاوا از کلمه‌ی متد (Method) استفاده می‌شود. در این آموزش ما یک مثال ساده از نحوه‌ی نوشتن یک متد و استفاده از آن (فراخوانی متد) در برنامه آشنا شدیم. اگر بخواهیم نحوه‌ی کارکرد متد‌ها را در یک جمله برای شما توضیح دهیم، متد‌ها مانند یک کارخانه هستند که از یک سمت ورودی‌هایی را دریافت می‌کنند و بعد بر روی این ورودی‌ها که شامل هر نوع داده‌ای می‌تواند باشد پردازش‌هایی را انجام می‌دهند و از سمت دیگر خروجی‌ای را تولید می‌کنند.

متد‌ها را به روش‌های مختلفی می‌توانیم طراحی کنیم. می‌توان نوع برگشتی‌ای برای آن مشخص نکرد (یعنی متد از نوع void باشد) و یا می‌توان برای آن مقدار برگشتی مشخص کرد (می‌تواند از نوع int, double, String و ... باشد). که اگر مقدار برگشتی برای آن‌ها مشخص کنیم، در آخر آن متد باید با استفاده از کلمه‌ی کلیدی return مقداری را برگرداند. در آموزشی که گفته شد متد ما مقدار برگشتی نداشت (یعنی از نوع void بود). اما در ادامه می‌خواهیم مثالی را برای شما بیاوریم که متد ما از نوع int باشد و مقداری را برگرداند. به کد زیر توجه کنید:

return-method

همانطور که در کد فوق مشخص است، ما در خط 8 یک متدی با نام sum که از نوع int است ساخته‌ایم. (منظور از int نوع برگشتی متد ما است و متد باید یک مقدار صحیح برگرداند. بنابراین از کلمه‌ی کلیدی void استفاده نمی‌کنیم). در داخل متد هم همانطور که معلوم است دو متغیر از نوع عدد صحیح با مقادیر تعیین شده تعریف کرده‌ایم. در آخر هم (خط 12) این دو متغیر را با هم جمع کرده‌ایم و با استفاده از کلمه‌ی کلیدی return مقداری را برگردانده‌ایم. (شاید برگرداندن مقدار کمی گنگ باشد. در ادامه متوجه می‌شوید). ما برای استفاده از این متد باید این متد را از داخل متد اصلی (main) فراخوانی کنیم. بنابراین برای فراخوانی متد فقط کافیست نام متد را بنویسیم. ما در متد main نام متد را در داخل جمله‌ی ;()System.out.println نوشته‌ایم. علت هم این است که می‌خواهیم مقداری که متد برمی‌گرداند را در کنسول مشاهده کنیم. بنابراین اگر برنامه را اجرا کنیم، خروجی اجرای برنامه‌ی ما 10 است. یعنی مقدار برگشتی متد ما حاصل جمع دو متغیری است که در داخل آن تعریف شده است.

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

method-with-parameter

در برنامه‌ی قبلی ما دو متغیر num1 و num2 را داخل بدنه‌ی متد تعریف کردیم. اما این‌بار همانطور که مشاهده می‌کنید در پرانتز‌های باز و بسته‌ی متد sum تعریف کرده‌ایم. این‌ها پارامتر‌های متد ما هستند و نکته‌ی بسیار مهمی که وجود دارد این است که باید در همان ابتدای استفاده از متد پارامتر‌های متد را مقدار دهی کنیم. در غیر این صورت برنامه‌ی ما کامپایل نمی‌شود. زیرا در جاوا مقدار پیش فرض برای یک پارامتر وجود ندارد. یعنی برای فراخوانی یک متدی که دارای پارامتر است، باید حتما مقدار تمام پارامتر‌های متد را به ترتیب مشخص کنیم. به خط 5 در داخل متد main توجه کنید. ما وقتی متد sum را فراخوانی کرده‌ایم، به ترتیب برای پارامتر‌های آن مقادیری را تعیین کرده‌ایم. شما می‌توانید هر مقدار دیگری را در نظر بگیرید. بنابراین اگر برنامه را اجرا کنید پاسخ 12 خواهد بود.
استفاده از پارامتر‌های متد main

همانطور که قبلا هم گفته شد، تمام برنامه‌های جاوا یک متد اصلی دارند که نام آن main است. (نام این متد دقیقا باید به همین شکل نوشته شود. در غیر اینصورت برنامه اجرا نمی‌شود). متد main نقطه‌ی شروع هر برنامه‌ی جاوا است. همانطور که در آموزشی که گفته شد مشاهده کردین، برای استفاده از یک متد حتما باید آن متد توسط برنامه نویس فراخوانی شود. در غیر این صورت بود و نبود آن متد هیچ فرقی ندارد. اما در مورد متد main این قضیه فرق دارد. برنامه باید اجرا شود تا ما (برنامه نویس) بتوانیم متد‌هایی را در برنامه فراخوانی کنیم. سوال اینجاست که متد main چگونه اجرا می‌شود؟ پاسخ این است که متد ()main توسط برنامه نویس فراخوانی نمی‌شود، بلکه در زمان اجرا توسط JVM فراخوانی می‌شود. هنگامی که ما با استفاده از ابزار java کلاس را اجرا می‌کنیم، ماشین مجازی جاوا متد ()main درون کلاس مشخص شده را یافته و اجرا می‌کند.

با توجه به توضیحات قسمت قبل، گفتیم که در جاوا مقدار پیش فرض برای پارامتر‌ها وجود ندارد. پارامتر‌های ورودی متد main یک آرایه‌ای از رشته‌ها است (String[] args) (در مورد آرایه‌ها بعدا توضیح داده خواهد شد). اما ما هیچگاه مقادیر پارامتر‌های متد main را مشخص نکرده‌ایم. پس چگونه برنامه‌ی ما اجرا می‌شود؟ پاسخ این است که از آنجایی که متد main توسط JVm فراخوانی می‌شود، در فراخوانی آن می‌توانید هیچ پارامتری را مشخص نکنید، در این صورت JVM متد ()main را با یک پارامتر بدون مقدار (null) فراخوانی می‌کند.
آرایه‌ها: در این جلسه از آموزش ما نمی‌خواهیم در مورد آرایه‌ها صحبت کنیم. اما اندکی در مورد آن‌ها توضیح می‌دهیم تا کمی با آن‌ها آشنا شوید. آرایه‌ها پر کاربرد‌ترین ساختمان داده‌ها در برنامه نویسی هستند. درواقع آرایه‌ها لیستی از داده‌ها هستند که همگی آن‌ها از یک نوع هستند. (یعنی یا همه‌ی آن‌ها از نوع int هستند. یا از نوع double یا از نوع String و ... هستند). همانطور که گفته شد آرایه‌ها لیستی از داده‌ها هستند. بنابراین برای دسترسی به هر خانه‌ی آرایه باید با استفاده از ایندکس یا اندیس آن آرایه به آن خانه‌ی آرایه دسترسی پیدا کرد. ایندکس در واقع شماره‌ای است که برای هر خانه‌ی حافظه در نظر گرفته می‌شود. نکته‌ی دیگری که باید به آن توجه کنیم این است که شماره‌ی خانه‌های آرایه از صفر شروع می‌شود. یعنی خانه‌ی یکم شماره‌ی صفر دارد. و آرایه‌ای با 10 خانه، آخرین ایندکس آن 9 است. در برنامه نویسی برای دسترسی به خانه‌ی مثلا اول آرایه باید به شکل زیر کدی را بنویسیم:
array[0];
کد بالا به این معنی است که نام آرایه‌ی ما array است و به خانه‌ی یکم اشاره می‌کند. ایندکس آرایه را هم در بین یک جفت کروشه می‌نویسیم. به این صورت به آن خانه‌ی آرایه دسترسی پیدا می‌کنیم.

حالا ما می‌خواهیم از پارامتر‌های متد main استفاده کنیم. یعنی می‌خواهیم مقادیری را برای آن‌ها در نظر بگیریم و آن‌ها را در خروجی استاندارد چاپ کنیم. برای این کار دو راه وجود دارد. یکی اینکه از طریق Command Prompt موقع‌ای که می‌خواهیم برنامه را اجرا کنیم پارامتر‌ها را ارسال کنیم. و راه دیگر که راه آسان تری است از محیط توسعه‌ی اکلیپس برای این کار استفاده کنیم. ما ابتدا روش اول را آموزش می‌دهیم. به کد زیر توجه کنید:

main

به پارامتر متد main توجه کنید. آرایه‌ای از جنس String تعریف شده است. (نحوه‌ی تعریف آرایه به این شکل است). در خطو 5 و 6 و 7 هم با استفاده از جمله‌ی ;()System.out.println محتویات خانه‌های 1 تا 3 آرایه را چاپ کرده‌ایم. (توجه کنید که اگر به همین شکل برنامه را اجرا کنید با خطا مواجه می‌شوید. زیرا هنوز مقادیری برای پارامتر متد main در نظر نگرفته‌ایم). ابتدا این برنامه را با استفاده از Command Promt کامپایل کنید تا فایل class. آن ایجاد شود. سپس به عکس زیر توجه کنید:

cmd

همانطور که در تصویر مشاهده می‌کنید ما ابتدا برنامه‌ی خودمان را کامپایل کرده‌ایم و سپس با استفاده از ابزار java می‌خواهیم کلاس MainClass را اجرا کنیم. ما در برنامه‌ی خود محتویات سه خانه‌ی ابتدایی پارامتر متد main را در خروجی استاندارد چاپ کرده‌ایم. بنابراین در اینجا هنگام اجرای برنامه باید مقادیری را برای آن پارامتر‌ها در نظر بگیریم. همانظور که مشاهده می‌کنید مقادیر خانه‌های یک تا سه آرایه مشخص شده است. برای هر خانه چیزی را که می‌خواهیم می‌نویسیم و سپس یک Space می‌زنیم. هنگامی که Space می‌زنیم به سراغ خانه‌ی بعدی آرایه می‌رومیم. خروجی برنامه هم در کادر قرمز رنگ در تصویر مشخص شده است.

اما روشی راحت‌تر برای ارسال پارامتر به متد ()main وجود دارد و آن استفاده از اکلیپس است. برای ارسال پارامتر از طریق اکلیپس باید به پنجره‌ی Run Configurations مراجعه کنید. به تصویر زیر توجه کنید:

run-configurations

همانطور که در تصویر مشخص است دو راه برای دسترسی به Run Configurations وجود دارد. یا در فیلد Quick Access عبارت Run Configurations را سرچ کنید و یا اینکه بر روی علامت پیکان دکمه‌ی Run کلیک کنید تا منوی آن باز شود و گزینه‌ی مشخص شده را انتخاب کنید. بعد از انتخاب گزینه‌ی مورد نظر وارد پنجره‌ی زیر می‌شوید:

run-configurations

در پنجره‌ی فوق ابتدا تب Arguments را انتخاب کنید و در قسمت Program Arguments مقادیری را تایپ کنید و در آخر بر روی دکمه‌ی Run کلیک کنید. برنامه اجرا می‌شود و دقیقا این سه مقداری که ما در اینجا نوشته‌ایم در خروجی چاپ می‌شود.
تمرین

برنامه‌ای بنویسید که از طریق کنسول نام خود را وارد کنید و بعد برنامه نام شما را به صورت برعکس در خروجی استاندارد چاپ کند. (توجه داشته باشید که خودتان الگوریتم این برنامه را بنویسید و به هیچ عنوان از متد‌های جاوا استفاده نکنید). (برای نوشتن این برنامه در مورد متد ()charAt جستجو کنید).
برنامه‌ای بنویسید و در آن یک متد تعریف کنید که آن متد یک عدد را به عنوان پارامتر دریافت کند و تعیین کند که آیا آن عدد اول است یا خیر.
متدی بنویسید که یک عدد را به عنوان پارامتر دریافت کند و تعیین کند که آیا آن عدد Perfect است یا خیر.

توضیح: عدد Perfect یا عدد کامل یک عدد صحیح مثبت است که مجموع همه‌ی مقسوم علیه‌های مثبتش (به غیر از خود عدد) برابر با خود عدد باشد. به عنوان مثال اعداد 6 و 28 اعداد کامل هستند.

+ نوشته شده در  چهارشنبه 14 تير 1396ساعت 17:02  توسط computerclub1  | 

آموزش برنامه نویسی جاوا: مفاهیم پایه در زبان جاوا (قسمت ۸)

سرفصل مطالب

متغیر‌های سراسری و محلی (Global And Local Variables)
عملگر ?
استفاده از برچسب برای حلقه‌های تکرار
کنترل اجرای حلقه‌ها با استفاده از continue و break
استفاده از متد ()random از کلاس Math
Linkedin

متغیر‌های سراسری و محلی (Global And Local Variables)

همانطور که در آموزش‌های قبلی دیدیم، می‌توانیم متغیر‌هایی را در قسمت‌های مختلف برنامه‌ی خود تعریف کنیم. اما این متغیر‌هایی که تعریف می‌کنیم، فقط در قسمت‌های خاصی از برنامه قابل دستیابی و استفاده هستند. به آن محدوده‌ای که یک متغیر در آن قابل دستیابی است و ما می‌توانیم به آن متغیر دسترسی پیدا کنیم و از داده‌ی ذخیره شده در آن استفاده کنیم یا داده‌ی آن را تغییر دهیم، محدوده‌ی قابل مشاهده و یا Scope آن متغیر گفته می‌شود. نحوه‌ی تعریف کردن متغیر‌ها به دو صورت است. یا آن‌ها را به صورت سراسری (Global) تعریف می‌کنیم یا به صورت محلی (Local).

نکته‌ی مهمی که قبلا هم به آن اشاره شد این است که هر کلاس و متد دارای یک بدنه است که با استفاده از علامت‌های آکولاد باز } و آکولاد بسته { مشخص می‌شود. این آکولاد‌های باز و بسته محدوده‌ای را برای یک متد و یا یک کلاس مشخص می‌کنند که به آن بلوک (بلاک) آن متد یا کلاس گفته می‌شود. شاید سوالی برای شما پیش بیاید که منظور از محدوده چیست؟ فرض کنید مثلا ما یک متغیر از نوع عدد صحیح در بلاک یک متد تعریف کرده‌ایم. بنابراین آن متغیر فقط در همان بلاک متد قابل استفاده است و قبل و بعد از آن متد به هیچ وجه قابل استفاده نیست. به مثال زیر توجه کنید:

public class MainClass {

// main method
public static void main(String[] args) {

}

// first method
static void first() {
int number = 0;
System.out.println(number);
}

// second method
static void second() {
System.out.println(number);
}

}

همانطور که در کد بالا مشاهده می‌کنید در داخل بلوک کلاس MainClass سه متد وجود دارد. اولین متد، متد ()main که متد اصلی برنامه است. دومین متد، متدی است با نام first و سومین متد، متدی است با نام second. (در اینجا ما کاری به متد اصلی نداریم).

ابتدا در بلوک متد first متغیری از نوع عدد صحیح با نام number تعریف کرده‌ایم و سپس در خط بعد مقدار آن را در خروجی استاندارد نمایش داده‌ایم. اما ما خواستیم مقدار متغیر number را نیز از طریق متد second هم نمایش دهیم. اما اگر این برنامه را در یک IDE بنویسید، زیر متغیر number در متد second خطی قرمز می‌کشد و برنامه اجرا نمی‌شود. برنامه با خطای کامپایل مواجه شده است. علت چیست؟ علت این است که متغیر number به صورت لوکال (Local) یا محلی تعریف شده است. بنابراین پس از اجرای بلوک مربوط به متد first، متغیر number توسط JVM به صورت اتوماتیک از حافظه پاک می‌شود و دیگر همچین متغیری وجود ندارد که ما بخواهیم از آن استفاده کنیم. برای همین هم است که در متد second از number ایراد می‌گیرد. زیرا number یک چیز تعریف نشده است و جاوا آن را نمی‌شناسد.

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

public class MainClass {

// main method
public static void main(String[] args) {

}

// third method
static void third() {
System.out.println(number);
}

// first method
static void first() {
int number = 0;
System.out.println(number);
}

// second method
static void second() {
System.out.println(number);
}

}

ما در ادامه‌ی کد قبلی، متدی با نام third را قبل از متد first تعریف کرده‌ایم و باز خواسته‌ایم از متغیر number استفاده کنیم. اما باز هم با ارور مواجه می‌شویم.

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

public class MainClass {

public static void main(String[] args) {

for (int i = 0; i < 10; i++) {
int k = 0;
for (int j = 0; j < 10; j++) {
System.out.println(k);
}
}
}

}

در کد بالا ما یک حلقه‌ی for ایجاد کرده‌ایم که در داخل بلاک حلقه‌ی اولی (حلقه‌ی خارجی) یک متغیر با نام k تعریف کرده‌ایم. و سپس یک حلقه‌ی for دیگر داخل حلقه‌ی اول تعریف کرده‌ایم (حلقه‌های تو در تو) و در داخل بلاک حلقه‌ی دوم از متغیری استفاده کرده‌ایم که در بلوک حلقه‌ی اول تعریف شده است (متغیر k). ما از برنامه هیچ اروری دریافت نمی‌کنیم و برنامه کامپایل و اجرا می‌شود. اما متغیر j در داخل بدنه‌ی حلقه‌ی اولی قابل استفاده نیست.

حالت دومی که ما می‌توانیم یک متغیر را تعریف کنیم، به صورت سراسری، عمومی و یا Global است که در محدوده‌ی یک کلاس تعریف می‌شود. به کد زیر توجه کنید:

public class MainClass {

int number = 0;

// main method
public static void main(String[] args) {

}

// third method
void third() {
System.out.println(number);
}

// first method
void first() {
int number = 0;
System.out.println(number);
}

// second method
void second() {
System.out.println(number);
}

}

کد قبلی را کمی تغییر داده‌ایم. این‌بار متغیر number را در محدوده‌ی کلاس تعریف کرده‌ایم. یعنی متغیر number به صورت عمومی، سراسری و یا Global تعریف شده است. (متغیر number قبل از متد ()main تعریف شده است). بنابراین ما می‌توانیم آن را در داخل محدوده‌ی کلاس خود استفاده کنیم. در واقع متد‌های main, first, second, third در داخل بلاک کلاس قرار دارند و می‌توانند از متغیر‌هایی که در داخل کلاس تعریف می‌شوند استفاده کنند.
نکته: به متغیر‌هایی که داخل بدنه‌ی کلاس و خارج از تمام متد‌ها تعریف می‌شوند، Property‌های یک کلاس و یا فیلد‌های یک کلاس گفته می‌شود. در مورد این موضوع در مبحث شی گرایی مفصلا صحبت می‌شود.
عملگر ?

در آموزش‌های قبلی ما با ساختار شرطی if...else آشنا شدیم و مثال‌هایی را کار کردیم. به عنوان مثال یک شرط را بررسی می‌کردیم و اگر آن شرط برقرار بود مقدار متغیری از نوع boolean را true و اگر شرط برقرار نبود مقدار متغیر را false در نظر می‌گرفتیم. در جاوا روش دیگری وجود دارد که ما بجای استفاده از ساختار if...else، از عملگر ? استفاده و یک شرط را بررسی می‌کنیم. شکل کلی استفاده از این عملگر به صورت زیر است:

variable = condition?expresion1:expresion2

کد بالا به این صورت است که اگر حاصل ارزیابی شرط (condition) مقدار true داشته باشد، expresion1 اجرا می‌شود، در غیر این صورت expresion2 اجرا می‌شود و نتیجه به variable نسبت داده می‌شود. به کد زیر توجه کنید:

public class MainClass {

public static void main(String[] args) {
int num = 10;
boolean b = false;

b = num <= 10 ? true : false;

System.out.println(b);
}

}

در کد بالا ما ابتدا یک متغیر از نوع عدد صحیح تعریف کرده‌ایم. و همچنین یک متغیر دیگر از نوع boolean که مقدار پیش فرض آن false است. حالا می‌خواهیم متغیر b را مقدار دهی کنیم. به این صورت است که ابتدا متغیر b را می‌نویسیم و سپس یک علامت مساوی (انتساب) قرار می‌دهیم. بعد می‌آییم یک شرطی را بررسی می‌کنیم. شرط این است که اگر مقدار متغیر num کوچکتر و یا مساوی 10 باشد، مقدار بعد از عملگر ? به متغیر b نسبت داده شود. در غیر این صورت مقدار بعد از دو نقطه (:) به متغیر b نسبت داده شود. در بالا با توجه به اینکه مقدار متغیر num برابر با 10 است، بنابراین شرط ما برقرار است و مقدار true به متغیر b نسبت داده می‌شود. دو نقطه (:) نقش else در ساختار if...else را دارد.
استفاده از برچسب برای حلقه‌های تکرار

در جاوا امکانی وجود دارد که ما می‌توانیم برای حلقه‌های خود یک برچسب (Label) یا اصطلاحا نامی را در نظر بگیریم. به کد زیر توجه کنید:

public class MainClass {

public static void main(String[] args) {

outer: for (int i = 0; i < 10; i++) {

inner: for (int j = 0; j < 10; j++) {

}
}
}

}

من ابتدا یک حلقه‌ی for ایجاد کرده‌ام و سپس در داخل حلقه‌ی for، یک حلقه‌ی for دیگری ایجاد کرده‌ام. همانطور که قبلا هم اشاره کردیم به این مدل حلقه‌ها، حلقه‌های تو در تو (Nested Loops) گفته می‌شود. همانطور که مشاهده می‌کنید من برای حلقه‌ی خارجی نام outer و برای حلقه‌ی داخلی نام inner را در نظر گرفته‌ام. (برای نوشتن برچسب فقط کافی است قبل از ایجاد حلقه یک نامی را نوشته و سپس دو نقطه قرار دهیم و بعد حلقه‌ی خود را بنویسیم). توجه داشته باشید که نوشتن برچسب برای حلقه‌ها، برای خوانایی برنامه نیست. یعنی برای این نیست که ما (برنامه نویس) راحت‌تر تشخیص دهیم که کدام حلقه داخلی و کدام یک خارجی است (البته می‌توان برای این هم استفاده کرد). اما در اصل کاربرد دیگری دارد که در ادامه به آن اشاره می‌کنیم.
کنترل اجرای حلقه‌ها با استفاده از continue و break

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

public class MainClass {

public static void main(String[] args) {
int counter = 0;
while(counter <= 10) {
System.out.println("Num[" + counter + "]: " + counter);
counter++;

if (counter == 5) {
System.out.println("Break");
break;
}
}
}

}

برنامه‌ی بالا به این صورت است که حلقه‌ی while تا زمانی که متغیر counter برابر با 10 نشده است ادامه پیدا می‌کند و مقادیر متغیر counter را چاپ می‌کند. اما در داخل بلوک while یک شرطی قرار داده شده است و آن این است که اگر مقدار counter برابر با 5 شد، ابتدا پیغام break را چاپ کند و سپس از حلقه خارج شود. اگر برنامه‌ی فوق را به همین شکلی که در بالا نوشته شده است اجرا کنید، خروجی برنامه تا عدد 4 بیشتر نیست و در آخر هم عبارت Break چاپ می‌شود. خروجی برنامه را در زیر مشاهه می‌کنید:

Num[0]: 0
Num[1]: 1
Num[2]: 2
Num[3]: 3
Num[4]: 4
Break

اما اگر تغییراتی در ساختار if ایجاد کنیم، مثلا متغیر counter را برابر با عدد 15 بجای 5 قرار دهیم، دیگر break اجرا نمی‌شود و در خروجی برنامه اعداد یک تا 10 چاپ می‌شود و عبارت Break هم چاپ نمی‌شود. توجه داشته باشید که بعد از دستور break اگر چیز دیگری بنویسید با خطای کامپایل مواجه می‌شوید و برنامه کامپایل نمی‌شود. در ادامه می‌خواهیم برنامه‌ای بنویسیم که کاربرد continue را آموزش دهیم.

continue به معنی ادامه دادن است و کاربرد آن در جاوا هم دقیقا به همین مفهوم است. به کد زیر توجه کنید:

public class MainClass {

public static void main(String[] args) {
for (int i = 0; i <= 10; i++) {
System.out.println("NUM[" + i + "]: " + i);
}
}

}

این کد دقیقا کدی است که در قسمت قبل از آن استفاده کردیم. (البته این‌بار از ساختار for استفاده کرده‌ایم). در زیر خروجی برنامه را مشاهده کنید:

NUM[0]: 0
NUM[1]: 1
NUM[2]: 2
NUM[3]: 3
NUM[4]: 4
NUM[5]: 5
NUM[6]: 6
NUM[7]: 7
NUM[8]: 8
NUM[9]: 9
NUM[10]: 10

همانطور که مشاهده می‌کنید اعداد 0 تا 10 به درستی نمایش داده شده است. حالا می‌خواهیم برنامه را طوری تغییر دهیم که وقتی شمارنده‌ی برنامه به عدد 5 رسید، عملیاتی را انجام ندهد و دوباره به بررسی شرط حلقه (ابتدای حلقه) برگردد. به کد زیر توجه کنید:

public class MainClass {

public static void main(String[] args) {
for (int i = 0; i <= 10; i++) {
if (i == 5)
continue;

System.out.println("NUM[" + i + "]: " + i);
}
}

}

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

NUM[0]: 0
NUM[1]: 1
NUM[2]: 2
NUM[3]: 3
NUM[4]: 4
NUM[6]: 6
NUM[7]: 7
NUM[8]: 8
NUM[9]: 9
NUM[10]: 10

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

حالا می‌خواهیم برگردیم به کاربرد برچسب‌ها در برنامه. ابتدا به کد زیر توجه کنید:

public class MainClass {

public static void main(String[] args) {

outer: for (int i = 0; i < 10; i++) {

inner: for (int j = 0; j < 10; j++) {
System.out.println("Inner: " + j);

if (i == 5) {
break;
}
}
System.out.println("Outer: " + i);
}
}

}

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

public class MainClass {

public static void main(String[] args) {

outer: for (int i = 0; i < 10; i++) {

inner: for (int j = 0; j < 10; j++) {
System.out.println("Inner: " + j);

if (i == 5) {
break outer;
}
}
System.out.println("Outer: " + i);
}
}

}

همانطور که مشاهده می‌کنید کلمه‌ی کلیدی break را نوشته و سپس در جلوی آن نام برچسب حلقه‌ی مورد نظر را نوشته‌ایم. حالا اگر برنامه را اجرا کنیم و اجرای برنامه به ساختار if برسد و شرط برقرار باشد، break برای حلقه‌ی خارجی اجرا می‌شود.
استفاده از متد ()random از کلاس Math

()random یکی از متد‌های کلاس Math است که با استفاده از آن می‌توانیم یک عدد تصادفی اعشاری تولید کنیم. عدد تصادفی‌ای که این متد تولید می‌کند، یک عدد بین صفر و یک است که شامل صفر می‌شود ولی شامل یک نمی‌شود. به کد زیر توجه کنید:

public class MainClass {

public static void main(String[] args) {

double d = Math.random();

System.out.println(d);
}

}

در کد بالا با استفاده از متد ()random یک عدد اعشاری تصادفی ایجاد و در داخل متغیر d ذخیره کرده‌ایم. خروجی برنامه‌ی بالا به صورت زیر است:

0.7197274320722393

برنامه را هر بار که اجرا کنید خروجی‌های متفاوتی را مشاهده می‌کنید. اما عدد تولید شده بین صفر و یک است.

حالا می‌خواهیم یکی از مباحث جذاب برنامه نویسی کاربردی یعنی شبیه سازی بازی ریختن تاس را مورد بررسی قرار دهیم. این برنامه را به شکل‌های مختلف می‌توان پیاده‌سازی کرد. تاس 6 وجه دارد که با ریختن آن یکی از اعداد 1 تا 6 ظاهر می‌شود. نکته‌ی اول این است که اعداد تاس صحیح هستند، در صورتی که اعداد تولید شده توسط متد ()random اعشاری است. پس ابتدا باید عمل Casting را انجام دهیم تا عدد اعشاری را به عدد صحیح تبدیل کنیم. به کد زیر توجه کنید:

public class MainClass {

public static void main(String[] args) {

double d = Math.random();
int i = (int) d;

System.out.println(i);
}

}

اگر برنامه‌ی بالا را اجرا کنید به جز صفر عدد دیگری را در خروجی مشاهده نمی‌کنید. زیرا همانطور که گفته شد متد ()random عددی اعشاری بین صفر و یک تولید می‌کند که عدد شامل صفر است اما شامل یک نیست. بنابراین قسمت صحیح عدد که صفر است اصلا تغییر نمی‌کند و با هر بار اجرای برنامه فقط قسمت اعشاری آن تغییر می‌کند. حالا ما در کد بالا با کست کردن قسمت اعشاری عدد را از دست داده‌ایم. بنابراین به جز صفر عدد دیگری نمی‌بینیم. حالا برای اینکه عدد تصادفی را به محدوده‌ی مورد نظر خود ببریم (یک عدد بین 0 تا 6) کافی است عدد بدست آمده از متد ()random را در 6 ضرب کنیم تا اعدادی در بازه‌ی 0 تا 6 تولید شود. به شکل زیر:

public class MainClass {

public static void main(String[] args) {

double d = Math.random() * 6;
int i = (int) d;

System.out.println(i);
}

}

حالا اگر برنامه را اجرا کنیم عدد بدست آمده، عددی است بین صفر تا 6 که شامل صفر می‌شود اما شامل 6 نمی‌شود. اما از آن‌جا که در تاس عدد صفر وجود ندارد و عدد 6 وجود دارد، بنابراین باید برنامه را طوری تغییر دهیم که عدد‌های تولید شده بین 1 تا 7 باشد. که شامل عدد 1 باشد اما شامل عدد 7 نباشد. راه حل این کار بسیار ساده است. فقط کافی است حاصل عبارت فوق را یک واحد افزایش دهیم. به کد زیر توجه کنید:

public class MainClass {

public static void main(String[] args) {

double d = Math.random() * 6 + 1;
int i = (int) d;

System.out.println(i);
}

}

حالا با هر بار اجرای برنامه‌ی فوق، همانند این است که شما یک تاس را ریخته‌اید تا یک عدد مشاهده شود که این عدد شامل عدد‌های 1 تا 6 می‌شود.
نکته: می توان برای تولید اعداد تصادفی از کلاس Random که در پکیج java.util است استفاده کرد و بعد با استفاده از متد‌های آن مانند ()nextInt و ... اعداد تصادفی تولید کرد. اما اگر بخواهیم از این روش استفاده کنیم باید از روی کلاس Random یک شی ایجاد کنیم و به دلیل اینکه هنوز به مبحث شی گرایی نرسیده‌ایم، آن را توضیح نمی‌دهیم.
Linkedin

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

برای همین منظور بنده در شبکه‌ی اجتماعی Linkedin گروهی را با نام آموزش برنامه نویسی جاوا در زومیت راه‌اندازی کرده‌ام تا در آنجا بتوانیم به طور دقیق نظرات و پیشنهادات خود را مطرح کنیم و از آن‌ها در ادامه‌ی آموزش‌ها استفاده کنیم.

+ نوشته شده در  چهارشنبه 14 تير 1396ساعت 17:01  توسط computerclub1  | 

4 راهکار برای افزایش سرعت عملکرد رایانه‌ی ویندوز 10

سیستم عامل ویندوز ۱۰ مایکروسافت با گذشت زمان در حال پیشرفت و بهینه‌تر شدن است. اگر سیستم خود را به ویندوز ۱۰ ارتقا داده‌اید، با مطالعه‌ی این مقاله می‌توانید بهترین تجربه‌ی نرم‌افزاری را داشته و از کندی عملکرد سیستم جلوگیری کنید. همراه زومیت باشید.
تبلیغات
آموزش حسابداری
فروش گوشی سامسونگ
آمادگی ورود به بازار کار


مقاله مرتبط:

مایکروسافت جزئیات بروزرسانی‌های ویندوز ۱۰ را در وب‌سایت جدیدش ارائه می‌دهد
اپلیکیشن جدید و مبتنی بر بلوتوث مایکروسافت، رایانه‌های ویندوز ۱۰ را قفل‌ گشایی می‌کند

شرکت مایکروسافت به صورت منظم و متوالی، بروزرسانی‌های مفیدی را که شامل رفع باگ‌ها و ویژگی‌های نرم‌افزاری جدید است، برای ویندوز ۱۰ منتشر می‌کند که کاربران حلقه‌ی سریع نسخه‌ی اینسایدر و در آینده همه‌ی کاربران، می‌توانند به آن دسترسی داشته باشند. اگر جزو افرادی هستید که بلافاصله سیستم خود را ارتقا داده و به فکر بهبود عملکرد رایانه‌ی ویندوز ۱۰ هستید، همراه ما باشید تا ۴ راهکار مربوط به بهبود و افزایش عملکرد ویندوز ۱۰ را بیان کنیم.
۱- جلوگیری از اجرای نرم‌افزارها در زمان بالا آمدن سیستم عامل

همانند ویندوزهای قبلی، بلافاصله پس از بالا آمدن سیستم عامل ویندوز ۱۰، نرم‌افزارهای زیادی برای دسترسی سریع‌تر هنگام نیاز، در پس‌زمینه‌ی آن شروع به اجرا شدن می‌کنند. مشکل این است که این کار می‌تواند باعث کاهش سرعت رایانه‌ی کاربر شود. با مراجعه به بخش تنظیمات مربوطه در ابزار مدیریت وظیفه (Task Manager) می‌توانید از اجرا شدن برخی از آن‌ها جلوگیری کنید.

با فشردن کلیدهای ترکیبی Ctrl+Shift+Esc از صفحه کلید رایانه، به برگه‌ی Startup موجود در مدیریت وظیفه ویندوز مراجعه کرده و پس از انتخاب نرم‌افزار مورد نظر، می‌توانید برای غیرفعال کردن آن بر روی دکمه‌ی Disable کلیک کنید. اگر ورودی خاصی وجود دارد که از اصالت آن اطمینان ندارید، بهتر است جانب احتیاط را رعایت کرده و از غیرفعال کردن آن صرف نظر کنید. همچنین برای آگاهی از جزئیات دقیق نرم‌افزارهای درحال اجرا و غیر فعال کردن آن‌ها، می‌توانید از ابزار رایگان ویندوز تحت عنوان Autoruns، استفاده کنید. لطفا در استفاده از این نرم‌افزار، احتیاط بیش‌تری به خرج دهید.
۲- حذف نرم‌افزارهای غیرضروری

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

برای حذف نرم‌افزارهای مورد نظر، کلمه‌ی “Uninstall” را در جعبه‌ی جستجوی نوار وظیفه تایپ کرده و روی گزینه‌ی Change or remove a program برای مشاهده‌ی همه‌ی نرم‌افزارهای نصب شده در سیستم، کلیک کنید. می‌توانید مواردی را که بیش از چند ماه از آن‌ها استفاده نشده، با انتخاب و کلیک بر روی Uninstall، به کلی از سیستم پاک کنید. پس از کلیک بر روی Uninstall، بایستی فرآیند حذف نرم‌افزار را دنبال کنید تا کاملا از رایانه حذف شود.
۳- غیرفعال کردن نرم‌افزارهای پس‌زمینه

مایکروسافت یکی از طرفداران بزرگ نرم‌افزارهای یونیورسال بومی خود است؛ به همین دلیل اصرار دارد که این نرم‌افزارها همیشه در پس‌زمینه‌ی سیستم‌عامل ویندوز ۱۰ حتی هنگامی که نیازی به آن‌ها نباشد هم اجرا شوند. در حال اجرا بودن همیشگی نرم‌افزارهای یاد شده، باعث دسترسی سریع‌تری به آن‌ها می‌شود، اما در صورتی که نیازی به آن‌ها نداشته باشید، نرم‌افزارهای یونیورسال صرفا منابع سیستمی را هدر خواهند داد.

برای دسترسی به نرم‌افزارهای در حال اجرا در پس‌زمینه‌ی سیستم عامل، از منوی شروع به بخش Settings رفته و پس از کلیک بر روی Privacy، گزینه‌ی Background apps را بزنید. برای جلوگیری از اجرای نرم‌افزارها در پس‌زمینه، بر روی دکمه‌ی لغزنده‌ی مربوطه کلیک کنید تا بر روی Off قرار گیرد. البته با وجود غیرفعال کردن آن، هنوز می‌توانید از آن نرم‌افزار استفاده کرده و به صورت دستی آن را اجرا کنید.
۴- پاک کردن دیسک‌های ذخیره‌سازی

ابزار پاک کننده‌ی دیسک مایکروسافت (Disk Cleanup)، از تمام تحولات اخیر ویندوز ۱۰ جان سالم به در برده است! این ابزار، هنوز هم راهی برتر برای پاک کردن برخی از داده‌های موقت و فایل‌های غیرضروری است که هارد دیسک سیستم را اشغال می‌کنند. حتی عملکرد این ابزار بهتر از قبل شده و به صورت خودکار هم عمل می‌کند.

برای پاک‌سازی دیسک‌های سخت، بر روی یکی از درایوهای موجود در مرورگر فایل ویندوز 10 (File Explorer) کلیک کرده و سپس Properties را برگزینید. حال در برگه‌ی General، بر روی دکمه‌ی Disk Cleanup کلیک کنید. فایل‌های هدف این ابزار شامل، فایل‌های روگرفت حافظه‌ی سیستم (system memory dump files)، فایل‌های موقت اینترنتی (temporary internet files) و غیره است که شما می‌توانید قبل از کلیک بر روی دکمه‌ی OK، گزینه‌های مورد نظر خود را بررسی کرده و فقط آن‌ها را تیک بزنید.

آیا تابه‌حال از راهکارهای یاد شده استفاده کرده‌اید؟

+ نوشته شده در  چهارشنبه 14 تير 1396ساعت 17:00  توسط computerclub1  | 

آموزش ویندوز 10: سرعت بارگذاری پوشه‌های ویندوزی را افزایش دهید

سیستم عامل ویندوز مایکروسافت از پدیده‌ی عجیبی رنج می‌برد که فارغ از قدرت پردازشی رایانه، کاربران بسیاری را درگیر خود کرده است. این پدیده‌ی عجیب باعث کاهش سرعت بارگذاری پوشه‌های ویندوزی می‌شود. شاید نتوان این پدیده را به عنوان یک مشکل در نظر گرفت اما بدون شک باعث رنجش کاربران بسیاری خواهد شد. خوشبختانه جلوگیری از کاهش سرعت بارگذاری پوشه‌ها بسیار ساده است که در ادامه‌ی مقاله به آن خواهیم پرداخت.
چرا برخی از پوشه‌های ویندوزی سرعت بارگذاری کندی دارند؟

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

به عنوان مثال، اگر پوشه‌ی خاصی در ویندوز اکسپلورر را به فایل‌های موسیقی اختصاص داده باشید، به شرط استفاده از ویژگی یاد شده، نحوه‌ی نمایش به گونه‌ای خواهد بود که برای مرور کردن اطلاعات مربوط به فایل‌های موسیقی مانند آخرین فایل پخش شده یا نام خواننده مفید واقع شود. در بعضی موارد، حتی در صورتی که نحوه‌ی بهینه‌سازی پوشه را در مرورگر فایل مشخص نکرده باشید، فایل اکسپلورر ویندوز با استفاده از ویژگی کشف خودکار نوع پوشه (Automatic Folder Type Discovery) به طور خودکار بهینه‌سازی‌های حالت نمایش محتوا را برای برخی از پوشه‌ها اعمال می‌کند. برای مثال می‌توان به پوشه‌ی کتابخانه‌ی Music اشاره کرد که به طور پیش‌فرض برای نمایش فایل‌های موسیقی بهینه شده است. سیستم کشف خودکار، نحوه‌ی نمایش محتوا را بر اساس تعداد مختلفی از فرمت فایل‌های موجود در پوشه، آخرین فایل‌های افزوده شده به پوشه و مواردی از این دست، بهینه‌سازی می‌کند.

هنگامی که ویژگی یاد شده به خوبی عمل می‌کند، همه چیز عالی است؛ اما هنگامی که به درستی عمل نمی‌کند، یک مشکل رنج‌آور محسوب می‌شود. وقتی که یک پوشه دارای تعداد زیادی از فایل‌های بهینه شده برای حالت تصاویر (pictures) است، مرورگر فایل ویندوز صرف نظر از این که پوشه در حالت نمایش بند انگشتی (thumbnail view) باشد یا نه، اقدام به بررسی و تازه کردن (Refresh) تصاویر بند انگشتی تمامی فایل‌های موجود در پوشه خواهد کرد!

کامل شدن فرآیند تازه کردن بند انگشتی‌ها در یک رایانه‌ی قدرتمند با یک پردازنده‌ی مدرن، حافظه‌ی رم بسیار بالا و درایو حالت جامد فوق‌العاده سریع بسته به تعداد فایل‌های موجود در پوشه، می‌تواند ۱۰ تا ۱۵ ثانیه طول بکشد. حتی در رایانه‌های قدیمی ممکن است باعث قفل شدن کل مرورگر فایل ویندوز یا فولدر مورد نظر شود.

یک مثال از این مشکل، مربوط به پوشه‌ی دانلودهای ویندوز (Downloads) است که به لطف ویژگی کشف خودکار نوع پوشه، در بیش‌تر رایانه‌ها بر روی حالت بهینه‌سازی pictures تنظیم شده است. به احتمال زیاد شما هم از سرعت بارگذاری بسیار آهسته‌ی این پوشه خسته شده‌اید اما خوشبختانه حل این مشکل بسیار ساده است.
چگونه بهینه‌سازی حالت نمایش یک پوشه را تغییر دهیم؟

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

پس از یافتن پوشه‌ی مورد نظر، به سادگی بر روی خود پوشه یا فضای خالی داخل پوشه کلیک راست کرده و گزینه‌ی Properties را از منوی فرعی ظاهر شده برگزینید.

سپس در پنجره‌ی Properties، سربرگ Customize را بزنید.

در برگه‌ی Customize، منوی کشویی تحت عنوان Optimize this folder for وجود دارد که گزینه‌های موجود در این منو شامل General items، documents، pictures، music و videos است. شما باید گزینه‌ی General items را برگزینید.

اگر مایل به اعمال این تغییرات به تمامی زیر پوشه‌های آن از طریق پوشه‌ی جاری هستید، بایستی گزینه‌ی Also apply this template to all subfolders موجود در بخش پایینی منوی کشویی یاد شده را هم انتخاب کنید. در برخی موارد انتخاب این گزینه باعث افزایش سرعت بارگذاری Folder مادر هم خواهد شد.

حال بر روی Apply کلیک کرده و OK را از پایین منوی Properties بفشارید. سپس به پوشه‌ای که سرعت بارگذاری پایینی داشت مراجعه کرده و کلید F5 را برای بارگذاری دوباره‌ی پوشه از صفحه کلید بفشارید. حالا پوشه‌ی مورد نظر باید به سرعت بارگذاری شود.

با راهکار یاد شده در این مقاله، دیگر نیازی به اتلاف وقت زیاد برای بارگذاری فایل‌ها نخواهید داشت. نظر شما چیست؟

+ نوشته شده در  چهارشنبه 14 تير 1396ساعت 16:59  توسط computerclub1  | 

افزایش سرعت رایانه با ۴ روش آسان

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

راهکارهای ساده اما مهمی برای افزایش سرعت رایانه‌ها وجود دارند که در ادامه به ۴ مورد از مهمترین آن‌ها اشاره می‌کنیم:

۱. دسکتاپ خود را مرتب و خلوت نگه دارید

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

نیاز نیست همه چیز را از دسکتاپ خود پاک کنید؛ اما در این مرحله باید مواردی که به آن‌ها نیاز ندارید را حذف کنید. در مک، شما می‌توانید برنامه و اپلیکیشن‌هایی را که زیاد استفاده می‌کنید در بخش Dock نگه دارید و در ویندوز نیز برنامه‌های مورد علاقه‌تان را در تسک‌بار قرار دهید. برای اینکار بر روی برنامه مورد نظر راست کلیک کرده و گزینه اضافه شدن به تسک‌بار را برگزینید.

استفاده از دسکتاپ به عنوان محلی برای ذخیره فایل‌ها و تصاویر یا هر فایل موقت کاری دیگری، باعث می‌شود تا زمان مورد نیاز برای بوت و اجرای سیستم افزایش یابد؛ چراکه شما فرآیندهای پس‌زمینه را در این شرایط نمی‌بینید. حالا وقت آن رسیده که فایل‌های خود را سازماندهی کنید و آن‌ها را در درایو‌های خود دسته‌بندی کنید و تا جایی که امکان دارد صفحه‌ی دسکتاپ سیستم خود را خلوت نگه دارید.
۲. از برنامه‌های غیرکاربردی خارج شوید (فقط در Mac)

اینکه شما در سمت راست بالای پنجره برنامه‌ها در صفحه، X قرمز رنگ (علامت بستن برنامه) را مشاهده کنید، بدان معنا نیست که برنامه‌ی مورد نظر شما را هیجان‌زده کرده. در مک، شما می‌توانید هر پنجره‌ای را ببندید، اما اینکار باعث بسته شدن کامل اجرای برنامه نخواهد شد و خاموش کردن رایانه نیز به معنای بسته شدن کامل این برنامه‌ها نیست.

اگر از مک استفاده می‌کنید، اطمیمنان حاصل کنید که برنامه‌های غیر کاربردی را از اجرا شدن در بخش Startup یا همان زمان راه اندازی و ورود به سیستم‌عامل، منع کنید. در غیر این صورت این برنامه‌ها به صورت خودکار در هنگام روشن شدن سیستم اجرا می‌شوند و طبیعتا سرعت بالا آمدن دستگاه را افزایش می‌دهند. شما می‌توانید با مراجعه به منوی بالا سمت چپ، اینگونه نرم افزار‌ها و انتخاب گزینه‌ی Quit Program یا نگه داشتن همزمان کلید ⌘-Q آن را به صورت کامل ببندید.
۳. جلوگیری از اجرای خودکار برنامه‌ها

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

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

در مک: بخش System Preferences را باز کرده و به Users & Groups بروید. در زیر نام کاربریتان از سربرگ رمزعبور به سربرگ ورود جابجا شوید و سپس در این بخش لیستی از برنامه‌هایی را مشاهده می‌کنید که به صورت خودکار در بخش Startup دستگاه اجرا می‌شوند. با کلیک قفل موجود در پایین سمت چپ و وارد کردن رمزعبورتان، می‌توانید تغییرات را اعمال کنید. حالا باید برای تک تک برنامه‌هایی که می‌خواهید از اجرای خودکار آن‌ها هنگام روشن شدن سیستم جلوگیری کنید بر روی دکمه “-” کلیک کنید. نیاز نیست در این بخش همه‌ی برنامه‌ها را از لیست حذف کنید، اما هرچه لیست یاد شده کوتاه‌تر باشد زمان بوت دستگاه نیز کاهش می‌یابد.

ویندوز: بر روی بخش Search منوی Start یا Cortana کلیک کنید و عبارت MSConfig را تایپ کرده و سپس کلید اینتر را بفشارید تا بخش System Configuration اجرا شود. در زیر تب Startup لیستی از برنامه‌هایی را مشاهده می‌کنید که در هنگام بالا آمدن سیستم‌عامل به صورت خودکار اجرا می‌شوند؛ پیش از اینکه چک باکس کنار هر آیتم از این لیست را غیرفعال کنید، چک باکس سمت چپ پایین یعنی Hide all Microsoft services را فعال کنید. اینکار باعث می‌شود سرویس‌های مورد نیاز مایکروسافت که برای ویندوز حیاتی هستند از لیست مورد اشاره مخفی شوند تا به اشتباه آن‌ها را از اجرا شدن در هنگام بوت منع نکنید. با حذف برنامه‌های غیر ضروری از این قسمت حالا می‌توانید باعث شوید تا سرعت بارگزاری سیستم‌عامل افزایش یابد.

نکته: در ویندوز ۱۰، بخش مذکور به سربرگی به نام Startup در پنجره‌ی Task Manager منتقل شده است. برای غیرفعال‌سازی موارد مدنظر نیز می‌بایست با کلیک راست بر روی آن‌ها، گزینه‌ی Disable را انتخاب کنید.
۴. پاکسازی فایل‌های موقت

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

+ نوشته شده در  چهارشنبه 14 تير 1396ساعت 16:57  توسط computerclub1  | 

آموزش ویندوز 10: اطلاع از سیستم پارتیشن‌بندی هارد دیسک و تبدیل GPT و MBR به همدیگر

همه‌ی دیسک‌های سخت موجود، برای پارتیشن‌بندی از ساختار قالب‌بندی داده‌ای (Master Boot Record (MBR یا (GUID Partition Table (GPT استفاده می‌کنند. در حقیقت MBR یک سکتور بسیار کوچکی است که در ابتدای دیسک سخت قرار گرفته و اطلاعاتی در مورد پارتیشن بوت سیستم عامل، ساختار پارتیشن‌ها، جدول پارتیشن (Partition Table) و موارد دیگر را برای راه‌اندازی رایانه در اختیار سیستم می‌گذارد. GPT هم تقریبا نسخه‌ی پیشرفته‌ی MBR محسوب شده و قابلیت‌های بیش‌تری نسبت به آن دارد. در قالب‌بندی داده‌ای GPT، اطلاعات مربوط به پارتیشن‌ها بر روی خود پارتیشن ذخیره می‌شود؛ به همین دلیل از اطمینان‌پذیری بالاتری برخوردار است. به دلیل قدیمی بودن MBR، جای تعجبی نیست که از دیسک‌های سخت بیش‌تر از ۲ ترابایت پشتیبانی نمی‌کند؛ در مقابل، GPT حداکثر از حافظه‌های ذخیره‌سازی ۹.۴ زتابایتی پشتیبانی می‌کند. همچنین نمی‌توان از روی دیسک‌های سخت MBR، سیستم عامل را در حالت UEFI بوت کرد و این کار فقط از عهده‌ی GPT برمی‌آید.

همه‌ی سیستم عامل‌های برپایه‌ی UNIX شامل نسخه‌های ۳۲ و ۶۴ بیتی مانند OS X شرکت اپل، به طور کامل از GPT پشتیبانی می‌کنند. اما فقط نسخه‌های ۶۴ بیتی سیستم عامل ویندوز و تعداد معدودی از نسخه‌های ۳۲ بیتی شامل ویندوز 8، 8.1 و 10، به شرط استفاده از UEFI تقریبا به طور کامل از GPT پشتیبانی می‌کنند.

در ادامه‌ی مقاله، به نحوه‌ی پی بردن به ساختار قالب‌بندی داده‌ای پارتیشن (partition scheme) استفاده شده در دیسک و تبدیل آن‌ها به همدیگر خواهیم پرداخت.
پی بردن به ساختار قالب‌بندی داده‌ای پارتیشن در دیسک سخت

به منظور پی بردن به ساختار قالب‌بندی داده‌ای استفاده شده در پارتیشن، دو گزینه برای انتخاب در اختیار دارید که شامل استفاده از ابزار گرافیکی مدیریت دیسک (Disk Management) ویندوز و بهره‌مندی از خط فرمان (command line) است.
گزینه‌ی اول: استفاده از ابزار مدیریت دیسک

برای دسترسی به اطلاعات مربوط به دیسک سخت و پارتیشن‌های آن از طریق ابزار مدیریت دیسک، بر روی منوی شروع کلیک راست کرده یا کلیدهای ترکیبی ویندوز+X را از صفحه کلید بفشارید و در ادامه، Disk Management را برگزینید. به علاوه، می‌توانید کلیدهای ترکیبی ویندوز+R را برای باز کردن کادر محاوره‌ای Run فشرده و دستور "diskmgmt.msc" را در آن تایپ کنید و اینتر را بزنید تا ابزار مدیریت دیسک فراخوانی شود. در پنجره‌ی Disk Management بر روی دیسک سخت مورد نظر خود (در صورت داشتن بیش از یک هارد دیسک) کلیک راست کرده و Properties را برگزینید.

در پنجره‌ی جاری بر روی سربرگ Volumes کلیک کنید تا ساختار قالب‌بندی داده‌ای استفاده شده در دیسک را در مقابل عبارت Partition style مشاهده کنید.

گزینه‌ی دوم: استفاده از دستور Diskpart

گزینه‌ی دیگر برای دستیابی به اطلاعات دیسک سخت، استفاده از فرمان استاندارد diskpart در محیط خط فرمان است. برای این منظور، ابتدا با راست کلیک بر روی منوی شروع یا فشردن کلیدهای ترکیبی ویندوز+X، خط فرمان را تحت ادمین ((Command Prompt (Admin) اجرا کنید. همچنین می‌توانید آیکون میان‌بر خط فرمان را در منوی شروع قرار داده، روی آن راست کلیک کنید و Run as Administrator را بزنید.

دو دستور “diskpart” و “list disk” را به ترتیب در پنجره‌ی خط فرمان تایپ کرده و پس از هر کدام، کلید اینتر را بفشارید. با این کار، جدولی شامل دیسک‌های متصل شده به رایانه همراه با اطلاعات آن‌ها نمایان خواهد شد. اگر دیسک‌های موجود از ساختار قالب‌بندی داده‌ای GPT استفاده کرده باشند، در ستونی تحت عنوان Gpt و در مقابل دیسک مربوطه، کاراکتر ستاره (*) وجود خواهد داشت؛ در غیر این صورت، ستون Gpt خالی خواهد بود که نشانگر بهره‌مندی دیسک سخت از MBR است.

برای مثال، در اسکرین‌شات زیر، Disk 0 وDisk 1 هر دو از نوع GPT بوده؛ در حالی که Disk 2 یک دیسک MBR است.

تبدیل MBR و GPT به هم؛ پشتیبان‌گیری و پاک‌سازی کامل دیسک

برای تبدیل ساختار قالب‌بندی داده‌ای پارتیشن یک دیسک از MBR به GPT یا برعکس، ابتدا باید کل محتویات دیسک را به طور کامل پاک‌سازی کنید که در اصطلاح فرنگی وایپ (Wipe) نامیده می‌شود. وایپ کردن دیسک، به منزله‌ی حذف بدون بازگشت داده‌ها و جداول پارتیشن دیسک است؛ پس قبل از ادامه‌ی کار، از همه‌ی داده‌های موجود در دیسک نسخه‌ی پشتیبان تهیه کنید. پس از پاک‌سازی کامل دیسک، قادر به تبدیل ساختار قالب‌بندی داده‌ای به همدیگر و آماده‌سازی برای نوشتن دوباره‌ی داده‌ها بر روی دیسک خواهید بود.
مقاله مرتبط:

۴ راهکار برای افزایش سرعت عملکرد رایانه‌ی ویندوز 10

از لحاظ فنی، روش یاد شده تنها راه ممکن برای تبدیل MBR و GPT به هم نیست. برخی از نرم‌افزارهای مدیریت پارتیشن سوم شخص، وعده‌ی تبدیل MBR و GPT به یکدیگر را بدون پاک‌سازی کامل و از دست دادن داده‌ها، به کاربران می‌دهند. با این حال، مایکروسافت به طور رسمی از این روش پشتیبانی نکرده و بهتر است قبل از انجام هر کاری، اقدام به پشتیبان‌گیری از داده‌های خود بکنید؛ زیرا خطر از دست دادن داده‌ها دور از انتظار نیست!

پیشنهاد ما این است که ابتدا اقدام به پشتیبان‌گیری از داده‌ها کرده و سپس آن‌ها را وایپ کنید. پس از اتمام فرآیند تبدیل، داده‌های خود را به درون دیسک وایپ شده جابه‌جا کنید. با این که فرآیند تبدیل طولانی‌تر خواهد شد، اما ارزش این را دارد که از روش رسمی و تضمین شده‌ای استفاده کنید که درصد خطا و بروز مشکل نزدیک به صفر دارد.
گزینه‌ی اول: استفاده از ابزار مدیریت دیسک

دوباره تاکید می‌کنیم که قبل از انجام مراحل گفته شده در ادامه‌ی مقاله، از داده‌های دیسک سخت خود پشتیبان‌گیری کنید؛ زیرا همه‌ی داده‌های موجود پاک خواهند شد!

برای تبدیل ساختار قالب‌بندی داده‌ای دیسک به همدیگر، بر روی هر یک از پارتیشن‌های دیسک سخت مورد نظر کلیک راست کرده و گزینه‌ی Delete Volume یا Delete Partition را برای حذف کردن آن بزنید.

هنگامی که همه‌ی پارتیشن‌ها از دیسک مورد نظر حذف شدند، می‌توانید بر روی دیسک موجود در ابزار Disk Management کلیک راست کرده و یکی از گزینه‌های Convert to GPT Disk یا Convert to MBR Disk را انتخاب کنید. این گزینه‌ها فقط هنگامی که همه‌ی پارتیشن‌های دیسک وایپ شده باشد در دسترس خواهند بود.

بعد از انجام این کار، می‌توانید با کلیک راست درون فضای کلی تخصیص نیافته‌ی دیسک (Unallocated)، یک یا چند پارتیشن جدید ایجاد کرده و در صورت تمایل، داده‌های پشتیبان‌گیری شده را به درون پارتیشن جدید منتقل کنید.

گزینه‌ی دوم: استفاده از فرمان Diskpart

روش دوم برای تبدیل MBR و GPT به هم، بهره‌مندی از دستور Diskpart در پنجره‌ی خط فرمان ویندوز است. این روش علاوه‌بر تبدیل ساختار قالب‌بندی داده‌ای پارتیشن‌ها به یکدیگر، برای اصلاح کردن پارتیشن و دیسک‌های آسیب دیده، قفل شده و دیسک‌هایی که نمی‌توان با استفاده از ابزار مدیریت دیسک گرافیکی ویندوز ۱۰ اقدام به رفع مشکل آن‌ها کرد، کاربرد دارد.

پس از پشتیبان‌گیری از داده‌های ضروری، پنجره‌ی خط فرمان را تحت اَدمین اجرا کنید. دستورهای “diskpart” و “list disk” را یکی پس از دیگری در آن تایپ کرده و کلید اینتر را از صفحه کلید بفشارید. هم‌اکنون لیستی از دیسک‌های موجود در رایانه قابل مشاهده خواهد بود. می‌توانید دیسک مورد نظر را با استفاده از ظرفیت آن تشخیص دهید.

حال، دستورهای “# select disk” و“clean” را یکی پس از دیگری تایپ کرده و پس از هر کدام، اینتر کنید. کاراکتر “#” موجود در دستور یاد شده را با شماره‌ی دیسکی که قصد تبدیل آن را دارید، جایگزین کنید. دستور clean، محتویات دیسک و سوابق پارتیشن‌ها را وایپ خواهد کرد؛ پس در انتخاب شماره‌ی دیسک مورد نظر نهایت دقت را به خرج دهید.

حالا می‌توانید یکی از دستورهای زیر را بسته به میل خود، برای تبدیل سیستم پارتیشن دیسک به یکی از انواع MBR یا GPT انتخاب کنید. برای تبدیل دیسک از MBR به GPT، باید از دستور “convert gpt” و برای تبدیل دیسک از GPT به MBR، بایستی از “convert mbr” استفاده کنید.

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

حداقل در تئوری، راه‌هایی برای تبدیل MBR و GPT بدون وایپ کردن دیسک وجود دارد؛ اما نمی‌توانیم در هر وضعیتی به استفاده از این روش اطمینان کنیم. بنابراین بهتر است از روش رسمی و تضمین شده‌ی یاد شده در این مقاله استفاده کنید.

آیا از روش یاد شده استفاده کرده‌اید؟ لطفا تجربه‌های خود را در بخش دیدگاه سایت به اشتراک بگذارید.

+ نوشته شده در  چهارشنبه 14 تير 1396ساعت 16:57  توسط computerclub1  | 

چگونه تاریخچه‌ی گوگل کروم خود را پاک کنیم؟

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

بدون در نظر گرفتن این موارد، توصیه می‌کنیم تاریخچه‌ی مرورگر خود را در بازه‌های زمانی کوتاه پاک کنید تا این امر کم‌کم به یک عادت خوب تبدیل شده و به طور بالقوه موجب شود تا اگر کسی خواست برای مدت کوتاهی از کامپیوتر شما استفاده کند، خجالت زده نشوید. ساده ترین راه دسترسی به تاریخچه‌ی مرورگرتان، استفاده از کلید‌های میانبر Ctrl+H در ویندوز یا Command+Y در مک است. در هردو مرورگر، شما می‌توانید با کلیک بر‌ روی سه خط موجود در گوشه سمت راست و بالای مرورگر خود و انتخاب گزینه‌ی History و کلیک بر روی History در لیست موجود، به تاریخچه‌ی مرورگر خود دسترسی پیدا کنید.

گوگل کروم

تاریخچه‌ی مرورگر شما می‌تواند بسیار طولانی باشد. این تاریخچه براساس تاریخ مرتب شده؛ بنابراین قادر خواهید بود تا به مطالب مشاهده شده در روزهای قبل، دسترسی داشته باشید.

گوگل کرومدر بالای صفحه History دو کلید وجود دارد. اگر بخواهید یک یا چند سایت خاص را حذف کنید، می‌توانید آن‌ها را انتخاب کرده و دکمه Remove selected items را بزنید.

گوگل کروم

در غیر این صورت بر روی Clear browsing data… کلیک کنید. با این کار وارد منوی دیگری می‌شوید. در این مرحله با گزینه‌هایی مواجه می‌شوید که شما را قادر می‌سازند تا مشخص کنید، تاریخچه‌ی مربوط به کدام قسمت و چه تاریخی را می‌خواهید حذف کنید. در این مورد ما با انتخاب Browsing History و the beginning of time، فقط تاریخچه‌ی مربوط به مرورگر را به صورت کلی (از ابتدای استفاده تا کنون) حذف می‌کنیم. اما می‌توانیم تاریخچه‌ی مرورگرمان را در طی بازه‌های زمانی روزانه، هفتگی یا ۴ هفته‌ی گذشته، پاک کنیم.

گوگل کروم

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

گوگل کروم

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

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

+ نوشته شده در  چهارشنبه 14 تير 1396ساعت 16:55  توسط computerclub1  | 

چگونه در چند ثانیه تمام اپلیکیشن‌ ها را در لینوکس بروزرسانی کنیم

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

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

اکثر کاربران لینوکس روش بروزسانی دستی و معمول اپلیکیشن‌ها در این سیستم عامل را می‌دانند، اما شاید بخواهید با روشی سریع‌تر این کار را انجام دهید.

شما می‌توانید با چند دستور ساده تمامی بخش‌های رایانه لینوکسی خود را بروزرسانی کنید. ابتدا ابزار خط فرمان را اجرا کرده و سپس دستورات زیر را عینا وارد کنید:

sudo apt-get install [package name here]

با اجرای دستور فوق، اپلیکیشن مورد نظر بررسی شده و در صورتی که آپدیتی برای آن‌ ارائه شده باشد، دانلود و نصب خواهد شد. دقت کنید که باید به جای package name here نام اپلیکیشن را وارد کنید. اگر شما نام بسته اپلیکیشن مورد نظرتان را نمی‌دانید، می‌توانید دستو زیر را اجرا کنید تا لیست نام پکیج تمامی اپلیکیشن‌های موجود در سیستم برایتان نمایان شود. | less به شما اجازه می‌دهد تا با کلید‌های جهتی صفحه کلید عمل اسکرول را انجام دهید.

apt-cache pkgnames | less

چند دستور دیگر هم وجود دارند که می‌توان از آن‌ها برای بهبود فرآیند آپدیت استفاده کرد. اگر می‌خواهید بروزرسانی تمامی اپلیکیشن‌ها را با هم انجام دهید ابتدا دستور زیر را اجرا کنید. این کار باعث می‌شود جدیدترین اطلاعات در مورد نرم‌افزارهای نصب شده در رایانه شما نمایان شود.

sudo apt-get update

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

sudo apt-get upgrade

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

بنظر شما بروزرسانی اپلیکیشن‌ها در لینوکس تا چه حد ضروری است؟ آیا روش‌های دیگری را برای آپدیت کردن نرم افزارهای لینوکسی می‌شناسید؟ لطفا نظرات خود را در بخش دیدگاه‌ها با زومیت و سایر کاربران به اشتراک بگذارید.
منبع makeuseof
تگ ها Update Linux
تبلیغات
سئو
پنل اس ام اس
بازی اندروید
مقاله های مرتبط
ویکی لیکس جاسوسی سیا از سیستم عامل لینوکس با ابزار OutlawCountry را فاش کرد
ویکی لیکس جاسوسی سیا از سیستم عامل لینوکس با ابزار OutlawCountry را فاش کرد
به‌روزرسانی‌ امنیتی ماهانه‌ی اندروید چه فایده‌ای دارد
به‌روزرسانی‌ امنیتی ماهانه‌ی اندروید چه فایده‌ای دارد
سیستم عامل دبیان 9 منتشر شد
سیستم عامل دبیان 9 منتشر شد
مطالب پیشنهادی از سراسر وبنیرو گرفته از کاپریلا
فیلم‌ آموزشی راه‌اندازی اوراکل در لینوکس
فیلم‌ آموزشی راه‌اندازی اوراکل در لینوکس
فیلم آموزشی دیتاگارد در اوراکل
فیلم آموزشی دیتاگارد در اوراکل
فیلم‌ آموزشی ساخت اپلیکیشن کتاب و کار با داده‌ها در اندروید
فیلم‌ آموزشی ساخت اپلیکیشن کتاب و کار با داده‌ها در اندروید

مطالب پیشنهادی از سراسر وب
پیشنهاد توسط
قیمت روز خودروهای دست دوم از پراید تا بی‌ام‌و

قیمت روز خودروهای دست دوم از پراید تا بی‌ام‌و
فروش انواع کفش مردانه با قیمت مناسب

فروش انواع کفش مردانه با قیمت مناسب
آیا تا به حال به روسیه این سرزمین متفاوت سفر کرده اید؟

آیا تا به حال به روسیه این سرزمین متفاوت سفر کرده اید؟
74 دیدگاه
1500 کاراکتر باقی مانده

+ نوشته شده در  چهارشنبه 14 تير 1396ساعت 16:53  توسط computerclub1  | 

 
ساخت وبلاگ رایگان تور روسیه بلیط هواپیما بلیط هواپیما تدریس خصوصی زبان انگلیسی هوشمند سازی ساختمان خانه هوشمند
بستن تبلیغات [X]