Zadanie kalkulator

0

Witam na programowaniu w Technikum Inf dostaliśmy zadanie by napisać kalkulator, który pobiera liczby tak długo aż nie będziemy chcieli zakończyć. Mamy to napisać na 3 sposoby język dowolny. Wybrałem sobie c#.

I mam tutaj problem mianowice podaje mi złe wyniki co robię żle? Ktoś może mnie oświecić? (Dopiero zaczynam naukę programowania)

 using System;
class App
{
    static void Main()
    {

        double Wynik = 0, Liczba;
        string Znak;
        sbyte licz = 0;
        bool Exit = false;
        while (!Exit)
        {
            Console.Write("Podaj liczbę: ");

            Liczba = Convert.ToDouble(Console.ReadLine());
            if (licz == 0)
            {
                Wynik = Liczba;
                licz = 1;
            }
            Console.Write("Podaj znak(+,-,/,* (=-by wyjść)) : ");
            Znak = Console.ReadLine();
            switch (Znak)
            {
                case "+":
                    Wynik += Liczba;
                    break;
                case "-":
                    Wynik -= Liczba;
                    break;
                case "/":
                    Wynik /= Liczba;
                    break;
                case "*":
                    Wynik *= Liczba;
                    break;
                case "=":
                    Exit = true;
                    break;
                default:
                    Console.Write("Nieprawidłowe działanie!");
                    break;
            }
        }
        Console.Write("Wynik końcowy to \"{0}\".", Wynik);
        Console.ReadLine();
    }
}
0

W jakim sensie 'złe wyniki'?

0

No np. Dam 5+5+5-3 do wypisze 3 albo 0,33+0,67 to daje 0,34... a np. 5+5+5 wypisuje dobrze jak i 1+1 ale już 2*0,5 nie

0

prześledź dokładnie co się po kolei wykonuje gdy wpisujesz 5+5, ile po każdej instrukcji wynosi Liczba a ile Wynik.

0

Cześć.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            double Wynik = 0, Liczba = 0;
            string Znak;
            sbyte licz = 0;
            bool Exit = false;
            while (!Exit)
            {
                if (licz == 0)
                {
                    Console.Write("Podaj liczbę: ");
                    Liczba = Convert.ToDouble(Console.ReadLine());
                }

                if (licz == 0)
                {
                    Wynik = Liczba;
                    licz = 1;

                    continue;
                }

                Console.Write("Podaj znak(+,-,/,* (=-by wyjść)) : ");
                Znak = Console.ReadLine();
                if (Znak == "=") break;

                if (licz != 0)
                {
                    Console.Write("Podaj liczbę: ");
                    Liczba = Convert.ToDouble(Console.ReadLine());
                }

                switch (Znak)
                {
                    case "+":
                        Wynik += Liczba;
                        break;
                    case "-":
                        Wynik -= Liczba;
                        break;
                    case "/":
                        Wynik /= Liczba;
                        break;
                    case "*":
                        Wynik *= Liczba;
                        break;
                    case "=":
                        Exit = true;
                        break;
                    default:
                        Console.Write("Nieprawidłowe działanie!");
                        break;
                }
            }
            Console.Write("Wynik końcowy to \"{0}\".", Wynik);
            Console.ReadLine();
        }
    }
}

Brzydki acz działający kod.

0

Nie musiałeś podawać kodu.

Zrozumiałem co zrobiłem żle ;p Zaraz spróbuje to sam poprawić bez. Pozostają jeszcze 2 metody działania kalkulatora...

0

Kolejne możesz zrobić przy pomocy tablic i list.

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0