Grundlagen der Programmierung in Go - Aufgaben

01. Hallo Welt

Schreibe ein Programm, das mit der Funktion fmt.Println() den Text "Hallo Welt!" auf der Konsole ausgibt.

02. Hallo Benutzer

Schreibe ein Programm, das den Benutzer mit seinem Namen begrüßt. Nutze die Funktion os.Getenv() um den Benutzernamen zu ermitteln.

03. Ausgabe von Pi

Schreibe an Programm, das die Konstante math.Pi mit nur zwei Nachkommastellen auf der Konsole ausgibt.

Ausgabe

3.14

04. Satz des Pythagoras

Schreibe an Programm, das die Länge der Seite c in einem rechtwinkligen Dreieck mit den Seitenlängen a = 15 and b = 17 berechnet und das Ergebnis auf eine Nachkommastelle gerundet auf der Konsole ausgibt.

Ausgabe

c = 22.7

05. Zahlenfolge

Schreibe ein Programm, das mit einer Schleife die Zahlen 1 bis 9 auf der Konsole ausgibt wobei nach der letzten Zahl kein Komma ausgegeben werden soll.

Ausgabe

1, 2, 3, 4, 5, 6, 7, 8, 9

06. Summe aufeinander folgender Zahlen

Schreibe ein Programm, das die Summe der ersten 100 positiven ganzen Zahlen ausgibt. Verwende eine Schleife, um die Summe zu berechnen.

(1 + 2 + 3 + ... + 99 + 100 = 5050)

07. Geometrische Formen "zeichnen"

Schreibe für jede Form ein Programm, das mit der Funktion fmt.Print() in verschachtelten Schleifen die geometrische Form mit ASCII-Zeichen ausgibt. Die Größe der Formen soll durch eine Variable bestimmt werden können.

Viereck

*****
*****
*****
*****
*****

Rechtwinkliges Dreieck

*
**
***
****
*****

Gleichschenkliges Dreieck

    *
   ***
  *****
 *******
*********

Raute

    *
   ***
  *****
 *******
*********
 *******
  *****
   ***
    *

08. Größte Zahl aus Zufallszahlen-Array

Schreibe ein Programm, das ein Array von 20 Ganzzahlen mit Zufallszahlen von 0 bis 100 befüllt und ausgibt. Außerdem soll das Programm die größte Zahl in dem ausgegebenen Array ermitteln und ebefalls ausgeben. Pseudozufallszahlen können mit der Funktion rand.Intn() aus dem Package math/rand erzeugt werden.

09. Zufallszahlen-Slice mit zufälliger Länge

Schreibe ein Programm, das ein Slice von Ganzzahlen mit Zufallszahlen von 0 bis 100 befüllt und ausgibt. Das Slice soll bei jedem Ausführen des Programms eine zufällige Länge zwischen 5 und 25 haben. Pseudozufallszahlen können mit der Funktion rand.Intn() aus dem Package math/rand erzeugt werden.

10. Reverse-String

Schreibe ein Programm, das die die Zeichen des Strings "Hello, World!" in umgekehrter Reihenfolge auf der Konsole ausgibt.

11. String in Großbuchstaben umwandeln

Schreibe ein Programm, das eine angegebene Zeichenkette in Großbuchstaben umwandelt und ausgibt.

Franz jagt im komplett verwahrlosten Taxi quer durch Bayern.
FRANZ JAGT IM KOMPLETT VERWAHRLOSTEN TAXI QUER DURCH BAYERN.

12. Piratennamen-Generator

Schreibe ein Programm, das aus zwei String-Arrays mit Vor- und Nachnamen zufällig einen Namen zusammensetzt und diesen ausgibt.

Vornamen: Edward, Francis, Henry, Jack, James, John, William
Nachnamen: Teach, Drake, Morgan, Sparrow, Hook, Hawkins, Turner

13. Meilen pro Stunde in km/h umwandeln

Erstelle ein Programm, das Meilen pro Stunde in Kilometer pro Stunde und umgekehrt umwandelt und das Ergebnis auf der Konsole ausgibt (1 mph = 1,61 km/h). Nutze das Package flag um es dem Benutzer zu ermöglichen die Geschwindigkeit and die Einheit anzugeben.

Aufruf (mph in km/h)

mph2kmh.exe -mph 88

Ausgabe

88.00 mph = 141.68 km/h

Aufruf (km/h in mph)

mph2kmh.exe -kmh 141.68

Ausgabe

141.68 km/h = 88.00 mph

14. Celsius/Fahrenheit/Kelvin Umrechnung

Schreibe ein Programm, bei dem der Benutzer eine Temperatur in einer bestimmten Einheit (Celsius, Fahrenheit oder Kelvin) eingeben kann und anschließend die Temperatur in eine der anderen Einheiten umgerechnet angezeigt wird. Der Benutzer soll beliebig viele Temperaturen umrechnen können ohne das Programm neu starten zu müssen.

F = C × 1.8 + 32
C = (F - 32) ÷ 1.8
K = C + 273,15

15. Funktion zur Prüfung von Primzahlen

Schreibe eine Funktion, die prüft ob eine beliebige natürliche Zahl eine Primzahl ist. Eine Primzahl ist eine natürliche Zahl, die größer als 1 und ausschließlich durch sich selbst und durch 1 teilbar ist. Schreibe außerdem ein Programm, das die Funktion verwendet und alle Primzahlen kleiner als 100 ausgibt.

Ausgabe

2  3  5  7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97

16. Funktion zur Summen-Berechnung

Schreibe eine Funktion, welche die Summe beliebig vieler Ganzzahlen berechnet und zurückgibt. Nutze für die Lösung eine Variable Argumentenliste. Mit dem Nachfolgenden Test kannst du überprüfen ob die Funktion richtig umgesetzt wurde.

func TestSum(t *testing.T) {
    var numbers = []int{11, 22, 33, 44, 55, 66, 77}
    if sum := Sum(numbers...); sum != 308 {
        t.Errorf("Summe muss 308 sein, nicht %d", sum)
    }
}

17. Text-Datei mit Zeilennummern ausgeben

Schreibe ein Programm, das eine Text-Datei öffnet und jede Zeile der Datei mit der entsprechenden Zeilennummer am Anfang auf der Konsole ausgibt.

18. Piratennamen-Generator V2

Schreibe ein Programm, das eine Liste mit Vor- und Nachnamen jeweils aus einer Textdatei lädt und dann zufällig einen Namen zusammensetzt und diesen ausgibt.

Vornamen: Edward, Francis, Henry, Jack, James, John, William
Nachnamen: Teach, Drake, Morgan, Sparrow, Hook, Hawkins, Turner

19. Koordinatensystem

Schreibe ein Programm, das zwei Koordinate (A und B) welche vom Benutzer beim Start des Programms angegebn wurde, in jeweils einer Variable vom Typ type Point struct { X, Y int } speichert und anschließend die Koordinaten in einem ASCII-Koordinatensystem auf der Konsole ausgibt.

Aufruf

koordinaten.exe -Ax 7 -Ay 6 -Bx 2 -By 3

Ausagabe

7 |
6 |            A
5 |
4 |
3 |  B
2 |
1 |
  +---------------
   1 2 3 4 5 6 7 8