chorobyABC <- c("A", "B", "C")

pr <- c(30, 70, 60, 20, 30, 80, 50, 90, 40, 70, 80, 20, 40, 20, 60, 80, 40, 70, 10, 90, 50, 60, 50, 10) / 100;
pr <- matrix(data = pr,  nrow = 3,  byrow = FALSE )
row.names(pr) <-  paste("choroba", chorobyABC)
colnames(pr) <- paste("test", 1:8) 

# generovanie noveho pacienta a jeho choroby

NovyPacient <- function() {
  choroba <<- sample(x = c(1, 2, 3), size = 1, prob = c(1/3, 1/3, 1/3))
  ppChorob <<- matrix(data = c(1/3, 1/3, 1/3), nrow =1)
  testy <<- c(" ")
  vysledky <<- c(" ")
}

# vygeneruje vysledky testov a pravdepodobnosti pre choroby

Test <- function(n) {
  vysledok <- sample(c(1,0),  
                     size = 1,  
                     prob = c(pr[choroba, n], 1 - pr[choroba, n]))
  testy <<- c(testy,  n)
  vysledky <<- c(vysledky, vysledok)
  prTeraz <- ppChorob[nrow(ppChorob), ]
  if(vysledok ==0) prVysledok <-(1 - pr[ ,n]) else prVysledok <- pr [, n]
  prAktualizovane <- prVysledok * prTeraz / sum(prVysledok * prTeraz)
  ppChorob <<- rbind(ppChorob,  unname(prAktualizovane))
  print(vysledok) ;
}

# vykresli graf vyvoja pravdepodobnosti prevalencie chorob

Graf <- function() {
  test <- 0:(nrow(ppChorob) -1)
  plot(test,  ppChorob[, 1],  
       ylim = c(0, 1.5),  
       type = "b", pch = 20,  
       col = "red",  
       xlab = "", ylab = "pravdepodobnosť")
  lines(test,  ppChorob[, 2],  
        type = "b",  pch = 20,
        col = "green")
  lines(test,  ppChorob[, 3],  
        type = "b", 
        pch = 20,
        col = "blue")
  legend(0, 1.5,  legend = c("A", "B",  "C" ),
         pch = 20,
         col = c("red", "green", "blue" ),  horiz = TRUE )
}

# vypise vysledky a pravdepodobnosti

Tabulka <- function() {
  tab <- data.frame(testy,  vysledky,  ppChorob)
  names(tab) <- c("test", "vysledok", paste("pravdepodobnost", chorobyABC))
  print(tab,  row.names = FALSE)
}

# vypise skutocnu chorobu pacienta

SkutocnaChoroba <- function() {
  print(chorobyABC[choroba])
}

# vypise vstupnu tabulku s testami

DostupneTesty <- function() {
  print(pr)
}

# set.seed(4)
# NovyPacient()
# for(i in 1:8) Test(i)
# Tabulka()
# Graf()
# SkutocnaChoroba()
# DostupneTesty()

