Fibonacci dizisinin elemanlari 1 1 2 3 5 8 13 21 34 55 89 … dizinin elemanlarını for() döngüsü ile oluşturmaya çalışınız.
fib <- c(1,1)
while (max(fib) < 4e+06) {
fib <- c(fib, fib[length(fib) - 1] + fib[length(fib)])
}
fib
## [1] 1 1 2 3 5 8 13 21 34
## [10] 55 89 144 233 377 610 987 1597 2584
## [19] 4181 6765 10946 17711 28657 46368 75025 121393 196418
## [28] 317811 514229 832040 1346269 2178309 3524578 5702887
Örnek veri setinde i. satırda negatif sayı yok ise çıktıda i. satirin ortalaması….dir yazsin. Eğer veri setinde her hangi bir satırda negatif sayı var ise satir i negatif sayı bulunmaktadir. Veri setindeki satırlardaki toplam negatif sayı toplamı üçü geçerse çktıdacok sayida negatif sayisi yazsın ve döngü çalışmayı durdursun.
set.seed(1786)
ornek<-exp(matrix(rnorm(2000),nrow=100))
index1.temp<-sample(1:100,10)
index2.temp<-sample(1:20,10)
for(i in 1:10){
ornek[index1.temp[i],index2.temp[i]]<--1
}
head(ornek,6)
## [,1] [,2] [,3] [,4] [,5] [,6] [,7]
## [1,] 0.5549525 0.3247338 0.5236032 0.3821027 0.4187483 0.1588847 5.226161
## [2,] 0.5671734 1.2431592 0.8812069 2.6695443 0.6984453 1.0838792 1.079946
## [3,] 4.8068457 0.3449856 0.6079096 0.9194116 1.5361330 1.9082522 0.671977
## [4,] 1.3509234 2.3569582 0.1931423 4.0707377 0.3527276 2.3498825 1.198514
## [5,] 0.9012032 0.2310683 0.2317487 1.3809955 0.9168741 0.6237213 1.609403
## [6,] 1.2331483 1.1066056 0.3546027 0.3705946 0.9002303 0.2528151 3.337512
## [,8] [,9] [,10] [,11] [,12] [,13] [,14]
## [1,] 2.6280057 1.2251526 0.4760966 5.2379018 1.4782655 1.3761338 1.0202608
## [2,] 2.2087385 0.5195551 0.3757409 0.9004808 0.7409205 2.0543842 0.3668661
## [3,] 1.5310016 0.6735007 2.2069776 0.5060078 0.7171477 1.2378655 0.3651527
## [4,] 2.5592899 1.8205257 1.2624052 0.1524106 0.3828322 1.2406799 0.7954326
## [5,] 1.1005990 1.0619758 2.1047783 2.7816902 1.4010878 0.6140937 0.5136842
## [6,] 0.9799103 2.7520425 2.5407624 1.3889136 0.4346808 1.0637950 0.1859157
## [,15] [,16] [,17] [,18] [,19] [,20]
## [1,] 0.1437680 4.1807643 1.7389423 3.0760640 1.550557 4.4838291
## [2,] 3.8674407 1.9349214 0.6333922 0.4862532 5.275571 0.1161029
## [3,] 1.4724240 0.5971116 11.5869157 0.7580736 4.755297 1.0583051
## [4,] 0.1243085 0.8376231 1.3723291 2.0884571 2.506128 1.2094517
## [5,] 6.2971803 0.8422164 1.5335222 0.3079718 2.729447 1.7164885
## [6,] 3.8052219 2.1611055 0.3280288 2.7773368 1.726558 1.3193446
islem <- array()
for(i in 1:nrow(ornek)){
if(all(ornek[i,]>=0)){
islem[i] <- print(paste("Satir", i, "ortalamasi", mean(ornek[i,])))
}else if(sum(ornek[i,]<0)<=3){
islem[i] <- print(paste("Satir", i, "negatif sayi icermektedir."))
}else if(sum(ornek[i,]<0)>3){
islem[i] <- print(paste("Satir", i, "cok sayida negatif sayi icermektedir."))
}
}
## [1] "Satir 1 ortalamasi 1.81024640410365"
## [1] "Satir 2 ortalamasi 1.38518610357355"
## [1] "Satir 3 ortalamasi 1.91306477718819"
## [1] "Satir 4 ortalamasi 1.4112379414075"
## [1] "Satir 5 ortalamasi 1.4449874985066"
## [1] "Satir 6 ortalamasi 1.45095623366252"
## [1] "Satir 7 ortalamasi 1.28395242730511"
## [1] "Satir 8 ortalamasi 1.09256285552594"
## [1] "Satir 9 ortalamasi 1.42368154628106"
## [1] "Satir 10 negatif sayi icermektedir."
## [1] "Satir 11 ortalamasi 1.63867357063309"
## [1] "Satir 12 negatif sayi icermektedir."
## [1] "Satir 13 ortalamasi 1.47012239341985"
## [1] "Satir 14 ortalamasi 1.68760963291761"
## [1] "Satir 15 ortalamasi 1.51554665095691"
## [1] "Satir 16 ortalamasi 1.99518274468864"
## [1] "Satir 17 ortalamasi 1.47942292790106"
## [1] "Satir 18 ortalamasi 1.4444947260594"
## [1] "Satir 19 ortalamasi 1.54378752827146"
## [1] "Satir 20 ortalamasi 2.17983862702061"
## [1] "Satir 21 ortalamasi 1.48707990280766"
## [1] "Satir 22 ortalamasi 2.10918427665028"
## [1] "Satir 23 ortalamasi 2.53701879215026"
## [1] "Satir 24 negatif sayi icermektedir."
## [1] "Satir 25 negatif sayi icermektedir."
## [1] "Satir 26 ortalamasi 0.981573869823853"
## [1] "Satir 27 ortalamasi 2.10120070726688"
## [1] "Satir 28 ortalamasi 1.58708489312329"
## [1] "Satir 29 ortalamasi 2.07934105483056"
## [1] "Satir 30 ortalamasi 1.62838414992845"
## [1] "Satir 31 ortalamasi 1.06213338682266"
## [1] "Satir 32 ortalamasi 1.30176914432271"
## [1] "Satir 33 ortalamasi 1.22716566563699"
## [1] "Satir 34 ortalamasi 1.68089750840266"
## [1] "Satir 35 ortalamasi 2.04330971448464"
## [1] "Satir 36 ortalamasi 1.62042716634191"
## [1] "Satir 37 ortalamasi 1.49511549814556"
## [1] "Satir 38 negatif sayi icermektedir."
## [1] "Satir 39 ortalamasi 1.64957267061729"
## [1] "Satir 40 negatif sayi icermektedir."
## [1] "Satir 41 ortalamasi 1.61087414481598"
## [1] "Satir 42 ortalamasi 2.51292782080857"
## [1] "Satir 43 ortalamasi 1.29253831341951"
## [1] "Satir 44 ortalamasi 0.995338317972212"
## [1] "Satir 45 ortalamasi 1.06319606969695"
## [1] "Satir 46 ortalamasi 2.08723014108201"
## [1] "Satir 47 ortalamasi 1.63838098483115"
## [1] "Satir 48 ortalamasi 1.58748051253287"
## [1] "Satir 49 ortalamasi 1.36039204193038"
## [1] "Satir 50 ortalamasi 2.5030812334855"
## [1] "Satir 51 negatif sayi icermektedir."
## [1] "Satir 52 ortalamasi 1.1701846988099"
## [1] "Satir 53 ortalamasi 1.39932665703517"
## [1] "Satir 54 ortalamasi 0.851813922412085"
## [1] "Satir 55 ortalamasi 1.38874171912631"
## [1] "Satir 56 ortalamasi 1.28819137534643"
## [1] "Satir 57 ortalamasi 2.40583121888184"
## [1] "Satir 58 ortalamasi 0.954909626512"
## [1] "Satir 59 ortalamasi 1.37212622963709"
## [1] "Satir 60 ortalamasi 1.38257148153171"
## [1] "Satir 61 ortalamasi 1.13360242378072"
## [1] "Satir 62 ortalamasi 0.710679121145175"
## [1] "Satir 63 ortalamasi 1.01854602443719"
## [1] "Satir 64 negatif sayi icermektedir."
## [1] "Satir 65 ortalamasi 1.15965812704672"
## [1] "Satir 66 ortalamasi 0.842555588739729"
## [1] "Satir 67 ortalamasi 1.35084607269106"
## [1] "Satir 68 ortalamasi 1.14463972482843"
## [1] "Satir 69 ortalamasi 1.31510707964177"
## [1] "Satir 70 ortalamasi 1.60246658326134"
## [1] "Satir 71 ortalamasi 1.91370003124893"
## [1] "Satir 72 ortalamasi 2.17726089691906"
## [1] "Satir 73 ortalamasi 1.1509167872398"
## [1] "Satir 74 ortalamasi 3.37881346599407"
## [1] "Satir 75 ortalamasi 1.4458712001827"
## [1] "Satir 76 ortalamasi 1.65784983950186"
## [1] "Satir 77 ortalamasi 1.11154005692112"
## [1] "Satir 78 ortalamasi 1.66369767927207"
## [1] "Satir 79 ortalamasi 1.3726424347633"
## [1] "Satir 80 ortalamasi 1.45540060332781"
## [1] "Satir 81 ortalamasi 1.1547741826877"
## [1] "Satir 82 ortalamasi 3.34868667286079"
## [1] "Satir 83 ortalamasi 2.63518520261191"
## [1] "Satir 84 ortalamasi 1.35479992704511"
## [1] "Satir 85 ortalamasi 1.95680972834867"
## [1] "Satir 86 negatif sayi icermektedir."
## [1] "Satir 87 ortalamasi 1.45020821996795"
## [1] "Satir 88 ortalamasi 1.15091491124661"
## [1] "Satir 89 ortalamasi 1.25524639987064"
## [1] "Satir 90 ortalamasi 0.763787021104584"
## [1] "Satir 91 ortalamasi 1.29539957747794"
## [1] "Satir 92 negatif sayi icermektedir."
## [1] "Satir 93 ortalamasi 1.23735048852641"
## [1] "Satir 94 ortalamasi 2.15189363654345"
## [1] "Satir 95 ortalamasi 1.4852096703456"
## [1] "Satir 96 ortalamasi 1.56903650889034"
## [1] "Satir 97 ortalamasi 1.74906359142209"
## [1] "Satir 98 ortalamasi 2.91382990626373"
## [1] "Satir 99 ortalamasi 1.32444388929016"
## [1] "Satir 100 ortalamasi 1.72039519136943"
ornek[i,]
## [1] 0.2306306 0.4326504 2.3220752 1.3085742 0.4056920 0.3096230 0.6321737
## [8] 1.4640684 0.6200461 5.2398278 1.6007486 1.6872310 2.1584657 1.0075204
## [15] 7.0757560 0.6724383 0.3367730 1.2002964 1.0504106 4.6529025
Aşağıdaki üçgen asterisk çıktısını olusturacak olan kodu döngü kullanarak yazınız.
for(i in c(1:15))
cat( paste0(strrep(" ", 15 - i), strrep("* ", i), "\n") )
## *
## * *
## * * *
## * * * *
## * * * * *
## * * * * * *
## * * * * * * *
## * * * * * * * *
## * * * * * * * * *
## * * * * * * * * * *
## * * * * * * * * * * *
## * * * * * * * * * * * *
## * * * * * * * * * * * * *
## * * * * * * * * * * * * * *
## * * * * * * * * * * * * * * *
#yada
yildiz <- 1
while (yildiz<100) {
if (yildiz>=15) {
break
} else {cat(paste0(strrep(" ", 15-yildiz), strrep("* ", yildiz), "\n" ))
}
yildiz <- yildiz+2
}
## *
## * * *
## * * * * *
## * * * * * * *
## * * * * * * * * *
## * * * * * * * * * * *
## * * * * * * * * * * * * *
triangle <- 1
while (triangle<120) {
if (triangle>=15) {
break
} else {cat(paste0(strrep(" ", 15-triangle), strrep("* ", triangle), "\n" ))
}
triangle <- triangle+2
}
## *
## * * *
## * * * * *
## * * * * * * *
## * * * * * * * * *
## * * * * * * * * * * *
## * * * * * * * * * * * * *
Aşağıdaki kare asterisk çıktısını olusturacak olan kodu döngü kullanarak yazınız.
sekil <- function(max) {
bosluk <- max - 1
for (i in 0:(max-1)) {
for (j in 0:bosluk) cat(" ")
for (j in 1:5) cat(" * ")
cat("\n")
}
}
sekil(5)
## * * * * *
## * * * * *
## * * * * *
## * * * * *
## * * * * *
Aşağıdaki kare asterisk çıktısını olusturacak olan kodu döngü kullanarak yazınız.
sekil <- function(max) {
bosluk <- max - 1
for (i in 0:(max-1)) {
for (j in 0:bosluk) cat(" ")
for (j in 1:7) cat(" * ")
cat("\n")
}
}
sekil(7)
## * * * * * * *
## * * * * * * *
## * * * * * * *
## * * * * * * *
## * * * * * * *
## * * * * * * *
## * * * * * * *
Aşağıdaki dikdörtgen asterisk çıktısını olusturacak olan kodu döngü kullanarak yazınız.
sekil <- function(max) {
bosluk <- max - 1
for (i in 0:(max-1)) {
for (j in 0:bosluk) cat(" ")
for (j in 0:9) cat(" * ")
cat("\n")
}
}
sekil(4)
## * * * * * * * * * *
## * * * * * * * * * *
## * * * * * * * * * *
## * * * * * * * * * *
length <- 6
width <- 4
counter <- 1
while (counter<=length) {
if(counter==1 | counter==length){
cat(strrep("* ",width),"\n")
} else {cat(strrep("* ",1))
cat(strrep(" ",2*width-4))
cat(strrep("* ",1),"\n")
}
counter <- counter+1
}
## * * * *
## * *
## * *
## * *
## * *
## * * * *
Pisagor üçlüsü olan ve toplamı 1000 olan sayıların çarpımını bulunuz.
a <- 499
b <- 1
repeat {
hypo <- sqrt(a^2+b^2)
sum <- a + b + hypo
prod <- a*b*hypo
if (sum >1000){
a <- a-1
}else if(sum<1000){
b <- b+1
}else if(sum==1000 | b==500 ){
break
}
}
a
## [1] 375
b
## [1] 200
hypo
## [1] 425
prod
## [1] 31875000
Eratosthenes yöntemini kullanarak asal sayıları bulunuz “any” komutunu ve %% mod opertorunu kullanabilirsiniz.
primes <- 2:100
curr.prime <- 2
while(curr.prime < sqrt(100)){
primes[(primes >= curr.prime **2) & (primes %% curr.prime == 0)] <- 0
curr.prime <- min(primes[primes>curr.prime])
}
primes <- primes[primes!=0] # 0 olanları göstermek istemiyorsan bunu yaz
primes
## [1] 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97