22 Mart 2016 Salı

Java Ödev 2



1- Dışarıdan girilen metni tahmin eden adam asmaca oyunu kendi algoritmanızı oluşturarak yazınız. Oluşturduğunuz algoritmayı adım adım yazınız, akış diyagramını çiziniz ve java kodunu yazınız.

2- [1,100] arasında rastgele üretilen 10 adet sayıyı 10 elemanlı bir diziye atayınız ve dizinin elamanları arasındaki farkı fark adında bir diziye atayınız.

3- Bilindiği üzere Türkiye süper liginde 18 adet takım ve her bir takım 2 sezon boyunca 17+17=34 maç oynamaktadır. Kullanılacak bir rastgele sayı üreteci [0,2] sayılarını üretmektedir ve bu sayıların maçın sonucunu belirlemektedir. Örneğin 10 ve 20 numaralı takımlar arasında maç oynanıyor eğer maç sonucu 0 ise her iki takım birer puan alacak maç sonucu 1 ise 10 numaralı takım 3 puan alacak, eğer maç sonucu 2 ise 20 numaralı takım 3 puan kazanacaktır.

18 elemanlı puan adında bir dizi oluşturulacak ve bu diziye takımların puanları atanacaktır. Örneğin 0. indisteki puan 1 numaralı takımın puanını 17. indiste bulunan puan ise 18. takımın puanını vermektedir.

a) İlk sezon sonunda oluşan puan listesini ekrana yazdırınız.

b) En düşük puana sahip 3 takım düşme hattındaki takımlardır. Düşme hattındaki takımları ekrana yazdırınız.

c) En yüksek puana sahip 3 takım liderliğe oynayan takımlardır. Liderliğe oynayan takımları ekrana yazdırınız.

4- 3141592653589793238462643383 sayılarından oluşan kaç adet asal 2 basamaklı sayı olduğunu bulan, bu sayılar iki_basamak adında diziye atayan ve bu sayılardan kaç tanesinin asal olduğunu ekrana yazdıran programı java kullanarak yazınız.
Not: Ödevlerin son gönderim tarihi 25.03.2016 23:59' dur. Ödevleri Word dosyasında rapor olarak yollayınız.

23 Şubat 2016 Salı

Programlama Dilleri Dersi 1. Ödev

Yeni dönemle beraber yeni bir programlama dilini öğrenmeye başladık ancak geçen dönemden bildiğimiz gibi önemli olan dillerin sentaksı değil algoritma ve akış diyagramının nasıl yazılacağıdır.
İlk ödevimizde akıllı taşıtlarla ilgili olsun.
Son haberlere göre google firmasının geliştirdiği akıllı taşıt 200.000 km hiç kaza yapmadan sürücüsüz noktadan hedefe ulaşabilmiştir. Aynı özelliklerde aracın tasarlanması için TÜBİTAK Türkiye' de ilk ve tek olan adli bilişim mühendisliğinden destek almak ister ve aşağıdaki maddeleri sıralar.
1- Yağmurlu havalarda görüş mesafesi kısalınca otomatik olarak silecekleri çalıştıran mekanizmanın algoritmasını ve akış diyagramını çiziniz.
2- Ön ve arka koltuklar algoritma içerisinde tanımlanacaktır. Bu koltuklardan önde bulunan ikisinin kemeri takılı olmadığında uyarı sireni ötecektir. Ayrıca uyarı sireninin çalışması için aracın hızının 30 km/h' den fazla olması gerekmektedir. Bunun için gerekli olan algoritmayı yazınız ve akış diyagramını çiziniz.
3- Kemeri takılı olmayan yolcuları ve tam kapanmamış kapıları sürücü konsol ekranında gösteren algoritmayı yazınız ve akış diyagramını çiziniz.
4- Araçta 5 ileri 1 geri vites bulunmaktadır. Ayrıca araçta motor dönüş hızını sayan bir RPM sayacıda bulunmaktadır. Araç geri vitese takıldığında RPM sayacı çalışmayacak ve arka kamera devreye girerek dış mekanı konsol ekranında gösterecektir. İleri viteslerde de RPM sayacı devreye girecektir. Eğer RPM sayacı 3500 ve üzerini gösterirse vites artacak ve 5. viteste sabitleme modülü devreye girecektir. Bu modülün gerçeklenmesi için gerekli olan algoritmayı yazınız, akış diyagramını çiziniz.
5- Koltuklarda titreşim sensörü, ısıtıcı ve ağırlık sensörü bulunmaktadır. Koltukların sıcaklığının sürekli 25 derece olması istenmektedir. İstenilen işlemi yapabilmek için gerekli algoritmayı yazınız ve akış diyagramını çiziniz.
6- Titreşim sensörü 0 ile 1 arasında çıkışlar üretmektedir. Yapılan eğitim ve test çalışmaları sonucunda 600 saniye boyunca üretilen titreşim değerinin ortalama 0.3' den büyük ise koltukta bir yolcunun bulunduğundan bahsetmek mümkündür. Ayrıca bu yolcunun ağırlığı ağırlık sensöründen gelen değerle ölçülmektedir. Eğer yolcunun ağırlığı 40 kg' dan küçük ise yolcunun çocuk olması ihtimali yüksektir. Eğer bu yolcu ön koltukta oturuyorsa, araç konsol ekranına ön koltukta çocuk oturuyor sürüş güvenli değil yazacak, eğer bu yolcu arka koltukta seyahat ediyorsa kemer sireni devreye girecektir. Bu işlemi gerçekleştirmek için gerekli olan algoritmayı yazınız ve akış diyagramını çiziniz.
7- Aracın otomatik pilotta şerit çizgisini takip etmesi istenmektedir. Bu işlem için sağ, orta ve sol adında üç adet sensör bu araca yerleştirilmiştir. Yol sağa doğru kıvrılıyorsa sağ sensör devreye girerek aracı sağa, sola kıvrılıyorsa sola eğer yolda kıvrım yoksa orta sensör devreye girerek araç yola devam edecektir. Tüm ihtimaller düşünülerek gerekli olan otomatik pilot algoritmasını yazınız ve akış diyagramını çiziniz.

NOT: Ödevlerin son gönderim tarihi 26.02.2016 23:59:59' dur. Ödevler word dosyası halinde gönderilecektir. 


14 Aralık 2015 Pazartesi

Algoritma Ödev - 7

1- strcpy fonksiyonunun görevini yapan fonksiyonu yazınız.
2- strcat fonksiyonunun görevini yapan fonksiyonu yazınız.
3- strlen fonksiyonunun görevini yapan fonksiyonu yazınız.
4- Klavyeden girilen stringin tersini alan ve adı TERS fonksiyonu yazınız.
5- Tersi alınan stringin harflerini ikili koda çeviren ve adı IKILI olan fonksiyonu yazınız.
6- Stringin kendiyle tersini XOR'layıp sonucu karakter olarak ekrana yazdırın.
7- Parametre olarak girilen iki sayıyı bölen ve bölümünü geri döndüren fonksiyonu yazınız. (Yazacağınız fonksiyonda "/" işlemini kullanmak yasaktır)
8- MOD işlemi yapan fonksiyonu yazınız. Yazacağınız fonksiyonda "/" ve "%" operatörlerini kullanmak yasaktır.
9- 1/1!-2/2!+3/3!....n/n! faktoriyel işleminin sonucunu USTAL ve FAKTORIYEL adlı metotlar yazarak bulunuz.
10- Sezar şifreleme harfin ötelenmesiyle yapılan bir şifrelemedir. BABA kelimesi 3 harf ötelenirse EDED olacaktır. Öteleme sayısı ve dizi parametre olarak girilecek ve sezar şifreli hali çıktı olarak yazılacaktır. (sezar("abc",1) yazıldığında çıktı bcd olacaktır.)
11- Parametre olarak girilen stringte türkçe karakter varsa false yokse true dönderen fonksiyonu yazınız.
12- Parametre olarak girilen stringte rakam varsa rakamın indislerini ekrana yazdıran fonksiyonu yazınız.
13- Parametre olarak 1. sayı, 2. sayı ve işlem girilecektir. Parametrelere görse işlemi geri döndüren fonksiyonu switch - case yapısı kullanarak yazınız. (Örnegin hesapla(3,5,'*') yazıldığında geriye 15 değerini döndüren fonksiyonu yazınız)

ÖDEVLERİN SON GÖNDERİM TARİHİ 16/12/2015 08:00

27 Kasım 2015 Cuma

Vize Öncesi Algoritma Hazırlık Soruları

1-      1 ile 10.000 arasındaki mükemmel sayıları bulan programı yazınız (6 mükemmel sayıdır 6=1+2+3, 28 mükemmel sayıdır 28=1+2+4+7+14)
2-      1 ile 1000 arasındaki asal sayıları ekrana yazdıran programı yazınız.
3-      100-999 arasındaki Armstrong sayıları ekrana yazdıran programı yazınız (153 armstrong sayıdır ve 153=13+53+33)
4-      int a=5,b,c;     b=a--;    c=++a;   a^=++c; işleminin sonucunu kağıt üzerinde hesaplayınız ve programını yazarak bulduğunuz sonucu doğrulayınız.
5-      6. Ödevin 3. Sorusunu çözünüz.
6-      M.Ö. 2589-2566 yılları arasında yapıldığı tahmin edilen ve dünyanın 7 harikasından biri olan Keops Piramdi’nin en az 2.3 milyon taş bloktan oluştuğu tahmin edilmektedir.Piramidin tabanında kare biçiminde yerleştirilmiş N*N adet, ikinci katında (N-1)*(N-1), üçüncü katında (N-2)*(N-2), ... , N. katında (son kat) 1 taş blok olduğu kabul edilirse, piramitin kaç taş bloktan oluştuğunu ve kaç katlı olduğunu bulan programı yazınız (2.3 milyondan büyük olacak şekilde en az kaç kat olmalıdır).
7-      10 elemanlı dizinin elemanları [-5,10] arasında değer atanacaktır. Oluşturulan matrisin elemanlarını kaydırınız.
8-      Yukarıda oluşturulan diziyi tersten yazdırınız.
9-    int sonuc=0,sayac=0;
for(int i=1;i<=5;i++)
for(int j=1;j<=i;j++)
for(int k=1;k<=j;k++)
{sayac++; sonuc+=sayac;}
Yukarıdaki sayaç ve sonuç değerlerini elle hesaplayınız ardından programı yazarak sonuçları doğrulayınız.
10-  Klavyeden girilen sayıların pozitif asal tam bölenlerini bulan programı yazınız (175=5,5,7).
11- 25 elemanlı fibonacci dizisini oluşturunuz ve bu dizinin ortalamasını bulan C kodunu yazınız.
12- Oluşturulan bu dizinin tüm elemanlarına mod 2 işlemi uygulayıp elde edilen binary sayıları 5 x 5 boyutundaki matrise yazınız.



22 Kasım 2015 Pazar

Algoritma Ödev-6

Aşağıdaki programları C dilinde yazınız.
1- 4 x 4' lük matrisi (matrisin elemanları 10-30 arasında rastgele atanacaktır) saat yönünde 90 derece çeviren programı yazınız.
2- Aşağıda verilen matris hexadecimal (16 tabanında) kodlanmıştır. Bu matrisi onluk tabana göre kodlayan programı yazınız.

3- 4x4' lük dizinin elemanların [0,20] aralığında rastgele atanacaktır. Aşağıdaki karıştırma kutucuğunu kullanarak yeni karıştırılmış matrisi oluşturan programı yazınız.

4- 8x8 boyutunda A matrisini (elemanları 0-255 arasında rastgele atanacaktır.) yukarıdaki 4x4'lük karıştırma kutucuğunu kullanarak karıştıran programı yazınız.
5- 4. soruda karıştırılmış matrisi, kullanıcı tarafından girilen 8x8' lik anahtarla XOR'layan programı yazınız.
6- 5. soru sonunda elde edilen matrisle A matrisiyle farkını F matrisi adında bir matrise yazdıran ve F matrisinin çıktısını ekrana formatlı olarak yazdıran programı yazınız.

Son gönderim tarihi 25 Kasım Çarşamba saat 13.00' dır.

13 Kasım 2015 Cuma

Algoritma Ödev -5

Aşağıdaki soruların akış diyagramını çiziniz ve programını C dilinde yazınız.
1- Dışarıdan girilen pozitif tam sayının asal bölenleri bulan programı yazınız. (Örn: Dışarıdan girilen sayı 175 ise ekrana 5 5 7 yazdırılacaktır)
2- Dışarıdan girilen elemanı diziden silen programı yazınız. (Örn. dizi={1 2 3 4 5} ve silinmesi istenen eleman 4 ise dizi2={1 2 3 5} olacaktır.)
3- Dışarıdan girilen sayının ikili tabana çevirip ekrana yazdıran programı yazınız. (Örn. 5 -> 101)
4- 50 elemanlı bir diziye [-5,4] aralığında rastgele sayılar rand fonksiyonu kullanılarak atanacaktır. Bu dizide en fazla tekrar eden ve en az tekrar eden elemanları ekrana yazdıran programı yazınız.
5- Teknoloji  fakültesi, sınavlarda kopya çekilme ihtimalini azaltmak için adli bilişim mühendisliğinden otomatik oturma düzeni programı yapmasını istemiştir. Bu uygulamanın demosunu gerçekleştirebilmek için 30 öğrenciyi 30 kişilik sınıfa yerleştirmek gerekmektedir. Bu işlemi yapan programı yazınız. (rand fonksiyonundan faydalanabilirsiniz, aynı sıraya iki öğrenci oturamaz ve bir öğrenci aynı anda iki sırada birden oturamaz, öğrencileri ve sıraları ardışık olarak isimlendiriniz ancak ardışık olarak sıralamayınız.)
6- Elazığ' da eczaneler 3 (A,B ve C bölgesi) ayrı bölgede toplanmıştır ve her bir bölgede 10 eczane olduğu varsayılmaktadır. Hergün A,B ve C bölgesinden bir eczane nöbetçi olmak üzere günde 3 eczane nöbetçi olmaktadır. Ancak eczaneler arasında adaletin sağlanması için ilk nöbet tutan 3'lü mümkün olan en uzun sürede bir daha nöbet tutmalıdır yani A1 eczanesi ilk turda A1 B1 ve C1 ile nöbet tutarsa, ikinci kez A1 ' e sıra geldiğinde A1' in B1 ve C1 ile birlikte nöbet tutmaması istenmektedir. Bu problemi çözmek için kendi algoritmanızı geliştiriniz ve C' de yazınız.
7- Dışarıdan girilen bir kelimenin küçük harflerini büyüğe büyük harflerini küçüğe çeviren programı hazır fonksiyon kullanmadan yazınız. (Kelimenin harf uzunluğu sabit tutabilirsiniz)

Son gönderim tarihi 18 Kasım Çarşamba Saat 08.00' dır.

8 Kasım 2015 Pazar

Algoritma - 4. Ödevler

Aşağıdaki soruların algoritmasını, akış diyagramını ve C dilinde çözümlerini yazıp WORD dosyası olarak yollayınız.
ÖDEVLERİN SON GÖNDERİM TARİHİ 11 KASIM 2015 SAAT 08:00 OLARAK BELİRLENMİŞTİR.
1- Klavyeden girilen taban ve üste göre, üstlü sayının sonucunu hesaplayıp ekrana yazdıran programı POW fonksiyonu kullanmadan yazınız. (Örneğin taban=2 ve üst=5 olarak girilirse ekrana Sonuc=32 yazdırılacaktır. Taban ve üst değerini int olarak tanımlayınız ve sadece tam sayılar uzayında problemi çözünüz)
2- Klavyeden girilen sayının mutlak değerini ekran yazdıran program. ABS fonksiyonu kullanılmayacaktır.
3- T=1-(1/2)+(1/4)-(1/6)+(1/8).... (1/2n)
Dışardan girilen n tamsayısına göre T dizisinin sonucunu hesaplayıp ekrana yazdıran programı yazınız.
4- Aşağıdaki kodu while döngüsüyle gerçekleştiriniz.
for(int i=0, j=25; i<=25 && j>=0; i++, j--)
{
printf("%d ve %d\n",i,j);
}
5- Klavyeden girilen sayıyı sadeleşmeyecek şekilde rasyonel sayıya çeviren C programını yazınız.
(Örneğin 4.55 girilirse ekrana 91/20 yazdırılacaktır. Virgülden sonra iki basamak giriniz.)
6- p ve q gibi iki adet asal sayının klavyeden girilmesini isteyiniz. Eğer girilen p veya q sayıları asal değilse yeniden giriş istetiniz. Girilen sayılar asal ise n=pq ve t=(p-1)(q-1) sayılarını ekrana yazdırınız.
7- 1 ile t arasında t'den küçük en büyük asal sayıyı bulup ekrana yazdırınız ve bu sayıyı e olarak adlandırınız.
8- d*e (mod n)=1 denkliğini sağlayan d değerini bulan programı yazınız.