title: “Cvičenie 2 – Skaláre, text, logické vektory” author: “Návrh cvičenia” date: “2025-10-10” output: html_document

Skaláre a jednoduché operácie

a <- 12
b <- 7
sucet <- a + b
rozdiel <- a - b
nasobok <- a * b
podiel <- a / b
sucet; rozdiel; nasobok; podiel
## [1] 19
## [1] 5
## [1] 84
## [1] 1.714286

Malé cvičenie

Vytvorte dve čísla podľa vlastného výberu a vypočítajte:

druhú mocninu prvého čísla,

odmocninu druhého čísla,

zaokrúhlenie ich podielu na dve desatinné miesta.

c <- 15
d <- 9
druha_mocnina <- c^2
odmocnina <- sqrt(d)
podiel_cd <- round(c / d, 2)
druha_mocnina; odmocnina; podiel_cd
## [1] 225
## [1] 3
## [1] 1.67

Práca s textom

meno <- "Oliver"
priezvisko <- "Slivka"
cele_meno <- paste(meno, priezvisko)
cele_meno
## [1] "Oliver Slivka"

Malé cvičenie

Vytvorte tri reťazce: názov mesta, názov štátu a rok narodenia. Spojte ich do jednej vety (napr. „Narodil som sa v … v roku …“). Použite funkciu paste() alebo paste0().

mesto <- "Bratislava"
stat <- "Slovensko"
rok <- 2000
veta <- paste("Narodil som sa v", mesto, "v štáte", stat, "v roku", rok, ".")
veta
## [1] "Narodil som sa v Bratislava v štáte Slovensko v roku 2000 ."

Logické hodnoty a vektory

x <- c(2, 5, 8, 11, 14)
log_vysledok <- x > 7
log_vysledok
## [1] FALSE FALSE  TRUE  TRUE  TRUE

Moje cvičenie s vektormi

vek <- c(18, 25, 30, 40, 55)
vek_priemer <- mean(vek)
vek > vek_priemer
## [1] FALSE FALSE FALSE  TRUE  TRUE

Malé cvičenie

Zistite, koľko prvkov v zadanom vektore je menších ako 30 rokov. Použite funkciu sum() na logické hodnoty.

mensie_ako_30 <- sum(vek < 30)
mensie_ako_30
## [1] 2

Môj návrh použitia novinky

V pôvodnom dokumente nebolo použité vyhľadávanie indexov. Ukážme si, ako môžeme nájsť pozície prvkov, ktoré spĺňajú určitú podmienku.

cisla <- c(3, 9, 12, 4, 20, 7)
pozicie <- which(cisla > 10)
pozicie
## [1] 3 5
cisla[pozicie]
## [1] 12 20

Funkcia which() nám umožní získať indexy prvkov vo vektore, ktoré spĺňajú podmienku (napr. väčšie ako 10).

Cvičenie 1 – Výpočty po riadkoch a stĺpcoch

Vytvorte maticu veľkosti 5×3 s hodnotami 1–15 (po stĺpcoch). Spočítajte: súčet po riadkoch, priemer po stĺpcoch, a vytvorte nový vektor, ktorý obsahuje maximálnu hodnotu v každom riadku.

M2 <- matrix(1:15, nrow = 5)
M2
##      [,1] [,2] [,3]
## [1,]    1    6   11
## [2,]    2    7   12
## [3,]    3    8   13
## [4,]    4    9   14
## [5,]    5   10   15
apply(M2, 1, sum)     # suma po riadkoch
## [1] 18 21 24 27 30
apply(M2, 2, mean)    # priemer po stĺpcoch
## [1]  3  8 13
apply(M2, 1, max)     # maximum v každom riadku
## [1] 11 12 13 14 15

Cvičenie 2 – Operácie s diagonálou a porovnanie matíc

Vytvorte dve 3×3 matice A a B s náhodnými číslami od 0 do 10. Následne: nahraďte diagonálu matice A číslom 0, vypočítajte súčin zistite, ktorá matica má väčší súčet všetkých prvkov.

set.seed(2025)
A <- matrix(runif(9, 0, 10), nrow = 3)
B <- matrix(runif(9, 0, 10), nrow = 3)

A; B
##          [,1]     [,2]     [,3]
## [1,] 7.326202 4.984323 8.984003
## [2,] 4.757614 7.802845 1.278527
## [3,] 5.142159 5.042522 6.446721
##          [,1]      [,2]     [,3]
## [1,] 5.695311 6.5435753 8.573432
## [2,] 4.353166 0.2383565 3.650603
## [3,] 9.523265 4.6812288 3.655750
diag(A) <- 0           # nahradenie diagonály nulami
A
##          [,1]     [,2]     [,3]
## [1,] 0.000000 4.984323 8.984003
## [2,] 4.757614 0.000000 1.278527
## [3,] 5.142159 5.042522 0.000000
A_tB <- t(A) %*% B     # súčin A^T B
A_tB
##          [,1]     [,2]     [,3]
## [1,] 69.68082 25.20563 36.16660
## [2,] 76.40853 56.22049 61.16694
## [3,] 56.73233 59.09225 81.69113
sum_A <- sum(A)
sum_B <- sum(B)

if (sum_A > sum_B) {
  cat("Matica A má väčší súčet prvkov.\n")
} else if (sum_A < sum_B) {
  cat("Matica B má väčší súčet prvkov.\n")
} else {
  cat("Obe matice majú rovnaký súčet prvkov.\n")
}
## Matica B má väčší súčet prvkov.

Malé cvičenie – Diagonálne hodnoty a suma

Vytvorte maticu 4×4 s hodnotami 1–16 (po riadkoch). Vypíšte len diagonálne prvky a spočítajte ich súčet.

M <- matrix(1:16, nrow = 4, byrow = TRUE)
M
##      [,1] [,2] [,3] [,4]
## [1,]    1    2    3    4
## [2,]    5    6    7    8
## [3,]    9   10   11   12
## [4,]   13   14   15   16
# diagonálne prvky
diag(M)
## [1]  1  6 11 16
# súčet diagonálnych prvkov
sum(diag(M))
## [1] 34