زنگ سی شارپ – قسمت سوم

آشنایی با متغیرها (variables)، عمل‌گرها (operators) و value type ها


مسعود درویشیان ۴۸ دیدگاه سی شارپ چهارشنبه, 12th سپتامبر , 2012 62020 بازدید

در قسمت قبل با یک برنامه ی ساده شروع کردیم که تنها در خروجی یک پیغام را چاپ می‌کرد، در این قسمت قصد داریم با متغیر‌ها (variables)، عملگر‌ها (operator) و value type بیشتر آشنا شویم.

زنگ سی‌شارپ - قسمت سوم

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

ویژوال استودیو را اجرا کنید و یک پروژه جدید بسازید اگر این کار را نمی‌توانید انجام دهید حتماً قسمت قبل را مطالعه بفرمایید.

به برنامه زیر دقت کنید، این برنامه‌ دو متغیر را که اسم آن‌ها x و y است می‌سازد:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Example
{
    class Program
    {
        static void Main(string[] args)
        {
            int x;
            int y;

            x = 100; // this assign 100 to x

            Console.WriteLine("X Contains " + x);

            y = x / 2;

            Console.Write("y contains x / 2: ");
            Console.WriteLine(y);
        }
    }
}

وقتی برنامه را اجرا کردید (توسط Ctrl + F5) خروجی زیر برای شما نمایش داده می‌شود:

x contains 100

y contains x / 2: 50

این برنامه شامل چندین مفهوم جدید است که در ادامه به شرح آن‌ها می‌پردازیم:

int x;

اعلام یک متغیر که نام آن x و نوع آن عدد صحیح (integer) است. در سی شارپ ، همه ی متغیر‌ها پیش از این‌که مورد استفاده قرار بگیرند ابتدا باید اعلام شوند. علاوه بر این، نوع مقداری را که متغیر در خود نگه می‌دارد باید مشخص شود. در این مورد x می‌تواند مقادیر integer (عدد صحیح) را در خود نگه دارد. در سی شارپ، برای اعلام یک متغیر از نوع عدد صحیح (integer) قبل از نام آن از کلمه کلیدی int استفاده می‌کنند. پس int x یک متغیر را اعلام می‌کند که اسم آن x و نوع آن integer (عدد صحیح) است.

int y;

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

type var-name;

که type نوع متغیر و var-name نام متغیر را مشخص می‌کند. علاوه بر int سی شارپ از نوع های داده ای (data type) دیگر هم پشتیبانی می‌کند که کامل به شرح آن‌ها خواهیم پرداخت.

x = 100;

این خط کد مقدار ۱۰۰ را به x اختصاص می‌دهد. در سی شارپ، عمل‌گر انتساب یک تک مساوی است و بدین صورت عمل می‌کند که یک کپی از مقدار سمت راست خودش را در متغیر سمت چپش قرار می‌دهد. همان‌طور که می‌بینید در این‌جا علامت انتساب باعث شده است که یک کپی از مقدار سمت راست (عدد ۱۰۰) در  متغیر سمت چپ (متغیر x) قرار بگیرد.

خط کد بعدی مقدار x را در خروجی نمایش می‌دهد که قبل از آن رشته‌ی ” X Contains” قرار دارد:

Console.WriteLine("x contains " + x);

در این خط کد علامت + موجب می‌شود که مقدار x بعد از string (رشته) نمایش داده شود. این روش می‌تواند یک حالت کلی به خود بگیرد. با علامت + شما می‌توانید آیتم های دیگری را که می‌خواهید در یک ()WriteLine داشته باشید، به هم وصل کنید.

خط کد بعدی مقدار x را که بر ۲ تقسیم شده است به y اختصاص می‌دهد:

y = x / 2;

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

دو خط بعدی برنامه:

Console.Write("y contains x / 2: ");
Console.WriteLine(y);

دو چیز در این‌جا جدید است: اول ()Console.Write است که رشته ی :y contains x / 2 را در خروجی نمایش می‌دهد. تفاوت این دستور با دستور ()Console.WriteLine این است که وقتی خروجی بعدی تولید می‌شود از همان خط شروع می‌شود، نه از خط بعدی. دوم این‌که ()Console.WriteLine متغیر y را به عنوان ورودی گرفته است و مقدار آن را در خروجی نمایش می‌دهد. پس توجه داشته باشید، هنگامی که می‌خواهید مقدار یک متغیر را در خروجی نمایش دهید کافی است اسم آن را در ()Console.WriteLine یا ()Console.Write وارد کنید. همان‌طور که مشاهده می‌کنید مقدار y در جلوی رشته‌ی :y contains x / 2 نمایش داده می‌شود زیرا برای چاپ این رشته از ()Console.Write استفاده کردیم ولی اگر از ()Console.WriteLine استفاده می‌کردیم مقدار y در خط بعدی نمایش داده می‌شد.

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

int x, y;

همچنین نیازی نیست که ابتدا متغیر را تعریف کنید و بعد به آن مقدار بدهید، می‌توانید این کار را هم زمان با تعریف متغیر انجام دهید. بدین صورت:

int x = 100;

تا اینجا ما فقط از اعداد صحیح برای محاسبه استفاده کردیم، مثل عدد ۱۸ یا ۲۲ و غیره. برای استفاده از اعداد اعشاری مثل ۲۲.۵ یا ۱۵.۶ باید از نوع عددی double، float و decimal استفاده کنیم. نوع عددی float برای مقادیر ممیز شناور با دقت کمتر و نوع عددی double برای مقادیر ممیز شناور با دقت بیشتر است به طوری که دقت double دو برابر float است. decimal یک دیتا تایپ ۱۲۸ بیتی است که در مقایسه با float و double از دقت بیشتر و بازه ی کمتری برخوردار است و این خاصیت آن باعث می‌شود که برای محاسبات پولی و مالی بسیار مناسب باشد.

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

نوع دابل ۶۴ بیتی است و محدوده ی آن در جدول زیر مشخص است:

بازه ی تقریبی و دقت decimal را در جدول زیر می‌توانید مشاهده کنید:

سی شارپ شامل دو دسته بندی برای data type (نوع داده) است:

  • Value Type
  • Reference Type

تفاوت بین این دو، مقداری است که آن متغیر دارد. برای value type، متغیر یک مقدار واقعی را در خود نگه می‌دارد مثل: ۲۲ یا ۳۴۵.۶ اما برای Reference type، متغیر یک ارجاع به Value را در خود نگه می‌دارد که این اکثراً در کلاس مورد استفاده قرار می‌گیرد. در مورد Reference type بعداً بیشتر صحبت خواهیم کرد، فعلاً به value type می‌پردازیم.

در جدول زیر لیست کاملی از تمام value type ها را می‌بینید:

سی شارپ همچنین ۹ integer type را تعریف می‌کند که char، byte، sbyte، short، ushort، int، uint، long، ulong هستند و هرکدام بازه ی خاصی از اعداد را شامل می‌شوند. در جدول زیر بازه ی عددی و تعداد بیت هریک را می‌بینید. نوع char اصولاً به نمایندگی از کاراکتر استفاده می‌شود که در مقالات آینده در مورد آن صحبت خواهیم کرد:

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



نویسنده / مترجم : مسعود درویشیان

علاقه مند به موسیقی و برنامه نویسی بازی


۴۸ دیدگاه برای این نوشته ثبت شده است


  1. امین
    12 سپتامبر 2012

    سلام اقا دمتگرم خیلی مردی…تو هر سایتی میریم زده خرید




  2. علیرضا
    12 سپتامبر 2012


  3. mohamad
    13 سپتامبر 2012

    سلام و خسته نباشید
    ممنون از سایت خوبتون

    من ۱ سوال داشتم :
    خواستم بدونم شما چرا توی سایتتون قسمت سرچ کردن رو قرار ندادین ؟

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




    • امیر سروری
      13 سپتامبر 2012

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




  4. داوود
    14 سپتامبر 2012

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

    دو تا پیشنهاد:

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




    • مسعود درویشیان
      14 سپتامبر 2012

      سلام

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

      موفق باشید




  5. نوید
    15 سپتامبر 2012

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




    • مسعود درویشیان
      15 سپتامبر 2012

      سلام

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

      موفق باشید




  6. پروانه
    18 سپتامبر 2012

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




  7. diho
    22 سپتامبر 2012

    ممنون از مطالب بسیار خوبتون
    شمارو مشتاقانه دنبال میکنیم
    امیدوارم خسته نشید و تا آخرش کنار ما بمونید :)
    مرسی




    • مسعود درویشیان
      22 سپتامبر 2012

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




  8. محمد
    11 اکتبر 2012

    با تشکر از شما اعدادی بصورت نماد عملی رو چطور می شه وارد کرد؟!




    • مسعود درویشیان
      13 اکتبر 2012

      نمایش اعداد به‌صورت نماد علمی

      using System;
      class ScientificNotation
      {
          static void Main(string[] args)
          {
              double w = 1.7E+3; // it means 1.7 * 10^3
              Console.WriteLine(w);
          }
      }
      



  9. سمیرا
    31 اکتبر 2012

    واقعا نمیشه این آموزش خوب رو خوند و تشکر نکرد
    خیلی خیلی ممنون از مطالب مفیدتون




    • مسعود درویشیان
      31 اکتبر 2012

      سلام خواهش میکنم
      امیدوارم که به‌دردتون بخوره :)




  10. مهدی
    15 نوامبر 2012

    دستت درت نکنه داداش. بریم بعدی .




  11. حانی
    3 مارس 2013

    سلام ممنون از آموزش های خوبتون. من هیچی هیچی از C#و کلا برنامه نویس نمی دونستم. با استفاده از آموزش های خوبتون و مطالعه یک کتاب شروع کردم. به نظرتون ممکنه یه روز من هم بتونم برنامه ای با c#بنویسم؟؟؟
    یه سوال هم داشتم: می شه تو برنامه تنظیماتی را انجام داد که شماره خط ها را هم نشون بده؟ تو برنامه من نشون نمی ده!




    • مسعود درویشیان
      3 مارس 2013

      سلام مرسی که دنبال می‌کنید. بله که می‌تویند یه روز یه برنامه نویس عالی بشید :)
      فقط باید خیلی زیاد تمرین کنید و دلسرد نشید…
      هر قسمتی رو هم که متوجه نشدید بگید تا من ساده‌تر براتون توضیح بدم
      واسه آوردن شماره خط‌ها هم از منو tools برید توی option و بعدش از قسمت سمت چپ گزینه‌ی Text Editor رو باز کنید. حالا تو زیرشاخه‌هاش گزینه‌ی All language رو انتخاب کنید و بعد توی قسمت سمت راست تیک line number رو بزنید و ok کنید.




  12. حسن
    4 مارس 2013

    با عرض سلام و تشکر

    ببخشید یه سوال: محدوده ای که برای اعداد اعشاری مشخص شده است به صورت دو بازه به نظر می رسد؛ یعنی اینگونه مشخص شده است که از یک عدد (مثبت، منفی) تا یک عدد (مثبت، منفی) دیگر. این به چه معناست؟ ممنون و متشکر از لطف شما




  13. محمد فر
    25 مارس 2013

    سلام.میشه در مورد value type ها و ref type ها بیشتر توضیح بدید.مثلا مقدار اولیه انها چیه؟ یا از کجا به انها حافظه تخصیص داده میشه؟ heap یا ….




    • مسعود درویشیان
      25 مارس 2013

      قسمت‌های بعدی رو مطالعه بفرمایید متوجه می‌شید.




  14. Mersad
    2 آگوست 2013

    سلام

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

    به یه مشکل برخوردم. کد زیر پیغام خطا میده و اجرا نمیشه :

    float z;

    z = 10.3;

    Console.WriteLine(z);

    لطفا راهنماییم کنید.




  15. bahram
    19 آگوست 2013

    سلام
    اقا ممنون من تازه اومدم
    اقا برنامرو وقتی اجرا میکنم خیلی سریع میره نمیتونم ببینم خروجی چی بوده
    ممنون میشم راهنمایی کنید



    • Ctrl + F5 رو باید بزنید یا از منوی Debug گزینه‌ی start without debugging رو انتخاب کنید.




      • حمید
        26 دسامبر 2013

        و یا ابنکه در انتها اینو بنویسید:
        Console.Read();
        در اینصورت با F5 برنامه را با توقف احرا کنید.
        آقا مسعود از آموزش خوبتون تشکر می کنم.




  16. محمد
    15 نوامبر 2013

    واقعا عالیه خدا قوت




  17. مرتضی
    25 نوامبر 2013

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




  18. مینا موسوی
    14 دسامبر 2013

    سلام
    خسته نباشید. واقعا زحمت بسیار زیادی کشیدید برای تهیه چنین ماله کاملی
    ۴۶ قسمت کار بسیار سنگین و زمانبری هست
    امید که خداوند متعال توفیق و مددتون کنه
    من بتازگی شروع کردم این اموزش و وقتی دیدم خیلی کامله تصمیم گرفتم تا اخر بیام اما یه سری اموزشهایی رو هم در وب میبینم که برای تمرین قصد دارم در کناراموزشهای شما انجام بدم بعنوان مثال این اموزش رو انجام میدم اما نتیجه اشتباهه چرا ؟
    شروع اینه :
    // cmdline.cs
    //arguments: A B C
    using System;

    public class CommandLine
    {
    public static void Main(string[] args)
    {
    // The Length propert is used to obtain the length of the array.
    // Notice that Length is read-only property:
    Consol.WriteLine(“Number of command line parameters = {0}”, args.Length);
    for(int i = 0; i < args.Length; i++)
    {
    Consol.WriteLine("Arg[{0}] = [{1}]", i, args[i]);
    }
    }
    }
    و در نتیجه باید جواب را در سه سطر بده اما فقط یک سطر جواب میده
    جواب باید این باشه در نتیجه کنسول :
    Number of command line parameters = 3
    Arg[0] = [A]
    Arg[1] = [B]
    Arg[2] = [C]
    ولی نتیجه ای از من بدست میاد اینه :
    Number of command line parameters = 0
    ممنون میشم راهنمایی کنید که کار این دستور چیه و چرا از مال من درست چاپ نمیشه
    موفق باشید




    • مسعود درویشیان
      14 دسامبر 2013

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




  19. داود حاجی پور
    20 دسامبر 2013

    سلام و خسته نباشید ، واقعا از درس #C لذت بردم و خیلی بهم کمک کرد و مشتاقانه دارم بقیه درسها رو می خونم ازت متشکرم .




  20. فرزانه
    15 فوریه 2014

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




  21. حسین
    16 مارس 2014

    سلام ممنون
    این کد رو که اجرا میکنم هر عددی وارد میکنم
    یه عددی بین ۴۰ تا ۵۹ چاپ میشه؟
    چرا؟
    int y,x;

    x = Console.Read();
    Console.WriteLine(“x Contains ” + x);
    y = x / 2;
    Console.Write(“y contains x / 2: “);
    Console.WriteLine(y);




  22. سعید
    1 ژوئن 2014

    آقا مسعود یه دونه ای




  23. زهرا
    25 ژوئن 2014

    سلام
    خسته نباشید
    توضیحاتتون عالیه حرف نداره




  24. محمد
    21 آگوست 2014

    من دقیقا نفهمیدم نوعِ دسیمال با این که بازه ی کمتری نسبت به فلوت داره و نشون می فضاش هم کوچکتره و منفی هارو هم شامل می شه اما دقتش خیلی بیشتره!!!! چطور امکان داره




  25. فاطمه
    10 اکتبر 2014

    با سلام
    واقعا بهتون خدا قوت میگم
    انشاا… به هر انچه که ارزو میکنید برسید ممنون از اموزش های خوبتون




  26. محمد
    15 اکتبر 2014

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

    یه دنــــــــــــــــــیا متشکریم

    Console.WriteLine(” ❤ “); | mrc




  27. نعیمه
    17 نوامبر 2014

    سلام آقای درویشیان ممنون از اموزشای عالیتون
    یه سوال داشتم اینکه لازمه ما همه Data Tpe ها و RAngeاونا و سایر مشخصاتشونو یاد بگیریم(حفظ کنیم؟)
    ممنون از بذل علمتون




  28. reza amin
    6 دسامبر 2014

    سلام اقای درویشیان مرسی از سایت خوبتون.من وقتی میخوام برنامم رو اجرا کنم نمیدونم چرا اجرا نمیشه و این اروور رو میدهError ۱ Could not write to output file ‘c:\users\rasam\documents\visual studio 2010\miangin va jam\ConsoleApplication3\ConsoleApplication3\obj\x86\Debug\ConsoleApplication3.exe’ — ‘The directory name is invalid. ‘ ConsoleApplication3




  29. javad
    6 ژانویه 2015

    سلام
    سایت عالیه




  30. عباس
    20 اکتبر 2015

    سلام و خسته نباشید خدمت شما آقای درویشیان.
    ممنون بابت نوشتن زنگ سی شارپ.
    ضمن تشکر مجدد باید بگم توی کدی که اول زنگ سوم نوشتید یه +Y جا افتاده.به شکل زیر:
    CONSOLE.WRITELINE(“Y CONTAINS X/2” +Y); KHATE AKHAR
    بازم ممنون بابت آموزش ها.




  31. عباس
    28 دسامبر 2015

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




  32. محمد
    30 جولای 2017

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




  33. محمد
    19 ژانویه 2018

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




  34. mostafa07
    11 آوریل 2019

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



دیدگاه خود را بنویسید





نشانی ایمیل شما منتشر نخواهد شد.

کامنت های شما بعد از تأیید توسط نویسنده وبلاگ، منتشر خواهند شد.

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

شما میتوانید با مراجعه به سایت گراواتار یک آواتار اختصاصی برای خود تعریف کنید، تا در کنار نام شما نمایش داده شود

برای قرار دادن کدهای نمونه می توانید از تگ های [php] ، [html] ، [css] و [js] استفاده کنید.
به عنوان مثال کدهای php را می توان به صورت زیر قرار داد:
[php] var $whoLoveIranians = "WebTarget!"; [/php]



کلیه حقوق مادی و معنوی برای وب سایت وب تارگت محفوظ است ©2022 وب‌تارگت

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