Gönderen Konu: Bloodshed Dev-C++'ta Çalışıp Kapanan Programlar  (Okunma sayısı 41081 defa)

Çevrimdışı Çağatay ÇEBİ

  • Çağatay ÇEBİ
  • Admin
  • Üye
  • İleti: 535
    • Profili Görüntüle
    • Özgür Yazılım Sayfaları
Bloodshed Dev-C++'ta Çalışıp Kapanan Programlar
« : 15 Oca 2008, 23:52:25 Sal »
Bu konuyla ilgili çok soru aldım ve defalarca yanıtladım.

Bloodshed Dev-C++ kullanan okuyucularımdan bir kısmı, programı yazıp çalıştırdıklarında, programın hızlı bir şekilde çalışıp kapanmasından şikayetçi...

C Programlama Dersi-II'de Bloodshed Dev-C++'in kullanımını anlatmıştım. Bir daha tekrara gerek duymuyorum. Okuyucularımın birçoğunun anlatım esnasında dikkat etmediği ufak bir ayrıntı gizli.

Verdiğim örnek programa bakalım:

Kod: [Seç]
#include<stdio.h>
int main( void )
{
   // Hello World yazar.
   printf( "Hello World" );
   // Sizden herhangi bir giriş bekler.
   // Böylece program çalışıp, kapanmaz.
   getchar( );
   return 0;
}

return'den önce koyulan getchar() ifadesi (bazı durumlarda, getch() ya da getc() da olabilir) programın kapanmasını engeller. Program o noktada durur ve sizin klavyenin herhangi bir tuşuna basmanızı bekler; siz basana kadar da çalışmayı keser.

Çağatay
« Son Düzenleme: 16 Oca 2008, 00:04:15 Çrş Gönderen: Çağatay ÇEBİ »
Her akşam yatmadan önce Tanrı'ya bana bir bisiklet vermesi için dua ederdim. Bir gün Tanrı'nın çalışma tarzının bu olmadığını anladım. Ertesi gün gittim ve kendime yeni bir bisiklet çaldım ve her akşam yatmadan önce Tanrı'ya günahlarımı affetmesi için dua ettim. Al Capone
--
http://www.cagataycebi.com

mrercan

  • Ziyaretçi
Ynt: Bloodshed Dev-C++'ta Çalışıp Kapanan Programlar
« Yanıtla #1 : 16 Oca 2008, 01:09:47 Çrş »
merhabalar . oncelikle te$ekkur ediyorum sitenizde payla$tııgınız bilgiler için . gerçekten cok faydalı oldu benim için. Programlama adına çok ba$langıc seviyesindeyim ve bende dev-c kullanıyorum. ancak getchar() komutu bazen programın kapanmasını engellemiyor . ve bende onun yerine yeni bir int tanımlayarak scanf () komutunu kullanıyorum . ama merak da ediyorum herseferinde bunu yapmamız $artmı acaba ?

Çevrimdışı Çağatay ÇEBİ

  • Çağatay ÇEBİ
  • Admin
  • Üye
  • İleti: 535
    • Profili Görüntüle
    • Özgür Yazılım Sayfaları
Ynt: Bloodshed Dev-C++'ta Çalışıp Kapanan Programlar
« Yanıtla #2 : 16 Oca 2008, 01:13:48 Çrş »
Elbetteki şart değil ama o zaman programın sonucu göremezsiniz  :)

Programın sonucu görmek için bu tarz bir durma noktasına gerek duyuluyor. Ama her zaman olması gerekir diye bir şart yok. Mesela, Windows kullanıyorsanız, DOS komut kipini açıp, programınızı buradan çalıştırın. Programın sonucunun gitmediğini göreceksiniz. Ama tekli denemelerde, getchar gibi fonksiyonlar oldukça yararlı...
Her akşam yatmadan önce Tanrı'ya bana bir bisiklet vermesi için dua ederdim. Bir gün Tanrı'nın çalışma tarzının bu olmadığını anladım. Ertesi gün gittim ve kendime yeni bir bisiklet çaldım ve her akşam yatmadan önce Tanrı'ya günahlarımı affetmesi için dua ettim. Al Capone
--
http://www.cagataycebi.com

Ruby

  • Ziyaretçi
Ynt: Bloodshed Dev-C++'ta Çalışıp Kapanan Programlar
« Yanıtla #3 : 16 Oca 2008, 11:52:19 Çrş »
#include ile <stdlib.h> başlık dosyamızı eklesek ardından return 0; dan hemen önce system("PAUSE"); desek olmaz mı? :)

Bu yöntemin eksileri:

- Taşınabilirliği düşürür.

« Son Düzenleme: 16 Oca 2008, 12:03:03 Çrş Gönderen: Ruby »

Çevrimdışı Çağatay ÇEBİ

  • Çağatay ÇEBİ
  • Admin
  • Üye
  • İleti: 535
    • Profili Görüntüle
    • Özgür Yazılım Sayfaları
Ynt: Bloodshed Dev-C++'ta Çalışıp Kapanan Programlar
« Yanıtla #4 : 16 Oca 2008, 13:14:16 Çrş »
Ben Linux'ta terminal üzerinden çalıştığım için, programın birden kapanması gibi dertler yaşamıyorum. Aslında Windows kullanıcıları, derlenen programları, DOS komut satırından çalıştırırsa, onlarda problem yaşamayacaktır.

Programın kapanmasını engellemek için alternatif yöntemler elbette kullanılabilir. Karar kullanıcıya kalmış.

Çağatay
Her akşam yatmadan önce Tanrı'ya bana bir bisiklet vermesi için dua ederdim. Bir gün Tanrı'nın çalışma tarzının bu olmadığını anladım. Ertesi gün gittim ve kendime yeni bir bisiklet çaldım ve her akşam yatmadan önce Tanrı'ya günahlarımı affetmesi için dua ettim. Al Capone
--
http://www.cagataycebi.com

semix

  • Ziyaretçi
Ynt: Bloodshed Dev-C++'ta Çalışıp Kapanan Programlar
« Yanıtla #5 : 16 Oca 2008, 18:01:58 Çrş »
Acaba derleyiciler arasında farklar olabilir mi?Bloodshed Dev-C++ de yazıp derlediğimiz bir program başka bir derleyici mesela Borland C++ 'ın herhangi bir versiyonunda derlesek bir problem olur mu ???

Çevrimdışı Çağatay ÇEBİ

  • Çağatay ÇEBİ
  • Admin
  • Üye
  • İleti: 535
    • Profili Görüntüle
    • Özgür Yazılım Sayfaları
Ynt: Bloodshed Dev-C++'ta Çalışıp Kapanan Programlar
« Yanıtla #6 : 16 Oca 2008, 20:12:27 Çrş »
Acaba derleyiciler arasında farklar olabilir mi?Bloodshed Dev-C++ de yazıp derlediğimiz bir program başka bir derleyici mesela Borland C++ 'ın herhangi bir versiyonunda derlesek bir problem olur mu ???

Merhaba,

Borland C++ Builder ya da Microsoft Visual C++ gibi program geliştirme ortamları mevcut. Bunlar standart C için kullanılmıyor. C programlama dilinin yapısı ortadadır. İsteyen firma bunu alır, değiştirir, kendince bir dil üretir. Dilerse syntax'i, dilin gramerini aynı da bırakabilir, dilerse de değiştirebilir. Mesela, C#'in böyle isimlendirilmesinin bir nedeni budur. C++ temelinden yola çıkılarak geliştirilmiştir.

İsimler insanların kafasını karıştırıyor. Karıştırması da normal. C++ dilinin bir standartı olması için insanlar yıllarca bekledi. Galiba C++ diline standart 1998 gibi geldi. (Tam hatırlamıyorum, yanılıyor olabilirim.) Bu zamana kadar C++'in birçok versiyonu bulunuyordu. (Gerçi hâlâ da bulunuyor.)

Biraz uzattım. Ancak bu bilgi önemli. Aynı isim geçtiği için ortadaki ürünün aynı olduğunu düşünmeyin. Mesela Java'dan bir örnek vereyim. Şu an Java tek bir dil fakat derleyicisinden, çalıştırma ortamına kadar birçok farklı kişi/kurum tarafından farklı farklı uyarlaması yapılmış durumda. Diyelim ki Java ile ekrana "Hello World" yazacak bir uygulama yapacaksınız; yazacağınız uygulamanın kodu aynıdır. System.out.println("Hello World") yazarsınız. Fakat bunu Sun'in javac'i farklı derlerken, GNU'nun gcj'si başka türlü derler. Ortaya çıkan ürün aynıdır. Ama çalışırken arka planda makineyle kurulan iletişim farklıdır.

Benim sitemde anlattığım dersler, ANSI C ile anlatılmış; halbuki Borland Builder ya da Visual C++, firmaların kendi geliştirdikleri C versiyonları için inşa edilmişler. Bu nedenle burada bulunan bütün kodları çalıştırabileceğinizden emin değilim. Elbette çalışabilir de... Bu geliştirilen yeni dilin, eski dilden ne kadar uzaklaştığına bağlı olarak olumlu ya da olumsuz olabilir. Firmaların Internet sitesinden, uyumu daha iyi saptayabilirsiniz. Ancak 3 yıl önce Borland C++ Builder ile yaptığım bir projede, standart C++ ile tam uyumlu olmadığını görmüştüm. Visual C++ için durumu bilmiyorum.

Çağatay
Her akşam yatmadan önce Tanrı'ya bana bir bisiklet vermesi için dua ederdim. Bir gün Tanrı'nın çalışma tarzının bu olmadığını anladım. Ertesi gün gittim ve kendime yeni bir bisiklet çaldım ve her akşam yatmadan önce Tanrı'ya günahlarımı affetmesi için dua ettim. Al Capone
--
http://www.cagataycebi.com

kcetinkaya

  • Ziyaretçi
Ynt: Bloodshed Dev-C++'ta Çalışıp Kapanan Programlar
« Yanıtla #7 : 16 Oca 2008, 21:06:59 Çrş »
Programcılığa yeni başlayan arkadaşlara benim tavsiyem derleyici olarak turbo c compiler, borland c/c++ compiler 5.5 gibi dos tabanlı "free" compiler lar kullanmaları olacak. Borland studio, visual c++ gibi platformlarda kafa karıştıran o kadar çok şey var ki. En azından ben çok zorluk çekmiştim. Hem böylece lisansız üründe kullanmamış oluruz değil mi ? :) Ayrıca dos altında derleme düzenleme çalıştırma işlemlerini yapmak bana çok daha hoş geliyor. :)


semix

  • Ziyaretçi
Ynt: Bloodshed Dev-C++'ta Çalışıp Kapanan Programlar
« Yanıtla #8 : 17 Oca 2008, 00:01:42 Prş »
Acaba derleyiciler arasında farklar olabilir mi?Bloodshed Dev-C++ de yazıp derlediğimiz bir program başka bir derleyici mesela Borland C++ 'ın herhangi bir versiyonunda derlesek bir problem olur mu ???

Merhaba,

Borland C++ Builder ya da Microsoft Visual C++ gibi program geliştirme ortamları mevcut. Bunlar standart C için kullanılmıyor. C programlama dilinin yapısı ortadadır. İsteyen firma bunu alır, değiştirir, kendince bir dil üretir. Dilerse syntax'i, dilin gramerini aynı da bırakabilir, dilerse de değiştirebilir. Mesela, C#'in böyle isimlendirilmesinin bir nedeni budur. C++ temelinden yola çıkılarak geliştirilmiştir.

İsimler insanların kafasını karıştırıyor. Karıştırması da normal. C++ dilinin bir standartı olması için insanlar yıllarca bekledi. Galiba C++ diline standart 1998 gibi geldi. (Tam hatırlamıyorum, yanılıyor olabilirim.) Bu zamana kadar C++'in birçok versiyonu bulunuyordu. (Gerçi hâlâ da bulunuyor.)

Biraz uzattım. Ancak bu bilgi önemli. Aynı isim geçtiği için ortadaki ürünün aynı olduğunu düşünmeyin. Mesela Java'dan bir örnek vereyim. Şu an Java tek bir dil fakat derleyicisinden, çalıştırma ortamına kadar birçok farklı kişi/kurum tarafından farklı farklı uyarlaması yapılmış durumda. Diyelim ki Java ile ekrana "Hello World" yazacak bir uygulama yapacaksınız; yazacağınız uygulamanın kodu aynıdır. System.out.println("Hello World") yazarsınız. Fakat bunu Sun'in javac'i farklı derlerken, GNU'nun gcj'si başka türlü derler. Ortaya çıkan ürün aynıdır. Ama çalışırken arka planda makineyle kurulan iletişim farklıdır.

Benim sitemde anlattığım dersler, ANSI C ile anlatılmış; halbuki Borland Builder ya da Visual C++, firmaların kendi geliştirdikleri C versiyonları için inşa edilmişler. Bu nedenle burada bulunan bütün kodları çalıştırabileceğinizden emin değilim. Elbette çalışabilir de... Bu geliştirilen yeni dilin, eski dilden ne kadar uzaklaştığına bağlı olarak olumlu ya da olumsuz olabilir. Firmaların Internet sitesinden, uyumu daha iyi saptayabilirsiniz. Ancak 3 yıl önce Borland C++ Builder ile yaptığım bir projede, standart C++ ile tam uyumlu olmadığını görmüştüm. Visual C++ için durumu bilmiyorum.

Çağatay

Bilgilendirme için teşekkür ederim.C dilinde standarlaşmayla ilgili biraz arasdırdım=) elimdeki bir kitapda " ANSI(American National Standart Institute) 1983 yılında X3J11 adlı bir grup oluşturarak C dilinde standartlaşmaya gidilmesine ön ayak olmuştur." diye bir satıra rastladım.Kendi bilgisayarımda Bloodshed Dev-C++ yüklü nedense onu kullanmak bana daha cazip geldi fakat okulda Borland C++ yanlıs hatırlamıyosam 5.02 versiyonunu kullanıyoruz ve bizede onu kullanmamızı söylediler.Farklı bir derleyici kullanabilirmiyiz dediğimizde farklılıklar var denmişdi tam bu kadar net bir cevap alamamısdık=)tesekkürler.

semix

  • Ziyaretçi
Ynt: Bloodshed Dev-C++'ta Çalışıp Kapanan Programlar
« Yanıtla #9 : 17 Oca 2008, 00:06:40 Prş »
Programcılığa yeni başlayan arkadaşlara benim tavsiyem derleyici olarak turbo c compiler, borland c/c++ compiler 5.5 gibi dos tabanlı "free" compiler lar kullanmaları olacak. Borland studio, visual c++ gibi platformlarda kafa karıştıran o kadar çok şey var ki. En azından ben çok zorluk çekmiştim. Hem böylece lisansız üründe kullanmamış oluruz değil mi ? :) Ayrıca dos altında derleme düzenleme çalıştırma işlemlerini yapmak bana çok daha hoş geliyor. :)



Bilgilendirme için teşekkürler.Borland ve Bloodshed Dev-C++ 'in derleyicilerini kulanıyorum şimdilik işimide fazlasıyla görüyo:) Turbo c yide deneyip görsem fena olmaz.

Ruby

  • Ziyaretçi
Ynt: Bloodshed Dev-C++'ta Çalışıp Kapanan Programlar
« Yanıtla #10 : 17 Oca 2008, 10:56:32 Prş »
Borland Turbo C uzun süre önce okullarda kullanılıyordu fakat yeni başlayanlara tavsiye edilebilecek bir derleyici değil. Zira eski tip makine tabanlı optmizisayon seçenekleri, ansi olmayan bir takım kütüphaneleri ve eski derleyici yapısıyla uygun olmayabilir. herşeyden önce c99 desteği mevcut değil. Buda elinizdeki kitaplarla, eğitim kaynaklarıyla çalışırken en basit kodlarda sorunlara yol açar.

Onun yerine windows, gnu/linux ortamlarında güzelce sorunsuz kullanabileceğiniz gnu c derleyicisi işinizi görür. Windows ve gnu/linux için Code::Blocks IDE' sini önerebilirim. codeblocks.org adresinden ulaşılabilir. GNU GCC ile paket olarak indirip kurabilir ayar yapmanıza gerek kalmadan çalışabilirsiniz. Bu tümleşik geliştirme ortramında aynı zamanda kaynak kodlarınızın html çıktısını alabilirsiniz.
Daha birçok gelişme için gecelik derlemeleri kullanabilirsiniz. Fakat gecelik derlemeler yeni başlayanlara uygun olmayabilir. Kararlı(stabil) olmaması yeni kullanıcıları ve programcı adaylarını zorlayacaktır.

Çevrimdışı Çağatay ÇEBİ

  • Çağatay ÇEBİ
  • Admin
  • Üye
  • İleti: 535
    • Profili Görüntüle
    • Özgür Yazılım Sayfaları
Ynt: Bloodshed Dev-C++'ta Çalışıp Kapanan Programlar
« Yanıtla #11 : 17 Oca 2008, 11:52:58 Prş »
Böyle yararlı programları, açıklamaları ve bağlantılarıyla beraber sabit bir konu hâline getirip, yayınlayalım. Oldukça yararlı olacaktır.

Çağatay
Her akşam yatmadan önce Tanrı'ya bana bir bisiklet vermesi için dua ederdim. Bir gün Tanrı'nın çalışma tarzının bu olmadığını anladım. Ertesi gün gittim ve kendime yeni bir bisiklet çaldım ve her akşam yatmadan önce Tanrı'ya günahlarımı affetmesi için dua ettim. Al Capone
--
http://www.cagataycebi.com

Ruby

  • Ziyaretçi
Ynt: Bloodshed Dev-C++'ta Çalışıp Kapanan Programlar
« Yanıtla #12 : 17 Oca 2008, 12:29:29 Prş »
Evet açık kaynak ya da freeware geliştirme araçları için ayrı sabit bir başlık ve her aracın ayrıntıya boğulmadan hazırlanmış anlatımı güzel olacaktır. Genelde herkesin alıştığı ve ergonomik bulduğu araçlar mevcut. Fakat bu işe yeni yeni başlayan insanlar bunları ap ayrı sistemler olarak düşünüyor.
Halbuki araç gereçlerin yüzde 90'ı belli başlı 3,4 C/C++ derleyicisinin kelime işlemciliğini yapmaktan öteye gitmiyor. Bu söylediğime bazı nedenlerden Borland C++ Builder ya da Visual C++ dahil değil. Fakat temel çekirdek ANSI/ISO standartlarının belirlediği kıstaslara göre hazırlanmış durumda.

Borland C++ Builder(BCB), Visual C++ gibi ortamlar genel olarak kendi kararlı kütüphanelerini ve optimizasyon yöntemlerini ortaya koyuyorlar. Örneğin BCB ile salt ansi c/c++ program geliştirebileceğiniz gibi VCL kullanarak delphi bileşenlerinin dahil edilebildiği, çoklu işlemi destekleyen yazılımlar da geliştirebilirsiniz.

Yani kısaca IDE' lerde GNU GCC, Microsoft C/C++, Borland C/C++, Watcom C gibi artık kalıplaşmış derleyiciler kullanılmakta. Burada ön plana çıkan kavram programcının kendini olabildiğince rahat hissetmesi, işini kolaylaştırabilecek araçlara(kod tamamlama, söz dizimi renklendirmesi, text indent, class browser, map generator vs.)  ulaşabilmesi.

magnetico

  • Ziyaretçi
Ynt: Bloodshed Dev-C++'ta Çalışıp Kapanan Programlar
« Yanıtla #13 : 26 Oca 2008, 17:12:33 Cts »
"A simple Windows interface to Borland’s free TurboC compiler" diye geçen bir program da:

http://www.ceng.metu.edu.tr/~ahmet/Wiki/software/epi
 
epi

kcetinkaya

  • Ziyaretçi
Ynt: Bloodshed Dev-C++'ta Çalışıp Kapanan Programlar
« Yanıtla #14 : 28 Oca 2008, 03:06:58 Pzt »
Bizim epi :)

Gerçekten basit maksimum 20 satırlık kod denemeleri için çok kullanışlı olduğunu söyleyebilirim. Biraz açıklamak gerekirse Turbo C (sanırım v3.0 olanı baya eski yani) üzerine windows tabanlı metin editörü eklemişler. Program içerisine kodu yazıyorsunuz F5 e basıyorsunuz ve bir komut sistemi açılıyor kodunuz çalışıyor. Ayrı .exe falan çıkartmıyor hiç bir yere. (tabi çalıştırmak için kendi içerisinde biryerlerde compile edip çıkarması gerek çok istiyorsanız oralardan bulabilirsiniz :) ) Yani amaç sadece tek kaynak kod dosyasından oluşan basit programlar yazmak değil yazdığınız kodları denemek oluyor.

Arkada .pdf e-kitabım açıkken yanda da epi her zaman açık oluyor basit denemeler için bende. Tavsiye ederim..