C# :: Aufgabe #329 :: Lösung #1

8 Lösungen Lösungen öffentlich
#329

Spannung, Stromstärke, Widerstand

Anfänger - C# von JKooP - 04.10.2020 um 12:43 Uhr
Schreibe eine Methode/Funktion, die je nach Eingabe von 2 Werten den fehlenden Wert ermittelt.
Die möglichen einzugebenden Werte sind Spannung (U [Volt]), Widerstand (R [Ohm]) bzw. Stromstärke (I [Ampere]).
Der fehlende Wert kann null/nothing oder jedes andere beliebige Zeichen sein.
Die Formel zur Berechnung lautet: U = R * I

Beispiel:

U := 270.0
R := null
I := 3.0

R = I / U = 270 / 3 = 90.0 Ohm

Viel Spaß
#1
vote_ok
von Waldgeist (2310 Punkte) - 12.10.2020 um 13:00 Uhr
Hallo,

hier meine Lösung.

Quellcode ausblenden C#-Code
using System;
using System.Windows.Forms;

namespace Aufgabe_329___Strom
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private int I = 0;
        private int U = 0;
        private int R = 0;
        private bool fehler;

        private void Anzeige()
        {
            // Anzeige Stromstärke Textbox 1 --> Prüfen ob direkt angezeigt werden kann, falls nein Variable I=0 setzen und Textbox aktualisieren
            try
            {
                textBox1.Text = I.ToString();
            }
            catch
            {
                I = 0;
                textBox1.Text = I.ToString();
            }

            // Anzeige Spannung Textbox 2 --> Prüfen ob direkt angezeigt werden kann, falls nein Variable U=0 setzen und Textbox aktualisieren
            try
            {
                textBox2.Text = U.ToString();
            }
            catch
            {
                U = 0;
                textBox1.Text = U.ToString();
            }

            // Anzeige Widerstand Textbox 3 --> Prüfen ob direkt angezeigt werden kann, falls nein Variable R=0 setzen und Textbox aktualisieren
            try
            {
                textBox3.Text = R.ToString();
            }
            catch
            {
                R = 0;
                textBox3.Text = R.ToString();
            }
        }

        private int Strom()
        {
            try
            {
                I = Convert.ToInt32(textBox1.Text);
            }
            catch (Exception)
            {
                I = 0;
            }
            return I;
        }

        private int Spannung()
        {
            try
            {
                U = Convert.ToInt32(textBox2.Text);
            }
            catch (Exception)
            {
                U = 0;
            }
            return U;
        }

        private int Widerstand()
        {
            try
            {
                R = Convert.ToInt32(textBox3.Text);
            }
            catch (Exception)
            {
                R = 0;
            }
            return R;
        }

        private void Abfrage()
        {
            fehler = false;
            //Abfrage Werte
            Strom();
            Spannung();
            Widerstand();

            //Prüfung der Werte
            if ((I == 0) && ((U == 0) || (R == 0)))
            {
                fehler = true;
            }

            if ((U == 0) && ((I == 0) || (R == 0)))
            {
                fehler = true;
            }

            if ((R == 0) && ((U == 0) || (I == 0)))
            {
                fehler = true;
            }

            if (fehler)
            {
                MessageBox.Show("Zu wenig Angaben!");
            }
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            Anzeige();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            Close();
        }

        private void button2_Click(object sender, EventArgs e)
        {
            //Abfrage der Werte über Methoden
            Abfrage();

            // Auswertung
            if (I == 0)
            {
                try
                {
                    I = U / R;
                    Anzeige();
                }
                catch
                {
                    I = 0;
                    Anzeige();
                }
            }

            if (U == 0)
            {
                try
                {
                    U = R * I;
                    Anzeige();
                }
                catch
                {
                    U = 0;
                    Anzeige();
                }
            }

            if (R == 0)
                try
                {
                    R = U / I;
                    Anzeige();
                }
                catch
                {
                    R = 0;
                    Anzeige();
                }
        }
    }
}

Kommentare:

Für diese Lösung gibt es noch keinen Kommentar

Bitte melden Sie sich an um eine Kommentar zu schreiben.
Kommentar schreiben