Вычислите значение выражения cos(π4). Результат округлите до 2 знака после запятой.
Решение:
Сначала найдем просто косинус Пи на четыре.
cos(pi/4)
## [1] 0.7071068
А теперь обернем это в функцию округления в качестве первого аргумента. А второй аргумент поставим 2.
round(cos(pi/4), 2)
## [1] 0.71
Запустите следующий код. round(pi; 3)
. Работает ли она, если нет, то почему?
Решение:
Помним, что аргументы функций перечисляются через запятую, а не через точку с запятой.
Сложите какое-то число с NA
. Что получилось и почему так получилось? Попробуйте повыполнять другие арифметические операции. Что-то изменилось? Что будет, если сложить NA
с NA
?
Решение:
NA + 2
## [1] NA
NA * 10
## [1] NA
NA - 20
## [1] NA
NA/15
## [1] NA
NA + NA
## [1] NA
Помним, что NA
– это not available. То есть это значение недоступно, мы не знаем что за ним скрывается. Может это 5, а может 10. Все что угодно. Поэтому при любой арифметической операции мы не знаем что получим в итоге. Поэтому получается NA
.
Создайте переменную n
равную 3. После чего создайте переменную a
равную nn. После чего присвойте переменной n
новое значение равное 4. Изменится ли значение переменной a
?
Решение:
3)
(n <-## [1] 3
n^n)
(a <-## [1] 27
4
n <-print(n)
## [1] 4
print(a)
## [1] 27
Значение числа a
не изменилось, так как каждая переменная имеет свою ячейку памяти, поэтому она независима от изменений других переменных.
Создайте строковую переменную name
равную “Alsu”. Умножьте эту переменную на 3, что получится?
Решение:
"Alsu"
name <-* 3 name
## Error in name * 3: нечисловой аргумент для бинарного оператора
Видим, что выдается ошибка, потому что умножать строковую переменную на числовую нельзя.
У вас имеются 2 переменные, как поменять их значения местами? Например, у вас имеются переменная a
равная 5 и переменная b
равная 10. Нужно, чтобы теперь в переменной a
хранилось значение 10, а в переменной b
хранилось значение 5. Эти значения могут меняться, поэтому нельзя просто написать a <- 10
и b <- 5
.
Решение:
5
a <- 10 b <-
Для данной задачи нужно создать еще одну переменную, которая поможет нам. А потом перекидываем значения между переменными.
a
c <- b
a <- c
b <-
print(a)
## [1] 10
print(b)
## [1] 5
Выведите последний элемент массива и его позицию.
Решение:
Чтобы вывести i-ый элемент массива a
, нужно написать a[i]
. Последний элемент находится на позиции равной длине массива. А длинну массива a
можно найти с помощью функции length(a)
, которая и будет позицией последнего элемента.
length(a)] # последний элемент массива a[
## [1] 10
length(a) # позиция последнего элемента
## [1] 1
Такой код является универсальным. Если массив изменится, нам не нужно менять ничего в коде.
Создайте массивы четных и нечетных чисел от 1 до 100.
Решение:
Для решения нужно вспомнить функцию seq
.
seq(1, 100, 2) # нечетные
seq(2, 100, 2) # четные
Создайте массив, состоящий из 100 единиц.
Решение:
А здесь нужно вспомнить функцию rep
.
rep(1, 100)
Создайте массив, состоящий из 10 случайных двухзначных чисел. Посчитайте его сумму. Выполните весь код еще раз. Поменялся ли ответ?
Решение:
sample(x = 9:99, size = 10)
x <-sum(x)
## [1] 511
Конечно же ответ поменялся: массив же случайный!
Создайте два массива, состоящих из четырех случайных чисел от 1 до 10. Сложите эти два массива. Теперь замените 3ий элемент одного из массивов на NA
. Сложите массивы еще раз. Что изменилось? Теперь добавьте элемент равный 100 в начало массива и сложите массивы в третий раз. Что случилось теперь?
Решение:
sample(x = 1:10, size = 4)
x1 <- sample(x = 1:10, size = 4)
x2 <-
+ x2 x1
## [1] 9 14 11 16
3] <- NA
x1[
+ x2 x1
## [1] 9 14 NA 16
На 3 месте при сумме появилось NA
, так как любая арифметическая операция с NA
дает в результате NA
c(100, x1)
x1 <-+ x2 x1
## Warning in x1 + x2: длина большего объекта не является произведением длины
## меньшего объекта
## [1] 105 12 12 NA 14
Появилось предупреждение, так как длины массивов не совпадают.
Гонщик движется по кольцевой дороге, длина которой 4км. Сколько кругов он проедет через n метров (n>0)? Если гонщик не доехал круг, то сколько метров нужно ему еще проехать до финиша?
Решение:
Здесь нужно вспомнить, как находить остаток от деления и целую часть
5000
n <-%/%4000 # сколько кругов n
## [1] 1
%%4000 # сколько осталось проехать n
## [1] 1000
Определите, сколько часов (число от 0 до 23) и минут (число от 0 до 59) будут показывать часы через t минут (t>0) после начала суток.
Решение:
Здесь нужно понимать, что если количество минут, которые прошли от начала суток, больше, чем всего минут в сутках, то счетчик минут должен как бы обнуляться, тогда решением будет:
1441
t <-%% (60 * 24) %/% 60 # сколько часов t
## [1] 0
%% 60 # сколько минут t
## [1] 1
В университете решили набрать три новых группы для занятий по программированию. В первой группе – n1 человек, во второй – n2, в третьей – n3. Сколько нужно будет закупить компьютерных столов для студентов, если известно, что за одним столом могут находиться не более 2х человек и что занятия студентов проходят в одно время?
Решение:
Снова задача на знание остатка и целого при делении.
20
n1 <- 14
n2 <- 30
n3 <-
+ n2 + n3) %/% 2 + (n1 + n2 + n3) %% 2 (n1
## [1] 32