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
1824653

Du scheinst einen AdBlocker zu nutzen. Ich würde mich freuen, wenn du ihn auf dieser Seite deaktivierst und dich davon überzeugst, dass die Werbung hier nicht störend ist.