Development of Dynamic Engine and Graphical User Interface Software for Railw...Mahmut Bulut
油
TREN S聴MLATR 聴聴N D聴NAM聴K MOTOR VE
KULLANICI ARAYZ YAZILIMI GEL聴T聴RME
* MAHMUT BULUT
* L聴SANS TEZ聴
* OG Bilgisayar M端hendislii B旦l端m端
SUMMARY
In future for all the world, air pollution from emission from motor vehicles and economic problems in conjunction with this reason oblige to use rail transportation systems in public transportation increasingly. According to research, major part of Turkey is going to be weaved with rail system networks in the next 20 years.In this case, it is necessary to increase number of educated machinist. Using train simulators is the best economic and fast solution to educate machinist.This driving simulation products help beginner machinist, preparing them for real drive and teaching them how to use train in every conditions. Context of this report contains real-time simulation of railway systems and train dynamic engine software interface for test driving of machinists who are employee of TCDD. All the main theme relies on this subject.
Rust programming language introduction book for Turkish developers.
It is just the first version, so it will be updated during the development of Rust.
Mahmut Bulut
=================
Bu kitap Rust programlama diline basit bir giri olmas脹 niteliinde yaz脹ld脹, dilin kul-
lan脹m脹n脹 artt脹rmak ve T端rk gelitiricilere/kullan脹c脹lara dili tan脹tmak amac脹 g端t-
mektedir. Rust u anda prototip seviyesinde olduundan; keskinletirilmi ve
yap脹n脹n iskeletini oluturan k脹s脹mlar脹 buraya ald脹m. Dilin daha 端zerinde tart脹脹lan
ve gelecek versiyonlar脹nda yer alacak t端m semantik ve sentaks yap脹s脹 bu kitab脹n
i巽eriinde deildir. Rust脹n derin semantik yap脹s脹na ve 巽ekirdek ilkelerine deinerek
okuyucu zorlamak istemediimden basit ve sade, g端nl端k hayatta kullan脹labilecek
cinsten 旦rnekler vermeye 旦nem verdim. Kitap Rusta yeni balayanlar ve ilgi duy-
anlar i巽in birebirdir. Ayr脹ca bu kitap Rust programlama dilinin yaz脹ld脹脹 zamana
ait T端rk巽e d旦k端mantasyonu olma 旦zelliini de ta脹r. T端rk巽e biliim terminolojisine
girmeyen ama yeni tan脹mlanm脹 baz脹 terimleri de T端rk巽eye kazand脹rmak amac脹
da g端tmektedir.
http://www.slideshare.net/AhmetGrel1/linuxa-giris-ve-kurulum
Bu d旦k端man linkte ki bir 旦nceki d旦k端man脹n devam脹d脹r.Bu sunumda Temel Linux Kullan脹m脹 ve Komutlar脹n脹 anlatmaya 巽al脹t脹m.inize yaramas脹 dileiyle iyi 巽al脹malar.Soru,g旦r端 ve 旦nerileriniz i巽in ahmetgurel.yazilim@gmail.com a mail atabilirsiniz.
http://www.slideshare.net/AhmetGrel1/linuxa-giris-ve-kurulum
Bu d旦k端man linkte ki bir 旦nceki d旦k端man脹n devam脹d脹r.Bu sunumda Temel Linux Kullan脹m脹 ve Komutlar脹n脹 anlatmaya 巽al脹t脹m.inize yaramas脹 dileiyle iyi 巽al脹malar.Soru,g旦r端 ve 旦nerileriniz i巽in ahmetgurel.yazilim@gmail.com a mail atabilirsiniz.
1. Kitaplardan 旦nce kendimizi okumaya 巽al脹al脹m. - Mevlana
Kabuk programlama
B旦l端m 1 : Kabuk programlamaya giri / Deikenler, arimetrik ilemler, Giri/巽脹k脹
ilemleri
Kabuk nedir ?
Linux sistemlerde komutlar脹 yorumlamak/ y旦netmek i巽in kullan脹lan programa Kabuk / shell
denir. Kabuk t端m linux s端r端mlerinde vard脹r ve olmas脹da zorumludur. Kabuk Linuxu Linux yapan en
temel etmendir. Kabuk yard脹m脹yla iletim sisteminize komutlar vere bilir, cekirdee kadar etkiyip,
sistemi kendiniz yap脹land脹ra bilirsiniz.
聴nan脹yorum ki, bu yaz脹y脹 okuyan arkadalar en az bir kere Linux 聴S kullanm脹lard脹r. Evet Linux
kullanana arkadalar Linuxda Komut satr脹nda (Terminal) en az 1 kere omut vermilerdir. 聴te o
terminal bir KABUK YORUMLAYICISI`d脹r.
Elbette 巽eitli kabuk t端rleri vard脹r :
Bash (sh) - Bash kabuu ilk UNIX sistemlerinde hem sh ve ksh kabuklar脹, hem de baz脹 csh
旦zellikleri i巽in orjinal olarak gelitirilen 旦zellikleri i巽erir. ou LINUX sisteminde varsay脹lan
kabuktur. Her kabuun kendine 旦zg端 programlama dili yap脹s脹 vard脹r. Bash kabuu ise g端巽l端
programlama 旦zellikleriyle karma脹k programlar脹n rahat巽a yaz脹lmas脹na izin verir. Mant脹ksal
operat旦rler, d旦ng端ler, deikenler ve modern programlama dillerinde bulunan pek 巽ok 旦zellik
bash kabuunda da vard脹r ve ileyi tarzlar脹 da hemen hemen ayn脹d脹r. Bash 巽eitli uyumluluk
kiplerinde 巽al脹t脹r脹labilir, b旦ylece farkl脹 kabuklar gibi davranabilmektedir.
Tcsh (csh) - C Kabuunun (csh) a巽脹k kaynak versiyonudur. Bu kabuk 巽ou Berkeley UNIX
sistemlerde varsay脹nlan kabuk olarak kullan脹l脹r. Bu kabukla birlikte dahil edilen TENEX ve TOPS-
20 iletim sistemlerinin 旦zellikleri tcsh i巽indeki T'den sorumludur. Orjinal csh kabuunun komut
sat脹r脹 d端zenleme ve ge巽miin ileyii gibi 旦zelliklerin 巽ou hem tcsh'te hem de dier kabuklarda
bulunan bir 旦zelliktir. Bir baka deile ger巽ekte csh kabuunu balatmak csh uyumlu kipte tcsh
kabuunu balatmakt脹r.
Ash - UNIX sh kabuunun ufak bir versiyonudur. sh kabuunun 巽ou 旦zelliini bar脹nd脹rmaz.
komut ge巽mileri gibi. ash kabuu daha az sistem kayna脹na sahip g旦m端l端 sistemler i巽in g端zel
2. bir kabuktur. bash kabuunun boyutunun yakla脹k yedi de biri kadar bir boyutu vard脹r. (bash
kabuu yakla脹k 712k'd脹r.ask kabuu ise 100k'l脹k bir boyuta sahiptir).
Ksh - ksh kabuu sh kabuunun atas脹d脹r. UNIX V sistemlerin varsay脹lan kabuudur. ksh'脹n a巽脹k
kaynak versiyonu pdksh paketinin bir par巽as脹 olarak 巽ou rpm tabanl脹 sistemde orjinal olarak
bulunur.
Zsh - zsh kabuu ise sh kabuunun klonlar脹ndan biridir. POSIX uyumludur (bash gibi). ancak
yaz脹m denetimi ve komut d端zenlemeye farkl脹 yakla脹m gibi 旦zellikler i巽erir. ilk Mac OS X
sistemleri zsh kabuunu varsay脹lan kabuk olarak kullanm脹t脹r. ancak uanda varsay脹lan kabuk
bash kabuudur.
Evet arkadalar kulland脹脹n脹z Kabuu 旦renmek istiyorsan脹z ...
Komut :
root@mikayil:~# echo $SHELL
Evet arkadalar g旦rd端端n端z gibi ben Bash kabuunu kullan脹yorum.
3. Bal脹yoruz...
Evet arkadalar imdi ge巽elim yaz脹m脹z脹n esas k脹sm脹na.
Her kabuun kendine has bir programlama dili yap脹s脹 vard脹r. Bash kabuu da kendi 旦zellikleriyle
karma脹k programlar脹n (scriptlerin) yaz脹lmas脹na izin vermektedir. Normal programlama dilleri gibi ayn脹
Bash programlamada da D旦ng端ler, deikenler ve s vard脹r. K脹saca daha iyi ekilde s旦ylersek Bash
programlama karma脹k komutlar脹 bir araya getirilmi ve b端y端t端lm端 halidir. rnein Ubuntu
da脹t脹m脹na Kali Linux yaz脹l脹mlar脹n脹 kurmak istiyorsunuz. Her defas脹nda bir bir kurmaktansa bunu bir
program halinde kodlay脹b uzun komutlar脹 tek bir Enterle evezleye bilirsiniz...
Bash programla dilininin uzant脹s脹 .sh d脹r
Balayal脹m...
聴lk 旦nce kendi i巽i m端hitimizi yaratal脹m.
Bize gereklidir.
Bilgisayar (Laptop ve ya PC farketmez)
Elektrik (art)
Linux OS (Kali, Ubuntu ve sair debian tabanl脹)
Metin d端zenleyici (Nano, Geany ve s)
Bu programlama dilini 旦renmek i巽in Linux komutlar脹ndan anlay脹脹n脹z olmal脹d脹r. 聴nternetden kolayl脹kla
temel linux komutlarini bula bilirsiniz.
Echo ekrana yaz脹 yazd脹rma
4. Ekrana yaz脹 yazd脹rmak istiyorsan脹z arkadalar
echo yaz脹n脹z
eklinde kod yazacaks脹n脹z arkadalar. imdi ben nano edit旦r端 kulland脹脹m i巽in bu ilk program脹
oluturmak i巽in ctrl+x tular脹na bas脹yoruz.
Y tuuna basarak devam ediyoruz.
Gelen pencerede dosyaismi.sh yazarak enterliyoruz.
G旦rd端端n端z gibi program脹m脹z burada. imdi 巽al脹tiral脹m..
5. Program脹m脹za gerekli izinleri vermediimiz i巽in 巽al脹mayacakt脹r.
Aynen bu ekilde hata al脹caks脹n脹z.
Komut
chmod a+x pro.sh
G旦rd端端n端z gibi program脹m脹za izin vermek zorunday脹z.
D聴KKAT : Programda her yap脹lan deiikliklere g旦re bu ilem tekrarlanmaz. Bu ilem yaln脹zca bir
kere yap脹lmaktad脹r.
imdi s脹ra geldi program脹m脹z脹 巽al脹t脹rmaya
Komut
./pro.sh
6. ve g旦rd端端n端z gibi ekranda yaz脹m脹z脹 yans脹tt脹.
Deikenlerin kullan脹m脹.
Programlama ile meul olan arkadalar bu termine ainad脹rlar. Deikenler bir veriyi kendinde
sakl脹yorlar. Programc脹 o verini kullanmak istedikte bir daha o veriyi diyil deikeni yaz脹yorlar. rnein
cumle = Galatasaray ak脹 baka akt脹r ben her defas脹nda programda bir yerlerde o uzun c端mleyi
yazmak yerine yaln脹zca cumle (Deikeni) yazarak o uzun c端mleyi programa dahil ediyorum.
Deikenler programlama dilinde 巽ok yayg脹n kullan脹l脹yor. Hatta temelidir. Deiken yard脹m脹yla
Matematiksel ilemler, Kullan脹c脹dan veri almak ve sair yap脹l脹yor.
Bash dilinde deikenler alfabetik ve say脹sal deerler ola bilir. Fakat Deikenler say脹sal
karakterlerle balayamaz. Deikenler dahilinde _ karakteri de kullan脹la bilir.
imdi bir kodumuza bakal脹m..
7. Evet arkadalar. 聴te kodlar脹m脹z脹 yazd脹k. Deikeni kullanmak i巽in $ karakterini kullanmak zorumludur.
Yukar脹dak脹 # karakteri ise her kesin bildii gibi satr脹 yorumlamaktad脹r. Yani program 巽al脹t脹脹 zaman o
satr脹 okuyamaz.
G旦rd端端n端z gibi deikenimizi kullanarak ekrana yaz脹m脹z脹 yazd脹rd脹.
Giri / 脹k脹 ilemleri
Evet bir program yazacaksan脹z mutlaka kullan脹c脹dan bilgi al脹nmak gereklidir. Pythonda bu ii
input yapar. Bash programlamada ise bu ii read parametresi yapmaktad脹r.
8. Yukar脹dak脹 kodlara bakarsan脹z en esas dikkatinizi read fonksiyonun kar脹s脹ndak脹 ad kelimesi dikkatinizi
巽ekecektir. Bu bir deiken dikkat ederseniz zaten aa脹da $ parametresiyle kulland脹m. Kullan脹c脹 veriyi
girdikte ad deikeninde saklan脹r.
G旦rd端端n端z gibi girdiim isim ekrana yans脹t脹ld脹.
Arimetrik ilemler..
Evet arkadalar imdi s脹ra matematiksel ilemlerde. Bash dilinde matematiksel ilemler yapmak
m端mk端nd端r. Bunun i巽in en 巽ok kullan脹lan let ve typeset fonksiyonlar脹d脹r.
let deiken=ilem
imdi yukar脹dak脹 koda dikkat ettiyseniz let dahilinde yap脹lan ilemde bir cevab deikeni de ilave
ediliyor. rnein yukar脹dak脹 kodda cavab=a*b cavab matematiksel ilemin deikeni olmutur.
9. Ve g旦rd端端n端z gibi ilemi yapm脹t脹r arkadalar.
typeset ile
Evet arkadalar imdi diger metoda ge巽elim
typeset -i deiken
deiken=ilem
echo $deiken
Evet arkadalar g旦rd端端n端z gibi burada typeset i deikeni belirledikten yazd脹ktan sonra altta ilemi
g旦r端yorsunuz.
Fark bu arkadalar.
10. G旦rd端端n端z gibi. Ilem yine baar脹l脹 ekilde yerine yap脹ld脹.
Ve bir de arkadalar. L端tfen unutmayal脹m ki, bash dilinde yaln脹zca tam say脹lar hesaplana
bilinmektedir.
/Sayg脹larla
Mikay脹l 聴lyasov
2019 Cyber-warrior.org