Dr. Kubra Atalay Kabasakal
Aralık 2021
# Ergul,O. Guide to Programming and Algorithms Using R, Springer
# dedication
dedicate <- function (reader){
if (reader == "mywife") print ("To my wife...")
else if (reader== "myparents") print ("To my parents...")
else print ("To all programmers...")
}
dedicate("mywife")
dedicate("myparents")
dedicate("reader")## [1] "Merhaba"
## [1] "Merhaba"
## [1] "Merhaba"
## [1] "Merhaba"
Aşağıdaki kodun durması için koşullu sağlayacak bir işlem gerekli
Koşulun sağlanması için koşulun değeri döngü içinde değiştirilmeli!
Döngünün içinde geçen iki satırın yeri değiştirildiğinde ne olur?
## [1] 1
## [1] 2
## [1] 3
## [1] 4
## [1] 3
## [1] 6
## [1] 9
## [1] 12
## [1] 15
## [1] 18
## [1] 21
## [1] 24
Yazacağınız döngü 100’den başlayarak 5’er 5’er geri geri gitsin. Ne zamanki oluşan sayı hem 7 e hem de 5 e tam bölünüyosa döngü çalışmayı durdursun.
sayi <- 100
while (sayi >= 0) {
if ( sayi %% 5 == 0 & sayi %% 7 == 0) {
break
}
sayi <- sayi - 5
}
print(sayi)## [1] 70
y ~ N(0,1) , 1000 tane değer üretip, mutlak değerini alalım. Bu veri setinin ilk kaç elamanında 2’den büyük üç tane elaman vardır sorusuna while ile çözüm üretilim.
## [1] 0.896914547 0.184849185 1.587845331 1.130375674 0.080251757 0.132420284
## [7] 0.707954729 0.239698024 1.984473937 0.138787012 0.417650751 0.981752777
## [13] 0.392695356 1.039668977 1.782228960 2.311069085 0.878604581 0.035806718
## [19] 1.012828692 0.432265155 2.090819205 1.199925820 1.589638200 1.954651642
## [25] 0.004937777 2.451706388 0.477237303 0.596558169 0.792203270 0.289636710
## [31] 0.738938604 0.318960401 1.076164354 0.284157720 0.776675274 0.595660499
## [37] 1.725979779 0.902584480 0.559061915 0.246512567 0.383586228 1.959103175
## [43] 0.841705060 1.903547467 0.622493930 1.990920436 0.305483725 0.090844235
## [49] 0.184161452 1.198767765 0.838287148 2.066301356 0.562247053 1.275715512
## [55] 1.047572627 1.965878241 0.322971094 0.935862527 1.139229803 1.671618767
## [61] 1.788242207 2.031242519 0.703144333 0.158164763 0.506234797 0.819995106
## [67] 1.998846995 0.479292591 0.084179904 0.895486611 0.921275666 0.330449503
## [73] 0.141660809 0.434847762 0.053722626 0.907110376 1.303512232 0.771789776
## [79] 1.052525595 1.410038341 0.995984590 1.695764903 0.533372143 1.372269451
## [85] 2.207919779 1.822122519 0.653393411 0.284681219 0.386949604 0.386694975
## [91] 1.600390852 1.681154956 1.183606388 1.358457254 1.512670795 1.253104899
## [97] 1.959357077 0.007645872 0.842615198 0.601160105
## [1] 6
## [1] 2.311069 2.090819 2.451706
Hız yapmayı seven bir kişinin arabasında bulanan bir alet 140 km/saat hızı aştığında hızını en az 120km/saate düşürmelisin uyarısını versin. Bu alet kişinin hızı 120 km/saat ve altinda ise saattaki hızını en az 20 km/saat azaltmalısın yazsın. Bu alet kişinin hızı 100 km/saat civarında ise biraz daha yavaslamayı deneyebilirsin desin. 82 km/saat ve altında ise güvendesin boyle devam edebilirsin diyebilir.
speed <- 120
while (speed > 82) {
print(paste("Hızınız:", speed, "Lütfen yavaşlayın!" ))
speed <- speed - 7
if(speed <= 82) {
print(paste("Hızınız:", speed, "Böyle devam edebilirsin!"))
break
}
}## [1] "Hızınız: 120 Lütfen yavaşlayın!"
## [1] "Hızınız: 113 Lütfen yavaşlayın!"
## [1] "Hızınız: 106 Lütfen yavaşlayın!"
## [1] "Hızınız: 99 Lütfen yavaşlayın!"
## [1] "Hızınız: 92 Lütfen yavaşlayın!"
## [1] "Hızınız: 85 Lütfen yavaşlayın!"
## [1] "Hızınız: 78 Böyle devam edebilirsin!"
speed <- 140
while (speed >= 140) {
print(paste("Hızınız:", speed,"Hızını en az 120km/saate düşürmelisin"))
speed = speed -20
if (speed >= 120) print(paste("Hızınız:", speed,"Saatteki hızını en az 20 km/saat azaltmalısın"))
speed <- speed - 20
if (speed >= 100) print(paste("Hızınız", speed,"biraz daha yavaslamayı deneyebilirsin!"))
speed <- speed - 20
if(speed <=82) print("Boyle devam et!")
}## [1] "Hızınız: 140 Hızını en az 120km/saate düşürmelisin"
## [1] "Hızınız: 120 Saatteki hızını en az 20 km/saat azaltmalısın"
## [1] "Hızınız 100 biraz daha yavaslamayı deneyebilirsin!"
## [1] "Boyle devam et!"
speed <- 140
while (speed >= 140) {
print(paste("Suanki hızın", speed))
print("hızını en az 120km/saate düşürmelisin")
speed = speed -20
if (speed >= 120) {
print("saattaki hızının en az 20 km/saat azaltmalısın")
speed <- speed - 20
}
if (speed >= 100){
speed <- speed - 20
print("Biraz daha yavaslamayı deneyebilirsin!")
}
if(speed <=82){
print("Boyle devam et!")
}
}## [1] "Suanki hızın 140"
## [1] "hızını en az 120km/saate düşürmelisin"
## [1] "saattaki hızının en az 20 km/saat azaltmalısın"
## [1] "Biraz daha yavaslamayı deneyebilirsin!"
## [1] "Boyle devam et!"
## [1] 80
Kcal <- 0
while (Kcal <= 2000){
if (Kcal < 1500) print(paste("Aldığınız günlük kcal:",Kcal))
if (Kcal >= 1500) print(paste("Aldığınız günlük kcal:",Kcal,"Kcal limitine yaklaşmak üzeresin!"))
if (Kcal >= 2000) print(paste("Aldığınız günlük kcal:",Kcal, "Uyumayı deneyebilirsin!"))
Kcal <- Kcal + 100
}## [1] "Aldığınız günlük kcal: 0"
## [1] "Aldığınız günlük kcal: 100"
## [1] "Aldığınız günlük kcal: 200"
## [1] "Aldığınız günlük kcal: 300"
## [1] "Aldığınız günlük kcal: 400"
## [1] "Aldığınız günlük kcal: 500"
## [1] "Aldığınız günlük kcal: 600"
## [1] "Aldığınız günlük kcal: 700"
## [1] "Aldığınız günlük kcal: 800"
## [1] "Aldığınız günlük kcal: 900"
## [1] "Aldığınız günlük kcal: 1000"
## [1] "Aldığınız günlük kcal: 1100"
## [1] "Aldığınız günlük kcal: 1200"
## [1] "Aldığınız günlük kcal: 1300"
## [1] "Aldığınız günlük kcal: 1400"
## [1] "Aldığınız günlük kcal: 1500 Kcal limitine yaklaşmak üzeresin!"
## [1] "Aldığınız günlük kcal: 1600 Kcal limitine yaklaşmak üzeresin!"
## [1] "Aldığınız günlük kcal: 1700 Kcal limitine yaklaşmak üzeresin!"
## [1] "Aldığınız günlük kcal: 1800 Kcal limitine yaklaşmak üzeresin!"
## [1] "Aldığınız günlük kcal: 1900 Kcal limitine yaklaşmak üzeresin!"
## [1] "Aldığınız günlük kcal: 2000 Kcal limitine yaklaşmak üzeresin!"
## [1] "Aldığınız günlük kcal: 2000 Uyumayı deneyebilirsin!"
400’den küçük olan Fibonacci dizisinin elemanlarını while() döngüsü ile yazma
## [1] 1 1 2 3 5 8 13 21 34 55 89 144 233 377
## [1] 1 1 2 3 5 8 13 21 34 55 89 144 233 377
Aşağıdaki üçgen çıktısını olusturacak olan kodu döngü kullanarak yazınız.
## *
## * * *
## * * * * *
## * * * * * * *
## * * * * * * * * *
## * * * * * * * * * * *
## * * * * * * * * * * * * *
## * * * * * * * * * * * * * * *
Aşağıdaki kare çıktısını oluşturacak olan kodu döngü kullanarak yazınız.
## * * * * *
## * * * * *
## * * * * *
## * * * * *
## * * * * *
Aşağıdaki kare çıktısını oluşturacak olan kodu döngü kullanarak yazınız.
## * * * * * * *
## * * * * * * *
## * * * * * * *
## * * * * * * *
## * * * * * * *
## * * * * * * *
## * * * * * * *
Aşağıdaki dikdortgen çıktısını oluşturacak olan kodu döngü kullanarak yazınız.
Dikdörtgeni uzun ve kısa kenar icin deger girilerek de olusturabilirsiniz.,
## * * * * * * * * * *
## * * * * * * * * * *
## * * * * * * * * * *
## * * * * * * * * * *