Arama butonu
Bu konudaki kullanıcılar: 2 misafir
4171
Cevap
168562
Tıklama
3
Öne Çıkarma
Cevap: C/C++/C# Sorularınız Buraya. . .(GÜNCEL) (45. sayfa)
N
13 yıl
Binbaşı

Arkadaşlar bir ödev üzerinde çalışıyorum bir kısmında takıldım. Girilen 20 adet öğrencinin notlarını dizide tanımladım. Daha sonrasında bu notların toplamını ve ortalamasını yazdırdım. Şimdi ise 50'den büyük olan notları, 50'den küçük olan notların adedini ve 50 alanların toplamını yazdırmam gerekli nasıl bir yol izlemeliyim, kodlar;
        { 
int[] notlar = new int[20];
Console.WriteLine("0 ile 100 arasında bir deger giriniz");
Console.WriteLine("BİRİNCİ NOTU GİRİNİZ");
notlar[0] = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("İKİNCİ NOTU GİRİNİZ");
notlar[1] = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("ÜÇÜNCÜ NOTU GİRİNİZ");
notlar[2] = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("DÖRDÜNCÜ NOTU GİRİNİZ");
notlar[3] = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("BEŞİNCİ NOTU GİRİNİZ");
notlar[4] = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("ALTINCI NOTU GİRİNİZ");
notlar[5] = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("YEDİNCİ NOTU GİRİNİZ");
notlar[6] = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("SEKİZİNCİ NOTU GİRİNİZ");
notlar[7] = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("DOKUZUNCU NOTU GİRİNİZ");
notlar[8] = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("ONUNCU NOTU GİRİNİZ");
notlar[9] = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("ONBİRİNCİ NOTU GİRİNİZ");
notlar[10] = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("ONİKİNCİ NOTU GİRİNİZ");
notlar[11] = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("ONÜÇÜNCÜ NOTU GİRİNİZ");
notlar[12] = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("ONDÖRDÜNCÜ NOTU GİRİNİZ");
notlar[13] = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("ONBEŞİNCİ NOTU GİRİNİZ");
notlar[14] = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("ONALTINCI NOTU GİRİNİZ");
notlar[15] = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("ONYEDİNCİ NOTU GİRİNİZ");
notlar[16] = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("ONSEKİZİNCİ NOTU GİRİNİZ");
notlar[17] = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("ONDOKUZUNCU NOTU GİRİNİZ");
notlar[18] = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("YİRMİNCİ GİRİNİZ");
notlar[19] = Convert.ToInt32(Console.ReadLine());
int ort = (notlar[0] + notlar[1] + notlar[2] + notlar[3] + notlar[4] + notlar[5] + notlar[6] + notlar[7] + notlar[8] + notlar[9] + notlar[10] + notlar[11] + notlar[12] + notlar[13] + notlar[14] + notlar[15] + notlar[16] + notlar[17] + notlar[18] + notlar[19]) / 20;
Console.WriteLine("ortalama {0}+{1}+{2}+{3}+{4}+{5}+{6}+{7}+{8}+{9}+{10}+{11}+{12}+{13}+{14}+{15}+{16}+{17}+{18}+{19}={20}", notlar[0], notlar[1], notlar[2], notlar[3], notlar[4], notlar[5], notlar[6], notlar[7], notlar[8], notlar[9], notlar[10], notlar[11], notlar[12], notlar[13], notlar[14], notlar[15], notlar[16], notlar[17], notlar[18], notlar[19], ort);
}


Bu mesaja 1 cevap geldi.
M
13 yıl
Yüzbaşı

quote:

Orijinalden alıntı: ANIL_00

Arkadaşlar bir ödev üzerinde çalışıyorum bir kısmında takıldım. Girilen 20 adet öğrencinin notlarını dizide tanımladım. Daha sonrasında bu notların toplamını ve ortalamasını yazdırdım. Şimdi ise 50'den büyük olan notları, 50'den küçük olan notların adedini ve 50 alanların toplamını yazdırmam gerekli nasıl bir yol izlemeliyim, kodlar;
        { 
int[] notlar = new int[20];
Console.WriteLine("0 ile 100 arasında bir deger giriniz");
Console.WriteLine("BİRİNCİ NOTU GİRİNİZ");
notlar[0] = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("İKİNCİ NOTU GİRİNİZ");
notlar[1] = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("ÜÇÜNCÜ NOTU GİRİNİZ");
notlar[2] = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("DÖRDÜNCÜ NOTU GİRİNİZ");
notlar[3] = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("BEŞİNCİ NOTU GİRİNİZ");
notlar[4] = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("ALTINCI NOTU GİRİNİZ");
notlar[5] = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("YEDİNCİ NOTU GİRİNİZ");
notlar[6] = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("SEKİZİNCİ NOTU GİRİNİZ");
notlar[7] = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("DOKUZUNCU NOTU GİRİNİZ");
notlar[8] = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("ONUNCU NOTU GİRİNİZ");
notlar[9] = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("ONBİRİNCİ NOTU GİRİNİZ");
notlar[10] = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("ONİKİNCİ NOTU GİRİNİZ");
notlar[11] = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("ONÜÇÜNCÜ NOTU GİRİNİZ");
notlar[12] = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("ONDÖRDÜNCÜ NOTU GİRİNİZ");
notlar[13] = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("ONBEŞİNCİ NOTU GİRİNİZ");
notlar[14] = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("ONALTINCI NOTU GİRİNİZ");
notlar[15] = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("ONYEDİNCİ NOTU GİRİNİZ");
notlar[16] = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("ONSEKİZİNCİ NOTU GİRİNİZ");
notlar[17] = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("ONDOKUZUNCU NOTU GİRİNİZ");
notlar[18] = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("YİRMİNCİ GİRİNİZ");
notlar[19] = Convert.ToInt32(Console.ReadLine());
int ort = (notlar[0] + notlar[1] + notlar[2] + notlar[3] + notlar[4] + notlar[5] + notlar[6] + notlar[7] + notlar[8] + notlar[9] + notlar[10] + notlar[11] + notlar[12] + notlar[13] + notlar[14] + notlar[15] + notlar[16] + notlar[17] + notlar[18] + notlar[19]) / 20;
Console.WriteLine("ortalama {0}+{1}+{2}+{3}+{4}+{5}+{6}+{7}+{8}+{9}+{10}+{11}+{12}+{13}+{14}+{15}+{16}+{17}+{18}+{19}={20}", notlar[0], notlar[1], notlar[2], notlar[3], notlar[4], notlar[5], notlar[6], notlar[7], notlar[8], notlar[9], notlar[10], notlar[11], notlar[12], notlar[13], notlar[14], notlar[15], notlar[16], notlar[17], notlar[18], notlar[19], ort);
}


Böyle tek tek yapmana gerek yok, bir for yapısıyla dizinin içteki elemanını birer artırarak yaptırabilirsin. Ayrıca ReadLine'ları unutmuşsun.

Soruna gelince, if yapısı kullan. Üç değişken belirle buyuk50,kucuk50,esit50. Eğer 50'ten büyükse buyuk50 bir artır tarzında bir işlem. Birazdan kodları eklerim, görürsen o zamana kadar üstünde düşünecek vaktin olur.

Ekleme: Kodları ekledim, az önce C'den çıktım. Hata yaptıysam da sen ana mantığı kavramışsındır. Yine takıldığın bir nokta varsa yardımcı olmaya çalışırım. Kolay gelsin.

 

int notlar[]=new int[20];

for(i=0;i<=19;i++)
{
Console.Write("{0}. notu giriniz: ",i+1);
notlar[i]=Convert.ToInt32(Console.ReadLine());
if(notlar[i]<50)
kucuk50++;
if(notlar[i]>50)
buyuk50++;
if(notlar[i]==50)
esit50++;
toplam=toplam+notlar[i];


ortalama=toplam/20;





< Bu mesaj bu kişi tarafından değiştirildi MrOwl -- 7 Aralık 2012; 15:21:07 >
Bu mesaja 1 cevap geldi.
N
13 yıl
Binbaşı

Yardımınız için çok teşekkür ederim fakat yapmak istediğim şey aşağıdaki gibi olacak, yani sonuçlar en sonda belirecek . Örneğin;
1.Notu gir: 40
2.Notu gir: 60

Toplam & Ortalama: 100 & 50
50'den büyük notlar: 2.Not:60
50'den küçük notlar: 1 adet
50 olan notlar: 0 adet

gibi

burdan sonra nasıl yol izleyebiliriz.
        { 
int[] notlar = new int[20];
int i;
for (i = 0; i <= 19; i++)
{
Console.Write("{0}. notu giriniz: ", i + 1);
notlar[i] = Convert.ToInt32(Console.ReadLine());
}





< Bu mesaj bu kişi tarafından değiştirildi nl_ztrk -- 7 Aralık 2012; 16:23:54 >
Bu mesaja 1 cevap geldi.
M
13 yıl
Yüzbaşı

50'den büyük, küçük ve eşit olanları tek tek(hangi not hangi değer) yazdırmak istiyorsunuz, doğru mu anladım?


Bu mesaja 1 cevap geldi.
N
13 yıl
Binbaşı

quote:

Orijinalden alıntı: MrOwl

50'den büyük, küçük ve eşit olanları tek tek(hangi not hangi değer) yazdırmak istiyorsunuz, doğru mu anladım?

Evet dediğiniz gibi.
1. Girilen 20 tane notun toplamını ve ortalamasını yazdırmasını
2. 50'den büyük olan notları yazdırmasını
3. 50'den küçük olan notların ise adedini
4. 50 olan notların ise toplamını yazdırmasını istiyorum ve bunları son kertede göstersin yani 20.sayıyı girdikten sonra..
Şu kodda 1. adımı gerçekleştirdim sanırım.
            int[] notlar = new int[20]; 
int i;
int toplam = 0;
int ort = 0;
for (i = 0; i <= 19; i++)
{
Console.Write("{0}. notu giriniz: ", i + 1);
notlar[i] = Convert.ToInt32(Console.ReadLine());
toplam = toplam + notlar[i];
ort = toplam / 20;
}
Console.WriteLine("Toplam " + toplam);
Console.WriteLine("Ortalama " + ort);





< Bu mesaj bu kişi tarafından değiştirildi nl_ztrk -- 7 Aralık 2012; 17:13:44 >
Bu mesaja 1 cevap geldi.
M
13 yıl
Yüzbaşı

quote:

Orijinalden alıntı: ANIL_00

quote:

Orijinalden alıntı: MrOwl

50'den büyük, küçük ve eşit olanları tek tek(hangi not hangi değer) yazdırmak istiyorsunuz, doğru mu anladım?

Evet dediğiniz gibi.
1. Girilen 20 tane notun toplamını ve ortalamasını yazdırmasını
2. 50'den büyük olan notları yazdırmasını
3. 50'den küçük olan notların ise adedini
4. 50 olan notların ise toplamını yazdırmasını istiyorum ve bunları son kertede göstersin yani 20.sayıyı girdikten sonra..
Şu kodda 1. adımı gerçekleştirdim sanırım.
            int[] notlar = new int[20]; 
int i;
int toplam = 0;
int ort = 0;
for (i = 0; i <= 19; i++)
{
Console.Write("{0}. notu giriniz: ", i + 1);
notlar[i] = Convert.ToInt32(Console.ReadLine());
toplam = toplam + notlar[i];
ort = toplam / 20;
}
Console.WriteLine("Toplam " + toplam);
Console.WriteLine("Ortalama " + ort);


ort = toplam / 20;

Bu ifadeyi for döngüsü içerisinden çıkarabilirsiniz. Gereksiz işlem yapılmamış olur, her seferinde ortalamayı hesaplamasına gerek yok.

Eğer 50'den büyük olan notlar için kaçıncı not olduğunun bir önemi yoksa işlem daha basit. Diğer türlüyse de biraz fikir vermiş olayım.

notlar girdisi alındıktan sonra

if(notlar>50)
buyuk50den[j]=notlar;
j++;

diye bir dizi daha kullanabilirsiniz.

Burada yaptığımız 50'den büyük olanları kaydetmek için ayrı bir dizi kullanmak. Peki sıra için ne yaparız? Onda da aynı mantık, bir deneyin isterseniz. Çok zor gelirse yine yardımcı olayım. Biraz karışık gibi gelebilir çünkü ilk seferde.

garui görürse de daha farklı yoldan çözüm önerebilir belki. Benim aklıma bazen kompleks veya cins cins yollar gelir :)


Bu mesaja 2 cevap geldi.
N
13 yıl
Binbaşı

quote:

Orijinalden alıntı: MrOwl

quote:

Orijinalden alıntı: ANIL_00

quote:

Orijinalden alıntı: MrOwl

50'den büyük, küçük ve eşit olanları tek tek(hangi not hangi değer) yazdırmak istiyorsunuz, doğru mu anladım?

Evet dediğiniz gibi.
1. Girilen 20 tane notun toplamını ve ortalamasını yazdırmasını
2. 50'den büyük olan notları yazdırmasını
3. 50'den küçük olan notların ise adedini
4. 50 olan notların ise toplamını yazdırmasını istiyorum ve bunları son kertede göstersin yani 20.sayıyı girdikten sonra..
Şu kodda 1. adımı gerçekleştirdim sanırım.
            int[] notlar = new int[20]; 
int i;
int toplam = 0;
int ort = 0;
for (i = 0; i <= 19; i++)
{
Console.Write("{0}. notu giriniz: ", i + 1);
notlar[i] = Convert.ToInt32(Console.ReadLine());
toplam = toplam + notlar[i];
ort = toplam / 20;
}
Console.WriteLine("Toplam " + toplam);
Console.WriteLine("Ortalama " + ort);


ort = toplam / 20;

Bu ifadeyi for döngüsü içerisinden çıkarabilirsiniz. Gereksiz işlem yapılmamış olur, her seferinde ortalamayı hesaplamasına gerek yok.

Eğer 50'den büyük olan notlar için kaçıncı not olduğunun bir önemi yoksa işlem daha basit. Diğer türlüyse de biraz fikir vermiş olayım.

notlar girdisi alındıktan sonra

if(notlar>50)
buyuk50den[j]=notlar;
j++;

diye bir dizi daha kullanabilirsiniz.

Burada yaptığımız 50'den büyük olanları kaydetmek için ayrı bir dizi kullanmak. Peki sıra için ne yaparız? Onda da aynı mantık, bir deneyin isterseniz. Çok zor gelirse yine yardımcı olayım. Biraz karışık gibi gelebilir çünkü ilk seferde.

garui görürse de daha farklı yoldan çözüm önerebilir belki. Benim aklıma bazen kompleks veya cins cins yollar gelir :)

Dediğinizi anladım 50 den büyük sayılar için ayrı bir dizi oluşturup o diziyi yazdıracağız. Yazdığınız diziyi yazdığınız şekilde nasıl tanımlayabilirim biraz daha ayrıntılı gösterebilirseniz iyi olur, teşekkürler tekrar.


Bu mesaja 1 cevap geldi.
M
13 yıl
Yüzbaşı

quote:

Orijinalden alıntı: ANIL_00

quote:

Orijinalden alıntı: MrOwl

quote:

Orijinalden alıntı: ANIL_00

quote:

Orijinalden alıntı: MrOwl

50'den büyük, küçük ve eşit olanları tek tek(hangi not hangi değer) yazdırmak istiyorsunuz, doğru mu anladım?

Evet dediğiniz gibi.
1. Girilen 20 tane notun toplamını ve ortalamasını yazdırmasını
2. 50'den büyük olan notları yazdırmasını
3. 50'den küçük olan notların ise adedini
4. 50 olan notların ise toplamını yazdırmasını istiyorum ve bunları son kertede göstersin yani 20.sayıyı girdikten sonra..
Şu kodda 1. adımı gerçekleştirdim sanırım.
            int[] notlar = new int[20]; 
int i;
int toplam = 0;
int ort = 0;
for (i = 0; i <= 19; i++)
{
Console.Write("{0}. notu giriniz: ", i + 1);
notlar[i] = Convert.ToInt32(Console.ReadLine());
toplam = toplam + notlar[i];
ort = toplam / 20;
}
Console.WriteLine("Toplam " + toplam);
Console.WriteLine("Ortalama " + ort);


ort = toplam / 20;

Bu ifadeyi for döngüsü içerisinden çıkarabilirsiniz. Gereksiz işlem yapılmamış olur, her seferinde ortalamayı hesaplamasına gerek yok.

Eğer 50'den büyük olan notlar için kaçıncı not olduğunun bir önemi yoksa işlem daha basit. Diğer türlüyse de biraz fikir vermiş olayım.

notlar girdisi alındıktan sonra

if(notlar>50)
buyuk50den[j]=notlar;
j++;

diye bir dizi daha kullanabilirsiniz.

Burada yaptığımız 50'den büyük olanları kaydetmek için ayrı bir dizi kullanmak. Peki sıra için ne yaparız? Onda da aynı mantık, bir deneyin isterseniz. Çok zor gelirse yine yardımcı olayım. Biraz karışık gibi gelebilir çünkü ilk seferde.

garui görürse de daha farklı yoldan çözüm önerebilir belki. Benim aklıma bazen kompleks veya cins cins yollar gelir :)

Dediğinizi anladım 50 den büyük sayılar için ayrı bir dizi oluşturup o diziyi yazdıracağız. Yazdığınız diziyi yazdığınız şekilde nasıl tanımlayabilirim biraz daha ayrıntılı gösterebilirseniz iyi olur, teşekkürler tekrar.

Tamam o zaman şöyle bir deneyelim bakalım oluyor mu.

int[] notlar = new int[20]; 
int[] buyuk50 = new int[20];
int i,j=0;
int toplam = 0;
int ort = 0;
for (i = 0; i <= 19; i++)
{
Console.Write("{0}. notu giriniz: ", i + 1);
notlar[i] = Convert.ToInt32(Console.ReadLine());
if(notlar[i]>50)
{
buyuk50[j]=notlar[i];
j++;
}

toplam = toplam + notlar[i];
}

ort = toplam / 20;
Console.WriteLine("Toplam " + toplam);
Console.WriteLine("Ortalama " + ort);

j=0;

for(i=0;i<=20;i++)
{
if(notlar[i]>50)
{
Console.WriteLine("{0}. not = {1}",i+1,buyuk50[j]);
j++;
}
}


Biraz daha farklı olabilirdi ama dümdüz yazdım, ilk aklıma böyle geldi. Anlamadığın noktalar olmuş olabilir, lütfen sor.


Bu mesaja 1 cevap geldi.
N
13 yıl
Binbaşı

quote:

Orijinalden alıntı: MrOwl

quote:

Orijinalden alıntı: ANIL_00

quote:

Orijinalden alıntı: MrOwl

quote:

Orijinalden alıntı: ANIL_00

quote:

Orijinalden alıntı: MrOwl

50'den büyük, küçük ve eşit olanları tek tek(hangi not hangi değer) yazdırmak istiyorsunuz, doğru mu anladım?

Evet dediğiniz gibi.
1. Girilen 20 tane notun toplamını ve ortalamasını yazdırmasını
2. 50'den büyük olan notları yazdırmasını
3. 50'den küçük olan notların ise adedini
4. 50 olan notların ise toplamını yazdırmasını istiyorum ve bunları son kertede göstersin yani 20.sayıyı girdikten sonra..
Şu kodda 1. adımı gerçekleştirdim sanırım.
            int[] notlar = new int[20]; 
int i;
int toplam = 0;
int ort = 0;
for (i = 0; i <= 19; i++)
{
Console.Write("{0}. notu giriniz: ", i + 1);
notlar[i] = Convert.ToInt32(Console.ReadLine());
toplam = toplam + notlar[i];
ort = toplam / 20;
}
Console.WriteLine("Toplam " + toplam);
Console.WriteLine("Ortalama " + ort);


ort = toplam / 20;

Bu ifadeyi for döngüsü içerisinden çıkarabilirsiniz. Gereksiz işlem yapılmamış olur, her seferinde ortalamayı hesaplamasına gerek yok.

Eğer 50'den büyük olan notlar için kaçıncı not olduğunun bir önemi yoksa işlem daha basit. Diğer türlüyse de biraz fikir vermiş olayım.

notlar girdisi alındıktan sonra

if(notlar>50)
buyuk50den[j]=notlar;
j++;

diye bir dizi daha kullanabilirsiniz.

Burada yaptığımız 50'den büyük olanları kaydetmek için ayrı bir dizi kullanmak. Peki sıra için ne yaparız? Onda da aynı mantık, bir deneyin isterseniz. Çok zor gelirse yine yardımcı olayım. Biraz karışık gibi gelebilir çünkü ilk seferde.

garui görürse de daha farklı yoldan çözüm önerebilir belki. Benim aklıma bazen kompleks veya cins cins yollar gelir :)

Dediğinizi anladım 50 den büyük sayılar için ayrı bir dizi oluşturup o diziyi yazdıracağız. Yazdığınız diziyi yazdığınız şekilde nasıl tanımlayabilirim biraz daha ayrıntılı gösterebilirseniz iyi olur, teşekkürler tekrar.

Tamam o zaman şöyle bir deneyelim bakalım oluyor mu.

int[] notlar = new int[20]; 
int[] buyuk50 = new int[20];
int i,j=0;
int toplam = 0;
int ort = 0;
for (i = 0; i <= 19; i++)
{
Console.Write("{0}. notu giriniz: ", i + 1);
notlar[i] = Convert.ToInt32(Console.ReadLine());
if(notlar[i]>50)
{
buyuk50[j]=notlar[i];
j++;
}

toplam = toplam + notlar[i];
}

ort = toplam / 20;
Console.WriteLine("Toplam " + toplam);
Console.WriteLine("Ortalama " + ort);

j=0;

for(i=0;i<=20;i++)
{
if(notlar[i]>50)
{
Console.WriteLine("{0}. not = {1}",i+1,buyuk50[j]);
j++;
}
}


Biraz daha farklı olabilirdi ama dümdüz yazdım, ilk aklıma böyle geldi. Anlamadığın noktalar olmuş olabilir, lütfen sor.

Artık olduğu kadarıyla :) Çeşitli yöntemleri öğrenmiş oldum sayenizde, ara sıra bölümüm nedeniyle buraya soru soruyorum. Sizi daha fazla meşgul etmek istemem, yardımınız için çok teşekkür ederim. Kendinize iyi bakın


Bu mesaja 1 cevap geldi.
M
13 yıl
Yüzbaşı

quote:

Orijinalden alıntı: ANIL_00

quote:

Orijinalden alıntı: MrOwl

quote:

Orijinalden alıntı: ANIL_00

quote:

Orijinalden alıntı: MrOwl

quote:

Orijinalden alıntı: ANIL_00

quote:

Orijinalden alıntı: MrOwl

50'den büyük, küçük ve eşit olanları tek tek(hangi not hangi değer) yazdırmak istiyorsunuz, doğru mu anladım?

Evet dediğiniz gibi.
1. Girilen 20 tane notun toplamını ve ortalamasını yazdırmasını
2. 50'den büyük olan notları yazdırmasını
3. 50'den küçük olan notların ise adedini
4. 50 olan notların ise toplamını yazdırmasını istiyorum ve bunları son kertede göstersin yani 20.sayıyı girdikten sonra..
Şu kodda 1. adımı gerçekleştirdim sanırım.
            int[] notlar = new int[20]; 
int i;
int toplam = 0;
int ort = 0;
for (i = 0; i <= 19; i++)
{
Console.Write("{0}. notu giriniz: ", i + 1);
notlar[i] = Convert.ToInt32(Console.ReadLine());
toplam = toplam + notlar[i];
ort = toplam / 20;
}
Console.WriteLine("Toplam " + toplam);
Console.WriteLine("Ortalama " + ort);


ort = toplam / 20;

Bu ifadeyi for döngüsü içerisinden çıkarabilirsiniz. Gereksiz işlem yapılmamış olur, her seferinde ortalamayı hesaplamasına gerek yok.

Eğer 50'den büyük olan notlar için kaçıncı not olduğunun bir önemi yoksa işlem daha basit. Diğer türlüyse de biraz fikir vermiş olayım.

notlar girdisi alındıktan sonra

if(notlar>50)
buyuk50den[j]=notlar;
j++;

diye bir dizi daha kullanabilirsiniz.

Burada yaptığımız 50'den büyük olanları kaydetmek için ayrı bir dizi kullanmak. Peki sıra için ne yaparız? Onda da aynı mantık, bir deneyin isterseniz. Çok zor gelirse yine yardımcı olayım. Biraz karışık gibi gelebilir çünkü ilk seferde.

garui görürse de daha farklı yoldan çözüm önerebilir belki. Benim aklıma bazen kompleks veya cins cins yollar gelir :)

Dediğinizi anladım 50 den büyük sayılar için ayrı bir dizi oluşturup o diziyi yazdıracağız. Yazdığınız diziyi yazdığınız şekilde nasıl tanımlayabilirim biraz daha ayrıntılı gösterebilirseniz iyi olur, teşekkürler tekrar.

Tamam o zaman şöyle bir deneyelim bakalım oluyor mu.

int[] notlar = new int[20]; 
int[] buyuk50 = new int[20];
int i,j=0;
int toplam = 0;
int ort = 0;
for (i = 0; i <= 19; i++)
{
Console.Write("{0}. notu giriniz: ", i + 1);
notlar[i] = Convert.ToInt32(Console.ReadLine());
if(notlar[i]>50)
{
buyuk50[j]=notlar[i];
j++;
}

toplam = toplam + notlar[i];
}

ort = toplam / 20;
Console.WriteLine("Toplam " + toplam);
Console.WriteLine("Ortalama " + ort);

j=0;

for(i=0;i<=20;i++)
{
if(notlar[i]>50)
{
Console.WriteLine("{0}. not = {1}",i+1,buyuk50[j]);
j++;
}
}


Biraz daha farklı olabilirdi ama dümdüz yazdım, ilk aklıma böyle geldi. Anlamadığın noktalar olmuş olabilir, lütfen sor.

Artık olduğu kadarıyla :) Çeşitli yöntemleri öğrenmiş oldum sayenizde, ara sıra bölümüm nedeniyle buraya soru soruyorum. Sizi daha fazla meşgul etmek istemem, yardımınız için çok teşekkür ederim. Kendinize iyi bakın

Rica ederim buraya dinlenmeye geliyorum, seve seve cevaplarım. Ben cevaplamassam arkadaşlar cevaplar. Olduğu kadarıyla deme, sen zaten programı şöyle detaylıca bir 5-10 dakika bakınca olayı anlarsın

50'den büyük sayılar için bir dizi oluşturduk. 50'den büyük sayıları not sırasına göre o diziye kaydettik.

Sonra döngü dışında yazdırma işlemi yaptırmak için, yine girilen notları gözden geçirdik. 50'den büyük olduğunda sayıyı yazdırdık. Diziye de gerek yoktu ama, mantığı kolay kavransın diye ekledim.

Sen de kendine iyi bak İyi çalışmalar...





< Bu mesaj bu kişi tarafından değiştirildi MrOwl -- 7 Aralık 2012; 18:31:11 >
Bu mesaja 1 cevap geldi.
H
13 yıl
Onbaşı

merhaba arkadaşlar.
c de WM_KEYDOWN WM_KEYUP komutları nasıl kullanılır ?
bu komutlarla ctrl+c/v gibi komutlar uygulanabilir mi?





< Bu mesaj bu kişi tarafından değiştirildi hezafençelebi -- 9 Aralık 2012; 0:27:34 >

G
13 yıl
Yüzbaşı

quote:

Orijinalden alıntı: MrOwl

quote:

Orijinalden alıntı: ANIL_00

quote:

Orijinalden alıntı: MrOwl

50'den büyük, küçük ve eşit olanları tek tek(hangi not hangi değer) yazdırmak istiyorsunuz, doğru mu anladım?

Evet dediğiniz gibi.
1. Girilen 20 tane notun toplamını ve ortalamasını yazdırmasını
2. 50'den büyük olan notları yazdırmasını
3. 50'den küçük olan notların ise adedini
4. 50 olan notların ise toplamını yazdırmasını istiyorum ve bunları son kertede göstersin yani 20.sayıyı girdikten sonra..
Şu kodda 1. adımı gerçekleştirdim sanırım.
            int[] notlar = new int[20]; 
int i;
int toplam = 0;
int ort = 0;
for (i = 0; i <= 19; i++)
{
Console.Write("{0}. notu giriniz: ", i + 1);
notlar[i] = Convert.ToInt32(Console.ReadLine());
toplam = toplam + notlar[i];
ort = toplam / 20;
}
Console.WriteLine("Toplam " + toplam);
Console.WriteLine("Ortalama " + ort);


ort = toplam / 20;

Bu ifadeyi for döngüsü içerisinden çıkarabilirsiniz. Gereksiz işlem yapılmamış olur, her seferinde ortalamayı hesaplamasına gerek yok.

Eğer 50'den büyük olan notlar için kaçıncı not olduğunun bir önemi yoksa işlem daha basit. Diğer türlüyse de biraz fikir vermiş olayım.

notlar girdisi alındıktan sonra

if(notlar>50)
buyuk50den[j]=notlar;
j++;

diye bir dizi daha kullanabilirsiniz.

Burada yaptığımız 50'den büyük olanları kaydetmek için ayrı bir dizi kullanmak. Peki sıra için ne yaparız? Onda da aynı mantık, bir deneyin isterseniz. Çok zor gelirse yine yardımcı olayım. Biraz karışık gibi gelebilir çünkü ilk seferde.

garui görürse de daha farklı yoldan çözüm önerebilir belki. Benim aklıma bazen kompleks veya cins cins yollar gelir :)

Alıntıları Göster
Teşekkür ederim MrOwl.


Bu mesaja 1 cevap geldi.
J
13 yıl
Binbaşı

fflush(stdin);
yapısı yerine fonksiyon olmayan nasıl bir yapı kullanabilirim?


Bu mesaja 1 cevap geldi.
M
13 yıl
Yüzbaşı

quote:

Orijinalden alıntı: jervis

fflush(stdin);
yapısı yerine fonksiyon olmayan nasıl bir yapı kullanabilirim?

Bu soruna cevap oluyor mu jervis? Veya tam olarak yapmak istediğin nedir?

http://www.sorucevap.com/bilisimteknolojisi/programcilik/c/ders.asp?206634


Bu mesaja 3 cevap geldi.
M
13 yıl
Yüzbaşı

quote:

Orijinalden alıntı: garui

Teşekkür ederim MrOwl.

Ben teşekkür ederim Yüzbaşım.


Bu mesaja 2 cevap geldi.
J
13 yıl
Binbaşı

quote:

Orijinalden alıntı: MrOwl

quote:

Orijinalden alıntı: jervis

fflush(stdin);
yapısı yerine fonksiyon olmayan nasıl bir yapı kullanabilirim?

Bu soruna cevap oluyor mu jervis? Veya tam olarak yapmak istediğin nedir?

http://www.sorucevap.com/bilisimteknolojisi/programcilik/c/ders.asp?206634

fflush(stdin) bir fonksiyondur,ben fonksiyon kullanmadan bu işlevi yapabilecek kod varmıdır diye soruyorum?


Bu mesaja 1 cevap geldi.
Ü
13 yıl
Çavuş

selam arkadaşlar c de main () fonksiyonuna parametre aktarımı ile ilgili sorum var

soru: a,b,c birer tamsayı olmak üzere, belirsiz sayıda verilen (a,b,c) değer grubu için Y=a+2b+3c
değeri hesaplanıyor. Buna göre,
a) Y değerlerinin mutlak değerlerinin toplamını,
b) Elde edilen tüm Y değerleri içerisinde ikinci ve sondan ikinci olan Y değerlerini ve hangi (a,b,c)
den elde edildiğini, bulup yazdıran bir C programı yazınız.

soruyu code blocksta çözdüm hata varmı bilmiyorum ama sorun şu ki code blokcsta programı çalıştırdım ama parametreleri nerden gireceğimi bilmiyorum yardımcı olursanız sevinirim

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main(int argsay,char*argvek[])
{
int i,k=0,top,y;
for(i=1;i<argsay;i=i+3)
{
y=atoi(argvek)+atoi(argvek[i+1])+atoi(argvek[i+2]);
top=abs(y)+top;
k++;
if (k==2)
printf("2 y degeri=%d",y);
if(k==argsay-1)
printf("sondan 2.y degeri=&d",y);
}
printf("toplam degeri=%d",top);
getch ();
return 0;
}





< Bu mesaj bu kişi tarafından değiştirildi ünal719 -- 9 Aralık 2012; 16:25:09 >
Bu mesaja 2 cevap geldi.
V
13 yıl
Çavuş

kolay gelsin arkadaşlar. Arkadaşlar visual studio ile report oluşturuyorum programın içinde. MDb den oluşturduğum raporu bir sütuna göre sıralıyor. ama sıralama yaparken istiyorumki Abdulkadir doğa haluk.ikincisi abdulkadir doğa kazım şekilde sıralarken program sıralamayı
abdulkadir doğa haluk
kazım
eğriö mahmut şeklinde sıralıyor. yani aynı ismi bir kere yazıyor. ekli resimde mevcut.

ben istiyorumki:

abdulkadir doğa haluk
abdulkadir doğa kazım
abdulkadir eğriö mahmut şeklinde raporda sıralasın istiyorum. bu şekilde nasıl yazdırırır report da.Acil yardıma ihtiyacım var.

< Resime gitmek için tıklayın >



S
13 yıl
Yarbay

quote:

Orijinalden alıntı: ünal719

selam arkadaşlar c de main () fonksiyonuna parametre aktarımı ile ilgili sorum var

soru: a,b,c birer tamsayı olmak üzere, belirsiz sayıda verilen (a,b,c) değer grubu için Y=a+2b+3c
değeri hesaplanıyor. Buna göre,
a) Y değerlerinin mutlak değerlerinin toplamını,
b) Elde edilen tüm Y değerleri içerisinde ikinci ve sondan ikinci olan Y değerlerini ve hangi (a,b,c)
den elde edildiğini, bulup yazdıran bir C programı yazınız.

soruyu code blocksta çözdüm hata varmı bilmiyorum ama sorun şu ki code blokcsta programı çalıştırdım ama parametreleri nerden gireceğimi bilmiyorum yardımcı olursanız sevinirim

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main(int argsay,char*argvek[])
{
int i,k=0,top,y;
for(i=1;i<argsay;i=i+3)
{
y=atoi(argvek)+atoi(argvek[i+1])+atoi(argvek[i+2]);
top=abs(y)+top;
k++;
if (k==2)
printf("2 y degeri=%d",y);
if(k==argsay-1)
printf("sondan 2.y degeri=&d",y);
}
printf("toplam degeri=%d",top);
getch ();
return 0;
}

c yi tam hatırlayamıyorum ama parametre giremiyorum dediğin değer girmekmi scanf imi soyluyorsun anlamadım ve up ayrıca



O
13 yıl
Teğmen

şu kodu c'ye çevirebilecek var mı, çok acil ihtiyacım var, şimdiden teşekkürler.

#include <iostream>
#include <time.h>
using namespace std;
int x[21], i, j;
int main(){
srand(time(0));
cout<<"20 elemanli dizi:\n";
for(i=1; i<=20; i++){
x=rand()%21;
}

for(i=1; i<=20; i++){
cout<<x<<"\t";
}
cout<<"\n\nIndisleri eklenmis hali:\n";
for(i=1; i<=20; i++){
x=x+i;
}
for(i=1; i<=20; i++){
cout<<x<<"\t";
}
cout<<"\n";
system("PAUSE");
}





< Bu mesaj bu kişi tarafından değiştirildi ozit -- 9 Aralık 2012; 23:32:21 >
Bu mesaja 1 cevap geldi.