Evet şimdi denedim null olarak değil de dediğiniz gibi tamamen rastgele bir değer çıkıyor. |
selamlar, c# ta yeni sayılırım. bir ödev var. ödev şu textbox'tan aldığımız bir sayının 11'e tam bölünüp böülenemdiğini bulacağız. 11'e bölünebilme kuralı, sayının son rakamından başlayarak bunları+,-,+,- olarak işaretlendirmek ve sonrasında bunları toplama..eğer sıfır ve 11 in katıs ise tam bölünür. nasıl yapabiliriz. aldığım string uzunluguna göre dizi yaptım. ama sndan başlayıp nasıl bir for döngüsü ile +,- olarak alıancak bunlar.. şimdiden teşerkküler |
Sayımız 152347 olsun. Ve senin bunu aşağıdaki gibi diziye attığını varsayıyorum. Kod açık ama flag kısmını açıklayım. Döngüye ilk girdiğinde flag = false bu yüzden else düşecek ve flag'ı true yapacak. Yani 7'e bir nevi + koymuş olduk. Şimdi sıra 4'e - koymada. 2. döngüde flag = true bu yüzden if'e girdik içindeki değeri -1 ile çarptık. Böylece bir onu da - ledik ve flag'ı false yaptık. Bir sonraki for'un dönüşünde else düşüp 3'ü + olarak işaretmesi için. Ve böyle devam ediyor. Sonra foreach ile dizideki sayıları toplattım. Sen sonra bu toplamın 11 in katı olup olmadıgına bakacaksın. int[] dizi = new int[6] {1,5,2,3,4,7 }; bool flag = false; // False ise + gelecek, True ise - for(int i = dizi.Length - 1; i >= 0; i--) { if(flag) { dizi *= -1; flag = false; } else flag = true; } int toplam = 0; foreach(int sayi in dizi) toplam += sayi; |
teşekkürler, bir ikiz düzeltme ile işimi çözdüm... bir soru daha var aslında.. soru: textbox'tan bir string alıyoruz...örneğin KELEBEK olsun..(listboxa bunun her karakterini sırayla atıyoruzz ama snucta bir kelebek şekl çıkacak biçimde..altta görüntü ekledim. kelebegin sol kanadını yaptım ama sağ kanadını yapamadım. < Resime gitmek için tıklayın > |
Sol kanadin nerede goster icine ekleniverir sag kanat :) |
alttaki kod ile sol kanadı oldu ama sağ olmadı
|
Ama boyle bir sekilde olmuyor mu bu is ?
|
Ben konsol uygulaması olarak yaptım sen form uygulamasına göre uyarlarsın. Burada yaparkan ilk K'yı yaparkan karşısındakini de yapman gerekir.
Daha iyi ve kısa bir yöntemi olabilir şimdilik benim aklıma gelen bu. |
çok teşekkür ederim....consloda tam istediğim gibi....forma çevireyim hemen... |
Hatan yok, sonuna programi durduracak bir fonksiyon eklememissin program calisiyor ama senin goremeyecegin bir hizda kapaniyodur. cstdlib kutuphanesini include edip system("pause") fonksiyonunu cagir, sen entere basana kadar uygulama bekler. Veya conio.h kutuphanesini ekleyip getch() fonksiyonunu cagir program sen herhangibir tusa basana kadar beklesin |
@serkat çok teşekkür ederim. bir de genel bi şey sormak istiyorum, arkadaşlar bizim bi hesap makinesi ödevi vardı program istenilen şekilde çalışıyor fakat ödevde istenilen class oluşturma, prototip, kaynak kodu gibi ifadeler var ve ben bilmiyorum. ben bu class mantığını en iyi şekilde nasıl öğrenebilirim ve class eklerken programda ciddi değişiklikler yapmam gerekecek mi? |
arkadaşlar bazı merak ettiğim şeyler var daha yeni sayılırım C'de. Birincisi return ile değişkeni döndürmenin tam olarak manası ne? Döndürme derken nasıl döndürüyor yani? Bir de Pointerlarla ilgili aklıma bir şey takıldı. int *ptr şeklinde pointerı tanımlıyoruz örneğin daha sonra ptr = &x diyoruz x'in adresini tutması için bunun yerine direk &x i kullansak programda ne farkı var? |
Zorunluluk mu var 11'e bölünebilme kuralını uygulama ile :D
|
return geri dönüş değeri olarak tanımlanır. Örneğin siz bir fonksiyon tanımladığınızda, misal: x sayısının faktöriyelini belirleyen bir fonksiyon olsun. Fonksiyon x değerini parametre olarak alır, içerisinde işlemler yapar, ve x! değerini geri döndürür. main fonksiyonu içerisinde bu fonksiyonu çağırdığımızda gerekli işlemi yaptıktan sonra istediğimiz değeri bize yollar. C#'ta referans ve değer tipleri için konuşuyorum. Değer tipleri belleğin stack bölgesi dediğimiz alanda tutulurlar, değeri taşır. Hızlıca erişmek mümkündür. Referans türleri ise veri yerine adresi bellekte tutar ve o adresin gösterildiği yerde de veri tutulur. |
class'lar sınıflardır. Bunlar programı daha kolay kılmak için programı parçacıklara ayırmaktır. Aksine işi daha da kolaylaştırır. Belirli işlemleri yapacak classlar tanımlarsınız, programı dallandırırsınız yani. Karmaşık programları bir bütün olarak yapmak yerine, parçalar halinde yaparak birleştirirsiniz. |
Arkadaşım sana desem bilmiyorum. Sence öyle bir zorunluluk olsa neden kuralı uygulamayalım? |
aslinda burda oop 'un boyle ogretilemeyecegi ile ilgili gonderme yapmistim ama neyse bosver. |
Amaç algoritma mantığını geliştirmek olabilir. Bence güzel bir soru. Bir sonuca varılabilir, fakat çözüm mantığı bilinmeden benzer bir soru çözülemeyebilir. Olabildiğince zoru her zaman iyidir. |
arkadaşlar c++ ödevim var hesap makinesi yapma. ödevi aslında yaptım fakat class oluşturmam gerekiyormuş, en az 30 puan kırılacak ve ben nasıl oluşturulduğunu bilmiyorum. 2-3 saattir çalışıyorum fakat mantığını oturtamadım bi türlü uygulamaya koyamıyorum. pazartesiye teslim etmem lazım, gerekirse internetten kopyala yapıştır yapacağım 0 almaktan iyidir. tavsiye verebilecek, yardımcı olabilecek varsa çok memnun olurum. aslında şu şekilde yazdım ama çeviremiyorum class'lı şekline.
|
1. sorunun cevabı kısmen yanlış verilmiş.
"Eğer counter değişkenine herhangi bir deger atamadan kullanmaya kalkışırsan hata alırsın"
Bir değişkene değer vermeden yani ilklendirmeden tanımlarsan hata almazsın ve kullanabilirsin. Tabi derleyiciye göre farklılık gösterebilir.
"değişkeni oluşturduğun zaman bellekte bir bölüm açılır ve bu bölümün içi tamamen boştur yani null dur."
Değişkenin içinde çöp değer olur. Yani o an çalışan programların oluşturduğu değerlerden rastgele birini atar o bölüme.
int counter; şeklinde tanımlasaydın counter'ın içinde 3124123 de olabilirdi 1 de olabilirdi. Yani ne geleceğini bilemezsin o yüzden ilklendirilir.
Genelde değişkenler tanımlanırkan 0 atanarak ilklendirilir.
int taban = 0; // şeklinde
Bu mesaja 1 cevap geldi. Cevapları Gizle