algorism 계산
x <- 7
y <- 5
x + y
# 식으로 표현하기
cat(x,"+",y,"=",x+y)
plus <- function(x,y){
return (x+y);
}
plus(3,8)
plus <- function(x,y){
return (cat(x,"+",y,"=",x+y));
}
plus(3,8)
minus <- function(x,y){
return (x-y);
}
minus(3,8)
multi <- function(x,y){
return (cat(x,"*", y, "=", x*y));
}
multi(3,8)
div.float <- function(x,y){
return (cat(x,"/", y, "=", x/y));
}
div.float(8,3)
div.integer <- function(x,y){
return (cat(x,"%/%", y, "=", x%/%y));
}
div.integer(8,3)
div.remainder <- function(x,y){
return (cat(x,"%%", y, "=", x%%y));
}
div.remainder(8,3)
## 계산기
x <- 3
op <- "+"
y <- 2
if(op=="+") plus(x,y) else
if(op=="-") minus(x,y) else
if(op=="*") multi(x,y) else
if(op=="/") div.float(x,y) else
if(op=="%/%") div.integer(x,y) else
if(op=="%%") div.remainder(x,y) else
print("error")
calc <- function(x,op,y){
if(op=="+") plus(x,y) else
if(op=="-") minus(x,y) else
if(op=="*") multi(x,y) else
if(op=="/") div.float(x,y) else
if(op=="%/%") div.integer(x,y) else
if(op=="%%") div.remainder(x,y) else
print("error")
}
calc(1,"+",2)
calc(2,">",4)
# data 종류: count (이산형), countless (연속형)
calc2 <- function(x,op,y){
switch(
op,
"+"=plus(x,y),
"-"=minus(x,y),
"*"=multi(x,y),
"/"=div.float(x,y),
"%/%"=div.integer(x,y),
"%%"=div.remainder(x,y)
)
}
calc2(5,"*",6)
LS0tDQp0aXRsZTogIlIgTm90ZWJvb2siDQpvdXRwdXQ6IGh0bWxfbm90ZWJvb2sNCi0tLQ0KYWxnb3Jpc20g6rOE7IKwDQoNCmBgYHtyfQ0KeCA8LSA3DQp5IDwtIDUNCnggKyB5IA0KIyDsi53snLzroZwg7ZGc7ZiE7ZWY6riwDQpjYXQoeCwiKyIseSwiPSIseCt5KQ0KDQpwbHVzIDwtIGZ1bmN0aW9uKHgseSl7DQogIHJldHVybiAoeCt5KTsNCn0NCnBsdXMoMyw4KQ0KDQpwbHVzIDwtIGZ1bmN0aW9uKHgseSl7DQogIHJldHVybiAoY2F0KHgsIisiLHksIj0iLHgreSkpOw0KfQ0KcGx1cygzLDgpDQoNCm1pbnVzIDwtIGZ1bmN0aW9uKHgseSl7DQogIHJldHVybiAoeC15KTsNCn0NCm1pbnVzKDMsOCkNCg0KbXVsdGkgPC0gZnVuY3Rpb24oeCx5KXsNCiAgcmV0dXJuICAoY2F0KHgsIioiLCB5LCAiPSIsIHgqeSkpOw0KfQ0KbXVsdGkoMyw4KQ0KDQpkaXYuZmxvYXQgPC0gZnVuY3Rpb24oeCx5KXsNCiAgcmV0dXJuIChjYXQoeCwiLyIsIHksICI9IiwgeC95KSk7DQp9DQpkaXYuZmxvYXQoOCwzKQ0KDQpkaXYuaW50ZWdlciA8LSBmdW5jdGlvbih4LHkpew0KICByZXR1cm4gKGNhdCh4LCIlLyUiLCB5LCAiPSIsIHglLyV5KSk7DQp9DQpkaXYuaW50ZWdlcig4LDMpDQoNCmRpdi5yZW1haW5kZXIgPC0gZnVuY3Rpb24oeCx5KXsNCiAgcmV0dXJuIChjYXQoeCwiJSUiLCB5LCAiPSIsIHglJXkpKTsNCn0NCmRpdi5yZW1haW5kZXIoOCwzKQ0KDQoNCiMjIOqzhOyCsOq4sA0KeCA8LSAzDQpvcCA8LSAiKyINCnkgPC0gIDINCg0KaWYob3A9PSIrIikgcGx1cyh4LHkpIGVsc2UNCmlmKG9wPT0iLSIpIG1pbnVzKHgseSkgZWxzZQ0KaWYob3A9PSIqIikgbXVsdGkoeCx5KSBlbHNlDQppZihvcD09Ii8iKSBkaXYuZmxvYXQoeCx5KSBlbHNlDQppZihvcD09IiUvJSIpIGRpdi5pbnRlZ2VyKHgseSkgZWxzZQ0KaWYob3A9PSIlJSIpIGRpdi5yZW1haW5kZXIoeCx5KSBlbHNlDQpwcmludCgiZXJyb3IiKQ0KDQpjYWxjIDwtICBmdW5jdGlvbih4LG9wLHkpew0KICBpZihvcD09IisiKSBwbHVzKHgseSkgZWxzZQ0KICBpZihvcD09Ii0iKSBtaW51cyh4LHkpIGVsc2UNCiAgaWYob3A9PSIqIikgbXVsdGkoeCx5KSBlbHNlDQogIGlmKG9wPT0iLyIpIGRpdi5mbG9hdCh4LHkpIGVsc2UNCiAgaWYob3A9PSIlLyUiKSBkaXYuaW50ZWdlcih4LHkpIGVsc2UNCiAgaWYob3A9PSIlJSIpIGRpdi5yZW1haW5kZXIoeCx5KSBlbHNlDQogIHByaW50KCJlcnJvciIpDQp9DQoNCmNhbGMoMSwiKyIsMikNCmNhbGMoMiwiPiIsNCkNCg0KIyBkYXRhIOyiheulmDogY291bnQgKOydtOyCsO2YlSksIGNvdW50bGVzcyAo7Jew7IaN7ZiVKQ0KY2FsYzIgPC0gIGZ1bmN0aW9uKHgsb3AseSl7DQogIHN3aXRjaCgNCiAgICBvcCwNCiAgICAiKyI9cGx1cyh4LHkpLA0KICAgICItIj1taW51cyh4LHkpLA0KICAgICIqIj1tdWx0aSh4LHkpLA0KICAgICIvIj1kaXYuZmxvYXQoeCx5KSwNCiAgICAiJS8lIj1kaXYuaW50ZWdlcih4LHkpLCANCiAgICAiJSUiPWRpdi5yZW1haW5kZXIoeCx5KQ0KICApDQp9DQoNCmNhbGMyKDUsIioiLDYpDQogDQpgYGANCg0K