<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>نوشته های K99</title>
        <link>https://virgool.io/feed/@kotlin99</link>
        <description>چالش 100 روزه من برای آموزش زبان کاتلین و برنامه نویسی اندروید!</description>
        <language>fa</language>
        <pubDate>2026-06-07 19:36:29</pubDate>
        <image>
            <url>https://files.virgool.io/upload/users/36736/avatar/ViGRoB.png?height=120&amp;width=120</url>
            <title>K99</title>
            <link>https://virgool.io/@kotlin99</link>
        </image>

                    <item>
                <title>دستور شرطی (if) در زبان کاتلین</title>
                <link>https://virgool.io/@kotlin99/%D8%AF%D8%B3%D8%AA%D9%88%D8%B1-%D8%B4%D8%B1%D8%B7%DB%8C-if-%D8%AF%D8%B1-%D8%B2%D8%A8%D8%A7%D9%86-%DA%A9%D8%A7%D8%AA%D9%84%DB%8C%D9%86-avyetotywi58</link>
                <description>آموزش زبان کاتلینبرای کنترل برنامه (control flow) و تصمیم گیری در روند برنامه یکی از ابزارهای مورد استفاده، دستور if هستش. توی مثال زیر کاربرد این دستور توضیح داده شده:fun main(args: Array&lt;String&gt;) {
    var flag = true
    var x = 10

    // شرط نوع اول --------------------------------
    if (flag == true){
        println(&quot;flag is TRUE!&quot;)
    }

    // شرط نوع دوم --------------------------------
    if (flag == false){
        println(&quot;flag is TRUE!&quot;)
    } else {
        println(&quot;flag is NOT TRUE!&quot;)
    }

    // شرط نوع سوم --------------------------------
    if (x &gt; 10){
        println(&quot;x is greater than 10!&quot;)
    } else if (x &lt; 10) {
        println(&quot;x is lower than 10!&quot;)
    } else {
        println(&quot;x is equal to 10!&quot;)
    }
}ستور شرطی در زبان کاتلینیه نکته: برای چک کردن متغییرهای بولی، بهتره از == استفاده نکنیم. بصورت زیر:fun main(args: Array&lt;String&gt;) {
    var flag = true

    if (flag){
        println(&quot;flag is TRUE!&quot;)
    }

    if (flag){
        println(&quot;flag is TRUE!&quot;)
    } else {
        println(&quot;flag is NOT TRUE!&quot;)
    }
}آموزش زبان برنامه نویسی کاتلین در اینستاگرام</description>
                <category>K99</category>
                <author>K99</author>
                <pubDate>Fri, 29 Mar 2019 15:19:27 +0430</pubDate>
            </item>
                    <item>
                <title>ورودی و خروجی در زبان کاتلین (گرفتن و چاپ کردن)</title>
                <link>https://virgool.io/@kotlin99/%D9%88%D8%B1%D9%88%D8%AF%DB%8C-%D9%88-%D8%AE%D8%B1%D9%88%D8%AC%DB%8C-%D8%AF%D8%B1-%D8%B2%D8%A8%D8%A7%D9%86-%DA%A9%D8%A7%D8%AA%D9%84%DB%8C%D9%86-%DA%AF%D8%B1%D9%81%D8%AA%D9%86-%D9%88-%DA%86%D8%A7%D9%BE-%DA%A9%D8%B1%D8%AF%D9%86-izdccyoymgsc</link>
                <description>توی این آموزش قراره از کاربر ورودی بگیریم و توی خروجی چاپ کنیم:fun main(arg: Array&lt;String&gt;){
    print(&quot;What is your name: &quot;)
    var name = readLine()!!          // خروجی این تابع، از نوع رشته هستش
    print(&quot;How old are you: &quot;)
    var age = readLine()!!.toInt() // خروجی این تابع، از نوع عددصحیح هستش


    print(&quot;hi $name&quot;)           // چاپ خروجی
    print(&quot;\n&quot;)                     // چاپ یک خط خالی - رفتن به خط جدید
    println(&quot;your age is: $age&quot;)   // چاپ خروجی + رفتن به سر خط
}چنتا مورد:خروجی تابع readLine از نوع رشته یا string هستش، به همین خاطر توی خط 5 ورودی رو با toInt به عدد صحیح تبدیل کردیم.تفاوت print و println توی رفتن به سر خط هستش.خروجی:What is your name: Kotlin99
How old are you: 99
hi Kotlin99
your age is: 99</description>
                <category>K99</category>
                <author>K99</author>
                <pubDate>Wed, 27 Mar 2019 15:33:07 +0430</pubDate>
            </item>
                    <item>
                <title>برنامه محاسبه اعداد فیبوناچی در زبان کاتلین</title>
                <link>https://virgool.io/@kotlin99/%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%85%D8%AD%D8%A7%D8%B3%D8%A8%D9%87-%D8%A7%D8%B9%D8%AF%D8%A7%D8%AF-%D9%81%DB%8C%D8%A8%D9%88%D9%86%D8%A7%DA%86%DB%8C-%D8%AF%D8%B1-%D8%B2%D8%A8%D8%A7%D9%86-%DA%A9%D8%A7%D8%AA%D9%84%DB%8C%D9%86-aqxi7n4bxeg9</link>
                <description> همانطور که احتمالا میدونین از مثالهای اولیه هر زبانی، نوشتن تابع فاکتوریل (اینجا) یا فیبوناچی هستش. توی مثال زیر برنامه ای برای محاسبه اعداد فیبوناچی نوشته شده. کاربر یک عدد n رو وارد میکنه و n عدد اول فیبوناچی محاسبه و توی خروجی چاپ میشه.fun main(arg: Array&lt;String&gt;) {
    val n: Int
    println(&quot;enter N: &quot;)
    n = readLine()!!.toInt()

    fibo(n)
}

fun fibo(n: Int){
    var a = 1
    var b = 1
    var c: Int
    print(a)
    print(&quot; - &quot;)
    print(b)

    for (i in 3..n) {
        c = a + b

        print(&quot; - &quot;)
        print(c)

        a = b
        b = c
    }
    print(&quot;\n\nDone!&quot;)
}</description>
                <category>K99</category>
                <author>K99</author>
                <pubDate>Sat, 23 Mar 2019 20:49:40 +0430</pubDate>
            </item>
                    <item>
                <title>برنامه فاکتوریل در زبان کاتلین</title>
                <link>https://virgool.io/@kotlin99/%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%81%D8%A7%DA%A9%D8%AA%D9%88%D8%B1%DB%8C%D9%84-%D8%AF%D8%B1-%D8%B2%D8%A8%D8%A7%D9%86-%DA%A9%D8%A7%D8%AA%D9%84%DB%8C%D9%86-hqsyqqejw2tr</link>
                <description>همانطور که احتمالا میدونین از مثالهای اولیه هر زبانی، نوشتن تابع فاکتوریل یا فیبوناچی هستش. توی مثال زیر برنامه ای برای محاسبه فاکتوریل یک عدد نوشته شده.یادآوری: factorial(5) = 5 * 4 * 3 * 2 * 1 هستش!fun main(arg: Array&lt;String&gt;) {
    val n: Int
    println(&quot;enter N: &quot;)
    n = readLine()!!.toInt()        // خوندن ورودی
    var result = fact(n)

    print(&quot;$n! = $result&quot;)
}

fun fact(x: Int): Long {
    var sum: Long = x.toLong()

    if (x == 1) {
        return 1
    } else {
        sum *= fact(x - 1)
    }

    return sum
}

// مثال: اگر کاربر 5 را وارد کند
// 5
// 5 * f(4)
// 5 * [4 * f(3)]
// 5 * [4 * [3 * f(2)]]
// 5 * [4 * [3 * [2 * f(1)]]]
// 5 * [4 * [3 * [2 * 1]]]روش دوم:fun main(args: Array&lt;String&gt;) {
    val number: Int
    println(&quot;enter N: &quot;)     
    number = readLine()!!.toInt()        // خوندن ورودی 
    val result: Long

    result = factorial(number)
    println(&quot;Factorial of $number = $result&quot;)
}

fun factorial(n: Int): Long {
    return if (n == 1) n.toLong() else n*factorial(n-1)
}
</description>
                <category>K99</category>
                <author>K99</author>
                <pubDate>Sat, 23 Mar 2019 20:09:08 +0430</pubDate>
            </item>
                    <item>
                <title>انواع داده در کاتلین (data types) - قسمت 2</title>
                <link>https://virgool.io/@kotlin99/%D8%A7%D9%86%D9%88%D8%A7%D8%B9-%D8%AF%D8%A7%D8%AF%D9%87-%D8%AF%D8%B1-%DA%A9%D8%A7%D8%AA%D9%84%DB%8C%D9%86-data-types-%D9%82%D8%B3%D9%85%D8%AA-2-qv8oii44uotq</link>
                <description>توی پست قبلی (اینجا) در مورد داده های عددی صحبت کردم و توی این پست قراره در مورد بقیه انواع داده صحبت کنم.نوع متغیرها در زبان کاتلین و در حالت کلی بصورت زیر هستش:داده های عددی (Numbers)داده های منطقی (Boolean)داده های کاراکتری و رشته ای (Characters and Strings)آرایه ها (َArrays)داده های از نوع کاراکتر (Char)برای تعریف داده های تک کاراکتری از &#x27; &#x27; (single quotation) استفاده میشه:fun main(arg: Array&lt;String&gt;){
        var name: Char
        name = &#039;K&#039;
        println(&quot;name is $name&quot;)
}داده های از نوع رشته (زنجیره ای از کاراکترها یا String)برای تعریف داده های تک کاراکتری از &quot; &quot; (double quotation) استفاده میشه:fun main(arg: Array&lt;String&gt;){
        var name: String
        name = &quot;Kotlin99&quot;
        println(&quot;name is $name&quot;)
}داده های از نوع بولیاین نوع متغیر ها مقادیر درستی و نادرستی را نشان میدهند:fun main(arg: Array&lt;String&gt;){
    var flag1: Boolean
    val flag2: Boolean
    flag1 = true
    flag2 = false
    println(&quot;flag1 status: $flag1 and flag2 status: $flag2&quot;)
}داده های آرایه ایاین نوع متغیر ها برای ذخیره چندین داده که جنس یکسانی دارن، استفاده میشن:fun main(args: Array&lt;String&gt;) {
    val nums = intArrayOf(1, 2, 3, 4, 5)
    println(nums[2])

    nums[0] = 11
    println(nums[0])
    
    val avg = nums.average()
    println(&quot;The average is $avg&quot;)

    val nOfValues = nums.count()
    println(&quot;There are $nOfValues elements&quot;)

    val sumOfValues = nums.sum()
    println(&quot;The sum of values is $sumOfValues&quot;)

    val maxValue = nums.max()
    println(&quot;The maximum is $maxValue&quot;)

    val minValue = nums.min()
    println(&quot;The minimum is $minValue&quot;)
}</description>
                <category>K99</category>
                <author>K99</author>
                <pubDate>Fri, 22 Mar 2019 19:18:18 +0430</pubDate>
            </item>
                    <item>
                <title>انواع داده در کاتلین (data types) - قسمت 1</title>
                <link>https://virgool.io/@kotlin99/%D8%A7%D9%86%D9%88%D8%A7%D8%B9-%D8%AF%DB%8C%D8%AA%D8%A7-%D8%AF%D8%B1-%DA%A9%D8%A7%D8%AA%D9%84%DB%8C%D9%86-data-types-%D9%82%D8%B3%D9%85%D8%AA-1-bxq1zblkccoj</link>
                <description> val language: Int
val marks = 12.3توی مثال بالا، نوع متغیر رو تعیین میکنیم و بعد مقدارش رو مشخص میکنیم.نوع متغیرها در زبان کاتلین و در حالت کلی بصورت زیر هستش:داده های عددی (Numbers)داده های منطقی (Boolean)داده های کاراکتری و رشته ای (Characters and Strings)آرایه ها (َArrays)داده های عددی داده های عددی را برحسب سایز و اندازه عدد میتوان به چند دسته تقسیم کرد:Byte ------------------ range: [-128, 127] --------------------- 8-bitShort ----------------- range: [-32768, 32767] ------------ 16-bit Int --------------------- range: [-2^31, 2^31 - 1] ------------- 32-bitLong ----------------- range: [-2^63, 2^63 - 1] ------------- 64-bit Float ----------------- single-precision ------------------------ 32-bit Double -------------- double-precision ---------------------- 64-bit یکی از فرق های داده float با double، دقت اونها هستش. توی تصویر زیر کامل نشون داده شده: دقت داده های اعشاری در کاتلینfun main(args : Array&lt;String&gt;) {
        val x: Byte = 112
        println(&quot;x is: $x&quot;)
        
        val temperature: Short = -11245
        println(&quot;$temperature&quot;)
        
        val score: Int =  100000
        println(&quot;$score&quot;)
        
        val highestScore: Long = 9999
        println(&quot;$highestScore&quot;)     
        
        // distance is of type Float
        var distance = 19.5F
        println(&quot;$distance&quot;)
        
         // distance is of type Doubleval distance = 999.5 
         var distance = 999.5
         println(&quot;$distance&quot;)
        
        // ----------------------------------------------------------------------------------------
        val x = 321        // در حالت کلی نیازی به تعیین نوع داده نیست
}البته در حالت کلی، نیازی به تعیین نوع داده نیست و کاتلین خودش تشخیص میده.مطالعه بخش دوم در اینجا</description>
                <category>K99</category>
                <author>K99</author>
                <pubDate>Fri, 22 Mar 2019 14:30:36 +0430</pubDate>
            </item>
                    <item>
                <title>تعریف متغیر در زبان کاتلین</title>
                <link>https://virgool.io/@kotlin99/%D8%AA%D8%B9%D8%B1%DB%8C%D9%81-%D9%85%D8%AA%D8%BA%DB%8C%D8%B1-%D8%AF%D8%B1-%D8%B2%D8%A8%D8%A7%D9%86-%DA%A9%D8%A7%D8%AA%D9%84%DB%8C%D9%86-skmifsk03trp</link>
                <description>برای متغیر در زبان کاتلین دو شیوه یا دستور وجود داره. تعریف متغیر با var تعریف متغیر با valتعریف متغیر با varمقادیر این نوع از متغیرها، میتونه در حین برنامه تغییر کنه.نحوه استفاده (3 روش کلی):fun main(arg: Array&lt;String&gt;){
    var language: String = &quot;Persian&quot;
    var age = 21
    var id: Int
    id = 659897
    
    id = 10
}توجه: IDE آنلاین برای اینکه کدهای زبان کاتلین رو اجرا کنین: TryKotlinنیازی به تعیین نوع متغیر نیست ولی میتونین نوع اون رو هم تعریف کنین!این نوع متغیرها بعد از تعریف، میتونن عوض بشن.تعریف متغیر با valاین نوع از متغیرها، زمانی که تعریف میشن، دیگه نمیشه اونهارو تغییر داد. و کاربردش برای معرفی داده های ثابت هستش.نحوه استفاده (2 روش کلی):fun main(arg: Array&lt;String&gt;){
    val language = &quot;Persian&quot;
    language = &quot;German&quot;      // خطا، این مقدار نمیتونه عوض بشه
    
    val pi = 3.14
    
    val name: String
    name = &quot;Kotlin99&quot;
}توجه: IDE آنلاین برای اینکه کدهای زبان کاتلین رو اجرا کنین: TryKotlin</description>
                <category>K99</category>
                <author>K99</author>
                <pubDate>Wed, 20 Mar 2019 22:38:35 +0330</pubDate>
            </item>
            </channel>
</rss>