Programlama

Programlama

Programlama ya da diğer adıyla yazılım, bilgisayarın donanıma nasıl davranacağını anlatan, bilgisayara yön veren komutlar, kelimeler, aritmetik işlemlerdir.Diğer bir tanım verecek olursak programlama, bilgisayar programlarının yazılması, test edilmesi ve bakımının yapılması sürecine verilen isimdir. Wikipedia

Scratch: Programlama öğrenmenin zevkli ve kolay yolu

Özellikle meslek liselerinin ilk yılında verilmeye çalışılan programlama mantığını öğrenmek öğrenci açısından bazen zor olabiliyor. Scratch programı Türkiye'de henüz yaygın olmasa bile dünyada uzun zamandır...

Proton Basic için PIC config sigortaları

XT_OSC: Devrede kullanılan osilatörün 0.1MHz ile 4MHz arasında bir hızda olduğunu belirtir. HS_OSC: (High Speed Osilatör) Devrede kullanılan osilatörün 4MHz’den yüksek olduğunu belirtir. WDT_OFF: Watch Dog...

Delphi’de access violation hatalarını gidermek

Access violation hatası belleğin işlem yapılan konumunun okunamamasından veya yazılamamasından kaynaklanır. Hata mesajında hataya neden olan kodun segment ve ofset adresleri bildirildiğinden programcının hatanın yerini tespit etmesi zordur. Benzer sorunlar sıfıra bölme (zero division) ve yığın taşması (stack overflow) gerçekleştiğinde de olur.

Delphi programlarında bu tür sorunlara neden olan kod satırlarını tespit münkündür. Bunun için Project->Options...->Linker ekranındaki Map file ayarı Detailed olarak ayarlanır. Bundan sonra her derleme işleminde uzantısı map olan bir bellek harita dosyası oluşturur.

Bu dosyada program  kod satırlarınıa karşılık gelen makina kodlarının ofset adresleri yer alır. Böylece hatanın oluştuğu bellek adresinin hangi kod satırına karşılık geldiği bulunabilir.


Hatalı kod satırını daha düzgün ve ayrıntılı olarak raporlayabilmek için uLkStackTrace class'ını kullanabiliriz. uLkStackTrace Mozilla lisansıyla dağıtılan bir SourceForge.net projesi.

uLkStackTrace sınıfınınkullanıldığı örnek proje dosyasını aşağıdaki bağlantı ile indirebilirsiniz:



UnhandledExceptions_DelphiSourceCode.rar (~241KB)<


Örnek projede de görüleceği üzere, sınıfın kullanılmasından kısaca bahsetmek  gerekirse;
  • Uses bloğuna uLkStackTrace unit ismini ekleyin.
  • İstisnaları ekrana veya bir dosyaya rapor edecek bir prosedür hazırlayın.
  • LkExceptionReporter yordamına bu prosedürü atayın.
  • Rapor prosedürünü Form.Create'in başına yazmayı unutmayın.

Delphi: "Invalid argument to date encode" hatasını gidermek

TIdHttp içinde aniden peydahlanan bu sorun kodun ele aldığı tarih bilgisinin, daha doğrusu tarih formatının önceden varsayıldığı gibi olmamasından kaynaklanıyor. Aslında bu sorunun çözümü...

C++ dosya şifreleme programı

Üniversite zamanlarında (2002) ödev olarak yazdığım bir dosya şifreleme programı daha (Okocas Encoder)... O zamanlar ne çok seviyormuşum şifrelemeyi. Demek ki o zaman da...

Yarım kalmış bir PHP projesi: e-Okul

e-Okul, muazzam sayıda bit(irile)memiş projenin yer aldığı kod arşivimden bir e-devlet atraksiyonu. 2004 yılında nice umutlarla giriştiğim bu işin ömrü nedense pek fazla ol(a)madı. Ana fonksiyonlarının bir kısmı tamamlamış olmama...

Visual 6502 Simülatörü

Visual Mikroişlemci Simülatörü, Teknik Eğitim Fakültelerinin Elektronik ve Bilgisayar Eğitimi Bölümlerinde okutulmakta olan Mikroişlemciler dersinin laboratuvar uygulamalarını karşılamak amacıyla hazırlanmıştır. Laboratuvar uygulamaları için eldeki...

Hour of Code: Kodlama Saati ile 4’ten 104’e Herkes için Programlama

Kodlama Saati 180'den fazla ülkede gerçekleşen 10 milyonlarca öğrenciye ulaşmış küresel bir harekettir. Herkes dünyanın herhangi bir yerinde herhangi bir Kodlama Saati etkinliğini organize...

Pardus Linux ile Paralel Port (LPT) kontrolü

Linux'da paralel port kontrolü diğer işletim sistemlerine göre oldukça kolay. Tek bir satır C kodu ile porta değer göndermek mümkün. Örneğin; outb((unsigned char)255, 0x378); outb komutu birinci...

Varnish, Child not responding to CLI, killing it.

1 haftadır zaman zaman varnish cache sunucusu, çöküyor watcheri bunu algılıyor killiyor, buraya kadar bir sorun yok ama ne hikmetse tekrar başlatmıyor ve servis kapalı kalıyor. Hata...

Tetris oyunu Pascal kaynak kodu

Teknik lise son sınıf  stajında boş zamanlarımda yazdığım Tetris oyunu hala oynamakta zevk aldığım bir oyun. Zorlaşan aşamalardan oluşuyor ve her aşamada puan topluyorsunuz....

Assembly dosya şifreleme programı

Üniversite zamanlarında (2002) Mikroişlemciler (x86) dersi ödevi olarak yazdığım dosya şifreleme programım OEN (Okoca's Encoder) Programın çalışma mantığı çok basit. Dosyanın Byte'larını verilen parolanın...

Assembly Programlama Dili (eKitap )

Bu dokümanda Fehmi Noyan İSİ tarafından hazırlanan, Intel firmasının 80x86 serisi olarak nitelendirilen 8086, 80186, 80286, 80386,80486 ve Pentium işlemcileri için 16-bit...

ÖSS puanı hesaplama programı

Lise yıllarında yazdığım (1999) pull-down menülü ve pencere sistemli ufak bir program. O yıllar pull-down menü yapmak çok teknolojik bir şeydi. Güzel zamanlardı programcılık...

PHP ile Paralel Port (LPT) Kontrolü

Bir önceki yazımda Pardus Linux üzerinde LPT kontrolünün nasıl yapılacağını anlatmıştım. Şimdi bu işi bir adım daha ileri götürerek paralel port kontrolünü PHP ile...

PIC Basic’de PORTA’yı çıkış olarak kullanmak

PIC16F877 üzerinde denemeler yaparken PORTA'yı her yazışımda sıfırlandığını gördüm. Örneğin aşağıdaki kod çalıştıktan sonra yanık kalan tek led PORTA.1'e bağlı olandı. PORTA'nın herhangi bir...

Çalışan programı silmek

Çalışan bir programın kendi dosyasını silebilmesi çalışan başka bir programınkini silmesinden daha kolaydır. Belki de bu konuda denemelerde bulunmuş olanlar vardır. Windows işletim sistemi, çalışan...

Yazarlar

680 İÇERİKLER58 YORUMLAR
6 İÇERİKLER0 YORUMLAR