Çözüldü C# ödevi

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

Mustafa Ka.

Decapat
Katılım
12 Temmuz 2019
Mesajlar
66
Çözümler
1
Arkadaşlar hepinize merhaba, yaz okulu alıyorum ve hocamız şöyle bir ödev verdi akşam saatlerinde teslim etmem gerekli ben hepsini yapamadım eksik olanlar şunlar.

Soru 1 - klavyeden bir yazı isteyiniz. Yazının içerisinde küme parantezleri arasında bir kısım olsun ({…}) küme parantezlerinin yerini ındexof metotlarıyla bulunuz. Küme parantezlerinin arasındaki yazıyı substring metoduyla elde edip yazınız.

Örnek: Yazı giriniz: Kütahya {porseleni} porseleni.

Soru 2 - klavyeden en fazla iki basamaklı bir sayı isteyiniz. Bunu yazı olarak yazdırınız.

Örnek: Sayı: 48.

Çıktı: Kırk sekiz.

Soru 3 - klavyeden girilen 3 basamaklı sayıyı yazı olarak yazdırınız.

Örnek: Sayı: 546.

Çıktı: Beş yüz kırk altı.

Yardımcı olabilecek arkadaşlara şimdiden teşekkür ederim.
 
Çözüm
1. Ödev:
Kod:
int uzunluk;
string yazi, sub;

Console.Write("Bir yazi girin: ");

yazi = Console.ReadLine();

uzunluk = yazi.IndexOf('}') - yazi.IndexOf('{');
sub = yazi.Substring(yazi.IndexOf('{') + 1, uzunluk - 1);

Console.WriteLine(sub);
Console.ReadLine();


2. Ödev:
Kod:
Console.Write("İki basamaklı bir sayı girin: ");
string sayi = Console.ReadLine();

string[] bir = { "On", "Yirmi", "Otuz", "Kırk", "Elli", "Atmış", "Yetmiş", "Seksen", "Doksan" };
string[] iki = { "Bir", "İki", "Üç", "Dört", "Beş", "Altı", "Yedi", "Sekiz", "Dokuz" };

int p = Convert.ToInt32(sayi[0].ToString()) - 1;
int p2 = Convert.ToInt32(sayi[1].ToString()) - 1;

Console.WriteLine("Çıktı: " + bir[p] + " " + iki[p2]);

Console.ReadLine();


3. Ödev:
Kod:
Console.Write("Üç basamaklı bir sayı girin: ");
string sayi = Console.ReadLine();

string[] bir = { "Yüz", "İki Yüz", "Üç Yüz", "Dört Yüz", "Beş Yüz", "Altı Yüz", "Yedi Yüz", "Sekiz Yüz", "Dokuz Yüz" };
string[] iki = { "On", "Yirmi", "Otuz", "Kırk", "Elli", "Altmış", "Yetmiş", "Seksen", "Doksan" };
string[] uc = { "Bir", "İki", "Üç", "Dört", "Beş", "Altı", "Yedi", "Sekiz", "Dokuz" };

int p = Convert.ToInt32(sayi[0].ToString()) - 1;
int p2 = Convert.ToInt32(sayi[1].ToString()) - 1;
int p3 = Convert.ToInt32(sayi[2].ToString()) - 1;

Console.WriteLine("Çıktı: " + bir[p] + " " + iki[p2] + " " + uc[p3]);

Console.ReadLine();

Herhangi bir hata ayıklama kullanmadım amacına göre kullanıldığında sorun olmayacaktır.
İnan java biliyorum ben, girdi çıktıları pek bilmiyorum C#'ın. Mantıkla anlatmaya çalıştrım.

Bak tüm girdileri STRING türünde yapacaksın.

String sayi = klavyeden girilecek olan.

String türünde dizi oluşturacaksın.
String birler {bir,iki,üç....dokuz}
String onlar {on, yirmi, otuz...doksan},

Girilen string türünü uzunluğuna göre, üç basamaklı sayıların sonuna "yüz" de getirebilirsin.
Bende başlayayım tekrar okul açılacak çalışayım az.
 
(Mesajımın tamamını kabul etmiyor düzenleyeceğim.)
1599132852064.png

Yazdığım yazını sadece yarısına izin veriyor. Acaba karakter sınırı mı var?
--
"Substring" ile "()"'ı yan yana yazınca site bunu kabul etmiyor. Sanırım bir tür Injection koruması.

1. soru için;
C#:
string jelly = "Bugün 3 Eylül 2020. {Jelly}'den herkese selam.";
Örnek olarak string bu olsun.
IndexOf() methodu. istenilen karakterin string üzerinde kaçıncı index üzerinde olduğu dönderir. (Eğer aynı karakterden string içerisinde birden fazla kez farsa ilk bulduğunu yani küçük indese sahip olanı dönderir. Bu yüzden bazı dillerde FirstIndexOf() olarak da geçer.)
Sizden istenen { ile } karakterlerinin index konumlarını bulmanız ve Substring kullanarak o kısımın arasını almanızı istiyor.

Substring ise İndex ve karakter sayısı bilgisine göre String içerisinden başka bir alt bir String oluşturmanızı sağlar.
{'nın konumu 20, }'nın komumu 26. '{' karakterini istemediğimiz için 21'den başlayarak. 26 - 21 = 5 karakter okumamız gerekiyor. Bu yüzden jelly.Substring(21, 5); dediğimiz zaman sadece "Jelly" yazan bir string elde etmiş oluruz. Sizin yapmanız gereken bu algoritmayı C# ile yazmak.

Yardım alabileceğiniz kaynaklar;


İnan Java biliyorum ben, girdi çıktıları pek bilmiyorum C#'ın. Mantıkla anlatmaya çalıştrım.
C# üzerinde klavyeden String almak için Console.ReadLine() methodu var. Tuş(key) almak içinse Console.ReadKey().
 
Son düzenleme:
2. Soru için basit bir algoritma yaptım. Yapmam 5 dakikamı almıştır, sormadan önce yapmayı hiç denemiyor musunuz?
C#:
static void Main(string[] args)
        {
            Basla:
            string[] olabilecekdegerlerimiz = { "", "on", "yirmi", "otuz" ,"kirk","elli","altmış","yetmiş","seksen","doksan"};
            string[] olabilecekdegerlerimiz_birler = { "" ,"bir","iki","üç","dört","beş","altı","yedi","sekiz","dokuz"};
            Console.Write("1-99 arasında sayı giriniz ");
            int girdi = Convert.ToInt32(Console.ReadLine());
            if (girdi > 99)
            {
                Console.WriteLine("geçerli bir deger giriniz");
                Thread.Sleep(1000);
                Console.Clear();
                goto Basla;
            }
            else
            {
                char[] sayilarimiz = girdi.ToString().ToCharArray();
                
                Console.WriteLine(olabilecekdegerlerimiz[Convert.ToInt32(sayilarimiz[0].ToString())] + " " + olabilecekdegerlerimiz_birler[Convert.ToInt32(sayilarimiz[1].ToString())]);
            }
            Console.ReadKey();
        }
Çıktısı:
Kod:
1-99 arasında sayı giriniz 45
kirk beş
Buradan yola çıkarak 3. soruyu kendiniz yapabilirsiniz diye umuyorum.
Not: string dizinlerinde ilk index'i boş bıraktım, istersen silip yazdırdığımız kısımda değeride -1 yapıp yazdırabilirsin.
 
1. Ödev:
Kod:
int uzunluk;
string yazi, sub;

Console.Write("Bir yazi girin: ");

yazi = Console.ReadLine();

uzunluk = yazi.IndexOf('}') - yazi.IndexOf('{');
sub = yazi.Substring(yazi.IndexOf('{') + 1, uzunluk - 1);

Console.WriteLine(sub);
Console.ReadLine();


2. Ödev:
Kod:
Console.Write("İki basamaklı bir sayı girin: ");
string sayi = Console.ReadLine();

string[] bir = { "On", "Yirmi", "Otuz", "Kırk", "Elli", "Atmış", "Yetmiş", "Seksen", "Doksan" };
string[] iki = { "Bir", "İki", "Üç", "Dört", "Beş", "Altı", "Yedi", "Sekiz", "Dokuz" };

int p = Convert.ToInt32(sayi[0].ToString()) - 1;
int p2 = Convert.ToInt32(sayi[1].ToString()) - 1;

Console.WriteLine("Çıktı: " + bir[p] + " " + iki[p2]);

Console.ReadLine();


3. Ödev:
Kod:
Console.Write("Üç basamaklı bir sayı girin: ");
string sayi = Console.ReadLine();

string[] bir = { "Yüz", "İki Yüz", "Üç Yüz", "Dört Yüz", "Beş Yüz", "Altı Yüz", "Yedi Yüz", "Sekiz Yüz", "Dokuz Yüz" };
string[] iki = { "On", "Yirmi", "Otuz", "Kırk", "Elli", "Altmış", "Yetmiş", "Seksen", "Doksan" };
string[] uc = { "Bir", "İki", "Üç", "Dört", "Beş", "Altı", "Yedi", "Sekiz", "Dokuz" };

int p = Convert.ToInt32(sayi[0].ToString()) - 1;
int p2 = Convert.ToInt32(sayi[1].ToString()) - 1;
int p3 = Convert.ToInt32(sayi[2].ToString()) - 1;

Console.WriteLine("Çıktı: " + bir[p] + " " + iki[p2] + " " + uc[p3]);

Console.ReadLine();

Herhangi bir hata ayıklama kullanmadım amacına göre kullanıldığında sorun olmayacaktır.
 
Çözüm

Yeni konular

Geri
Yukarı