Linux - Arithmetische Berechnungen

LinuxLinuxBeginner
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

Die Linux-Befehlszeile bietet leistungsstarke Tools für die Durchführung von arithmetischen Berechnungen. Einer der vielseitigsten Taschenrechner in Linux ist bc (Basic Calculator), der es Benutzern ermöglicht, sowohl einfache als auch komplexe mathematische Operationen direkt aus der Kommandozeile auszuführen.

In diesem Lab lernen Sie, wie Sie den bc-Befehl verwenden, um verschiedene arithmetische Berechnungen in Linux durchzuführen. Sie beginnen mit einfachen Operationen und gehen schrittweise zu komplexeren Ausdrücken über. Die von Ihnen erlernten Fähigkeiten werden nützlich sein für das Schreiben von Skripten, die Datenverarbeitung und die effiziente Lösung von Rechenproblemen in einer Linux-Umgebung.

Am Ende dieses Labs können Sie:

  • Einfache arithmetische Operationen mit bc durchführen
  • Komplexe mathematische Ausdrücke mit mehreren Operationen verarbeiten
  • Variablen verwenden und die Genauigkeit von Berechnungen steuern
  • Skripts erstellen, die mathematische Berechnungen automatisieren

Beginnen wir mit der Erkundung der Möglichkeiten des Linux-bc-Taschenrechners.

Dies ist ein Guided Lab, das schrittweise Anweisungen bietet, um Ihnen beim Lernen und Üben zu helfen. Befolgen Sie die Anweisungen sorgfältig, um jeden Schritt abzuschließen und praktische Erfahrungen zu sammeln. Historische Daten zeigen, dass dies ein Labor der Stufe Anfänger mit einer Abschlussquote von 84% ist. Es hat eine positive Bewertungsrate von 94% von den Lernenden erhalten.

Grundlegende Arithmetik mit bc

In diesem Schritt lernen wir, wie man den bc-Befehl für grundlegende arithmetische Operationen in Linux verwendet. Der bc-Befehl ist ein leistungsstarkes Rechenwerkzeug, das es Ihnen ermöglicht, Berechnungen direkt aus der Kommandozeile auszuführen.

Installation von bc

Zunächst stellen wir sicher, dass der bc-Rechner auf Ihrem System installiert ist:

sudo apt-get update
sudo apt-get install -y bc

Sie sollten eine Ausgabe sehen, die den Installationsprozess anzeigt. Nach der Installation können Sie überprüfen, ob es funktioniert, indem Sie Folgendes eingeben:

bc --version

Sie sollten Versionsinformationen für den bc-Rechner sehen.

Erstellen eines einfachen Additions-Skripts

Jetzt erstellen wir ein einfaches Skript, um eine Addition mit bc durchzuführen:

  1. Navigieren Sie in das Projektverzeichnis:
cd ~/project
  1. Erstellen Sie eine neue Skriptdatei namens simple_calc.sh:
touch simple_calc.sh
  1. Öffnen Sie die Datei mit dem nano-Editor:
nano simple_calc.sh
  1. Fügen Sie den folgenden Inhalt in die Datei ein:
#!/bin/zsh

## Simple addition using bc
echo "20 + 5" | bc
  1. Speichern Sie die Datei, indem Sie Strg+O drücken, dann Enter, und verlassen Sie nano mit Strg+X.

  2. Machen Sie das Skript ausführbar:

chmod +x simple_calc.sh
  1. Führen Sie das Skript aus:
./simple_calc.sh

Sie sollten die folgende Ausgabe sehen:

25

Dies zeigt, wie bc den Ausdruck "20 + 5" als Eingabe nimmt und das Ergebnis 25 liefert.

Funktionsweise von bc verstehen

Der bc-Befehl ist ein auf Pipelines orientierter Rechner. Wir verwenden das Pipe-Symbol (|), um Ausdrücke an bc zur Auswertung zu senden. Die grundlegende Syntax lautet:

echo "expression" | bc

Sie können auch andere grundlegende Operationen ausprobieren:

echo "10 - 3" | bc ## Subtraction
echo "4 * 6" | bc  ## Multiplication
echo "15 / 3" | bc ## Division

Führen Sie diese Befehle in Ihrer Kommandozeile aus, um die Ergebnisse zu sehen:

echo "10 - 3" | bc
echo "4 * 6" | bc
echo "15 / 3" | bc

Die Ausgabe sollte sein:

7
24
5

Gleitkomma-Berechnungen mit bc

In diesem Schritt lernen wir, wie man Gleitkomma-Berechnungen mit dem bc-Rechner durchführt. Standardmäßig führt bc Ganzzahlarithmetik durch, aber wir können den scale-Parameter verwenden, um die Dezimalpräzision zu steuern.

Der scale-Parameter verstehen

Der scale-Parameter in bc bestimmt die Anzahl der Dezimalstellen, die bei Berechnungen verwendet werden. Sehen wir uns an, wie er funktioniert:

  1. Versuchen Sie diesen Befehl, um eine Division ohne Einstellung des scale-Parameters durchzuführen:
echo "5 / 2" | bc

Die Ausgabe wird sein:

2

Beachten Sie, dass das Ergebnis auf eine Ganzzahl abgeschnitten wird, nicht gerundet.

  1. Jetzt setzen wir einen scale-Wert, um ein genaueres Ergebnis zu erhalten:
echo "scale=2; 5 / 2" | bc

Die Ausgabe wird sein:

2.50

scale=2 sagt bc, dass das Ergebnis mit 2 Dezimalstellen berechnet werden soll.

Erstellen eines Skripts für komplexe Berechnungen

Erstellen wir ein Skript, das die Verwendung von scale demonstriert und komplexere Berechnungen durchführt:

  1. Navigieren Sie in das Projektverzeichnis, falls Sie nicht bereits dort sind:
cd ~/project
  1. Erstellen Sie eine neue Skriptdatei namens complex_calc.sh:
touch complex_calc.sh
  1. Öffnen Sie die Datei mit dem nano-Editor:
nano complex_calc.sh
  1. Fügen Sie den folgenden Inhalt in die Datei ein:
#!/bin/zsh

## Complex calculation using bc with scale
result=$(echo "scale=2; (10.5 * 4.2) - (5.5 / 2) + 3^2" | bc)
echo "Result: $result"

Dieses Skript:

  • Setzt die Dezimalpräzision auf 2 Stellen.
  • Führt eine Multiplikation durch: 10.5 * 4.2
  • Führt eine Division durch: 5.5 / 2
  • Berechnet eine Potenz: 3^2 (3 hoch 2)
  • Kombiniert diese Operationen mit Addition und Subtraktion
  • Speichert das Ergebnis in einer Variablen namens result
  • Gibt das Ergebnis mit einer beschreibenden Bezeichnung aus
  1. Speichern Sie die Datei, indem Sie Strg+O drücken, dann Enter, und verlassen Sie nano mit Strg+X.

  2. Machen Sie das Skript ausführbar:

chmod +x complex_calc.sh
  1. Führen Sie das Skript aus:
./complex_calc.sh

Sie sollten eine Ausgabe ähnlich der folgenden sehen:

Result: 46.35

Lassen Sie uns die Berechnung analysieren:

  • 10.5 * 4.2 = 44.1
  • 5.5 / 2 = 2.75
  • 3^2 = 9
  • 44.1 - 2.75 + 9 = 50.35

Warten Sie, das erwartete Ergebnis sollte 50.35 sein, aber wir haben 46.35 erhalten. Dies liegt daran, dass die Berechnung im Skript korrigiert werden muss. Lassen Sie uns es beheben:

nano complex_calc.sh

Aktualisieren Sie die Berechnung:

#!/bin/zsh

## Complex calculation using bc with scale
result=$(echo "scale=2; (10.5 * 4.2) - (5.5 / 2) + 3^2" | bc)
echo "Result: $result"

## Breaking down the calculation
part1=$(echo "scale=2; 10.5 * 4.2" | bc)
part2=$(echo "scale=2; 5.5 / 2" | bc)
part3=$(echo "3^2" | bc)

echo "Part 1 (10.5 * 4.2): $part1"
echo "Part 2 (5.5 / 2): $part2"
echo "Part 3 (3^2): $part3"
echo "Final: $part1 - $part2 + $part3 = $(echo "scale=2; $part1 - $part2 + $part3" | bc)"

Speichern Sie die Änderungen und führen Sie das Skript erneut aus:

./complex_calc.sh

Dieses aktualisierte Skript zeigt die Aufteilung jeder Teilberechnung an, was es einfacher macht, zu verstehen, wie das endgültige Ergebnis erhalten wird.

Arbeiten mit Variablen in bc

In diesem Schritt lernen wir, wie man Variablen in bc verwendet, um unsere Berechnungen flexibler und leistungsfähiger zu gestalten. Der bc-Rechner ermöglicht es uns, Variablen zu definieren und sie in mehreren Berechnungen wiederzuverwenden.

Interaktive Verwendung von Variablen in bc

Zunächst untersuchen wir, wie man Variablen direkt im interaktiven Modus von bc verwendet:

  1. Starten Sie den bc-Rechner im interaktiven Modus:
bc
  1. Definieren Sie eine Variable und führen Sie Berechnungen damit aus:
x = 10
x + 5
x * 2

Sie sollten sehen:

15
20
  1. Sie können mehrere Variablen definieren und gemeinsam verwenden:
y = 7
x + y
x * y

Die Ausgabe wird sein:

17
70
  1. Beenden Sie den interaktiven Modus, indem Sie Strg+D drücken oder quit eingeben.

Erstellen eines Skripts mit bc-Variablen

Jetzt erstellen wir ein Skript, das die Verwendung von Variablen in bc-Berechnungen demonstriert:

  1. Navigieren Sie in das Projektverzeichnis, falls Sie nicht bereits dort sind:
cd ~/project
  1. Erstellen Sie eine neue Skriptdatei namens variable_calc.sh:
touch variable_calc.sh
  1. Öffnen Sie die Datei mit dem nano-Editor:
nano variable_calc.sh
  1. Fügen Sie den folgenden Inhalt in die Datei ein:
#!/bin/zsh

## Script to demonstrate using variables in bc

## Define input values
radius=5
height=10

## Calculate cylinder volume (π * r² * h)
volume=$(echo "scale=2; 3.14159 * $radius * $radius * $height" | bc)

## Calculate cylinder surface area (2π * r² + 2π * r * h)
surface_area=$(echo "scale=2; 2 * 3.14159 * $radius * $radius + 2 * 3.14159 * $radius * $height" | bc)

## Display results
echo "Cylinder properties with radius $radius and height $height:"
echo "Volume: $volume cubic units"
echo "Surface Area: $surface_area square units"

Dieses Skript:

  • Definiert Variablen für den Radius und die Höhe eines Zylinders
  • Berechnet das Volumen mithilfe der Formel π _ r² _ h
  • Berechnet die Oberfläche mithilfe der Formel 2π _ r² + 2π _ r * h
  • Zeigt die Ergebnisse mit entsprechenden Einheiten an
  1. Speichern Sie die Datei, indem Sie Strg+O drücken, dann Enter, und verlassen Sie nano mit Strg+X.

  2. Machen Sie das Skript ausführbar:

chmod +x variable_calc.sh
  1. Führen Sie das Skript aus:
./variable_calc.sh

Sie sollten eine Ausgabe ähnlich der folgenden sehen:

Cylinder properties with radius 5 and height 10:
Volume: 785.39 cubic units
Surface Area: 471.23 square units

Verwendung von Variablen innerhalb von bc

Wir können auch Variablen vollständig innerhalb von bc definieren und verwenden, indem wir einen mehrzeiligen Ansatz verfolgen. Erstellen wir ein weiteres Skript, um dies zu demonstrieren:

  1. Erstellen Sie eine neue Datei:
nano bc_variables.sh
  1. Fügen Sie den folgenden Inhalt hinzu:
#!/bin/zsh

## Script to demonstrate using variables within bc

bc << EOF
scale=2
radius = 5
height = 10
pi = 3.14159

## Calculate cylinder volume
volume = pi * radius^2 * height
print "Volume: ", volume, " cubic units\n"

## Calculate cylinder surface area
surface_area = 2 * pi * radius^2 + 2 * pi * radius * height
print "Surface Area: ", surface_area, " square units\n"
EOF

Dieses Skript:

  • Nutzt ein "Here-Dokument" (EOF), um mehrere Zeilen an bc zu senden
  • Definiert alle Variablen innerhalb von bc selbst
  • Führt Berechnungen unter Verwendung dieser Variablen aus
  • Nutzt den print-Befehl in bc, um die Ergebnisse anzuzeigen
  1. Speichern Sie die Datei, machen Sie sie ausführbar und führen Sie sie aus:
chmod +x bc_variables.sh
./bc_variables.sh

Die Ausgabe sollte ähnlich der des vorherigen Skripts sein, zeigt aber einen anderen Ansatz zur Verwendung von Variablen mit bc.

Erstellen eines praktischen bc-Rechner-Skripts

In diesem letzten Schritt werden wir ein praktischeres Rechner-Skript erstellen, das alle Konzepte zusammenführt, die wir gelernt haben. Dieses Skript ermöglicht es Benutzern, verschiedene Berechnungen durchzuführen, indem sie Optionen aus einem Menü auswählen.

Aufbau eines interaktiven Rechners

Erstellen wir ein Skript, das als interaktiver Rechner fungiert:

  1. Navigieren Sie in das Projektverzeichnis, falls Sie nicht bereits dort sind:
cd ~/project
  1. Erstellen Sie eine neue Skriptdatei namens calculator.sh:
touch calculator.sh
  1. Öffnen Sie die Datei mit dem nano-Editor:
nano calculator.sh
  1. Fügen Sie den folgenden Inhalt in die Datei ein:
#!/bin/zsh

## Interactive calculator script using bc

## Function to calculate area of a circle
calculate_circle_area() {
  echo -n "Enter the radius of the circle: "
  read radius
  area=$(echo "scale=2; 3.14159 * $radius * $radius" | bc)
  echo "The area of the circle with radius $radius is: $area square units"
}

## Function to calculate area of a rectangle
calculate_rectangle_area() {
  echo -n "Enter the length of the rectangle: "
  read length
  echo -n "Enter the width of the rectangle: "
  read width
  area=$(echo "scale=2; $length * $width" | bc)
  echo "The area of the rectangle with length $length and width $width is: $area square units"
}

## Function to solve quadratic equation ax² + bx + c = 0
solve_quadratic() {
  echo -n "Enter coefficient a: "
  read a
  echo -n "Enter coefficient b: "
  read b
  echo -n "Enter coefficient c: "
  read c

  ## Calculate discriminant
  discriminant=$(echo "scale=4; ($b * $b) - (4 * $a * $c)" | bc)

  ## Check the discriminant
  if (($(echo "$discriminant < 0" | bc -l))); then
    echo "The equation has no real solutions (discriminant < 0)"
  elif (($(echo "$discriminant == 0" | bc -l))); then
    ## One solution
    x=$(echo "scale=4; -$b / (2 * $a)" | bc)
    echo "The equation has one solution: x = $x"
  else
    ## Two solutions
    x1=$(echo "scale=4; (-$b + sqrt($discriminant)) / (2 * $a)" | bc -l)
    x2=$(echo "scale=4; (-$b - sqrt($discriminant)) / (2 * $a)" | bc -l)
    echo "The equation has two solutions:"
    echo "x1 = $x1"
    echo "x2 = $x2"
  fi
}

## Main program loop
while true; do
  echo ""
  echo "===== BC Calculator Menu ====="
  echo "1. Calculate area of a circle"
  echo "2. Calculate area of a rectangle"
  echo "3. Solve quadratic equation (ax² + bx + c = 0)"
  echo "4. Exit"
  echo ""

  echo -n "Enter your choice (1-4): "
  read choice

  case $choice in
    1) calculate_circle_area ;;
    2) calculate_rectangle_area ;;
    3) solve_quadratic ;;
    4)
      echo "Exiting calculator. Goodbye!"
      exit 0
      ;;
    *) echo "Invalid option. Please try again." ;;
  esac
done

Dieses Skript:

  • Definiert Funktionen für verschiedene Arten von Berechnungen
  • Bietet eine Menüoberfläche, damit der Benutzer die gewünschte Berechnung auswählen kann
  • Nutzt bc für alle mathematischen Operationen
  • Behandelt komplexere mathematische Formeln wie die quadratische Gleichung
  1. Speichern Sie die Datei, indem Sie Strg+O drücken, dann Enter, und verlassen Sie nano mit Strg+X.

  2. Machen Sie das Skript ausführbar:

chmod +x calculator.sh
  1. Führen Sie das Rechner-Skript aus:
./calculator.sh
  1. Versuchen Sie jede Option im Menü:
    • Wählen Sie Option 1 und geben Sie einen Radius ein, um die Fläche eines Kreises zu berechnen
    • Wählen Sie Option 2 und geben Sie Länge und Breite ein, um die Fläche eines Rechtecks zu berechnen
    • Wählen Sie Option 3 und geben Sie die Koeffizienten ein, um eine quadratische Gleichung zu lösen (versuchen Sie a=1, b=5, c=6)
    • Wählen Sie Option 4, um den Rechner zu beenden

Beispielsweise sollten Sie, wenn Sie Option 3 wählen und a=1, b=5, c=6 eingeben, eine Ausgabe ähnlich der folgenden sehen:

The equation has two solutions:
x1 = -2.0000
x2 = -3.0000

Dieses interaktive Skript zeigt, wie bc in komplexere Programme integriert werden kann, um eine Vielzahl von mathematischen Problemen zu lösen.

Zusammenfassung

In diesem Lab haben Sie gelernt, wie Sie den Befehlszeilen-Rechner bc in Linux verwenden, um verschiedene arithmetische Operationen durchzuführen.

Hier ist eine Zusammenfassung dessen, was Sie erreicht haben:

  1. Grundlegende arithmetische Operationen:

    • Sie haben den bc-Rechner installiert und verifiziert.
    • Sie haben ein einfaches Skript erstellt, um Additionen durchzuführen.
    • Sie haben gelernt, wie Sie den Pipe-Operator verwenden, um Ausdrücke an bc zu senden.
    • Sie haben grundlegende Operationen wie Addition, Subtraktion, Multiplikation und Division geübt.
  2. Fließkomma-Berechnungen:

    • Sie haben den scale-Parameter verwendet, um die Dezimalpräzision zu steuern.
    • Sie haben ein Skript für komplexere Berechnungen mit mehreren Operationen erstellt.
    • Sie haben die Reihenfolge der Operationen verstanden und gelernt, wie Sie Klammern verwenden, um den Berechnungsfluss zu steuern.
  3. Arbeiten mit Variablen:

    • Sie haben Shell-Variablen in bc-Berechnungen verwendet.
    • Sie haben den interaktiven Modus von bc zur Definition und Verwendung von Variablen erkundet.
    • Sie haben Skripte erstellt, die Variablen für flexiblere Berechnungen nutzen.
    • Sie haben gelernt, wie Sie "Here-Dokumente" für mehrzeilige bc-Operationen verwenden.
  4. Praktische Anwendungen:

    • Sie haben ein interaktives Rechner-Skript mit einer Menüoberfläche erstellt.
    • Sie haben gängige geometrische Berechnungen implementiert.
    • Sie haben komplexere Gleichungen wie quadratische Formeln gelöst.
    • Sie haben alle gelernten Konzepte in einer nützlichen Anwendung kombiniert.

Diese Fähigkeiten ermöglichen es Ihnen, mathematische Operationen effizient in der Linux-Befehlszeile durchzuführen und Berechnungen in Ihren Skripten zu automatisieren. Der bc-Rechner ist ein leistungsfähiges Werkzeug, das alles von einfacher Arithmetik bis hin zu komplexen mathematischen Formeln bewältigen kann. Dies macht es zu einem essentiellen Hilfsmittel für Systemadministratoren, Entwickler und Datenanalysten, die in einer Linux-Umgebung arbeiten.

Wenn Sie weiterhin mit Linux arbeiten, werden Sie feststellen, dass die Kombination von Befehlszeilen-Tools wie bc mit Shell-Skripting Ihnen hilft, eine Vielzahl von Problemen effizienter zu lösen.