مرکزی مواد پر جائیں
ماڈیول 2 · سبق 2 از 2کورس میں 4/10~12 min
ماڈیول اسباق (2/2)

کنڈیشنلز اور لوپس

R میں پیچیدہ الگورتھم اور طریقہ کار کو لاگو کرنے کے لیے، آپ کو یہ کنٹرول کرنے کی ضرورت ہے کہ کن ہدایات پر عمل کرنا ہے اور انہیں کتنی بار دہرانا ہے۔

مشروط بیانات

R میں، بنیادی مشروط ڈھانچہ if اور else پر مبنی ہے۔ نحو جاوا اسکرپٹ یا C جیسی زبانوں سے بہت ملتا جلتا ہے:

R
score <- 85

if (score >= 60) {
  print("Passed!")
} else {
  print("Failed.")
}

گھوبگھرالی منحنی خطوط وحدانی {} قوسین کے اندر بولین ایکسپریشن کے نتائج کے لحاظ سے چلانے کے لیے کوڈ کے بلاکس کی وضاحت کرتے ہیں۔

for لوپ

R میں for لوپ کا استعمال ایک ترتیب (جیسے ویکٹر یا فہرست) میں عناصر پر تکرار کرنے کے لیے کیا جاتا ہے۔

R
# Print numbers from 1 to 3
for (i in 1:3) {
  print(i)
}

R میں، 1:3 نحو ویکٹر c(1, 2, 3) بنانے کا ایک مختصر طریقہ ہے۔

ہم موجودہ ویکٹر کے عناصر پر براہ راست لوپ بھی کر سکتے ہیں:

R
fruits <- c("apple", "banana", "cherry")

for (fruit in fruits) {
  print(fruit)
}

ifelse فنکشن

R میں، ifelse() فنکشن if-else بیان کا ویکٹرائزڈ ورژن ہے۔ یہ آپ کو ایک ہی آپریشن میں پورے ویکٹر پر شرط لگانے کی اجازت دیتا ہے، نتائج کا ایک ویکٹر لوٹاتا ہے۔

R
scores <- c(55, 80, 45, 90)
# Se score >= 60 assegna "Pass", altrimenti "Fail"
results <- ifelse(scores >= 60, "Pass", "Fail")
print(results) # "Fail" "Pass" "Fail" "Pass"

while لوپ

while لوپ کو کوڈ کے بلاک کو دہرانے کے لیے استعمال کیا جاتا ہے جب تک کہ ایک مخصوص حالت درست رہتی ہے (TRUE)۔ لامحدود لوپس کو روکنے کے لیے یہ یقینی بنانا ضروری ہے کہ حالت آخرکار غلط ہو جائے۔

R
counter <- 1
while (counter <= 3) {
  print(counter)
  counter <- counter + 1
}

خود ہی آزمائیں۔

ورزش#r.m2.l2.e1
کوششیں: 0لوڈ ہو رہا ہے…

ایک if-else مشروط بیان لکھیں جو چیک کرتا ہے کہ آیا متغیر سکور 60 سے زیادہ یا اس کے برابر ہے۔ اگر یہ ہے، تو اسٹیٹس کو 'Pass' پر سیٹ کریں، بصورت دیگر 'Fail' پر سیٹ کریں۔

ایڈیٹر لوڈ ہو رہا ہے…
اشارہ دکھائیں۔

تصدیقی اسکور >= 60 ای اسگنا اسٹیٹس <- 'پاس' یا اسٹیٹس <- 'فیل'

3 کوششوں کے بعد حل دستیاب ہے۔

ورزش#r.m2.l2.e2
کوششیں: 0لوڈ ہو رہا ہے…

ایک لوپ کے لیے لکھیں جو ترتیب 1:5 پر دہراتا ہے اور پرنٹ() فنکشن کا استعمال کرتے ہوئے ہر قدر کو پرنٹ کرتا ہے۔

ایڈیٹر لوڈ ہو رہا ہے…
اشارہ دکھائیں۔

Usa la sintassi: for (i in 1:5) { print(i) }

3 کوششوں کے بعد حل دستیاب ہے۔

ورزش#r.m2.l2.e3
کوششیں: 0لوڈ ہو رہا ہے…

ویکٹر وی کو دیکھتے ہوئے، ایک لوپ کے لیے لکھیں جو ہر عنصر پر اعادہ کرتا ہے اور print() کا استعمال کرتے ہوئے اس کے ڈبل (val * 2) کو پرنٹ کرتا ہے۔

ایڈیٹر لوڈ ہو رہا ہے…
اشارہ دکھائیں۔

v کے عناصر کے ذریعے لوپ کریں: for (val in v) { print(val * 2) }

3 کوششوں کے بعد حل دستیاب ہے۔

ورزش#r.m2.l2.e4
کوششیں: 0لوڈ ہو رہا ہے…

ویکٹر سکور کو دیکھتے ہوئے، ifelse() فنکشن کا استعمال یہ چیک کرنے کے لیے کریں کہ کون سے عناصر 60 سے زیادہ یا اس کے برابر ہیں۔ متغیر نتائج میں نتیجہ (جس میں ہر عنصر کے لیے 'Pass' یا 'Fail' ہو گا) کو محفوظ کریں۔

ایڈیٹر لوڈ ہو رہا ہے…
اشارہ دکھائیں۔

فنکشن استعمال کریں: نتائج <- ifelse(scores >= 60, 'Pass', 'fail')

3 کوششوں کے بعد حل دستیاب ہے۔

ورزش#r.m2.l2.e5
کوششیں: 0لوڈ ہو رہا ہے…

x کی قدر کو دوگنا کرنے کے لیے تھوڑی دیر کے لوپ کا استعمال کریں یہاں تک کہ یہ 50 سے تجاوز کر جائے۔ ہر تکرار پر کاؤنٹر متغیر کو بھی بڑھائیں۔

ایڈیٹر لوڈ ہو رہا ہے…
اشارہ دکھائیں۔

تھوڑی دیر کے لوپ (x <= 50) کا استعمال کریں اور گھوبگھرالی منحنی خطوط وحدانی کے اندر x اور کاؤنٹر دونوں کو اپ ڈیٹ کریں۔

3 کوششوں کے بعد حل دستیاب ہے۔