#Question 1 #a no


gene1="ACGTACGT"
gene2="ACG"

#b no


combined_gene = paste(gene1, gene2)
print(combined_gene)
[1] "ACGTACGT ACG"
combined_gene = paste(gene1, gene2, sep ="")
print(combined_gene)
[1] "ACGTACGTACG"

#c no #Substring


gene1="ACGTACGT"

sub = substr(gene1, 2, 5)
sub
[1] "CGTA"

#d no #Pattern matching


gene1="ACGTACGT"

gene2="ACG"

grepl(gene2, gene1)
[1] TRUE
occ  = gregexpr(gene2, gene1)
occ
[[1]]
[1] 1 5
attr(,"match.length")
[1] 3 3
attr(,"index.type")
[1] "chars"
attr(,"useBytes")
[1] TRUE

#Question 2 #Arithmatic Operation


a=100
b=21

#Addition
res_add = a+b
print(a+b)
[1] 121
#Substract
res_sub = a-b
print(a-b)
[1] 79
#Multiplication
res_mult = a*b
print(a*b)
[1] 2100
#Division
res_div = a/b
print(a/b)
[1] 4.761905
#Power
res_pow = a**b
res_pow2 = a^b
print(a**b)
[1] 1e+42
print(a^b)
[1] 1e+42
#Modulo
res_mod = a %% b
print(a %% b)
[1] 16

#Question 3 #Vector #Create


scores = c( 100, 90, 50, 20, 30, 88, 66, 75, 71, 91, 0, 45, 61 )
print(scores)
 [1] 100  90  50  20  30  88  66  75  71  91   0  45  61

# Define the grading system
grading_system <- list(
  "A+" = list("min" = 80, "max" = 100),
  "A"  = list("min" = 70, "max" = 79),
  "A-" = list("min" = 60, "max" = 69),
  "B"  = list("min" = 50, "max" = 59),
  "C"  = list("min" = 40, "max" = 49),
  "D"  = list("min" = 33, "max" = 39),
  "F"  = list("min" = 0, "max" = 32)
)

# Function to calculate the letter grade
calculate_letter_grade <- function(score) {
  for (key in names(grading_system)) {
    min_score <- grading_system[[key]]$min
    max_score <- grading_system[[key]]$max
  
    if (score >= min_score && score <= max_score) {
      return(key)
    }
  }
  
  return("Invalid Score")
}

# Example scores
scores <- c( 100, 90, 50, 20, 30, 88, 66, 75, 71, 91, 0, 45, 61 )

# Calculate the letter grade for each score
for (score in scores) {
  letter_grade <- calculate_letter_grade(score)
  cat("Score:", score, "Letter Grade:", letter_grade, "\n")
}
Score: 100 Letter Grade: A+ 
Score: 90 Letter Grade: A+ 
Score: 50 Letter Grade: B 
Score: 20 Letter Grade: F 
Score: 30 Letter Grade: F 
Score: 88 Letter Grade: A+ 
Score: 66 Letter Grade: A- 
Score: 75 Letter Grade: A 
Score: 71 Letter Grade: A 
Score: 91 Letter Grade: A+ 
Score: 0 Letter Grade: F 
Score: 45 Letter Grade: C 
Score: 61 Letter Grade: A- 

#Age vector

age = c(20, 25, 28, 30, 35, 45, 50, 55, 60, 61, 66, 71, 75 )
print(age)
 [1] 20 25 28 30 35 45 50 55 60 61 66 71 75

#Correlation


age = c(20, 25, 28, 30, 35, 45, 50, 55, 60, 61, 66, 71, 75 )
print(age)
 [1] 20 25 28 30 35 45 50 55 60 61 66 71 75
scores = c(100, 90, 50, 20, 30, 88, 66, 75, 71, 91, 0, 45, 61 )
print(scores)
 [1] 100  90  50  20  30  88  66  75  71  91   0  45  61
cor(age, scores)
[1] -0.1958803

#Correlation nature is weak nagative correlation

scores[3:10]
[1] 50 20 30 88 66 75 71 91
age[3:10]
[1] 28 30 35 45 50 55 60 61
scores1 = c(50, 20, 30, 88, 66, 75, 71, 91 )
age1 = c(28, 30, 35, 45, 50, 55, 60, 61 )
cor(scores1,age1)
[1] 0.7954052

#Correlation nature is strong positive correlation

LS0tDQp0aXRsZTogIkFzc2lnbm1lbnQgMSINCm91dHB1dDogaHRtbF9ub3RlYm9vaw0KLS0tDQoNCg0KI1F1ZXN0aW9uIDENCiNhIG5vDQpgYGB7cn0NCg0KZ2VuZTE9IkFDR1RBQ0dUIg0KZ2VuZTI9IkFDRyINCg0KYGBgDQoNCiNiIG5vDQpgYGB7cn0NCg0KY29tYmluZWRfZ2VuZSA9IHBhc3RlKGdlbmUxLCBnZW5lMikNCnByaW50KGNvbWJpbmVkX2dlbmUpDQoNCmNvbWJpbmVkX2dlbmUgPSBwYXN0ZShnZW5lMSwgZ2VuZTIsIHNlcCA9IiIpDQpwcmludChjb21iaW5lZF9nZW5lKQ0KYGBgDQojYyBubw0KI1N1YnN0cmluZw0KDQpgYGB7cn0NCg0KZ2VuZTE9IkFDR1RBQ0dUIg0KDQpzdWIgPSBzdWJzdHIoZ2VuZTEsIDIsIDUpDQpzdWINCg0KYGBgDQojZCBubw0KI1BhdHRlcm4gbWF0Y2hpbmcNCg0KYGBge3J9DQoNCmdlbmUxPSJBQ0dUQUNHVCINCg0KZ2VuZTI9IkFDRyINCg0KZ3JlcGwoZ2VuZTIsIGdlbmUxKQ0KDQpvY2MgID0gZ3JlZ2V4cHIoZ2VuZTIsIGdlbmUxKQ0Kb2NjDQoNCmBgYA0KDQojUXVlc3Rpb24gMg0KI0FyaXRobWF0aWMgT3BlcmF0aW9uDQoNCmBgYHtyfQ0KDQphPTEwMA0KYj0yMQ0KDQojQWRkaXRpb24NCnJlc19hZGQgPSBhK2INCnByaW50KGErYikNCg0KI1N1YnN0cmFjdA0KcmVzX3N1YiA9IGEtYg0KcHJpbnQoYS1iKQ0KDQojTXVsdGlwbGljYXRpb24NCnJlc19tdWx0ID0gYSpiDQpwcmludChhKmIpDQoNCiNEaXZpc2lvbg0KcmVzX2RpdiA9IGEvYg0KcHJpbnQoYS9iKQ0KDQojUG93ZXINCnJlc19wb3cgPSBhKipiDQpyZXNfcG93MiA9IGFeYg0KcHJpbnQoYSoqYikNCnByaW50KGFeYikNCg0KI01vZHVsbw0KcmVzX21vZCA9IGEgJSUgYg0KcHJpbnQoYSAlJSBiKQ0KYGBgDQoNCiNRdWVzdGlvbiAzDQojVmVjdG9yDQojQ3JlYXRlDQoNCmBgYHtyfQ0KDQpzY29yZXMgPSBjKCAxMDAsIDkwLCA1MCwgMjAsIDMwLCA4OCwgNjYsIDc1LCA3MSwgOTEsIDAsIDQ1LCA2MSApDQpwcmludChzY29yZXMpDQoNCg0KDQpgYGANCg0KYGBge3J9DQoNCiMgRGVmaW5lIHRoZSBncmFkaW5nIHN5c3RlbQ0KZ3JhZGluZ19zeXN0ZW0gPC0gbGlzdCgNCiAgIkErIiA9IGxpc3QoIm1pbiIgPSA4MCwgIm1heCIgPSAxMDApLA0KICAiQSIgID0gbGlzdCgibWluIiA9IDcwLCAibWF4IiA9IDc5KSwNCiAgIkEtIiA9IGxpc3QoIm1pbiIgPSA2MCwgIm1heCIgPSA2OSksDQogICJCIiAgPSBsaXN0KCJtaW4iID0gNTAsICJtYXgiID0gNTkpLA0KICAiQyIgID0gbGlzdCgibWluIiA9IDQwLCAibWF4IiA9IDQ5KSwNCiAgIkQiICA9IGxpc3QoIm1pbiIgPSAzMywgIm1heCIgPSAzOSksDQogICJGIiAgPSBsaXN0KCJtaW4iID0gMCwgIm1heCIgPSAzMikNCikNCg0KIyBGdW5jdGlvbiB0byBjYWxjdWxhdGUgdGhlIGxldHRlciBncmFkZQ0KY2FsY3VsYXRlX2xldHRlcl9ncmFkZSA8LSBmdW5jdGlvbihzY29yZSkgew0KICBmb3IgKGtleSBpbiBuYW1lcyhncmFkaW5nX3N5c3RlbSkpIHsNCiAgICBtaW5fc2NvcmUgPC0gZ3JhZGluZ19zeXN0ZW1bW2tleV1dJG1pbg0KICAgIG1heF9zY29yZSA8LSBncmFkaW5nX3N5c3RlbVtba2V5XV0kbWF4DQogIA0KICAgIGlmIChzY29yZSA+PSBtaW5fc2NvcmUgJiYgc2NvcmUgPD0gbWF4X3Njb3JlKSB7DQogICAgICByZXR1cm4oa2V5KQ0KICAgIH0NCiAgfQ0KICANCiAgcmV0dXJuKCJJbnZhbGlkIFNjb3JlIikNCn0NCg0KIyBFeGFtcGxlIHNjb3Jlcw0Kc2NvcmVzIDwtIGMoIDEwMCwgOTAsIDUwLCAyMCwgMzAsIDg4LCA2NiwgNzUsIDcxLCA5MSwgMCwgNDUsIDYxICkNCg0KIyBDYWxjdWxhdGUgdGhlIGxldHRlciBncmFkZSBmb3IgZWFjaCBzY29yZQ0KZm9yIChzY29yZSBpbiBzY29yZXMpIHsNCiAgbGV0dGVyX2dyYWRlIDwtIGNhbGN1bGF0ZV9sZXR0ZXJfZ3JhZGUoc2NvcmUpDQogIGNhdCgiU2NvcmU6Iiwgc2NvcmUsICJMZXR0ZXIgR3JhZGU6IiwgbGV0dGVyX2dyYWRlLCAiXG4iKQ0KfQ0KDQoNCmBgYA0KDQojQWdlIHZlY3Rvcg0KYGBge3J9DQphZ2UgPSBjKDIwLCAyNSwgMjgsIDMwLCAzNSwgNDUsIDUwLCA1NSwgNjAsIDYxLCA2NiwgNzEsIDc1ICkNCnByaW50KGFnZSkNCg0KYGBgDQoNCiNDb3JyZWxhdGlvbg0KYGBge3J9DQoNCmFnZSA9IGMoMjAsIDI1LCAyOCwgMzAsIDM1LCA0NSwgNTAsIDU1LCA2MCwgNjEsIDY2LCA3MSwgNzUgKQ0KcHJpbnQoYWdlKQ0KDQpzY29yZXMgPSBjKDEwMCwgOTAsIDUwLCAyMCwgMzAsIDg4LCA2NiwgNzUsIDcxLCA5MSwgMCwgNDUsIDYxICkNCnByaW50KHNjb3JlcykNCg0KY29yKGFnZSwgc2NvcmVzKQ0KDQpgYGANCiNDb3JyZWxhdGlvbiBuYXR1cmUgaXMgd2VhayBuYWdhdGl2ZSBjb3JyZWxhdGlvbiANCg0KDQpgYGB7cn0NCnNjb3Jlc1szOjEwXQ0KYWdlWzM6MTBdDQoNCmBgYA0KYGBge3J9DQpzY29yZXMxID0gYyg1MCwgMjAsIDMwLCA4OCwgNjYsIDc1LCA3MSwgOTEgKQ0KYWdlMSA9IGMoMjgsIDMwLCAzNSwgNDUsIDUwLCA1NSwgNjAsIDYxICkNCmNvcihzY29yZXMxLGFnZTEpDQoNCg0KYGBgDQojQ29ycmVsYXRpb24gbmF0dXJlIGlzIHN0cm9uZyBwb3NpdGl2ZSBjb3JyZWxhdGlvbg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0K