9 Temmuz 2017 Pazar

Yığıt - Kuyruk - Sıralama

Ödev 1: Ekrandan girilen bilgilerin( sayısal bilgiler sıfır girilene kadar istenecek, ya da yığıt dolana kadar) yeni oluşturulacak bir yığıta eklenmesi ve işlem bitiminde tüm elemanların ekranda görüntülenmesi. Yığıt boyutu 10 olarak alınsın.


Ödev 2: Ödev 1 de oluşturulmuş yığıttaki elemanların yeni oluşturulan bir kuyruğa yerleştirilmesi ve işlem sonunda kuyruktaki elemanların ekrana gösterilmesini gerçekleştiren c kodunu yazınız.


Ödev 3: Maksimum 30 elemanlı bir kuyruk oluşturun. Bu kuyruktaki elemanları bir diziye çekerek (insertion sort) yerleştirmeli sıralama yaparak küçükten büyüğe doğru sıralayıp tekrar kuyruğa yerleştiriniz. Son olarak da kuyruğu ekrana listeleyiniz. Kuyruk kullanımlarında kuyruk mantığının dışına çıkılmamalıdır. 

"wc" Komut Dosyası

1-) Metin dosyasını girdi olarak alan ve bu dosyadaki toplam harf, kelime ve satır sayısını raporlayan kendi "wc" komut dosyanızı oluşturmamız istenmektedir. Script'imiz iki argüman alması gerekir. İlki filename. İkincisi, harflerin, sözcüklerin ve satırların sırasıyla sayılarını gösteren üç harften "-h", "-k" veya "-s" dan biridir. Bu komut dosyasının örnek bir çalışması aşağıda görülebilir.("wc" komutunu kullanmaya izin verilmiyor!)

$ Sh mywc.sh myfile.txt -h
> Myfile.txt 105 harf içerir.

Dosya işlemeden önce, bağımsız değişken sayısını ve girdi dosyasının var olup olmadığını kontrol etmelisiniz.


[1306130082][Project1].sh


myfile.txt











2-) BDS'yi (Bağıl Değerlendirme Sistemi) kullanarak ders başarısız olan toplam öğrenci sayısını belirleyen bir shell script'i yazmamız isteniyor.BDS'de bir öğrencinin 3 notu vardır: ara sınav, final ve ortalama (ara sınavın% 50'si, finalin% 50'si). Bu veriler, bazı satırları aşağıda verilmiş olan "notlar.txt" dosyasından okunacaktır.

1306850011                 70                55
1306850012                 9                  82
1306850013                 68                60


İlk sütun öğrenci numarası, ikinci sütun ara sınav sonucu ve üçüncü sütun final sonucudur. Bu komut dosyası için örnek çalışma şöyle:

$ sh calculate.sh notlar.txt
> 32 students failed in this course

BDS DEĞERLENDİRME ADIMLARI
if( Ortalama öğrenci notu ≥ 35 )
Öğrenci BDS'ye dahildir. Değerlendirilen öğrenci sayısını 1 arttır
else
Öğrenciyi BDS'den çıkarın ve başarısız öğrenci sayısını 1 artırın
end if

BDS'ye dahil olan öğrencilerden sınıf ortalamasını hesapla
BDS'ye dahil olan öğrencilerin sınıf ortalamasının standart sapmasını hesapla

Baraj'ı "baraj" olarak hesaplayın ve baraj = sınıf ortalaması - 1,645 * sınıf ortalamasının standart sapması

if (değerlendirilen öğrencilerin sayısı <10) veya (sınıf ortalamasının standart sapması <8)
Baraj = 45
end if

if ( öğrencinin final notu ≥ 45 ) ve ( öğrencinin not ortalaması ≥  baraj ) 
Öğrenci dersi geçmiştir. Başarılı öğrencilerin sayısını 1 arttırın
else
Öğrenci dersi başaramamıştır. Başarısız olan öğrenci sayısını 1 arttır
end if

[1306130082][Project2].sh


notlar.txt



Girilen Tamsayıları Tek Bağlı Listeye Yerleştirip Bubble Sort ile Sıralayan Assembly Programı


Projemizde MIPS assembly komutlarını kullanarak SPIM simülatörü (http://spimsimulator.sourceforge.net/) üzerinde çalışacak bir program yazmamız istenmektedir.   

Programınız kullanıcı tarafından girilecek n adet sıfırdan büyük tamsayıyı alıp tek bağlı listeye (single linked list) yerleştirecek ve ardından bu liste üzerinde aşağıda kaba kodu verilen Bubble Sort algoritmasını çalıştıracaktır. Burada dikkat etmeniz gereken nokta kaba kodda verilen A dizisinin sizin uygulamanızda tek bağlı liste olması gerektiğidir. 

Sıralama işleminden sonra listedeki değerlerin küçükten büyüğe doğru sıralanmış hali programın konsolunda çıktı olarak verilmelidir. Aşağıda örnek bir ekran çıktısı görülmektedir. Program çalıştırıldıktan sonra konsola sırasıyla 12, 8, 65, 4, 92, 41, 6 sayıları girilmiştir. Daha fazla sayı girilmeyeceğini bildirmek için de son olarak 0 sayısı girilmiştir. 0 sayısını tanıyan program sıralama işlemini gerçekleştirerek sayıları artan sırada alt alta konsola yazmıştır.   

SPIM simülatörünün konsola girilen tamsayıyı alma, bellekte alan ayırma, konsola yazı yazma, programı sonlandırma gibi işlemler için kullandığı özel sistem çağrıları vardır. Bu çağrılar için önce $a0, $a1, $v0 gibi saklayıcıların içerikleri ayarlanıp ardından syscall fonksiyonu çağrılmaktadır. Aşağıda bu konuda yardım alabileceğiniz bir tablo bulunmaktadır. 

Tamsayı okuma işlemi:  
li $v0, 5       # syscall 5 == read_int 
syscall 





LinkedList_BubbleSort.asm









Programın çalıştırılması:


Hukuk Web Sitesi

Proje Netbeans üzerinde yazılmıştır.Projeyi çalıştırmamız için önceden yapmanız gereken bazı şeyler vardır.

Öncelikle Glassfish indirilip, çalıştırılır; ardından JDBC Connection işlemini gerçekleştirmemiz gerekmektedir. Glassfish4 kurmanızı tavsiye ederim.Glassfish'i kurduktan sonra konsoldan aşağıdaki komutlar ile Glassfish çalıştırılır.


Ver rar içine koymuş olduğum JDBC Connection isimli dosyadaki adımları gerçekleştirip JDBC bağlantısını yapabilirsiniz.


Netbeans’e geri dönülür ve Services->Database-> jdbc:derby://localhost:1527/lawproject [APP on APP] ‘e sağ tıklanıp Connect yapılır.


Aşağıda ise sitemiz için gerekli html sayfaları, css dosyası, java kodu bulunmaktadır.(Gerekli olan resim ve SQL komutları rar içerisindedir.)

default.css

about.xhtml

clients.xhtml

contact.xhtml

forgotpass.xhtml

index.xhtml

lawyers.xhtml

loggedabout.xhtml

loggedcontact.xhtml

loggedcost.xhtml

loggedindex.xhtml




loggedlawyercost.xhtml

loggedlawyers.xhtml

loggedservices.xhtml

loggedstatus.xhtml

loggedupdate.xhtml

login.xhtml

register.xhtml

services.xhtml





UserBean.java



Projeyi run’lamadan önce okumanız gereken bir text dosyası var, muhakkak okuyunuz. Sonrasında projeyi run edip sitemizi görüntüleyebilirsiniz.Siteden bazı sayfaları fotoğraf olarak aşağıda paylaştım.








Ödev Grup Arkadaşım:
Çağdaş Sümer