Çok teşekkür ederim cevabınız için gayet anlaşılır olmuş. -Şimdi benim anlamadım bir olay var 1- c[a][0] a=3 iken matris boundry disina cikar ve for dongusu sonlanir.--> Bunu anlamadım eğer zahmet olmassa anlatırmınız. 2-Hocam birde 2. forda c[a] yaptık.burda neden c[0] yapmadık. Cahilliğime verin başlayalı çok olmadı daha bazı şeyleri anlamakta güçlük çekiyorum . |
Çöp değerin gelmesinin sebebi her değişken kendi bloğunda aktif olduğu için this'i kaldırırsan yani x = x olursa, fonksiyona parametre ile gelen x'e yine parametreyi atıyor. Yani sınıfın üyesi olan x'e atama yapmıyor. getX() ile de içinde çöp değer olan sınıfın üyesi olan x'i çağırıyor. Dediğin gibi başka bir değişken ismi vermek daha iyi. Aşağıda ki gibi kullananlarda var. #include <iostream> |
Yalnız garip bişey farkettim; dev c++'ta aynı kodu iki farklı bilgisayarda derledim. Daha sonra x'in pointerını return eden bi function yazıp cout la yazdırdım. Ama tüm bilgisayarlarda aynı address çıktı. Hatta tüm bilgisayarlarda this'i kaldırınca x değeri aynı geldi. (yani tüm dediğim 2:P) Ama visual studio'da programı her çalıştırışımda address değişti ve değerde değişik geliyordu. Çok saçma ve gereksiz bulabilirsniz ama kodun her kısmını böyle deneyince bunları bulup şaşırıyorum :D |
Denemek güzeldir, böyle böyle öğreniliyor. Aynı değer çıkmalarına tesadüf diyeceğim ama bu kadarı da fazla :D. Dev-C++'ı tavsiye etmiyorum onun bir eksikliğinden, hatasından dolayı da aynı değerler çıkabilir. |
compile ederken o x değerini programın içine kaydedip aynı zamanda pointerını kaydedip hep aslıdna bi bakıma cacheden yazdırıyo gibi geldi. |
Teşekkkürler. |
Bravo Erkan konu baya tutmuş bende up yapayım dedim ![]() |
- c[a][0] a=3 iken yukarida c[3][0] demek. Iki boyutlu c dizisinde c[3][0] elemani yok. Bu yuzden dongu sonlanacaktir. c[0][0] == 'P' c[1][0] == 'S' c[2][0] == 'C' c[3][0] ?? - Ic ice for dongusu var orada. c[a][ b ] kullanilinca iki boyutlu dizideki tum elemenlara bu ic ice for dongusu ile ulasilacak. a = 0 iken ikinci for dongusune girilecek ve b degerlerine ulasilacak. Ic ice for dongusune dikkat edersen demek istedigimi anliyacagini dusunuyorum. |
Çok teşekkür ederim hocam .Çok makbule geçti saolun. |
C++ ta dilin sınırı yok gibi. Konsolda biraz daha takılıp Qt e devam edebilirsin. this in tek kullanım alanı isim karışıklığını önlemek değil. Nesneye adres veya referans döndürmek sıkça yapılan birşey. Mesela cout << a << b << c; şeklinde kullanım *this döndürmekle mümkün olabiliyor. Ayrıca sen yazmasan bile derleyici otomatik olarak this koyar, üyeler bu şekilde çözümlenir. Sınıflara bağlı static fonksiyonların üyelere erişememesinin sebebi this işaretçisine sahip olmaması. |
Bu for donguleri cok da guvenli bir yontem degil diyebiliriz. C++ sana c[3][0] tanimli olmasada bir sonuc dondurebilir. #include <iostream> g++ ile compile ettigimde, c[2][1] : h Burada 4 dongunun devam edebilecegi anlamina geliyor :) c[3][0] icin sonuc dondurmedi ama c[3][1] icin sonuc donebiliyor. dikkat etmek laizm. Daha iyi yontemler ile bu islemi gerceklestirmek mumkun. codepad.org compile sonucu c[2][1] : h Bu compiler ile dongu devam etmiyecektir. |
merhabalar benim bir otomasyon ödevim var.c sharp görünüm ve sql veri tabanını hallettim.şimdi ikisini birleştirmeye geldi.c shap da ekleme-silme-güncelleme-listeleme işlemlerini yapacağım.aynısını geçen sene access ile yapmıştım ama sql 2008 management stüdyo biraz karışık geldi.access ile kod yazmadan tool box ile bağlantı oluşturup, sadece butonların komutlarını yazıyordum.ama internetten araştırdığım kadarı ile sql de bağlantı kodu yazılıyormuş.bir tane kod buldum ama kendi bilgisayarıma ve veri tabanıma uyarlayamadım.kod aşağıda, şimdi benim ne yapmam lazım??? not:server name:kapadokya\slqexpress bulduğum kod: sql connection baglanti = new sqlconnection("server=127.0.0.1;database=kisilistesi;ıntegrated Security=true"); özellikle parantez içi tam olarak ne anlama geliyor? |
Merhaba arkadaşlar c# methods (yöntemler) konusundaki döndürme (return) olayını anlayamadım açıklayabilecek var mı acaba ? yani niye dönüyor sonuç ? dönünce ne oluyor ? sanırım dönme kavramını çözemedim. |
Hocam metotları -ya da fonksiyonları- mainin -ya da başka bi metodun içinden- belirli bi görev yapması için çağırıyoruz. En basit örnekle hipotenüsün değerini bulan bir fonksiyon yazdın diyelim bu fonksiyona dik kenarların uzunluğunu gönderiyosun fonksiyon da sana hipotenüsün değerini hesaplayıp çağırıldığı fonksiyona geri döndürüyo. Hesapladığın değeri döndürmeye yarıyo genel olarak, ama çağrılan fonksiyona dönmek için de kullanılabilir(mesela girilen değer istenilen aralıkta değilse)
|
Metodlardaki geri donmeyi aslinda bircok sekilde kullanabilirsiniz mesela int geri donus degerini veren bir metod olsun ve parametre olarak girilen sayiyi 1 arttirsin Kod olarak
Bu uygulamada sayi 1 arttirdigimiz icin 11 olacaktir. Return genelde bir dizi de birkac islem yaptiktan sonra yeni diziyi dondurmek icin isler icin de kullanilir. |
edit:düzeltme ![]() |
Arkadaşlar foruma uzun bir süre ara vermek zorundayım. Herkesten özür diliyorum. İleride C/C++/C# konusunda çok daha faydalı bir şekilde karşınızda olacağım. Sağlıcakla kalın.. ![]() |
Selam arkadaşlar c# ile ilgili bir örnek arıyorum Konu şöyle program 3 tane şekilden birisini seçmeni istiyor dikdörtgen, üçgen ve kare sonra şekiller değişik olduğu için mesela üçgene taban alanının boyunu ve yüksekliği soruyor sonra diyelim kullanıcı 4 girdi yıldızlarla bu 4e4'lük olan üçgeni çizdiriyor ..........* ......*......* ...*............* .*....*.....*....* bu şekilde |
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace Student { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void studentsBindingNavigatorSaveItem_Click(object sender, EventArgs e) { this.Validate(); this.studentsBindingSource.EndEdit(); this.tableAdapterManager.UpdateAll(this.database1DataSet1); } private void Form1_Load(object sender, EventArgs e) { // TODO: This line of code loads data into the 'database1DataSet1.Students' table. You can move, or remove it, as needed. this.studentsTableAdapter.Fill(this.database1DataSet1.Students); } private void studentsDataGridView_CellContentClick(object sender, DataGridViewCellEventArgs e) { } } } hata: does not contain a static 'Main' method suitable for an entry point c# ta database olusturduktan sonra form da bu hatayı alıyorum arkadaslar sorunun cözümü nedir(not:c# ta acemiyim) |
Her iki sorumada sayenizde cevap buldum teşekkürler :)
O verdiğiniz kodu compile ettikten sonra bide this olmadan compile ettim. O zaman memoryde eski bir uygulamadan kalan bi değer geldi. Anladığım kadarıyla değişken isimlerini ayrı koyarsak sorun yok. yani
yapsak. Açıkçası bu tip bi kullanım bana daha düzgün geldi. değişken ismi mi kalmadı da aynı ismi kullanıyoruz :P
< Bu mesaj bu kişi tarafından değiştirildi Lord Nibbler -- 4 Şubat 2013; 18:01:37 >
Bu mesaja 1 cevap geldi. Cevapları Gizle