C# :: Aufgabe #328 :: Lösung #2

3 Lösungen Lösungen öffentlich
#328

Differenz(en) von Eingabewerten

Fortgeschrittener - C# von JKooP - 04.10.2020 um 12:26 Uhr
Schreibe eine Methode/Funktion, die die maximale bzw. minimale Differenz von Eingabewerten ermittelt.

z.B. f(3, -2, 18, -1, 50)

Min: 1, da Absolut(-2 - -1) = 1
Max: 52, da Absolut(50 - -2) = 52

Viel Spaß
#2
2 Kommentare
vote_ok
von Waldgeist (2310 Punkte) - 13.10.2020 um 13:10 Uhr
Quellcode ausblenden C#-Code
using System;
using System.Collections.Generic;

namespace Aufgabe_328_Differenzieren_von_Eingabewerten
{
    internal class Program
    {
        private static void Main(string[] args)
        {
            //globale Variablen
            List<int> meineListe = new List<int>();
            int länge;
            int min;
            int max;

            Console.WriteLine("Dieses Programm ermittelt die minimale und maximale Differenz von eingegebenen Zahlen!\n\n");

            Eingabe();
            Verarbeiten();
            Ausgabe(länge);

            //Methoden

            void Eingabe()
            {
                int Eingabe;
                string weiter = "ja";
                do
                {
                    Console.Write("Bitte geben Sie eine Zahl ein: ");
                    try
                    {
                        Eingabe = Convert.ToInt32(Console.ReadLine());
                        meineListe.Add(Eingabe);
                    }
                    catch
                    {
                        weiter = "nein";
                    }
                } while (weiter != "nein");
            }

            void Verarbeiten()
            {
                meineListe.Sort();
                min = meineListe[1] - meineListe[0];
                länge = meineListe.Count;
                max = meineListe[länge - 1] - meineListe[0];
            }

            void Ausgabe(int n)
            {
                Console.WriteLine("\n");
                Console.WriteLine("Ihre eingegebenen Zahlen waren:");
                for (int i = 0; i < n; i++)
                {
                    Console.WriteLine("Zahl: " + meineListe[i]);
                }
                Console.WriteLine("\n");
                Console.WriteLine("Minimum beträgt: " + min);
                Console.WriteLine("Maximum beträgt: " + max);
            }
        }
    }
}

Kommentare:

Pascal

Punkte: 130


2 Lösungen
4 Kommentare

#1
21.10.2020 um 11:34 Uhr

Quellcode ausblenden C#-Code
            

void Verarbeiten()
            {
                meineListe.Sort();
                min = meineListe[1] - meineListe[0];
                länge = meineListe.Count;
                max = meineListe[länge - 1] - meineListe[0];
            }



Die Funktion von dir gefällt mir, weil sie sehr effzient ist.

post_arrow
653 0

Waldgeist

Punkte: 2310

10 Aufgaben
43 Lösungen
5 Kommentare

#2
21.10.2020 um 21:49 Uhr
Hallo Pascal,

leider hat die Funktion einen Fehler. Sie funktioniert nur für das Beispiel in der Aufgabe.
Ist mir leider erst aufgefallen als ich die Lösung schon abgeschickt habe.

Eigentlich sollte die Funktion so aussehen:

Quellcode ausblenden C#-Code
void Verarbeiten()
            {
                meineListe.Sort();
                länge = meineListe.Count;
                minimum= meineListe[1] - meineListe[0];
                for (int i = 0; i < länge-1; i++)
                {
                   lokalmin= meineListe[i + 1] - meineListe[i];
                    if ((lokalmin< minimum ))
                    {
                        minimum = lokalmin;
                    } 
                }

                maximum = meineListe[länge - 1] - meineListe[0];
            }


post_arrow
654 0
Bitte melden Sie sich an um eine Kommentar zu schreiben.
Kommentar schreiben