BİL325 YAZILIM LAB. Tek
Transkript
BİL325 YAZILIM LAB. Tek
BİL325 YAZILIM LAB. Tek-Ders Sınavı Projesi Proje: PL/SQL2JavaScript - Kullanılacak Programlama Dili ve Projenin Geliştirileceği Platform konusunda serbestsiniz. - Proje kaynak kodlari (source code) hem CD içerisinde hem de basili çıktı olarak teslim edilecektir. - Proje ile alakalı sorularınız için [email protected] adresinden bana ulaşabilirsiniz. Proje Tanımı ve Yapmanız Gerekenler: PL/SQL Oracle Veritabanı'nın programlama dilidir. Yapılması istenen şey; girdi olarak bir PL/SQL kod bloğu verildiğinde, çıktısı aynı işi gören bir JavaScript kod bloğunu oluşturan yazılımdır. PL/SQL dilinin tüm özellikleri çevrilmeyecektir. Çevrilmesi istenenler şunlardır: Yapıtaşları JavaScript Karşılığı Bunları her zaman çevirmeniz gerekmeyebilir. Gerektiği yerlerde küme parantezi kullanarak çevirebilirsiniz. Declare, Begin, End PL/SQL declare begin end; Basit Değişkenler PL/SQL'deki Varchar2 ve Number data tipleri belli kısıtlamaları kabul eder. Mesela, aşağıdaki örnekte x değişkenine 25 karakterden daha uzun bir değer girilemez. Böyle bir kısıtlamayı dikkate almadan JavaScript karşılığını aşağıdaki gibi vermeniz yeterlidir. PL/SQL JavaScript Karşılığı JavaScript'te değişken tanımlarken tip belirtme yok. i x y z var var var var number; varchar2(25); date; boolean; i x y z = = = = null; null; null; null; Operatörler PL/SQL ; komut ayıracı = eşittir işareti <> ve != eşit değildir işaretleri < küçüktür işareti > büyüktür işareti := atama işlemi || Metin birleştirme (concatenation) işareti -- Tek satır comment işareti /* */ -- Bir ve birden fazla satır commentleme JavaScript Karşılığı ; == != < > = + // /* */ If Komutu PL/SQL if (x = 'text' and not z) then y := 5; elsif (not z) then y := 0; else y := 1; end if; JavaScript Karşılığı if (x == 'text' && !z) { y = 5; } else if (!z) { y = 0; } else y = 1; Döngü Komutu Döngüden çıkma “exit” veya “exit when” ile olabilir. PL/SQL JavaScript Karşılığı loop i := i + 1; exit when i = 10; i:=i+2; end loop; do { i = i+1; if (i == 10) break, i=i+2; }while(true); While Döngüsü Komutu PL/SQL JavaScript Karşılığı while (i < 10 ) loop i := i + 1; end loop; while (i < 10) { i = i + 1; } For Döngüsü Komutu PL/SQL JavaScript Karşılığı for i in 0..10 loop null; end loop; for (var i=0; i<10; i++) { } Exceptionlar İçinde exception tanımlanan butun P/SQL blokları JavaScript'e derlenirken try-catch içerisine alınmalıdır. PL/SQL JavaScript Karşılığı declare e_invalidValue exception; v_total_nr number; begin v_total_nr := 1 + 2; raise e_invalidValue; exception when e_invalidValue then null; end; var e_invalidValue = 'invalid value'; var v_total_nr; try { v_total_nr = 1 + 2; throw e_invalidValue; } catch(exc) { if (exc == e_invalidValue) { } } Önemli Kaynaklar: İnternet'te PL/SQL öğrenmek için çok kaynak var ama aşağıdaki link iyi bir başlangıç olabilir: http://docs.oracle.com/cd/B19306_01/appdev.102/b14261/fundamentals.htm JacvaScript için http://www.w3schools.com/js/default.asp adresine bakılabilir. Yazacağınız programı test edebileceğiniz bazı örnek PL/SQL programları ve çıkması beklenen JavaScript versiyonlarını aşağıdaki gibidir: PL/SQL declare i number; begin i:=1; loop i:=i+1; exit when i=5; end loop; if i<10 then dbms_output.put_line('i 10''dan küçük'); else dbms_output.put_line('i 10''dan büyük'); end if; end; declare i number; j number; begin i:=1; j:=i+1; while i<10 loop loop j:=j+1; exit when j>25; j:=j+1; end loop; i := i + 1; end loop; if i<5 and j<50 then dbms_output.put_line('i 5''ten az. j 50''den az'); elsif i<10 and j<100 then dbms_output.put_line('i 10''dan az. j 100''den az'); else dbms_output.put_line('i''nin değeri '||i||'. j''nin değeri '||j||'.'); end if; end; JavaScript Karşılığı var i = null; i = 1; do { i = i+1; if (i == 5) break; } while(true); if (i<10) { console.log('i 10\'dan küçük'); } else { console.log('i 10\'dan büyük'); } var i = null; va j = null; i = 1; j = i + 1; while (i<10) { do { j = j + 1; if (j > 25) break; j = j + 1; } while(true); i = i + 1; } if (i<5 && j<50) { console.log('x 5\'ten az. j 50\'den az'); } else if (i<10 && j<100) { console.log('x 10\'dan az. j 100\'den az'); } else { console.log('i\'nin değeri ' + i + '. j\'nin değeri ' + j + '.'); } Not: İç içe döngüleri çevirmek ekstra puandır. Birinci dereceden olan döngüleri çevirmeniz yeterlidir.
Benzer belgeler
Online Katalog
x değişkenine 25 karakterden daha uzun bir değer girilemez. Böyle bir kısıtlamayı dikkate almadan JavaScript karşılığını aşağıdaki gibi vermeniz yeterlidir. PL/SQL
Detaylı