• Sonuç bulunamadı

Güvenlik 2 Güvenlik proGramc›lar ifl bafl›na

N/A
N/A
Protected

Academic year: 2021

Share "Güvenlik 2 Güvenlik proGramc›lar ifl bafl›na"

Copied!
2
0
0

Yükleniyor.... (view fulltext now)

Tam metin

(1)

p r o G r a m c › l a r i fl b a fl › n a

Güvenlik

ABC flirketinin binas› çok güvenli bir

flekilde korunmaktad›r. Öyle ki, binan›n

merkezinde bir yere koyulan bir dedektör

sayesinde binan›n içindeki bütün insanlar

alg›lanabilmektedir. Fakat bu dedektörün

alg›lad›¤› alan dairesel bir alan oldu¤u

için binan›n d›fl›nda kalan baz› bölgeler de

dedektörün kapsama alandad›r ve binan›n

d›fl›nda insan oldu¤u zaman da uyar›

verebilmektedir. Sizden istenen ABC

flirketini bu durumdan kurtarman›z, yani

gelen uyar›n›n bina içinden olup

olmad›¤›n› kontrol eden bir program

yazman›z.

V

Vaarrssaayy››m

mllaarr

• ABC flirketinin binas› bir çokgen

fleklindedir ve bu çokgen n köflelidir.

• Size çokgen verilirken çokgenin

köfleleri saat yönünde ve s›rayla

verilecektir.

G

Giirrd

dii

Girdiler "guvenlik.gir" isimli

dosyadan okunacakt›r.

• ‹lk sat›rda çokgenin (binan›n flekli)

köflelerinin say›s›n› ifade eden n

verilecektir.

• Takip eden n sat›r›n her birisinde iki

adet pozitif tamsay› verilecektir. Bu

say›lar s›radaki köflenin x ve y

koordinatlar›n› belirtecektir.

• Takip eden sat›rda iki adet pozitif

tamsay› bulunacakt›r. Bu say›lar uyar›ya

neden olan insan›n koordinatlar›n› ifade

edecektir.

Ç

Ç››k

ktt››

• Ç›kt›lar "guvenlik.cik" isimli dosyaya

yaz›lacakt›r.

• Uyar›ya neden olan insan bina içinde

ise "EVET", d›fl›nda ise "HAYIR"

bas›lacakt›r.

© A l i G a l i p B a y r a k

Ö

Örrn

ne

ek

k

guvenlik.gir:

6

3 4

6 3

5 1

4 2

2 1

1 3

5 4

guvenlik.cik:

HAYIR

Güvenlik 2

ABC flirketine eski binas› yetmeyince

flirket yeni binaya tafl›nmaya karar verir.

Yeni tafl›nd›klar› bina iki bloktan

oluflmak-tad›r. Güvenli¤e önem veren flirket iki

blo-¤a da bir önceki soruda bahsedilen

dedek-törlerden yerlefltirmeye karar verir. Fakat

bu kez sistemin farkl› bir sorunu vard›r.

Öyle ki; iki blok kesiflti¤i için arada kalan

alan iki detektör taraf›ndan da

alg›lana-cak ve fazladan uyar› al›naalg›lana-cakt›r. Bunu

engellemek için arada kalan alan›n

sade-ce birisi taraf›ndan alg›lanmas›

istenmek-tedir. Sizden istenen arada kalan alan›

bulman›z.

V

Vaarrssaayy››m

mllaarr

• Bloklar d›flbükey çokgen

fleklinde-dir. Birinci blo¤un n köflesi, ikinci blo¤un

m köflesi bulunmaktad›r.

• Çokgenler verilirken çokgenin

köfle-leri saat yönünde ve s›rayla verilecektir.

• Arada kalan çokgeni verirken

çokge-nin köfleleriçokge-nin birisinden bafllayarak

s›-rayla ve saat yönünde vermeniz

gerek-mektedir.

G

Giirrd

dii

• Girdiler "guvenlik2.gir" isimli

dosya-dan okunacakt›r.

• ‹lk sat›rda ilk çokgenin (blo¤un

flek-li) köflelerinin say›s›n› ifade eden n

verile-cektir.

• Takip eden n sat›r›n her birisinde iki

adet pozitif tamsay› verilecektir. Bu

say›-lar s›radaki köflenin x ve y koordinatsay›-lar›n›

belirtecektir.

• Takip eden sat›rda ikinci çokgenin

(blo¤un flekli) köflelerinin say›s›n› ifade

eden m verilecektir.

• Takip eden m sat›r›n her birisinde

iki adet pozitif tamsay› verilecektir. Bu

sa-y›lar s›radaki köflenin x ve y

koordinatlar›-n› belirtecektir.

Ç

Ç››k

ktt››

• Ç›kt›lar "guvenlik2.cik" isimli

dosya-ya dosya-yaz›lacakt›r.

• Ç›kt›n›n ilk sat›r›nda arada kalan

çokgenin köfle say›s›n› ifade eden p

veri-lecektir.

• Takip eden p adet sat›r›n her

birisin-de iki abirisin-det reel say› bulunacakt›r (reel

sa-y›lar›n virgülden sonra en fazla iki

basa-ma¤› bas›lacakt›r). Bu say›lar arada kalan

çokgenin köflelerinin x ve y

koordinatlar›-n› belirteceklerdir.

102Aral›k 2005 B‹L‹MveTEKN‹K

Ö

Örrn

ne

ek

k

guvenlik2.gir:

5

1 3

3 4

4 3

4 1

2 1

5

6 3

5 1

3 2

3 3

5 4

guvenlik2.cik:

5

4 3

4 1.5

3 2

3 3

3.66 3.33

bilgisayarSorulariA 11/17/05 4:04 PM Page 102

(2)

103

Aral›k 2005 B‹L‹MveTEKN‹K

p r o G r a m c › l a r i fl b a fl › n a

Mant›ksal ‹fadeler 2

‹ki çözüm yolundan gidebiliriz: 1. Olas› bütün önerme de¤er dizileri denenir. Verilen sonucu üretenler bas›l›r. Verilen örne¤imi-zi hat›rlayacak olursak: 3 p q s p & q | !p & s D S›ras›yla:

YYY, YYD, YDY, YDD, DYY, DYD, DDY, DDD

denenir. Bütün bu olas› de¤er dizilerini flu flekilde üretebiliriz. 0'dan 2n 'e kadar olan say›lar›n ikili yaz›l›mlar›n› düflünelim:

000, 001, 010, 011, 100, 101, 110, 111

Burada 1'leri D, 0'lar› Y gibi düflünürsek üstteki dizilimleri elde etmifl oluruz. Daha sonra s›ras›yla bütün de¤er dizilerini bir önceki soruda yazd›¤›m›z algoritmay› kul-lanarak de¤erlendiririz ve sonucu veriyorsa basar›z.

2. Bir önceki soruda bahsedi-len Dijkstra'n›n algoritmas›n› bi-raz düzenlememiz gerekecek. Ama daha önce a¤aç ismi verilen veri yap›s›ndan bahsedelim. A¤aç bir kökten veya bir kök ve köke ba¤l› a¤açlardan (çocuklardan) oluflan

veri yap›s›d›r. fiekilde bir a¤aç ör-ne¤i görebiliriz:

Bu a¤aç üzerinde özyinelemeli bir algoritma kullanaca¤›z. Yani al-goritmay› çal›flt›r›rken önce varsa sa¤ çocu¤u için çal›flt›r›r›z, sonra varsa sol çocu¤u için çal›flt›r›r›z, ç›-kan sonuçlar› kendi kökündeki elemana göre iflleyip sonucu bulu-ruz.

Bir önceki soruda bahsedilen algoritmada önerme y›¤›n›na öner-menin de¤erini de¤il de önermeler ve operatörlerden oluflan bir a¤aç fleklinde basarsak en sonunda önerme y›¤›n›nda bir a¤aç kal›r. Verilen örne¤imiz için flekildeki

gi-bi gi-bir a¤aç oluflur:

Bu a¤ac› oluflt›rduktan sonra: 1. A¤ac›n kökündeki bir öner-me ise, o a¤ac›n almas› gereken de¤er önermeye verilir.

2. A¤ac›n kökündeki ! ise, a¤a-c›n almas› gereken de¤erin de-¤il'ini çocu¤un almas› istenir ve al-goritma çocuk için uygulan›r.

3. A¤ac›n kökündeki & ise: a. A¤ac›n almas› gereken de¤er D ise, a¤ac›n sol ve sa¤ çocu¤unun D de¤eri almas› istenir ve algoritma çocuklar için uygulan›r.

b. A¤ac›n almas› gereken de¤er Y ise

i. A¤ac›n sol

çocu¤u-nun D, sa¤ çocu¤uçocu¤u-nun Y olmas› is-tenir ve algoritma çocuklar için uy-gulan›r.

ii. A¤ac›n sol çocu¤u-nun Y, sa¤ çocu¤uçocu¤u-nun D olmas› is-tenir ve algoritma çocuklar için uy-gulan›r.

iii. A¤ac›n iki çocu¤u-nun da Y olmas› istenir ve algorit-ma çocuklar için uygulan›r.

4. A¤ac›n kökündeki | ise: a. A¤ac›n almas› gereken de¤er Y ise, a¤ac›n sol ve sa¤ çocu¤unun Y de¤eri almas› istenir ve algoritma çocuklar için uygulan›r.

b. A¤ac›n almas› gereken de¤er D ise

i. A¤ac›n sol çocu¤u-nun D, sa¤ çocu¤uçocu¤u-nun Y olmas› is-tenir ve algoritma çocuklar için uy-gulan›r.

ii. A¤ac›n sol çocu¤u-nun Y, sa¤ çocu¤uçocu¤u-nun D olmas› is-tenir ve algoritma çocuklar için uy-gulan›r.

iii. A¤ac›n iki çocu¤u-nun da D olmas› istenir ve algorit-ma çocuklar için uygulan›r.

Bu flekilde algoritmay› sonuna kadar uygularsak olas› bütün de-¤erleri buluruz. Burada dikkat et-memiz gereken tek nokta, ayn› önermeye a¤ac›n farkl› dallar›nda farkl› de¤erler vermemektir.

Mant›ksal ‹fadeler

Bu problemi ünlü bilgisayar bilimcilerinden olan Dijkstra'n›n algoritmas› ile çözebiliriz. Bu al-goritma verilen matematiksel bir ifadeyi hesaplamak için kullan›l›r. Algoritmada, geçen say›da bah-setti¤imiz veri yap›lar›ndan y›¤›n kullan›l›r. Algoritman›n bizim ör-ne¤imize uygulamas›ndan bahse-decek olursak:

0. ‹ki adet y›¤›n aç›l›r, bunlar-dan birisi operatörler için (!, & ve |), di¤eri ise önermeler için.

1. ‹fadenin bafl›ndan bafllana-rak s›rayla ilerlenir.

2. S›radaki bir önerme ise de-¤eri önerme y›¤›n›na koyulur.

3. S›radaki bir aç parantez ise operatör y›¤›n›na koyulur.

4. S›radaki bir operatör ise operatör y›¤›n›na bak›l›r.

a. E¤er en üstteki eleman›n önceli¤i kendisininkinden küçük ise s›radaki operatör, operatör y›¤›n›na koyulur.

b. E¤er en üstteki eleman›n önceli¤i kendisininkiyle ayn› ise:

i. Bu operator ! ise, operator y›¤›n›na koyulur

ii. Bu operatör | veya & ise operatör y›¤›n›n›n en üs-tündeki eleman çekilir, önerme y›¤›n›ndan iki adet eleman çeki-lir, bu elemanlar operatör y›¤›n›n-dan çekilen operatöre göre

iflle-me sokulup sonucu öneriflle-me y›¤›-n›na bas›l›r ve s›radaki operatör operatör y›¤›n›na bas›l›r.

c. E¤er en üstteki eleman›n önceli¤i kendisininkinden büyük-se, en üstteki eleman bu y›¤›ndan çekilir.

i. E¤er çekilen eleman ! ise, önerme y›¤›n›ndan bir ele-man çekilip ! ile ifllenmifl hali

önerme y›¤›n›na koyulur. ii. E¤er & veya | ise önerme y›¤›n›ndan iki eleman çe-kilip bu operatöre göre iflleme so-kulur ve sonucu tekrar önerme y›¤›n›na koyulur S›radaki opera-tör operaopera-tör y›¤›n›na koyulabile-ne kadar bu ifllem devam eder.

5. S›radaki bir kapa parantez ise, operatör y›¤›n›nda aç paran-tez görene kadar operatör y›¤›-n›ndan bir eleman çekilir:

a. ! ise önerme y›¤›n›ndan bir eleman çekilerek eleman›n ! ile ifllenmifl hali önerme y›¤›n›na tekrar bas›l›r.

b. & veya | ise önerme y›¤›-n›ndan iki eleman çekilerek bu iki eleman›n bu operatör ile ifllen-mifl hali tekrar önerme y›¤›n›na bas›l›r

6. E¤er ifadenin sonuna geldiy-sek yukardaki ifllem operatör y›¤›n› boflalana kadar devam ettirilir.

7. En sonunda önerme y›¤›-n›nda kalan sonuç bu ifadenin so-nucudur.

Geçen Say›m›zdaki Sorular›n Çözümleri

Referanslar

Benzer Belgeler

1939’da Türkiye’ye iltihak olan bölgedeki Ermeniler, çok değil iki yıl sonra, yine Ankara’nın gadrine uğradı..

Aşağıda aynı ortamda bulunan, başlangıç hacimleri aynı ve uçlarına ağırlık bağlı balonların çeşitli sıvılar içinde batması sırasında oluşan

1. gün satılan dürüm sayısı, aynı gün satılan pizza sayısından 75 tane fazla olmuş ve 2.. Beraber sinemaya gitmek isteyen Ece ve İpek, uygun oldukları zaman

(2) homogen sisteminin s¬f¬r çözümü düzgün asimptotik kararl¬ise, bu durumda lineer olmayan (1) sisteminin s¬f¬r çözümü

Bal i Işın, Affan Galip Kırımlı, Atıf Ceylân Bedi Sargın, Reha Ortaçlı, Muzaffer Seven, Ve- dat Erer, Ekrem Yene!, Cevdet Beşe, Fethi Tulgar, Feyyaz Baysal, Münir Arısan,

hatta ben, kafam bir gemi direği gibi bir aşağı bir yukarı sallanırken, aynı yönde ondan daha hızlı hareket ediyor gibiyim.. Sol tarafımda uzakta, ovanın

Yazan: John Wyndham Çeviri: Niran Elçi Roman / Sert kapak 200 sayfa / Nisan 2018. Triffidlerin Günü, uygarlık, insanlığın doğa karşısındaki kibirli tutumu, cinsiyet, sınıf

MATEMATİK.. Aşağıda renkleri dışında özdeş olan mavi, sarı ve kırmızı renkli kartlar verilmiştir. Her renkten eşit sayıda kart bulunmaktadır.. Dizilen bu kartların