30 Nisan 2020 Perşembe

OPPA Programlama Dili



     Türkçe tasarlanan OPPA karmaşıklıktan uzak, kullanıcının rahatlıkla kodlama yapabileceği bir programlama dilidir. Bu dilde değişkenlere atanan değerler ve fonksiyonlar tip tanımı olmadan tanımlanır. Komut satırlarını birbirinden ayırmak için alt satıra geçmek yeterlidir. Kullanıcıdan değer almak için değişkenin başına “!!”, bir değişkenin içindeki değeri ekrana yazmak için ise değişkenin başına “$” yazılır. Yazdırma işlemi tırnak işareti ile belirtilmelidir.
     Aşağıda görüldüğü gibi “Başla” ve “Bitir” kelimeleri arasında program yazılır. Fonksiyonlar ise programın başında (“Başla” komutundan önce) tanımlanır. Fonksiyon gövdesi de “Başla” ve “Dur” kelimeleri arasında yazılır. Bir değer döndürecek fonksiyonlarda “gönder” anahtar kelimesi ile değer ana programa gönderilebilir. Fonksiyon parametreli veya parametresiz olarak tanımlanabilir.
      Değişken adları “toplam” gibi sadece kelimeden oluşabileceği gibi “uzunluk21” gibi sayı da içerebilir. Ancak bir değişken adı sayı ile başlayamaz. Ayrıca anahtar kelimeler değişken adı olarak kullanılamaz.
     Diziler harf, kelime, rakam ve sayı tutabilir. Elemanlar birbirinden “,” ile ayrılır. Örneğin: “A(1,2,3)” dizisi gibi…
     Döngüler iki türlü tanımlanabilir. Eğer döngüde başlangıç ve bitiş değeri varsa ve artış veya azalış miktarı belli ise sınırlı döngü tanımlayabiliriz. Örneğin “Dön 10 ile 0 arası -2 adım” gibi tanımlanabilir. Bu örnekte görüldüğü gibi negatif verilen adım sayısı başlangıç değerinden adım sayısı kadar azalarak bitiş değerine ulaşmayı hedefler. Diğer döngü tanımında ise verilen mantıksal ifade şartı sağlandığı sürece döngü devam eder. Örneğin ”Dön (sayı<10) ise” şeklinde tanımlanır. Döngü bitiminde “Döngü sonu” ifadesi yazılarak döngünün bittiği belirtilir.
     Koşul ifadeleri parantez içinde belirtilen şartın gerçekleşmesi durumunda belirtilen komutları işletir. Koşul ifadelerinin tanımında bulunan “Değilse” ifadesi ise belirtilen şartların gerçekleşmemesi durumunda belirtilen komutları işletir. Örneğin “Eğer (not ==100) ise”… “Eğer sonu” ifadesi yazılarak koşul ifadesinin bittiği belirtilir.

OPPA Programlama Dilinin Sözdizimi Kuralları


<program> -> Başla  <komutlar> Bitir

<komutlar> -> <komut>  | <komut>  <komutlar>

<komut> -> <değer>=<ifade> | <eğer> | <döngüler> | yazdır “$<değer>” | oku !!<değer> |
 <gönder><değer>  | yazdır <fonksiyon> | <fonksiyon>| <dizi tanımla>|yazdır “<kelime>”

<ifade> -> <değer><işleç><değer> | <değer> | “<kelime>” | <sayı> | <fonksiyon> | 
                  <sayı><işleç> <sayı> | <değer><işleç><sayı> | <sayı><işleç><değer>

<değer> -> <kelime><işaretsiz sayı> |<kelime>

<eğer> -> Eğer (<mantıksal ifade>) ise  <komutlar>  Eğer sonu |
                 Eğer (<mantıksal ifade>) ise <komutlar> Değilse  <komutlar> Eğer sonu

<döngüler> -> <sınırlı döngü> | <döngü>

<sınırlı döngü> -> Dön <sayı> ile <sayı> arası <sayı> adım  <komutlar> Döngü sonu

<döngü> -> Dön (<mantıksal ifade>) ise  <komutlar> Döngü sonu

<dizi tanımla> -> <değer>(<sayı dizisi>) | <değer>(<kelime dizisi>)

<sayı dizisi> -> <sayı> | <sayı>,<sayı dizisi>

<kelime dizisi> -> “<kelime>” | “<kelime>”,<kelime dizisi>

<fonksiyon> -> <fonksiyon başı>  <fonksiyon gövdesi>

<fonksiyon başı> -> fonksiyon <değer> | fonksiyon <değer>(<parametreler>)

<fonksiyon gövdesi> -> Başla  <komutlar> Dur

<parametreler> -> <değer> | <değer>,<parametreler>

<mantıksal ifade> -> <değer><karşılaştırma işareti><değer> | <mantıksal ifade> ve
                              <mantıksal ifade> | <mantıksal ifade> veya <mantıksal ifade> |
                              <değer><karşılaştırma işareti><sayı>

<kelime>-> <harf>|<harf><kelime>

<harf> -> a | b | c | ç | d | e | f | g | ğ | h | ı | i | j | k | l | m | n | o | ö | p | r | s | ş | t | u | ü | v | y |               z | A | B | C | Ç | D | E | F | G | Ğ | H | I | İ | J | K | L | M | N | O | Ö | P | R | S | Ş | T | U |             Ü | V | Y | Z

<karşılaştırma işareti> -> == | != | < | > | <= | >=

<işleç> -> + | - | * | / | % | ** | //

<sayı> -> +<işaretsiz sayı> | -<işaretsiz sayı> |<işaretsiz sayı>

<işaretsiz sayı> -> <rakam> | <rakam > < işaretsiz sayı >

<rakam> ->0 | 1 |  2 | 3 | 4 | 5 | 6  | 7 | 8 | 9

<anahtar kelimeler> -> Başla | Bitir | Dön | ise | arası | Döngü sonu | Eğer | Değilse | Eğer sonu | ile | yazdır | oku | ve | veya | Dur | fonksiyon | gönder


OPPA ile Hipotenüs Hesaplama Programı


Fonksiyon hipHesapla(x,y)
                Başla
                xKare=x**2
                yKare=y**2
hipKare=xKare+yKare
hip=hipKare//2
gönder hip
Dur
Başla
                Yazdır “Üçgenin dik kenar uzunluklarını giriniz.”
                oku !!sayı1
oku !!sayı2
                hipotenüs=hipHesapla(sayı1, sayı2)
                yazdır “hipotenüs=$hipotenüs”
Bitir


Hiç yorum yok:

Yorum Gönder