Buch Cover Buch Cover Buch Cover Buch Cover

Web-Code: - Webcode Help

Ausflugsplanung (Selektionen)

Folgende Ausflüge werden vom Verkersverein angeboten (dahinter steht, unter welchen Bedingungen sie stattfinden):

  • Kegeln: Normalerweise abends, am Wochenende auch tagsüber, schönes oder schlechtes Wetter. Auch mit Kindern möglich. 
  • Freibad: nur schönes Wetter. Nur tagsüber (nach 17:00 geschlossen)
  • Hallenbad: Schönes oder schlechtes Wetter. Offen täglich. An Wochenenden in den Schulferien wird das Bad gewartet und ist geschlossen.
  • Wandern im Dunkelwald: Nur bei schönem Wetter. Tagsüber immer möglich. Abends nicht möglich.
  • Freikurs Musik: Im Schulhaus, daher nur abends während der Schulzeit (nicht am Wochenende). Wetter egal.
  • Brotbackkurs: Wird nur am Wochenende bei schlechtwetter durchgeführt. Es gibt einen Tages- und einen Abendkurs.
  • Schieferbergwerk: Täglich tagsüber (keine Abendführungen außer an Wochenenden in den Schulferien).
  • Go-Kurse: Am Wochenende bei schlechtem Wetter (im Gemeindelokal Raum B4) oder aber unter der Woche, dann aber nur abends bei schönem Wetter (im Lokal Widder in der Gartenwirtschaft).
  • Billard: Abends, am Wochenende auch tagsüber. Für Kinder wegen der hohen Tische ungeeignet.
  • Rennautofahren: Nur Erwachsene: Nur tagsüber an Wochenenden der Schulferien.
  • Open-Air Kino: Nur abends. Am Wochenende auch tagsüber (dann aber mit Lichtschutz). Nur bei schönem Wetter.
  • Korbflechten: Nur in den Schulferien bei Schlechtwetter. Keine Kurse am Wochenende.
  • Besuch des Wasserfalls: Täglich tagsüber. Keine Abendführungen weil der Fußweg zu dunkel ist.
  • Zoobesuch: Täglich offen, auch abends.

Schreiben Sie für die Angestellten im Verkersverein ein Programm, bei dem diese eingeben können, welche Art Ausflug zu planen ist:

  •    Wochentag      / Wochenende
  •    Schönes Wetter / Regenwetter
  •    Schulferien    / Schule
  •    Tagsüber       / Abend
  •    Mit Kindern    / ohne Kinder

   
Danach werden alle möglichen Ausflüge ausgegeben.

0 Kommentare

Bitte melde dich an um einen Kommentar abzugeben

9 Lösung(en)

package ch.programmieraufgaben.selektion.ausflugsplanung;

import java.util.Scanner;

/**
 * Ausflugsplanung für die Angestellten des Verkersvereins.
 * Verschiedene Voraussetzungen sind möglich, wobei nicht alle 
 * Angebote auf alle Voraussetzungen zutreffen.
 * @version 0.1 (Jul 27, 2014)
 * @author Philipp Gressly Freimann 
 *         (philipp.gressly@santis.ch)
 */

public class Ausflugsplanung {
	// voraussetzungen
	// wochentag, Schönwetter, Ferien, tagsüber
	boolean wochentag, schoenWetter,
	       ferien, tagsueber, mitKindern;

	// Mögliche Ausflüge
	boolean kegeln, freibad, hallenbad, dunkelwald,
	       musik, brotbackkurs, schieferbergwerk, go_kurse,
	       billard, rennauto, open_air_kino, korbflechten,
	       wasserfall, zoobesuch;


	public static void main(String[] args) {
		new Ausflugsplanung().top();
	}


	// Berechne die möglichen Ausflüge, wenn die Voraussetzungen
	// bereits bekannt sind.
	void calc() {
		// Vereinfachungen:
		boolean wochenEnde     = !wochentag   ;
		boolean schlechtWetter = !schoenWetter;
		boolean schulzeit      = !ferien      ;
		boolean abends         = !tagsueber   ;
		boolean nurErwachsene  = !mitKindern  ;
		
		kegeln            = abends || wochenEnde;
		freibad           = schoenWetter && tagsueber;
		hallenbad         = !(ferien && wochenEnde);
		dunkelwald        = freibad;
		musik             = abends && schulzeit;
		brotbackkurs      = wochenEnde && schlechtWetter;
		schieferbergwerk  = tagsueber || (wochenEnde && ferien);
		go_kurse          = (wochenEnde && schlechtWetter) ||
		                  (wochentag && abends && schoenWetter);
		billard           = nurErwachsene && (abends || wochenEnde);
		rennauto          = nurErwachsene && tagsueber && ferien && wochenEnde;
		open_air_kino     = schoenWetter && (abends || wochenEnde);
		korbflechten      = ferien && schlechtWetter && wochentag;
		wasserfall        = tagsueber;
		zoobesuch         = true;
	}


	void top() {
		wochentag    = einlesenBool("Wochentag (mo-fr)"  );
		schoenWetter = einlesenBool("Schönes Wetter"     );
		ferien       = einlesenBool("Schulferien"        );
		tagsueber    = einlesenBool("Tagsüber"           );
		mitKindern   = einlesenBool("Ausflug mit Kindern");
		calc();
		vorschlaegeAusgeben();
	}


	void vorschlaegeAusgeben() {
		System.out.println("\nVorschläge für Sie:\n");
		if(kegeln           ) {System.out.println("Kegeln"                ); }
		if(freibad          ) {System.out.println("Freibad"               ); }
		if(hallenbad        ) {System.out.println("Hallenbad"             ); }
		if(dunkelwald       ) {System.out.println("Wandern im Dunkelwald" ); }
		if(musik            ) {System.out.println("Freikurs Musik"        ); }
		if(brotbackkurs     ) {System.out.println("Brotbackkurs"          ); }
		if(schieferbergwerk ) {System.out.println("Schieferbergwerk"      ); }
		if(go_kurse         ) {System.out.println("Go-Kurse"              ); }
		if(billard          ) {System.out.println("Billard"               ); }
		if(rennauto         ) {System.out.println("Rennautofahrt"         ); }
		if(open_air_kino    ) {System.out.println("Open Air Kino"         ); }
		if(korbflechten     ) {System.out.println("Korbflechten"          ); }
		if(wasserfall       ) {System.out.println("Besuch des Wasserfalls"); }
		if(zoobesuch        ) {System.out.println("Zoobesuch"             ); }
	}


	/**
	 * Booleschen Wert einlesen
	 * @param frage
	 * @return true, wenn der Anwender nichts mit "n" beginnendes eingibt.
	 */
	Scanner sc = new Scanner(System.in);
	private boolean einlesenBool(String frage) {
		System.out.println("Handelt es sich um " + frage + "? <j/n>");
		String antwort = sc.nextLine().trim();
		return antwort.toUpperCase().charAt(0) != 'N';
	}

} // end of class Ausflugsplanung
                

Lösung von: Philipp G. Freimann (BBW (Berufsbildungsschule Winterthur) https://www.bbw.ch)

def inputbool(prompt):
    prompt += " [J/N] "
    inp = None
    while inp is None:
        inp = input(prompt)
        if inp in "jJ":
            return True
        elif inp in "nN":
            return False
        else:
            inp = None

class Ausflug(object):
    def __init__(self, *args, **kwargs):
        self.bedingungen = []
        if len(args) == 1 and type(args[0]) == list:
            for d in args[0]:
                self.neue_bedingung(**d)
        else:
            self.neue_bedingung(**kwargs)
    def neue_bedingung(self, wochenende=None, guteswetter=None, schule=None, abends=None, mitkindern=None, not_=False):
        bedingungen = {"WE":wochenende, "GW":guteswetter, "SC":schule, "AB":abends, "MK":mitkindern}
        bedingungen = {k:v for k, v in bedingungen.items() if v is not None}
        self.bedingungen.append(bedingungen)
        return self
    def vorschlagbar(self, bedingungen):
        for mbedingungen in self.bedingungen:
            b = all([bedingungen.get(k, v) == v for k, v in mbedingungen.items()])
            if mbedingungen.get("not_", False): b = not b
            if b: return True
        return False

ausfluege = {"Kegeln":Ausflug([{"abends":True}, {"wochenende":True}]),
             "Freibad":Ausflug(guteswetter=True, abends=False),
             "Hallenbad":Ausflug(schule=True, wochenende=True, not_=True),
             "Wandern im Dunkelwald":Ausflug(guteswetter=True, abends=False),
             "Freikurs Musik":Ausflug(abends=True, schule=True, wochenende=False),
             "Brotbackkurs":Ausflug(wochenende=True, guteswetter=False),
             "Schieferbergwerk":Ausflug([{"abends":False}, {"wochenende":True, "schule":False}]),
             "Go-Kurse":Ausflug([{"wochenende":True, "guteswetter":False}, {"wochenende":False, "abends":True, "guteswetter":True}]),
             "Billiard":Ausflug([{"abends":True, "mitkindern":False}, {"wochenende":True, "mitkindern":False}]),
             "Rennautofahren":Ausflug(mitkindern=False, abends=False, wochenende=True, schule=False),
             "Open-Air Kino":Ausflug([{"abends":True, "guteswetter":True}, {"wochenende":True, "guteswetter":True}]),
             "Korbflechten":Ausflug(schule=False, guteswetter=False, wochenende=False),
             "Besuch des Wasserfalls":Ausflug(abends=False),
             "Zoobesuch":Ausflug()}

bedingungen = {"WE":inputbool("Wochenende?"), "GW":inputbool("Schoenes Wetter?"), "SC":inputbool("Schule?"), "AB":inputbool("Abend?"), "MK":inputbool("Kinder?")}
for name, b in ausfluege.items():
    if b.vorschlagbar(bedingungen):
        print(name)

                

Lösung von: Karl Welzel ()

//eingabemaske
document.write(
   '<input type="checkbox" id="weekdays" onchange="compute()"> ' +
   'Es ist ein Wochentag<br>' +
   '<input type="checkbox" id="goodWeather" onchange="compute()"> ' +
   'Es ist gutes Wetter<br>' +
   '<input type="checkbox" id="holidays" onchange="compute()"> ' +
   'Es sind Schulferien<br>' +
   '<input type="checkbox" id="daytime" onchange="compute()"> ' +
   'Es ist noch nicht Abend<br>' +
   '<input type="checkbox" id="kids" onchange="compute()"> ' +
   'Ich habe Kinder dabei' +
   '<p id="out"></p>'
);
   
var activities = [
   {  name        : "Kegeln",
      isAvailable : function() {
         if (!daytime || (weekdays && daytime)) return true;
         return false;
      }
   },
   {  name        : "Freibad",
      isAvailable : function() {
         if (goodWeather && daytime) return true;
         return false;
      }
   },
   {  name        : "Hallenbad",
      isAvailable : function() {
         if (holidays && !weekdays) return true;
         return false;
      }
   },
   {  name        : "Wandern im Dunkelwald",
      isAvailable : function() {
         if (goodWeather && daytime) return true;
         return false;
      }
   },
   {  name        : "Freikurs Musik",
      isAvailable : function() {
         if (!daytime && !holidays && !weekdays) return true;
         return false;
      }
   },
   {  name        : "Brotbackkurs",
      isAvailable : function() {
         if (!goodWeather && !weekdays) return true;
         return false;
      }
   },
   {  name        : "Schieferbergwerk",
      isAvailable : function() {
         if (!weekdays && !daytime && holidays) return true;
         return false;
      }
   },
   {  name        : "Go-Kurse",
      isAvailable : function() {
         if ((!weekdays && !goodWeather) || (!daytime && goodWeather)) 
            return true;
         return false;
      }
   },
   {  name        : "Billard",
      isAvailable : function() {
         if (daytime && !weekdays & !kids) return true;
         return false;
      }
   },
   {  name        : "Rennautofahren",
      isAvailable : function() {
         if (!kids && !weekdays && holidays) return true;
         return false;
      }
   },
   {  name        : "Open-Air-Kino",
      isAvailable : function() {
         if (goodWeather && (daytime && weekdays)) return true;
         return false;
      }
   },
   {  name        : "Korbflechten",
      isAvailable : function() {
         if (holidays && !goodWeather && weekdays) return true;
         return false;
      }
   },
   {  name        : "Besuch des Wasserfalls",
      isAvailable : function() {
         if (daytime) return true;
         return false;
      }
   },
   {  name        : "Zoobesuch",
      isAvailable : function() { return true; }
   }
];

function compute() {
   weekdays = document.getElementById("weekdays").checked;
   goodWeather = document.getElementById("goodWeather").checked;
   holidays = document.getElementById("holidays").checked;
   daytime = document.getElementById("daytime").checked;
   kids = document.getElementById("kids").checked;
   out = document.getElementById("out");
   var arr = [],
       i = 0;    
   for (i; i < activities.length; i++) 
      if (activities[i].isAvailable()) arr.push(activities[i].name);
   out.innerHTML = arr.sort().join(", ");
}

                

Lösung von: Lisa Salander (Heidi-Klum-Gymnasium Bottrop)

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading.Tasks;

namespace Ausflugsplan {
	class Program {
		readonly static Trip[] Trips = new Trip[] {
			new Trip("Kegeln", Condition.Weekend, Condition.AtDay),
			new Trip("Kegeln", Condition.Weekday),
			new Trip("Freibad", Condition.BadWeather, Condition.AtNight),
			new Trip("Hallenbad", Condition.Weekend, Condition.Hollydays),
			new Trip("Wandern", Condition.BadWeather, Condition.AtNight),
			new Trip("Musikkurs", Condition.AtDay, Condition.Hollydays, Condition.Weekend),
			new Trip("Brotbacken Tageskurs", Condition.Weekday, Condition.GoodWeather, Condition.AtNight),
			new Trip("Brotbacken Abendkurs", Condition.Weekday, Condition.GoodWeather, Condition.AtDay),
			new Trip("Schieferbergwerk", Condition.AtNight),
			new Trip("Schieferbergwerk", Condition.Weekday, Condition.School),
			new Trip("Go-Kurs im Gemeindelokal Raum B4", Condition.Weekday, Condition.GoodWeather),
			new Trip("Go-Kurs im Lokal Widder in der Gartenwirtschaft", Condition.Weekend, Condition.AtDay, Condition.BadWeather),
			new Trip("Billard", Condition.AtDay),
			new Trip("Billard", Condition.Weekday),
			new Trip("Rennautofahren", Condition.WithKids, Condition.AtNight, Condition.Weekday, Condition.School),
			new Trip("Open-Air-Kino", Condition.AtDay, Condition.BadWeather),
			new Trip("Open-Air-Kino mit Lichtschutz", Condition.AtNight, Condition.Weekday, Condition.BadWeather),
			new Trip("Korbflechten", Condition.School, Condition.GoodWeather, Condition.Weekend),
			new Trip("Wasserfall besuchen", Condition.AtNight),
			new Trip("Zoobesuch")
		};

		readonly static Dictionary<Condition, string>[] OptionsToChoose = new Dictionary<Condition, string>[]{
			new Dictionary<Condition, string>() {
				{ Condition.Weekday, "Wochentag" }, { Condition.Weekend, "Wochenende" } },
			new Dictionary<Condition, string>() {
				{ Condition.GoodWeather, "Schönes Wetter" }, { Condition.BadWeather, "Schlechtes Wetter" } },
			new Dictionary<Condition, string>() {
				{ Condition.Hollydays, "Schulferien" }, { Condition.School, "Schule" } },
			new Dictionary<Condition, string>() {
				{ Condition.AtDay, "Tagsüber" }, { Condition.AtNight, "Abends" } },
			new Dictionary<Condition, string>() {
				{ Condition.WithKids, "Mit Kindern" }, { Condition.WithoutKids, "Ohne Kinder" } }
		};

		static void Main() {
			Dictionary<Condition, string> ChoosenOptions = new Dictionary<Condition, string>();
			for(int i = 0; i < OptionsToChoose.Count(); i++) {
				PrintChoosenOptions(ChoosenOptions.Values.ToArray());
				for(int ii = 0; ii < OptionsToChoose[i].Count; ii++) {
					Console.WriteLine("[{0}] {1}", ii + 1, OptionsToChoose[i].ElementAt(ii).Value);
				}
				string sInput; int iInput = -1;
				do sInput = Console.ReadKey(true).KeyChar.ToString();
				while(!Regex.IsMatch(sInput, "^[1-9]$") || OptionsToChoose[i].Count < (iInput = Convert.ToInt32(sInput)));
				ChoosenOptions.Add(OptionsToChoose[i].ElementAt(iInput - 1).Key, OptionsToChoose[i].ElementAt(iInput - 1).Value);
			}

			List<string> PossibleTrips = new List<string>();
			foreach(Trip Trip in Trips)
				if(Trip.IsPossible(ChoosenOptions.Keys.ToArray()))
					PossibleTrips.Add(Trip.Name);

			PrintChoosenOptions(ChoosenOptions.Values.ToArray());
			foreach(string PossibleTrip in PossibleTrips.Distinct())
				Console.WriteLine(PossibleTrip);

			Console.ReadKey(true);
		}//EndMain

		static void PrintChoosenOptions(string[] ChoosenOptions) {
			Console.Clear();
			for(int i = 0; i < ChoosenOptions.Length; i++)
				if(ChoosenOptions[i] != null) Console.Write(ChoosenOptions[i] + "{0} ", (i + 1 == ChoosenOptions.Length ? "" : ","));
			Console.WriteLine("\n");
		}
	}//EndProgram

	enum Condition {
		Weekday, Weekend,
		GoodWeather, BadWeather,
		Hollydays, School,
		AtDay, AtNight,
		WithKids, WithoutKids
	}

	class Trip {
		string name;
		Condition[] Excludes;

		public string Name { get { return name; } }

		public Trip(string name, params Condition[] Excludes) {
			this.name = name;
			this.Excludes = Excludes;
		}

		public bool IsPossible(params Condition[] Conditions) {
			foreach(Condition condition in Conditions)
				if(this.Excludes.Contains(condition))
					return false;

			return true;
		}
	}//EndTrip
}

                

Lösung von: Marcel Kapma ()

class Trip
  def initialize (name, weekend, nice_weather, holidays, daytime, with_kids)
    @name = name
    @conditions = [weekend, nice_weather, holidays, daytime, with_kids]
  end

  attr_reader :name

  def is_possible (conditions)
    is_possible = true
    @conditions.each_index {|i|
      if @conditions[i] !=0 && @conditions[i] != conditions[i]
        is_possible = false
      end
    }
    return is_possible
  end
end

trips = [
    kegeln_w = Trip.new("Kegeln", false, 0, 0, false, 0),
    kegeln_we = Trip.new("Kegeln", true, 0, 0, 0, 0),
    hallenbad = Trip.new("Hallenbad", 0, 0, false, 0, 0),
    hallenbad_s = Trip.new("Hallenbad", false, 0, true, 0, 0),
    freibad = Trip.new("Freibad", 0, true, 0, true, 0),
    wandern = Trip.new("Wandern im Dunkelwald", 0, true, 0, true, 0),
    musikkurs = Trip.new("Freikurs Musik", false, 0, false, false, 0),
    brotbackkurs = Trip.new("Brotbackkurs", true, false, 0, 0, 0),
    schieferbergwerk = Trip.new("Schieferbergwerk", 0, 0, 0, true, 0),
    schieferbergwerk_s = Trip.new("Schieferbergwerk", true, 0, true, false, 0),
    gokurs_we = Trip.new("Go-Kurs", true, false, 0, 0, 0),
    gokurs_w = Trip.new("Go-Kurs", false, true, 0, false, 0),
    billard = Trip.new("Billard", false, 0, 0, false, false),
    billard_we = Trip.new("Billard", true, 0, 0, 0, false),
    autorennen = Trip.new("Rennautofahren", true, 0, true, true, false),
    openairkino_ls = Trip.new("Open-Air-Kino (mit Lichtschutz)", true, true, 0, true, 0),
    openairkino = Trip.new("Open-Air-Kino", 0, true, 0, false, 0),
    korbflechten = Trip.new("Korbflechten", true, false, 0, 0, 0),
    wasserfall = Trip.new("Beuch des Wasserfalls", 0, 0, 0, true, 0),
    zoobesuch = Trip.new("Zoobesuch", 0, 0, 0, 0, 0)
]

conditions = Array.new
options = ["Wochenende?", "Schönes Wetter?", "Schulferien?", "Tagsüber?", "Mit Kindern?"]
p "Wählen Sie 1 für Ja und 2 für Nein:"
options.each {|s|
  puts s
  if gets.chomp.to_i == 1
    conditions.push(true)
  else
    conditions.push(false)
  end
}

p "Folgende Ausflüge sind möglich:"
trips.each {|ausflug|
  if ausflug.is_possible(conditions)
    puts ausflug.name
  end
}
                

Lösung von: Name nicht veröffentlicht

class Program
    {	
        public static bool wochenende;
        public static bool schönwetter;
        public static bool ferien;
        public static bool tag;
        public static bool kinder;

        public static void Kegeln()
        {
            if (wochenende == true)
            {
                Console.WriteLine("Kegeln");
            }
            else if (wochenende == false && tag == false)
            {
                Console.WriteLine("Kegeln");
            }
	    }
        public static void Freibad()
        {
            if (schönwetter == true && tag == true)
            {
                Console.WriteLine("Freibad");
            }
	    }
        public static void Hallenbad()
        {
	        if (ferien == false)
            {
                Console.WriteLine("Hallenbad");
            }
            else if (ferien == true && wochenende == false)
            {
                Console.WriteLine("Hallenbad");
            }
        }
        public static void Wandern()
        {
            if (schönwetter == true && tag == true)
            {
                Console.WriteLine("Wandern im Dunkelwald");
            }
        }
        public static void FreikursMusik()
        {
	        if (ferien == false && wochenende == false && tag == false)
            {
                Console.WriteLine("Freikurs Musik");
            }
        }
        public static void BrotbackKurs()
        {
	        if (wochenende == true && schönwetter == false)
            {
                Console.WriteLine("Brotbackkurs");
            }
        }
        public static void SchieferBergwerk()
        {
	        if (ferien == false && tag == true)
            {
                Console.WriteLine("Schieferbergwerk");
            }
            else if (ferien == true && wochenende == true)
            {
                Console.WriteLine("Schieferbergwerk");
            }
        }
        public static void GoKurse()
        {
	        if (wochenende == true && schönwetter == false)
            {
                Console.WriteLine("Go-Kurse (im Gemeindelokal)");
            }
            else if (wochenende == false && tag == false && schönwetter == true)
            {
                Console.WriteLine("Go-Kurse (im Lokal Widder)");
            }
        }
        public static void Billard()
        {
	        if (kinder == false && tag == false)
            {
                Console.WriteLine("Billard");
            }
            else if (kinder == false && wochenende == true && tag == true)
            {
                Console.WriteLine("Billard");
            }
        }
        public static void Rennautofahren()
        {
	        if (kinder == false && tag == true && ferien == true && wochenende == true)
            {
                Console.WriteLine("Rennautofahren");
            }
        }
        public static void OpenAirKino()
        {
	        if (tag == false && schönwetter == true)
            {
                Console.WriteLine("Open-Air Kino");
            }
            else if (wochenende == true && tag == true && schönwetter == true)
            {
                Console.WriteLine("Open-Air Kino");
            }
        }
        public static void Korbflechten()
        {
	        if (ferien == true && wochenende == false && schönwetter == false)
            {
                Console.WriteLine("Korbflechten");
            }
        }
        public static void BesuchDesWasserfalls()
        {
	        if (tag == true)
            {
                Console.WriteLine("Besuch des Wasserfalls");
            }
        }
        public static void ZooBesuch(){
            Console.WriteLine("Zoobesuch");
        }
        static void Main(string[] args)
        {
            bool repeat;
            Console.WriteLine("Ausflugsplanung");
            Console.WriteLine("---------------");
            Console.WriteLine("");

//Einlesen der Bedingungen-----------------------------------------------------------------------------------------------
            Console.WriteLine("\nPlanen Sie, ihren Ausflug an einem Wochenende durchzuführen? \n[Wochenende/Wochentag]");
            repeat = true;
            while (repeat == true)
            {
                string input = Console.ReadLine();
                input = input.ToUpper();
                if(input == "WOCHENENDE")
                {
                    wochenende = true;
                    repeat = false;
                }
                else if(input == "WOCHENTAG")
                {
                    wochenende = false;
                    repeat = false;
                }
                else
                {
                    Console.WriteLine("Falsche Eingabe, bitte versuche es erneut:");
                    repeat = true;
                }
            }

            Console.WriteLine("\nBei welchem Wetter planen Sie, ihren Ausflug durchzuführen? \n[Sonne/Regen]");
            repeat = true;
            while (repeat == true)
            {
                string input = Console.ReadLine();
                input = input.ToUpper();
                if (input == "SONNE")
                {
                    schönwetter = true;
                    repeat = false;
                }
                else if (input == "REGEN")
                {
                    schönwetter = false;
                    repeat = false;
                }
                else
                {
                    Console.WriteLine("Falsche Eingabe, bitte versuche es erneut:");
                    repeat = true;
                }
            }

            Console.WriteLine("\nPlanen Sie, ihren Ausflug an in den Ferien durchzuführen? \n[Ferien/Schule]");
            repeat = true;
            while (repeat == true)
            {
                string input = Console.ReadLine();
                input = input.ToUpper();
                if (input == "FERIEN")
                {
                    ferien = true;
                    repeat = false;
                }
                else if (input == "SCHULE")
                {
                    ferien = false;
                    repeat = false;
                }
                else
                {
                    Console.WriteLine("Falsche Eingabe, bitte versuche es erneut:");
                    repeat = true;
                }
            }

            Console.WriteLine("\nPlanen Sie, ihren Ausflug Tagsüber durchzuführen? \n[Tag/Abend]");
            repeat = true;
            while (repeat == true)
            {
                string input = Console.ReadLine();
                input = input.ToUpper();
                if (input == "TAG")
                {
                    tag = true;
                    repeat = false;
                }
                else if (input == "ABEND")
                {
                    tag = false;
                    repeat = false;
                }
                else
                {
                    Console.WriteLine("Falsche Eingabe, bitte versuche es erneut:");
                    repeat = true;
                }
            }

            Console.WriteLine("\nPlanen Sie, einen Ausflug mit oder für Kinder organisieren? \n[j/n]");
            repeat = true;
            while (repeat == true)
            {
                string input = Console.ReadLine();
                input = input.ToUpper();
                if (input == "J")
                {
                    kinder = true;
                    repeat = false;
                }
                else if (input == "N")
                {
                    kinder = false;
                    repeat = false;
                }
                else
                {
                    Console.WriteLine("Falsche Eingabe, bitte versuche es erneut:");
                    repeat = true;
                }
            }
//Ausgabe der möglichen Ausflüge-----------------------------------------------------------------------------------------

            Console.WriteLine("");
            Console.WriteLine("-------------------------------");            
            Console.WriteLine("Folgende Ausflüge sind möglich:");
            Console.WriteLine("");
            Kegeln();
            Freibad();
            Hallenbad();
            Wandern();
            FreikursMusik();
            BrotbackKurs();
            SchieferBergwerk();
            GoKurse();
            Billard();
            Rennautofahren();
            OpenAirKino();
            Korbflechten();
            BesuchDesWasserfalls();
            ZooBesuch();
            Console.WriteLine("\nDrücken Sie eine beliebige Taste um das Programm zu beenden.");
            Console.ReadKey();
        }
    }
                

Lösung von: Loris Leuenberger (BiCT AG)

// C++ 14 | VS-2022
#include <iostream>
#include <vector>

const struct Vorschlag {
    const std::string bezeichnung;
    const bool machbar;
};

class Plan {
    const bool wochentag_{}, wochenende_{ !wochentag_ };
    const bool schoenwetter_{}, schlechtwetter{ !schoenwetter_ };
    const bool ferien_{}, schulzeit_{ !ferien_ };
    const bool tagsueber_{}, abends_{ !tagsueber_ };
    const bool mit_kindern_{}, nur_erwachsene_{ !mit_kindern_ };
    const std::vector<Vorschlag> vorschlaege_{
        {"Kegeln", abends_ || wochenende_},
        {"Freibad", schoenwetter_ && tagsueber_},
        {"Hallenbad", !(ferien_ && wochenende_)},
        {"Wandern im Dunkelwald", schoenwetter_ && tagsueber_},
        {"Freikurs Musik", abends_ && schulzeit_},
        {"Brotbackkurs", wochenende_ && schlechtwetter},
        {"Schieferbergwerk", tagsueber_ || (wochenende_ && ferien_)},
        {"Go-Kurse", (wochenende_ && schlechtwetter) || (wochentag_ && abends_ && schoenwetter_)},
        {"Billard", nur_erwachsene_ && (abends_ || wochenende_)},
        {"Rennautofahrt", nur_erwachsene_ && tagsueber_ && ferien_ && wochentag_},
        {"Open Air Kino", schoenwetter_ && (abends_ || wochenende_)},
        {"Korbflechten", ferien_ && schlechtwetter && wochentag_},
        {"Besuch des Wasserfalls", tagsueber_},
        {"Zoobesuch", true}
    };
public:
    Plan(bool wochentag, bool schoenwetter, bool ferien, bool tagsueber, bool mit_kindern) :
        wochentag_{ wochentag }, schoenwetter_{ schoenwetter }, ferien_{ ferien }, mit_kindern_{ mit_kindern } {}
    friend std::ostream& operator<<(std::ostream& os, const Plan& p) {
        for (const auto& v : p.vorschlaege_)
            if (v.machbar) os << v.bezeichnung << "\n";
        return os;
    }
};

int main() {
    // hier könnte man auch einen Dialog implementieren
    constexpr auto wochentag{ true }, schoenwetter{ false }, ferien{ true }, tagsueber{ true }, mit_kindern{ false };
    Plan plan{ wochentag, schoenwetter, ferien, tagsueber, mit_kindern };
    std::cout << "Vorschlaege:\n" << plan << "\n";
}

                

Lösung von: Jens Kelm (@JKooP)

// NET 7.x | C# 11.x | VS-2022

var wochentag = Fragen("Wochentag (mo-fr)");
var schoenwetter = Fragen("Schönes Wetter");
var ferien = Fragen("Schulferien");
var tagsueber = Fragen("Tagsüber");
var mitKindern = Fragen("Ausflug mit Kindern");

Console.WriteLine(new Plan(wochentag, schoenwetter, ferien, tagsueber, mitKindern));

static bool Fragen(string frage) {
    Console.Write($"Handelt es sich um {frage}? (j/n): ");
    var anwort = Console.ReadLine();
    if (!string.IsNullOrEmpty(anwort))
        return anwort.ToLower()[0] == 'j';
    return false;
}

public record class Plan (bool Wochentag, bool Schoenwetter, bool Ferien, bool Tagsueber, bool MitKindern) {
    private static readonly List<(string Bezeichnung, bool Machbar)> _vorschlaege = new();
    private bool Wochenende => !Wochentag;
    private bool Schlechtwetter => !Schoenwetter;
    private bool Schulzeit => !Ferien;
    private bool Abends => !Tagsueber;
    private bool NurErwachsende => !MitKindern;

    private void SetzeVorschlaege() {
        _vorschlaege.Add(("Kegeln", Abends || Wochenende));
        _vorschlaege.Add(("Hallenbad", !(Ferien && Wochenende)));
        _vorschlaege.Add(("Wandern im Dunkelwald", Schoenwetter && Tagsueber));
        _vorschlaege.Add(("Freikurs Musik", Abends && Schulzeit));
        _vorschlaege.Add(("Brotbackkurs", Wochenende && Schlechtwetter));
        _vorschlaege.Add(("Schieferbergwerk", Tagsueber || (Wochenende && Ferien)));
        _vorschlaege.Add(("Go-Kurse", (Wochenende && Schlechtwetter) || (Wochentag && Abends && Schoenwetter)));
        _vorschlaege.Add(("Billard", NurErwachsende && (Abends || Wochenende)));
        _vorschlaege.Add(("Rennautofahrt", NurErwachsende && Tagsueber && Ferien && Wochentag));
        _vorschlaege.Add(("Open Air Kino", Schoenwetter && (Abends || Wochenende)));
        _vorschlaege.Add(("Korbflechten", Ferien && Schlechtwetter && Wochentag));
        _vorschlaege.Add(("Besuch des Wasserfalls", Tagsueber));
        _vorschlaege.Add(("Zoobesuch", true));
    }

    public override string ToString() {
        SetzeVorschlaege();
        return string.Join("\n", _vorschlaege.Where(x => x.Machbar).Select(x => x.Bezeichnung).ToArray());
    }
}
                

Lösung von: Jens Kelm (@JKooP)

'VBA

' Module:
'   Main
Public Type Vorschlag
    bez As String
    mb As Boolean
End Type

Sub Main()
    Dim p As New Plan
    Const wochentag As Boolean = True
    Const schoenwetter As Boolean = False
    Const ferien As Boolean = True
    Const tagsueber As Boolean = True
    Const mitKindern As Boolean = True
    p.Init wochentag, schoenwetter, ferien, tagsueber, mitKindern
    Debug.Print p.ToString
End Sub

' Klassenmodule:
'   Plan
Private m_wochentag As Boolean, m_wochenende As Boolean
Private m_schoenwetter As Boolean, m_schlechtwetter As Boolean
Private m_ferien As Boolean, m_schulzeit As Boolean
Private m_tagsueber As Boolean, m_abends As Boolean
Private m_mitKindern As Boolean, m_nurErwachsene As Boolean
Private vs(13) As Vorschlag

Private Sub Invert()
    m_wochenende = Not m_wochentag
    m_schlechtwetter = Not m_schoenwetter
    m_schulzeit = Not m_ferien
    m_abends = Not m_tagsueber
    m_nurErwachsene = Not m_mitKindern
End Sub

Sub SetzeVorschlaege()
    vs(0).bez = "Kegeln": vs(0).mb = m_abends Or m_tagsueber
    vs(1).bez = "Freibad": vs(1).mb = schoenwetter And m_tagsueber
    vs(2).bez = "Hallenbad": vs(2).mb = Not (m_ferien And m_wochenende)
    vs(3).bez = "Wandern im Dunkelwald": vs(3).mb = m_schoenwetter And m_tagsueber
    vs(4).bez = "Freikurs Musik": vs(4).mb = m_abends And m_schulzeit
    vs(5).bez = "Brotbackkurs": vs(5).mb = m_wochende And m_schlechtwetter
    vs(6).bez = "Schieferbergwerk": vs(6).mb = m_tagsueber Or (m_wochenende And m_ferien)
    vs(7).bez = "Go-Kurse": vs(7).mb = (m_wochenende And m_schlechtwetter) Or (m_wochentag And m_abends And m_schoenwetter)
    vs(8).bez = "Billard": vs(8).mb = m_nurErwachsene And (m_abends Or m_wochenende)
    vs(9).bez = "Rennautofahren": vs(9).mb = m_nurErwachsene And m_tagsueber And m_ferien And m_wochentag
    vs(10).bez = "Open Air Kino": vs(10).mb = m_schoenwetter And (m_abends Or m_wochenende)
    vs(11).bez = "Korbflechten": vs(11).mb = m_ferien And m_schlechtwetter And m_wochentag
    vs(12).bez = "Besuch des Wasserfalls": vs(12).mb = m_tagsueber
    vs(13).bez = "Zoobesuch": vs(13).mb = True
End Sub

Public Sub Init(wochentag As Boolean, schoenwetter As Boolean, ferien As Boolean, tagsueber As Boolean, mitKindern As Boolean)
    m_wochentag = wochentag
    m_schoenwetter = schoenwetter
    m_ferien = ferien
    m_tagsueber = tagsueber
    m_mitKindern = mitKindern
    Invert
    SetzeVorschlaege
End Sub

Public Function ToString()
    Dim v As Variant
    Dim s As String
        For i = LBound(vs) To UBound(vs)
            If vs(i).mb = True Then
                s = s & vs(i).bez & vbNewLine
            End If
        Next
    ToString = s
End Function

                

Lösung von: Jens Kelm (@JKooP)

Aktionen

Bewertung

Durchschnittliche Bewertung:

Eigene Bewertung:
Bitte zuerst anmelden

Meta

Zeit: 1.5
Schwierigkeit: Leicht
Webcode: 54d5-o0ns
Autor: Philipp G. Freimann (BBW (Berufsbildungsschule Winterthur) https://www.bbw.ch)

Download PDF

Download ZIP

Zu Aufgabenblatt hinzufügen