alpsahin/tubitak-olimpiyat-dataset-v2 huggingface dataset:
Bilgisayar Olimpiyatı 2007, 1. Aşama, Soru 38

## [38-42] soruları için açıklama
Aşağıda içiçe 3 adet döngüden oluşan ve 4 adet içeriği sizden sorulan yer içeren bir C programı parçası verilmektedir. Bu yerlere sadece 1, n, a ya da b ifadeleri yazılabilecektir.
t = 0;
n = 5;
for (a = 1; a <= n; a = a+1)
for (b = @@1@@; b <= @@2@@; b = b+1)
for (c = @@3@@; c <= @@4@@; c = c+1) t = t+1;
## AÇIKLAMA
İşleri kolaylaştırmak adına 2 fonksiyon tanımlayalım:
f(x) = 1 + 2 + ... + x
g(x) = f(1) + f(2) + ... + f(x)
Gördüğümüz üzere:
f(1) = 1,
f(2) = 3,
f(3) = 6,
f(4) = 10,
f(5) = 15
g(1) = 1,
g(2) = 4,
g(3) = 10,
g(4) = 20,
f(5) = 35
Şimdi şıklara bakalım:
A) 1n bn: bn döngüsünde t += n - (b - 1) olur. Her b [1,5] için toplarsak 5*5 - f(4) = 25-10 = 15 olur. Her a [1,5] içinse 5*15 = 75 olur.
B) 1ab b: bb döngüsünde t += 1our. Her 1a döngüsünde t += a olur. Her a [1,5] içinse toplam artış f(5) = 15 olur.
C) an bn: bn döngüsünde t += n - (b - 1) olu. Her b [a,5] için:
(5-a+1)*5 - (a - 1 + a + ... + 4 = f(4) - f(a-2)) = 30-5*a - f(4) + f(a-2)
a [1,5] için 20*5 - 5*f(5) + g(3) = 100 - 75 + 10 = 35
D) 1ab n: bn döngüsünde t += n - (b - 1) o lu. Her b [1, a] için:
a*n - (0 + 1 + ... + a-1 = f(a-1))
a [1, 5] için f(5)*(n=5) - g(4) = 15*5 - 20 = 55
E) 1n b b: a->[1, 5], b ->[1, 5] ve c her zaman 1 değer aldığından t += (5*5 = 25) olur.
Şimdi soruları cevaplayalım:

---

Yukarıda verilen C programı parçası tamamlandığında t'nin değerinin 15 olması için @1@0, @0@2@0, @0@3@0 ve @0@4@0 ile gösterilen yerlere sırası ile hangi ifadeler yazılmalıdır?

Şıklar:
A) 1n b n | B) 1a b b | C) a n b n | D) 1a b n | E) 1n b b

Cevap: B 1a b b

Çözüm:
Açıklamaya göre B şıkkıdır.
Bilgisayar Olimpiyatı 2007, 1. Aşama, Soru 39

## [38-42] soruları için açıklama
Aşağıda içiçe 3 adet döngüden oluşan ve 4 adet içeriği sizden sorulan yer içeren bir C programı parçası verilmektedir. Bu yerlere sadece 1, n, a ya da b ifadeleri yazılabilecektir.
t = 0;
n = 5;
for (a = 1; a <= n; a = a+1)
for (b = @@1@@; b <= @@2@@; b = b+1)
for (c = @@3@@; c <= @@4@@; c = c+1) t = t+1;
## AÇIKLAMA
İşleri kolaylaştırmak adına 2 fonksiyon tanımlayalım:
f(x) = 1 + 2 + ... + x
g(x) = f(1) + f(2) + ... + f(x)
Gördüğümüz üzere:
f(1) = 1,
f(2) = 3,
f(3) = 6,
f(4) = 10,
f(5) = 15
g(1) = 1,
g(2) = 4,
g(3) = 10,
g(4) = 20,
f(5) = 35
Şimdi şıklara bakalım:
A) 1n bn: bn döngüsünde t += n - (b - 1) olur. Her b [1,5] için toplarsak 5*5 - f(4) = 25-10 = 15 olur. Her a [1,5] içinse 5*15 = 75 olur.
B) 1ab b: bb döngüsünde t += 1our. Her 1a döngüsünde t += a olur. Her a [1,5] içinse toplam artış f(5) = 15 olur.
C) an bn: bn döngüsünde t += n - (b - 1) olu. Her b [a,5] için:
(5-a+1)*5 - (a - 1 + a + ... + 4 = f(4) - f(a-2)) = 30-5*a - f(4) + f(a-2)
a [1,5] için 20*5 - 5*f(5) + g(3) = 100 - 75 + 10 = 35
D) 1ab n: bn döngüsünde t += n - (b - 1) o lu. Her b [1, a] için:
a*n - (0 + 1 + ... + a-1 = f(a-1))
a [1, 5] için f(5)*(n=5) - g(4) = 15*5 - 20 = 55
E) 1n b b: a->[1, 5], b ->[1, 5] ve c her zaman 1 değer aldığından t += (5*5 = 25) olur.
Şimdi soruları cevaplayalım:

---

Yukarıda verilen C programı parçası tamamlandığında t' nin değerinin 25 olması için @1@0, @0@2@0, @0@ 3@0 ve @0@4@0 ile gösterilen yerlere sıra sı ile hangi ifadeler yazılmalıdır?

Şıklar:
A) 1n b n | B) 1a b b | C) a n b n | D) 1a b n | E) 1n b b

Cevap: E 1n b b

Çözüm:
Açıklamaya göre E şıkkıdır.
Bilgisayar Olimpiyatı 2007, 1. Aşama, Soru 40

## [38-42] soruları için açıklama
Aşağıda içiçe 3 adet döngüden oluşan ve 4 adet içeriği sizden sorulan yer içeren bir C programı parçası verilmektedir. Bu yerlere sadece 1, n, a ya da b ifadeleri yazılabilecektir.
t = 0;
n = 5;
for (a = 1; a <= n; a = a+1)
for (b = @@1@@; b <= @@2@@; b = b+1)
for (c = @@3@@; c <= @@4@@; c = c+1) t = t+1;
## AÇIKLAMA
İşleri kolaylaştırmak adına 2 fonksiyon tanımlayalım:
f(x) = 1 + 2 + ... + x
g(x) = f(1) + f(2) + ... + f(x)
Gördüğümüz üzere:
f(1) = 1,
f(2) = 3,
f(3) = 6,
f(4) = 10,
f(5) = 15
g(1) = 1,
g(2) = 4,
g(3) = 10,
g(4) = 20,
f(5) = 35
Şimdi şıklara bakalım:
A) 1n bn: bn döngüsünde t += n - (b - 1) olur. Her b [1,5] için toplarsak 5*5 - f(4) = 25-10 = 15 olur. Her a [1,5] içinse 5*15 = 75 olur.
B) 1ab b: bb döngüsünde t += 1our. Her 1a döngüsünde t += a olur. Her a [1,5] içinse toplam artış f(5) = 15 olur.
C) an bn: bn döngüsünde t += n - (b - 1) olu. Her b [a,5] için:
(5-a+1)*5 - (a - 1 + a + ... + 4 = f(4) - f(a-2)) = 30-5*a - f(4) + f(a-2)
a [1,5] için 20*5 - 5*f(5) + g(3) = 100 - 75 + 10 = 35
D) 1ab n: bn döngüsünde t += n - (b - 1) o lu. Her b [1, a] için:
a*n - (0 + 1 + ... + a-1 = f(a-1))
a [1, 5] için f(5)*(n=5) - g(4) = 15*5 - 20 = 55
E) 1n b b: a->[1, 5], b ->[1, 5] ve c her zaman 1 değer aldığından t += (5*5 = 25) olur.
Şimdi soruları cevaplayalım:

---

Yukarıda verilen C programı parçası tamamlandığında t ' nin değerinin 35 olması için @1@0, @0@2@0, @0@0 ve @0@4@0 ile gösterilen yerlere sıras ı ile hangi ifadeler yazılmalıdır?

Şıklar:
A) 1n b n | B) 1a b b | C) a n b n | D) 1a b n | E) 1n b b

Cevap: C a n b n

Çözüm:
Açıklamaya göre C şıkkıdır.
Bilgisayar Olimpiyatı 2007, 1. Aşama, Soru 41

## [38-42] soruları için açıklama
Aşağıda içiçe 3 adet döngüden oluşan ve 4 adet içeriği sizden sorulan yer içeren bir C programı parçası verilmektedir. Bu yerlere sadece 1, n, a ya da b ifadeleri yazılabilecektir.
t = 0;
n = 5;
for (a = 1; a <= n; a = a+1)
for (b = @@1@@; b <= @@2@@; b = b+1)
for (c = @@3@@; c <= @@4@@; c = c+1) t = t+1;
## AÇIKLAMA
İşleri kolaylaştırmak adına 2 fonksiyon tanımlayalım:
f(x) = 1 + 2 + ... + x
g(x) = f(1) + f(2) + ... + f(x)
Gördüğümüz üzere:
f(1) = 1,
f(2) = 3,
f(3) = 6,
f(4) = 10,
f(5) = 15
g(1) = 1,
g(2) = 4,
g(3) = 10,
g(4) = 20,
f(5) = 35
Şimdi şıklara bakalım:
A) 1n bn: bn döngüsünde t += n - (b - 1) olur. Her b [1,5] için toplarsak 5*5 - f(4) = 25-10 = 15 olur. Her a [1,5] içinse 5*15 = 75 olur.
B) 1ab b: bb döngüsünde t += 1our. Her 1a döngüsünde t += a olur. Her a [1,5] içinse toplam artış f(5) = 15 olur.
C) an bn: bn döngüsünde t += n - (b - 1) olu. Her b [a,5] için:
(5-a+1)*5 - (a - 1 + a + ... + 4 = f(4) - f(a-2)) = 30-5*a - f(4) + f(a-2)
a [1,5] için 20*5 - 5*f(5) + g(3) = 100 - 75 + 10 = 35
D) 1ab n: bn döngüsünde t += n - (b - 1) o lu. Her b [1, a] için:
a*n - (0 + 1 + ... + a-1 = f(a-1))
a [1, 5] için f(5)*(n=5) - g(4) = 15*5 - 20 = 55
E) 1n b b: a->[1, 5], b ->[1, 5] ve c her zaman 1 değer aldığından t += (5*5 = 25) olur.
Şimdi soruları cevaplayalım:

---

Yukarıda verilen C programı parçası tamamlandığında t’ nin değerinin 55 olması için @1@0, @0@2@0, @0@1@0 ve @0@4@0 ile gösterilen yerlere sırasını ile hangi ifadeler yazılmalıdır?

text<|/ref|>
.[134, 792, 210, 807]]<|/det|>

Şıklar:
A) 1n b n | B) 1a b b | C) a n b n | D) 1a b n | E) 1n b b

Cevap: D 1a b n

Çözüm:
Açıklamaya göre D şıkkıdır.
Bilgisayar Olimpiyatı 2007, 1. Aşama, Soru 42

## [38-42] soruları için açıklama
Aşağıda içiçe 3 adet döngüden oluşan ve 4 adet içeriği sizden sorulan yer içeren bir C programı parçası verilmektedir. Bu yerlere sadece 1, n, a ya da b ifadeleri yazılabilecektir.
t = 0;
n = 5;
for (a = 1; a <= n; a = a+1)
for (b = @@1@@; b <= @@2@@; b = b+1)
for (c = @@3@@; c <= @@4@@; c = c+1) t = t+1;
## AÇIKLAMA
İşleri kolaylaştırmak adına 2 fonksiyon tanımlayalım:
f(x) = 1 + 2 + ... + x
g(x) = f(1) + f(2) + ... + f(x)
Gördüğümüz üzere:
f(1) = 1,
f(2) = 3,
f(3) = 6,
f(4) = 10,
f(5) = 15
g(1) = 1,
g(2) = 4,
g(3) = 10,
g(4) = 20,
f(5) = 35
Şimdi şıklara bakalım:
A) 1n bn: bn döngüsünde t += n - (b - 1) olur. Her b [1,5] için toplarsak 5*5 - f(4) = 25-10 = 15 olur. Her a [1,5] içinse 5*15 = 75 olur.
B) 1ab b: bb döngüsünde t += 1our. Her 1a döngüsünde t += a olur. Her a [1,5] içinse toplam artış f(5) = 15 olur.
C) an bn: bn döngüsünde t += n - (b - 1) olu. Her b [a,5] için:
(5-a+1)*5 - (a - 1 + a + ... + 4 = f(4) - f(a-2)) = 30-5*a - f(4) + f(a-2)
a [1,5] için 20*5 - 5*f(5) + g(3) = 100 - 75 + 10 = 35
D) 1ab n: bn döngüsünde t += n - (b - 1) o lu. Her b [1, a] için:
a*n - (0 + 1 + ... + a-1 = f(a-1))
a [1, 5] için f(5)*(n=5) - g(4) = 15*5 - 20 = 55
E) 1n b b: a->[1, 5], b ->[1, 5] ve c her zaman 1 değer aldığından t += (5*5 = 25) olur.
Şimdi soruları cevaplayalım:

---

Yukarıda verilen C programı parçası tamamlandığında t'nin değerinin 75 olması için @1@0, @0@2@0, @0@3@0 ve @0@4@0 ile gösterilen yerlere sırası ile hangi ifadeler yazılmalıdır?

Şıklar:
A) 1n b n | B) 1a b b | C) a n b n | D) 1a b n | E) 1n b b

Cevap: A 1n b n

Çözüm:
Açıklamaya göre A şıkkıdır.
Bilgisayar Olimpiyatı 2007, 1. Aşama, Soru 43

Aşağıdaki C programı parçası işletildiğinde kaç kez merhaba yazılır? (Programlardaki i ve j tamsayı değişkenleridir)

i=1;
while (i <= 60)
{ j=1;
while (j <= i)
{ printf("merhaba")
j=j+1; }
i=i+1; }

Şıklar:
A) 1216 | B) 1234 | C) 1240 | D) 1830 | E) 1916

Cevap: D 1830

Çözüm:
Heri [1, 60] değeri için i kez yani toplamda 1 + 2 + ... + 60 = 60*61/2 = 1830 olur.
Bilgisayar Olimpiyatı 2007, 1. Aşama, Soru 44

Aşağıdaki C program parçasında i, n tamsayı değişkenleridir ve floor(x) (bir başka deyimle [x]) fonksiyonu x'den küçük eşit en büyük tamsayıyı vermektedir. Program parçası işletildiğinde kaç kez merhaba yazilır?

while (n > 1)
{ printf("merhaba");
n=floor(n/2); }

Şıklar:
A) bolum = -8 yazar. | B) bolum = -4 yazar. | C) bolum = -2 yazar. | D) bolum = 3 yazar. | E) c-b belki sifirdir! -8 yazar.

Cevap: D bolum = 3 yazar.

Çözüm:
a < b < c ifadesine bakar. Önce (a<b) işlemini yapar(-11<5) ve true(1) döner. Sonra 1<c işlemini yapıyor(1<3) ve yine true(1) dönüp if'e girer. İçerisinde b-(a/c)-b = -a/c = 11/3 = 3 işlemini yapıp çıktıyı yazdırır.
Bilgisayar Olimpiyatı 2007, 1. Aşama, Soru 45

int fun(int a, int b, int c)
{ if (a < b < c)
printf("bolum = %d\n", b-a / c-b );
else if (a < b)
printf("c-b belki sifirdir! %d\n", b-a / c-b ); }
main()
{ fun(-11, 5, 3); }
Yukarıdaki C programı:

Şıklar:
A) Yan yana 40 tane * yazar. | B) Yan yana 39 tane * yazar. | C) Yan yana 9 tane * yazar. | D) Yan yana 10 tane * yazar. | E) Hatasız çalışır, ancak hiç bir şey yazmaz

Cevap: D Yan yana 10 tane * yazar.

Çözüm:
İlk adımda 1 tane * yazar ve i=1, j=0 iken 2.for döngüsüne girer. 9 adım sonra 10 tane * yazdırmış olup i=10, j=9 iken 2.for döngüsünden çıkar ve j++ ifadesiyle j=10 oluğundan da ilk for döngüsünden çıkılır.
Bilgisayar Olimpiyatı 2007, 1. Aşama, Soru 46

main()
{ int i,j;
for (j=0; j < 10; j++)
{ printf("*");
for (i=j+1; i < 10; i++)
{ printf("*");
j++;}}}

Yukarıdaki C programı:

Şıklar:
A) aaaaaaaaa | B) aaaaaaaa | C) aaaaaaa | D) aaaaaa | E) aaaaa

Cevap: B aaaaaaaa

Çözüm:
İ=[0,7] için c[i] == c[i+1] olduğundan ikinci for döngüsüne girilmez. İ=8 olduğundan c[i] = c[i+1] ('a' != null) olduğundan ikinci döngüye girilir ve c[8] = c[9] işlemiyle c[8] = null olur. Sonuçta 8 tane 'a' çıktıya basılır.
Bilgisayar Olimpiyatı 2007, 1. Aşama, Soru 47

main()
{ char c[10]="aaaaaaaaa";
int i,j;
for (i=0; i<9; i++)
if (c[i]!=c[i+1]) for (j=i; j<9; j++) c[j]=c[j+1];
printf("%s",c); }

Yukarıdaki C programı ne yazar?

Şıklar:
A) f(b); while (a) f(f(c); f(b); | B) while (f(b),a) f(c); | C) do f(f(b); if (a) f(c); else break;} while(l); | D) for (f(b); a; f(b),f(c); | E) for (f(b); a; f(b)) f(c);

Cevap: D for (f(b); a; f(b),f(c);

Çözüm:
Bütün şıklar a olduğu sürece b->c->b->c... diye giderken D şıkkında b->b->c->b->c... diye gider.
Bilgisayar Olimpiyatı 2007, 1. Aşama, Soru 49

f. g ve h fonksiyonları fgh.h başlık dosyasında tanımlanmıştır.
Bu C programının
9 7 5
yazması beklenmektedir. Ancak çalıştırıldığında
11 8 5
yazdığı gözlenmektedir. f. g, h fonksiyonlarının tanımlarında global değişken kullanımı olmadığını ve bu birbirlerini de çağırmadıklarını bilmeniz durumunda hangi önerme kesinlikle doğrudur?

Şıklar:
A) g fonksiyonu amaçlandığından farklı çalışmaktadır.
B) f, g ve h fonksiyonlarının hepsi amaçlandığından farklı çalışmaktadır.
C) g ve h fonksiyonları amaçlandığından farklı çalışmaktadır.
D) f ve g fonksiyonları amaçlandığından farklı çalışmaktadır.
E) h fonksiyonu amaçlandığından farklı çalışmaktadır.

Cevap: A g fonksiyonu amaçlandığından farklı çalışmaktadır.

Çözüm:
c doğru, a ve b yanlış değere sahiptir. c, f(O) değerine sahip olduğundan f fonksiyonu doğrudur. b ise, g fonksiyonuna doğru parametre verilmesine rağmen yanlış olduğundan, g fonksiyonu yanlıştır. H fonksiyonuna yanlış parametre verildiğinden doğru veya yanlış olabilir. A şıkkı kesinlikle doğrudur.
Bilgisayar Olimpiyatı 2007, 1. Aşama, Soru 50

int main()
{ int a=10, b=6, c=7;
if (b %= (a %= b) * c >= 3 * c-b) printf("1");
else if (a ? b : c == 0)
else if (c = c || a && b)
else if (!c || printf("4"))
return 0; }

Yukarıdaki C programı ne yazar?

Şıklar:
A) 1 | B) 2 | C) 3 | D) 4 | E) 44

Cevap: C 3

Çözüm:
İf yapılarının içerisindeki ifadeleri sırasıyla yapalım:
- İlk if in içerisinde:
- İlk a %= b (a=4 olur) yapılır.
- \(4 * c >= (3 * c) - b \Rightarrow 4 * 7 >= 3 * 7 - 6 \Rightarrow \text{true}()\) olur.
- b %= 1 işlemiyle b=O olur ve if e girilmez.
- İkinci if in içerisinde önce a var mı diye kontrol edilir. a != O olduğundan (b=O) döner ve if yapısına girilmez.
- Üçüncü if in içerisinde önce c=c yapılır ve 7(true) döner, veya() operatörünün solunda true olduğundan sağ tarafa bakılmadan if in içerisine girilir ve 3 yazdırılır.
Bilgisayar Olimpiyatı 2008, 1. Aşama, Soru 2

Bir aritmetik ifade, ağaç yapısı ile temsil edilebilir. Örneğin, a × b + (c - (d - e)) ifadesi aşağıdaki ikili ağaç ile gösterilebilir:
[GÖRSEL]
Aşağıda verilen ağaç ile temsil edilen aritmetik ifadenin değeri nedir?
[GÖRSEL]

Şıklar:
A) -24 | B) -18 | C) 0 | D) 24 | E) 63

Cevap: B -18

Çözüm:
Önce 2-5 yapılır ve -3 yazılır. Sonra -3*7 yapılır ve -21 yazılır. -3*4=-12, -12+9=-3, -21-(-3)=-18 işlemleri de takip eder ve en son değer -18 olur.
Bilgisayar Olimpiyatı 2008, 1. Aşama, Soru 3

Bir adada iki kabile yaşamaktadır. Mar kabilesindekiler Pazartesi, Salı, Çarşamba ve Perşembe günleri doğru, diğer günler yalan söylerler. Ven kabilesindekiler ise Perşembe, Cuma ve Cumartesi günleri doğru, diğer günler yalan söylerler, Mar kabilesinden biri ile Ven kabilesinden biri karşılaşırlar. Sohbet ederlerken her ikisi de “Yarın benim doğrucu günüm olacak” derler. Bugün aşağıdaki günlerden hangisidir?

Şıklar:
A) Çarşamba | B) Perşembe | C) Cuma | D) Cumartesi | E) Pazar

Cevap: B -18

Çözüm:
Birisi yarın doğrucu günü olduğunu söylüyorsa ya o gün ve ertesi gün yalan söyler ya da o gün ve ertesi gün doğru söyler. Yani herhangi bir kabilenin doğru veya yalan söyleme günlerinin sonunda bu ifadeyi kullanılamaz. Ven kabilesi bunu dediği için Çarşamba veya Cumartesi olamaz. Mar kabilesi bunu söylediği için Pazar veya Çarşamba olamaz. Diğer günler olabilir.
Bilgisayar Olimpiyatı 2008, 1. Aşama, Soru 4

001110110001110001001110 dizisi aşağıda anlatıldığı şekilde türetilmiştir:
Sol uçta verilmiş olan 3 bitlik bloktan (OO1) başlanmakta, birinci adım sonunda 6 bitlik, ikinci adım sonunda 12 bitlik, nihayet üçüncü adım sonunda 24 bitlik dizi elde edilmektedir. Her adımda aynı kural uygulanmaktadır.
Aşağıdaki dizilerden hangisi, yine sol uçta verilmiş olan 3 bitlik bloktan başlayarak, yine üç adımda fakat farklı bir kural uygulanarak türetilmiştir?

Şıklar:
A) 111000000111000111111000 | B) 10101001010101010101010 | C) 011001011001011001011001 | D) 110001001110001011001001 | E) 0011011000110001001110

Cevap: C 011001011001011001011001

Çözüm:
Üretilme aşamalarına bakalım:
- OO1 için, diziye eklenen: 110.
Yeni dizi:OO1 110
- OO1110 için, diziye eklenen: 110001.
Yeni dizi:OO1110 110001
- Aynı şekilde sonraki adımda da diziye eklenen bitler her bitin ters çevrilmiş haline denk gelir.
- Bu kurala göre(Her adımda dizinin bitlerinin ters çevrilmiş halini sona ekle) A, B, D ve E şıkları üretilmiştir. C şıkkında ise O110O1 dizisi 4 kere tekrarlanmıştır.
Bilgisayar Olimpiyatı 2008, 1. Aşama, Soru 5

Polis bir suçun zanılarını sorguya çekmektedir. Suçlunun/suçluların yalan söylediği, masum/ masumların ise doğru söylediği bilinmektedir. Zanıların ifadeleri şu şekildedir:
Dilek : Hilal suçludur.
Hilal : Dilek ile Meral'in ikisi de masumdur.
Meral : Dilek ile Hilal'in ya ikisi birden suçludur ya da ikisi birden masumdur.
Suçluyu / suçluları bulunuz.

Şıklar:
A) Yalnızca Dilek | B) Yalnızca Hilal | C) Yalnızca Meral | D) Dilek ve Hilal | E) Hilal ve Meral

Cevap: E Hilal ve Meral

Çözüm:
Bu tarz sorularda farklı birinin yalan söylediğini iddia edenden başlarız. Dilek Hilal suçludur dediği için Dilek ya da Hilal'den biri suçludur. Yani Meral'in dediği ifade yanlış olur ve Meral suçlu olur. Hilal, Meral'e masumdur dediği için suçludur ve Meral suçlu olduğundan Dilek masumdur.
Bilgisayar Olimpiyatı 2008, 1. Aşama, Soru 6

Alper, Burçin, Can, Derin ve Erkut 400m engelli yarışına katılacaklardır. Yarış öncesi yürüttükleri tahminler şöyledir:
Alper: Burçin Can'dan iki sıra üstte olacak.
Burçin: Ben "üçüncü olacağım.
Can: Derin birinci olacak.
Derin: Burçin ikinci olacak.
Erkut: Can Alper'den üç sıra aşağıda olacak.
(Birinci sıra en üst sıradır.)
Yarıştan sonra bu tahminlerden yalnızca birinin doğru çıktığı görüldü. Doğru tahmini yapan birinci olan yarışmacıydı. O kimdi?

Şıklar:
A) Alper | B) Burçin | C) Can | D) Derin | E) Erkut

Cevap: C Can

Çözüm:
Can derin birinci olacak dediği için 1. olamaz ve onu haklı çıkarmamak için Derin de 1. olamaz. Burçin kendisine 3. olacağım dediği için 1. olamaz (olsa tahmini yanlış çıkardı). Derin Burçin 2. olacak dediği için ve kendisi 1. olmadığı için Burçin 2. Olamaz. Kendi ifadesinden dolayı 1. veya 3. olamayan Burçin 4. ve 5. Olabilir ki bu da Alper'in ifadesini yanlış yapar. Geriye 1. olabilecek sadece Erkut kalır.
7. n x n boyutlarında bir satranç tahtası veriliyor. Bu tahta üzerinde kaç tane k x k boyutlarında kare vardır? (Simetrik kareler ayrı ayrı sayılacaktır.)
A) \((n-k)2 + 2n - 1\)
B) \((n-k)2 + 2k - 1\)
C) \((n-k+1)2\)
D) \((n-k)(n-k+1)/2\)
E) \((n-k-1)(n-k)/2 + 1\)
k* k boyutundaki karenin sol üst noktasını seçelim. Sol-üst köşesi, köşeleri (1,1) ile (n-k+1, n-k+1) olan bir karenin herhangi bir yerine gelebilir. Yani toplamda \((n-k+1)^2\) tane k* k boyutlarında kare vardır.
Bilgisayar Olimpiyatı 2008, 1. Aşama, Soru 7

n × n boyutlarında bir satranç tahtası veriliyor. Bu tahta üzerinde kaç tane k × k boyutlarında kare vardır? 
(Simetrik kareler ayrı ayrı sayılacaktır.)

Şıklar:
A) (n − k)2 + 2n − 1
B) (n − k)2 + 2k − 1
C) (n − k + 1)2
D) (n − k)(n − k + 1)/2
E) (n − k − 1)(n − k)/2 + 1

Cevap: C (n − k + 1)2

Çözüm:
k k boyutundaki karenin sol üst noktasını seçelim. Sol-üst köşesi, köşeleri (1,1) ile (n-k+1, n-k+1) olan bir karenin herhangi bir yerine gelebilir. Yani toplamda (n – k + 1)^2 tane k*k boyutlarında kare vardır.
Bilgisayar Olimpiyatı 2008, 1. Aşama, Soru 8

### [8-10] soruları için açıklama
Bir fonksiyon belirtmek için
[değişken! değişkeni içeren tanımlayıcı ifade]
fonksiyonu uygulamak için ise
fonksiyon(argüman)
notasyonlarını kullanıyoruz. Aşağıdaki örnekleri inceleyiniz.
[x → x × x] kare alma fonksiyonunu belirtmektedir. Dolayısıyla.
[x → x×x](3) ifadesi hesaplandığında 3×3 = 9 değerini verecektir. Fonksiyonlar fonksiyonlar
üzerinde uygulanabilmekte ve sonuç olarak fonksiyon dönebilmektedir.
[f → [x → f(f(x))]] bir f fonksiyonu verildiğinde bunu iki kez uygulayan yeni bir fonksiyon döndüren bir fonksiyonu belirtmektedir. Dolayısıyla, [f → [x → f(f(x))]]([x → x × x]) ifadesinin değeri iki kez kare alan bir fonksiyondur. Böylece,
([f → [x → f(f(x))]]([x → x × x]))(3) ifadesi hesaplandığında sonuç 81 olacaktır.
Başka bir örnek:
\[([x \rightarrow [y \rightarrow 1 \times x + y])(3)(4 + 1) = [y \rightarrow 2 \times 3 + y](4 + 1)\]
\[= 2 \times 3 + (4 + 1) = 11\]

8. [y → [z → z × (z + 1)/2](y − 1)](8) hesaplandığında hangi değeri verir?

Şıklar:
A) 21                           B) 28                           C) 36                           D) 45                           E) 72

Cevap: D 28

Çözüm:
İfadeyi sadeleştirelim:
• [y→[z→z
• [z→z
(z+1)/2](y-1)](8) ifadesinde y gördüğümüz yerlere 8 yazalım.
(z+1)/2](8-1) olur. Şimdi z gördüğümüz yerlere 7 yazalım.
• 7*(7+1)/2 = 7 4 = 28 olur.
Bilgisayar Olimpiyatı 2008, 1. Aşama, Soru 9

### [8-10] soruları için açıklama
Bir fonksiyon belirtmek için
[değişken! değişkeni içeren tanımlayıcı ifade]
fonksiyonu uygulamak için ise
fonksiyon(argüman)
notasyonlarını kullanıyoruz. Aşağıdaki örnekleri inceleyiniz.
[x → x × x] kare alma fonksiyonunu belirtmektedir. Dolayısıyla.
[x → x×x](3) ifadesi hesaplandığında 3×3 = 9 değerini verecektir. Fonksiyonlar fonksiyonlar
üzerinde uygulanabilmekte ve sonuç olarak fonksiyon dönebilmektedir.
[f → [x → f(f(x))]] bir f fonksiyonu verildiğinde bunu iki kez uygulayan yeni bir fonksiyon döndüren bir fonksiyonu belirtmektedir. Dolayısıyla, [f → [x → f(f(x))]]([x → x × x]) ifadesinin değeri iki kez kare alan bir fonksiyondur. Böylece,
([f → [x → f(f(x))]]([x → x × x]))(3) ifadesi hesaplandığında sonuç 81 olacaktır.
Başka bir örnek:
\[([x \rightarrow [y \rightarrow 1 \times x + y])(3)(4 + 1) = [y \rightarrow 2 \times 3 + y](4 + 1)\]
\[= 2 \times 3 + (4 + 1) = 11\]

([z → [g → g(z + 1)]](4))([x → 2 × x]) hesaplandığında hangi değeri verir?

Şıklar:
A) 6 | B) 7 | C) 9 | D) 10 | E) 12

Cevap: D 10

Çözüm:
İfadeyi sadeleştirelim:
• ([z→[g→g(z+1)]](4))([x→2
• [g→g(4+1)]([x→2
• [x→2
x]) ifadesinde z gördüğümüz yerlere 4 yazalım. (En kısa argüman)
x]) olur. Şimdi g gördüğümüz yerlere [x→2 x] yazalım. (Tek seçenek)
x](4+1). Son olarak x gördüğümüz yerlere (4+1=5) yazarsak cevap 25=10 olur.
Bilgisayar Olimpiyatı 2008, 1. Aşama, Soru 10

([f→[g→[x→(g(f(x)))]]](M))(N) ifadesinin fonksiyon olarak [y→y] ile denk olması
için M ve N yerinehangi ifadeler gelebilir?

Şıklar:
A)M:[z→2×z], N: [z→z×2]
B)M:[z→z×(z+1)/2], N:[z→z×(z−1)/2]
C)M:[z→z×(z−1)/2], N:[z→z×(z+1)/2]
D)M:[z→z×(−z)], N:[z→z×z]
E)M:[z→z+1], N: [z→z−1]

Cevap: E M:[z→z+1], N: [z→z−1]

Çözüm:
İfadeyi daha açık olması açısından sadeleştirelim:
• ( [f→[g→[ x→g( f(x) ) ] ] ](M) ) (N) ifadesinde öncelikle f gördüğümüz yerlere M yazalım.
• İfade [g→[ x→g( M(x) ) ] ] (N) olur. Şimdi g gördüğümüz yerlere N yazalım.
• İfade [ x→N( M(x) ) ] olur. Aynı şekilde [ y→N( M(y) ) ] diyebiliriz.
O zaman N( M(y) ) = y olmalı ki sadece E şıkkında ( (y+1) - 1 ) = y şartı sağlanır.
Bilgisayar Olimpiyatı 2008, 1. Aşama, Soru 11

### [8-10] soruları için açıklama
Bir fonksiyon belirtmek için
[değişken! değişkeni içeren tanımlayıcı ifade]
fonksiyonu uygulamak için ise
fonksiyon(argüman)
notasyonlarını kullanıyoruz. Aşağıdaki örnekleri inceleyiniz.
[x → x × x] kare alma fonksiyonunu belirtmektedir. Dolayısıyla.
[x → x×x](3) ifadesi hesaplandığında 3×3 = 9 değerini verecektir. Fonksiyonlar fonksiyonlar
üzerinde uygulanabilmekte ve sonuç olarak fonksiyon dönebilmektedir.
[f → [x → f(f(x))]] bir f fonksiyonu verildiğinde bunu iki kez uygulayan yeni bir fonksiyon döndüren bir fonksiyonu belirtmektedir. Dolayısıyla, [f → [x → f(f(x))]]([x → x × x]) ifadesinin değeri iki kez kare alan bir fonksiyondur. Böylece,
([f → [x → f(f(x))]]([x → x × x]))(3) ifadesi hesaplandığında sonuç 81 olacaktır.
Başka bir örnek:
\[([x \rightarrow [y \rightarrow 1 \times x + y])(3)(4 + 1) = [y \rightarrow 2 \times 3 + y](4 + 1)\]
\[= 2 \times 3 + (4 + 1) = 11\]

([z → [g → g(z + 1)]](4))([x → 2 × x]) hesaplandığında hangi değeri verir?

Şıklar:
A) 8 | B) 62 | C) 80 | D) 107 | E) 260

Cevap: D 10

Çözüm:
İfadeyi sadeleştirelim:
• ([z→[g→g(z+1)]](4))([x→2
• [g→g(4+1)]([x→2
• [x→2
x]) ifadesinde z gördüğümüz yerlere 4 yazalım. (En kısa argüman)
x]) olur. Şimdi g gördüğümüz yerlere [x→2 x] yazalım. (Tek seçenek)
x](4+1). Son olarak x gördüğümüz yerlere (4+1=5) yazarsak cevap 25=10 olur.
Bilgisayar Olimpiyatı 2008, 1. Aşama, Soru 18

3722 ve 5854 sayılarının ortak bölenlerinin en büyüğü aşağıdakilerden hangisidir?

Şıklar:
A) 2                           B) 3                           C) 4                           D) 6                           E) 8

Cevap: A 2

Çözüm:
gcd( a, b ) = gcd( a mod b, b  ) özelliğini kullanalım:
gcd( 3722, 5854 ) = gcd( 3722, 2134 ) = gcd( 1588, 2134 ) =
gcd( 1588, 546 )  = gcd( 50, 546 )    = gcd( 50, 46 )  =
gcd( 4, 46 )  =     gcd( 4, 2 )       = 2
Bilgisayar Olimpiyatı 2008, 1. Aşama, Soru 19

2x ≡ 5 (mod 9) denkleminin çözümü aşağıdakilerden hangisidir (k bir doğal sayıdır)?

Şıklar:
A) 5 + 11k | B) 4 + 5k | C) 7 + 9k | D) 2 + 5k | E) 9 + 5k

Cevap: C 7 + 9k

Çözüm:
2x = 9a+5 şeklinde bir ifade kullanabiliriz. İfadeyi değiştirirsek:
2x = 9a+5 = 9b+14 = 18k+14 → 2x = 18k+14 → x = 7 + 9k