Çözüldü C# kod denetimi

Bu konu çözüldü olarak işaretlenmiştir. Çözülmediğini düşünüyorsanız konuyu rapor edebilirsiniz.

bedrhnaliakcy

Kilopat
Katılım
16 Temmuz 2018
Mesajlar
148
Çözümler
1
Daha fazla  
Cinsiyet
Erkek
Meslek
İndie software
Arkadaşlar merhaba benim aklımda şöyle bir soru var.
Kullanıcıdan dizi oluşturmasını isteyeceğiz. Kullanıcının tanımladığı değer kadar dizi boyutu oluşturacağız. Ve tekrardan kullanıcıdan hangi dizi elemanına değer atayacağını sorup atayacağı değeri alıp eşitleyeceğiz. Bunu bir kere yapacağı için daha sonra tekrar değer girecek mi diye soru soracağız. Evet der ise hangi elemana atayacağını sorup değeri alıp eşitleyeceğiz.
Ve en sonunda dizi içerisindeki bütün elemanları ekrana yazdıracağız.
Ve ben bunu yapmaya çalıştım ama doğrumu yaptım bir bakı verirseniz çok sevinirim.

C#:
using System;
using System.Numerics;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApp1.
{
class Program.
{
private static int e;

static void Main(string[] args)
{
Console.WriteLine("kaç elemanlı dizi oluşturmak istiyorsunuz:");
int y = Convert.ToInt32(Console.ReadLine());
int[] x = new int[y];
e = x.Length;
Console.WriteLine("hangi elemana değer vereceksiniz:");
int z = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("atayacağınız değeri giriniz:");
int s = Convert.ToInt32(Console.ReadLine());

x[z]=s;
Console.WriteLine("x dizisinin içerisinde bulunan eleman sayısı: "+x.Length);
Console.WriteLine("x dizisinin "+ z +" inci index ine atanan değer: "+x[z]);

Console.WriteLine("\n değer vermeye devam edecekmisiniz: ");
Console.WriteLine("evet veye hayır yazınız.\n");
string a = Console.ReadLine();
if (a=="evet")
{
Console.WriteLine("kaç tane değer gireceksin: ");
int r = Convert.ToInt16(Console.ReadLine());
if (r<=y)
{
for (int i = 0; i < r; i++)
{
Console.WriteLine("hangi elemana değer vereceksiniz:");
int z1 = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("atayacağınız değeri giriniz:");
int s1 = Convert.ToInt32(Console.ReadLine());
Console.WriteLine(z1 + ". index'in değeri= " + s1);
x[z1] = s1;
Console.ReadLine();
}
Console.WriteLine("görüşmek üzere <<<<<BYE>>>>>");
}

else.
{
Console.WriteLine("girdiğiniz değer dizi boyutunu aşıyor. "+y);
}
}
else.
{
Console.WriteLine("görüşmek üzere <<<<<BYE>>>>>");
}
foreach (int sayilar in x)
{
Console.WriteLine(sayilar);
}

Console.ReadLine();
}
}
}
 
Son düzenleyen: Moderatör:
Çözüm
Kullanıcı sayı yerine başka bir şey yazarsa program çökecektir çünkü try-catch yapısı kullanmamışsınız.
Kullanıcı sayısı derken hocam 2. sorusundaki atamalar mı?
Hayır hayır, kastedilen o değil. Şimdi siz kullanıcıdan girdiği veriyi alıp onu string türünden integer türüne değiştiriyorsunuz. Kullanıcı sayı yazdığı sürece sorun yok, peki kullanıcı gidip "a" yazarsa ne olur? Bunu engellemek için @Kerem00'ın dediği gibi try-catch ile hataya düştüğü durumlarda ne olacağını belirlemelisiniz. Bir farklı alternatif olarak da kullanıcının girdiği verinin sayı mı yoksa sayı harici bir veri mi olduğunu kontrol edip, kodu ona göre çalıştırmak ve kullanıcıyı uyarmaktır.

Bir yazılımı hazırlarken en aptal adamın bile onu sorunsuz kullanabilmesi gerektiğini düşünüp ona göre hazırlayın. Kimsenin siz sayı beklerken harf yazmasını normalde beklemezsiniz ama ya olursa diye programın hataya düşmesine de önlem almanız gerek.
 
Hayır hayır, kastedilen o değil. Şimdi siz kullanıcıdan girdiği veriyi alıp onu string türünden integer türüne değiştiriyorsunuz. Kullanıcı sayı yazdığı sürece sorun yok, peki kullanıcı gidip "a" yazarsa ne olur? Bunu engellemek için @Kerem00'ın dediği gibi try-catch ile hataya düştüğü durumlarda ne olacağını belirlemelisiniz. Bir farklı alternatif olarak da kullanıcının girdiği verinin sayı mı yoksa sayı harici bir veri mi olduğunu kontrol edip, kodu ona göre çalıştırmak ve kullanıcıyı uyarmaktır.

Bir yazılımı hazırlarken en aptal adamın bile onu sorunsuz kullanabilmesi gerektiğini düşünüp ona göre hazırlayın. Kimsenin siz sayı beklerken harf yazmasını normalde beklemezsiniz ama ya olursa diye programın hataya düşmesine de önlem almanız gerek.
Eyvallah hocam sağ olun.
11.sınıfa mı gideceksin? Benim çalışmalarımı bakar mısın bir derlesen?Virtual-coder9/CS-console bu arada bir tanesinde TRY catch yapısı vardı stringden sayıya çevirdim hiç kimse çökertemez :D :) ;)
Lise biteli 1 yıl oldu ya keşke geri döne bilsem o güzel yıllara. nerdeee
 
Uyarı! Bu konu 6 yıl önce açıldı.
Muhtemelen daha fazla tartışma gerekli değildir ki bu durumda yeni bir konu başlatmayı öneririz. Eğer yine de cevabınızın gerekli olduğunu düşünüyorsanız buna rağmen cevap verebilirsiniz.

Technopat Haberler

Yeni konular

Geri
Yukarı