Тест по "Программированию"
Автор: qqq3412 • Январь 12, 2022 • Тест • 1,179 Слов (5 Страниц) • 224 Просмотры
1.
#==============константы
G_MAX <- 1000000 #количество товара
Price_min <- 20
Price_max <- 6000
SALE25 <- 25 #процент скидки на все товары
#==============раздел переменных
price <- double(length = G_MAX) #массив цен на товары
price/sale <-double(leght = G_MAX) #массив цен на товары со скидкой
#==============расчетная часть
t0 <- unclass((Sys.time()))
for (i in 1:G_MAX) {
price[i] <runif(min=Price_min, max=Price_max, n=1)
price[i] <round(price[i],2)
}
price
#========пересчитаем цены с учетом скидки
for (i in 1:G_MAX) {
price.sale[i] <-round(price[i]*SALE25 / 100, 2)
}
t1 <- unclass(Sys.time())
#======================расчет с использованием конструкций R
price <-runif(min=Price_min, max= Price_max, n=G_MAX)
price <-round(price, 2)
#========пересчитаем цены с учетом скидки
price.sale <- round(price*SALE25 / 100, 2)
t2< unclass(Sys.time())
dt1<-t1-t0
dt2<-t2-t1
k<-dt1/dt2
k
price
price.sale
2.
#получить вводом с клавиатуры два целых числа
#• первое число возвести в степень второго, вывести эти числа
#• затем второе число возвести в степень первого, вывести результат
#• разделить первое число на второе, вывести результат
#• выполнить деление на ноль, посмотреть на результат
{
a<-as.integer(readline('Введите первое целое число'))
b<-as.integer(readline('Введите второе целое число'))
print(paste('Первое число:', a, 'Второе число:', b))
print(paste('a^b=', a^b))
print(paste('a/b=', a/b))
print(paste('a/0=', a/0))
}
3.
a1<- rep(x = -1:1, times = 3)
a1
a2<- rep(x = -1:1, each = 3)
a2
a3<- rep(x <- -1:1, times<- 3)
a3
a4<- rep(x <- -1:1, each <- 3)
a4
# 1/ Исследовать и сформулировать отличия в работе функций,
# определяющих тип вектора: typeof(), mode(), str()
--------------------------------------------
#2/ Какого типа вектора w1, w2, w3, w4, w5, w6 на стр. 4? Чему равна их
#длина? Почему векторы w3 и w4 одного типа?
{
w1 <- c(-12L, 4, 'Level 2', 8.2, TRUE)
w2 <- c(0, 56/6, FALSE, FALSE, 18)
w3 <- c(Inf, NULL, NA, FALSE, 18, NaN)
w4 <- c(Inf, NULL, NA, FALSE, 18L, NaN)
w5 <- c(Inf, NULL, NA, FALSE, '18', NaN)
w6 <- c(NULL)
print (paste('длина=',length(w1),'тип=',typeof(w1)))
print (paste('длина=',length(w2),'тип=',typeof(w2)))
print (paste('длина=',length(w3),'тип=',typeof(w3)))
print (paste('длина=',length(w4),'тип=',typeof(w4)))
print (paste('длина=',length(w5),'тип=',typeof(w5)))
print (paste('длина=',length(w6),'тип=',typeof(w6)))
}
# Так как все элементы должны иметь один и тот же тип, то при попытке комбинирования
# объектов нескольких разных типов, они будут приведены к единому типу.
--------------------------------------------
# 3/ Выяснить, что будут содержать итоговые вектора w1, w2, w3 при
# различных параметрах функции rep(). Объяснить полученный
# результат.
w1 <- rep(c(0,-1,1:3),times=3)
w1 #данный вектор повторяется 3 раза
w2 <- rep(c(0,-1,1:3),each=3)
w2 #числа данного вектора повторяются каждый по 3 раза
w3 <- rep(c(0,-1,1:3),each=3,times=2)
w3 #последовательность чисел, которые повторяются каждый по 3 раза, повторяется 2 раза
--------------------------------------------
# 4/ Cоздать вектор через вызов функции seq(), одновременно
# использовать параметры by и length.out. Объяснить правило
# формирования вектора в этом случае.
w <- seq(by = 2.5, length.out = 22)
w
#формируетсяя вектор длиной в 22 элемента и с шагом 2.5 начиная с 1
--------------------------------------------
# 5/ С какими параметрами нужно запустить scan(), чтобы был реализован
# ввод с клавиатуры элементов логического вектора? Привести пример.
?scan
a1 <- scan(what=logical())
--------------------------------------------
# 6/ Как реализовать ввод с клавиатуры вектора, состоящего из строк?
# Привести пример.
a2 <- scan(what=character())
a2
fix(a2)
--------------------------------------------
...