بالا
لامپ رشد گیاه

 دانلود نمونه سوالات کارشناسی ارشد پیام نور با پاسخنامه

 دانلود نمونه سوالات فراگیر پیام نور

 فروشگاه پایان نامه و مقاله


 تایپ متن و مقاله و پایان نامه





 دانلود نمونه سوالات نیمسال دوم 93-94 پیام نور

 دانلود نمونه سوالات آزمونهای مختلف فراگیر پیام نور

صفحه 3 از 5 اولیناولین 12345 آخرینآخرین
نمایش نتایج: از شماره 21 تا 30 از مجموع 45

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

  1. #21
    Borna66 آواتار ها
    • 55,397
    مدير بازنشسته

    عنوان کاربری
    مدير بازنشسته
    تاریخ عضویت
    Mar 2009
    محل تحصیل
    خيام-سهراب
    شغل , تخصص
    طراح و تحلیل گر حرفه ای وب
    رشته تحصیلی
    مهندسي نرم افزار
    راه های ارتباطی
    پست های وبلاگ
    29

    پیش فرض

    زبان Tcl (مخفف Tool Control Language - زبان کنترل ابزار) :

    زبان Tcl (مخفف Tool Control Language - زبان کنترل ابزار) حاصل تحقیقات John Ousterhout روی ابزارهای رایانه­ ای طراحی مدارهای الکتریکی در دانشگاه برکلی است.

    در این تحقیقات، Ousterhout و دانشجویانش مجبور بودند برای هریک از این ابزارها یک زبان کنترل جداگانه طراحی کنند، اما به دلیل توجه بیشتر به خود ابزار (و نه زبان)، ابزارها عموما دارای زبان­های کنترل ضعیفی بودند.

    در پاییز سال ۱۹۸۷، در آزمایشگاه شرکت DEC، این ایده به ذهن Ousterhout رسید که یک زبان فرمان قابل جاسازی(Emdeddable Command Language) طراحی کند. یک زبان مفسری (Interpreted) خوب که بتواند به عنوان یک بسته کتابخانه ای در برنامه ­های گوناگون استفاده شود. هدف این بود که مفسر زبان مجموعه ای از امکانات اولیه را (مانند متغیرها و ساختارهای کنترلی) فراهم آورد و هر یک از ابزارهای استفاده کننده از آن بتوانند ویژگی­های مورد نظر خود را به آن اضافه کنند.

    Ousterhout در سال ۱۹۸۸ پس از بازگشت از آزمایشگاه DEC، کار بر روی Tcl را شروع کرد و نخستین نسخه آن را در یک متن پرداز (Text Editor) گرافیکی به کار گرفت. در ابتدا این کار فقط جنبه تحقیقاتی داشت و Ousterhout گمان نمی­کرد دیگران هم به استقاده از آن علاقه مند باشند.

    فلسفه زبان

    نیاز به امکان جاسازی (Embeddability) قابلیت ویژه زبان Tcl است و به گفته Ousterhout باعث می­شود که اهداف زیر برای زبان در نظر گرفته شود:

    ۱.زبان باید گسترش پذیر(extensible) باشد: افزودن امکانات جدید به زبان توسط سایر افراد باید به آسانی امکان پذیر باشد و امکانات اضافه شده باید چنان باشند که انگار جزئی از خود زبان هستند(طبیعی باشند، نه این که با استفاده از اعمال پیچیده­ای به مقصود برسند).

    ۲.زبان باید ساده و عمومی باشد، تا بتواند به آسانی با برنامه­های گوناگون کار کند و امکاناتی را که این برنامه­ها می­توانند به زبان اضافه کنند محدود نکند.

    ۳.زبان باید امکانات خوبی برای ادغام داشته باشد، زیرا امکانات مهم­تر زبان آن­هایی است که توسط برنامه استفاده کننده به زبان افزوده شده است و کار اصلی زبان ادغام (integration) و پیوند دادن آن­ها با یکدیگر است.

    نوآوری ها

    مهم­ترین نوآوری­های Tcl عبارتند از قابلیت جاسازی و آسانی تولید واسط کاربر گرافیکی. با ایجاد قابلیت جاسازی، مشکل بسیاری از افرادی که نیاز به یک زبان دارند، اما نمی­خواهند یک زبان کامل را از ابتدا طراحی کنند حل شده است. به دلیل آسانی جاسازی Tcl در سایر برنامه­ ها، استفاده از آن در اوایل دهه ۹۰ به سرعت رشد کرد.

    قابلیت دیگر Tcl، مجموعه ابزار Tk است که به عنوان گسترشی بر Tcl تولید شد و امکان ایجاد واسط کاربر گرافیکی با استفاده از ادغام مؤلفه(component)ها را به وسیله Tcl فراهم آورد. این قابلیت نیز به امکان استفاده از Tcl برای تولید برنامه­ های بزرگ­تر و با واسط کاربر مناسب افزود و در کسترش استفاده از آن سهم به سزایی داشت.

    کاربردها


    برخی از کاربردهای Tcl به شرح زیر است

    کاربردهای وب : از آن­جا که Tcl یک زبان رشته-محور است برای برنامه­ های وبی مفید است. از نمونه برنامه­ های وبی استفاده کننده از Tcl می­توان به AOLserver و TclHttpd اشاره کرد. به علاوه کتابخانه­ های CGI برای Tcl موجود است که امکان استفاده از آن به عنوان یک زبان برنامه­ نویسی وب را فراهم می­کند.

    برنامه­ های با واسط کاربر گرافیکی (GUI Desktop Applications): ابزار Tk برای ایجاد برنامه­ های گرافیکی بسیار قدرتمند است. به علاوه این ابزار چند-سکویی (multi-platform) است و بر روی [[لینوکس|Windows , [[Linux و Mac OS X قابل استفاده و اجراست.

    آزمایش و خودکارسازی : Tcl خود دارای یک چارچوب تست به نام tcltest است. به علاوه شرکت­هایی مانند Oracle, Sybase و Cisco میلیون­ها خط کد Tcl برای تست محصولات خود دارند.

    پایگاه­های داده: Tcl دارای گسترش­هایی برای کار با پایگاه­های داده گوناگون مانند MySQL, Sybase, PostgreSQL, Oracle و Berkeley DB می­باشد. هم­چنین بسته­های wrapper ای وجود دارند که یک واسط واحد برای چند نوع پایگاه داده فراهم می­کنند.

    توسعه نهفته (Embedded Development) : استفاده از Tcl به علت قابلیت ادغام بالای آن، هم در محصولات سخت­افزاری مانند محصولات Cisco و هم در محصولات نرم­ افزاری مانند نرم­ افزارهای طراحی به کمک رایانه (CAD) و خودکارسازی طراحی الکترونیکی (EDA) رایج است. ابزار شبیه سازی Modelsim یکی از ابزارهایی است که با زبان Tcl کار می­کند.

    علاوه بر کابردهای فوق، کاربردهای دیگر تحقیقاتی از Tcl نیز مشاهده شده است. به عنوان مثال در سیستم­های رباتیک از زبان Tcl استفاده شده است. هم­چنین این زبان در توسعه سریع نرم­ افزار (Rapid Application Development) نیز استفاده شده است

    بررسی زبان شناختی(ساختار و نحو زبان)

    برنامه­ های Tcl تشکیل شده­ اند از دستورهایی که با semicolon یا با رفتن به خط جدید (newline) از هم جدا شده­ اند. هر دستور از تعدادی کلمه تشکیل شده­ است که با فاصله از هم جدا شده اند. همهٔ دستورات Tcl مقدار برمی­گردانند. اگر برگرداندن مقدار برای دستوری معنا نداشته باشد، یک رشته­ ی تهی برمی­گرداند.

    متغیرها

    در Tcl نیازی به تعریف متغیر نیست. هر متغیری در اولین دفعه استفاده آن، تعریف می­شود. هم­چنین متغیرها در Tcl دارای نوع نیستند. هر متغیری می تواند هر مقداری بگیرد. البته می­توان با استفاده از دستور variable اقدام به تعریف متغیر در یک namespace کرد . با استفاده از دستور set می توان مقادیر را در متغیر ها ذخیره و از آنها بازیابی نمود. برای ذخیره :

    کد:
    کد:
    set x ۳۲ </souce>   برای خواندن مقدار : <source lang="tcl"> set x
    برای استفاده از مقادیر یک متغیر از روش «جایگذاری متغیر» به شکل زیر استفاده می­شود:
    کد:
    کد:
    expr $x+۳
    این دستور مقدار x+۳ را برمی­گرداند. هنگامی که یک علامت دلار در عبارت ظاهر می­شود، Tcl حروف و اعداد پس از آن را به عنوان نام متغیر تعبیر می کند و مقدار آن متغیر را به جای نام آن می­گذارد

    جایگذاری متغیر را می­توان برای همه کلمه­های یک دستور Tcl، مستقل از این که آن کلمه یک نام دستور و یا یک آرگومان است، به کار برد. مثلا عبارات زیر معادل عبارات قبلی است :
    کد:
    کد:
    set a expr set x ۳۲ $a $x+۳
    ساختارهای کنترلی

    Tcl مجموعه کاملی از دستورات کنترلی شامل دستورات اجرای شرطی، دستورات حلقه و دستورات زیربرنامه­ ای را دارد. دستورهای کنترلی Tcl دستوراتی عادی هستند که به عنوان آرگومان، اسکریپت­های Tcl می­گیرند[۱].به عنوان مثال دستور proc که برای تعریف زیربرنامه به کار می­رود، سه آرگومان می­گیرد : نام زیربرنامه، لیست نام پارامترهای آن، و بدنه زیربرنامه که یک اسکریپت Tcl است:
    کد:
    کد:
    proc power {base p} {     set result 1     while {$p > ۰} {         set result [expr $result   $base]         set p [expr $p - ۱]     }     return $result }
    مشابها دستور while که در بالا مشاهده می­شود، یک دستور Tcl است که دو آرگومان می­گیرد : یک عبارت که همان عبارت شرط است و یک بدنه که یک اسکریپت Tcl است.

    از این زیربرنامه می­توان به شکل زیر استفاده کرد :

    کد:
    کد:
    power 2 6 power ۱٫۱۵ ۵




    فروشگاه نمونه سوالات پیام نور با پاسخنامه تستی و تشریحی



    دانلود رایگان نمونه سوالات دانشگاه پیام نور





    http://up.pnu-club.com/images/00ld7yux3ay3itvspd7n.png
    برای دانلود رایگان نمونه سوالات پیام نور با جوابهای تستی و تشریحی در مقطع نمونه سوالات کارشناسی ارشد پیام نور - نمونه سوالات پیام نور کارشناسی - نمونه سوالات پیام نور دکترا- نمونه سوالات آزمونهای فراگیر پیام نور( دانشپذیری)

    به ادرس زیر مراجعه کنید

    نمونه سوالات رایگان پیام نور




  2. #22
    Borna66 آواتار ها
    • 55,397
    مدير بازنشسته

    عنوان کاربری
    مدير بازنشسته
    تاریخ عضویت
    Mar 2009
    محل تحصیل
    خيام-سهراب
    شغل , تخصص
    طراح و تحلیل گر حرفه ای وب
    رشته تحصیلی
    مهندسي نرم افزار
    راه های ارتباطی
    پست های وبلاگ
    29

    پیش فرض

    دستورها و عبارت ها

    همه امکانات اساسی Tcl به وسیله دستورها نمایش داده می­شوند.حتی عبارات نیز به وسیله اجرای دستورات و به عنوان خروجی آن­ها محاسبه می­شوند. قالب معمول دستورهای Tcl به شکل زیر است

    command arg1 arg2 arg۳ …...

    دستورهای Tcl به سه دسته تقسیم می­شوند

    ۱.دستورهای توکار (built-in commands) : این دستورهای به وسیله مفسر Tcl فراهم می­شوند و در همه برنامه­ های Tcl قابل استفاده اند. دستورهای proc,while,set و return که در مثال­های بالا آمده اند نمونه­ هایی از این دستورات هستند.

    ۲.دستورهایی که به وسیله امکان گسترش (Extension mechanism) زبانTcl به آن اضافه می­شوند. می­توان به وسیله توابعی که کتابخانه Tcl فراهم می­کند، نام یک دستور و زیربرنامه اجرا کننده­ ی آن (به زبان C و ++C) را به مفسر Tcl اطلاع داد. پس از این کار هر کجا که آن نام در اسکریپت Tcl ظاهر شود، مفسر همان تابع معرفی شده (به زبان C) را برای اجرای دستور فراخوانی می­کند. دستورات توکار Tcl نیز به همین روش پیاده­ سازی شده­ اند.

    ۳.زیربرنامه­های تعریف شده به وسیله دستور proc: به طور کلی از extension برای پیاده­ سازی دستورهای سطح پایین و از proc برای پیاده­سازی دستورهای سطح بالا که نوشتن آن­ها به Tcl آسان­تر است استفاده می­شود.

    چنانکه گفته شد عبارات در Tcl به وسیله اجرای دستور ارزیابی می­شوند. به عبارت دیگر مفسر Tcl خود عبارات را ارزیابی نمی­کند، بلکه تنها عمل دسته­ بندی آرگومان­ها، جایگذاری مقادیر و فراخوانی دستور را انجام می­دهد. به همین دلیل در Tcl از دستور expr برای ارزیابی عبارات ریاضی استفاده می­شود

    دستور expr با آرگومان­های خود به شکل عبارت ریاضی برخورد می­کند.این دستور با عبارات ریاضی، شامل اعداد صحیح، اعشاری و مقادیر منطقی (boolean) سر و کار دارد. قواعد حاکم بر عبارات expr همان است که بر عبارات در زبانC حاکم است. به علاوه دستور expr برخی توابع اولیه ریاضی را نیز پشتیبانی می­کند. به عنوان مثال :

    s کد:
    کد:
       et len [expr [string length foobar ] ]
    که مقدار طول رشته foobar را (که برابر با۶ است) محاسبه می کند و :

    کد:
    کد:
       set pi [expr {۲ asin(۱٫۰)}]
    که مقدار عدد pi را محاسبه می­کند.

    زبان Tcl مقادیر درون علامت نقل قول ( ” ” ) را ارزیابی و به جای عبارات درون آن مقادیر لازم را قرار می­دهد. به قراردادن یک عبارت در آکولاد ( { } ) می­توان از این کار جلوگیری کرد :

    کد:
    کد:
       set name Ali ”My name is $name” {“My name is $name”}
    دستور دوم مقدار My name is Ali را برمی گرداند در حالی که دستور سوم مقدار My name is $name را برمی­گرداند.

    رشته ها

    رشته­ ها واحد اساسی داده در Tcl هستند و به همین دلیل است که دستورات زیادی برای کار با آن­ها وجود دارد.

    دستور string مجموعه­ ای است از عملیات قابل انجام بر روی رشته­ها. نمونه­ ای از این عمل را در مثال بالا در بحث عبارت­ها مشاهده می­کنیم. اولین آرگومان این دستور نام عملی است که باید انجام گیرد. برخی از اعمال مجاز عبارتند از :
    کد:
    کد:
       bytelength, compare, equal, first, index, is, last, length, map, match, range, repeat, replace, tolower, totitle, toupper,  trim, trimleft, trimright, wordend, wordstart
    Tcl امکاناتی را برای کار با اندیس­ها در رشته­ها فراهم می­کند. کاراکترها در رشته از ۰ شمرده می­شوند. به عنوان مثال دستور زیر کاراکترهای سوم تا آخر رشته با نام name را برمی­گرداند. مثلا اگر name حاوی مقدار ahmadi باشد:

    کد:
    کد:
       string range $name 3 end
    مقدار adi را برمی­گرداند.

    برخی از اندیس­های قابل استفاده در این دستورات عبارتند از:

    کد:
    کد:
       first, last, wordstart, wordend
    هم­چنین دستور string امکاناتی را برای بررسی تطابق یک رشته با یک رشته دیگر و نیز تعلق یک رشته به یک کلاس خاص (مثلا عدد بودن محتویات یک رشته) فراهم می­کند.

    Tcl هم­چنین دستوراتی مانند append, scan, format, binary را برای عملیات پیشرفته روی رشته­ها فراهم می­کند.

    توضیحات (Comments)

    در زبان Tcl از علامت # برای مشخص کردن توضیحات برنامه استفاده می­شود. هر توضیح یک خط را اشغال می­کند. برای توضیحات چند خطی می­توان از قراردادن \ در پایان هر یک از خطوط استفاده کرد. در زیر مثال­هایی از توضیحات Tcl مشاهده می­شود.
    کد:
    کد:
       # This is a simpel line of comment   #This is a line of comment \ and here is the rest of the line above
    لیست ها

    یکی از قابلیت­ها در زبان Tcl، امکان کار با لیست­هاست. برخی از دستورهای کار با لیست­ها عبارتند از

    list, lindex, llength, lrange, lappend, linsert, lsearch, lreplace, …

    لیست­ها در Tcl دارای دو کاربرد عمده هستند

    ۱.استفاده در دستور کنترلی foreach

    2.ساخت پویای اجزای یک دستور Tcl برای اجرای آن در آینده به وسیله دستور eval

    البته لیست­ها وسیله مناسبی برای ساخت داده­ساختارهای پیچیده در Tcl نیستند و برای چنین کاری استفاده از آرایه­ها مناسب­تر است . یک نمونه از کاربرد دستورهای لیست در Tcl در زیر آمده است
    کد:
    کد:
       ٪ set c۱ {Bob Carol} Bob Carol ٪ set c۲
    [list Ted Alice] Ted Alice ٪ set Party۱
    [list $c۱ $c۲] {Bob Carol} {Ted Alice} ٪ set Party۲ [concat $c۱ $c۲] Bob Carol Ted Alice ٪ linsert $Party1 1 Richard {Bob Carol} Richard {Ted Alice} ٪
    آرایه ها

    آرایه یک متغیر Tcl با اندیس­های رشته­ ای است. می­توان به اندیس به چشم کلید و به آرایه به دید مجموعه­ ای از عناصر که به وسیله کیلد قابل شناسایی هستند نگریست. از این نظر، می­توان گفت آرایه­های Tcl مانند Hashها در زبان Perl هستند . قابلیت انعطاف آرایه­ها آن ها را به ابزاری مهم برای برنامه نویسی در Tcl تبدیل می کند. یکی از استفاده­های مهم آرایه­ها در Tcl ایجاد داده­ساختارهای پیچیده است که در زبان­هایی مثل C و Pascal به وسیله مفاهیمی مانند struct و record تعریف می­شوند

    در زیر نمونه­ای از کاربرد آرایه­ها در Tcl دیده می­شود

    کد:
    کد:
       ٪ set People(friend) Tom Tom ٪ set People(spouse) Marcia Marcia ٪ set People(boss) Jack Jack ٪ array names People friend boss spouse ٪ set Person $People(friend) Tom ٪ array get People friend Tom boss Jack spouse Marcia ٪ set People(friend) \ [concat $People(friend) Bob] Tom Bob ٪ set Person $People(friend) Tom Bob ٪
    زیربرنامه ها و محدوده ها

    چنانکه گفته شد زیربرنامه­ها امکان کپسوله­سازی (encapsulation) دستورات در قالب یک دستور را فراهم می­کنند. زیربرنامه­ها هم­چنین یک محدوده(scope) محلی برای متغیرها ایجاد می­کنند

    در آغاز، Tcl دارای یک محدوده سراسری (global) برای متغیرها، محدوده های محلی درون زیربرنامه­ها و یک محدوده سراسری برای زیربرنامه­ها بود. از Tcl ۸٫۰ به بعد محدوده-نام ها به Tcl اضافه شد که محدوده جدیدی برای زیربرنامه­ها و متغیرهای سراسری به وجود می­آورد.نکته دیگر آن­که زیربرنامه­ها و متغیرها دارای محدوده-نام­های جدا هستند بنابراین می­توان بدون ایجاد مشکل، متغیر و زیربرنامه هم­نام داشت.

    متغیرهای تعریف شده در هر زیربرنامه، تنها در همان زیربرنامه قابل دسترسی و استقاده هستند. به علاوه متغیرهای سراسری در حالت عادی در برنامه­ها قابل استفاده نیستند و برای استفاده از آن­ها باید به شکل صریح (explicit) و با استفاده از دستور global آن­ها را به سیستم معرفی کرد. هم­چنین متغیرهای تعریف شده در بلوک­های بالاتر نیز به حالت عادی در بلوک درونی­تر قابل استفاده نیستند و باید به وسیله دستور upvar آن­ها را به سیستم معرفی کرد.

    نمونه­هایی دیگر از تعریف زیربرنامه­ها، به همراه شیوه استفاده از دستور upvar در زیر آمده است:
    کد:
    کد:
       proc RandomInit { seed } {    global randomSeed    set randomSeed $seed } proc Random {} {    global randomSeed    set randomSeed [expr ($randomSeed ۹۳۰۱ + ۴۹۲۹۷) ٪ ۲۳۳۲۸۰]    return [expr $randomSeed/double(۲۳۳۲۸۰)] } proc RandomRange { range } {    expr int([Random] $range) }
    که حاصل اجرای آن به این صورت است :
    کد:
    RandomInit [pid] => ۵۰۴۹ Random => ۰٫۵۱۷۶۸۶۸۹۹۸۶۳ Random => ۰٫۲۱۷۱۷۶۷۸۳۲۶۵ RandomRange ۱۰۰ => ۱۷
    به عنوان نمونه­ای از استقاده از دستور upvar می­توان به پیاده­سازی پشته با استفاده از لیست اشاره کرد:
    کد:
    کد:
       proc Push { stack value } {    upvar $stack list    lappend list $value } proc Pop { stack } {    upvar $stack list    set value [lindex $list end]    set list [lrange $list ۰ [expr [llength $list]-۲]]    return $value }
    که در آن stack$ حاوی نام متغیر لیست دارای اطلاعات stack است که در بیرون از محدوده زیربرنامه قرار دارد و به عنوان پارامتر به برنامه فرستاده و تبدیل به یک متغیر قابل استفاده در زیربرنامه شده است.




    فروشگاه نمونه سوالات پیام نور با پاسخنامه تستی و تشریحی



    دانلود رایگان نمونه سوالات دانشگاه پیام نور





    http://up.pnu-club.com/images/00ld7yux3ay3itvspd7n.png
    برای دانلود رایگان نمونه سوالات پیام نور با جوابهای تستی و تشریحی در مقطع نمونه سوالات کارشناسی ارشد پیام نور - نمونه سوالات پیام نور کارشناسی - نمونه سوالات پیام نور دکترا- نمونه سوالات آزمونهای فراگیر پیام نور( دانشپذیری)

    به ادرس زیر مراجعه کنید

    نمونه سوالات رایگان پیام نور




  3. #23
    Borna66 آواتار ها
    • 55,397
    مدير بازنشسته

    عنوان کاربری
    مدير بازنشسته
    تاریخ عضویت
    Mar 2009
    محل تحصیل
    خيام-سهراب
    شغل , تخصص
    طراح و تحلیل گر حرفه ای وب
    رشته تحصیلی
    مهندسي نرم افزار
    راه های ارتباطی
    پست های وبلاگ
    29

    پیش فرض

    زبان برنامه نویسی جاوا

    جاوا (به انگلیسی: Java) یک زبان برنامه نویسی شئ گراست که شرکت سان مایکروسیستمز آن را ابداع کرده است. زبان جاوا شبیه به ++C است اما مدل شیءگرایی آسان تری دارد و از قابلیت های سطح پایین کمتری پشتیبانی می کند. یکی از قابلیت های اصلی جاوا این است که مدیریت حافظه را بطور خودکار انجام می دهد. ضریب اطمینان عملکرد برنامه های نوشته شده به این زبان بالا است و وابسته به سیستم عامل خاصی نیست، به عبارت دیگر می توان آن را روی هر رایانه با هر نوع سیستم عاملی اجرا کرد. برنامه های جاوا به صورت کدهای بیتی همگردانی (کامپایل) می شوند. که مانند کد ماشین هستند و به ویژه وابسته به سیستم عامل خاصی نمی باشند

    تاریخچه

    در مقایسه با زبان های دیگر، همچون ++C یا بیسیک یا فورترن، جاوا زبان نسبتاً جدیدتری است. شرکت سان مایکروسیستمز در سال ۱۹۹۱ یک پروژه تحقیقاتی به نام گرین (Green) را آغاز کرد. هدف این پروژه ایجاد زبانی جدید شبیه به ++C بود که نویسنده اصلی آن، جیمز گاسلینگ، آن را بلوط (Oak) نامید. اما بعدها به دلیل برخی مشکلات حقوقی از میان لیستی از کلمات تصادفی نام آن به جاوا تغییر کرد.

    پروژه گرین به دلیل مشکلات بازاریابی در شرف لغو شدن بود تا اینکه گسترش وب در سال ۱۹۹۳ باعث نمایش توانایی های وافر جاوا در این عرصه گشت. اینگونه بود که شرکت سان مایکروسیستمز در مه ۱۹۹۵ جاوا را رسماً به بازار عرضه کرد.

    جاوا یک زبان برنامه نویسی است که در ابتدا توسط شرکت sun Microsystems ایجاد شده است و در سال 1995 به عنوان مولفه اصلی java platform منتشر شد.این زبان قسمت های بسیاری از گرامر خود را از C و ++C گرفته اما دارای مدل شی گرایی ساده ای است و امکانات سطح پایین کمی دارد. کاربرد جاوا در کامپایل به صورت بایت کد است که قابلیت اجرا روی تمامی ماشین های شبیه سازی جاوا را داشته باشد صرف نظر از معماری و خصوصیات آن کامپیوتر.

    اجرای اصلی کامپایلرهای جاوا، ماشین های پیاده سازی و کتابخانه های آن توسط این شرکت از سال 1995 منتشر شد. در 2007 may این شرکت، نرم افزار رایگان این زبان را فراهم کرد. دیگران هم کاربردهای دیگری از این زبان را منتشر کردند مثل کامپایلر [[]GNU]] برای جاوا.

    Games Gosling پروژه زبان برنامه نویسی جاوا را در 1991 june آغاز کرد. این زبان در ابتدا Oak، سپس Green و در آخر هم جاوا نامیده شد. gosling قصد داشت یک ماشین مجازی و یک ماشینی به کار برد که شبیه C و ++C باشد. این شرکت نسخهٔ اول جاوا را تحت عنوان Java1.0 در سال 1995 منتشر ساخت. جستجوگرهای اصلی وب، به هم پیوستند تا به طور مطمئن java applet را بدون صفحات وب اجرا کنند و به این صورت جاوا خیلی زود معروف و محبوب شد. با پیدایش java2، نسخهٔ جدید توانست ترکیب های جدیدی را برای نوع های مختلف پلت فرم ها ایجاد کند. به عنوان مثال J2EE، باهدف کاربرد برای تشکیلات اقتصادی، و نسخهٔ J2ME برای موبایل منتشر شد.

    در سال 2006 با هدف بازاریابی، این شرکت نسخهٔ جدید J2 را با نام های JavaEE ،JavaME و JavaSE منتشر کرد. در سال 1997 شرکت سان میکروسیستمز،ISO/IEC JTC1 standards body و Ecma International را به فرمول جاوا تغییر داد.

    شرکت sun بسیاری از کاربردهای جاوایش را بدون هیچ هزینه ای فراهم آورد. شرکت sun با فروش مجوز برای بعضی از کاربردهای خاصش مثل Java Enterprise System درآمدی را بدست آورد. اولین تمایزی که بین SDK و JRE داد شامل فقدان کامپایلر برای JRE و سرفایل ها بود. در 13 نوامبر 2006 شرکت sun نرم افزار جاوا را به صورت رایگان و با مجوز عمومی برای همه منتشر کرد. جاوا یک پلتفرم نرم افزاری است.

    اهداف اولیه

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

    برنامه های جاوا و اپلت ها

    جاوا برای نوشتن انواع برنامه های کاربردی مناسب است. با جاوا می توان انواع برنامه های زیر را نوشت:
    برنامه های تحت وب
    برنامه نویسی سیستم های کوچک مانند موبایل، پاکت پی سی و ...
    برنامه های کاربردی بزرگ (Enterprise)
    برنامه های رومیزی (Desktop)
    و غیره.

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

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

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

    خط مشی جاوا

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

    دستورالعمل ها شبیه کد ماشین هستند، اما با ماشین های مجازی که به طور خاص برای سخت افزارهای مختلف نوشته شده اند، اجرا می شوند. در نهایت کاربر از JRE نصب شده روی ماشین خود یا جستجوگر وب استفاده می کند. کتابخانه های استاندارد یک راه عمومی برای دسترسی به ویژگی های خاص فراهم می کنند. مانند گرافیک، نخ کشی و شبکه. در بعضی از نسخه های JVM بایت کدها می توانند قبل و در زمان اجرای برنامه به کدهای محلی کامپایل شوند.

    فایدهٔ اصلی استفاده از بایت کد، قسمت کردن است. اما ترجمهٔ کلی یعنی برنامه های ترجمه شده تقریباً همیشه کندتر از برنامه های کامپایل شدهٔ محلی اجرا می شوند. این شکاف می تواند با چند تکنیک خوش بینانه که در کاربردهای JVM قبلی معرفی شد، کم شود. یکی از این تکنیک ها JIT است که بایت کد جاوا را به کد محلی ترجمه کرده و سپس آن را پنهان می کند. در نتیجه برنامه خیلی سریع تر نسبت به کدهای ترجمه شدهٔ خالص شروع و اجرا می شود. بیشتر VM های پیشرفته، به صورت کامپایل مجدد پویا، در آنالیز VM، رفتار برنامهٔ اجرا شده و کامپایل مجدد انتخاب شده و بهینه سازی قسمت های برنامه، استفاده می شوند.

    کامپایل مجدد پویا می تواند کامپایل ایستا را بهینه سازی کند. زیرا می تواند قسمت hot spot برنامه و گاهی حلقه های داخلی که ممکن است زمان اجرای برنامه را افزایش دهند را تشخیص دهد. کامپایل JIT و کامپایل مجدد پویا به برنامه های جاوا اجازه می دهد که سرعت اجرای کدهای محلی بدون از دست دادن قابلیت انتقال افزایش پیدا کند.

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

    کارایی جاوا نسبت به نسخه های اولیه بیشتر شد. در تعدادی از تست ها نشان داده شد که کارایی کامپایلرJIT کاملاََ مشابه کامپایلر محلی شد.عملکرد کامپایلرها لزوماَ کارایی کدهای کامپایل شده را نشان نمی دهند.یکی از پیشرفت های بی نظیر در در زمان اجرای ماشین این بود که خطا ها ماشین را دچار اشکال نمی کردند.علاوه بر این در زمان اجرای ماشینی مانند جاوا وسایلی وجود دارد که به زمان اجرای ماشین متصل شده و هر زمانی که یک استثنا رخ می دهد،اطلاعات اشکال زدایی که در حافظه وجود دارد ،ثبت می کنند.

    پیاده سازی

    شرکت سان میکروسیستم مجوز رسمی برای پلت فرم استاندارد جاوا را به Microsoft Windows, Linux , و Solaris. داده است. همچنین محیط های دیگری برای دیگر پلت فرم ها فراهم آورده است. علامت تجاری مجوز شرکت سان میکروسیستم طوری بود که با همهٔ پیاده سازی ها سازگار باشد.

    به علت اختلاف قانونی که با ماکروسافت پیدا کرد، زمانی که شرکت سان ادعا کرد که پیاده سازی ماکروسافت از RMI یا JNI پشتیبانی نکرده و ویژگی های خاصی را برای خودش اضافه کرده است. شرکت سان در سال 1997 پیگیری قانونی کرد و در سال 2001 در توافقی 20 میلیون دلاری برنده شد.

    اداره خودکار حافظه


    جاوا از حافظهٔ بازیافتی خودکار برای ادارهٔ حافظه در چرخهٔ زندگی یک شی استفاده می کند. برنامه نویس زمانی که اشیا به وجود می آیند، این حافظه را تعیین می کند. و در زمان اجرا نیز، زمانی که این اشیا در استفادهٔ زیاد طولانی نباشند، برنامه نویس مسئول بازگرداندن این حافظه است.

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

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

    در هر کدام از این راه ها، مسئولیت ادارهٔ اقامت حافظه با برنامه نویس است. اگر برنامه شی را برنگرداند، سوراخ حافظه اتفاق می افتد. اگر برنامه تلاش کند به حافظه ای را که هم اکنون بازگردانده شده، دستیابی پیدا کند یا برگرداند، نتیجه تعریف شده نیست و ممکن است برنامه بی ثبات شده و یا تخریب شود.

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

    جاوا از نوع اشاره گر ریاضی C و ++C پشتیبانی نمی کند. در جایی که آدرس اشیا و اعداد صحیح می توانند به جای هم استفاده شوند. همانند ++C و بعضی زبان های شی گرای دیگر، متغیرهای نوع های اولیهٔ جاوا شی گرا نبودند. مقدار نوع های اولیه، مستقیماً در فیلدها ذخیره می شوند. در فیلدها (برای اشیا) و در پشته (برای توابع)، بیشتر از heap استفاده می شود. این یک تصمیم هوشیارانه توسط طراح جاوا برای اجرا است. به همین دلیل جاوا یک زبان شی گرای خالص به حساب نمی آید.

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




    فروشگاه نمونه سوالات پیام نور با پاسخنامه تستی و تشریحی



    دانلود رایگان نمونه سوالات دانشگاه پیام نور





    http://up.pnu-club.com/images/00ld7yux3ay3itvspd7n.png
    برای دانلود رایگان نمونه سوالات پیام نور با جوابهای تستی و تشریحی در مقطع نمونه سوالات کارشناسی ارشد پیام نور - نمونه سوالات پیام نور کارشناسی - نمونه سوالات پیام نور دکترا- نمونه سوالات آزمونهای فراگیر پیام نور( دانشپذیری)

    به ادرس زیر مراجعه کنید

    نمونه سوالات رایگان پیام نور




  4. #24
    Borna66 آواتار ها
    • 55,397
    مدير بازنشسته

    عنوان کاربری
    مدير بازنشسته
    تاریخ عضویت
    Mar 2009
    محل تحصیل
    خيام-سهراب
    شغل , تخصص
    طراح و تحلیل گر حرفه ای وب
    رشته تحصیلی
    مهندسي نرم افزار
    راه های ارتباطی
    پست های وبلاگ
    29

    پیش فرض

    نمونه هایی از برنامه های جاوا

    در زیر نمونه ای از برنامه ای که در جاوا نوشته شده است آورده شده است. البته برای کامپایل کردن این برنامه بایستی JDK بر روی سیستم مورد نظر نصب شده باشد.

    کد:
    کد:
     [PHP]   public class Test{     public static void main(String[] args) {         System.out.println("HelloWorld!");     } } [/PHP]
    برای اجرای برنامه بالا، ابتدا باید یک فایل به نام Test.java ساخته شود و سپس کامپایل شود:

    کد:
    [PHP] $ javac Test.java [/PHP]
    سپس یک فایل خروجی به نام Test.class دریافت می شود. بعد با استفاده از دستور زیر برنامه قابل اجرا است:


    کد:
    [PHP] $ java Test [/PHP]
    مثال ها

    برنامه Hello world به این صورت در زبان جاوا می تواند نوشته شود:

    کد:
    کد:
     [PHP]   // HelloWorld.java public class HelloWorld {     public static void main(String[] args) {         System.out.println("Hello, World!");     } } [/PHP]
    بر طبق قرارداد فایل هل بعد از کلاس های عمومی نام گذاری می شوند.سپس باید پسوند java را به این صورت اضافه کرد: Hello world.java .این فایل اول باید با استفاده از کامپایلر جاوا به بایت کد کامپایل شود.در نتیجه فایل Hello world.class ایجاد می شود.این فایل قابل اجرا است.فایل جاوا ممکن است فقط یک کلاس عمومی داشته باشد.اما می تواند شامل چندین کلاس با دستیابی عمومی کمتر باشد.

    کلاسی که به صورت خصوصی تعریف می شود ممکن است در فایل .java ذخیره شود.کامپایلر برای هر کلاسی که در فایل اصلی تعریف می شود یک کلاس فایل تولید می کند.که نام این کلاس فایل همنام کلاس است با پسوند .class

    کلمه کلیدی public (عمومی) برای قسمت هایی که می توانند از کد های کلاس های دیگر صدا زده بشوند،به کهر برده می شود. کلمهٔ کلیدی static (ایستا) در جلوی یک تابع ،یک تابع ایستا را که فقط وابسته به کلاس است و نه قابل استفاده برای نمونه هایی از کلاس،نشان می دهد.فقط تابع های ایستا می توانند توسط اشیا بدون مرجع صدا زده شوند.داده های ایستا به متغیر هایی که ایستا نیستند،نمی توانند دسترسی داشته باشند.

    کلمهٔ کلیدی void (تهی) نشان می دهد که تابع main هیچ مقداری را بر نمی گرداند.اگر برنامهٔ جاوا بخواهد با خطا از برنامه خارج شود،باید system.exit() صدا زده شود. کلمهٔ main یک کلمهٔ کلیدی در زبان جاوا نیست.این نام واقعی تابعی است که جاوا برای فرستادن کنترل به برنامه ،صدا می زند.برنامه جاوا ممکن است شامل چندین کلاس باشد که هر کدام دارای تابع main هستند.

    تابع main باید آرایه ای از اشیا رشته ای را بپذیرد.تابع main می تواند از آرگومان های متغیر به شکل public static void main(string…args) استفاده کند که به تابع main اجازه می دهد اعدادی دلخواه از اشیا رشته ای را فراخوانی کند. پارامترstring[]args آرایه ای از اشیا رشته ایست که شامل تمام آرگومان هایی که به کلاس فرستاده می شود،است.

    چاپ کردن،قسمتی از کتابخانهٔ استاندارد جاوا است.کلاس سیستم یک فیلد استاتیک عمومی به نام out تعریف کرده است.شی out یک نمونه از کلاس printstream است و شامل تعداد زیادی تابع برای چاپ کردن اطلاعات در خروجی استاندارد است.همچنین شامل println(string) برای اضافه کردن یک خط جدید برای رشتهٔ فرستاده شده اضافه می کند.

    توزیع های جاوا

    منظور از توزیع جاوا پیاده سازی های مختلفی است که برای کامپایلر جاوا و همچنین مجموعه کتابخانه های استاندارد زبان جاوا (JDK) وجود دارد. در حال حاضر چهار توزیع کنندهٔ عمده جاوا وجود دارند:

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

    GNU Classpath: این توزیع از سوی موسسه نرم افزارهای آزاد منتشر شده و تقریبا تمامی کتابخانه استاندارد زبان جاوا در آن بدون بهره گیری از توزیع شرکت سان از اول پیاده سازی شده است. یک کامپایلر به نام GNU Compiler for Java نیز برای کامپایل کردن کدهای جاوا توسط این موسسه ایجاد شده است.

    فلسفه انتخاب نام Classpath برای این پروژه رها کردن تکنولوژی جاوا از وابستگی به علامت تجاری جاوا است بطوریکه هیچ وابستگی یا محدودیتی برای استفاده آن از لحاظ قوانین حقوقی ایجاد نشود و از طرفی به خاطر وجود متغیر محیطی classpath در تمامی محیط های احرایی برنامه های جاوا، این نام به نوعی تکنولوژی جاوا را برای خواننده القا می کند. کامپایلر GNU توانایی ایجاد کد اجرایی (در مقابل بایت کد توزیع سان) را داراست.

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

    مایکروسافت #J: این در حقیقت یک توزیع جاوا نیست. بلکه زبانی مشابه می باشد که توسط مایکروسافت و در چارچوب .net ارائه شده است. انتظار اینکه در سیستم عاملی غیر از ویندوز هم اجرا شود را نداشته باشید.
    AspectJ: این نیز یک زبان مجزا نیست. بلکه یک برنامه الحاقی می باشد که امکان برنامه نویسی Aspect Oriented را به جاوا می افزاید. این برنامه توسط بنیاد برنامه نویسی جلوه گرا و به صورت کدباز ارائه شده است.

    کلاس های خاص

    [[]Applet]] (برنامه های کاربردی کوچک)

    اپلت جاواها برنامه هایی هستند که برای کاربردهایی نظیر نمایش صفحات وب در جستجوگر وب، ایجاد شده اند. واژهٔ import باعث می شود کامپایلر جاوا کلاس های javaapplet.Applet وjava.awt.Graphics را به کامپایل برنامه اضافه کند. کلاس Hello کلاس Applet را توسعه می دهد. کلاس اپلت چارچوبی برای کاربردهای گروهی برای نمایش و کنترل چرخهٔ زندگی اپلت، درست می کند. کلاس اپلت یک تابع پنجره ای مجرد است

    که برنامه های کوچکی با قابلیت نشان دادن واسط گرافیکی برای کاربر را فراهم می کند. کلاس Hello تابع موروثی print(Graphics) را از سوپر کلاس container باطل می کند، برای اینکه کدی که اپلت را نمایش می دهد، فراهم کند. تابع paint شی های گرافیکی را که شامل زمینه های گرافیکی هستند را می فرستد تا برای نمایش اپلت ها استفاده شوند. تابع paint برای نمایش "Hello world!" تابع drawstring(string,int,int) را صدا می زند.

    Servlet

    تکنولوژی servlet جاوا گسترس وب را به آسانی فراهم می کند.و شامل مکانیزم هایی برای توسعهٔ تابعی سرور وب و برایدسترسی به سیستم های تجاری موجود است.servlet قسمتی از javaEE است که به درخواست های مشتری پاسخ می دهد.
    کد:
    [PHP] // Hello.java import java.io. ; import javax.servlet. ; public class Hello extends GenericServlet { public void service(ServletRequest request, ServletResponse response) throws ServletException, IOException { response.setContentType("text/html"); final PrintWriter pw = response.getWriter(); pw.println("Hello, world!"); pw.close(); } } [/PHP]
    واژهٔ import کامپایلر جاوا را هدایت می کند که تمام کلاس های عمومی و واسط ها را از بسته های java.io وjava.servlet را در کامپایل وارد کند.

    کلاس Hello کلاس Genericservlet را توسعه می دهد. کلاس Genericservlet واسطی برای سرور فراهم می کند تا درخواست را به servlet بفرستد و چرخهٔ زندگی servlet را کنترل کند.
    صفحهٔ سرور جاوا

    صفحهٔ سرور جاوا قسمتی از سرور javaEE است که پاسخ تولید می کند.نوعاَ صفحات HTML به درخواست های HTTP از مشتری.JSP ها کد جاوا در صفحهٔ HTML را با استفاده از حائل <%and%> اضافه می کنند.JSP به javaservlet کامپایل می شود.

    کاربرد swing (تاب خوردن)

    Swing کتابخانهٔ واسط گرافیکی کاربر است برای پلت فرم javaSE. ابزاری مشابه پنجره، GTK و motif توسط شرکت sun فراهم شده اند. این مثال کاربرد swing یک پنجرهٔ واحد همراه با Hello world را ایجاد می کند.
    کد:
    کد:
     [PHP]   // Hello.java (Java SE 5) import java.awt.BorderLayout; import javax.swing. ;   public class Hello extends JFrame {     public Hello() {         super("hello");         setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);         setLayout(new BorderLayout());         add(new JLabel("Hello, world!"));         pack();     }       public static void main(String[] args) {         new Hello().setVisible(true);     } } [/PHP]
    اولین جملهٔ import کامپایلر جاوا را هدایت می کندتا کلاس Borderlayout را از بستهٔ java.awt در جاوا به کامپایل اضافه کند. و import دوم همهٔ کلاس های عمومی و واسط آن ها را از بستهٔ javax.swing اضافه می کند. کلاس Hello کلاس Jframe را توسعه می دهد.کلاس Jframe یک پنجره با میلهٔ عنوان و کنترل بستن است.

    زمانی که برنامه آغاز می شود،تابع main با JVM صدا زده می شود.این یک نمونهٔ جدید از کلاس Hello را ایجاد کرده و با صدا زدن تابع setvisible(boolean) با مقدار true نمایش داده می شود.
    Generic

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

    کتابخانه های کلاس


    کتابخانه های جاوا که به صورت بایت کد از کد اصلی کامپایل شده اند،برای پشتیبانی از بعضی از کاربرد های جاوا،توسطJRE منتشر شده است. مثال هایی از این کتابخانه ها عبارتند از:

    کتابخانه های مرکزی که شامل:

    کتابخانه هایی که برای ساختار داده کاربرد دارند.مثل لیست ها،درخت ها،مجموعه ها،مترجم ها.
    کتابخانهٔ پرداز XML (تجزیه،تغییر شکل،اعتبار)
    کتابخانه های موضعی و بین المللی
    کتابخانه های انتگرال گیری که امکان تایپ کردن توسط سیستم های بیرونی را می دهند.
    JDBC برای دستیابی به داده ها
    JNDI برای مراجعه و کشف کردن
    CORBA & RMI برای توسعهٔ کاربرد توزیع کردن
    کتابخانه های واسط کاربر
    AWT (توابع پنجره ای مجرد)که قسمت هایی از GUI را فراهم می کنند.
    کتابخانه های swing که در AWT ساخته شده اند اما کاربرد هایی از AWT widgetry را فراهم می کنند.
    APL ها برای ضبط صدا،پردازش و بازنواختی
    کاربردهای وابستهٔ پلت فرم ماشین های مجازی جاوا
    Plugins که توانایی اجرا شدن در جستجوگر های وب را به اپلت می دهد.
    java web start
    دادن مجوز و مستند سازی


    شرکت سان میکروسیستم، 4 نوع ویرایش از کاربردهای مختلف جاوا را ارائه داده است:
    Java card for smartcard
    JavaME
    JavaSE
    JavaEE




    فروشگاه نمونه سوالات پیام نور با پاسخنامه تستی و تشریحی



    دانلود رایگان نمونه سوالات دانشگاه پیام نور





    http://up.pnu-club.com/images/00ld7yux3ay3itvspd7n.png
    برای دانلود رایگان نمونه سوالات پیام نور با جوابهای تستی و تشریحی در مقطع نمونه سوالات کارشناسی ارشد پیام نور - نمونه سوالات پیام نور کارشناسی - نمونه سوالات پیام نور دکترا- نمونه سوالات آزمونهای فراگیر پیام نور( دانشپذیری)

    به ادرس زیر مراجعه کنید

    نمونه سوالات رایگان پیام نور




  5. #25
    Borna66 آواتار ها
    • 55,397
    مدير بازنشسته

    عنوان کاربری
    مدير بازنشسته
    تاریخ عضویت
    Mar 2009
    محل تحصیل
    خيام-سهراب
    شغل , تخصص
    طراح و تحلیل گر حرفه ای وب
    رشته تحصیلی
    مهندسي نرم افزار
    راه های ارتباطی
    پست های وبلاگ
    29

    پیش فرض

    زبان برنامه نویسی جاوا اسکریپت

    در ابتدا با جاوا اشتباه نگیرید


    جاوااسکریپت زبانی است که توسط NetScape تولید شده است. این زبان، زبان برنامه نویسی اسکریپت مبتی بر اشیاء است که بر اساس استاندارد ECMA-262 Edition 3 نوشته شده است.علیرغم اشتباه عمومی, زبان جاوا اسکریت با زبان جاوا ارتباطی ندارد، اگر چه ساختار این زبان به سی پلاس پلاس(C++) و جاوا شباهت دارد؛ که این امر برای سهولت یادگیری در نظر گرفته شده است. از همینرو دستورهای متداول مانند if, for, try..catch و ... در این زبان هم یافت می گردند.

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

    کاربرد گسترده این زبان در سایتها و صفحات اینترنی می باشد و به کمک این زبان می توان به اشیاء داخل صفحات HTML دسترسی پیدا کرد و آنها را تغییر داد. به همین علت برای پویا نمایی در سمت کاربر, از این زبان استفاده می شود.

    تاریخچه

    جاوا اسکریپت را در ابتدا شخصی به نام Brendan Eich در شرکت Netscape با نام Mocha طراحی نمود. این نام بعدا به LiveScript و نهایتا به جاوا اسکریپت تغییر یافت. این تغییر نام تقریبا با افزوده شدن پشتیبانی از جاوا در مرورگر وب Netscape Navigator همزمانی دارد. اولین نسخهٔ جاوا اسکریپت در نسخه 2.0B3 این مرورگر در دسامبر 1995 معرفی و عرضه شد.

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

    به دلیل موفقیت عمدهٔ جاوا اسکریپت در نقش زبان نویسه ای سمت کارخواه (client side scripting language) برای صفحات وب، مایکروسافت یک نسخه سازگار از این زبان را ایجاد کرد و به علت مشکلات حقوقی آن را Jscript نامید. این زبان در نسخه 3.0 از مرورگر Internet Explorer و در آگوست 1996 داده شد. تفاوت های این دو زبان به حدی جزیی است که اغلب Jscript و جاوا اسکریپت به جای هم به کار می روند. هرچند که مایکروسافت در اینجا چند ده دلیل برای تفاوت Jscript با استاندارد ECMA مطرح می کند.

    Netscape جاوا اسکریپت را به سازمان Ecma International برای استاندارد سازی ارسال کرده است و نتیجه نسخهٔ استاندارد شده ای به نام ECMA Script است.

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

    امکانات زبانی

    امکانات زیر (در صورت قید نشدن) همگی مطابق استاندارد ECMA Script می باشند.

    زبان امری و ساخت یافته

    جاوا اسکریپت از تمامی نحو ساختاری زبان C پشتیبانی می کند. مانند گزاره (if و switch و حلقه های while و ...) یک مورد استثنا تعیین حوزهٔ متغییر هاست: تعریف حوزه در حد block در جاوا اسکریپت وجود ندارد. هر چند جاوا اسکریپت 1.7 با کلمهٔ کلیدی let این نوع حوزه دهی را امکان پذیر می سازد. مانند c در جاوا اسکریپت بین عبارت و گزاره تفاوت وجود دارد.

    پویایی
    تایپ دهی پویا


    مانند اکثر زبان های نویسه ای تایپ به مقدارها منسوب می گردد و نه به متغییرها. برای مثال متغییر x ممکن است به یک عدد وابسته سازی شود، و بعدا به یک رشته. جاوا اسکریپت برای تعیین تایپ شی راه های مختلفی از جمله تایپ دهی اردکی (duck typing) را دارد.


    تایپ دهی ضعیف

    زبان جاوا اسکریپت از نظر تایپ دهی ضعیف به شمار می آید و در آن نتیجهٔ عملیاتی مانند 5 + “37”، عبارت “537” خواهد بود. (عدد را با رشته جمع کرده است)

    اشیا به دید آرایه های انتسابی

    جاوا اسکیرپت تقریبا تماما بر اساس اشیا است. اشیا، آرایه های انتسابی به همراه یک «ساختار شماتیک» هستند. نام ویژگی اشیا، کلیدهای آرایه انتسابی هستند و درواقع obj.x = 10 با obj[“x”] = 10 هم ارز هستند و شیوه نگارش با نقطه صرفا یک سهولت نحوی است. ویژگی ها و مقدارهایشان در زمان اجرا قابلیت تغییر اضافه و حذف دارند. همچنین می توان روی ویژگی های یک شی با ساختار for … in پیمایش کرد.

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

    تابعی بودن

    توابع موجوداتی «درجه اول» محسوب می شوند، یعنی خود یک شی هستند. بنابراین می توانند ویژگی داشته باشند، در آرگومان های تابع ها داده شوند و مانند هر شی دیگری با آن ها رفتار شود

    توابع داخلی و بستارها


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

    «ساختار شماتیک» محوری

    جاوا اسکریپت به جای رده ها برای تعریف ویژگی های اشیا، که شامل متد ها و وراثت است از «ساختار شماتیک» استفاده می کند (prototype). امکان شبیه سازی بسیاری از امکانات رده-محور با ساختار های شماتیک جاوا اسکریپت امکان پذیر است.

    توابع در نقش سازندهٔ اشیا

    برای توابع علاوه بر نقش عادی، به عنوان سازنده ی اشیا هم عمل می کنند. آوردن یک new قبل فراخوانی تابع، آن را با کلمهٔ کلیدی this وابسته سازی شده به شی جدید اجرا می کند.ویژگی prototype از تابع مورد نظر، ساختار شماتیک شی جدید را مشخص می کند.
    توابع در نقش متد

    بر خلاف بیشتر زبان های شی گرا تفاوتی میان تعریف تابع و متد وجود ندارد. بلکه تفاوت در زمان فراخوانی تابع است، زمانی که یک تابع به عنوان متد یک شی فراخوانده می شود کلمهٔ کلیدی this محلی آن تابع به شی مورد نظر وابسته سازی می شود.

    امکانات دیگر

    جاوا اسکریپت برای تامین اشیا و متدها که با آن ها تعامل کند به یک محیط اجرایی (مانند مرورگر وب) نیاز دارد تا بتواند به این ترتیب با دنیای خارج ارتباط برقرار کند. همچنین برای دسترسی به سایر نویسه ها (include) هم به این محیط نیازمند است (مانند تگ <script>در HTML ) . (البته این یک ویژگی زبانی نیست اما در عمل اغلب این طور پیاده سازی شده است)

    تعداد متغییر پارامتر (variadic)

    تعداد نامعینی پارامتر را می توان به یک تابع ارسال نمود. تابع می تواند هم از طریق پارامترهای رسمی و هم از طریق شی محلی arguments به آن ها دسترسی داشته باشد.
    Literalهای آرایه و شی

    مانند بسیاری از زبان های نویسه ای آرایه ها و اشیا (که در زبان های دیگر همان آرایه های انتسابی هستند) را می توان با یک نحو موجز ایجاد و توصیف نمود. در واقع این شیوهٔ نگارش پایهٔ قالب داده ای JSON هم هست.

    عبارات منظم

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

    نظام تایپ دهی

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

    تعریف نشده: این تایپ فقط یک مقدار با نام undefined دارد و متعلق به تمام متغییرهای مقدار دهی نشده است

    نوع تهی: نوع تهی هم فقط یک مقدار دارد با نام null

    نوع دودویی: نمایندهٔ یک مقدار منطقی است و دو مقدار true و false را می پذیرد.

    نوع رشته: در بر گیرندهٔ تمام رشته های متناهی از 0 یا بیشتر عنصر 16 بیتی بدون علامت است. این عناصر با اندیس های نامنفی قابل دسترسی هستند. طول رشته تعداد عناصر داخل آن و طول رشتهٔ تهی برابر 0 است.

    زمانی که رشته حاوی متن واقعی باشد هر عنصر به عنوان یک واحد UTF-16 در نظر گرفته می شود (مستقل از این که شیوهٔ واقعی نگه داری رشته چه باشد). تمام عملیات بر روی رشته ها آن ها را به عنوان اعداد صحیح بدون علامت در نظر می گیرند و تضمین کنندهٔ تولید رشته به حالت normalize شده نیست و تضمین های خاص زمانی هم ندارد. علت این تصمیم گیری سادگی در پیاده سازی ذکر شده است.

    نوع عدد: نوع عدد در جاوا اسکریپت مطابق با استادارد IEEE برای اعداد شناور دودویی است (با اندکی تفاوت).

    نوع شی: شی در جاوا اسکریپت یک مجموعه بدون ترتیب از ویژگی ها است. هر ویژگی می تواند داخلی، فقط-خواندنی، غیر قابل حذف، و غیر قابل پیمایش باشد (یا ترکیبی از این ها یا هیچ کدام)



    تبدیلات خودکار

    این زبان دارای تبدیلات خود کار بین این انواع داده ای است.


    زمانی که بخواهد یک if را ارزیابی کند یا از عملگرهای منطقی ! و && و || استفاده شود، تبدیل به نوع دودویی را انجام می دهد. مقادیر 0 و 0- وNaN به false و سایر مقادیر عددی به true نگاشت می گردد. همچنین رشتهٔ تهی false و سایر رشته ها true در نظر گرفته می شود. انواع شی و تابع true و undefined و null هم false در نظر گرفته می شود.

    زمانی که یکی از عملوند های عملگر + رشته باشد، تبدیل به رشته صورت می گیرد، مانند 5 + “37” که می شود “537”

    عملگرهای دیگری عددی (جز جمع) منجر به تبدیل به عدد می گردد مانند 3 – “57” که مقدار عددی 34- را به دست می دهد.

    مثال

    برنامه های ورودی و خروجی در مرورگر وب:

    کد:
    کد:
       <script type="text/javascript"> 	alert ("Hello world"); 	var x = prompt("Enter Name:", "Default name"); 	alert ( "Hello, " + x ) </script>   برای استفاده ساده از عناصر HTML و DOM: <script type="text/javascript"> 	document.write("Hello world"); 	function handle() { 		document.write("You entered: " + document.getElementById("myinput").value ); 	} </script>   <form> <input type="text" id="myinput"/> <input type="button" onclick="handle()" value="Click here" /> </form>
    برنامه sort:

    کد:
    کد:
       <script type="text/javascript"> 	var myarray = [1,5,8,2,3,0,2,9,11]; 	var i = 0; 	var j = 0; 	for (i = 0; i < myarray.length ; ++i ) 	{ 		for (j = 0; j < myarray.length; ++j) 		{ 			if (myarray[i] < myarray[j]) 			{ 				var tmp = myarray[i]; 				myarray[i] = myarray[j]; 				myarray[j] = tmp; 			} 		} 	}   	for (i = 0; i < myarray.length; ++i) 	{ 		document.write (myarray[i] + " " ); 	} </script>




    فروشگاه نمونه سوالات پیام نور با پاسخنامه تستی و تشریحی



    دانلود رایگان نمونه سوالات دانشگاه پیام نور





    http://up.pnu-club.com/images/00ld7yux3ay3itvspd7n.png
    برای دانلود رایگان نمونه سوالات پیام نور با جوابهای تستی و تشریحی در مقطع نمونه سوالات کارشناسی ارشد پیام نور - نمونه سوالات پیام نور کارشناسی - نمونه سوالات پیام نور دکترا- نمونه سوالات آزمونهای فراگیر پیام نور( دانشپذیری)

    به ادرس زیر مراجعه کنید

    نمونه سوالات رایگان پیام نور




  6. #26
    Borna66 آواتار ها
    • 55,397
    مدير بازنشسته

    عنوان کاربری
    مدير بازنشسته
    تاریخ عضویت
    Mar 2009
    محل تحصیل
    خيام-سهراب
    شغل , تخصص
    طراح و تحلیل گر حرفه ای وب
    رشته تحصیلی
    مهندسي نرم افزار
    راه های ارتباطی
    پست های وبلاگ
    29

    پیش فرض

    زبان برنامه نویسی دلفی :

    دِلفی (به انگلیسی: Delphi) یا به تعبیری ویژوآل پاسکال – یک زبان برنامه نویسی است و بستری برای توسعهٔ نرم افزار که شرکت بورلند آن را تولید کرده است و بعدها توسط امبارکادرو خریداری شد. این زبان، در بدو انتشار خود در سال ۱۹۹۵، به عنوان یکی از نخستین ابزارهایی مطرح شد که از توسعهٔ نرم افزار بر مبنای متدولوژی راد(RAD: Rapid application development) یعنی تولید و توسعهٔ سریع برنامه های کاربردی پشتیبانی می کردند.

    این نرم افزار بر مبنای پاسکال شی گرا بوده و از این زبان مشتق شده است. البته بورلند نسخه ای از دلفی و سی پلاس پلاس بیلدر را برای لینوکس به نام کایلیکس (Kylix) ارائه کرد که مورد استقبال توسعه دهندگان نرم افزارهای لینوکس قرار نگرفت. نرم افزارهای دلفی در ابتدا به صورت مستقیم از کتابخانه های ویندوز و کتابخانهٔ مخصوص خود به نام VCL استفاده می کرد، اما پس از نسخه ۶ دلفی، امکانات استفاده از دات نت هم به آن اضافه شد. در حال حاضر می توان دلفی را یکی از رایج ترین زبان های ممکن در ایران دانست.

    زبانِ دلفی که پیشتر بنام پاسکال شیءگرا (Object-Pascal) خوانده می شد و برای طراحی نرم افزاهای تحت ویندوز به کار می رفت، امروزه چنان توسعه یافته است که برای تولید نرم افزارهای تحت سیستم عاملِ لینوکس و دات نت نیز به کار می آید. بیشترین کاربرد دلفی در طراحی برنامه های رومیزی و پایگاه داده ها است، اما به عنوان یک ابزارِ «چند- منظوره»، برای طراحی انواع گوناگونی از پروژه های نرم افزاری نیز مورد استفاده قرار می گیرد.

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

    دلفی یک محیط نرم افزاری توسعه یافته برای برنامه های مخصوص ویندوز مایکروسافت است. این محیط همیشه پشتیبانی شده است برای توسعهٔ برنامه های کاربردی پنجره ای محلی توسط زبان برنامه نویسی دلفی ، به علاوه توسعهٔ Opject Pascal. دلفی ۲۰۰۷، نسخه۱۱، همچنین توسعهٔ در C++ برای پایگاه های ویندوز مایکروسافت ۳۲بیتی، و در دلفی و C# برای پایگاه های Microsoft.NET را پشتیبانی می کند.

    دلفی ۲۰۰۹، نسخهٔ ۱۲ ، یعنی آخرین نسخهٔ آن که در آگوست سال ۲۰۰۸ منتشر شد، حمایت از Unicode برای VCL و IDE را به خوبی ویژگی های کامپایلر جدید (روش های عمومی و تخلصی) به برنامه اضافه کرد و IDE همراه اولین نسخه از مدیریت منابع و مدیریت بازرسی و نگهداری پروژه به خوبی پیکر بندی های ساخت تعریف شدهٔ کاربر آسان کرد.

    دلفی در اصل برای توسعهٔ برنامه های روی میزی و پایگاه های داده ای سازمانی استفاده می شود، اما ابزار توسعهٔ نرم افزاری با هدف کلی تری که مناسب با اکثر پروژه های نرم افزاری است ، می باشد. به همراه کتابخانه های ضمیمه شدهٔ بیشتر، امکان بهتری برای پروژه های تحت شبکه فراهم شده است. دلفی در نسخه های مختلف با ویژگی های متفاوتی گسترش یافته است: شخصی(فعلاً در دسترس نیست)، حرفه ای، سازمانی(قبلاً کارگزار و کاربری) و معماری.

    ویژگی های اختصاصی

    دلفی و Kylix از زبان برنامه نویسی دلفی مبتنی بر پاسکال استفاده می کنند، و کد منبع دلفی را به کد محلی x۸۶ یا کد مدیریت شدهٔ .NET کامپایل می کند. آن ها شامل VCL/CLX (کتابخانهٔ مؤلفه دیداری) هستند، که رابط های مستقل COM(ریزفیلم های خروجی کامپیوتر) همراه اجرای کلاس های فرض شده با مرجع ، و تعداد زیادی از اجزاء بیگانه را حمایت می کنند.

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

    مزیت ها

    دلفی یک زبان برنامه نویسی قوی سطح بالا است. در اصل بر مبنای زبان برنامه نویسی خوب طراحی شدهٔ پاسکال ایجاد شده است. دلفی بر خلاف پاسکال مقدمتاً برای اهداف تحصیلی طراحی نشد. اضافه بر ویژگی های زبان های سطح بالا ، برنامه نویسی سطح پایین نیز با فعال شدن اسمبلر و بوسیلهٔ کدهای دستورالعمل پردازنده نیز ممکن است.

    ویژگی های شیئ گرایی زبان فقط چند ریختی بر مبنای کلاس- و رابط – که باعث می شود برنامه با وضوح بیشتری درظاهر یک برنامه نوشته شده به چند زبان نوشته شود، اجازه و استفاده چند ارثی داده شده. کلاس های خودی، اولین اشیاء کلاس هستند.

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

    (به خوبی رشته های نا متناهی) ترجیحاً نسبت به توابع، رشته ها بوسیله علامت + می توانند ملحق شوند. برای آن دسته از انواع رشته ای اختصاص داده شده، مدیریت حافظه توسط خودمان لازم نیست، بلکه مدیر حافظه این را مدیریت می کند. مدیر حافظهٔ پیشرفته که توسط Borland Developer Studio ۲۰۰۶ معرفی شده است، توابعی را برای اختصاص دادن حافظه فراهم می کنند.

    زبان برای پیشرفته سازی های بعدی مناسب است و از IDE جامع آمده است. دلفی با یک رابط گرافیکی بزرگ به اسم VCL ارتباط خوبی دارد، که شامل خیلی از کدهای منبع آن است. سوم-اجزا حزب (معمولا با منبع کامل قانون) موجود در بازار هم به منزله تقویت ide یا برای سایر کارهای دلفی مربوط به توسعه است.

    IDE شامل واسط گرافیکی برای محلی سازی و ترجمهٔ برنامه های ایجادشده که می تواند به یک مترجم گسترش داده شود ، بدون هزینهٔ اضافی.(برخی از گسترش دهنده ها دستهٔ سوم محصولات را به خاطر عاملیتی که دارند ترجح می دهند.) رابط گرافیکی حالتی را پیش می آورد که نسخه های قدیمی به نسخه های جدید دلفی، تبدیل شوند.

    کتابخان های دسته سوم می توانند از طریق فروشنده یا قابلیت های کامپایل دوباره برنامه را ارتقا داده شوند. VCL سازگار کنندهٔ قدیمی ای بود از تزریق وابستگی یا کنترل معکوس. VCL یک مدل با قابلیت استفاده دوباره ، خبره و توسعه پذیر با ارتقا دهنده هاست. با کمک کنندهٔ کلاس ، می توان عملکرد هستهٔ RTL و کلاس های VCL را بدون تغییر دادن منبع اصلی کد تغییر داد. بهینه سازی سریع وسادهٔ انتقال کامپایلری می تواند به برنامهٔ اجرایی تبدیل کند.CLX بیشتر پشتیبانی نشد چون Kylix از رده خارج شد.

    عیب ها

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

    این به کاربران امکان می دهد تا کدهای ارث برده شده بسازند بدون اینکه در توابع و رابط ها مشکلی پیش بیاید. اما بعضی از ارتقا دهندگان احساس می کنند ای توجه به سازگاری با قبل از تحول در دلفی جلو گیری کند، و باعث کهنگی و از رده خارج شدن تصمیمات طراحی در کتابخانه های استاندارد کلاس(VCL/RTL) شود. در حال حاضر توسعه های ۶۴ بیتی در دلفی موجود نیست، اما نسخه ای با نام Commodore که در اواسط ۲۰۰۹ به بازار خواهد آمد در حال برنامه ریزی است.

    نام

    دلفی در اصل پروژهٔ تحقیقاتی محرمانه ای بود در Borland که منجر به محصولی شد که AppBuilder نامیده می شد. کمی قبل از اولین انتشار AppBuilder از طرف Borland ، Novell AppBuilder منتشر شد، که Borland را در نیاز اسمی جدید رها کرد. بعد از تلاش زیادی، نام دلفی غلبه کرد.

    توسعه دهنده Danny Thorpe کدنام دلفی را با مرجع Oracle at Delphi انتخاب کرد. یکی از اهداف اصلی دلفی تأمین اتصال پایگاه داده با برنامه نویس به عنوان یک ویژگی کلیدی بود و بستهٔ پایگاه داده ای رایج در آن زمان Oracle database بود. بنابراین«اگر می خواهید با Oracle صحبت کنید، به دلفی بروید.

    » همینطور که توسعه ادامه یافت ، نام بر آنها رشد کرد و حمایت Borland نیزاز نام دلفی بیشتر شد. دورهٔ بعدی تولید کنندگان Anders Hejlsberg، معمار اصلی دلفی و Turbo pascal ، در سال ۱۹۹۶ تحت استخدام Microsoft در آمد، جایی که او یک مهرهٔ کلیدی بود در تولید قالب های گرافیکی Microsoft.NET و منجر به طراحی هر دوی Java با گرایش J++ و C# شد. Chuck Jazdzewski، کسیکه دانشمند رئیس و معمار در تکنولوژی دلفی Borland بود،در سال ۲۰۰۴ Borland را ترک کرد و به Microsoft پیوست. Danny Thorpe ، دانشمند رئیس در آن موقع در ۲۰۰۵ به Google پیوست و در ۲۰۰۶ به Microsoft پیوست.

    دلفی برای PHP

    دلفی بزای PHP یکIDE برای PHP است. این عملکرد صحیح RAD را فراهم می کند. این ویژگی های دلفی یا Visual basic از طرف طراح، اصلاح کنندهٔ خطا(بنا شده بر خدمات دهندهٔ شبکه)، شبیه هستند. این همچنین شامل کتابخانه VCL که به PHP منتقل شده است می باشد. برای حمایت از ویژگی های Web۲ شبیه AJAX، آن را به یک IDE منحصر به فرد تبدیل کرده است. این محصول در ۲۰ مارس ۲۰۰۷ معرفی شد و برQadram Qstudio بنا شده است، که CodGear الآن کاملاً و انحصاراً مالک آن است.

    محصولاتی که توسط دلفی تولید شده است

    در میان خیلی از محصولاتی که توسط دلفی تولید شده است داریم:

    • محاسباتی: Intuit Lacerte

    • محصولات CodeGear : CodeGear Delphi, CodeGear C++ Builder, Borland JBuilder versions 1 and ۲

    • گسترش ومدیریت پایگاه داده: MySQL Tools (Administrator, Query Browser), TOAD

    • نرم افزارهای مهندسی: Altium Designer/Protel (electronics design)

    • نمایش دهنده عکس: FastStone Image Viewer, FuturixImager, Photofiltre

    • پیام دهندهٔ اینترنت: Skype (VoIP and IM), QIP (IM), The Bat! (e-mail کاربر), PopTray (e-mail چک کننده), FeedDemon (feed viewer), XanaNews, Xnews (خوانندهٔ اخبار گروهی)

    • تولید Music : FL Studio • توسعهٔ نرم افزار: Dev-C++ (IDE), DUnit (unit testing), Help & Manual (help system authoring), Inno Setup (installer engine)

    • نویسندگی شبکه: Macromedia HomeSite (HTML ویرایش گر), TopStyle Pro (CSS ویرایش گر), Macromedia Captivate (screencast)

    • جستجوگر شبکه (پوشش MSIE): Avant Browser, Netcaptor

    • تسهیلات: Spybot - Search & Destroy, Ad-Aware (anti-spyware), jv16 PowerTools, Total Commander (file manager), Copernic Desktop Search, PowerArchiver, Beyond Compare(file comparison)], WordWeb
    (dictionary/thesaurus
    خیلی از کامپایلرهای Pascalشئ گرا وجود دارند که در اصل بوسیلهٔ Borland توسعه یافته اند، و همچنین محصولاتی که قالب های گرافیکی را مثل دلفی کاملاً فراهم کردند. بعضی از آنها کارهایی را انجام می دهند که دلفی نمی تواند، مثل حمایت از سیستم عامل های مختلف، و اجازه برای امتحان کد منبع کامپایلر. آنها بعضی مواقع عادت دارند

    بخش های server از برنامه های دلفی را در سیستم عامل هایی به غیر سیستم عامل های Microsoft اجرا کنند. اکثراً حمایت Linux را در سال های قبل از Kylix داشتند.

    • Bloodshed Dev-Pascal: ویرایش گر Windows ۳۲ بیتی خیلی از لحاظ گرافیکی آراسته شده(هر چند غیر RAD) به عنوان تنظیم کنندهٔ GNU Pascal و Free Pascal
    • Lazarus: IDE RAD که از کامپایلر رایگان Pascal استفاده می کند.




    فروشگاه نمونه سوالات پیام نور با پاسخنامه تستی و تشریحی



    دانلود رایگان نمونه سوالات دانشگاه پیام نور





    http://up.pnu-club.com/images/00ld7yux3ay3itvspd7n.png
    برای دانلود رایگان نمونه سوالات پیام نور با جوابهای تستی و تشریحی در مقطع نمونه سوالات کارشناسی ارشد پیام نور - نمونه سوالات پیام نور کارشناسی - نمونه سوالات پیام نور دکترا- نمونه سوالات آزمونهای فراگیر پیام نور( دانشپذیری)

    به ادرس زیر مراجعه کنید

    نمونه سوالات رایگان پیام نور




  7. #27
    Borna66 آواتار ها
    • 55,397
    مدير بازنشسته

    عنوان کاربری
    مدير بازنشسته
    تاریخ عضویت
    Mar 2009
    محل تحصیل
    خيام-سهراب
    شغل , تخصص
    طراح و تحلیل گر حرفه ای وب
    رشته تحصیلی
    مهندسي نرم افزار
    راه های ارتباطی
    پست های وبلاگ
    29

    پیش فرض

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

    روبی (به انگلیسی: Ruby) یک زبان برنامه نویسی انعطافپذیر، پویا و شی گرا است. روبی ویژگی های نگارشی پرل و شی گرایی اسمال تاک را با هم در خود دارد. زبان روبی در سال های میانی دهه ۱۹۹۰ توسط یوکیهیرو ماتسوموتو در ژاپن اختراع شد. ویژگی های گوناگون زبان های پرل، لیسپ، اسمال تاک و آیفل الهام بخش ماتسوموتو در ساخت روبی بودند.

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

    نسخه فعلی این زبان Ruby 1.9.1 است که به زبان سی و بصورت زبانی با مفسر تک گذره پیاده سازی شده است. تا سال ۲۰۱۰، گونه های مختلفی از زبان روبی توسعه یافته اند که از میان آنها می توان به جی روبی، روبینوس، مک روبی، آیرن روبی و هات روبی اشاره کرد.

    تاریخچه


    زبان روبی رسما در روز ۲۴ فوریه ۱۹۹۳ (۵ اسفند ۱۳۷۱) توسط یوکیهیرو ماتسوموتو معرفی شد. او دنبال ساخت زبانی بود که امکانات متعادلی برای برنامه نویسی تابعی و برنامه نویسی دستوری برای برنامه نویس فراهم آورد. ماتسوموتو درباره انگیزه اش برای ساخت روبی می گوید: «در جستجوی زبانی بودم که از پایتون شیء گراتر و از پرل قدرتمندتر باشد. برای همین تصمیم گرفتم خودم آن را بسازم».

    نام «روبی»

    یوکیهیرو ماتسوموتو و همکارش دو نام «روبی» و «کورال» را برای این زبان جدید برگزیده بودند. از آنجاییکه نام کورال پیش از آن برای یکی از زبان های برنامه نویسی بریتانیایی انتخاب شده بود، نام «روبی» به عنوان نام نهایی برگزیده شد. ماتسوموتو گفته که یکی از دلایل انتخاب نام «روبی» این بود که یاقوت (به انگلیسی: Ruby) نشان ماه تولد یکی از همکاران وی بوده است.

    اولین انتشار

    نخستین ویرایش روبی با عنوان روبی 0.95 در ۲۱ دسامبر ۱۹۹۵ (میلادی) (۳۰ آذر ۱۳۷۴) روی یکی از شبکه های تخصصی اینترنتی در ژاپن منتشر شد. پس از آن، سه ویرایش دیگر رویی در ظرف دو روز انتشار یافتند. در همین دوره نخستین لیست پست الکترونیک برای روبی در ژاپن براه افتاد.

    روبی ۱.۰

    نخستین نسخه اصلی روبی با عنوان روبی 1.0 در ۲۵ دسامبر ۱۹۹۶ (۵ دی ۱۳۷۵) منتشر شد. پس از انتشار روبی 1.3 در سال ۱۹۹۹، نخستین لیست پست الکترونیک به زبان انگلیسی آغاز بکار کرد. در سپتامبر سال ۲۰۰۰ نخستین کتاب راهنمای برنامه نویسی به زبان روبی به انگلیسی به چاپ رسید که به افزایش محبوبیت این زبان در کشورهای مختلف کمک کرد.

    روبی آن ریلز

    در سال ۲۰۰۵ با معرفی چارچوب جدیدی برای برنامه نویسی وب موسوم به روبی آن ریلز، محبوبیت زبان روبی به مراتب افزایش پیدا کرد. نام های «روبی» و «روبی آن ریلز» آنقدر با هم استفاده شده اند که برای بسیاری شاید تفاوت این دو روشن نباشد.

    روبی ۱.۹.۱

    جدیدترین نسخه پایدار روبی، نسخهٔ ۱.۹.۱ است که نسبت به نسخهٔ پیشین (۱.۸.۶) چند تغییر عمده در خود دارد. از جمله تغییرات مهم می توان به افزودن متغیرهای محلی در «بلوک»های روبی، و امکان تنظیم کدگذاری رشته ها بصورت مستقل از هم اشاره کرد.

    فلسفه

    سازنده زبان روبی یوکیهیرو ماتز ماتسوموتو می گوید روبی برای سازندگی بهتر برنامه نویس طراحی شده است که هدف User interface را به خوبی دنبال می کند.او نگران است که طراحی سیستم ها به جای کامپیوتر نیاز به توجه بر انسان ها داشته باشد.معمولا مردم‚مخصوصا مهندسان کامپیوتر بر روی ماشین تمرکز کند.آن ها فکر می کنند"با انجام این کار ماشین ها سریعتر می شوند‚ماشین ها در اجرا موثر تر می باشندو....

    آن ها بر ماشین تمرکز می کنند‚اما در حقیقت ما نیاز داریم که به انسان ها توجه کنیم‚اینکه چگونه آنها به برنامه نویسی توجه دارندویا چگونه به اجرای برنامه های ماشین دقت می کنند.

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

    اما کمترین غافلگیری هنوز خیلی به بیان زبان برنامه نویسی روبی نزدیک است. افراد ناشی شاید این را به این معنا تعبیر کنند که رفتار های روبی سعی در متصل کردن اشتراکات رفتار های دیگر زبان ها را دارد. در بحث ماه می ۲۰۰۵ در روزنامه "کامپ.لنگ.روبی " ماکسوموتو تلاش کرد که روبی را از مینیمم غافلگیری دور کند.توضیح اینکه هر شانس طراحی بعضی ها را متعجب می کند. او از استاندارد خود برای ارزیابی غافلگیری استفاده کرد.

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

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

    معنی شناسی

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

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

    بر طبق سوالات متداول روبی" اگر تو به پرل علاقمند باشیتو روبی را هم دوست خواهی داشت ومی توانی از نحو آن استفاده کنی‚اگر اسمالتالک را دوست داری روبی را هم دوست خواهی داشت و می توانی از معنای آن لذت ببری و اگر طرفدار پیتون هستی تو ممکن است تفاوت عمده ای بین پیتون و روبی پیدا کنی یا که نه.

    امکانات

    1. کاملا شی گرا
    2. داینامیک
    3. نحو کوتاه و انعطاف پذیر
    4. چهار سطح از حوزه دید متغیر شامل: global, class ,instance ,local
    5. exception handling
    6. پشتیبانی از iterators و closures (بر اساس تبادل بلوکهای کد)
    7. پشتیبانی محلی از regular expressions (شبیه پرل) در سطح زبان
    8. operator overloading
    9. جمع آوری زباله خودکار
    10. قابلیت حمل بالا
    11. در همه سیستم عامل اصلی پیاده سازی
    12. پردازش استثنا
    13. سربار اپراتور
    14. پشتیبانی شراکتی از multi-threading در تمام پلتفرمهای با استفاده از green threads
    15. پشتیبانی کامل از یونیکد و رمزنگاریهای شخصیت چند گانه (از نسخه 1.9)
    16. کتابخانه*های اشتراکی/DLL در اکثر پلتفرمها
    17. introspection, reflection و meta-programming
    18. اتصال بومی APIها در C
    19. پوسته تعاملی روبی (REPL)
    20. بسته مدیریت متمرکز از طریق RubyGems
    21. کتابخانه استاندارد بزرگ
    22. پشتیبانی از dependency injection
    23. continuations و generators



    تعامل


    توزیع استاندارد روبی دارای یک مفسر تعاملی خط فرمان بنام irb است که می تواند برای آزمایش سریع کد بکار رود. یک نشست با این برنامه تعاملی بصورت زیر است:

    کد:
    کد:
     [PHP]   $ irb irb(main):001:0> puts "Hello, World" Hello, World =>  nil irb(main):002:0> 1+2 => [/PHP]
    همچنین وجود ماژول readline به کاربر امکان استفاده از shell های مختلف را با پشتیبانی از تاریخچه تغییرات می دهد.

    کد:
    کد:
     [PHP]    Readline.readline(, true) # param true means ~  "enable history" [/PHP]


    سینتکس


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

    (وقتی از چنین علائمی استفاده شود علامت حوزه دید متغیر را تغییر می دهد.) بارزترین تفاوت روبی از سی و پرل آنست که کلمات کلیدی (بجای براکت) برای تعریف بلوکهای کد استفاده می شوند.

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

    چیزهای غافلگیر کننده

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

    نامهایی که با حرف بزرگ شروع می شوند به عنوان ثابت (constant) در نظر گرفته می شوند، بنابراین متغیرهای محلی بایستی با حروف کوچک آغاز شوند.

    به منظور وضوح مقادیر اعشاری (float) ، بایستی با یک صفر بعد از نقطه مشخص شوند (99.0) یا اینکه از یک تبدیل صریح (99.to_f) استفاده شود. تنها اضافه کردن یک نقطه بعد از عدد (.99) کافی نیست زیرا در این حالت اعداد مستعد پذیرش به عنوان یک متد هستند.

    مقادیر بولین اطلاعات غیر بولین سخت گیرانه هستند: 0 ، “” و [] برابر با true هستند. در سی عبارت 0 : 1 ? 0 برابر با صفر (همان false) است در حالیکه در روبی نتیجه آن 1 است زیرا تمام اعداد برابر true هستند و فقط nil و false برابر false هستند. یک نتیجه فرعی از این عمل آنست که در روبی متدها بر طبق قرارداد --

    برای مثال یک جستجوی regular-expression – در صورت موفقیت اعداد، رشته ها، لیستها یا سایر مقادیر غیر false را بر می گردانند، و در صورت شکست nil برمی گردانند. این قرارداد در اسمال تاک هم بکار می رود که تنها اشیا مخصوص true و false می توانند در عبارات بولین استفاده شوند.

    در نسخه های ماقبل از 1.9 عدم وجود نوع داده کاراکتر (در مقایسه با سی که نوع داده char را برای کاراکترها داراست) ممکن غافلگیر کننده باشد. در هنگام بریدن رشته ها [0]“abc” مقدار 97 را برمی گرداند (یک integer که شماره کد اسکی اولین حرف رشته است.)، برای بدست آوردن “a” باید از [0,1]“abc” (یک زیر رشته بطول 1) یا "abc"[0].chr استفاده کرد.

    در ضمن برخی مسائل در مورد خود زبان برجسته است:

    در مورد سرعت، عملکرد روبی در قیاس با بسیاری از زبانهای کامپایل شده پایین تر است (همانند هر زبان تفسیر شده دیگر) و همچنین در قیاس با زبانهای اسکریپت نویسی اصلی مانند پرل و پایتون همین حالت وجود دارد. هرچند که در نسخه های آینده روبی بصورت بایت کد (bytecode) کامپایل خواهد شد و بر روی YARV (خلاصه Yet Another Ruby VM) اجرا خواهد شد. در حال حاضر حافظه بکار رفته در برنامه های نوشته شده در روبی کمتر از حافظه بکار رفته در همان برنامه ها که با پرل و پایتون نوشته شده اند، است.

    مثالها

    مثال کلاسیک Hello world:

    کد:
    کد:
     [PHP]    puts "Hello World!" [/PHP]


    مقداری کد اساسی روبی:


    کد:
    کد:
     [PHP][PHP]   # Everything, including a literal, is an object, so this  works: -199.abs                                       # 199 "ruby is  cool".length                          # 12 "Rick".index("c")                               # 2 "Nice Day Isn't It?".split(//).uniq.sort.join  # "  '?DINaceinsty" [/PHP][/PHP]
    Collections

    ایجاد و استفاده از یک آرایه:
    کد:
    کد:
     [PHP]   a = [1, 'hi', 3.14, 1, 2, [4, 5]]  a[2]                      #  3.14 a.reverse                 # [[4, 5], 2, 1, 3.14, 'hi', 1]  a.flatten.uniq            # [1, 'hi', 3.14, 2, 4, 5] [/PHP]


    ایجاد و استفاده از یک هش:

    کد:
    کد:
     [PHP]   hash = {:water => 'wet', :fire => 'hot'} puts hash[:fire]                   # Prints:  hot  hash.each_pair do |key, value|    # Or:   hash.each do |key, value|   puts "#{key} is #{value}" end  # Prints:   water is wet #          fire is hot  hash.delete_if {|key, value| key  == :water}         # Deletes :water => 'wet' [/PHP]
    Blocks and iterators

    هر دو سینتکس برای ایجاد یک بلوک کد:

    کد:
    کد:
     [PHP]   { puts "Hello, World!" }  do puts "Hello, World!" end [/PHP]
    ارسال پارامتر به یک بلاک تا یک closure شود:

    کد:
    کد:
     [PHP]   # In an object instance variable, remember a block. def  remember(&b)    @block = b end  # Invoke the above method, giving it  a block that takes a name. remember {|name| puts "Hello, #{name}!"}  #  When the time is right (for the object) -- call the closure!  @block.call("John") # Prints "Hello, John!"  بازگشت closure از یک متد:   def foo(initial_value=0)   var = initial_value   return Proc.new {|x|  var = x}, Proc.new { var } end  setter, getter = foo setter.call(21)  getter.call           # => 21 [/PHP]



    دادن جریان کنترل یک برنامه به یک بلوک که در هنگام فراخوانی ایجاد شده:


    کد:
    کد:
     [PHP]   def a    yield "hello" end  # Invoke the above method, passing  it a block. a {|s| puts s}        # Prints: 'hello' # Perhaps the  following needs cleaning up.  # Breadth-first search def bfs(e)                       # 'e' should be a block.    q = []                       #  Make an array.    e.mark                       # 'mark' is a  user-defined method. (??)    yield e                      # Yield to the  block.    q.push e                     # Add the block to the array.     while not q.empty?           # This could be made much more Ruby-like.        u = q.shift       u.edge_iterator do |v|          if not v.marked?        # 'marked?' is a user-defined method.             v.mark              yield v             q.push v          end       end      end end bfs(e)  {|v| puts v} [/PHP]



    ایجاد حلقه بر روی آرایه ها و enumoration ها با استفاده از بلوکها:

    کد:
    کد:
     [PHP]   a = [1, 'hi', 3.14] a.each {|item| puts item}                          # Prints each element (3..6).each {|num| puts num}                       # Prints the numbers 3 through 6 [1,3,5].inject(0) {|sum, element|  sum + element}  # Prints 9 (you can pass both a parameter and a block)  [/PHP]
    بلوکها با بسیاری از متدهای داخلی روبی کار می کنند:
    کد:
    کد:
     [PHP]   File.open('file.txt', 'w+b') do |file|    file.puts 'Wrote some  text.' end                             # File is automatically closed  here [/PHP]یا:
    کد:
    کد:
     [PHP]   File.readlines('file.txt').each do |line|    # Process each line, here. end [/PHP]


    استفاده از یک enumoration و یک بلوک برای جذر گرفتن اعداد 1 تا 10:


    کد:
    کد:
     [PHP]   (1..10).collect {|x| x x}    => [1, 4, 9, 16, 25, 36, 49, 64, 81, 100] [/PHP]
    کلاسها

    کد زیر یک کلاس بنام Person را تعریف می کند.

    کد:
    کد:
     [PHP]   class Person   def initialize(name, age)     @name, @age = name,  age   end    def <=>(person)     @age <=> person.age   end     def to_s     "#{@name} (#{@age})"   end    attr_reader :name, :age end   group = [ Person.new("John", 20),            Person.new("Markus", 63),             Person.new("Ash", 16)          ] puts group.sort.reverse  [/PHP]


    کد بالا سه نام را بر حسب سن از زیاد به کم چاپ می کند:

    کد:
    کد:
     [PHP]   Markus (63) John (20) Ash (16) [/PHP]


    استثناها


    یک استثنا (exception) توسط اعلان raise ایجاد می شود:

    کد:
    کد:
     [PHP]   raise [/PHP]
    یک پیام اختیاری می تواند به استثنا اضافه شود:
    کد:
    [PHP] raise "This is a message" [/PHP]شما همچنین می توانید تعیین کنید که چه نوعی از استثنا را میخواهید ایجاد کنید:
    کد:
    کد:
     [PHP]   raise ArgumentError, "Illegal arguments!" [/PHP]


    استثناها توسط rescue کنترل می شوند. این عنوان می تواند استثناهایی را که از StandardError مشتق می شوند بگیرد:


    کد:
    کد:
     [PHP]   begin   # Do something rescue   # Handle exception end [/PHP]
    توجه داشته باشید که تلاش برای گرفتن تمام استثناها توسط یک rescue یک اشتباه معمول است و برای گرفتن تمام استثناها باید بصورت زیر عمل کرد:

    کد:
    [PHP] begin # Do something rescue Exception # Handle exception end [/PHP]

    یا یک استثنای بخصوص:

    کد:
    [PHP] begin # ... rescue RuntimeError # handling end [/PHP]و نهایتا امکان آن وجود دارد که تعیین کرد شی استثنا برای عنوان کنترل کننده مهیا شود:

    کد:
    [PHP] begin # ... rescue RuntimeError => e # handling, possibly involving e end [/PHP]همچنین آخرین استثنا در یک متغیر جهانی بصورت !$ ذخیره می شود.


    سیستم عامل ها


    روبی برای سیستم عامل های زیر ارائه می شود:

    1. بیشتر انواع یونیکس
    2. لینوکس
    3. داس (رایانه)
    4. ویندوز ۹۵/۹۸/اکس پی/ان تی/۲۰۰۰/ویستا/۷
    5. مکینتاش OSX
    6. BeOS
    7. Amiga
    8. MorphOS
    9. Acron RISC OS
    10. OS/2
    11. Syllable




    فروشگاه نمونه سوالات پیام نور با پاسخنامه تستی و تشریحی



    دانلود رایگان نمونه سوالات دانشگاه پیام نور





    http://up.pnu-club.com/images/00ld7yux3ay3itvspd7n.png
    برای دانلود رایگان نمونه سوالات پیام نور با جوابهای تستی و تشریحی در مقطع نمونه سوالات کارشناسی ارشد پیام نور - نمونه سوالات پیام نور کارشناسی - نمونه سوالات پیام نور دکترا- نمونه سوالات آزمونهای فراگیر پیام نور( دانشپذیری)

    به ادرس زیر مراجعه کنید

    نمونه سوالات رایگان پیام نور




  8. #28
    Borna66 آواتار ها
    • 55,397
    مدير بازنشسته

    عنوان کاربری
    مدير بازنشسته
    تاریخ عضویت
    Mar 2009
    محل تحصیل
    خيام-سهراب
    شغل , تخصص
    طراح و تحلیل گر حرفه ای وب
    رشته تحصیلی
    مهندسي نرم افزار
    راه های ارتباطی
    پست های وبلاگ
    29

    پیش فرض

    زبان برنامه نویسی سی ( C )

    زبان محبوب من

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

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

    بسیاری از ایده های مهم و ریشه ای زبان C از زبان BCPL گرفته شده است که توسط مارتین ریچاردز (Martin Richards) طراحی و توسعه یافت. از طریق زبان B، زبان BCPL به صورت غیر مستقیم بر روی زبان C اثر گذاشت که به نوبهٔ خود در سال ۱۹۷۰ توسط کن تامپسون (Ken Tampson) روی رایانه DEC PDP-۷ برای اولین سیستم عامل UNIX نوشته شد.

    ویژگی ها

    این زبان یک زبان برنامه نویسی سطح میانی است.
    زبان C یک زبان ساخت یافته است.
    زبان C قابل انعطاف و بسیار قدرتمند است. در این زبان هیچ محدودیتی برای برنامه نویس وحود ندارد.
    C زبان برنامه نویسی سیستم است.
    C یک زبان قابل حمل است.
    C زبان کوچکی است. تعداد کلمات کلیدی آن انگشت شمار است.
    C نسبت به حروف حساس است. و تمام کلمات کلیدی این زبان با حروف کوچک نوشته می شوند.


    BCPL و B، زبان های بدون نوع داده ای هستند. اما در مقابل آن، در زبان C انواع مختلفی از نوع های داده ای تدارک دیده شده است. نوع های اصلی و پایه ای انواع کارکتری و اعشاری اعداد با اندازه های مختلف هستند. علاوه بر این، سلسله مراتبی از انواع داده ای فرعی در زبان C وجود دارد که می توان آن ها را به همراه اشاره گرها (Pointers)، آرایه، ساختار (Structuers) و Union ها ایجاد کرد.

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

    C، یک زبان نسبتاً سطح پایین به شمار می آید، این یک توصیف تحقیرآمیز نبوده، و صرفاً به این معنی است که C با همین نوع از اشیائی سروکار دارد که بیشتر کامپیوترها با آن سروکار دارند، نظیر کارکترها، اعداد و آدرس ها. این اشیا را می توان با هم ترکیب کرد و می توان روی آنها همان عملیات محاسباتی و منطقی را انجام داد که توسط یک کامپیوتر حقیقی پیاده سازی کرد.

    سیستم عامل سیمبیان (symbian) با زبان C نوشته شده و بهمین دلیل این زبان به عنوان زبان اولیه برای برنامه نویسی در آن انتخاب شده است.C بیشترین امکان دسترسی به API های سیستم عامل سیمبیان را فراهم می کند و بهترین کارکرد در حافظه و سرعت اجرا را داراست. برای مثال این زبان قدرتمند را می توان در زمینه های زیر بکار گرفت:
    برنامه هایی که مانند سرور عمل می کنند. برای نمونه برنامه هایی که در پشت صحنه کار می کنند و یکی از بخش های سیستم- به عنوان مثال درگاه های COM - را مدیریت می کنند.
    PLUG in ها که محیطی را بر پایه سیستم عامل ایجاد می کنند. بطور مثال برنامه ای که فایل های html را به فایل های word سیمبیان تبدیل می کند از کتابخانه مبدل سیستم عامل استفاده می کند.
    درایورهای دستگاه که با Kernel کار متعامل می کنند و...

    استفاده از زبان C در سیستم عامل سیمبیان بر روی مناسب بودن کارکرد گوشی ها متمرکز شده است، که بدین معناست که چند تا از عملگرهای استاندارد زبان C مانند مدیریت استثناها قابل استفاده در برنامه نویسی سیمبیان نیستند.

    مدیریت حافظه


    یکی از مهمترین توابع زبان های برنامه نویسی فراهم آوردن ابزاری جهت ادارهٔ حافظه و اشیا ذخیره شده در حافظه می باشد. سی دو راه اصلی برای تخصیص حافظه به اشیا را فراهم می کند.

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

    تخصیص حافظه به صورت دینامیک : اندازه های اختیاری از بلاک های حافظه می توانند توسط توابع کتابخانه ای همانند تابع malloc از ناحیه ای از رم موسوم به هیپ در هنگام اجرای برنامه درخواست بشود. این بلاک های حافظه تا زمانیکه متعاقبا توسط تابع free به سیستم باز گردانده نشوند در حافظه باقی می مانند.

    برای تخصیص حافظه به صورت پویا(دینامیک) باید آدرس بلوک حافظه ای که توسط تابع malloc گرفته می شود را در یک اشاره گر ذخیره کنیم.

    کلمات کلیدی

    کد:
    کد:
    auto , double , int , struct , break , else , long , switch , case , enum , register , typedef




    فروشگاه نمونه سوالات پیام نور با پاسخنامه تستی و تشریحی



    دانلود رایگان نمونه سوالات دانشگاه پیام نور





    http://up.pnu-club.com/images/00ld7yux3ay3itvspd7n.png
    برای دانلود رایگان نمونه سوالات پیام نور با جوابهای تستی و تشریحی در مقطع نمونه سوالات کارشناسی ارشد پیام نور - نمونه سوالات پیام نور کارشناسی - نمونه سوالات پیام نور دکترا- نمونه سوالات آزمونهای فراگیر پیام نور( دانشپذیری)

    به ادرس زیر مراجعه کنید

    نمونه سوالات رایگان پیام نور




  9. #29
    Borna66 آواتار ها
    • 55,397
    مدير بازنشسته

    عنوان کاربری
    مدير بازنشسته
    تاریخ عضویت
    Mar 2009
    محل تحصیل
    خيام-سهراب
    شغل , تخصص
    طراح و تحلیل گر حرفه ای وب
    رشته تحصیلی
    مهندسي نرم افزار
    راه های ارتباطی
    پست های وبلاگ
    29

    پیش فرض

    زبان برنامه نویسی ابجکتیو سی ( Objective C )

    آبجکتیو-سی (به انگلیسی: Objective-C) یک زبان شی گرا است که با اضافه کردن مفاهیم ارسال پیام از زبان اسمال تاک به زبان سی ایجاد شده است. در حال حاضر استفادهٔ اصلی آن در محیط های Mac OS X و iPhone OS است.

    برنامه هایی از این زبان که از کتابخانه های خاص این محیط ها استفاده نکرده باشند در همهٔ محیط هایی که کامپایلر جی سی سی (GCC) استفاده می شود قابل استفاده اند.

    تاریخچه

    در سال های اولیهٔ ۱۹۸۰ روش غالب در مهندسی نرم افزار روش برنامه سازی ساخت یافته بود. این روش بر مبنای اصل تقسیم مسئله به اجزای کوچک تر و حل تک تک آن ها بنا شده بود. با افزایش اندازهٔ مسئله ها این روش به تدریج کارایی خود را از دست داد.

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

    Brad Cox و Tom Love زبان آبجکتیو-سی را در سال های اولیهٔ ۱۹۸۰ در کارخانه شان تولید کردند. Cox با الهام از زبان اسمال تالک با تغییر در کامپایلر زبان سی توانست امکانات شی گرایی را به آن اضافه کند. او نام این زبان را OOPC مخفف Object Oriented Programming in C گذاشت.

    بعدها با کمک Love محصول جدیدی به نام Productivity Products International یا PPI را ساخت که یک کامپایلر آبجکتیو-سی با کتابخانهٔ کلاس های قدرت مند بود.

    در سال ۱۹۸۸ شرکت NeXT مالکیت آبجکتیو-سی را از StepStone خرید و کامپایلر و کتابخانه های خاص خودش را منتشر کرد. پروژهٔ GNU نیز ورژن خودش به نام GNUStep را از کامپایلر این زبان منتشر کرد. بعد از خریده شدن NeXT توسط Apple این شرکت ابزارهایی برای کار با این زبان را منتشر کرد.

    دستور زبان

    زبان آبجکتیو-سی یک لایهٔ بسیار نازک روی زبان سی است. هر برنامه به زبان سی را می توان با کامپایلر آبجکتیو-سی کامپایل کرد. اکثر دستورات از زبان سی به ارث رسیده اند و تعدادی دستور برای ارسال پیغام به آن ها اضافه شده است.

    پیام ها


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

    فرستادن یک پیام به یک شی در این زبان به شکل زیر است:

    کد:
    کد:
    [obj method:parameter];
    این دستور مانند عمل زیر در سی++ است:
    کد:
    کد:
    obj->method(parameter);
    پیام های آبجکتیو-سی نیازی ندارند که اجرا شوند.اگر به شیئی پیامی بدهیم و آن شی متد مربوطه را پیاده سازی کرده باشد. اجرا می شود و در غیر این صورت اجرا نمی شود. حتی می توان به شی پوچ نیز پیام فرستاد.

    واسط ها و پیاده سازی ها

    آبجکتیو-سی نیاز دارد که واسط و پیاده سازی یک کلاس در بلوک های کد جداگانه قرار بگیرند. به طور قراردادی، واسط در یک فایل سرآیند با پسوند h. و پیاده سازی در یک فایل کد، معمولاً با پسوند m. قرار می گیرد.

    واسط

    واسط کلاس معمولاً در فایل سرآیند قرار می گیرد و معمولاً نام آن فایل سرآیند همان نام کلاس گذاشته می شود.

    نمونه ای از نحوهٔ تعریف واسط
    کد PHP:
    کد:
    @interface classname : superclassname { // instance variables } +classMethod1; +(return_type)classMethod2; +(return_type)classMethod3:(param1_type)parameter_varName; -(return_type)instanceMethod1:(param1_type)param1_varName :(param2_type)param2_varName; -(return_type)instanceMethod2WithParameter:(param1_type)param1_varName andOtherParameter:(param2_type)param2_varName; @end
    + نشان دهندهٔ توابع مربوط به خود کلاس و – نشان دهندهٔ توابع مربوط به یک نمونه از آن کلاس است. معادل کد بالا در سی++ به شکل زیر است.
    کد PHP:
    کد:
    class classname : superclassname { // instance variables // Class (static) functions static void classMethod1(); static return_type classMethod2(); static return_type classMethod3(param1_type parameter_varName); // Instance (member) functions return_type instanceMethod1(param1_type param1_varName, param2_type param2_varName); return_type instanceMethod2WithParameter(param1_type param1_varName, param2_type param2_varName=default); };
    یکی از موارد قابل توجه instanceMethod2WithParameter است. در آبجکتیو-سی امکان استفاده از پارامتردهی بانام وجود دارد که در حال زیاد بودن تعداد پارامترها کد را تمیز نگاه می دارد. ولی در سی++ چنین امکانی وجود ندارد.

    مقادیر بازگشتی می توانند انواع سی، یک اشاره گر به یک شی آبجکتیو-سی و یا یک اشاره گر به انواع خاص مانند NSArray یا NSImage یا NSString باشد. مقدار بازگشتی پیش فرض نوع عمومی آبجکتیو-سی به نام id است.

    پیاده سازی

    واسط تنها روش دسترسی به کلاس را بیان می کند و نه خود متدها را. کد اصلی در قسمت پیاده سازی نوشته می شود. این فایل های پیاده سازی معمولاً با پسوند m. خاتمه می یابند.
    کد PHP:
    کد:
    @implementation classname +classMethod { // implementation } -instanceMethod { // implementation } @end
    و هریک از این متدها به این شکل خواهند بود

    کد PHP:
    کد:
    -(int)method:(int)i { return [self square_root: i]; }
    دستور زبان اجازهٔ دادن مقدار با استفاده از اسم پارامترها را نیز می دهد.

    مثلاً برای فراخوانی یک متد که این گونه تعریف شده است:
    کد:
    کد:
    -(int)changeColorToRed:(float)red green:(float)green blue:(float)blue
    می توان به این شکل عمل کرد
    کد:
    کد:
    [myColor changeColorToRed:5.0 green:2.0 blue:6.0];
    در پیاده سازی این زبان، هریک از این ارسال پیام ها تبدیل به یک فراخوانی تابع می شود.

    نمونه گرفتن از یک کلاس


    بعد از نوشتن کلاس آبجکتیو-سی می توان از آن نمونه گرفت. برای این کار باید ابتدا برای شی حافظه بگیریم و سپس به آن مقدار اولیه بدهیم. این دو کار با دستوری مانند
    کد:
    کد:
    MyObject   o = [[MyObject alloc] init];
    قابل انجام اند. alloc سبب می شود که به اندازهٔ متغیرهای این کلاس حافظه گرفته شود و با init می توان به این متغیرها مقدار اولیه داد.

    متد init معمولاً به صورت زیر نوشته می شود:

    کد PHP:
    کد:
    -(id) init { self = [super init]; if (self) { ivar1 = value1; ivar2 = value2; . . . } return self; }
    پروتکل ها

    پروتکل ها در زبان آبجکتیو-سی برای معرفی مفهوم وراثت چندگانه به وجود آمدند. در این زبان وراثت چندگانهٔ توصیفات وجود دارد ولی وراثت چندگانهٔ پیاده سازی ها وجود ندارد. این همان مفهومی است که در ++C با وراثت از یک کلاس abstract و در جاوا به عنوان مفهوم interface وجود دارد.

    در این زبان دو نوع پروتکل وجود دارد ad-hoc protocol که informal protocol نیز خوانده می شود و formal protocol Informal protocol لیست متدهایی است که یک کلاس می تواند پیاده سازی کند. توی مستندات می آید زیرا هیچ معادلی در زبان ندارد. معمولاً شامل متدهای اختیاری نیز هست.

    Formal protocol مشابه interface در جاوا است. یک لیست متدها است که یک کلاس می تواند بیان کند که آن ها را پیاده سازی می کند. این پروتکل ها نمی توانند هیچ گونه پیاده سازی داشته باشند.

    تعریف یک formal protocol به این شکل است

    کد PHP:
    کد:
    @protocol Locking - (void)lock; - (void)unlock; @end
    و استفاده از آن در یک کلاس به صورت

    کد PHP:
    @interface SomeClass : SomeSuperClass <Locking>
    @
    end

    است.

    تعیین نوع پویا

    آبجکتیو-سی از تعیین نوع پویا پشتیبانی می کند. یک شی می تواند پیامی دریافت کند که در واسط آن مشخص نشده است که می تواند آن را دریافت کند. به این ترتیب انعطاف پذیری زبان افزایش می یابد.

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

    ارسال کردن پیام

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




    فروشگاه نمونه سوالات پیام نور با پاسخنامه تستی و تشریحی



    دانلود رایگان نمونه سوالات دانشگاه پیام نور





    http://up.pnu-club.com/images/00ld7yux3ay3itvspd7n.png
    برای دانلود رایگان نمونه سوالات پیام نور با جوابهای تستی و تشریحی در مقطع نمونه سوالات کارشناسی ارشد پیام نور - نمونه سوالات پیام نور کارشناسی - نمونه سوالات پیام نور دکترا- نمونه سوالات آزمونهای فراگیر پیام نور( دانشپذیری)

    به ادرس زیر مراجعه کنید

    نمونه سوالات رایگان پیام نور




  10. #30
    Borna66 آواتار ها
    • 55,397
    مدير بازنشسته

    عنوان کاربری
    مدير بازنشسته
    تاریخ عضویت
    Mar 2009
    محل تحصیل
    خيام-سهراب
    شغل , تخصص
    طراح و تحلیل گر حرفه ای وب
    رشته تحصیلی
    مهندسي نرم افزار
    راه های ارتباطی
    پست های وبلاگ
    29

    پیش فرض

    تفاوت های اساسی با سی++

    سی++ شامل کتابخانه ها و استانداردهایی برای برنامه سازی شی گرا، برنامه سازی عمومی است. در حالی که آبجکتیو-سی تنها یک لایه برای برنامه سازی شی گرا به زبان سی اضافه می کند.
    آبجکتیو-سی امکانات reflection برای برنامه نویس به وجود می آورد که در زمان اجرا آدرس بعضی توابع معلوم می گردد حال آن که در سی++ امکانات reflection وجود ندارد. یعنی آبجکتیو-سی از سی++ امور بیشتری را در زمان اجرا تعیین می کند که باعث انعطاف بیشتر زبان می شود ولی سرعت اجرای آن را کاهش می دهد

    تحلیل زبان

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

    این زبان می تواند روی یک کامپایلر زبان سی پیاده سازی شود. به این ترتیب که اول به صورت پیش پردازشی کدهای خاص آبجکتیو-سی تبدیل به کدهای سی متناسب می شوند.

    این زبان برعکس سی++ از دادن چند مفهوم به یک اپراتور (operator overloading) پشتیبانی نمی کند.


    مثال هایی از آبجکتیو-سی


    hello world-1

    مثال اول، صورت ساختاری
    کد:
    
    
    [PHP]#import <stdio.h> 
      
    int main( int argc, const char  argv[] ) { 
        printf( "hello world\n" ); 
        return 0; 
    }  
    [/PHP]</b>
    

    hello world-2

    مثال دوم، صورت شی گرا
    کد:
    [PHP]#import "objc/Object.h" // // Compile with: // // cc hw.m -o hw -lobjc -lm // @interface HelloWorld : Object { STR msg; // Instance Variable } + new; // Class/Factory method - print; // Instance method - setMessage: (STR) m; // " " @end @implementation HelloWorld + new { self = [super new]; msg = ""; return self; } - print { printf("%s\n", msg); return self; } - setMessage: (STR) m { msg = m; return self; } @end int main(int argc, char argv) { id obj; obj = [HelloWorld new]; [[obj setMessage: "Hello World"] print]; return 0; } [/PHP]




    فروشگاه نمونه سوالات پیام نور با پاسخنامه تستی و تشریحی



    دانلود رایگان نمونه سوالات دانشگاه پیام نور





    http://up.pnu-club.com/images/00ld7yux3ay3itvspd7n.png
    برای دانلود رایگان نمونه سوالات پیام نور با جوابهای تستی و تشریحی در مقطع نمونه سوالات کارشناسی ارشد پیام نور - نمونه سوالات پیام نور کارشناسی - نمونه سوالات پیام نور دکترا- نمونه سوالات آزمونهای فراگیر پیام نور( دانشپذیری)

    به ادرس زیر مراجعه کنید

    نمونه سوالات رایگان پیام نور




برچسب برای این موضوع

مجوز های ارسال و ویرایش

  • شما نمی توانید موضوع جدید ارسال کنید
  • شما نمی توانید به پست ها پاسخ دهید
  • شما نمی توانید فایل پیوست ضمیمه کنید
  • شما نمی توانید پست های خود را ویرایش کنید
  •