Dringend! C# Codefehler, blos wo?

2Antworten
  1. #1
    Avatar von telecaster95
    telecaster95 ist offline
    Themen Starter

    Title
    Benutzer
    seit
    11.04.2011
    Ort
    /home/tele
    Beiträge
    1.617

    Standard Dringend! C# Codefehler, blos wo?

    Hallo,
    Ich hab eine consolenanwendung in C # geschrieben, um Handytarife zu berrechnen und das billigste auszugeben. Nur kommt bei Tarif 1 immer null raus
    Warum? Zur Kontrolle lass ich zum schluß alle Ergebnisse ausgeben:
    Code:
     class Program
        {
            static double ausgabeTarif1 = 0;
            static double ausgabeTarif2 = 0;
            static double ausgabeTarif3 = 0;
            static double ausgabeTarif4 = 0;
            static double ausgabeTarif5 = 0;
            static double minuteneingabe = 0;
            static double ergebnis = 0;
            static void Main(string[] args)
            {
                Console.WriteLine("Gebe bitte die Anzahl der Minuten an: ");
                minuteneingabe = Convert.ToDouble(Console.ReadLine());
               ausgabeTarif1 = gibTarif1(0);
               ausgabeTarif2 = gibTarif2(0);
               ausgabeTarif3 = gibTarif3(0);
               ausgabeTarif4 = gibTarif4(0);
               ausgabeTarif5 = gibTarif5(0);
               gibKleinstesErgebnis();
               Console.WriteLine(ergebnis);
               Console.ReadLine();
               Console.WriteLine(ausgabeTarif1);
               Console.WriteLine(ausgabeTarif2);
               Console.WriteLine(ausgabeTarif3);
               Console.WriteLine(ausgabeTarif4);
               Console.WriteLine(ausgabeTarif5);
               Console.ReadLine();
            }
            static double gibTarif1(double minuten)
            {
                ausgabeTarif1 = 0.15 * minuteneingabe + 9.95;
                return ausgabeTarif1;
            }
            static double gibTarif2(double minuten)
            {
                ausgabeTarif2 = 0.40 * minuteneingabe;
                return ausgabeTarif2;
            }
            static double gibTarif3(double minuten)
            {
                ausgabeTarif3 = 0.375 * minuteneingabe + 22.75;
                return ausgabeTarif3;
            }
            static double gibTarif4(double minuten)
            {
                ausgabeTarif4 = minuteneingabe + 66.20;
                return ausgabeTarif4;
            }
            static double gibTarif5(double minuten)
            {
                ausgabeTarif5 = 0.29 * minuteneingabe + 29.90;
                return ausgabeTarif5;
            }
            static void gibKleinstesErgebnis()
            {
                if (ausgabeTarif1 < ausgabeTarif2 && ausgabeTarif1 < ausgabeTarif3 && ausgabeTarif1 < ausgabeTarif4 && ausgabeTarif1 < ausgabeTarif5)
                {
                    ausgabeTarif1 = ergebnis;
                }
                if (ausgabeTarif2 < ausgabeTarif1 && ausgabeTarif2 < ausgabeTarif3 && ausgabeTarif2 < ausgabeTarif4 && ausgabeTarif2 < ausgabeTarif5)
                {
                    ausgabeTarif2 = ergebnis;
                }
                if (ausgabeTarif3 < ausgabeTarif1 && ausgabeTarif3 < ausgabeTarif2 && ausgabeTarif3 < ausgabeTarif4 && ausgabeTarif3 < ausgabeTarif5)
                {
                    ausgabeTarif3 = ergebnis;
                }
                if (ausgabeTarif4 < ausgabeTarif1 && ausgabeTarif4 < ausgabeTarif2 && ausgabeTarif4 < ausgabeTarif3 && ausgabeTarif4 < ausgabeTarif5)
                {
                    ausgabeTarif4 = ergebnis;
                }
                if (ausgabeTarif5 < ausgabeTarif1 && ausgabeTarif5 < ausgabeTarif2 && ausgabeTarif5 < ausgabeTarif3 && ausgabeTarif5 < ausgabeTarif4)
                {
                    ausgabeTarif5 = ergebnis;
                }
            }
        }
    }

  2. #2
    Avatar von Spyx
    Spyx ist offline

    Title
    Moderator
    seit
    21.08.2006
    Beiträge
    9.155

    Standard

    Ich kann dir nicht sagen, warum dein Programm bei Tarif 1 immer null ausgibt. Mit diesem Quelltext sollte das eigentlich nicht passieren.

    Aber dein Quellcode ist sehr unschön. Es gibt sehr viele Codeteile, die du mehrfach verwendest und zusammenfassen kannst. Hast du schon mal etwas von Arrays und Funktionsparametern gehört? Damit wäre dein Code wesentlich kürzer, übersichtlicher und sauberer.

    Wenn Tarif 4 eine Flatrate ist, dann ist Tarif 1 der billigste Tarif bis 375 Gesprächsminuten. Danach ist Tarif 4 der billigste. Aber dafür habe ich einfach nur die Funktionen zeichnen lassen und den Schnittpunkt berechnet .

    Edit:
    Wenn du dir eine Prepaidkarte bei einem Discounter kaufst, dann kostet dich das einmal ~10€ für die SIM-Karte und dann ~9ct pro Minute oder SMS. Dann ist die Flatrate von Tarif 4 erst billiger, wenn man mehr als 735 Minuten (12 Stunden + 15 Minuten) pro Monat telefoniert.

  3. #3
    Avatar von telecaster95
    telecaster95 ist offline
    Themen Starter

    Title
    Benutzer
    seit
    11.04.2011
    Ort
    /home/tele
    Beiträge
    1.617

    Standard

    Haha!
    Das Programm ist ein Beispiel aus meinem Programmierunterricht^^
    Die Tarife gibt es gibt nicht wirklich Danke trotztem, es lag an:
    Code:
    ausgabeTarif1 = ergebnis;
    Es müsste bei allen Tarifen(ja, warum auch immer es letztens nicht klappte) so heißen
    ergebnis = ausgabeTarif1;
    Das war der Fehler

Ähnliche Themen

  1. Hilfe Dringend

    Von kingkong im Forum Netzteile, Kühlung und Gehäuse
    Antworten: 3
    Letzter Beitrag: 05.12.2012, 18:03
  2. Neuen Cpu? Bloß welchen?

    Von jimmyfloyd im Forum Mainboard, CPU und RAM
    Antworten: 16
    Letzter Beitrag: 18.04.2010, 13:56
  3. Homeserver einrichten, bloß wie??

    Von RcCarDriver im Forum Netzwerk Probleme
    Antworten: 3
    Letzter Beitrag: 13.09.2009, 19:29
  4. DRINGEND: W-Lan

    Von Kintaro im Forum WLAN
    Antworten: 12
    Letzter Beitrag: 16.01.2008, 13:34
  5. Grafikfehler, bloß was is defekt?

    Von pcfreek im Forum Grafikkarten und Monitore
    Antworten: 12
    Letzter Beitrag: 19.08.2006, 10:39
Diese Seite benutzt Cookies Durch die weitere Nutzung der Seite stimmen Sie der Verwendung von Cookies zu. Infos zum Datenschutz