إضافة اللمسة الجديدة
جزء من قسم Fundamentals في رحلة R على Coddy — الدرس 55 من 78.
التحدي
سهلفي الدرس السابق، قمت بإنشاء برنامج FizzBuzz الذي يمر عبر الأرقام باستخدام القواسم الافتراضية 3 و 5. الآن، أضف لمسة جديدة بجعل القواسم قابلة للتخصيص من خلال المعلمات الافتراضية (default parameters).
قم بتعديل دالة fizzbuzz الخاصة بك لتقبل ثلاث وسائط:
n- الرقم المراد التحقق منه (مطلوب)fizz_divisor- القاسم الخاص بـ "Fizz" (اختياري، القيمة الافتراضية هي3)buzz_divisor- القاسم الخاص بـ "Buzz" (اختياري، القيمة الافتراضية هي5)
يجب أن تستخدم الدالة هذه القواسم المخصصة بدلاً من القيم الثابتة عند التحقق من قابلية القسمة.
ستتلقى ثلاثة أسطر من المدخلات:
- الحد الأقصى
n - قاسم fizz
- قاسم buzz
قم بالمرور في حلقة تكرارية من 1 إلى n واستدعِ دالة fizzbuzz المحدثة مع جميع الوسائط الثلاثة. اطبع كل نتيجة.
على سبيل المثال، إذا كانت المدخلات هي:
10
2
3يجب أن تكون المخرجات:
[1] "1"
[1] "Fizz"
[1] "Buzz"
[1] "Fizz"
[1] "5"
[1] "FizzBuzz"
[1] "7"
[1] "Fizz"
[1] "Buzz"
[1] "Fizz"إذا كانت المدخلات هي:
15
3
5يجب أن تكون المخرجات:
[1] "1"
[1] "2"
[1] "Fizz"
[1] "4"
[1] "Buzz"
[1] "Fizz"
[1] "7"
[1] "8"
[1] "Fizz"
[1] "Buzz"
[1] "11"
[1] "Fizz"
[1] "13"
[1] "14"
[1] "FizzBuzz"جرّب بنفسك
# Read input
con <- file("stdin", "r")
n <- as.numeric(suppressWarnings(readLines(con, n = 1)))
# Function from previous lesson
check_divisible <- function(number, divisor) {
return(number %% divisor == 0)
}
# Create the fizzbuzz function
fizzbuzz <- function(n) {
if (check_divisible(n, 3) && check_divisible(n, 5)) {
return("FizzBuzz")
} else if (check_divisible(n, 3)) {
return("Fizz")
} else if (check_divisible(n, 5)) {
return("Buzz")
} else {
return(as.character(n))
}
}
# Loop through numbers from 1 to n and print the result
for (i in 1:n) {
print(fizzbuzz(i))
}جميع دروس Fundamentals
4المعاملات - الجزء الثاني
المعاملات المنطقية (AND, OR)المعاملات المنطقية - الجزء الثاني (NOT)مراجعة - المنطق البسيطالمنطق المتجهي - الجزء الأولالمنطق المتجهي - الجزء الثاني2المتغيرات وأنواع البيانات
نوع البيانات الرقمينوع البيانات الصحيحنوع البيانات الحرفينوع البيانات المنطقيالتحقق من أنواع البياناتقواعد التسميةالقيم المفقودة: NAملخص - إنشاء المتغيرات8الحلقات التكرارية
حلقة Forحلقة Whileجملة Breakجملة Next (Continue)مراجعة - المضروب (Factorial)توليد المتتاليات (seq, :)الحلقات المتداخلةمراجعة - الإدخال الديناميكي (Dynamic Input)3المعاملات - الجزء الأول
المعاملات الحسابيةقسمة الأعداد الصحيحة وباقي القسمةمعاملات الإسنادملخص - عمليات رياضية بسيطةمعاملات المقارنة6أساسيات الإدخال والإخراج
طباعة المخرجاتاستخدام Cat للمخرجاتالمخرجات مع المتغيراتقراءة المدخلات باستخدام readline()أساسيات تحويل أنواع البياناتمراجعة - حاسبة العمرمراجعة - صح أم خطأ