Buch Cover Buch Cover Buch Cover Buch Cover

Web-Code: - Webcode Help

Zubringerbus (Anweisungen und Abfolgen)

(entnommen aus Bishop: Java Lernen, S.89)

Zwischen zwei Terminals eines Flughafens verkehrt ein Zubringerbus, der jeweils zur halben und zur vollen Stunde losfährt. Schreiben Sie ein Programm, das eine Uhrzeit in der Form hhmm (aber ohne führende Nullen) erhält und berechnet, wie lange es bis zur Abfahrt des nächsten Busses noch dauert. Dabei bezeichnet hh die aktuelle Stunde und mm die aktuelle Minute.

Eingabe: Minuten der aktuellen Uhzeit zeistellig. Beispiel: "07" = Sieben nach; "45": Viertel vor ...

Bei drei- oder vierstelliger Eingabe ("645" = 'viertel vor sieben'; 1025 = "fünf vor halb elf") werden die letzten beiden Ziffern als Minuten betrachtet.

Tipp: Berechnen Sie aus den Minuten der aktuellen Uhrzeit die zugehörige halbe Stunde.

2 Kommentare

Bitte melde dich an um einen Kommentar abzugeben

Kommentare (2)

wwbaselmemes 24. April 2018 13:50   reply report
Kommunismus (lateinisch communis ‚gemeinsam‘) ist ein um 1840 in Frankreich entstandener politisch-ideologischer Begriff mit mehreren Bedeutungen: Er bezeichnet erstens gesellschaftstheoretische Utopien, beruhend auf Ideen sozialer Gleichheit und Freiheit aller Gesellschaftsmitglieder, auf der Basis von Gemeineigentum und kollektiver Problemlösung.

Zweitens steht der Begriff, im Wesentlichen gestützt auf die Theorien von Karl Marx, Friedrich Engels und Wladimir Iljitsch Lenin, für ökonomische und politische Lehren, mit dem Ziel, eine herrschaftsfreie und klassenlose Gesellschaft zu errichten.

Drittens werden damit Bewegungen und politische Parteien (vgl. Kommunistische Partei) bezeichnet, die das Ziel verfolgen, Gesellschaften zum Kommunismus zu überführen bzw. solche Lehren praktisch umzusetzen.

Viertens bezeichnet er – als von der ersten Bedeutung unterschiedene Fremdbezeichnung – daraus hervorgegangene Herrschaftssysteme. Das mächtigste dieser war die Sowjetunion, die mit ihren Verbündeten, den sogenannten Ostblockstaaten, zu Beginn des Kalten Krieges etwa ein Fünftel der Erdoberfläche beherrschte. In einigen dieser kommunistischen Parteidiktaturen (Realsozialismus) kam es zu Massenverbrechen (etwa dem Großen Terror in der stalinistischen Sowjetunion der 1930er Jahre oder in der maoistischen Kulturrevolution in der Volksrepublik China in den 1960er und 1970er Jahren). Die meisten realsozialistischen Staaten brachen um das Jahr 1990 zusammen.

Eine Abgrenzung zum Sozialismus ist nicht immer möglich.
gressly 16. Dezember 2016 19:03   reply report
Unklar, ob bei jedem Terminal ein Bus zur vollen und zur halben Stunde abfährt. Falls nein, wäre noch anzugeben, wie lange der Bus von Terminal A zu Terminal B benötigt. Fährt er bei Terminal A nämlich zur vollen Stunde ab, so kann er (falls er 30 Minuten für die Strecke benötigt) in Terminal B nur immer zur halben Stunde abfahren.

Den Text "was bisher behandelt wurde" habe ich ersatzlos gestrichen. Haben "wir" doch bisher schon alle Kapitel behandelt; "ihr" nicht?

16 Lösung(en)

class P1ShuttleBus {

	public static void main(String[] args) {
		int currentTime = 1420; // in der Form hhmm
		int remainingTime, halfHours;
		
		int restlicheMinuten;
		restlicheMinuten = currentTime  % 100;
		
		if (0 <= restlicheMinuten && restlicheMinuten <=30){
		halfHours = 1;
		remainingTime =30- restlicheMinuten   ;
		}else{
			halfHours = 2;
			remainingTime= 60- restlicheMinuten;
		}
		
	
		
		

		
	
		

		System.out.println("Time remaining: " + remainingTime + " minutes.");

	}
}
                

Lösung von: Rene keller (HS LU)

public class Zubringerbus {
	
	public static void main(String[] args) {
		String temp = new SimpleDateFormat("HHmm").format(new Date()); //Aktuelle Uhrzeit.
		String current = (String.valueOf(temp).startsWith("0")) ? String.valueOf(temp).substring(1) : String.valueOf(temp); //Ohne führende Nullen.
		int time = Integer.parseInt(current); //Kann man auch durch 920 ersetzen.
		
		calc(time);
	}
	
	public static void calc(int time) {
		int minutes = time % 100;
		int remaining = (minutes > 30) ? 60 - minutes : 30 - minutes;
		
		System.out.println("Abfahrt des nächsten Busses in " + remaining + " Minuten.");
	}
}
                

Lösung von: Name nicht veröffentlicht

def bus(time):
    return abs(30 - int(time[-2:]))
                

Lösung von: Bester Mensch (Class)

import java.sql.Timestamp;
import java.text.SimpleDateFormat;
import java.util.Date;

public class BushalteStelle {

	public static void main(String[] args) {

		SimpleDateFormat sdf1 = new SimpleDateFormat("mm");
		SimpleDateFormat sdf = new SimpleDateFormat("HH:mm");
		Timestamp time1 = new Timestamp(System.currentTimeMillis());
		String uhrzeit1 = sdf1.format(time1);

		double restZeit = 0;
		int warteZeit = 0;
		restZeit = Double.parseDouble(uhrzeit1);
		restZeit = (30 - (restZeit - ((Math.floor(restZeit / 30)) * 30)));
		warteZeit = (int) restZeit;
		System.out.println("Naechster Bus kommt in " + warteZeit + " Minuten");

		Date aktuelleZeit1 = new Date();
		Date naechsteAbfahrt = new Date(aktuelleZeit1.getTime() + (warteZeit * 60 * 1000));
		String uhrzeit = sdf.format(naechsteAbfahrt);
		System.out.println("Naechste Abfahrt um: " + uhrzeit + " Uhr");
	}

}

                

Lösung von: Alex Mahlknecht (Privater Unterricht)

time = Time.new

timehour = time.hour
timemin  = time.min

if timemin < 10
	timemin = "0#{timemin}"
end

if timehour < 10
	timehour = "0#{timehour}"
end

if timemin < 30
	restZeit = 30 - timemin
	ankuftszeit = "#{timehour}:30"
else
	restZeit = 60 - timemin
	timehour += 1
	ankuftszeit = "#{timehour}:00"
end

puts "Nächster Bus kommt in #{restZeit} Minuten. (Um #{ankuftszeit} Uhr)"
                

Lösung von: Mogens Meißner (Ellentalgymnasien)

Module ZubringerBus

    Sub Main()
        While (True)
            Console.WriteLine("Bitte Geben sie die Uhrzeit ein hh:mm")
            Dim checkTime As String = Console.ReadLine()
            Dim time As New DateTime
            If IsDate(checkTime) Then : time = checkTime : End If
            Dim timeLeft As Integer = 0

            If time.Minute <= 30 Then
                timeLeft = 30 - time.Minute
            Else
                timeLeft = 60 - time.Minute
            End If

            Console.WriteLine("Bus kommt in " & timeLeft & " Minuten!")
            Console.ReadLine()
            Console.Clear()
        End While
    End Sub

End Module
                

Lösung von: Elias Zech (Optics Balzers)

package Aufgaben.Zubringer;

public class ZubringerBus
{
	private static String actualTime;
	
	public static void main(String[] args)
	{		
		// Aktuelle Zeit über Kommandozeilenargument mitgeben
		actualTime = args[0];
		System.out.println("Zeit: " + actualTime);
		int remainingminutes = 
		Integer.parseInt(actualTime.substring(actualTime.length()-2, actualTime.length()));
				
		remainingminutes = 30 - remainingminutes % 30;
		System.out.println("Wartezeit: " + remainingminutes);
				
	}

}
                

Lösung von: Name nicht veröffentlicht

def bus(time):
    return 30 - (int(time[2:]) % 30)

print bus('1449')  #example call
                

Lösung von: Name nicht veröffentlicht

package chapter02        ;
import  static io.Input.*;
/**
 * @version 0.1 (Jan 22, 2018)
 * @author Philipp Gressly Freimann 
 *         (philipp.gressly@santis.ch)
 */
public class Zubringerbus {

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


	void top() {
		int hhmm; // Eingabe user: Stunden Minuten
		hhmm = inputInt("Geben Sie die aktuelle Zeit hhmm ein: ");
		
		// Berechnug
		int hh                   ; // Ganze Stunden
		int mm                   ; // Minuten 00 .. 59 (ohne Stunden)
		int halbstunden          ; // 0 oder 1; 1 falls Minute >= 30
		int minutenInHalberStunde; // 00 .. 29
		int wartezeit            ; // Zeit bis zur vollen nächsten Halbstunde

		hh                    = hhmm / 100                  ;
		mm                    = hhmm - 100 * hh             ;
		halbstunden           =   mm / 30                   ;
		minutenInHalberStunde =   mm - 30 * halbstunden     ;
		wartezeit             =   30 - minutenInHalberStunde;
		
		// Ausgabe
		System.out.println("Wartezeit: " + wartezeit);
	}
}
 // end of class Zubringerbus
                

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

using System;
using System.Linq;

namespace Zubringerbus
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Gib die Zeit an, mein Sohn:");
            string Text = Console.ReadLine();
            int Uhrzeit = Int32.Parse(Text);

            if (Text.Length >= 2) Uhrzeit = Int32.Parse(Text.Substring(Text.Length - 2, 2));
            else if (Text.Length == 1) Uhrzeit = Int32.Parse(Text.Substring(Text.Length - 1, 1));

            Console.WriteLine("Der nächste Transport kommt in " + (30 - (Uhrzeit % 30)) + "min");
            Console.ReadLine();
        }
    }
}
                

Lösung von: Tobias Golz (Wilhelm Büchner Hochschule)

#!/usr/bin/python3.6

def exit_on_invalid_input():
    print('Error! Please enter valid time in hhmm format!')
    exit(1)

def validate_input(input_string):
    if len(input_string) not in (3,4):
        exit_on_invalid_input()
    
    for char in input_string:
        if ord(char) not in range(ord('0'), ord('9')+1):
            exit_on_invalid_input()

def get_remaining_minutes(time_string):
    result = 30 - int(time_string[-2:]) % 30
    return 0 if result == 30 else result


print('please enter time in hhmm format:')
user_input = input()

validate_input(user_input)

remaining_minutes = get_remaining_minutes(user_input)

if remaining_minutes == 0:
    print('the bus will arrive just now!')
else:
    print(f"the bus will arrive in {remaining_minutes} minutes!")

                

Lösung von: Name nicht veröffentlicht

function getIdleMinutes(time) {
  return 30 - parseInt(time.toString().slice(-2)) % 30;
}

console.log(getIdleMinutes(524));
console.log(getIdleMinutes(1038));
console.log(getIdleMinutes(1158));
console.log(getIdleMinutes(3));
                

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

class Zubringerbus {
    private static int calculate(int time){
        int ret = time%100;
        return ret > 30 ? 60 - ret : 30 - ret;
    }
}

                

Lösung von: Name nicht veröffentlicht

// NET 6.x | C# 10.x | VS-2022

// Variante 1 (Konvertierung in string und dann wieder in int)
int PeriodUntilDepartureString(int time) => 30 - int.Parse(time.ToString("0#")[^2..]) % 30;

// Variante 2 (lediglich durch Berechnung)
int PeriodUntilDepartureInt(int time) {
    var c = 0;
    var n = 0;
    while(time > 0 && c < 2) {
        n += time % 10 * (int)Math.Pow(10.0, c++);
        time /= 10;
    }
    return 30 - n % 30;
}

// Aufruf der Varianten
var lstTimes = new List<int> { 524, 1038, 1158, 3, 0 };
lstTimes.ForEach(x => Console.WriteLine($"Variante 1: {x} -> {PeriodUntilDepartureString(x)}\tVariante 2: {x} -> {PeriodUntilDepartureInt(x)}"));
                

Lösung von: Jens Kelm (@JKooP)

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

// Variante 1 (Konvertierung in string und dann wieder in int)
int period_until_departure_str(int time_) {
    std::stringstream ss; ss << '0' << time_;
    const auto s{ ss.str() };
    return 30 - std::stoi(s.substr(s.length() - 2)) % 30;
}

// Variante 2 (lediglich durch Berechnung)
int period_until_departure_int(int time_) {
    auto c{ 0 }, n{ 0 };
    while (time_ && c < 2) {
        n += time_ % 10 * (int)pow(10.0, c++);
        time_ /= 10;
    }
    return 30 - n % 30;
}

int main() {
    const std::vector<int>times{ 524, 1038, 1158, 3, 0 };
    for(const auto& time_ : times)
        std::cout << time_ << " -> " << period_until_departure_str(time_) << "\n";
}
                

Lösung von: Jens Kelm (@JKooP)

' VBA

Function PeriodUntilDeparture(ByVal time_ As Integer)
    PeriodUntilDeparture = 30 - CInt(Right("0" & CStr(time_), 2)) Mod 30
End Function
                

Lösung von: Jens Kelm (@JKooP)

Verifikation/Checksumme:

524 →6

1038 → 22

1158 → 2

3 → 27

Aktionen

Bewertung

Durchschnittliche Bewertung:

Eigene Bewertung:
Bitte zuerst anmelden

Meta

Zeit: 0.25
Schwierigkeit: Leicht
Webcode: uzib-jyek
Autor: ()

Download PDF

Download ZIP

Zu Aufgabenblatt hinzufügen