Задание 1

В переменной belki сохранено число очков у команды «Белки», в переменной strelki сохранено число очков у команды «Стрелки» (создайте переменные и присвойте им значения по своему усмотрению). Напишите код, который сравнивает значения переменных и:

• если число очков у первой команды больше, чем у второй, выводит на экран сообщение “Победила команда БЕЛКИ!”

• если число очков у второй команды больше, чем у первой, выводит на экран сообщение “Победила команда СТРЕЛКИ!”

• если обе команды набрали одинаковое число очков, выводится сообщение “Победила дружба!”.

belki <- 16
strelki <- 16

if (belki > strelki){
  print("Победила команда БЕЛКИ!")
} else if (strelki > belki){
  print("Победила команда СТРЕЛКИ!")
} else {
  print("Победила дружба!")
}
## [1] "Победила дружба!"

Задание 2

Дан вектор со значениями температуры воздуха 10 дней февраля: temp <- c(-8, -5, 0, 2, -6, -9, -8, -12, -11, -7) Нормальная температура в феврале лежит в пределах от -9.8 до -3.7. Напишите код, который выводит на экран температуру воздуха (каждый элемент вектора temp) и комментарий к нему: • если температура выше нормы, то “Температура выше нормы”; • если температура ниже нормы, то “Температура ниже нормы”; • если температура в норме, то “Температура в норме”.

Пример вывода на экран: 2 Температура выше нормы

temp <- c(-8, -5, 0, 2, -6, -9, -8, -12, -11, -7)
tmin <- -9.8
tmax <- -3.7

for (i in temp){
  if (i < tmin){
    cat(i, "Температура ниже нормы\n")
  } else if (i > tmax){
    cat(i, "Температура выше нормы\n")
  } else {
    cat(i, "Температура в норме\n")
  }
}
## -8 Температура в норме
## -5 Температура в норме
## 0 Температура выше нормы
## 2 Температура выше нормы
## -6 Температура в норме
## -9 Температура в норме
## -8 Температура в норме
## -12 Температура ниже нормы
## -11 Температура ниже нормы
## -7 Температура в норме

Задание 3

Напишите функцию progress(), которая • принимает на вход два числа: число сданных домашних заданий и общее число домашних заданий; •возвращает процент выполненных домашних заданий, округленный до второго знака после запятой.

progress <- function(a, b){
  n <- round((a/b)*100,2)
  cat("Процент выполненных домашних заданий -", n,"%\n")
  n
}

t <- progress(3,11)
## Процент выполненных домашних заданий - 27.27 %

Задание 4

Напишите функцию assessment(), которая • принимает на вход вектор прибыли (может содержать как положительные, так и отрицательные значения); • возвращает вектор такой же длины, что и вектор на входе, из 0 и 1, где 0 соответствует отрицательным и нулевым значениям прибыли, а 1 – положительным значениям прибыли.

В этой задаче необходимо использовать цикл for. Пример: На входе: с(-100, 150, 3500, 720, 0, -350). На выходе: c(0, 1, 1, 1, 1, 0, 0).

assesment <- function(a){
  res <- c()
  for (i in a){
    if (i > 0){
      res<-c(res,1)}
    else{res<-c(res,0)}
    }
  res
  }
test <- c(-100, 150, 3500, 720, 0, -350)
print(assesment(test))
## [1] 0 1 1 1 0 0

Задание 5

Решите предыдущую задачу без использования цикла, но с использованием функции ifelse(). Подсказка: запросите help по этой функции и посмотрите, как она работает.

help(ifelse)
assesment2 <- function(a){
  res <- ifelse(test>0,1,0)
  res
}
print(assesment2(test))
## [1] 0 1 1 1 0 0