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

## [1-2 soruları için açıklama]
Ayşe çalışacağı 6 dersi sıralamaya çalışmaktadır. Dersler, Fizik, Matematik, Kimya, Biyoloji, Tarih ve İngilizcedir. Derslerin sırası aşağıdaki koşulları sağlamalıdır. 

 Kimya, Fizikten sonra, İngilizceden önce gelmelidir.
 Kimya ve İngilizce arasında tam olarak bir ders olmalıdır.
 Matematiğe en başta veya en sonda çalışmalıdır.

---

Aşağıdakilerden hangisi koşullara uygun bir sıralamadır?

Şıklar:
A) Fizik, İngilizce, Tarih, Kimya, Biyoloji, Matematik | B) Matematik, Fizik, Biyoloji, Kimya, Tarih, İngilizce | C) Matematik, Kimya, Fizik, İngilizce, Biyoloji, Tarih | D) Fizik, Matematik, Kimya, Biyoloji, İngilizce, Tarih | E) Fizik, Kimya, İngilizce, Tarih, Biyoloji, Matematik

Cevap: B Matematik, Fizik, Biyoloji, Kimya, Tarih, İngilizce

Çözüm:
İlk koşula uymadığı için A ve C şıklarını eleyebiliriz. İkinci koşul da E şıkkını elemektedir. Son koşula uyan tek şık da B’dir.
Ortaokul Bilgisayar Olimpiyatı 2019, 1. Aşama, Soru 2

## [1-2 soruları için açıklama]
Ayşe çalışacağı 6 dersi sıralamaya çalışmaktadır. Dersler, Fizik, Matematik, Kimya, Biyoloji, Tarih ve İngilizcedir. Derslerin sırası aşağıdaki koşulları sağlamalıdır. 

 Kimya, Fizikten sonra, İngilizceden önce gelmelidir.
 Kimya ve İngilizce arasında tam olarak bir ders olmalıdır.
 Matematiğe en başta veya en sonda çalışmalıdır.

---

En başta Matematik çalışacağını biliyorsak, hangisi ikinci sırada çalışabileceği derslerin tam listesidir?

Şıklar:
A) Kimya, Biyoloji, Tarih, Fizik | B) Biyoloji, Tarih | C) Biyoloji, Fizik | D) Biyoloji, Fizik, Tarih | E) Kimya, Biyoloji, Tarih

Cevap: D Biyoloji, Fizik, Tarih

Çözüm:
İlk ders matematik olduğuna ve ikinci ders İngilizce olamaz çünkü öncesinde kimya ve fizik olması gerekir. Aynı şekilde ikinci ders kimya da olamaz çünkü kimyadan önce fizik dersinin olması gerekiyor. Diğer dersler ikinci sıraya yazılabilir.
Ortaokul Bilgisayar Olimpiyatı 2019, 1. Aşama, Soru 3

## [3-5 soruları için açıklama]
Defne’nin yapacağı resimde kullanmak için dört renk seçmesi gerekiyor. Kullanabileceği renkler, beyaz, kırmızı, mavi, yeşil, sarı, turuncu, mor ve pembedir.
• Beyaz veya kırmızıdan birini seçerse diğerini de seçmek zorundadır.
• Mavi ve yeşilin ikisini birden seçemez.
• Mavi ve beyazın en az birini seçmek zorundadır.
• Moru, pembe ile beraber seçemez.
• Moru, kırmızı olmadan seçemez.

---

Aşağıdakilerden hangisi seçilen renkler olabilir?

Şıklar:
A) Beyaz, mavi, yeşil, pembe | B) Beyaz, sarı, turuncu, mor | C) Kırmızı, mavi, pembe, turuncu | D) Mavi, yeşil, turuncu, kırmızı | E) Mavi, sarı, pembe, turuncu

Cevap: E Mavi, sarı, pembe, turuncu

Çözüm:
Birinci koşul, C şıkkını, 2. koşul A ve D şıklarını, 5. koşul da B şıkkını eleyecektir. E şıkkı bütün koşullara uymaktadır.
Ortaokul Bilgisayar Olimpiyatı 2019, 1. Aşama, Soru 4

## [3-5 soruları için açıklama]
Defne’nin yapacağı resimde kullanmak için dört renk seçmesi gerekiyor. Kullanabileceği renkler, beyaz, kırmızı, mavi, yeşil, sarı, turuncu, mor ve pembedir.
• Beyaz veya kırmızıdan birini seçerse diğerini de seçmek zorundadır.
• Mavi ve yeşilin ikisini birden seçemez.
• Mavi ve beyazın en az birini seçmek zorundadır.
• Moru, pembe ile beraber seçemez.
• Moru, kırmızı olmadan seçemez.

---

Yeşil seçilmişse aşağıdaki şıklardan hangisindeki renkler de seçilmek zorundadır?

Şıklar:
A) Beyaz, kırmızı | B) Beyaz, mavi | C) Mor, mavi | D) Mavi, sarı | E) Sarı, turuncu

Cevap: A Beyaz, kırmızı

Çözüm:
Yeşil seçilmişse mavi 2. koşuldan dolayı seçilemez. Bu durumda 3. koşul yüzünden beyaz seçilmelidir. Beyaz seçilmişse 1. koşul gereği kırmızı da seçilmek zorundadır.
Ortaokul Bilgisayar Olimpiyatı 2019, 1. Aşama, Soru 5

## [3-5 soruları için açıklama]
Defne’nin yapacağı resimde kullanmak için dört renk seçmesi gerekiyor. Kullanabileceği renkler, beyaz, kırmızı, mavi, yeşil, sarı, turuncu, mor ve pembedir.
• Beyaz veya kırmızıdan birini seçerse diğerini de seçmek zorundadır.
• Mavi ve yeşilin ikisini birden seçemez.
• Mavi ve beyazın en az birini seçmek zorundadır.
• Moru, pembe ile beraber seçemez.
• Moru, kırmızı olmadan seçemez.

---

Sarı seçilmişse aşağıdaki şıklardan hangisindeki renkler diğer seçilen renkler olabilir?

Şıklar:
A) Beyaz, mor, mavi | B) Mor, beyaz, turuncu | C) Turuncu, kırmızı, mavi | D) Pembe, mavi, turuncu | E) Beyaz, turuncu, pembe

Cevap: D Pembe, mavi, turuncu

Çözüm:
Birinci koşul C ve E şıklarını eler. 5. koşul da A ve B şıklarını eleyecektir. D şıkkı bütün koşulları sağlamaktadır.
Ortaokul Bilgisayar Olimpiyatı 2019, 1. Aşama, Soru 6

CENEVRE kelimesinin harfleri bir çember etrafında kaç farklı şekilde dizilebilir?

Şıklar:
A) 5040 | B) 840 | C) 120 | D) 400 | E) 720

Cevap: C 120

Çözüm:
Çember etrafında olduğu için C harfini sabit tutabiliriz. O zaman kalan 6 harfi, 6’nın 3’lü kombinasyonu çarpı 3 faktöriyel yani C(6, 3) * 3! = 120 şeklinde sıralayabiliriz.
Ortaokul Bilgisayar Olimpiyatı 2019, 1. Aşama, Soru 7

{1, 2, 3, ..., 10} kümesindeki sayılar, yan yana iki tek veya iki çift sayı gelmemek üzere kaç farklı şekilde sıralanabilir?

Şıklar:
A) 28800 | B) 14400 | C) 3628800 | D) 720 | E) 5040

Cevap: A 28800

Çözüm:
Tek, çift, tek, çift, ... şeklinde ya da çift, tek, çift, tek, ... şeklinde toplam 2*(5!)[2] = 2*14400=28800 olasılık vardır.
Ortaokul Bilgisayar Olimpiyatı 2019, 1. Aşama, Soru 8

5¹²⁸ sayısının 7 ile bölümünden kalan kaçtır?

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

Cevap: D 4

Çözüm:
5⁷=5 (mod 7) olduğu için, ((5⁷)¹⁸)*5²=25=4 (mod 7).
Ortaokul Bilgisayar Olimpiyatı 2019, 1. Aşama, Soru 9

[9-10 soruları için açıklama]
\(f(x)\) aşağıdaki şekilde tamsayılar üzerinde tanımlı bir fonksiyon olsun:
\[f(x) = \begin{cases} 0 & \text{eğer } x < 1 \text{ ise,} \\ 1 + f\left(\frac{x}{2}\right) & \text{eğer } x \ge 1 \text{ ve } x \text{ çift ise,} \\ 2 + f\left(\frac{x-1}{2}\right) & \text{eğer } x \ge 1 \text { ve } x \text{ tek ise.} \end{cases}\]
Aşağıdaki iki soruyu bu \(f\) fonksiyonuna göre cevaplayın.

---

\(x'\)in ikilik tabandaki değeri \((1010001001)_2\) ise \(f(x)\) kaçtır?

Şıklar:
A) 15 | B) 11 | C) 12 | D) 13 | E) 14

Cevap: E 14

Çözüm:
\(f(x)\), \(x'\)in ikilik tabandaki hane sayısı + içindeki birlerin sayısıdır. Dolayısıyla \(f(x)=10+4=14\) olur.
Ortaokul Bilgisayar Olimpiyatı 2019, 1. Aşama, Soru 10

[9-10 soruları için açıklama]
\(f(x)\) aşağıdaki şekilde tamsayılar üzerinde tanımlı bir fonksiyon olsun:
\[f(x) = \begin{cases} 0 & \text{eğer } x < 1 \text{ ise,} \\ 1 + f\left(\frac{x}{2}\right) & \text{eğer } x \ge 1 \text{ ve } x \text{ çift ise,} \\ 2 + f\left(\frac{x-1}{2}\right) & \text{eğer } x \ge 1 \text { ve } x \text{ tek ise.} \end{cases}\]
Aşağıdaki iki soruyu bu \(f\) fonksiyonuna göre cevaplayın.

---

\(f(2^{100} + 2^{10} - 1)\)'in değeri nedir?

Şıklar:
A) 99 | B) 201 | C) 202 | D) 100 | E) 111

Cevap: E 111

Çözüm:
\(2^{100} + 2^{10} - 1\) ikilik tabanda 100 haneli, içinde 11 adet bir olan bir sayıdır. Dolayısıyla cevap \(100 + 11 = 111\)'dir.
Ortaokul Bilgisayar Olimpiyatı 2019, 1. Aşama, Soru 11

### [11-13 soruları için açıklama]
Bir yazılım firmasında çalışan 200 mühendisten 130'u C dilini, 120'si Java dilini ve 80'i de her iki dili bilmektedir.

---

Bu firmada çalışanlardan mühendislerden kaç tanesi ne C ne de Java dilini bilmemektedir?

Şıklar:
A) 10 | B) 20 | C) 30 | D) 70 | E) 80

Cevap: C 30

Çözüm:
Firma çalışanlarını bir küme olarak gösterirsek:
[GÖRSEL]
Hiçbir dil bilmeyenlerin sayısının 30 olduğu yukarıdaki küme gösteriminde ortaya çıkmaktadır.
Ortaokul Bilgisayar Olimpiyatı 2019, 1. Aşama, Soru 12

### [11-13 soruları için açıklama]
Bir yazılım firmasında çalışan 200 mühendisten 130'u C dilini, 120'si Java dilini ve 80'i de her iki dili bilmektedir.

---

Bu firmada çalışanlardan mühendislerden kaç tanesi C bilmekte fakat Java bilmemektedir?

Şıklar:
A) 20 | B) 30 | C) 40 | D) 50 | E) 80

Cevap: D 50

Çözüm:
Birinci sorunun çözümündeki küme gösteriminde cevabın 50 olduğu gözükmektedir.
Ortaokul Bilgisayar Olimpiyatı 2019, 1. Aşama, Soru 13

### [11-13 soruları için açıklama]
Bir yazılım firmasında çalışan 200 mühendisten 130'u C dilini, 120'si Java dilini ve 80'i de her iki dili bilmektedir.

---

Eğer firmada çalışan bir mühendis C dilini biliyorsa aynı zamanda Java da biliyor olmasının olasılığı nedir?

Şıklar:
A) 3/5 | B) 2/5 | C) 4/5 | D) 5/13 | E) 8/13

Cevap: E 8/13

Çözüm:
C bilen 130 kişi içerisinde Java bilenlerin oranı 80 olduğundan doğru cevap 80/130 yani 8/13’tür.
Ortaokul Bilgisayar Olimpiyatı 2019, 1. Aşama, Soru 14

Bir torbadaki 6 toptan 4’ü mavi 2’si kırmızıdır. Bu torbadan art arda (ilk seçileni geri torbaya koymadan) 2 top aldığımızda ikisinin de kırmızı olma ihtimali nedir?

Şıklar:
A) 1/3 | B) 1/6 | C) 1/9 | D) 1/12 | E) 1/15

Cevap: E 1/15

Çözüm:
Birinci topun kırmızı olma ihtimali 2/6 yani 1/3’tür. Torbada daha sonra 4 mavi ve 1 kırmızı top kalmış olur. İkinci topun da kırmızı olma ihtimali 1/5’tir. Bütün olayın ihtimali 1/3*1/5 = 1/15 olur.
Ortaokul Bilgisayar Olimpiyatı 2019, 1. Aşama, Soru 16

## [16-20 soruları için açıklama]
Bir bilgisayar tamircisi o gün içerisinde hangi bilgisayarları tamir edeceğine bir gün öncesinden kendisine verilen taleplerdeki bilgisayar geliş saatleri ve tamirin ne kadar süreceği bilgisini kullanarak karar vermektedir. Aynı anda sadece bir bilgisayar tamir edebildiğinden ve bir bilgisayar gelir gelmez tamire başlamak istediğinden, kendisine gelen talepler içinden bazılarını reddetmek zorunda kalmaktadır. Çünkü bilgisayar geliş saati ve tamir bitiş saatleri örtüşen iki bilgisayar varsa bunlardan sadece bir tanesini seçebilir.
Örnek vermek gerekirse, gelen talepler:
A: sabah 9’da gelecek ve tamir 2 saat sürecek
B: sabah 10’da gelecek ve tamir yarım saat sürecek
C: sabah 11’de gelecek ve tamir 3 saat sürecek
ise tamirci A ve B bilgisayarlarından birisini reddetmek zorundadır. Yani o günün tamir planında ya A ve C olacaktır ya da B ve C olacaktır.
Tamircinin hedefi o gün içerisinde en fazla sayıda bilgisayar tamir etmek olduğundan tamirci için aşağıdaki gibi bir algoritma tasarladık:
1. Bilgisayarları tamir bitiş zamanlarına göre küçükten büyüğe sırala. Bu sıralamaya göre sıralanmış bilgisayarlara A1, A2, .. An  diyelim.
2. A1’i o günkü tamir planına ekle.
3. 2. bilgisayardan n. bilgisayara kadar sıra ile aşağıdaki işlemi gerçekleştir:
Eğer sıradaki bilgisayarın geliş saati plana en son eklenmiş bilgisayarın bitiş saatinden sonra ise sıradaki bilgisayarı tamir planına ekle, değil ise bilgisayarın sahibine bilgisayarının tamirinin o gün yapılamayacağını bildir.
Bu verilen algoritma, o gün için karşılanabilecek en fazla talep sayısında talebi plana koyar. Bu algoritmayı yukarıdaki örneğe uyguladığımızda bilgisayarlar tamir bitiş saatlerine göre B, A, C olarak sıralanacaklar ve algoritmamız B ve C bilgisayarlarını o gün tamir edilecek bilgisayarlar olarak 
belirleyecektir. 

---

Aşağıda verilmiş tamir taleplerine göre algoritmamız hangi bilgisayarları o günün tamir planına ekler?
<table><tr><td></td><td>A1</td><td>A2</td><td>A3</td><td>A4</td><td>A5</td></tr><tr><td>Geliş saati</td><td>9:00</td><td>10:00</td><td>10:30</td><td>14:00</td><td>15:00</td></tr><tr><td>Tamir süresi</td><td>5 saat</td><td>3.5 saat</td><td>2 saat</td><td>3 saat</td><td>1.5 saat</td></tr></table>

Şıklar:
A) A1 ve A4 | B) A1 ve A5 | C) A3 ve A5 | D) A3 ve A4 | E) A2 ve A4

Cevap: C A3 ve A5

Çözüm:
Tamir bitiş saatlerine göre talepleri sıraladığımızda A3, A2, A1, A5 ve A4 sıralamasını elde ederiz. Plana ilk olarak A3'ü ekleriz. Daha sonra başlangıç saati 12:30'dan sonra olan sıradaki ilk talep A5 olduğu için plana A5'i ekleriz. Başka bir talep eklenemez. Planda sadece A3 ve A5 olur.
Ortaokul Bilgisayar Olimpiyatı 2019, 1. Aşama, Soru 17

## [16-20 soruları için açıklama]
Bir bilgisayar tamircisi o gün içerisinde hangi bilgisayarları tamir edeceğine bir gün öncesinden kendisine verilen taleplerdeki bilgisayar geliş saatleri ve tamirin ne kadar süreceği bilgisini kullanarak karar vermektedir. Aynı anda sadece bir bilgisayar tamir edebildiğinden ve bir bilgisayar gelir gelmez tamire başlamak istediğinden, kendisine gelen talepler içinden bazılarını reddetmek zorunda kalmaktadır. Çünkü bilgisayar geliş saati ve tamir bitiş saatleri örtüşen iki bilgisayar varsa bunlardan sadece bir tanesini seçebilir.
Örnek vermek gerekirse, gelen talepler:
A: sabah 9’da gelecek ve tamir 2 saat sürecek
B: sabah 10’da gelecek ve tamir yarım saat sürecek
C: sabah 11’de gelecek ve tamir 3 saat sürecek
ise tamirci A ve B bilgisayarlarından birisini reddetmek zorundadır. Yani o günün tamir planında ya A ve C olacaktır ya da B ve C olacaktır.
Tamircinin hedefi o gün içerisinde en fazla sayıda bilgisayar tamir etmek olduğundan tamirci için aşağıdaki gibi bir algoritma tasarladık:
1. Bilgisayarları tamir bitiş zamanlarına göre küçükten büyüğe sırala. Bu sıralamaya göre sıralanmış bilgisayarlara A1, A2, .. An  diyelim.
2. A1’i o günkü tamir planına ekle.
3. 2. bilgisayardan n. bilgisayara kadar sıra ile aşağıdaki işlemi gerçekleştir:
Eğer sıradaki bilgisayarın geliş saati plana en son eklenmiş bilgisayarın bitiş saatinden sonra ise sıradaki bilgisayarı tamir planına ekle, değil ise bilgisayarın sahibine bilgisayarının tamirinin o gün yapılamayacağını bildir.
Bu verilen algoritma, o gün için karşılanabilecek en fazla talep sayısında talebi plana koyar. Bu algoritmayı yukarıdaki örneğe uyguladığımızda bilgisayarlar tamir bitiş saatlerine göre B, A, C olarak sıralanacaklar ve algoritmamız B ve C bilgisayarlarını o gün tamir edilecek bilgisayarlar olarak 
belirleyecektir. 

---

Aşağıda verilmiş tamir taleplerine göre aşağıdaki değişikliklerden hangisi yapılırsa o gün 3 tane bilgisayar tamir edilebilir?
<table><tr><td><td>A1</td><td>A2</td><td>A3</td><td>A4</td><td>A5<br/>15:00</td></td></tr><tr><td>Geliş saati</td><td>9:00</td><td>10:00<br/>10:30</td><td>14:00</td><td>15:00</td><td></td></tr><tr><td>Tamir süresi</td><td>5 saat</td><td>3.5 saat<br/>2 saat</td><td>3 saat</td><td>1.5 saat</td><td></td></tr></table>

Şıklar:
A) A2'nin geliş saati 2 saat erkene alınırsa | B) A1'in tamir süresi 3 saate indirilirse | C) A3'ün tamir süresi 1 saate indirilirse | D) A4'ün tamir süresi 1.5 saate indirilirse | E) A5 sabah 9'da tamire getirilirse

Cevap: E A5 sabah 9'da tamire getirilirse

Çözüm:
A, B, C, D şıklarındaki değişiklikler sırası ile (A2,A5), (A1,A5), (A3,A5), ve (A3,A4) taleplerinin o gün gerçekleştirilmesini sağlarlar. E şıkkındaki değişiklik ile (A5,A3,A4) talepleri karşılanabilir.
Ortaokul Bilgisayar Olimpiyatı 2019, 1. Aşama, Soru 18

## [16-20 soruları için açıklama]
Bir bilgisayar tamircisi o gün içerisinde hangi bilgisayarları tamir edeceğine bir gün öncesinden kendisine verilen taleplerdeki bilgisayar geliş saatleri ve tamirin ne kadar süreceği bilgisini kullanarak karar vermektedir. Aynı anda sadece bir bilgisayar tamir edebildiğinden ve bir bilgisayar gelir gelmez tamire başlamak istediğinden, kendisine gelen talepler içinden bazılarını reddetmek zorunda kalmaktadır. Çünkü bilgisayar geliş saati ve tamir bitiş saatleri örtüşen iki bilgisayar varsa bunlardan sadece bir tanesini seçebilir.
Örnek vermek gerekirse, gelen talepler:
A: sabah 9’da gelecek ve tamir 2 saat sürecek
B: sabah 10’da gelecek ve tamir yarım saat sürecek
C: sabah 11’de gelecek ve tamir 3 saat sürecek
ise tamirci A ve B bilgisayarlarından birisini reddetmek zorundadır. Yani o günün tamir planında ya A ve C olacaktır ya da B ve C olacaktır.
Tamircinin hedefi o gün içerisinde en fazla sayıda bilgisayar tamir etmek olduğundan tamirci için aşağıdaki gibi bir algoritma tasarladık:
1. Bilgisayarları tamir bitiş zamanlarına göre küçükten büyüğe sırala. Bu sıralamaya göre sıralanmış bilgisayarlara A1, A2, .. An  diyelim.
2. A1’i o günkü tamir planına ekle.
3. 2. bilgisayardan n. bilgisayara kadar sıra ile aşağıdaki işlemi gerçekleştir:
Eğer sıradaki bilgisayarın geliş saati plana en son eklenmiş bilgisayarın bitiş saatinden sonra ise sıradaki bilgisayarı tamir planına ekle, değil ise bilgisayarın sahibine bilgisayarının tamirinin o gün yapılamayacağını bildir.
Bu verilen algoritma, o gün için karşılanabilecek en fazla talep sayısında talebi plana koyar. Bu algoritmayı yukarıdaki örneğe uyguladığımızda bilgisayarlar tamir bitiş saatlerine göre B, A, C olarak sıralanacaklar ve algoritmamız B ve C bilgisayarlarını o gün tamir edilecek bilgisayarlar olarak 
belirleyecektir. 

---

Aşağıda verilmiş tamir taleplerine göre en fazla kaç bilgisayar o gün tamir edilebilir?
<table><tr><td></td><td>A1</td><td>A2</td><td>A3</td><td>A4</td><td>A5</td><td>A6</td><td>A7</td><td>A8</td><td>A9</td><td>A10</td></tr><tr><td>Geliş saati</td><td>9:00</td><td>11:00</td><td>8:00</td><td>13:00</td><td>11:00</td><td>14:00</td><td>16:00</td><td>16:00</td><td>10:00</td><td>20:00</td></tr><tr><td>Tamir süresi (saat)</td><td>3</td><td>2</td><td>6</td><td>2</td><td>5</td><td>4</td><td>3</td><td>4</td><td>11</td><td>2</td></tr></table>

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

Cevap: C 4

Çözüm:
Tabloya baktığımızda taleplerin zaten bitiş saatlerine göre soldan sağa sıralı olduğunu görürüz. Algoritmayı uyguladığımızda (A1, A4, A7, A10) taleplerini gerçekleştiririz ve gerçekleşen taleplerin sayısı 4 olur.
Ortaokul Bilgisayar Olimpiyatı 2019, 1. Aşama, Soru 19

## [16-20 soruları için açıklama]
Bir bilgisayar tamircisi o gün içerisinde hangi bilgisayarları tamir edeceğine bir gün öncesinden kendisine verilen taleplerdeki bilgisayar geliş saatleri ve tamirin ne kadar süreceği bilgisini kullanarak karar vermektedir. Aynı anda sadece bir bilgisayar tamir edebildiğinden ve bir bilgisayar gelir gelmez tamire başlamak istediğinden, kendisine gelen talepler içinden bazılarını reddetmek zorunda kalmaktadır. Çünkü bilgisayar geliş saati ve tamir bitiş saatleri örtüşen iki bilgisayar varsa bunlardan sadece bir tanesini seçebilir.
Örnek vermek gerekirse, gelen talepler:
A: sabah 9’da gelecek ve tamir 2 saat sürecek
B: sabah 10’da gelecek ve tamir yarım saat sürecek
C: sabah 11’de gelecek ve tamir 3 saat sürecek
ise tamirci A ve B bilgisayarlarından birisini reddetmek zorundadır. Yani o günün tamir planında ya A ve C olacaktır ya da B ve C olacaktır.
Tamircinin hedefi o gün içerisinde en fazla sayıda bilgisayar tamir etmek olduğundan tamirci için aşağıdaki gibi bir algoritma tasarladık:
1. Bilgisayarları tamir bitiş zamanlarına göre küçükten büyüğe sırala. Bu sıralamaya göre sıralanmış bilgisayarlara A1, A2, .. An  diyelim.
2. A1’i o günkü tamir planına ekle.
3. 2. bilgisayardan n. bilgisayara kadar sıra ile aşağıdaki işlemi gerçekleştir:
Eğer sıradaki bilgisayarın geliş saati plana en son eklenmiş bilgisayarın bitiş saatinden sonra ise sıradaki bilgisayarı tamir planına ekle, değil ise bilgisayarın sahibine bilgisayarının tamirinin o gün yapılamayacağını bildir.
Bu verilen algoritma, o gün için karşılanabilecek en fazla talep sayısında talebi plana koyar. Bu algoritmayı yukarıdaki örneğe uyguladığımızda bilgisayarlar tamir bitiş saatlerine göre B, A, C olarak sıralanacaklar ve algoritmamız B ve C bilgisayarlarını o gün tamir edilecek bilgisayarlar olarak 
belirleyecektir. 

---

Algoritmamızı aşağıda verilmiş tamir taleplerine uyguladığımızda hangi bilgisayarlar tamir planına eklenir?
<table><tr><td><td>A1</td><td>A2</td><td>A3</td><td>A4</td><td>A5<td>A6</td><td>A7</td><td>A8</td><td>A9</td><td>A10<br/>16:00</td></td></td></tr><tr><td>Geliş saati</td><td>8:00</td><td>7:00</td><td>10:00</td><td>13:00</td><td>11:00</td><td>10:00</td><td>14:00</td><td>15:00</td><td>12:00</td><td>16:00</td></tr><tr><td>Tamir süresi (saat)</td><td>2</td><td>3.5</td><td>4</td><td>2</td><td>4.5</td><td>6</td><td>2.5</td><td>2</td><td>5.5</td><td>2</td></tr></table>

Şıklar:
A) (A2, A4, A8) | B) (A1, A3, A7) | C) (A1, A6, A10) | D) (A2, A4, A10) | E) (A2, A4, A8, A10)

Cevap: B (A1, A3, A7)

Çözüm:
Tabloya baktığımızda taleplerin zaten bitış saatlerine göre soldan sağa sıralı olduğunu görüriz. Algoritmayı uyguladığımızda (A1, A3, A7) taleplerini gerçekleştiririz.
Ortaokul Bilgisayar Olimpiyatı 2019, 1. Aşama, Soru 21

[21-30 soruları için açıklama] 
 
● Soruları C programlama dili çerçevesinde cevaplayınız.  
● Derleyici olarak gcc kullanıldığını varsayınız.  
● Gerekli tüm başlık (header) dosyalarının verilen programa dahil edildiğini varsayınız.

---

Aşağıdaki program parçasının ekrana "Selin" yazması için test değişkeni hangi aralıkta olmalıdır?
```c
if (test <= 200)
if (test < 100)
if (test <= 0)
printf("Ali\n");
else
printf("Burak\n");
else
printf("Selin\n");
else
printf("Demet\n");
```

Şıklar:
A) 0 < test ≤ 100 | B) 200 < test | C) 0 ≤ test ≤ 200 | D) 100 ≤ test ≤ 200 | E) 100 < test ≤ 200

Cevap: D 100 ≤ test ≤ 200

Çözüm:
Program çalıştırıldığında test değişkeninin içeriğine göre yalnızca tek bir satır çıktı olarak üretilir. "Selin" çıktısı da test değerinin 200'den küçük eşit olduğunda ve 100'den küçük olmadığında üretilir. Yani test değeri 100'den büyük eşit ve 200'den küçük eşit olduğu durumda "Selin" çıktısı üretilir.
Ortaokul Bilgisayar Olimpiyatı 2019, 1. Aşama, Soru 22

[21-30 soruları için açıklama] 
 
● Soruları C programlama dili çerçevesinde cevaplayınız.  
● Derleyici olarak gcc kullanıldığını varsayınız.  
● Gerekli tüm başlık (header) dosyalarının verilen programa dahil edildiğini varsayınız.

---

[22-23]. soruları aşağıdaki koda göre cevaplayınız
```c
int a,b,c,d,e; 
a = b = c = d = e = 0; 
while (d < 20) { 
scanf("%d", &e); 
c = c + e; 
if (e >= 0) 
b = b + 1; 
else 
a = a + 1; 
d = d + 1; 
} 
```
---

Programdaki while döngüsü kaç kez çalışır?

Şıklar:
A) 21 | B) 19 | C) 20 | D) Girdi olarak 20 ya da daha büyük bir sayı girilene kadar çalışır | E) Hiç çalışmaz

Cevap: C 20

Çözüm:
while döngüsünün çalışması sadece d değişkeninin 20'den küçük olmasına bağlıdır. Döngünün her bir çalışmasında da d koşulsuz olarak 1 arttırılmaktadır. Döngü ilk çalıştığında d'nin değeri 0'dır. Döngünün son çalışması d'nin değeri 19 iken olur. Yani 0'dan 19'a toplam 20 kez çalışmış olur.
Ortaokul Bilgisayar Olimpiyatı 2019, 1. Aşama, Soru 23

[21-30 soruları için açıklama] 
 
● Soruları C programlama dili çerçevesinde cevaplayınız.  
● Derleyici olarak gcc kullanıldığını varsayınız.  
● Gerekli tüm başlık (header) dosyalarının verilen programa dahil edildiğini varsayınız.

---

[22-23]. soruları aşağıdaki koda göre cevaplayınız
```c
int a,b,c,d,e; 
a = b = c = d = e = 0; 
while (d < 20) { 
scanf("%d", &e); 
c = c + e; 
if (e >= 0) 
b = b + 1; 
else 
a = a + 1; 
d = d + 1; 
} 
```
---

Program bittiğinde c değişkenindeki değer aşağıdakilerden hangisini gösterir?

Şıklar:
A) Girdi olarak girilen sayıların toplamını | B) Girdi olarak girilen sayıların ortalamasını | C) Girdi olarak girilen pozitif sayıların toplamını | D) Kaç tane sayının girdi olarak girildiğini | E) 0 (sıfır) değerini gösterir

Cevap: A Girdi olarak girilen sayıların toplamını

Çözüm:
c değişkenine her seferinde girilen e girdisinin değeri eklenmektedir ve c değişkeninin değerini değiştiren başka bir kod parçası bulunmamaktadır. Yani program sonlandığında c değişkeni girilen bütün girdi değerlerinin toplamını göstermiş olur.
Ortaokul Bilgisayar Olimpiyatı 2019, 1. Aşama, Soru 24

[21-30 soruları için açıklama] 
 
● Soruları C programlama dili çerçevesinde cevaplayınız.  
● Derleyici olarak gcc kullanıldığını varsayınız.  
● Gerekli tüm başlık (header) dosyalarının verilen programa dahil edildiğini varsayınız.

---

Aşağıdaki program parçası çalıştığında çıktı olarak kaç satır üretir?
```c
int i, j;
i = j = 0;
do {
for ( ; j < 4; j = j + 1)
printf("%d\n", i + j);
i = i + 1;
} while (i < 5);
```

Şıklar:
A) 4 | B) 5 | C) 9 | D) 20 | E) Derleme hatası verir

Cevap: A 4

Çözüm:
for döngüsünde j değişkeninin değeri her başlangıçta 0'a eşitlenmediği için içteki for döngüsü sadece 4 kez çalışır. Çıktı olarak üretilen satırlar sadece bu for döngüsü tarafından üretildiği için satır sayısı da 4 olur.