al bakalım yıldızların sayısnı yerleşimini kendine göre düzenlersin for (int i = 0; i < 9; i++) { for(int j=0; j<9;j++) { if (j < 3 || j >5 ) { Console.Write("*"); } else if (i > 2 && i < 6) { Console.Write("*"); } else { Console.Write(" "); } } Console.Write("\n"); } |
ters değişkenini döngünün her adımında sıfırlamalısın. |
Merhaba C dilinde Procedures konusunu bol örnekli şekilde anlatabilir misiniz ? |
REGISTER VARIABLE Bildiğiniz gibi c de bir değişken kullanıldığında bu memoryde bir bölgeye yazılır. Ve bu variable kullanılcağı zaman cpu bu veriyi bellekten alır kullanır ve tekrar geri yazar.Ama register variable kullandığımız zaman bu variable memory den bir bölgeye yazılmaz ve cpu nun register larında tutulur.Böylece erişim süresi çok kısalmış ve bir performans artışı salamış oluruz. Örn: #include <iostream> ÖNEMLİ NOT:Registerları yukarıdaki gibi basit şekilde kullanmak pek fazla önerilmez , özellikle performansın çok önemli olduğu uygulamalarda for while gibi loop ların içindeki variable lar gibi çok fazla erişim gerektiren variable lar için kullanmak akıllıca olucaktır. ÖNEMLİ NOT_2:Register variable nın cpu nun registerlarında tutulucağı garanti edilmez siz register olarak tanımlasanız bile compliler bunu gerekli görmeyim variableyı memory de tuta bilir. ÇOK ÖNEMLİ NOT_3:Register variableların addreslerini adress-of operatorü(&) ile almanız mümkün değildir.örn int *p = &c // bir register oldğunu var sayarsak compiler time error üretir.Tabi bu söyledipim sadece C için geçerli Aynı şeyi C++ da yaparsanız error almazsınız ve kodunuz çalışırı hatta adresini de alırsınız çünkü c++ compiler register variable ın adressi aldığınızı anlar ve register ifadesini ignore eder auto bir variable mış gibi çaltırır. |
printf("Hesap numarasini girin(Cikis icin -1):"); scanf("%d",&hesap_no); 'den sonra if(hesap_no==-1) exit; yazabilirsin ve int hesap_no=0; olarak başlatabilirsin. |
printf("sonuc= ", kup); |
Rica ederim. Bir şeyler yapmaya çalışan kişilere yardımlarımız açıktır. Kolay gelsin. |
Adresini değil, değerini de değil, referansını döndürür. Yani döndürdüğün şeyin bizzat kendisi. C++ taki referanslar gerçek referanstır, çoğu dilde yoktur. Nesne a; a.eleman() = 42; a nesnesinin ilkEleman üyesi değişti. Çünkü a.eleman() aslında "a.ilkEleman". Üyenin türü int diyelim. a.ilkEleman da 42 olsun. int x = a.eleman(); x *= 2; Şimdi x 84, a.ilkEleman ise 42. int& r = a.eleman(); r /= 2; Şimdi hem r, hem de a.ilkEleman 21. İkisi de aynı nesneyi işaret ediyor. |
Dostum ilk soruda kafanın karışmasının sebebi daha önce continue ve break kavramları ile ilgili pratiğin olmamasından kaynaklanıyor, kullanımlarını araştırman lazım yoksa üstesinden gelebileceğin bir soru o. break komutu, içinde bulunduğu döngüden çıkar, continue ise sadece döngünün bir adımını atlar. Aşağıdaki kodda göreceğin gibi, i, 5 olduktan sonra if kontrolüne girer ve continue komutu işlenir, ekrana 1'dan 9'a kadar yazması gerekirken 5 rakamını yazmaz o adımı atladı çünkü ve kaldığı yerden yani 6'dan yazmaya devam eder. continue yerine break olmuş olsaydı, 4'e kadar yazar ve bitirirdi.
İkinci soruda ise 4 işlemin de sonuclarını ekrana yazdırırsan aralarındaki farkları görebilirsin, cout<<9/2; şeklinde kod girersen derleyici bunları integer olarak alır ve 4 yazar. Ama cout<<9/2.0; şeklinde sayılardan birini ondalık olarak yazarsan derleyici bunu float olarak kabul eder ve ekrana 4.5 yazar. Soruda da bunların kullanımını sormuş zaten, gerisini sen çıkarabilirsin. cout, c dilinde printf komutuna denk geliyor bu arada. |
Evet diyebiliriz tabii ki![]() |
C#'da da aynı mantıkla yapıyorsun. Zaten bu yazım tüm dillere uygulanabilir. Pseudo kod gibi, algoritma verilmiş. |
basit bi örnek mesela 100 kere zar atılsın burda nHile'de tanımlı numara herzaman çok gelir..:http://ideone.com/YkjPKJ |
Senin yazdığın kod main fonksiyon içindeydi , burda başka bir fonksiyon tanımlayarak yapmış .Benim yukarda attığım örnekten faydalanabilirsin. |
%p pointer(işaretçi) oluyor. Getch() fonksiyonuda klavyeden bir karakter alır ve o karakteri geri döndürü |
Yapamadım be recursiveyli soruyu , bizim 4. ödevde recursiveyle ilgiliydi , gönderememiştim ozamanda ödevi . Bari tatilde bakayım , yaparım heralde dedim hayla yapamadım . Tam mantık oturmadı , bi bu konu eksik bide dosyalama konusu , okullar açılana kadar halledeyim bunları. |
50 yerine 100 ver , 500 ver farketmez , ilerde zaten mallocu filan öğrenceksin . gets(*argv); de işe yaradı ha , ama hayla çözemedim argcyide 1 alıyo |
Bir bilene soralım bunu int dizi[3][2]={ 2, 5, 8, 10, 1, 3 }; Bunu bubble sort algoritmasına göre nasıl sıralayabiliriz? |
NOT : Bana şu programı yazabilir misiniz ? Tarzında sorulara cevap vermeyeceğim. Önce kendiniz yapabildiğiniz kadar yapın, takıldığınız yerlerde kodu koyup sorun yardımcı olalım..
İyi Çalışmalar.
< Bu mesaj bu kişi tarafından değiştirildi £XE -- 31 Ağustos 2012; 16:48:31 >