Mittelwerte berechnen

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von blinkyy, 15.11.2008.

  1. #1 blinkyy, 15.11.2008
    blinkyy

    blinkyy Grünschnabel

    Dabei seit:
    15.11.2008
    Beiträge:
    2
    Zustimmungen:
    0
    Hallo Leute!
    Ich bin auf eine Aufgabe gestoßen die ich nicht lösen kann.

    Man soll ein Skript schreiben, das den Mittelwert für beliebig viele übergebene Parameter berechnet und dafür die Befehle shift oder eval benutzen.

    Ich hab erst vor kurzem mit Unix/Linux und mit dem Programmieren angefangen, also bei mir liegt es schon an den noch sehr wackligen Grundlagen. Also was mach ich denn mit shift oder eval und wie soll ich damit den Mittelwert berechnen?

    Hat jemand dazu eine Idee?

    Danke schonmal im Vorraus!
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. #2 Tblue, 15.11.2008
    Zuletzt bearbeitet: 15.11.2008
    Tblue

    Tblue Tripel-As

    Dabei seit:
    27.11.2007
    Beiträge:
    188
    Zustimmungen:
    0
    Wenn du die Bash benutzt, brauchst du dazu gar kein eval oder shift:
    Code:
    #!/bin/bash
    
    if [ "$#" -eq 0 ]; then
        echo 'No parameters given.'
        exit 1
    fi
    
    sum=0
    for param in "$@"; do
    	sum=$(($sum+$param))
    done
    
    echo "Num: ${#}"
    echo "Sum: ${sum}"
    echo "Avg: $(($sum/$#))"
    
    exit 0
    Oder mit shift (und ohne Bash-Variablen):
    Code:
    #!/bin/bash
    
    if [ -z "$1" ]; then
    	echo 'No parameters given.'
    	exit 1
    fi
    
    num=0
    sum=0
    while [ ! -z "$1" ]; do
        num=$(($num+1))
        sum=$(($sum+$1))
        shift
    done
    
    echo "Num: ${num}"
    echo "Sum: ${sum}"
    echo "Avg: $(($sum/$num))"
    
    exit 0
    Das hier könnte dir in Zukunft weiterhelfen: http://tldp.org/LDP/abs/html

    MfG,

    Tblue
     
  4. #3 blinkyy, 15.11.2008
    Zuletzt bearbeitet: 15.11.2008
    blinkyy

    blinkyy Grünschnabel

    Dabei seit:
    15.11.2008
    Beiträge:
    2
    Zustimmungen:
    0
    Hey vielen Dank!
    Aber wie gehe ich denn die ganzen Zahlen ein, von denen ich meinen Mittelwert berechnen will?
    Einfach mit
    read ... ? Werden die dann mit Punkten oder Leerzeichen getrennt?


    Könnte mir noch jemand in ganz einfachen Worten erklären was eval oder shift macht? Finde dazu keine gute Erklärung!
     
  5. rikola

    rikola Foren Gott

    Dabei seit:
    23.08.2005
    Beiträge:
    2.133
    Zustimmungen:
    0
    Wenn ein (bash)-Skript mit Parametern aufgerufen wird, so sind die Parameter innerhalb des Skriptes als durchnumerierte $1,...$n abrufbar, d.h.
    mit einem Aufruf wie
    sind innerhalb des Skriptes mittelwert.sh die Variablen/ Parameter $1(=4), $2 (= 8 ), $3 (=2) und $4 (=9) definiert und benutzbar.
    Ein 'shift' innerhalb des Skriptes schmeisst die erste Variable weg und numeriert die anderen durch, so dass sie dann von $1,...${n-1} laufen. Das bedeutet, wenn Du weisst, dass Du die (bis dahin) erste Variable nicht mehr benoetigst, kannst Du ein 'shift' aufrufen, so dass dann die naechste Variable mit $1 ansprechbar ist.
     
  6. Tblue

    Tblue Tripel-As

    Dabei seit:
    27.11.2007
    Beiträge:
    188
    Zustimmungen:
    0
    Richtig. Erlaube mir, für eval einfach die manpage zu zitieren (aufrufbar durch "man 1p eval"):
     
Thema:

Mittelwerte berechnen

Die Seite wird geladen...

Mittelwerte berechnen - Ähnliche Themen

  1. Mittelwerte berechnen und auslesen lassen

    Mittelwerte berechnen und auslesen lassen: Hallo, ich bin absolut neu was Shell-Skripte angeht und hab am Montag zum ersten Mal überhaupt was von Bash gehört. Allerdings hab ich...
  2. Anzahl Blöcke Unix-Dateisystem berechnen

    Anzahl Blöcke Unix-Dateisystem berechnen: Hi, Ich möchte folgende Aufgabe berechnen: Die Blockgröße eines Unix-Dateisystems beträgt 4 kiByte. Die indirekten Blöcke enthalten 1024...
  3. crc16 Berechnen

    crc16 Berechnen: Ich versuche per Netzwerk die Kommunikation mit einem Gerät herzustellen. Dafür nutze ich QTcpSocket, was soweit auch klappt. Die...
  4. gnuplot: R^2 berechnen

    gnuplot: R^2 berechnen: Hi, mit gnuplot kann man eine lineare Regression seiner Daten durchführen. Allerdings gibt es mir nur die Steigung und den y-Achsenabschnitt...
  5. uptime berechnen

    uptime berechnen: hallo.. ich will ein sprict schreiben, dass beim start automatisch gestartet wird und die uptime (also die zeit, in der der rechner an jedem tag...