arkadaşlar sorum şu yardımcı olursanız gerçekten çok mutlu olurum #include <stdio.h> int main() { char ortopedik_engel,cevap; float otv,kdv,mtv; int sayac1,sayac2,sayac3,sayac4,sayac5,sayac6,sayac7,sayac8,sayac9,vergisiz_fiyat,motor_hacmi,arac_sira_numarasi; cevap='e'; arac_sira_numarasi=0; ortopedik_engel='a'; while(cevap=='e'||cevap=='E') { ortopedik_engel='a'; printf("aracin vergisiz fiyatini giriniz\n"); scanf("%d",&vergisiz_fiyat); printf("motor hacmini giriniz\n"); scanf("%d",&motor_hacmi); if(motor_hacmi<=1300) { while(ortopedik_engel!='e'&& ortopedik_engel!='E'&& ortopedik_engel!='h'&& ortopedik_engel!='H') { printf("ortopedik engeliniz varmi?\n e E h H\n"); scanf("%c",&ortopedik_engel); } } } } kodunu c dilince çalıştırdığımda program istediğim gibi çalışıyor ama ortopedik engeliniz varmı kısmını iki defa soruyor aynı yerde karakter alımını getch ile yapınca program takur tukur çalışıyor ama scanf ile aldığımda neden printf kısmını iki kez ekrana yazdırıyor? |
arkadaslar merhaba. asal sayıları nasıl yazdırabılırım? Yeni ögrenmeye basladım c#'ı lütfen temel kodlar ile yazarsanız sevinirim. |
https://www.google.com.tr/search?q=c%23+asal+say%C4%B1&oq=c%23+asal+say%C4%B1&aqs=chrome..69i57j69i58j69i60j69i61j69i60j0.2645j0j7&sourceid=chrome&espvd=215&es_sm=122&ie=UTF-8 |
Sag olasın pcde bakarım |
Bunun cevabi boyle bisey #include <iostream> |
Merhabalar Bir Fatura Takip Programı Yapmaktayım. Takıldığım Yerler Var Onları Size Sormak İçin Rahatsız Ediyorum Sizi Şimdi Program Üç Ana Öğeden Oluşuyor. .Fatura Ekle(Tip Ve Kuruma Göre(Dinamik) Fatura Seçiyorum Abone Numarası,AdSoyad,Kayıt Tarihi Giriyorum Ve Faturayı KIaydediyorum.) .Fatura Listele(Buı Kısımda Fatura Ekleden Gelen Bilgiler Doğrultusunda Faturayı Listeliyorum.Yalnız Listeleme Yaparken Şöyle Bir Kriterimiz Var Benim De Takıldığım Nokta Burası.Her Ay Ödenecek İşte Elektrik,Su,Telefon Faturaları Vardır Ya Ha Onlar Ben Hangi Ay Ve Yılı Seçersem Seçeyim Gelecek.Yani Ocak 2014'te Ocak'ta 5 Ayrı Fatura Girdim.Bu Faturalar Şubat,Mart,Nisan.. Hepsinde Listelenecek. Bir De Diyelim Şubat Ayı İçin Yeni Bir Doğalgaz Faturası Ekledim Bu Da Ocak'ta Gözükmeyecek Şubat,Mart,Nisan..Da Gözükecek. Ve Öde Dediğim Zaman Açılacan Form'a Fatura Numarasını Ve Tutarı Birde Ne Zaman Ödediğimi Girecem. Öde Kısnmından Glen Bu 3 Alan Ve Fatura Listeldeki Alanlardaki Verileri Gidip Fatura Hareket Tablosuna Yazacak. ) Ne Yaparsam Yapayım Bu İşi Yapamadım. .Bu Aşamadada Faturaları Fatura Hareket Tablosunda Görüntüleyecek. Bi Kıstas Var Ay Ve Yıla Göre Mesela Ocak 2014 Te Ödenmen leri Ve Ödenmeyeleri Gösterecek Şubat,Mart,Nisan.. Diye. |
Yanlış anlamadıysam 10. sorunun cevabı: #include <iostream> |
Arkadaşlar C ile uğraşıyorum.Değişken tiplerini felan öğrendikten sonra printf ile ekrana farklı şekillerde yazma işlemleri yapıyorum.(Biliyorum çok basitçe![]() C'de char,int,long,double,float gibi değişken türü dışında bir değişken türü yok başlangıçta sanırsam?Cümleleri tutmak için c#'daki gibi bir string değişken türü yok mu acaba?Ya da ileri seviyelerde mi? |
Hocam benimde çok detaylı C bilgim yok fakat C'de string tarzı ifadeler kullanmak için char dizisini oluşturuluyor sanırım bu şekilde; char deneme[] = "Deneme birkiuc"; |
Dizi ile denemiştim ama ben parantezleri C#'daki gibi değişken türünün yanına koyunca hata vermişti.Sağolasın hocam![]() |
Rica ederim hocam, ne demek. Yardımcı olabilmiş isem ne mutlu bana. |
Ama onu string türü olarak düşünme sakın. C' de string diye bir tür olmadığı için string tutan bir değişken de olmaz. Yani c' de "merhaba " + "dünya" = "merhaba dünya" değildir. Peki nedir dersen cevabı pointer konusunda saklı. |
String olarak düşünmedim hocam zaten ama derleyicide string gibi ifadeler mevcut neden bu şekilde bir değişken yok anlam veremedim.O konuya gelince öğreneceğiz artık![]() |
Atom olarak iki tırnak ("//") arasındaki herşey stringtir ve tek bir atomdur.(derleyicide gördüğünüz budur kuvvetle muhtemel) Ama değişken olarak string C de yok. Diğer dillerde de zaten doğal tür değil.(int, double gibi) Standart string sınıfı yazılmış, ona göre implemente ediliyor.. İhtiyacım olmadığı hiç bakmadım ama C de de aynı şekilde string kütüphaneleri ve fonksiyonları yazılmıştır mutlaka. C de char *cptr = "DonanimHaber"; // iki tırnak arasındaki donanimhaber stringtir. yazıldığında derleyici belleğin uygun yerine "DonanimHaber" yazar, aslında olan char [13] = "DonanimHaber"; Dikkat ederseniz dizinin ismi yok. Anonymous bir dizi yaratılır ve onun adresi cptr ye atanır. Artık string read-only dir.(Neden read-only olduğu ayrı bir konu) Stringi değiştirmeye çalışmak undefined behaviour dur. |
C çalıştığım kitapta bahsettiğiniz şekilde örnek verilmiş fakat ben ekrana yazdıramadığım için pek üstünde durmadım.Fakat dediğiniz gibi saçma aslında neden değiştirilemiyor ki sonrasında. Ayrıca printf ile belirttiğiniz şekilde bir karakter topluluğunu nasıl ekrana yazdırabiliriz? |
Sorularınızın hepsini tam anlamadım, neden değiştirmenin undefined behaviour olduğunu anlatayım. Aynı string lerin aynı adrestemi tutulacağı yoksa farklı adreslerde mi tutulacağı derleyici yazanların seçeneğine bırakılmış.(unspecified behaviour) Yukardaki mesajımda stringin nasıl oluşturulduğunu anlatmıştım. Aşağıdaki kodda 2 tane "DonanımHaber" stringinin adreslerini tutan değişkenlerin tuttukları adres aynı ya da farklı olabilir. (Genelde aynı olur) char *cptr1 = "DonanimHaber"; char *cptr2 = "DonanimHaber"; Hatta char *cptr3 = "Haber"; Buradaki "Haber" stringinin adresi (derleyiciden derleyiciye değişmekle birlikte) yukarıdaki cptr1 ve cptr2 nin içindeki "Haber" yazısının başlangıç adresidir. Şimdi cptr1[8] = 'X'; yapmak sadece birinci string de mi değişiklik yapacak yoksa 3 ünü birden mi değiştirecek? Buradaki derleyicinin seçimine bırakılan işleme unspecified behaviour deniliyor. Yani unspecified behaviour, undefined behaviour ı doğurmuş oluyor. Farklı bir örnek char *cptr1 = "DonanimHaber"; cptr1[8] = 'X'; printf("DonanimHaber"); Stringler statik ömürlü ve daha main çağrılmadan hayata geldikleri için printf in ne yazdıracağını bilemezsiniz.(Zaten undefined behaviour dır) Umarım anlatabilmişimdir. |
Anladım hocam.Peki C#'taki gibi String sınıfı ile işlemler yapabiliyor muyuz? misal kullanıcının girdiği bir metini scanf ile ne türden bir değişkene nasıl atabiliriz? (Sadece char ile dizi oluşturarak mı mümkündür?) |
Evet. (Bu arada C# ın adı geçtiği için, söyleyeyim stringi değiştirmek bildiğim kadarıyla C++, Java ve C# ta da undefined behaviour) char * ile yapmanız için dinamik bellek kullanmanız gerekir, orayı es geçiyorum. char c[100]; 1-) scanf("%s", c); ile alabilirsiniz, ama scanf in tamponlama mekanizması yüzünden boşluk bırakırsanız, boşluğa kadar olan kısmı alır. (Ya da white space karakterleri demek daha doğru) 2-) gets(c); ile alabilirsiniz ama 100 karakterlik diziye 120 karakter girebilirsiniz bu da run-time hatasını doğurur. Yani koruma mekanizması yok. 3-) fgets(c, 100, stdin); nihayet güvenli bir şekilde stringlerinizi alabilirsiniz.(99 karakter) Not: Yamulmuyorsam C ve C++11 standartlarında gets i kaldırmışlar. |
Konuyla alakasız olacak ancak cevaplarsanız sevinirim.. Şu an hazırlıktayım ve Ocakta bölüme başlama ihtimalim var ancak bu durumda Java ve C-C++ derslerini aynı anda görmek zorunda kalacağım..Yani hiç temel yokken hem 2. dönemin C-C++ derslerini hem ilk dönemin java derslerini alacağım zor olur mu?Java bilmeden C-C++ öğrenmek zor olur mu?Önceden çalışmaya gerek var mıdır?Önceden çalışmak için önerebileceğiniz kaynak var mıdır? |
Bu mesaja 1 cevap geldi. Cevapları Gizle
Bu mesajda bahsedilenler: @Muco53