KotlinUdemy
KotlinUdemy copied to clipboard
محاولة وفيها مشكلة
السلام عليكم استاذ حسين
حاولت اقول بتطبيق ما ذكر من ايجاد العمر باليوم والشهر والسنة هذه المشكلة
import java.util.* fun main(args: Array<String>){
// input
println("Enter Your birthDay : ")
var DayofBirth: Int = readLine()!!.toInt()
println("Enter Your birthMonth : ")
var MonofBirth: Int = readLine()!!.toInt()
println("Enter Your birthYear : ")
var yearofBirth: Int = readLine()!!.toInt()
// process
var Today =Calendar.getInstance().get(Calendar.DAY_OF_WEEK_IN_MONTH)
var Tomonth =Calendar.getInstance().get(Calendar.MONTH)
var Toyear =Calendar.getInstance().get(Calendar.YEAR)
var Age :Int ?=null
var TheDay :Int ?=null
var Themonth :Int ?=null
var Theyear :Int ?=null
if (Today < DayofBirth) {
Today += 28
Tomonth=-1
}
else
{
TheDay= Today - DayofBirth
println("age of days : $TheDay")
}
if (Tomonth < MonofBirth)
{
Tomonth = +12
Toyear = -1
}
else {
Themonth = Tomonth - MonofBirth
println("age of Month $Themonth " )
}
Theyear = Toyear - yearofBirth
// output
println("Your Age Day&Month&Year Is: $TheDay Days $Themonth Months $Theyear Years")
}
هل قمت بإغلاق الدالة أسفل البرنامج ؟ Fun
fun main(args: Array) { ----> fun main(args:Array<String>){
عفوا استاذي طبقت ما في التدريب كما هو اغلاق الدالة اذا كان بالقوس المعقوف الاخير فقد تم ذلك
أوكي و بالنسبة للدالة ضعها بهذا الشكل fun main(args: Array<String>) {
بعد التعديل كما ذكرت استاذي
صارت الاخطاء كالتالي
Information:Kotlin: kotlinc-jvm 1.2.30 (JRE 1.8.0_161-b12) Information:31/03/18 06:13 م - Compilation completed with 3 errors and 0 warnings in 1s 844ms E:\WorkSpace_Eclipce\Kotln\Project Kotlen\src\findAge.kt Error:(4, 20) Kotlin: One type argument expected for class Array<T> Error:(53, 39) Kotlin: Variable 'TheDay' must be initialized Error:(53, 48) Kotlin: Variable 'Themonth' must be initialized
var TheDay :Int ?=null var Themonth:Int ?=null var Theyear :Int ?=null
احسنت استاذي تم تجاوز الاخطاء لكن برايك النتيجة لما فيها خطا في حساب السنوات والاشهر
الأفضل لو أنك تجد مشاكل الحساب لحالك دون الإعتماد على أحد فيها سأرسل لك بعد قليل طريقتي الخاصة لكن حاول الإعتماد على منطقك لتستطيع حل أي مشكل مستقبلا
ربي يسعدك تمام اذا راح احاول
لا تعتمد حتى على طريقة الاستاذ حسين حاول أخد ورقة و قلم و قم بحساب العمر و جرد جميع الاحتمالات ومنه الوصول لأفضل طريقة لحساب العمل
اشكرك جزيل الشكر لكن الخطا السابق الذي كان حله var TheDay :Int ?=null var Themonth:Int ?=null var Theyear :Int ?=null
هل افهم انه عند تعرف اي متغير يجب ان يكون بهذه الصيغة ؟
كأنك تقول أن هذا المتغير يقبل أن يكون خال من أي معلومات و للإشارة من الضرورة وضعها فقط لــ var TheDay :Int ?=null var Themonth:Int ?=null لأنك وضعت إحتمالات و غير متأكد 100% أن تلك المتغيرات ستحصل على مدخلات أما var Theyear :Int فسيحصل على محتواه دون تخطي أي إحتمال
بطريقة أخرى أي متغير تقوم بتحديده و محتواه داخل دالة شرطية فعليك إما أن تضع له قيمة أولية مثلا var TheDay :Int = 0 أو تضع له var TheDay :Int ?=null بمعنى يحتمل أن يكون بدون محتوى و الطريقة الثانية أكثر منطقية
ربي يسعدك
عاجز عن شكرك استاذي
لا تشكرني أخي فهذا واجبي و أتمنى لك التوفيق