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

به روز ترین مطالب آموزشی و متدلوژی های برنامه نویسی

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

به روز ترین مطالب آموزشی و متدلوژی های برنامه نویسی

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


آدرس : خیابان شریعتی بالاتر از ملک جنب بانک صادرات طبقه دوم واحد 7
همراه: 09123840871 تلفن: 88146323 - 88146330

۱۲ مطلب در شهریور ۱۳۹۹ ثبت شده است

  • ۰
  • ۰

 

با آموزش جدید Jquery از دوره آموزش طراحی سایت همراه ما باشید.

 

آموزش افزونه sliderbars.js در JQuery

اسلاید Slidebars یک افزونه jQuery برای اجرای سریع و سبک منوها و نوارهای باریک افقی و عمودی در وب سایت شما است. Slidebars 2 پر از ویژگی های جذاب میباشد. تعداد نامحدودی از اسلایدها - دیگر فقط یک سمت چپ ، یک راست وجود ندارد.

 

اسلایدهای بالا و پایین.

آموزش طراحی سایت : رویدادها - نمایش اسلایدها رویدادهایی را نشان می دهد که نشان دهنده رفتار آن است.

  • سبک انیمیشن شیفت جدید.

  • مدت زمان بهبود انیمیشن.

  • سبک های چاپ

  • سبک وزن تنها 1.69kb gzipped

جهت استفاده از این افزونه لازم است ، ابتدا فایلهای cssو js لازم را در پروژه اضافه میکنیم.

< link href="css/slidebars.css" rel="stylesheet" >

< script src="js/jquery.js" >< /script >

< script src="js/slidebars.js" >< /script >

در بخش body صفحه Html ، صفحه به دو بخش محتوای اصلی و منو تقسیم میکنیم و محتوا دلخواه در آنها قرار میدهیم

< div canvas="container" >

< h1 >welcome to my website< /h1 >

< p > introduction of slidebars.js< /p >

< p >

< button class="js-open-left-slidebar" >open left< /button >

< button class="js-close-left-slidebar" >CLOSE left< /button >

< button class="js-toggle-left-slidebar" >toggle left< /button >

< /p >

< /div >

< div off-canvas="slidebar-1 left shift" >

< p >menu left< /p >

< /div >

جهت و مدل باز و بسته شدن منو ، با استفاده از پارامتر off-canvas مشخص میشود برای فراخوانی افزونه روی این بخش ، قطعه کد جیکوئری زیر را مینویسیم

$ (document).ready(function(){

var controller = new slidebars();

controller.init();

بعد از ایجاد یک نمونه جدید از شی ، برای رویداد کلیک روی دکمه ی منو ، متد باز کردن منو را اجرا میکنیم.

$ ('.js-open-left-slidebar').on('click',function (event) {

event.stopPropagation();

controller.open('slidebar-1');

})

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

$('.js-close-left-slidebar').on('click',function (event) {

event.stopPropagation();

controller.close('slidebar-1');

})

 

متد toggle ، دو متد close و open را با یکدیگر اجرا میکند

$('.js-toggle-left-slidebar').on('click',function (event) {

event.stopPropagation();

controller.toggle('slidebar-1');

})

//event

 

رویدادها:

رویدادهای ایجاد نمونه جدید، اعمال css روی منو که شامل shift و overlay ،push و reveal میباشد. مدل رفتاری منو در زمان باز و بسته شدن را نشان میدهد. رویداد باز و بسته شدن منو نیز از رویدادهای این افزونه میباشد.

$ ( controller.events ).on( 'init', function () {

console.log( 'Init event' );

} );

$ (controller.events).on('css',function () {

console.log('css')

})

$ (controller.events).on('exit',function () {

console.log('exit')

})

$ (controller.events).on('opening',function (event,id) {

console.log('opening'+id);

})

$ (controller.events).on('opened',function (event,id) {

console.log('opened'+id);

})

$ (controller.events).on('closing',function (event,id) {

console.log('closing'+id);

})

$ (controller.events).on('closed',function (event,id) {

console.log('closed'+id);

})

 

آموزش طراحی سایت : آموزش کار با افزونه Alertify

پلاگین alertify ، پلاگینی سبک برای توسعه دیالوگ باکس و هشدارهای زیبا در مرورگر ها میباشد. از ویژگی های این پلاگین میتوان به قابلیت گسترش و سفارشی سازی آن ، واکنشگرا بودن ، قابلیت اعمال قالب روی آنها و راست چین بودن آنها اشاره کرد.

آدرس صفحه وبی که میخواهید نمایش دهید را Paste کنید

 

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

 

در ادامه قطعه کدهای استفاده از این پلاگین را به ازای هشدارهای متفاوت مرورگرها مشاهده میکنیم

نمایش پیام و یا هشدار:

if(!alertify.myAlert){

//define a new dialog

alertify.dialog('myAlert',function(){

return{

main:function(message){

this.message = message;

},

setup:function(){

return {

buttons:[{text: "cool!", key:27/*Esc*/}],

focus: { element:0 }

};

},

prepare:function(){

this.setContent(this.message);

}

}});

}

//launch it.

alertify.myAlert("Browser dialogs made easy!");

 

 

آموزش راه اندازی پلاگین alertify

.alert("This is an alert dialog.", function(){

alertify.message('OK');

});

 

دریافت تاییدیه از کاربر

alertify.confirm("This is a confirm dialog.",

function(){

alertify.success('Ok');

},

function(){

alertify.error('Cancel');

});

Run Example Documentation

 

 

دریافت ورودی از کاربر

alertify.prompt("This is a prompt dialog.", "Default value",

function(evt, value ){

alertify.success('Ok: ' + value);

},

function(){

alertify.error('Cancel');

})

 

نمایش پیام موفقیت آمیز

// success notification

// Shorthand for:

// alertify.notify( message, 'success', [wait, callback]);

alertify.success('Success message');

 

نمایش پیام خطا

// error notification

// Shorthand for:

// alertify.notify( message, 'error', [wait, callback]);

alertify.error('Error message');

 

نمایش هشدار

// alertify.notify( message, 'warning', [wait, callback]);

alertify.warning('Warning message');

Run Example Documentation

 

نمایش هشدار به کاربر

// default notification

// Shorthand for:

// alertify.notify( message, [type, wait, callback]);

alertify.message('Normal message');

Run Example Documentation

آموزش طراحی سایت ادامه دارد

 

 

 

  • افشین رفوآ
  • ۰
  • ۰

به بخش جدید آموزش سی شارپ خوش آمدید.

یکی دیگر از تکنیک های اصلی در زمان نوشتن نرم افزارها، امکان ایجاد حلقه ها دستوری یا looping است. این نوع دستورات امکان تکرار بلوک هایی از کد برای دفعات دلخواه را می دهند. برای مثال ما می خواهیم گروهی از دستورات تا زمانی که مقدار یک متغیر مثلا کمتر از 10 است، تکرار شود، در این حالت بایستی از حلقه ها در C# استفاده کنیم. در زبان C#، چهار نوع حلقه اصلی داریم که در ادامه به تشریح هر یک از آن ها با ارائه مثال های عملی خواهیم پرداخت .

 

آموزش سی شارپ : حلقه loop While

حلقه While loop آسان ترین نوع حلقه در زبان C# بوده و به همین دلیل آموزش حلقه ها را از این حلقه شروع می کنیم. حلقه While loop مجموعه بلوک دستورات تعیین شده برای آن را تا زمانی که شرط تعیین شده برای حلقه درست true باشد، اجرا می کند. کد زیر یک مثال ساده از کاربرد حلقه While را نشان می دهد، در ادامه به تشریح بیشتر کد می پردازیم :

 

using System;

namespace ConsoleApplication1

{

class Program

{

static void Main(string[] args)

{

int number = 0;

while(number < 5)

{

Console.WriteLine(number);

number = number + 1;

}

Console.ReadLine();

}

}

}

برنامه را اجرا نمایید. لیستی از اعداد 0 تا 4 برای شما نمایش داده خواهد شد. متغیر number که درواقع شمارنده حلقه While مثال نیز هست، از عدد 0 شروع شده و هر بار که دستورات حلقه یک بار اجرا می شوند، مقدار آن یک واحد افزایش پیدا می کند. تا زمانی که مقدار متغیر number کمتر از 5 و نه خود 5 باشد، اجرای دستورات ادامه پیدا کرده و با رسیدن عدد number به 5، اجرای حلقه متوقف شده و برنامه به خط کد بعد از حلقه While پرش می کند.

 

حلقه do loop :

کارکرد حلقه do loop کمی متفاوت با حلقه While loop است. در حلقه do loop ابتدا دستورات بدنه حلقه یک بار اجرا شده و در پایان شرط حلقه چک می شود. در صورت درست بودن شرط، باز هم دستورات حلقه تکرار می شود. نکته مهم در مورد حلقه do loop این است که اگر حتی شرط حلقه از ابتدا درست نباشد، دستورات حلقه حداقل یک بار اجرا می شوند. کد زیر یک مثال عملی از کار با حلقه do loop را نشان می دهد :

do

{

Console.WriteLine(number);

number = number + 1;

} while(number < 5);

خروجی حلقه do loop مثال فوق اعداد 0 تا 5 را چاپ کرده و با رسیدن شماره حلقه به 6، اجرای آن متوقف می شود.

 

 

آموزش سی شارپ :حلقه for loop

مکانیزم حلقه for loop با حلقه های قبلی کمی متفاوت است. از این حلقه بهتر است زمانی استفاده شود که می دانیم حدودا حلقه چند بار ممکن است تکرار شود. حلقه for loop دارای یک عدد به عنوان شمارنده است که با هر بار اجرای حلقه، مقدار آن به اندازه واحد تعیین شده کم یا زیاد می شود. اجرای حلقه تا زمانی که شرط آن درست باشد، ادامه داشته و شرط در ابتدای اجرای حلقه تست می شود. کد زیر یک مثال عملی از حلقه for loop را نشان می دهد :

using System;

namespace ConsoleApplication1

{

class Program

{

static void Main(string[] args)

{

int number = 5;

for(int i = 0; i < number; i++)

Console.WriteLine(i);

Console.ReadLine();

}

}

}

کد مثال فوق خروجی همانند حلقه While loop ایجاد می کند اما همانطور که شماهده می کنید، این حلقه کمی متراکم تر از حلقه های قبلی است. حلقه for از سه بخش اصلی تشکیل شده است : ابتدا یک مقدار متغیر را برای شمارش اجرای حلقه تعریف و مقداردهی می کنیم، یک شرط برای اجرای حلقه بر مبنای متغیر شمارنده تعیین شده و یک گام افزایش یا کاهش جهت شمارش اجرای حلقه و کنترل گام آن مثل ++ یا – تعیین می گردد. در کد مثال فوق، در مرحله اول شمارنده حلقه را به نام i تعریف و با مقدار 0 مقداردهی کرده ایم، این بخش حلقه فقط یک بار و در هنگام شروع حلقه اجرا می شود. دو قسمت بعدی حلقه، در هر بار تکرار حلقه، اجرا می شوند. در هر بار، مقدار متغیر i با متغیرهای عددی number مقایسه شده و در صورتی که کوچکتر از آن باشد، دستورات حلقه یک بار دیگر اجرا شده ومقدار i یک واحد افزایش می یابد.

آموزش سی شارپ ادامه دارد

  • افشین رفوآ
  • ۰
  • ۰
سلام دوستان...
با آموزش پایتون همراه ما باشید :

 

ماژول به شما این امکان را می دهد که کدهای خود را در پایتون سازمان دهی کنید. گروه بندی کدهای مرتبط با هم در یک ماژول، خوانایی کد و قابلیت استفاده از آن را بهبود می بخشد. ماژول یک شی است که دارای متغیرهای عضو (attribute) می باشد. این متغیرها را می توان bind(متصل) کرده و مورد ارجاع (reference) قرار داد. ماژول درواقع یک فایل است که حاوی کد پایتون می باشد. ماژول توابع، کلاس ها و متغیرهایی را در اختیار شما قرار می دهد. ماژول همچنین می تواند دربردارنده ی کد اجرایی باشد. مثال: کد پایتون ماژول aname، داخل فایل aname.py جای گذاری می شود. در زیر مثالی از یک ماژول ساده (support.py) را مشاهده می کنید:
def print_func( par ):
print "Hello : ", par
return

 

دستور import در آموزش پایتون
می توان با استفاده از دستور import، یک source file پایتون را در source file دیگری مورد استفاده قرار داد. نحوه ی استفاده از دستور import به ترتیب زیر می باشد:
import module1[, module2[,... moduleN]
هنگامی که مفسر با دستور import مواجه می شود، اگر آن ماژول در search path (مسیر جستجو) موجود باشد، ماژول مربوطه را وارد برنامه ی جاری می کند. search path، لیستی از پوشه ها (directory) است که مفسر در آن ها جستجو کرده و در صورت یافتن ماژول مورد نظر آن را وارد می کند. برای مثال، به منظور وارد کردن ماژول hello.py، می بایست دستور زیر را بالای اسکریپت درج نمایید:
#!/usr/bin/python
# Import module support
import support
# Now you can call defined function that module as follows
support.print_func("Zara")
خروجی:
Hello : Zara
یک ماژول، صرف نظر اینکه چندبار وارد (import) می شود، فقط یکبار بارگذاری می گردد. در صورت وجود چندین نمونه از دستور import، این امر مانع از این می شود که ماژول بارها و بارها اجرا شود.
The from...import Statement
دستور from، به شما اجازه می دهد متغیرهای عضو (attribute) را از یک ماژول وارد فضای نامی جاری کنید. طریقه ی بکار بردن دستور from...import در زیر نمایش داده شده است:
from modname import name1[, name2[, ... nameN]]
برای مثال، جهت وارد کردن تابع fibonacci از ماژول fib، دستور زیر را استفاده نمایید:
from fib import fibonacci
این دستور کل ماژول fib را در فضای نام جاری وارد نمی کند، بلکه صرفا آیتم fibonacci را از ماژول fib داخل جدول سراسری symbol ماژول import شده وارد می نماید.

 

دستور from...import *
همچنین می توان تمامی اسم ها را از یک ماژول، وارد فضای نامی جاری کرد. این کار با استفاده از دستور زیر امکان پذیر می باشد:
from modname import *
دستور یاد شده، روشی آسان برای وارد کردن تمامی آیتم های مورد نظر از یک ماژول در فضای نام جاری می باشد. با این حال توصیه می شود از این دستور فقط مواقع ضروری استفاده کنید.

 

مکان یابی ماژول
به هنگام وارد کردن یک ماژول، مفسر زبان پایتون به ترتیب شرح داده شده در زیر به دنبال ماژول مورد نظر می گردد.
  1. پوشه ی جاری.
  2. در صورت نیافتن ماژول، پایتون هر پوشه (directory) را در shell variableکه PYTHONPATH نام دارد جستجو می کند.
  3. در صورت موفق نبودن دو روش ذکر شده، پایتون مسیر پیش فرض را سرچ می کند. در محیط UNIX، این مسیر پیش فرض /usr/local/lib/python/ می باشد.
مسیری که ماژول در آن جستجو می شود (module search path)، داخل ماژول system module در قالب متغیر sys.path ذخیره می شود. متغیر sys.path حاوی پوشه ی جاری، متغیر PYTHONPATH است و مقدار پیش فرض آن به مسیر نصب بستگی دارد.

 

متغیر PYTHONPATH
متغیر PYTHONPATH، همان طور که پیش تر در این سری آمورشی تشریح شد، یک environment variable (متغیرهای محیطی مجموعه‌ای از مقادیر نام‌گذاری‌شده هستند که قادراند چگونگی رفتار کردن پروسه های در حال اجرا را تغییر داده و بر روی آنها تاثیر بگذارند. متغیرهای محیطی، از فرایند parent به فرایندهای child به ارث می‌رسند. این متغیرها بخشی از محیط عملیاتی هستند که فرایند در آن اجرا می‌شود.) می باشد که از لیستی از پوشه ها (directory) تشکیل شده است. سینتکس متغیر نام برده مشابه shell variable، PATH می باشد. در زیر مثالی از متغیر PYTHONPATH در سیستم عامل ویندوز را می بینید:
set PYTHONPATH=c:\python20\lib;
نمونه ای از متغیر محیطی PYTHONPATH از سیستم UNIX:
set PYTHONPATH=/usr/local/lib/python

 

فضای نامی و تعیین حوزه ی دسترسی در آموزش پایتون
متغیرها اسم ها یا شناسه هایی هستند که به اشیا نگاشت (map) می شوند. فضای نام یک dictionary از اسم متغیر (کلید) و اشیای مرتبط با آن (مقادیر) هستند. دستور پایتون می تواند به متغیرهایی که در فضای نام محلی و همچنین در فضای نام سراسری قرار دارد، دسترسی داشته باشد.چنانچه متغیر سراسری و محلی هر دو دارای اسمی یکسان باشند، متغیر محلی بر متغیر سراسری اولویت دارد. هر تابع دارای فضای نام محلی و مختص به خود است. متدهای کلاس نیز از همان قوانین تعیین حوزه ی دسترسی که توابع معمولی دنبال می کنند، پیروی می کنند. زبان پایتون برآورد می کند متغیرها سراسری هستند یا محلی. بدین معنی که فرض می گیرد هر متغیری که در یک تابع مقداردهی می شود، نسبت به آن تابع محلی می باشد. از این رو، جهت تخصیص یک مقدار به متغیر سراسری در حوزه ی یک تابع، ابتدا بایستی از دستور سراسری استفاده کنید. دستور global VarName به زبان پایتون اطلاع می دهد که VarName یک متغیر سراسری است، در پی آن پایتون جستجو برای متغیر مورد نظر در فضای نام محلی را متوقف می سازد. فرض بگیرید، یک متغیر به نام Money در فضای نام سراسری تعریف کرده ایم. سپس داخل تابع، متغیر ذکر شده را مقداردهی می کنیم. به دنبال آن پایتون متغیر Money را یک متغیر محلی در نظر می گیرد. با این حال، پیش از اینکه متغیر محلی Money را تنظیم (set) کنیم، سعی کردیم به مقدار آن دسترسی پیدا کنیم. در نتیجه با خطای UnboundLocalError مواجه می شویم. برای رفع آن، دستور سراسری global Money را از حالت comment خارج می کنیم:
#!/usr/bin/python
Money = 2000
def AddMoney():
# Uncomment the following line to fix the code:
# global Money
Money = Money + 1
print Money
AddMoney()
print Money

 

تابع dir()
تابع توکار dir() لیست مرتب سازی شده ای برمی گرداند که حاوی رشته های متعدد می باشد. این رشته ها دربردارنده ی اسم ماژول ها می باشد. لیستی که این تابع بازمی گرداند، دربردارنده ی ماژول ها، متغیرها و توابع می باشد که در ماژول تعریف شده اند. مثال:
#!/usr/bin/python
# Import built-in module math
import math
content = dir(math)
print content
نتیجه:
['__doc__', '__file__', '__name__', 'acos', 'asin', 'atan',
'atan2', 'ceil', 'cos', 'cosh', 'degrees', 'e', 'exp',
'fabs', 'floor', 'fmod', 'frexp', 'hypot', 'ldexp', 'log',
'log10', 'modf', 'pi', 'pow', 'radians', 'sin', 'sinh',
'sqrt', 'tan', 'tanh']
در اینجا، متغیر رشته ای – name – اسم ماژول می باشد و – file – اسم فایل می باشد که ماژول از آن بارگذاری می شود.
The globals() and locals() Functions −
توابع globals() و locals() اسم های فضای نام محلی و سراسری را بسته به مکانی که از آن فراخوانی می شود، برمی گرداند. اگر تابع locals() از داخل یک تابع فراخوانی شود، در آن صورت تمامی اسم هایی که به صورت محلی قابل دسترسی می باشد، با صدا خوردن تابع نام برده برگردانده می شوند. اگر تابع globals() ار درون تابع صدا زده شود، در آن صورت کلیه ی اسم هایی که به صورت سراسری قابل دسترسی هستند، با فراخوانی تابع ذکر شده بازیابی می شوند. خروجی این دو تابع، متغیری از نوع داده ای dictionary خواهد بود. برای استخراج اسم ها، کافی است تابع keys() را مورد استفاده قرار دهید.

 

تابع reload()
هنگامی که ماژول در یک اسکریپت import می شود، کدی که در بالاترین بخش ماژول قرار می گیرد، تنها یکبار اجرا می شود. بنابراین، اگر می خواهید کدی که در بالاترین قسمت یک ماژول قرار دارد را مجددا اجرا کنید، بایستی تابع reload() را مورد استفاده قرار دهید. تابع reload() یک ماژول که قبلا وارد شده بود را مجددا import می کند. نحوه ی استفاده از آن به ترتیب زیر می باشد:
reload(module_name)
در این نمونه، module_name در واقع اسم ماژولی است که می خواهید مجددا بارگذاری یا reloadشود، نه رشته ای که حاوی اسم ماژول است. به عنوان مثال، برای بارگذاری مجدد ماژول hello، می بایست دستور زیر را وارد نمایید:
reload(hello)

 

پکیج ها در پایتون
پکیج یک پوشه ی فایل یا file directory است که ساختار سلسله مراتبی دارد و محیط برنامه ی پایتون را که از ماژول ها، subpackage ها و sub-subpackage ها تشکیل شده است را مشخص می کند. فرض کنید، فایل Pots.py در پوشه ی Phone جای گرفته است. source code این فایل به ترتیب زیر می باشد:
#!/usr/bin/python
def Pots():
print "I'm Pots Phone"
به طور مشابه، دو فایل دیگر داریم که با همان اسم دربردارنده ی توابع متفاوتی هستند.
  1. فایل Phone/Isdn.py حاوی تابع Isdn()
  2. فایل Phone/G3.py دربردارنده ی تابع G3()
حال یک فایل __init__.py دیگر در پوشه ی Phone ایجاد کنید:
Phone/__init__.py
برای اینکه بتوانید پس از import کردن Phone، تمامی توابع خود را در آماده ی استفاده داشته باشید، بایستی دستور صریح import را در __init__.py به صورت زیر قرار دهید:
from Pots import Pots
from Isdn import Isdn
from G3 import G3
بعد از اینکه خطوط فوق را به فایل __init__.py، اضافه کردید، با وارد کردن پکیج Phone، تمامی این کلاس ها در دسترس خواهند بود.
#!/usr/bin/python
# Now import your Phone Package.
import Phone
Phone.Pots()
Phone.Isdn()
Phone.G3()
نتیجه:
I'm Pots Phone
I'm 3G Phone
I'm ISDN Phone
 
 
 
آموزش پایتون ادامه دارد
  • افشین رفوآ
  • ۰
  • ۰

سلام عزیزان... با آموزش جاوا همراه ما باشید

 

 

آموزش دستور Switch در Java

دستور switch از میان چندین دستور آن دستوری که شرط متناظرش برقرار و صحیح باشد را اجرا می کند. ساختمان switch کاربردی مشابه if else if دارد.

دستور استفاده از Switch:

switch(expression){

case value1:

//code to be executed;

break; //optional

case value2:

//code to be executed;

break; //optional

......

default:

code to be executed if all cases are not matched;

}

 

مثال کاربردی:

public class SwitchExample {

public static void main(String[] args) {

int number=20;

switch(number){

case 10: System.out.println("10");break;

case 20: System.out.println("20");break;

case 30: System.out.println("30");break;

default:System.out.println("Not in 10, 20 or 30");

}

}

}

آموزش جاوا : دستور break در ساختمان Switch زبان Java اختیاری است!

بدین معنی که اگر دستور break بعد از هر case درج نشده باشد، آنگاه switch پس از مواجه شدن با اولین دستور که شرط متناظر آن برقرار است، علاوه بر آن دستور، دستورات بعدی را نیز اجرا می کند.

مثال کاربردی:

public class SwitchExample2 {

public static void main(String[] args) {

int number=20;

switch(number){

case 10: System.out.println("10");

case 20: System.out.println("20");

case 30: System.out.println("30");

default:System.out.println("Not in 10, 20 or 30");

}

}

}

خروجی:

20

30

Not in 10, 20 or 30

 

آموزش حلقه ی For در Java

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

در کل سه نوع حلقه for در جاوا وجود دارد:

  • حلقه ی ساده ی for

  • حلقه ی for-each یا حلقه ی for بهبود یافته

  • حلقه ی for نام گذاری شده (labeled for)

 

حلقه ی ساده ی For

حلقه ی ساده ی for کاربردی مشابه در C/C دارد. حلقه ی for سه پارامتر به شرح زیر به عنوان ورودی می گیرد:

  1. یک متغیر که نشانگر مقدار آغازین می باشد.

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

  3. این پارامتر ورودی مربوط به شمارنده بوده و واحد افزایش یا کاهش مقدار شمارنده را مشخص می کند.

دستور استفاده:

for(initialization;condition;incr/decr){

//code to be executed

}

 

مثال کاربردی:

public class ForExample {

public static void main(String[] args) {

for(int i=1;i<=10;i ){

System.out.println(i);

}

}

}

خروجی:

1

2

3

4

5

6

7

8

9

10

 

حلقه ی For-each در آموزش جاوا

حلقه ی for-each در جاوا برای پیمایش در آرایه یا داده هایی که از جنس مجموعه/collection هستند، بکار می رود. استفاده از این حلقه ی تکرار به مراتب از for آسان تر می باشد چراکه لازم به افزایش مقدار شمارنده در هر بار گام حلقه و استفاده از ساختار " ]اندیس[ نام آرایه " نیست. این حلقه در هر گام اجرا خود المان های آرایه را تک تک داخل متغیر موقتی که داخل پرانتز جلوی for تعریف شده است قرار می دهد. لازم به ذکر است که این حلقه بر روی المان های آرایه کار می کند نه اندیس آن ها.

دستور استفاده از حلقه:

for(Type var:array){

//code to be executed

}

مثال کاربردی:

public class ForEachExample {

public static void main(String[] args) {

int arr[]={12,23,44,56,78};

for(int i:arr){

System.out.println(i);

}

}

}

خروجی:

12

23

44

56

78

 

حلقه ی for نام گذاری شده در Java/ Labeled For

می توان به ازای هر حلقه ی for یک نام انتخاب کرده و به آن تخصیص داد. برای این منظور، کافی است قبل از (در بالای) هر دستور for مجزا، یک اسم دلخواه درج کرد. از این قابلیت زمانی استفاده می شود که حلقه های for به صورت تودرتو تعریف شده و لازم باشد در ساختمان حلقه ی مربوطه از دستور break/continue استفاده شود. در شرایط عادی، کلیدواژه های break و continue تنها داخل عمیق ترین حلقه ی for تودرتو اعمال می شوند.

دستور break در حلقه سبب می شود که روند اجرا داخل ساختمان حلقه متوقف شده و کنترل برنامه از حلقه بیرون بپرد. دستور continue تنها گام جاری را نادیده گرفته و سپس اجرا را از بالای حلقه از سر می گیرد.

دستور استفاده از حلقه:

labelname:

for(initialization;condition;incr/decr){

//code to be executed

}

مثال کاربردی:

public class LabeledForExample {

public static void main(String[] args) {

aa:

for(int i=1;i<=3;i ){

bb:

for(int j=1;j<=3;j ){

if(i==2&&j==2){

break aa;

}

System.out.println(i " " j);

}

}

}

}

خروجی:

1 1

1 2

1 3

2 1

اگر از دستور break bb; استفاده نمایید، در آن صورت تنها از حلقه ی درونی بیرون می پرد که رفتار پیش فرض تمامی حلقه ها است.

 

public class LabeledForExample {

public static void main(String[] args) {

aa:

for(int i=1;i<=3;i ){

bb:

for(int j=1;j<=3;j ){

if(i==2&&j==2){

break bb;

}

System.out.println(i " " j);

}

}

}

}

خروجی:

1 1

1 2

1 3

2 1

3 1

3 2

3 3

 

حلقه ی for بی نهایت در آموزش جاوا

اگر دو نقطه ویرگول ";;" را به عنوان پارامتر به دستور for ارسال نمایید، حلقه ی for تا بی نهایت مجموعه دستورات را تکرار می کند.

نحوه ی تعریف حلقه ی for بی نهایت:

for(;;){

//code to be executed

}

مثال کاربردی:

public class ForExample {

public static void main(String[] args) {

for(;;){

System.out.println("infinitive loop");

}

}

}

خروجی:

infinitive loop

infinitive loop

infinitive loop

infinitive loop

infinitive loop

ctrl c

جهت خروج از برنامه یا خاتمه دادن حلقه ی بی نهایت لازم است کلیدهای ctrl c را همزمان فشار دهید.

آموزش جاوا ادامه دارد

  • افشین رفوآ
  • ۰
  • ۰

 

سلام با آموزش Bootstrap 4 از دوره آموزش طراحی سایت در خدمت شما هستیم

 

آموزش کار با Scrollspy در بوت استرپ 4:

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

 

آموزش نحوه ایجاد یک Scrollspy در بوت استرپ 4:

از کد زیر برای ایجاد یک Scrollspy در Bootstrap 4 استفاده می شود. به کد دقت نمایید، سپس به تشریح نکات مهم آن پرداخته ایم :

 

مثال 1

<!-- The scrollable area -->

<!-- The navbar - The <a> elements are used to jump to a section in the scrollable area -->

<nav class="navbar navbar-expand-sm bg-dark navbar-dark fixed-top">

...

<ul class="navbar-nav">

<li><a href="#section1">Section 1</a></li>

...

</ul></nav>

<!-- Section 1 -->

<div id="section1">

<h1>Section 1</h1>

<p>Try to scroll this page and look at the navigation bar while scrolling!</p>

</div>

...

خاصیت data-spy=” Scroll” را به المنتی که دربرگیرنده منطقه اسکرول و پرش لینک ها و درواقع عنصر حاوی محتویات هدف است، اعمال کنید.

سپس خاصیت data-target را که مقدار آن برابر با Id یا کلاس عنصر منوی Navigation Bar است، اضافه کنید (کلاس navbar).

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

دقت کنید که المنت های اسکرول شونده دارای id ای معادل خاصیت href لینک لیست آیتم های درون منوی navbar باشند، مثلا تگ div دارای id معادل “section1” بوده که با خاصیت href تگ a معادل #section1 برابر است.

در نهایت خاصیت اختیاری data-offset تعیین کننده تعداد پیکسل فاصله از بالای عنصر اسکرول شونده است که در هنگام محاسبه موقعیت آن، لحاظ خواهد شد. این خاصیت زمانی کاربرد دارد که شما احساس می کنید لینک های درون منوی navbar، حالت فعال بودن (active state) خود را در هنگام پرش به عناصر اسکرول شونده، خیلی زود، تغییر می دهند. مقدار پیش فرض آن 10 پیکسل است.

نکته :

المنت با خاصیت data-spy=”scroll” نیازمند خاصیت موقعیت CSS Position برابر با حالت relative است تا درست کار کند.

 

ایجاد Scrollspy عمودی در آموزش طراحی سایت

در کد مثال عملی زیر، از دکمه های pills بوت استرپ 4، برای ایجاد Scrollspy عمودی استفاده کرده ایم. به کد مثال و تفاوت آن با کد قبل دقت نمایید :

مثال 2

<div class="container-fluid">

<div class="row">

<nav class="col-sm-3 col-4" id="myScrollspy">

<ul class="nav nav-pills flex-column">

<li class="nav-item">

<a class="nav-link active" href="#section1">Section 1</a>

</li>

...

</ul>

</nav>

<div class="col-sm-9 col-8">

<div id="section1">

<h1>Section 1</h1>

<p>Try to scroll this page and look at the menu while scrolling!</p>

</div>

...

</div>

</div>

</div>

 

آموزش کار با کلاس های کاربردی Utility Classes در Bootstrap 4

بوت استرپ 4، دارای تعداد زیادی کلاس کاربردی / کمکی موسوم به Utility Classes است که به شما امکان می دهد بدون استفاده از هیچ کد یا استایل CSS، قالب مورد نظرتان را به المنت هدف، اعمال کنید.

 

آموزش کار با کلاس خطوط حاشیه border در بوت استرپ 4:

به وسیله کلاس border در بوت استرپ 4، می توانید خطوط حاشیه برای یک المنت اضافه یا حذف نمایید.

شکل زیر، مدل های مختلف تعیین خطوط حاشیه در Bootstrap 4 را نشان می دهد.

 

مثال : در کد مثال عملی زیر، نحوه تعیین خطوط حاشیه به دور یک عنصر را نشان داده ایم. در مثال اول، المنت span در هر چهار طرف دارای خطوط حاشیه خواهد بود ولی در مثال های بعد با اعمال عدد صفر و تعیین جهت، خطوط حاشیه مورد نظر را حذف کرده ایم :

 

مثال 1

<span class="border"></span>

<span class="border border-0"></span>

<span class="border border-top-0"></span>

<span class="border border-right-0"></span>

<span class="border border-bottom-0"></span>

<span class="border border-left-0"></span>

 

آموزش تعیین رنگ خطوط حاشیه با کلاس border در بوت استرپ 4:

به وسیله کلاس اصلی border و کلاس های متنی رنگی ویژه بوت استرپ 4، می توانید رنگ های خاص و مفهومی را برای خطوط حاشیه المنت تعیین نمایید. در عکس زیر، مدل های مختلف تعیین رنگ برای خطوط حاشیه عنصر، نشان داده شده است :

 

مثال: در کد مثال عملی زیر : برای چندین المنت Span خطوط حاشیه رنگی با استفاده از کلاس متنی رنگی ویژه بوت استرپ 4، تعیین کرده ایم :

 

مثال 2

<span class="border border-primary"></span>

<span class="border border-secondary"></span>

<span class="border border-success"></span>

<span class="border border-danger"></span>

<span class="border border-warning"></span>

<span class="border border-info"></span>

<span class="border border-light"></span>

<span class="border border-dark"></span>

<span class="border border-white"></span>

 

تعیین خطوط حاشیه گرد Border Radius در آموزش طراحی سایت:

در شکل زیر نحوه تعیین و ایجاد گوشه های گرد برای خطوط حاشیه یک عنصر را در حالت های مختلف نشان داده ایم :

 

به وسیله کلاس rounded و سایر کلاس های وابسته می توانید تعیین کنید گوشه های خطوط حاشیه یک عنصر به صورت گرد باشد. با اعمال کلاس rounded، هر چهارگوش عنصر گرد خواهد شد، اما با تعیین جهت بالا (top)، پایین (bottum) و چپ (left) و راست (right) می توانید گرد شدن هر طرف را به صور مجزا مشخص نمایید.

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

 

مثال 3

<span class="rounded-sm"></span>

<span class="rounded"></span>

<span class="rounded-lg"></span>

<span class="rounded-top"></span>

<span class="rounded-right"></span>

<span class="rounded-bottom"></span>

<span class="rounded-left"></span>

<span class="rounded-circle"></span>

<span class="rounded-0"></span>

آموزش طراحی سایت ادامه دارد

  • افشین رفوآ
  • ۰
  • ۰

سلام دوستان...

با آموزش پایتون همراه ما باشید :

قسمت اول آموزش Python

 

آموزش توابع در پایتون

تابع یک قطعه کد سازمان دهی شده است که می توان آن را بارها فراخوانی کرده و مورد استفاده قرار داد. تابع به منظور اجرای یک عملیات خاص بکار می رود. توابع modularity (قابلیت تفکیک مولفه های سیستم و ادغام مجدد آن ها؛ در واقع modularity معماری نرم افزار را به کامپوننت هایی تقسیم می کند که پیاده سازی و نگهداشت آن را آسان می سازد) برنامه و قابلیت استفاده ی مجدد آن را بالا می برد. همان طور که می دانید، پایتون توابع درون ساخته ی متعددی همچون print() ارائه می دهد، با این حال کاربر می تواند توابع خود را تعریف کند که به آن توابع user-defined یا توابع کاربر می گویند.

 

تعریف تابع

می توانید توابعی تعریف کنید که عملیات دلخواه را انجام دهد. برای تعریف توابع کاربر، بایستی از قوانین زیر پیروی کرد:

  1. قطعه کد تابع باید با کلیدواژه ی def آغاز شود. به دنبال آن اسم تابع و پرانتز درج می شود ( () ).

  2. پارامترهای ورودی یا آرگومان ها باید داخل پرانتز قرار داده شوند.

  3. اولین دستور تابع می تواند یک دستور اختیاری باشد - function_docstring.

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

  5. دستور return اجرای تابع را متوقف کرده نتیجه را برمی گرداند (جمع بندی یک سری عملیات و یا کارهایی رو نمایش می دهد) و در صورت نیاز یک عبارت را به فراخواننده پاس می دهد. دستور return None نیز یعنی هیچ مقداری را به عنوان خروجی برنگرداند.

نحوه ی نگارش (syntax):

def functionname( parameters ):

"function_docstring"

function_suite

return [expression]

پارامترها به ترتیبی که تعریف شده اند، عمل می کنند و بایستی آن ها را به همان ترتیبی که تعریف شده اند، مقداردهی کرد.

 

مثال

تابع زیر یک رشته به عنوان ورودی پذیرفته و آن را چاپ می کند.

def printme( str ):

"This prints a passed string into this function"

print str

return

 

آموزش پایتون : فراخوانی تابع

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

#!/usr/bin/python

# Function definition is here

def printme( str ):

"This prints a passed string into this function"

print str

return;

# Now you can call printme function

printme("I'm first call to user defined function!")

printme("Again second call to the same function")

نتیجه ی زیر حاصل می گردد:

I'm first call to user defined function!

Again second call to the same function

 

ارسال پارامتر با reference در برابر ارسال با مقدار

تمامی پارامترها (آرگومان ها) در زبان پایتون با reference پاس داده می شوند، بدین معنی که اگر آنچه یک پارامتر به آن اشاره دارد را در تابع تغییر دهید، تغییر در تابع فراخواننده نیز منعکس می شود.

#!/usr/bin/python

# Function definition is here

def changeme( mylist ):

"This changes a passed list into this function"

mylist.append([1,2,3,4]);

print "Values inside the function: ", mylist

return

# Now you can call changeme function

mylist = [10,20,30];

changeme( mylist );

print "Values outside the function: ", mylist

در اینجا reference به شی ارسالی حفظ شده و مقادیر جدید را به همان شی الصاق می کنیم. نتیجه:

Values inside the function: [10, 20, 30, [1, 2, 3, 4]]

Values outside the function: [10, 20, 30, [1, 2, 3, 4]]

یک مثال دیگر را در زیر مشاهده می کنید که آرگومان با reference ارسال شده و reference مورد نظر در تابع فراخوانده شده، بازنویسی (overwrite) شده است.

#!/usr/bin/python

# Function definition is here

def changeme( mylist ):

"This changes a passed list into this function"

mylist = [1,2,3,4]; # This would assig new reference in mylist

print "Values inside the function: ", mylist

return

# Now you can call changeme function

mylist = [10,20,30];

changeme( mylist );

print "Values outside the function: ", mylist

پارامتر mylist، نسبت به تابع changeme محلی (local) می باشد. ویرایش پارامتر مزبور در تابع موردنظر هیچ تاثیری بر روی mylist نمی گذارد. درواقع تابع هیچ کار خاصی انجام نمی دهد، نتیجه ای که از آن حاصل می گردد به شرح زیر می باشد:

Values inside the function: [1, 2, 3, 4]

Values outside the function: [10, 20, 30]

 

آرگومان های تابع

می توان یک تابع را به وسیله ی نوع آرگومان های لیست شده در زیر، فراخوانی کنید:

  1. آرگومان های الزامی

  2. آرگومان های Keyword

  3. آرگومان های پیش فرض

  4. آرگومان های با طول متغیر (Variable-length)

 

آرگومان های الزامی

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

#!/usr/bin/python

# Function definition is here

def printme( str ):

"This prints a passed string into this function"

print str

return;

# Now you can call printme function

printme()

 

آرگومان های keyword

آرگومان های keyword در فراخوانی توابع مورد استفاده قرار می گیرد. هنگامی که از آرگومان های keyword در فراخوانی تابع استفاده می کنید، فراخواننده آرگومان ها را به وسیله ی اسم آن (پارامتر) شناسایی می کند. این کار به شما اجازه می دهد ترتیب آرگومان ها را تغییر دهید، زیرا که مفسر پایتون قادر است با استفاده از کلیدواژه ای ارائه شده، مقادیر را به پارامترها match (وصل) کند. می توانید تابع printme() را به ترتیب زیر فراخوانی کنید:

#!/usr/bin/python

# Function definition is here

def printme( str ):

"This prints a passed string into this function"

print str

return;

# Now you can call printme function

printme( str = "My string")

کد بالا پس از اجرا، نتیجه ی زیر را بدست می دهد:

My string

مثال زیر تصویر روشن تری از آن ارائه می دهد. توجه داشته باشید که ترتیب پارامترها اهمیتی ندارد.

#!/usr/bin/python

# Function definition is here

def printinfo( name, age ):

"This prints a passed info into this function"

print "Name: ", name

print "Age ", age

return;

# Now you can call printinfo function

printinfo( age=50, name="miki" )

خروجی:

Name: miki

Age 50

آرگومان پیش فرض آرگومانی است که در صورت مشخص نکردن مقداری در فراخوانی تابع برای آن، به صورت خودکار مقدار پیش فرض می پذیرد. نمونه ی زیر نشان می دهد که مقداری برای آرگومان age (در فراخوانی تابع) تعریف نشده، با این وجود تابع دوم مقدار 50 را برای آن چاپ می کند:

#!/usr/bin/python

# Function definition is here

def printinfo( name, age = 35 ):

"This prints a passed info into this function"

print "Name: ", name

print "Age ", age

return;

# Now you can call printinfo function

printinfo( age=50, name="miki" )

printinfo( name="miki" )

نتیجه:

Name: miki

Age 50

Name: miki

Age 35

 

دوره آموزش پایتون: آرگومان های با طول متغیر (Variable-length arguments)

گاهی لازم است یک تابع را با آرگومان های بیشتری نسبت به آنچه در زمان تعریف تابع مشخص کردید، پردازش و فراخوانی کنید. این دست از آرگومان ها در اصطلاح آرگومان های با طول متغیر (variable length) خوانده می شوند و برخلاف آرگومان های الزامی و پیش فرض، در تعریف تابع ذکر نمی شوند. نحوه ی نگارش:

def functionname([formal_args,] *var_args_tuple ):

"function_docstring"

function_suite

return [expression]

علامت (*) پیش از اسم متغیر (vartuple) که دارنده ی آرگومان های متغیر nonkeyword است، درج می شود. لازم به ذکر است که این tuple، چنانچه به هنگام فراخوانی تابع (function call) هیچ آرگومان اضافی مشخص نشود، تهی باقی می ماند. مثال:

#!/usr/bin/python

# Function definition is here

def printinfo( arg1, *vartuple ):

"This prints a variable passed arguments"

print "Output is: "

print arg1

for var in vartuple:

print var

return;

# Now you can call printinfo function

printinfo( 10 )

printinfo( 70, 60, 50 )

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

Output is:

10

Output is:

70

60

50

 

توابع بی نام (Anonymous functions)

توابعی که به شیوه ی معمول و با درج کلیدواژه ی def تعریف نشده اند، توابع anonymous نام دارند. برای ایجاد توابع anonymous، بایستی از کلیدواژه ی lambda استفاده نمود.

  1. توابعی که به شکل lambda تعریف شده اند، قادراند چندین آرگومان به عنوان ورودی بپذیرند، اما فقط یک مقدار را در قالب عبارت به عنوان خروجی برمی گرداند. همچنین نمی توانند چندین دستور یا عبارت درخود داشته باشند.

  2. یک تابع anonymous نمی تواند به صورت مستقیم برای چاپ (print) فراخوانی شود، زیرا lambda به یک عبارت نیاز دارد.

  3. توابع lambda دارای فضای نامی محلی (local namespace) خود هستند و نمی توانند به متغیرهایی که در لیست پارامتر خود آورده نشده و نیز متغیرهایی که در فضای نامی سراسری هستند، دسترسی داشته باشند.

  4. اگرچه بنظر می رسد که lambda ها، نسخه ی تک خطی از یک تابع هستند، با این وجود معادل دستورات درون برنامه ای (in-line statement) در زبان های C و C++ محسوب نمی شوند که هدف از آن افزایش کارایی تابع به وسیله ی ارسال پشته ی تخصیص تابع هنگام فراخوانی است.

 

ساختار نگارشی

سینتکس توابع lambda همان طور که در نمونه ی زیر مشاهده می کنید، شامل تنها یک خط می باشد:

lambda [arg1 [,arg2,.....argn]]:expression

در زیر نحوه ی عملکرد تابعی که به صورت lambda تعریف شده باشد، را مشاهده می کنید:

#!/usr/bin/python

# Function definition is here

sum = lambda arg1, arg2: arg1 + arg2;

# Now you can call sum as a function

print "Value of total : ", sum( 10, 20 )

print "Value of total : ", sum( 20, 20 )

نتیجه:

Value of total : 30

Value of total : 40

 

دستور return

دستور [expression] return عملیات تابع را به پایان می رساند و خروجی آن را برمی گرداند و در صورت لزوم یک عبارت را به فراخواننده ارسال می نماید. دستور return ای که جلوی آن هیچ آرگومانی درج نشده باشد برابر با return none می باشد. مثال های بالا هیچ مقداری را برنمی گردانند. مثال زیر یک مقدار را از تابع به صورت زیر برمی گرداند:

#!/usr/bin/python

# Function definition is here

def sum( arg1, arg2 ):

# Add both the parameters and return them."

total = arg1 + arg2

print "Inside the function : ", total

return total;

# Now you can call sum function

total = sum( 10, 20 );

print "Outside the function : ", total

نتیجه ی آن را در زیر مشاهده می کنید:

Inside the function : 30

Outside the function : 30

 

حوزه ی دسترسی متغیر (variable scope)

امکان دسترسی به تمامی متغیرهایی که در مکان های مختلف یک برنامه قرار دارند، وجود ندارد. قابلیت دسترسی به یک متغیر درواقع به مکان تعریف متغیر بستگی دارد. حوزه ی دسترسی یا scope تعیین می کند که در چه قسمت هایی از برنامه می توانید به شناسه ی مورد نظر دسترسی داشته باشید. در کل دو نوع حوزه ی دسترسی در پایتون وجود دارد:

  1. متغیرهای سراسری (global)

  2. متغیرهای محلی (local)

 

مقایسه ی متغیر سراسری با محلی

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

#!/usr/bin/python

total = 0; # This is global variable.

# Function definition is here

def sum( arg1, arg2 ):

# Add both the parameters and return them."

total = arg1 + arg2; # Here total is local variable.

print "Inside the function local total : ", total

return total;

# Now you can call sum function

sum( 10, 20 );

print "Outside the function global total : ", total

نتیجه:

Inside the function local total : 30

Outside the function global total : 0

آموزش پایتون ادامه دارد

  • افشین رفوآ
  • ۰
  • ۰
به بخش جدید آموزش سی شارپ خوش آمدید.

 

آموزش ساختار دستوری if در C# :
یکی از مهم ترین ساختارهای دستوری در هر زبان برنامه نویسی از جمله C#، دستور if است. توانایی ساخت دستورات شرطی کلی از مهم ترین کارهایی است که بایستی بتوان با زبان ها ی برنامه نویسی انجام داد. در C#، ساختار شرطی if بسیار ساده و کاربردی است. اگر از ساختار دستوری شرطی if در هر زبان برنامه نویسی دیگری استفاده کرده باشید، به راحتی می توانید در C# نیز از آن بهره بگیرید. ساختار دستور شرطی if نیاز مند یک مقدار boolean است که یا true است یا false. در برخی از زبان های برنامه نویسی، چندین نوع داده ای را می توان به صورت اتوماتیک به Boolean تبدیل کرد، اما در C# باید مستقیما از نوع داده ای Boolean استفاده کنید. برای مثال نمی توانید از نوع داده ای عددی int به صورت مستقیم استفاده کنید، اما می توانید آن را با یک مقدار دیگر قیاس کرده و مقدار true یا false نتیجه را مورد استفاده قرار دهید. در درس قبلی، به آموزش نحوه تعریف و استفاده از متغیرها (Variables) در زبان C# پرداختیم. در این درس هم به آموزش نحوه کار با دستورات شرطی در C# می پردازیم. برای این منظور کد مثال زیر را با دقت مطالعه کنید :
using System;
 
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
int number;
 
Console.WriteLine("Please enter a number between 0 and 10:");
number = int.Parse(Console.ReadLine());
 
if(number > 10)
Console.WriteLine("Hey! The number should be 10 or less!");
else
if(number < 0)
Console.WriteLine("Hey! The number should be 0 or more!");
else
Console.WriteLine("Good job!");
 
Console.ReadLine();
}
}
}
آموزش سی شارپ : در کد مثال فوق از دو دستور شرطی if استفاده کرده ایم تا چک کنیم آیا عدد ورودی توسط کاربر، بین 0 تا 10 است یا خیر. به همراه دستور if از کلید واژه else نیز استفاده شده است. قسمت کد else زمانی اجرا می شود که شرط بخش if درست نباشد. اگر در کد مثال فوق دقت کرده باشید، ما از کاراکترهای {} برای دسته بندی دستورات if و else ها استفاده نکرده ایم.. این یک قانون در C# است. اگر کد نوشته شده فقط در حد یک متن خطی باشد، نیازی به استفاده از {} برای دسته بندی کدها نیست.
حجم کد نوشته شده برای مقایسه مقدار یک عدد در مثال فوق کمی زیاد به نظر می رسد. همان کد را می توانید به صورت زیر، خلاصه تر بنویسید :
if((number > 10) || (number < 0))
Console.WriteLine("Hey! The number should be 0 or more and 10 or less!");
else
Console.WriteLine("Good job!");
ما هر یک از دستورات شرطی را درون یک پرانتز قرار داده و سپس از عملگر ǁ که به معنلی "یا"، "or" می باشد، استفاده کرده ایم تا چک کنیم عدد واردشده از 10 بزرگتر یا کوچکتر از 0 است. عملگر دیگری که در این گونه موارد نیز می توانید استفاده کنید عملگر AND به معنای "و" است که به صورت && نوشته می شود. آیا می توانیم در کد مثال دوم از عملگر AND به جای or استفاده کنیم؟. بله، فقط کافی است کد را به صورت زیر بازنویسی کنیم :
if((number <= 10) && (number >= 0))
Console.WriteLine("Good job!");
else
Console.WriteLine("Hey! The number should be 0 or more and 10 or less!");
در این درس عملگرهای "کوچکتر از" و "بزرگتر از" را نیز معرفی کردیم.

 

آموزش سی شارپ : آموزش کار با دستور Switch در C#
دستور Switch همانند مجموعه ای از دستورات پشت سر هم if عمل می کند. دستور Switch درواقع لیستی از حالت های ممکن است که برای هر حالت یک دستور یا کدی جهت اجرا پیش بینی شده است. این دستور همچنین یک حالت default یا پیش فرضی دارد که در صورتی که هیچ یک از حالات آن true نباشد، اجرا خواهد شد. یک دستور ساده Switch ساختاری هماند کد مثال زیر دارد :
int number = 1; switch(number) { case 0: Console.WriteLine("The number is zero!"); break; case 1: Console.WriteLine("The number is one!"); break; }
مقدار شناسه یا identifier (مقدار متغیری که می خواهیم دستور Switch بر حسب آن عمل کند) را پس از واژه کلیدی Switch قرار می دهیم. سپس لیستی از انواع حالت های مختلف برای آن مقدار توسط هر دستور case مشخص شده و مقدار شناسه با مقدار هر case مقایسه می شود. اگر مقدار شناسه با مقدار هر کدام برابر نبود، دستورات بخش پیش فرض default اجرا می شود. اگر دقت کرده باشید، در پایان هر case یک دستور break قرار داده شده است. برای چیست؟ اگر مقدار یک case با مقدار شناسه دستور Switch برابر شود، دستورات آن case اجرا شده و اگر در انتهای case دستور break وجود نداشته باشد، دستورات case های بعدی نیز اجرا خواهد شد. به عبارت دیگر، دستور break ، باعث توقف روند اجرای دستورات Switch شده و برنامه به خط کد بعد از Switch می فرستد. در نوشتن break دقت لازم به عمل آورید، ؟؟؟؟؟ نوشتن آن می تواند کلا برنامه را دچار اختلال کنید. هنگامی که هم یک تابع را در دستورات یک case تعیین می کنید، می توانید با استفاده از return خروجی تابع را به عنوان خروجی Switch برگردانید. در کد مثال، ما از یک متغیر عددی integer به عنوان شناسه دستور Switch استفاده کرده ایم، اما این شناسه می تواند از نوع متنی String و یا هر نوع داده ای دیگر زبان C# باشد. در مثال زیر، ابتدا یک مقدار را به عنوان ورودی از کار برگررفته ایم، سپس آن را به عنوان یک متغیر متنی String به دستور Switch ارسال نموده ایم. در کد مثال زیر، برای هر دو مقدار “yes” و “Maybe” یک دستور مشترک را تعیین کرده ایم.
Console.WriteLine("Do you enjoy C# ? (yes/no/maybe)");
string input = Console.ReadLine();
switch(input.ToLower())
{
case "yes":
case "maybe":
Console.WriteLine("Great!");
break;
case "no":
Console.WriteLine("Too bad!");
break;
}
در کد مثال فوق، سوالی از کاربر پرسیده شده و از وی خواسته شد یکی از مقادیر “yes”، “no” و “maybe” را وارد نماید. سپس مقدار وارد شده از ورودی توسط دستور Consale.ReadLine() خوانده شده و یک دستور Switch بر مبنای آن طراحی شده است. برای سهولت کار کاربر، توسط دستور ToLower() ، کاراکترهای ورودی کاربر را به حروف کوچک تبدیل کرده ایم تا در هنگام مقایسه با مقادیر Case ها، فرقی بین مقدار وارد شده برای حروف بزرگ و کوچک وجود نداشته باشد. اما بدون وجود دستور default در Switch، اگر کاربر در مثال فوق مقداری غیر از مقادیر تعیین شده برای case ها وارد نماید، برنامه هیچ خروجی نخواهد داشت. بنابراین کد مثال فوق را به همراه default به صورت زیر بازنویسی می کنیم :
Console.WriteLine("Do you enjoy C# ? (yes/no/maybe)");
string input = Console.ReadLine();
switch(input.ToLower())
{
case "yes":
case "maybe":
Console.WriteLine("Great!");
break;
case "no":
Console.WriteLine("Too bad!");
break;
default:
Console.WriteLine("I'm sorry, I don't understand that!");
break;
}
اگر کاربر مقداری به غیر از مقادیر تعیین شده برای case ها وارد نماید، بخش default به صورت پیش فرض اجرا خواهد شد.
آموزش سی شارپ ادامه دارد
  • افشین رفوآ
  • ۰
  • ۰
سلام با آموزش Bootstrap 4 از دوره آموزش طراحی سایت در خدمت شما هستیم
کامپوننت Popover بسیار شبیه کادر راهنما tooltip است که در درس قبل به آموزش آن پرداختیم. Popover یک کادر ظاهر شونده pop up است که در هنگام کلیک کاربر بر روی یک المنت، ظاهر می شود. با tooltip دو فرق عمده دارد : یکی این که با کلیک بر روی المنت فعال می شود ؟؟؟؟ عبور موس از روی آن و دوم این که می تواند حاوی محتویات بیشتری باشد.
در عکس زیر، دو نمونه کادر محاوره Popover را نشان داده ایم :
 

 

آموزش نحوه ایجاد کادر Popover در بوت استرپ 4:
برای ایجاد یک کادر Popover در بوت استرپ 4، خاصیت data-toggle=” Popover” را به المنت مورد نظر بدهید.
سپس از خاصیت title برای تعیین متن هدر (Header) کادر Popover استفاده کرده و به وسیله خاصیت data-content، متن ی که می خواهید درون بدنه (body) آن نمایش داده شود را تعیین نمایید.
مثال: در کد مثال عملی، توسط یک تگ a یک کادر محاوره ای Popover را ایجاد کرده ایم :
<a href="#" data-toggle="popover" title="Popover Header"
data-content="Some content inside the popover">Toggle popover</a>
نکته :
برای اجرای درست کادر محاوره ای Popover بایستی آن را توسط jQuery در صفحه لود اولیه بکنید. برای این منظور بایستی از متد Popover() استفاده کرده و کد زیر را درون صفحه قرار دهید :

 

مثال 1
<div class="container">
<h3>Popover Example</h3>
<a href="#" data-toggle="popover" title="Popover Header" data-content="Some content inside the popover">Toggle popover</a>
</div>
 
<script>
$(document).ready(function(){
$('[data-toggle="popover"]').popover();
});
</script>

 

تعیین جهت باز شدن منوی محاوره ای Popover در آموزش طراحی سایت:
به صورت پیش فرض، کادر محاوره ای در سمت راست المنت باز می شود.
اما به وسیله خاصیت data-placement می توانید جهت باز شدن آن را به بالا (top)، راست (right)، زیر (buttom) و چپ (left) تغییر دهید، همانند کد مثال عملی زیر :

 

مثال 2
<a href="#" title="Header" data-toggle="popover" data-placement="top" data-content="Content">Click</a>
<a href="#" title="Header" data-toggle="popover" data-placement="bottom" data-content="Content">Click</a>
<a href="#" title="Header" data-toggle="popover" data-placement="left" data-content="Content">Click</a>
<a href="#" title="Header" data-toggle="popover" data-placement="right" data-content="Content">Click</a>
نکته :
اگر فضای کافی برای باز شدن کادر Popover وجود نداشته باشد خاصیت Placement آن به درستی کار نخواهد کرد. برای مثال، اگر المنت Popover در بالاترین نقطه صفحه باشد و خاصیت placement روی مقدار بالا (top) تنظیم شده باشد، برنامه کادر را در پایین المنت و سمت راست آن (هر جایی که فضا برایش فراهم باشد)، باز خواهد کرد.

 

آموزش ایجاد کادر Popover با قابلیت بسته شدن :
به صورت پیش فرض، المنت Popover در هنگام کلیک مجدد بر روی آن، بسته می شود. اما می توانید با تنظیم خاصیت data-trigger آن روی مقدار focus، کاری کنید با کلیک در ناحیه ای خارج از المنت، کادر بسته شود. همانند مثال عملی زیر :

 

مثال 3
<a href="#" title="Dismissible popover" data-toggle="popover" data-trigger="focus" data-content="Click anywhere in the document to close this popover">Click me</a>
نکته :
اگر می خواهید کادر Popover با عبور موس بر روی المنت ظاهر شود، بایستی خاصیت data-trigger آن را بر روی hover قرار دهید، همانند کد مثال عملی زیر :

 

مثال 4
<a href="#" title="Header" data-toggle="popover" data-trigger="hover" data-content="Some content">Hover over me</a>
 

 

آموزش کار با Toast در Bootstrap 4
کامپوننت Toast همانند یک کادر اخطار alert box است با این تفاوت که فقط برای چند ثانیه و در کنار المنت موردنظر نمایش داده می شود. این کامپوننت در هنگام بروز یک رویداد، مثلا کلیک کاربر بر روی یک دکمه، ارسال یک فرم و ... ظاهر و فعال می شود.

 

آموزش ایجاد یک Toast در بوت استرپ 4:
برای ایجاد کادر محاوره ای Toast، از یک المنت با کلاس toast، یک المنت با کلاس toast-header جهت تعیین عنوان یا هدر آن و یک المنت toast-body جهت تعیین محتوا و body آن، استفاده نمایید. همانند کد مثال عملی زیر :
<div class="toast">
<div class="toast-header">
Toast Header
</div>
<div class="toast-body">
Some text inside the toast body
</div>
</div>
نکته :
برای اجرای صحیح، کادر toast بایستی از قبل توسط jQuery در صفحه مقداردهی اولیه شود. برای این منظور از متد toast() به صورت زیر، استفاده می شود. قطعه کد jQuery زیر را بایستی درون صفحه قرار دهید :
کد زیر برای اجرای اولیه tooltip در Bootstrap 4 توسط jQuery بایستی به صفحه اضافه شود :
<script>
$(document).ready(function(){
$('.toast').toast('show');
});
</script>
مثال 1
<button type="button" class="btn btn-primary" id="myBtn">Show Toast</button>
 
<div class="toast">
<div class="toast-header">
Toast Header
</div>
<div class="toast-body">
Some text inside the toast body
</div>
</div>

 

آموزش ظاهر و مخفی کردن کادر Toast در بوت استرپ 4:
المنت های Toasts به صورت پیش فرض، مخفی هستند. اگر مقدار خاصیت data-antohide را بر روی faile تنظیم کنید، به صورت پیش فرض نمایش داده خواهد شد. برای بسته شدن المنت Toast نیز از یک دکمه button با خاصیت data-dismiss برابر با toast استفاده نمایید، همانند کد مثال عملی زیر :

 

مثال 2
<div class="toast" data-autohide="false">
<div class="toast-header">
<strong class="mr-auto text-primary">Toast Header</strong>
<small class="text-muted">5 mins ago</small>
<button type="button" class="ml-2 mb-1 close" data-dismiss="toast">×</button>
</div>
<div class="toast-body">
Some text inside the toast body
</div>
</div>
راهنمایی :
همانطور که در کد مثال عملی فوق مشاهده کردید، از کلاس mr-auto، ml-2 و mb-1 استفاده شده است. این کلاس ها مارجین های متفاوتی را به المنت اعمال می کنند. در بخش آموزش کلاس های کاربردی Bootstrap 4 utilities به تشریح و آموزش کامل آن ها پرداخته شده است.
 
 
 
آموزش طراحی سایت ادامه دارد
  • افشین رفوآ
  • ۰
  • ۰
سلام عزیزان در این سری آموزشها با پایگاه داده Sql Server آشنا میشوید.

 

دستور INSERT INTO در آموزش SQL SERVER
دستور INSERT INTO برای وارد کردن record جدید به جدول استفاده می شود .
فرم دستور INSERT INTO :
می توان دستور INSERT INTO را به دو صورت نوشت:
در فرم اول نام ستونهایی که اطلاعات در آن درج خواهد شد مشخص نمی گردد و تنها مقادیر مشخص می شوند.
INSERT INTO table_name
VALUES (value1,value2,value3,...);
در فرم دوم هم نام ستون و هم مقادیری که در آن درج خواهد شد مشخص می گردد.
INSERT INTO table_name (column1,column2,column3,...)
VALUES (value1,value2,value3,...);

 

نحوه استفاده از INSERT INTO در پایگاه داده
در این آموزش از نمونه پایگاه داده مشهور Northwind استفاده خواهیم کرد.
جدول زیر از میان جدول "Customers" انتخاب شده است:
نحوه استفاده از INSERT INTO در پایگاه داده

 

مثال استفاده از دستور INSERT INTO
فرض کنید می خواهیم تا سطر جدیدی را به جدول "Customers" اضافه کنیم.
از عبارت SQL زیر استفاده می کنیم:
INSERT INTO Customers (CustomerName, ContactName, Address, City, PostalCode, Country)
VALUES ('Cardinal','Tom B. Erichsen','Skagen 21','Stavanger','4006','Norway');
جدول"Customers" به شکل زیر خواهد شد:
 
آیا متوجه شدید که شماره ای در ستون Customer ID وارد نکردیم؟
هر ستون Customer ID با وارد کردن یک record جدید بصورت خودکار با یک شماره منحصر به فرد و غیر تکراری به روزرسانی خواهد شد.
داده ها را تنها در ستون های مشخص وارد کنید
می توان تنها داده ها را به ستون های مشخصی اضافه کرد.
عبارت SQL زیر سطر جدیدی را اضافه می کند اما تنها داده ها را به ستون های "Customer Name"، "City" و "Country" وارد می کند (ستون Customer ID نیز به صورت خودکار به روز رسانی خواهد شد):
INSERT INTO Customers (CustomerName, City, Country)
VALUES ('Cardinal', 'Stavanger', 'Norway');
جدول "Customers" به شکل زیر در خواهد آمد:
 
 

 

دستور UPDATE در آموزش SQL SERVER
دستور UPDATE برای به روز رسانی record ها در جدول استفاده می شود.
دستور UPDATE برای به روز رسانی record های موجود در یک جدول استفاده می شود.

 

فرم دستور UPDATE
UPDATE table_name
SET column1=value1,column2=value2,...
WHERE some_column=some_val
نکته:
به عبارت WHERE در دستور UPDATE توجه کنید!
عبارت WHERE مشخص می کند کدام record یا record ها باید بروزرسانی شوند. اگر شما عبارت WHERE را حذف کنید، تمام record ها بروزرسانی می شوند.
نحوه استفاده از دستور UPDATE در پایگاه داده در این آموزش از نمونه پایگاه داده مشهور Northwind استفاده خواهیم کرد.
جدول زیر از میان جدول "Customers" انتخاب شده است:
 
مثال استفاده از دستور UPDATE
فرض کنید می خواهیم ستون های "Contact Person" و "City" از مشتری به نام "Alfreds Futterkiste" را با اطلاعات جدیدی بروز رسانی کنیم.
برای اینکار از عبارت SQL زیر استفاده می کنیم:
UPDATE Customers
SET ContactName='Alfred Schmidt', City='Hamburg'
WHERE CustomerName='Alfreds Futterkiste';
جدول "Customers" به شکل زیر خواهد شد:
جدول "Customers" به شکل زیر خواهد شد:
UPDATE Customers
SET ContactName='Alfred Schmidt', City='Hamburg'
WHERE CustomerName='Alfreds Futterkiste';
هشدار در مورد دستور UPDATE
هنگام UPDATE کردن record ها دقت کنید. اگر عبارت WHERE را در مثال بالا حذف کرده بودیم مانند آنچه در زیر می بینید:
UPDATE Customers
SET ContactName='Alfred Schmidt', City='Hamburg';
جدول "Customers" به شکل زیر می شد:
 
 
آموزش SQL SERVER ادامه دارد
  • افشین رفوآ
  • ۰
  • ۰
به بخش جدید آموزش سی شارپ خوش آمدید.

 

آموزش انواع داده ای Data Types در C#
انواع داده ای یا Data Types در تمامی قسمت های یک زبان برنامه نویسی مثل C# استفاده می شود. به دلیل این که زبان C#، یک زبان قدرتمند داده ای است، بایستی هر زمان که یک متغیر را تعریف و استفاده می کنید، به کامپایلر اطلاع دهید آن متغیر از چه نوع داده ای است. به نحوه و تعیین نوع داده ای یک متغیر به طور کامل در بخش متغیرها (Variable) خواهیم پرداخت. در این درس به طور کلی به بررسی انواع داده ای مهم زبان C# و نحوه کارکرد آن ها می پردازیم. نوع داده ای bool ساده ترین Data Type زبان C# است. این نوع داده ای که به نوع درست یا غلط نیز معروف است، فقط دو نوع مقدار می تواند داشته باشد، true یا false. متغیر bool در هنگام استفاده از عملگرهای منطقی و یا دستورات شرطی مثل if بسیار کاربرد دارد. انواع داده ای int نیز که مخفف کلمه integer است، برای نگهداری اعداد بدون بخش اعشاری آن ها به کار می رود. نوع داده ای int پرکاربردترین متغیر در هنگام کار با اعداد در C# است. متغیرهای integer، بر حسب اندازه عددی که می توانند نگهداری کنند، دارای انواع مختلفی در زبان C# می باشند. نوع داده ای String نیز برای نگهداری متن یا text به کار می رود که عبارت است از تعدادی کاراکتر پشت سر هم. در C#، متغیرهای String از نوع immutable یا تغییرناپذیر هستند، به این معنی که متغیرهای String، پس از تعریف و مقداردهی هرگز تغییر نمی کنند. هنگام کار با متدهایی که یک متغیر String را دستکاری و تغییر می دهند، متغیر String اول تغییر نمی کند، بلکه یک متغیر جدید با مقدار جدید ایجاد می شود. متغیر char نیز برای نگهداری یک کاراکتر تنها به کار می رود.
راهنمایی :
متغیر float نیز برای نگهداری اعداد اعشاری استفاده می شود.

 

تعریف و مقداردهی متغیرها Variable در آموزش سی شارپ
یک متغیر یا Variable بخشی از حافظه سیستم است که همانند یک اتاق برای نگهداری اطلاعات خاصی به کار می رود. متغیرها اساس کار برنامه های C# بوده و به صورت زیر، قابل تعریف هستند :
< data type >   < name > ;
به عنوان مثال در کد زیر یک متغیر از نوع String به نام name را تعریف کرده ایم :
String name;
در کد فوق ، نوع داده ای متغیر و نام آن را تعیین می کند. حالت فوق، ساده ترین حالت تعریف یک متغیر است. اما ممکن است شما بخواهید میدان دید یا Visibility خاصی را برای متغیر خود تعیین کرده و در هنگام تعریف، آن را متد دهی نیز کنید. این کار بایستی به صورت زیر انجام شود :
< visibility >   < data type >   < name >   = < value > ;
در نمونه فوق < visibility > میدان دید متغیر را تعیین می کند. یعنی می گویند چه توابع، کلاس ها و یا متغیرهای دیگری در سطح برنامه می توانند این متغیر را ببینند، فراخوانی و دستکاری کنند. نیز که مقدار اولیه متغیر را مشخص می کند. کد زیر یک مثال را برای تعریف کامل متغیر در C# نشان می دهد :
Private String name = “ Tahlil Dadeh ” ;
در کد مثال زیر، نحوه تعریف، مقداردهی و کار با چند متغیر در زبان C# را در عمل نشان داده ایم :
using System;
 
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
string firstName = "John";
string lastName = "Doe";
 
Console.WriteLine("Name: " + firstName + " " + lastName);
 
Console.WriteLine("Please enter a new first name:");
firstName = Console.ReadLine();
 
Console.WriteLine("New name: " + firstName + " " + lastName);
 
Console.ReadLine();
}
}
}
بسیار خب، بخش زیادی از کد مثال فوق را قبلا توضیح داده ایم، بنابراین در این مرحله مستقیم به سراغ بخش مورد نظرمان می رویم. اول از همه، ما چندین متغیر از نوع String Type را تعریف کرده ایم. یک String می تواند شامل متن یا Text باشد و همانطور که در کد مثال می بینید، هر متغیر String را بلافاصله مقدار دهی کرده ایم. سپس یک خط متن را به وسیله دو متغیر بر روی خروجی Consale نشان داده ایم. از کاراکتر (+) برای چسباندن متن دو متغیر String و نمایش آن ها به صورت یک جمله استفاده شده است. در مرحله بعدی، از کاربر خواسته ایم تا یک مقدار جدید را برای متغیر firstName وارد کند. برای این منظور از دستور ReadLine() استفاده شده که یک مقدار ورودی را از کاربر دریافت کرده و درون متغیر firstName قرار می دهد. پس از این که کاربر نام مورد نظر خود را وارد کند، مقدار جدید در متغیر firstName وارد شده و سپس مجددا به وسیله دستور Consale.WriteLine()، جمله را با نام جدید به کاربر نشان داده ایم. در کد فوق ما فقط از یک متغیر استفاده کرده ایم و این کد به خوبی مهم ترین قابلیت یک متغیر یعنی تغییر در هنگام اجرای برنامه (Run Time) را نشان می دهد.
مثال بعدی برای نشان دادن کار متغیرها، انجام عملیات ریاضی است. کد زیر نحوه اتجام کار را نشان می دهد :
int number1, number2;
 
Console.WriteLine("Please enter a number:");
number1 = int.Parse(Console.ReadLine());
 
Console.WriteLine("Thank you. One more:");
number2 = int.Parse(Console.ReadLine());
 
Console.WriteLine("Adding the two numbers: " + (number1 + number2));
 
Console.ReadLine();
کد فوق را در تابع Main مثال قبل قرار داده و برنامه را مجددا اجرا کنید. تنها حقه به کار رفته در مثال دوم، استفاده از متد int.Parse() است. این متد یک مقدار متنی String را خوانده و آن را به یک متغیر عددی integer تبدیل می کند. همانطور که مشاهده می کنید، در کد مثال دوم برنامه هیچ تلاشی برای اعتبارسنجی (validate) مقدار ورودی کاربر انجام نداده و اگر کاربر یک مقدار رشته ای (متن) را وارد کرده و دکمه Enter را بزند، برنامه با اشکال رو به رو خواهد شد، زیرا عمل ریاضی را بر روی متن نمی تواند انجام دهد. برای حل این مشکل در درس های بعد بیشتر توضیح می دهیم.
آموزش سی شارپ ادامه دارد
 
  • افشین رفوآ