Visual Studio C# Basit Hesap Makinesi Yapımı

Eray Alper

Kilopat
Katılım
16 Şubat 2016
Mesajlar
149
Çözümler
3
Daha fazla  
Cinsiyet
Erkek
Merhaba, C# öğrenmeye yeni başladım ve basit bir hesap makinesi yazmaya çalıştım fakat;

Kod:
using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;



namespace ConsoleApp1

{

    class Program

    {

        static void Main(string[] args)

        {

            int x;

            int y;

            int z;

            int p;



            Console.WriteLine("1. Sayı :");

            x = int.Parse(Console.ReadLine());

            Console.WriteLine("2. Sayı :");

            y = int.Parse(Console.ReadLine());

            Console.WriteLine("Hangi işlem yapılacak?\n 1. Toplama\n 2.Çıkarma\n 3. Çarpma\n 4.Bölme");

            p = int.Parse(Console.ReadLine());

         



            if (p == 1)

            {

                z = x + y;

            }

            if (p == 2)

            {

                z = x - y;

        }

            if (p == 3)

            {

                z = x * y;

            }

            if (p == 4)

            {

                z = x / y;  //BU SATIRDA CS0165 HATASI VERİYOR VE ATANMAYAN 'Z' DEĞİŞKENİNİN KULLANIMI YAZIYOR.

            }

         

            Console.WriteLine($"Sonuç : {z}");

            Console.ReadKey();

        }

    }

}



İnternetten biraz baktım ama nasıl çözeceğimi anlamadım. Biraz değiştirip :



using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;



namespace ConsoleApp1

{

    class Program

    {

        static void Main(string[] args)

        {

            int x;

            int y;

            int z;

            int p;



            Console.WriteLine("1. Sayı :");

            x = int.Parse(Console.ReadLine());

            Console.WriteLine("2. Sayı :");

            y = int.Parse(Console.ReadLine());

            Console.WriteLine("Hangi işlem yapılacak?\n 1. Toplama\n 2.Çıkarma\n 3. Çarpma\n 4.Bölme");

            p = int.Parse(Console.ReadLine());



          /* BU SATIRLARI EKLEYİNCE DÜZELDİ AMA KULLANICININ 0 GİRMESİ GEREKİYOR BU SATIRLARI SİLEREK NASIL DÜZELTEBİLİRİM.



            Console.WriteLine("Lütfen 0 girin.");

            z = int.Parse(Console.ReadLine());



          */



            if (p == 1)

            {

                z = x + y;

            }

            if (p == 2)

            {

                z = x - y;

        }

            if (p == 3)

            {

                z = x * y;

            }

            if (p == 4)

            {

                z = x / y;

            }

         

            Console.WriteLine($"Sonuç : {z}");

            Console.ReadKey();

        }

    }

}

Lütfen çözümü kolaysa sinirlenmeden yazın ya da "internete bak biraz cahil" falan yazmayın. Daha yeni kodlama dersleri bakıyorum, videolardan ve kitaplardan (eğitim sistemimiz çok güzel olduğu ve yeterli miktarda yazılım ve kodlama dersleri gösterdikleri için) öğrenmeye başladım. Bazen bile unutup yanlışlık yapıyorum kusura bakmayın. Teşekkür ederim şimdiden.
 
Son düzenleyen: Moderatör:
Merhaba, Javascript'den bildiğim kadarıyla yardımcı olmaya çalışayım. Öncelikle if if kısmını switch-case ile değiştirin eziyet çekmeyin.

switch (p) {

case 1:
Console.WriteLine(x+y);
break;

case 2...
}

gibi devam ettirin, int z tanımlamanıza gerek yok.
 
Senin için çalışan bir örnek hazırladım. @Daniel Saddler 'in de dediği gibi switch-case yapısını kullanman daha mantıklı olacaktır. İstersen, sonucu gösterdikten sonra, "goto" yapısını kullanarak, "tekrar denemek ister misiniz?" gibi bir soru sorup, cevaba göre en başa yönlendirebilirsin.
C#:
            int x, y, sonuc;

            tekrar_basla:
          
            Console.WriteLine("Merhaba");
            System.Threading.Thread.Sleep(2000);

            Console.WriteLine("1. Sayı :");
            x = Convert.ToInt32(Console.ReadLine());

            Console.WriteLine("2. Sayı :");
            y = Convert.ToInt32(Console.ReadLine());

            Console.WriteLine("Hangi işlem yapılacak?\n 1. Toplama\n 2. Çıkarma\n 3. Çarpma\n 4. Bölme");
            sonuc = Convert.ToInt32(Console.ReadLine());

            switch(sonuc) {
                case 1:
                    sonuc = x + y;
                    break;
                case 2:
                    sonuc = x - y;
                    break;
                case 3:
                    sonuc = x * y;
                    break;
                case 4:
                    sonuc = x / y;
                    break;
                default:
                    Console.WriteLine("Hatalı bir tuşlama yaptınız!");
                    goto tekrar_basla;
            }
            Console.WriteLine("Sonuç: " + sonuc);
            Console.ReadKey();
 
Son düzenleme:
Senin için çalışan bir örnek hazırladım. @Daniel Saddler 'in de dediği gibi switch-case yapısını kullanman daha mantıklı olacaktır. İstersen, sonucu gösterdikten sonra, "goto" yapısını kullanarak, "tekrar denemek ister misiniz?" gibi bir soru sorup, cevaba göre en başa yönlendirebilirsin.
C#:
            int x, y, sonuc;

            tekrar_basla:

            Console.WriteLine("1. Sayı :");
            x = Convert.ToInt32(Console.ReadLine());

            Console.WriteLine("2. Sayı :");
            y = Convert.ToInt32(Console.ReadLine());

            Console.WriteLine("Hangi işlem yapılacak?\n 1. Toplama\n 2. Çıkarma\n 3. Çarpma\n 4. Bölme");
            sonuc = Convert.ToInt32(Console.ReadLine());

            switch(sonuc) {
                case 1:
                    sonuc = x + y;
                    break;
                case 2:
                    sonuc = x - y;
                    break;
                case 3:
                    sonuc = x * y;
                    break;
                case 4:
                    sonuc = x / y;
                    break;
                default:
                    Console.WriteLine("Hatalı bir tuşlama yaptınız!");
                    goto tekrar_basla;
            }
            Console.WriteLine("Sonuç: " + sonuc);
            Console.ReadKey();
Çok teşekkürler cevabınız için ama yeni başladığım için switch-case,goto vs. bilmiyorum anladığım kadarıyla switch if gibi case'ler de else if gibi.
 
Çok teşekkürler cevabınız için ama yeni başladığım için switch-case,goto vs. bilmiyorum anladığım kadarıyla switch if gibi case'ler de else if gibi. sonuc = Convert.ToInt32(Console.ReadLine());
Zor şeyler değil. Örnekler yaparak, kısa sürede öğrenirsiniz. Switch-case yapısı kısaca; önceden belli olan sonuçlara göre programın devamını sağlayan bir yapı denebilir. Mesela 1'den 4'e kadar kullandığımız gibi. Veya ok yönlerine göre ekrandaki bir oyun karakterini yönlendireceğiz ve her bir case'e ok tuşlarına basıldığını algılayan komutları yazarız. Üst ok tuşuna basıldığında şu şu yapılsın gibi. Goto da belirlediğiniz yere geri döndürüyor kısaca.

degisken = Convert.ToInt32(Console.ReadLine());

Yukarıdaki yapı da, klavyeden alınan sayısal değeri, int tipine dönüştürmeyi sağlıyor. Klavyeden alınan String değerlerle matematik işlemi yapamayacağımız için, matematik işlemleri öncesinde böyle bir dönüştürme işlemine ihtiyaç duyuyoruz.
 
Bu içeriği görüntülemek için üçüncü taraf çerezlerini yerleştirmek için izninize ihtiyacımız olacak.
Daha detaylı bilgi için, çerezler sayfamıza bakınız.
Bu video windows için visual studio programlama sayfası nasıl açılır hakkında
Bu içeriği görüntülemek için üçüncü taraf çerezlerini yerleştirmek için izninize ihtiyacımız olacak.
Daha detaylı bilgi için, çerezler sayfamıza bakınız.
Bu da 4 işlem yapan basit hesap makinesi yapımı. Video gerçekten çok basitçe anlatılmış izleyince yapması çok kolay. Buradan bakmanı öneririm hatta istersen 60-80 videosu var C# visual studio için hepsini izleyebilirsin.
 

Yeni konular

Geri
Yukarı