# Betrag eines Vektors



## Wusaa (21. Apr 2007)

Habe mit folgender Aufgabe Probleme beim Ansatz ...
Kann mir vielleicht jemand weiterhelfen?


Entwickeln Sie folgendes Programm: Ermittelt den Betrag eines N-dimensionalen Vektors. 
Eingabe:
Beliebiger Vektor und dessen Dimension, z.Bsp.: Dimension N = 5, v(12, 34, 14, 17, 23) 

Ausgabe:
Bearbeite Vektor v(12, 34, 14, 17, 23), Dimension N = 5 
|v| = 48.10 


MfG


----------



## Leroy42 (21. Apr 2007)

1. Dimension einlesen
2. Vektor einlesen
3. Betrag bilden
4. Ausgeben

3 a) Summe der Quadrate der Vektorelemente bestimmen
2 b) Aus dem Ergebnis die Quadratwurzel bestimmen.


----------



## Wusaa (21. Apr 2007)

Ja das PRoblem ist nur dass ich nicht mal weiß wie man das macht. klingt komisch, is aber so


----------



## AlArenal (21. Apr 2007)

Mathe-Buch?


----------



## Wusaa (21. Apr 2007)

wie man den betrag des vektors rechnet ist mir klar.

ich weiß nur nicht wie ich dies in java umsetze


----------



## Leroy42 (21. Apr 2007)

AlArenal hat gesagt.:
			
		

> Mathe-Buch?



*LOL*

Aber nicht doch gleich mit Kanonen auf Spatzen schiessen:

Das kann Wusa doch billiger haben:

Wikipedia: Betrag eines Vektors


----------



## Leroy42 (21. Apr 2007)

```
int[] vector;
// Einlesen
int sum = 0;
for (int x:vector)
  sum += x;
int betrag = (int) Math.sqrt(sum);
// Ausgeben
```


----------



## Wusaa (21. Apr 2007)

kannst du mir das vielleicht ein bisschen verständlicher erklären?

habe bis jetzt soviel


```
public static void main( String[] args ) {
	
		int v [] = new int []{12,18,15,12,13};
```


----------



## Leroy42 (21. Apr 2007)

Du durchläufst jetzt diesen Vektor und summierst die Quadrate jedes Elements.

Dann bildest du die Quadratwurzel und gibst sie aus

Code oben (Ersetze vector ==> v)


----------



## Tobias (21. Apr 2007)

Und mach in der Schleife noch ein x^2 statt des einfachen x...

also:


```
// Einlesen
int sum = 0;
for (int x:v)
  sum += x^2;
int betrag = (int) Math.sqrt(sum);
// Ausgeben
```

mpG
Tobias


----------



## ToKaM OnE (21. Apr 2007)

Ich kenne mich zwar mit dieser Vektoren berechnung nicht aus, jedoch machst du in deinem Code was ganz anderes als du schreibst Leroy42 ?!?


würde man deiner schriftlichen Anleitung folgen könnte der code so aussehen:
	
	
	
	





```
public class Vektor {

	public static void main(String[] args) {
		int sum=0;
		int[] vektor = {12,18,15,12,13};
		for (int i = 0; i < vektor.length; i++) {
			sum+=(int)Math.pow(vektor[i],2);		
		}
		System.out.println(Math.sqrt(sum));
	}

}
```
@Wusaa


```
for(int x:vektor)System.out.println(x);
```

ist das gleiche wie 


```
for (int i = 0; i < vektor.length; i++) System.out.println(vektor[i]);
```


```
//Siehe erweiterte For Schleife
```


*EDIT:*
@Tobias
Achtung:
^


Bitweises EXKLUSIV-ODER


a ^ b ergibt den Wert, der entsteht, wenn die korrespondierenden Bits von a und b miteinander EXKLUSIV-ODER-verknüpft werden.


----------



## Tobias (23. Apr 2007)

Autsch. Da war ich wohl nicht ganz bei mir... In der Skriptsprache, die ich gerade für mein Projekt code, ist ^ nämlich der "Hoch"-Operator... Äh, obiger Code ergibt also nicht den Betrag des Vektors, ist aber bestimmt auch schön anzusehen ...

mpG
Tobias


----------



## Leroy42 (23. Apr 2007)

Tobias hat gesagt.:
			
		

> Äh, obiger Code ergibt also nicht den Betrag des Vektors, ist aber bestimmt auch schön anzusehen ...



Aber klar doch!

Vor allem liefert


```
x^2
```

interessante Ergebnisse: Mal wird x um 2 erhöht, mal um 2 vermindert


----------



## Tobias (23. Apr 2007)

Ja eben. Dürfte ein interessantes Debugging werden ...

mpG
Tobias


----------

