C# Ta Basit Bir Soru Yardım Lütfen.
-
Hocalar merhabalar c# ta kendimi geliştiriyorum . bi console uygulması yaparken kafama bişe takıldı yapayım dedimde mantığı kuramadım
şimdi kullanıcıdan kaç adet notu olduğunu istiyoruz sonra kaç adet girerse bunu döngü içinde yazdırıp ReadLine yapıyorum notlarınızı girin diye ama bu girilen notları ayrı ayrı değişkenlere nasıl atarım bilemedim kaç tane not varsa toplyacak ve not sayısına bölecek yani ortalama bulacak ama mesele bu for döngüsü sayesinde girilen notları nasıl değişkenlere atayacağım? şimdiden eyvallah...
Console.WriteLine("not adedini giriniz");
int notAdet = Convert.ToInt32(Console.ReadLine());
for (int i = 0; i < notAdet; i++)
{
Console.WriteLine("Notunuzu Giriniz");
int y = Convert.ToInt32(Console.ReadLine());
buraya kadar yazdım ama tıkandım gerisini biliyorum ama tek sıkıntı girilen notların değişkenlere atanması
-
Diziyle yapabilir miyim acaba şimdi aklıma geldi
-
böyle bir durumda değişken değil array kullanman lazım arrayi oluşturduktan sonra
for (int i = 0; i < notAdet; i++)
{
Dizi[i]=Convert.ToInt32(Console.ReadLine());
}
gibi oradaki i dizinin kaçıncı elemanı oldugunu belirtiyor
-
en kolay yolu bir tane struct ya da sınıf oluştur, bu sınıfın ismi notlar olsun mesela.. içerisinde vize final v.s. barındırsın....
bu bilgileri de bir liste de tut (en kolayı da o dur)
basit bir örnek verirsem
public class Notlar { public int Vize { get; set; } public int Final { get; set; } public double Ortalama { get; set; } } --------------------------unbalanced tarafından 09/Ağu/14 21:28 tarihinde düzenlenmiştir
döngüden önce (hatta ilgili fonksiyonun dışında tanımla) List ogrenciNotlari = new List(); -----------------------------
döngü { var not = new Notlar(); print("vizeyi girin"); not.Vize = Convert.ToInt32(Console.ReadLine()); print("Final Girin"); not.Final = Convert.ToInt32(Console.ReadLine()); not.Ortalama = not.Vize*0.4 + not.Final*0.6; ogrenciNotlari.Add(not); } -
ikinizede ayrı ayrı teşekkürler hocalar eyvallah
-
unbalanced bunu yazdı
en kolay yolu bir tane struct ya da sınıf oluştur, bu sınıfın ismi notlar olsun mesela.. içerisinde vize final v.s. barındırsın....
bu bilgileri de bir liste de tut (en kolayı da o dur)
basit bir örnek verirsem
public class Notlar { public int Vize { get; set; } public int Final { get; set; } public double Ortalama { get; set; } } --------------------------
döngüden önce (hatta ilgili fonksiyonun dışında tanımla) List ogrenciNotlari = new List(); -----------------------------
döngü { var not = new Notlar(); print("vizeyi girin"); not.Vize = Convert.ToInt32(Console.ReadLine()); print("Final Girin"); not.Final = Convert.ToInt32(Console.ReadLine()); not.Ortalama = not.Vize*0.4 + not.Final*0.6; ogrenciNotlari.Add(not); }simdi hocam, arkadasin sordugu soruya bakarak ortaya nasıl boyle bir kod cikardin, şaşırtıcı doğrusu !
belli ki arkadaş bu işlerde coook yeni ve sorduğu soruya siniflarla, property lerle verilecek bir cevabi anlayabilecek yetide degil. (henüz !)
ayrica sorduğu soruya bu şekilde yaklaşmak, kod fazlalığı ve bellek israfindan baska birsey degil.. oldu olacak bende soyle birsey yazayim bari....
static int Main(string[] args) { int i; if (new StackTrace().FrameCount < 2 || new StackTrace().GetFrame(1).GetMethod().Name != "Main") { int ct; Console.Write("not adeti : "); ct = Convert.ToInt32(Console.ReadLine()); Console.WriteLine("ortalama : {0}", Main(new string[] { ct.ToString() }) / ct); Console.ReadLine(); return 0; } if ((i = Convert.ToInt32(args[0])) == 0) return 0; Console.Write("not : "); return Convert.ToInt32(Console.ReadLine()) + Main(new string[] { (i - 1).ToString() }); }lütfen cevap verirken önce bir soruya bakalım yahu !
gerçekten bu soruya cevap olabilicek olan algoritma ise asagida.
class Program { static int Main(string[] args) { int n; int sum = 0; Console.Write("not adeti : "); n = Convert.ToInt32(Console.ReadLine()); for (int i = 0; i < n; ++i) { Console.Write("not : "); sum += Convert.ToInt32(Console.ReadLine()); } Console.WriteLine("ortalama : {0}", sum / n); Console.ReadLine(); return 0; } } -
hocam benim pek vaktim yok genelde o yüzden acele acele yazıyorum her zaman.. yazdığım basit bir sınıf, temel oop .. maalesef türkiyede eğitim for döngüsünü bile aylarca anlatılan bir sistem üzerine kurulduğu için bunlar çok ileri seviye gelebilir ama hiç de zor bir şey değil.. kullanılması gereken de bu dur. ben sadece arkadaşa bir örnek verdim, vizeli finalli bir şey. buradan elbet bir sonuç çıkartacaktır kendine.. ayrıca bir sorun olsaydı, arkadaş yazınca zaten cevaplamaya çalışırdım.
ikinci olarak bellek v.s. demişsin :) hocam biz artık 64 mb lık bellekler kullanmıyoruz, ayrıca c# da bellek temizleme işini kullanıcı yapmak zorunda değil GC var! otomatik olarak belleği yönetir zaten.. Bunlar takılacak şeyler değil..
Arkadaşın problemi olursa, anlamadığı yer olursa her zaman sorabilir, vakit buldukça elimden geldiğince yardımcı olurum zaten, gerekirse bilgisayarına bağlanıp adım adım anlatırım sorun değil.. Ama bunu senin değil, onun söylemesi lazım
-
unbalanced bunu yazdı
hocam benim pek vaktim yok genelde o yüzden acele acele yazıyorum her zaman.. yazdığım basit bir sınıf, temel oop .. maalesef türkiyede eğitim for döngüsünü bile aylarca anlatılan bir sistem üzerine kurulduğu için bunlar çok ileri seviye gelebilir ama hiç de zor bir şey değil.. kullanılması gereken de bu dur. ben sadece arkadaşa bir örnek verdim, vizeli finalli bir şey. buradan elbet bir sonuç çıkartacaktır kendine.. ayrıca bir sorun olsaydı, arkadaş yazınca zaten cevaplamaya çalışırdım.
ikinci olarak bellek v.s. demişsin :) hocam biz artık 64 mb lık bellekler kullanmıyoruz, ayrıca c# da bellek temizleme işini kullanıcı yapmak zorunda değil GC var! otomatik olarak belleği yönetir zaten.. Bunlar takılacak şeyler değil..
Arkadaşın problemi olursa, anlamadığı yer olursa her zaman sorabilir, vakit buldukça elimden geldiğince yardımcı olurum zaten, gerekirse bilgisayarına bağlanıp adım adım anlatırım sorun değil.. Ama bunu senin değil, onun söylemesi lazım
hocam agresif yaklaştım ancak ofansif degildim :D
yardımcı olmaya calışan bir insan olduğunu biliyorum fakat, hani derler ya, sen ne kadar anlatırsan anlat, karsindaki, anlayabileceginden fazlasini alamaz diye. iste anlatmaya calistigim sey buydu.. ( amacim burda konuyu acan arkadasi yermek degil, yalnızca yeni başladigini vurgulamak istedim.. )
elbette ki 64 mb bellek ile calismiyoruz fakat yazdigin kodun her yönden optimize olmasi gerekir ( her zaman kucuk projelerde degil de, yeri geldiginde buyuk projelerde calisman gerekebilir ! ) algorithm complexity denen konseptten haberdar olsan hic de kötü olmaz hani.. :)
garbage collection hakkinda msdn, istersen bir incele.
http://msdn.microsoft.com/en-us/library/ms973837.aspx
ayrica herseye ragmen, fuck the GC, benim isime burnunu sokup, coluk cocuk memory leak yapmasin diye ortada dolasan thread leriyle daha fazla soruna yol acıyor. neyse, yine ofensif degilim, inş yanliş anlamamissindir !!
ayrıca, her ne kadar ben de sevmiyor olsam da, türkiyede egitim for döngüsünden ibaret degil, ogrenciler for döngusunun otesine gidemiyor ! aradaki farki iyi analiz etmeli.!
-
:) ofansif-defensif bir şey umrumda değil, uzun bir yolculuk yaptım bugün türkiye ye geldim tartışacak bir durumda değilim.. dediğim gibi arkadaşın anlamadığı bir nokta varsa bana her zaman sorabilir ben de açıklarım. çok şey yazarım şimdi de gerek yok uğraşmaya. hadi iyi geceler
-
unbalanced bunu yazdı
:) ofansif-defensif bir şey umrumda değil, uzun bir yolculuk yaptım bugün türkiye ye geldim tartışacak bir durumda değilim.. dediğim gibi arkadaşın anlamadığı bir nokta varsa bana her zaman sorabilir ben de açıklarım. çok şey yazarım şimdi de gerek yok uğraşmaya. hadi iyi geceler
:)
