ELEMENTY PROGRAMOWANIA

INSTRUKCJE WARUNKOWE

1. IF

if -> pozwala na warunkowe wykonywanie fragmentu kodu

Przykład 1 Czy liczba jest parzysta?

liczba<-56
if(liczba%%2==0){
  cat("liczba jest parzysta\n")
}else{                         # ważne by "else" było od razu po "}"
  cat("liczba jest nieparzysta\n")}
## liczba jest parzysta

2. IFELSE

ifelse -> pozwala na skrócenie zapisu instrukcji warunkowej Wykorzystywnay gdy kod warunkowy jest krótki Świetnie się sprawdza do porownywania wektorów

Przykład 2 Porównanie dwóch zmiennych

jeden<-"mama"
dwa<-"tata"
ifelse(jeden==dwa,"to samo", "inne" )
## [1] "inne"

Przykład 3 Porównanie liczb rzeczywistych

a<-9
b<-17
ifelse(25==a+b, "prawda", "nie prawda")
## [1] "nie prawda"

Przykład 4

wektor<-rnorm(10)
wektor
##  [1]  0.3259747 -0.3181251 -0.3232528 -1.4703931  0.8442784  1.2241223
##  [7] -0.5015233  0.2444951 -0.3389639  0.4725020
ifelse(wektor<0, -1, 1)
##  [1]  1 -1 -1 -1  1  1 -1  1 -1  1

PĘTLE

1. FOR

for -> stosowany, gdy liczba powtórzeń pętli jest z góry znana

Przykład 5 Krok iteracji

for(i in 1:5){
  cat(paste("krok iteracji"), paste(i, "\n" ))
}
## krok iteracji 1 
## krok iteracji 2 
## krok iteracji 3 
## krok iteracji 4 
## krok iteracji 5

Przykład 6

liczby<- c("mama", "tata","kot")
for( i in liczby){
  cat(paste(i, "\n"))
}
## mama 
## tata 
## kot

Przykład 7

liczby<- c("mama", "tata","kot", "pies")
for( i in (length(liczby)-1)){
  cat(paste(i, "\n"))
}
## 3

Przykład 8

liczby<- c("mama", "tata","kot", "pies")
for( i in 1:(length(liczby)-1)){
  cat(paste(i, "\n"))
}
## 1 
## 2 
## 3

2. WHILE

while-> stosowany, gdy powtórzenia maja być wykonywane tak długo, jak długo prawdziwy jest podany warunek

Przykład 9

liczba<-7
while (liczba>0){
  cat(paste("liczba= ", liczba, "\n"))
  liczba<-liczba-2
}
## liczba=  7 
## liczba=  5 
## liczba=  3 
## liczba=  1

Przykład 10

i <- 1
while (i < 6) {
print(i)
i = i+1
}
## [1] 1
## [1] 2
## [1] 3
## [1] 4
## [1] 5

Przykład 11 Zatrzymaj pętle gdy i=4

i <- 1
while (i < 6) {
  print(i)
  i <- i + 1
  if (i == 4) {
    break
  }
} 
## [1] 1
## [1] 2
## [1] 3

Przykład 12

data(iris)                                               # Loading exemplifying data set
head(iris) 
##   Sepal.Length Sepal.Width Petal.Length Petal.Width Species
## 1          5.1         3.5          1.4         0.2  setosa
## 2          4.9         3.0          1.4         0.2  setosa
## 3          4.7         3.2          1.3         0.2  setosa
## 4          4.6         3.1          1.5         0.2  setosa
## 5          5.0         3.6          1.4         0.2  setosa
## 6          5.4         3.9          1.7         0.4  setosa
running_index <- 1   
while(is.numeric(iris[ , running_index])) {              # zaczynamy pętle
 
  iris[ , running_index] <- iris[ , running_index] + 50  # blok pętli, jeśli kolumna/zmienna jest "numeric" to dodaj 50 do wartości zmiennej
  running_index <- running_index + 1                     # przejście z jednej do drugiej kolumny/zmiennej
 
}

Przykład 13 Wyświetl liczby od 1 do 5 omijając liczbę 3

number = 1


while(number <= 5) {
  if (number == 3) {  
    number = number + 1
    next                 # jesli warunek spełniony, wartość pomijana
  }
    
  # wyświetl liczby
  print(number)
    
  # przyrost wektora numer o 1
  number = number + 1  
}
## [1] 1
## [1] 2
## [1] 4
## [1] 5

FUNKCJE

Przykład 14 Wyświetl trzykrotność największej wartości z podanego wektora

pierwsza_funkcja<-function(wektor)
{
  maximum<-max(wektor)    #szukanie maksymalnej wartości w wektorze
  wynik<-3*maximum
  wynik
}
pierwsza_funkcja(c(10,30,50,8,6,2,1,300))
## [1] 900

Prostszy zapis

druga_funkcja<-function(wektor)
{
  3*max(wektor)
}
druga_funkcja(c(10,30,50,8,6,2,1,300))
## [1] 900

ZADANIA

Zadanie 1

Wyświetl liczby nieparzyste od 1 do 1000 używając pętli while i instrukcji warunkowej if

number = 1

while(number <= 1000) {
  # omiń liczby, które są parzyste
  if (number %% 2 == 0) {  
    number = number + 1
    
  }
    
  # wyświetl liczby
  print(number)
    
  # przyrost wektora numer o 1
  number = number + 1  
}

Zadanie 2

Wyświetl liczby parzyste od 60 do 195 używając pętli while i instrukcji warunkowej if

number = 60

while(number <= 195) {
  if (number %% 2 != 0) {  
    number = number+1
  }
  # wyświetl liczby
  print(number)
    
  # przyrost wektora numer o 1
  number = number + 1  
}