#!/bin/csh

set produkt = 1
set altesprodukt = 1

if($#argv>0) then
  foreach z ($argv)
    @ produkt *= $z
  end
  echo $produkt
else
  echo "Multiplikation von Zahlen:"
  echo "? Zwischensumme anzeigen"
  echo "= Produkt anzeigen und beenden"
  echo "x vorangegangene Zahl annulieren"
  echo "n Prozedur neu starten"
  set exit=0
  
  while("$exit" == "0")
    echo --------------------------------
    echo -n "Auswahl oder Zahl eingeben: "
    set eingabe = $<
    
    switch("$eingabe")
      case [?]:
        echo "Zwischenergebnis: $produkt"
        breaksw
      case =:
        echo "Endprodukt: $produkt"
	set exit = 1
        breaksw
      case x:
        set produkt = $altesprodukt
	echo "Neues Produkt: $produkt"
	breaksw
      case n:
        echo "Neustart der Multiplikation, altes Produkt = $produkt"
	set produkt = 1
	set altesprodukt = 1
        breaksw
      default:
        # Ziffern erkennen
	set a = "`echo '$eingabe' | grep \[0-9\] `" 
	if ("$a" != "") then
	# es sind Ziffern enthalten
	# Nicht-Ziffern herausfiltern
	  set eingabe = `echo "$eingabe" | sed 's/[^0-9]//g'`
	  set altesprodukt = $produkt
	  @ produkt *= $eingabe
	  set divprodukt = $altesprodukt
	  if("$eingabe" != "0") @ divprodukt = $produkt / $eingabe
	  if("$altesprodukt" != "$divprodukt") then
	    set produkt = $altesprodukt
	    echo Wertebereich ueberschritten!
	    echo Loesche letzten Faktor...
	  endif
          breaksw
        else
          echo "Unerwartete Eingabe: $eingabe"
	endif
	  breaksw
    endsw
  end
endif
