Programın çalışma mantığı kafamda oluştu şu an anlattıklarınızla. Fakat dediğiniz gibi "unsigned long long" diyerek tanımladım ve en son sonuç gösteren printf kısmındaki (%d) yerine (%llu) yazarak değiştirdim. Şimdi sayıyı yazıyorum 2 yazsam bile sonuç vermiyor sadece boşluk bırakıyor alta. #include<stdio.h> Şu şekilde nesi yanlış acaba bu sefer ? |
Problemi kesin soylemeyeyim onu kendin bul fakat bir ipucu vereyim. Problem, scanf de... |
Tamamdır hocam scanf olan kısmada llu yazdım ve yaptım oldu. Fakat yine dediğiniz gibi daha yüksekleri bulmuyor ama bu kadarını öğrendim teşekkürler yardımınız için ![]() |
Kodundaki if (GetAsyncKeyState((long)Kod) == System.Int16.MinValue + 1) Kısmında hata bulan visual studio şunları diyor: A call to PInvoke function '_IsteBudur!_IsteBudur.Form1::GetAsyncKeyState' has unbalanced the stack. This is likely because the managed PInvoke signature does not match the unmanaged target signature. Check that the calling convention and parameters of the PInvoke signature match the target unmanaged signature. Ne yapmam gerektiğini bilen varsa yardımcı olabilir mi? |
Su aralar is gorusmelerine calisiyorum, pascal ucgeni sorusunu cozmeye kalkmistim, dil c++ o yuzden long long a izin verilmiyor, onun yerine int64_t kullaniyorum fakat ayni islem... Cozumumu incelemek istersen: http://codepad.org/H5Snlrbx |
Çok farklı sanırım bu c den pek bir şey anlamadım :). Peki hocam kendimi geliştirmek için ne yapabilirim. C derslerini izliyorum netten ama onları pekiştirmek için önerin var mı ? |
#include <iostream> using std::cout; using std::cin; main() { int x,y,z; cout <<"1.Sayiyi giriniz:" ; cin >> x; cout <<"2.Sayiyi giriniz:" ; cin >> y; cout <<"3.Sayiyi giriniz:" ; cin >>z; cout << x+y+z; cin >> x; } Bu program basit ama benim sorum şu. Bunun üzerinden gidersek nasıl başa döndürcez? Yani sonucu hesaplattıktan sonra tekrar programı baştan açmadan başka bir toplama işlemine nasıl geçicez? |
Bende merak ediyorum bu sorunun cevabını işe yarar bilgi ![]() |
#include <iostream> #include <conio.h> using std::cout; using std::cin; main() { basadon: int x,y,z; cout <<"1.Sayiyi giriniz:" ; cin >> x; cout <<"2.Sayiyi giriniz:" ; cin >> y; cout <<"3.Sayiyi giriniz:" ; cin >>z; cout << x+y+z; cin >> x; goto basadon; } |
< Resime gitmek için tıklayın > ben bunu textboxda yapmak istiyorum ama sorun çıkıyor (daha bugün başladım (dalga kaynağı olmamak dileğiyle)) < Resime gitmek için tıklayın > OLMUYOR! |
Hocam bakın şimdi int i = 0; dediğinizde butona her tıklayışta tekrardan yeni bir int tanımlayıp onu sıfıra eşitler yani şu şekidle yapmanız lazım; int sayaç=0; buttonclick() { sayaç++; textBox1.Text = sayaç.ToString(); } bu arada sana önerim youtubeden muhammed mastar ve sina5an adlı kullanıcıların c# videolarını seyret. Temeli kavrarsın sonra herkes için c# 4.0 pdfsi dolaşıyor nette onu indir ondan çalış projelerde çalış vs kendini geliştirirsin. |
Sanırım buton yerine TextBox'a tıklamak istiyorsun. Ayrıca değişkenin gerçek değeri vermesi için içeride tanımlamamalısın nedeni ise her tıkladığında 0'dan başlayacak ve yanlış sayı verecektir Private Void üzerinde tanımlaman gerekmekte. private void textBox1_Click(object sender, EventArgs e) { i++; MessageBox.Show(i + "defa"); } edit:Sonucu TextBox'da yazdırmak istiyorsan yukarıdaki arkadaşın dediğini uygulayabilirsin.TextBox'da yapmak istiyorum diyince dedim herhalde TextBox'a tıklamak istiyor ![]() |
ld.exe||cannot find C:\MinGW\lib: Permission denied| şöyle bir hata alıyorum. IDE:Code::Blocks OS:Win8 32 bit Compiler:g++ reinstall compiler/ide, yönetici oalrak çalıştırma vs denedim. siz ne öenrirsiniz? |
Hic farkli degil C++, C nin bir extension dilidir. Yani C++, C yi de kapsiyor. Bu ne demek dersen: http://codepad.org/QJL7Jx6g Burda oldugu gibi "stdio.h" dosyasini ekleyip printf kullanabiliyorum. Eger C ye cevirirsek farki bu olur: http://codepad.org/UmqWpWWH Her iki dilde calissin istiyorsak, long long yerine long kullanabiliriz ama daha once dedigim gibi 13! uzeri calismaz bunda. Bu C http://codepad.org/xraZPqCN Bu da C++ http://codepad.org/MezOMbve Gordugun gibi ayni kod C ve C++ ta calismakta. Tavisye olarak video ile baya zor ogrenilir. Cunku tekrar ederek sana mantik kazandirmaz. Maalesef kurs, universite vs oneririm. Genellikle mantigini oturtmaya calisirlar... |
Hocam zaten önümüzdeki yıl bilgisayar mühendisliği 1. sınıf olacağım ve kurslara gideceğim bölümde okurken. Benim amacım yazın bölüme geçmeden önce boş gitmeyeyim bir şeyler öğrenip gideyim seneye daha rahat anlarım diye ![]() |
Visual studio da standard c yok. O yuzden tavsiye etmem... |
c kodları da orada çalışıyormuş ya öyle dedi bir arkadaş o yüzden onu kurmuştum. |
teşekkürler hocam volkan aktaşın her yönüyle c#5.0 kitabını aldım ordan bakıyorum |
Visual studioda c yok diye biliyorum. Programlama programlamadır dil fark etmez. Deneme sürümü olayına gelince express zaten yeterince kapsamlı sizin için ultimate ile express arasında bir fark olmayacakatır microsoftun kendi sitesinden indirebilirsiniz. |
Bilgisayarlarda veriler 1lerle 0 larda saklanir her bir tanesine bit deriz. int yazdigimiz zaman cogu bilgisayar sistemi bize 32 bitlik(32 tane 0 ila 1) saklanan bir variable yaratir. Basitce ornek vermek gerekirse 2 bitlik bir sistem 00, 01, 10 ve 11 seklinde girebilir yani buda 4 farkli veri temsil edebiliriz. Unsigned dedigimiz data tipleri sadece pozitif sayilardir(0 dahil), unsigned 2 bitlik bir degisken, 0, 1, 2 ve 3 degerlerini alabilir. 4 degerini alamaz. Peki 4 degerini nasil alabilir? Bu degiskenin bit sayisini arttiririz, 3 bitlik bir sistem yapariz bu da 000, 001, 010, 011, 100, 101, 110, 111 seklinde 8 tane deger alir. Farkettiysen bu degerleri 2 uzeri bit sayisi seklinde (2^3) hesaplayabiliriz. Iste daha once 00 = 0, 01 = 1, 10 = 2 ve 11 = 3 diye tanimladigimiz numara tipinde artik 8 tane numara saklayabiliriz, bu durumda 000 = 0, 001 = 1, 010 = 2, 011 = 3, 100 = 4 ... diye gider. Yani istedigimiz buyuklukte sayiyi eger mevcut variable da depolayamiyorsak, o variablenin boyutunu arttiririz.
Iste daha once yazdigim gibi unsigned int ve int cogu sistemde 32 bittir. Yani unsigned int olarak dersek 2 uzeri 32 tane sayi temsil edilebilir. Bu da yaklasik 4 milyara esittir. Yani 0 dan 4 milyara kadar sayiyi unsigned int yazarak temsil edebiliriz. Fakat 4 milyardan fazlasini temsil etmek istedigimizde(yani 13! uzeri 4 milyarin ustu yapiyor) o zaman 32 bitlik bu degiskenin boyutunu arttirarak yapabiliriz. Bunun icinde "long long" kullanmalisin. "long long" tipi sana 64 bitlik degisken sunar yani 2 uzeri 64 adet temsil edebilecegin sayi. Iste bu nedenden oturu int yerine long long kullaniyorsun. Fakat ne yazikki C dilinde 64 bit maksimum boyut. Daha fazlasi mumkun degil. Fakat 2 uzeri 64 bitten fazla sayiyi temsil etmek mumkun. Bununla ilgili bilim dalina Arbitrary-precision arithmetic (http://en.wikipedia.org/wiki/Arbitrary-precision_arithmetic ) deniliyor. Bazi dillerde (Java gibi) BigInteger denilen data tipi bu hesaplama yoluyla teoride sonsuza kadar giden pozitif ve negatif sayilar temsil edebilir. C de ise bu ancak extended library lerle mumkundur bunlardan bitanesi ustte yazdigim GNU'nun Multiple Precision Arithmetic Librarysi var bu library ile 2 uzeri 64 ten daha fazla sayi temsil etmek mumkun...
Ek olarak su bilgiyide vereyim istiyorum:
Peki unsigned yazmadigimizda ne oluyor? O zaman o degiskene signed variable diyoruz. Peki nasil calisiyor dersen, ornek 2 bitlik bir sistemde 4 tane temsil edebilecegimiz bir sayi var. 00 her zaman 0 a esittir, en soldaki 1 bitinden itibaren sayi negatife donusturulur ve sagindaki bitler cikartilir. Yani 00 = 0, 01= 1, 10 = -2, 11 = (-2 +1 =) 1
Eger 3 biltik sistemde sorarsan, 000 = 0, 001 = 1, 010 = 2, 011 = 3, 100 = -4, 101 = -3, 110 = -2, 111 = -1 seklindedir. Bu yuzden variable tanimlarken eger negatif sayi kullanmayacaksak onune unsigned yazarak temsil edecegimiz pozitif sayiyi ikiye katlamis oluruz.
< Bu mesaj bu kişi tarafından değiştirildi ThisisaNightmare -- 24 Haziran 2013; 1:13:43 >
Bu mesaja 1 cevap geldi. Cevapları Gizle