▶️ Tematyka

  • Instrukcje warunkowe
    • Funkcja if
    • Funkcja if… else…
    • Funkcja ifelse
  • Pętle
    • Pętla for
    • Pętla while
    • Pętla repeat
    • Inne przykłady


📘 Instrukcje warunkowe

Funkcja if

x=12
if(x>10)
{print("nierówność jest prawdziwa",quote=F)}
## [1] nierówność jest prawdziwa
if(x>10) print("nierówność jest prawdziwa")
## [1] "nierówność jest prawdziwa"

Funkcja if… else…

x=7
if(x>10){
print("nierówność jest prawdziwa")
}else {
print("nierówność jest fałszywa")
}
## [1] "nierówność jest fałszywa"
liczba=sample(1:100,1)
liczba
## [1] 46
x=34

if(x==liczba) {
print(paste("wybrana liczba x jest równa",liczba))
}else{
    if(x>liczba){
    print(paste("wybrana liczba x jest większa od",liczba))
    }else{
    print(paste("wybrana liczba x jest mniejsza od", liczba))
}}
## [1] "wybrana liczba x jest mniejsza od 46"

Funkcja ifelse

x=1:16

nierówność=ifelse(x>10,"nierówność jest prawdziwa","nierówność jest fałszywa")
nierówność
##  [1] "nierówność jest fałszywa"  "nierówność jest fałszywa" 
##  [3] "nierówność jest fałszywa"  "nierówność jest fałszywa" 
##  [5] "nierówność jest fałszywa"  "nierówność jest fałszywa" 
##  [7] "nierówność jest fałszywa"  "nierówność jest fałszywa" 
##  [9] "nierówność jest fałszywa"  "nierówność jest fałszywa" 
## [11] "nierówność jest prawdziwa" "nierówność jest prawdziwa"
## [13] "nierówność jest prawdziwa" "nierówność jest prawdziwa"
## [15] "nierówność jest prawdziwa" "nierówność jest prawdziwa"
data.frame(nierówność)
##                   nierówność
## 1   nierówność jest fałszywa
## 2   nierówność jest fałszywa
## 3   nierówność jest fałszywa
## 4   nierówność jest fałszywa
## 5   nierówność jest fałszywa
## 6   nierówność jest fałszywa
## 7   nierówność jest fałszywa
## 8   nierówność jest fałszywa
## 9   nierówność jest fałszywa
## 10  nierówność jest fałszywa
## 11 nierówność jest prawdziwa
## 12 nierówność jest prawdziwa
## 13 nierówność jest prawdziwa
## 14 nierówność jest prawdziwa
## 15 nierówność jest prawdziwa
## 16 nierówność jest prawdziwa

📘 Pętle

Pętla for

for(i in 1:5) print(i)
## [1] 1
## [1] 2
## [1] 3
## [1] 4
## [1] 5
for(i in 1:5) 
{
print(i)
}
## [1] 1
## [1] 2
## [1] 3
## [1] 4
## [1] 5
z=1:8
for(i in z) 
{
print(i*10)
}
## [1] 10
## [1] 20
## [1] 30
## [1] 40
## [1] 50
## [1] 60
## [1] 70
## [1] 80
# Wyznaczenie sumy pierwszych 20 liczb naturalnych (bez zera).
suma=0
liczby=1:20
for(i in liczby)
{
suma=suma+i
}
suma
## [1] 210
# Wyznaczenie sumy elementów wektora x.
x=c(23,45,13,22,11,-54)
suma=0
for(i in 1:length(x))
{
suma=suma+x[i]
}
suma
## [1] 60
# Wyznaczenie sumy różnic elementów wektora x.
x=c(12,34,4,-15,4,0)
suma=0
for(i in 2:length(x))
{
suma=suma+(x[i]-x[i-1]) #Nawias tutaj jest niepotrzebny, ale podkreśla czynność odejmowania.
}
suma
## [1] -12
# Wyświetlenie kolejnych różnic elementów wektora x.
x=c(12,34,4,-15,4,0)
for(i in 2:length(x))
{
print(x[i]-x[i-1])
}
## [1] 22
## [1] -30
## [1] -19
## [1] 19
## [1] -4

Pętla while

# Wyświetlenie pierwszych 9 licz naturalnych (bez 0).
i=1
while(i<10)
{
print(i)
i=i+1
}
## [1] 1
## [1] 2
## [1] 3
## [1] 4
## [1] 5
## [1] 6
## [1] 7
## [1] 8
## [1] 9
# Wyznaczenie sumy elementów wektora x.
x=c(12,-30,4,2,67,-18)
i=1
suma=0
while(i<=length(x))
{
suma=suma+x[i]
i=i+1
}
suma
## [1] 37
sum(x)  #Sprawdzenie poprawności uzyskanych wyników.
## [1] 37

Pętla repeat

i=1
repeat
{
print(paste("powtórzenie nr.",i))
i=i+1
if(i>5) break     
}
## [1] "powtórzenie nr. 1"
## [1] "powtórzenie nr. 2"
## [1] "powtórzenie nr. 3"
## [1] "powtórzenie nr. 4"
## [1] "powtórzenie nr. 5"

Przykład 1

# Wyświetlić kolejne 10 potęg liczby 2 za pomocą:

#Pętli for

#1 sposób
for(i in 1:10)
{
print(2^i)
}
## [1] 2
## [1] 4
## [1] 8
## [1] 16
## [1] 32
## [1] 64
## [1] 128
## [1] 256
## [1] 512
## [1] 1024
#2 sposób
x=1:10
x
##  [1]  1  2  3  4  5  6  7  8  9 10
y=c()

for(i in 1:length(x))
{
y[i]=2^x[i]
}
y
##  [1]    2    4    8   16   32   64  128  256  512 1024
#Pętli while

#1 sposób
i=1
while(i<=10)
{
print(2^i)
i=i+1
}
## [1] 2
## [1] 4
## [1] 8
## [1] 16
## [1] 32
## [1] 64
## [1] 128
## [1] 256
## [1] 512
## [1] 1024
#2 sposób
i=1
y=c()
while(i<=length(x))
{
y[i]=2^x[i]
i=i+1
}
y
##  [1]    2    4    8   16   32   64  128  256  512 1024
#Pętli repeat

#1 sposób
i=1
repeat
{
print(2^i)
i=i+1
if(i>10) break
}
## [1] 2
## [1] 4
## [1] 8
## [1] 16
## [1] 32
## [1] 64
## [1] 128
## [1] 256
## [1] 512
## [1] 1024
#2 sposób
i=1
y=c()
repeat
{
y[i]=2^x[i]
i=i+1
if(i>length(x))break
}
y
##  [1]    2    4    8   16   32   64  128  256  512 1024

Przykład 2

# Napisać pętlę, która będzie wyświetlała kolejne 10 potęg liczby 3 
# i będzie pokazywała komunikat: 3 do potęgi… wynosi….

x=1:10
x
##  [1]  1  2  3  4  5  6  7  8  9 10
y=c()
for(i in 1:length(x))
{
y[i]=2^x[i]
print(paste("2 do potęgi",i,"wynosi",y[i]))
}
## [1] "2 do potęgi 1 wynosi 2"
## [1] "2 do potęgi 2 wynosi 4"
## [1] "2 do potęgi 3 wynosi 8"
## [1] "2 do potęgi 4 wynosi 16"
## [1] "2 do potęgi 5 wynosi 32"
## [1] "2 do potęgi 6 wynosi 64"
## [1] "2 do potęgi 7 wynosi 128"
## [1] "2 do potęgi 8 wynosi 256"
## [1] "2 do potęgi 9 wynosi 512"
## [1] "2 do potęgi 10 wynosi 1024"

Inne przykłady

Pętla for i instrukcja if

# Pętla wyświetlająca komentarz: "liczba ... jest parzysta" 
# lub "liczba ... jest nieparzysta", w zależności od elementów wektora x.
x=c(21,52,35,12,25)

for(i in 1:length(x))
{
if(x[i]%%2==0){
print(paste("Liczba",x[i],"jest parzysta"))
}else{
print(paste("Liczba",x[i],"jest nieparzysta"))
}
}
## [1] "Liczba 21 jest nieparzysta"
## [1] "Liczba 52 jest parzysta"
## [1] "Liczba 35 jest nieparzysta"
## [1] "Liczba 12 jest parzysta"
## [1] "Liczba 25 jest nieparzysta"

Zagnieżdżona pętla for

# Napisać kod wyświetlający najpierw sumę pierwszego elementu z wektora x 
# z kolejnymi elementami wektora y, 
# a później sumę drugiego elementu wektora x z kolejnymi elementami wektora y itd. 

x=c(12,2,3,4)
y=c(5,4,8,7)

for(i in 1:length(x))
{
for(j in 1:length(y))
{
print(x[i]+y[j])
}
}
## [1] 17
## [1] 16
## [1] 20
## [1] 19
## [1] 7
## [1] 6
## [1] 10
## [1] 9
## [1] 8
## [1] 7
## [1] 11
## [1] 10
## [1] 9
## [1] 8
## [1] 12
## [1] 11