/*
 * Created on 13-Dec-2004 by @author fischer
 *
 * $Log: Aufgabe22abcd.java,v $
 * Revision 1.1  2005/01/04 07:49:05  fischer
 * Musterlösung A10
 *
 * Revision 1.2  2004/12/13 16:14:59  kriewel
 * *** empty log message ***
 *
 * Revision 1.1  2004/12/13 16:00:42  fischer
 * Musterlösungen Blatt 10
 *
 * 
 * $Revision: 1.1 $
 */
package de.unidue.is.prog.woche10;

import java.util.Collections;
import java.util.Vector;

/**
 * @author fischer
 */
public class Aufgabe22abcd {

	// Lösung Teil b)
	public static int diff(int a,int b) {
		int d=a-b;
		if (d>=0) return d; else return -d;
	}
	
	public static int diffAPI(int a,int b) {
		return Math.abs(a-b);
	}
	
	// Lösung Aufgabe c)
	public static int toInt(String number) {
		int ergebnis=0;
		for (int i=0; i<number.length(); i++) {
			String theChar=number.substring(i,i+1);
			ergebnis = ergebnis*10+Integer.parseInt(theChar);
			System.out.println("Wert von \""+number.substring(0,i+1)+"\": "+ergebnis);			
		}
		return ergebnis;

	}
	
	// Lösung Aufgabe d)
	public static Vector reverse(Vector input) {
		Vector ergebnis=new Vector();
		for (int i=input.size()-1; i>=0; i--) ergebnis.addElement(input.elementAt(i));
		return ergebnis;
	}
	
	public static Vector reverseAPI(Vector input) {
		Vector ergebnis=new Vector(input); // kopieren
		Collections.reverse(ergebnis); // Reihenfolge umkehren
		return ergebnis;
	}
	
	public static void main(String[] args) {
		// Lösung Teil a)
		double a,b;
		a=1.0;
		b=2.0;
		//vertauschen:
		double temp=a;
		a=b;
		b=temp;
		// das waren nun drei Anweisungen
		System.out.println("a="+a+", b="+b);
		
		a=a+b;
		b=a-b;
		a=a-b;
		//	drei Anweisungen ohne temp. Variable
		System.out.println("a="+a+", b="+b);
		
		b=((a+=b)-b);
		a=a-b;
		//	zwei Anweisungen
		System.out.println("a="+a+", b="+b);

		a=-(b=((a+=b)-b))+a;
		//	eine Anweisung
		System.out.println("a="+a+", b="+b);
		
		// Test für b)
		System.out.println("diff(5,-2)="+diff(5,-2));
		System.out.println("diffAPI(5,-2)="+diffAPI(5,-2));
		
		// Test für c)
		System.out.println("toInt(4321): "+toInt("4321"));
		
		// Test für d)
		Vector test=new Vector();
		test.add("a");
		test.add("b");
		test.add("c");
		Vector r=reverse(test);
		for (int i=0; i<r.size(); i++) System.out.println((String) r.elementAt(i));
		r=reverseAPI(test);
		for (int i=0; i<r.size(); i++) System.out.println((String) r.elementAt(i));
	}
}
