tast-Eingabe_(Vektor)Skalar-produkt

Status
Nicht offen für weitere Antworten.

Java_Cup

Mitglied
Hallo!
Als erstes:Ich weiß, dass es für viele oder die meisten eine megeleichte "Aufgabe", ich steh ja noch am ANfang,!
Also ich habe so angefangen:
das Programm muss so aussehen:
Beispiel:
Bitte geben Sie die Dimension der Vektoren ein:2
Bitte geben Sie v1 [0] ein:1
Bitte geben Sie v1 [1] ein:2
Bitte geben Sie v2 [0] ein:3
Bitte geben Sie v2 [1] ein:4
Das Skalarprodukt:(1,2) und (3,4) ist :11

So das klingt und ist eigentlich auch ziemlich einfach , aber da es per Tastaturangabe ist, habe ich da ein wenig Probleme:

Code:
import java.io.InputStreamReader;

public class Skalarprodukt {
	

	public static void main (String[]args){
		
		int n;            //variable für Dimension
		int S[][];
		System.out.print("Bitte geben Sie die Dimension der Vektoren ein: ");
		n=Eingabe();//Dimension
		
		S=new int [n][n];
		
		int e = 0;int k = 0;
		for (int i=0;i<S.length;i++)
			for (int j=0;j<S[i].length;j++){
				
				System.out.println(" Bitte geben sie für v"+i+"["+j+"] ein: ");
		S[i][j]=e;
		
		e=Eingabe();
		
			}
		for (int i=0;i<S.length;++i)
		
			for (int j=0;j<S[i].length;j++)
		{
			
	///////////////////////////////////////UND DA WEIß ICH NET MEHR WEITER :( ////////////////////////////////
	System.out.println(S[i][j]);}
			
		
	}
	
	
	
		
		static int Eingabe()//Zugehِriger Code der Tastatureingabe
		{
			String s="";
			try{s=new java.io.BufferedReader(
				  new InputStreamReader(System.in)).readLine();}
			catch (java.io.IOException e){}
			return java.lang.Integer.parseInt(s);
			}
		
	}


P.S: ich erwarte keine KOMPLETTE Lösung, ich will eifach nur nen kleinen "Denkanstoß"!
Danke
 

bambi

Bekanntes Mitglied
Hab's mal getestet. Sieht doch schon mal gar nicht so schlecht aus. Aber mal eine Frage: wo genau iss'
denn jetzt Dein Problem... Weisst Du nicht, wie Du die Vektoren ausgeben sollst... ?
 

Java_Cup

Mitglied
ja es läuft schon, aber ich muss das Programm so umschreiben dass ich die lösung bekomme!
Also 11, bei diesem Beispiel!
Bei 2 Dimensionen wäre es so:
EINGABE:
1
2
3
4

Skalarprodukt ist dann : 1 * 3 +2 * 4 =11;
ich weiß jetzt nicht wie ich den algorithmus schreiben soll, dmit ich die 11, bekomme!
 

bambi

Bekanntes Mitglied
Du hast da einen kleinen Schussel-Fehler:
Code:
e=Eingabe(); // und dann erst den Wert im Array setzen...
S[i][j]=e;
Also ich weiss jetzt auch nicht so genau, wie ich Dir helfen kann, ohne zuviel zu verraten...
Aber Du musst die Werte mit den geschachtelten for-Schleifen berechnen. ...
[edit] Sorry, das war gerade voll daneben... Hab's geloescht...
 

bambi

Bekanntes Mitglied
Okay, jetzt hab' ich's (hab die Loesung hier - poste sie aber nicht - willst's ja selber rauskriegen)
Also noch ein kleiner Tip - Du musst auf jeden Fall die for-Schlefen verwenden - iss ja auch klar bei
Arrays... Du mussts aber eben so schreiben, dass er immer zuerst alle i's multipliziert und dann alle j's
addiert...
Falls es nicht klappt, dann meld' Dich... :wink:
 

bambi

Bekanntes Mitglied
Du brauchst temporaere Variablen, die Du dann immer mit den aktuellen Daten fuellst und miteinander
addierst/multiplizierst... Vielleicht geht's auch ohne, aber so ist's am Einfachsten.
(iss schwer, wenn man nicht zuviel sagen darf...)
 

Java_Cup

Mitglied
also ich habe das jetzt umgeschrieben!
aber es kommt nur die anzahl der eingegebenen Elemente. also 4
und ich habe versucht dies "irgendwie" zu multipl. und dann zu addieren !Das problem ist nur dass es außer dem Block bzw. der geschweiften Klammer nicht geht!
 

bambi

Bekanntes Mitglied
Also hier mal ein Teil meines Codes...
Code:
for (int i=0;i<S.length;++i)  {
      for (int j=0;j<S[i].length;j++)  {
          val = S[j][i];
          ...// hier die Multiplikation
      }
      ... // hier die Addition
}
Die Ausgabe ist dann...
Bitte geben Sie die Dimension der Vektoren ein: 2
Bitte geben sie für v0[0] ein: 1
Bitte geben sie für v0[1] ein: 2
Bitte geben sie für v1[0] ein: 3
Bitte geben sie für v1[1] ein: 4
Vektor 0: 13 --> 3
Vektor 1: 24 --> 8

Skalarprodukt: 11
Hilft das ... :?
 

Java_Cup

Mitglied
also ich habe das so, schon gemacht!
es kommt das richtige raus aber...
halt nur bei 2 Dimensionalen:


Code:
for (int i=0;i<S.length;++i)  { 
      for (int j=0;j<S[i].length;j++)  { 
          val = S[j][i]; 
         val=S[0][0]*S[1][0]; //Multi.
           val2=val+(S[0][1]*S[1][1]);   //Add.+Multi.   } 
      .
}

ich bin noch am probieren.... ???:L


@roar:
ja ich wollt das machen,stört ein bisschen wenn es zu groß ist...
 

bambi

Bekanntes Mitglied
Was sollen denn die 1er und 0er da??? :noe:
Ganz, ganz schnell weg damit! Um's flexibel - fuer groessere Dimensionen zu machen, darfst
Du nur mit i und j arbeiten.
Noch ein kleiner Tip: ein paar mehr temporaere Variabeln helfen bestimmt... :wink:
 

mic_checker

Top Contributor
Ja, natürlich - kann ja jeder so machen wie es ihm am besten passt ;)

Vielleicht fällts dir auch einfacher wenn du zwei Arrays machst (eindimensional), je eins für einen Vektor.

Du brauchst eigentlich keine zwei for Schleifen, die Dimensionen beider Vektoren müssen ja gleich sein (für Skalarprodukt), dann reicht eine Schleife.
 

bambi

Bekanntes Mitglied
Was meinst Du mit "eine Schleife"? Du musst die Felder doch unterschiedlich hochzaehlen. Ansonsten hast
Du doch immer array[0][0], array[1][1] und array[2][2]. So kannst Du doch nie alle Felder berechnen, oder...
 

mic_checker

Top Contributor
Zur Veranschaulichung zwei eindimensionale Felder :

v1 = (x1 x2)

v1[0] = x1;
v1[1] = x2;

v2 = (y1 y2);
v2[0] = y1;
v2[1] = y2;

Kann man natürlich "beliebig" erweitern.

Nun rechnest du erg = v1[0] * v2[0] , erg += v1[1] * v2[1] etc.
Dafür brauchst du nur eine Schleife.
 

mic_checker

Top Contributor
Java_Cup hat gesagt.:
Code:
		int S[][];
.......	
		static int Eingabe()//Zugehِriger Code der Tastatureingabe
		{
			String s="";
			try{s=new java.io.BufferedReader(
				  new InputStreamReader(System.in)).readLine();}
			catch (java.io.IOException e){}
			return java.lang.Integer.parseInt(s);
			}
		
	}

Btw. Variablennamen werden klein geschrieben, ebenso Methodennamen.
Aussderm sieht die Methode so noch nicht "schön" aus...

Vielleicht hilft dir ja obige Beschreibung um einen passenden Ansatz zu finden.
 

Java_Cup

Mitglied
Code:
import java.io.InputStreamReader;

/*
 * Created on 12.03.2005
 *
 * TODO To change the template for this generated file go to
 * Window - Preferences - Java - Code Style - Code Templates
 */

/**
 * @author Salaam_Ocean
 *
 * TODO To change the template for this generated type comment go to
 * Window - Preferences - Java - Code Style - Code Templates
 */
public class bfb {
public static void main (String[]arfs){
	

		
		int n;//Dimension
		int S[][];
		System.out.print("Bitte geben Sie die Dimension der Vektoren ein: ");
		n=Eingabe();//Dimension
		
		S=new int [n][n];
		
		int e = 0;int val=0;int val2 = 0;int  ergebnis=0,val4=0;
		int val5;
		int val3 = 0;
		for (int i=0;i<S.length;i++)
			for (int j=0;j<S[i].length;j++){
				
				System.out.println(" Bitte geben sie für v"+i+"["+j+"] ein: ");
				e=Eingabe();
				
				S[i][j]=e;}

//////////////////////////////-------------------------------------------///////////////////////////////////
		for (int i=0;i<S.length;i++)
			for(int j=0;j<S[i].length;j++){
				
				val=S[i][j];
				val2=S[i+1][j];
				val3=(val*val2)+val3;
				
				val5=val3;
				
				System.out.println("Das Skalarprodukt: |"+val+"| *  |"+val2+"| ist:    "+val5);
/////////////////////////////////------------------------------------------------------/////////////////////////////////////////


			
			}
			}		
		static int Eingabe()//Zugehِriger Code der Tastatureingabe
		{
			String s="";
			try{s=new java.io.BufferedReader(
				  new InputStreamReader(System.in)).readLine();}
			catch (java.io.IOException e){}
			return java.lang.Integer.parseInt(s);
			}
		
	}
ab da komm ich net weiter :(
 

mic_checker

Top Contributor
Also:
1) Klassennamen werden groß geschrieben
2) Methodennamen klein geschrieben

Code:
return java.lang.Integer.parseInt(s);
Was ist mit der NumberFormatException ? Die musst du auch abfangen...

Ich würde dir empfehlen tatsächlich mit zwei eindimensionalen Arrays zu arbeiten, da du scheinbar noch nicht so geübt im Umgang mit zweidimensionalen Arrays bist.

Code:
		int[] v1 = new int[2];
		int[] v2 = new int[2];
...
//Spar mir jetzt das einlesen, dadran liegt es ja nicht...
  		v1[0] = 1;
		v1[1] = 2;
		v2[0] = 3;
		v2[1] = 4;

		int sum = 0;
		
		for(int i = 0;i < v1.length && i < v2.length;i++) 	 
			sum += v1[i]*v2[i];

Müsste eigentlich so gehen....
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
J StandBy-Modus o. Tastatursperre mit Tast-Kombin? Java Basics - Anfänger-Themen 2
Torschti Eingabe von Dezimalzahlen (bis zu zwei Kommastellen) Java Basics - Anfänger-Themen 11
T User input in Verbindung mit ChronoUnit anpassen und falls falsche Eingabe getätigtwird Java Basics - Anfänger-Themen 7
T Eingabe durch eine Zahl dividieren nachgucken? Java Basics - Anfänger-Themen 4
T sortierung der eingabe nach größe Java Basics - Anfänger-Themen 5
Ostkreuz Int Scanner auf Enter Eingabe prüfen Java Basics - Anfänger-Themen 4
G Programm läuft durch, ohne Eingabe aus dem Chat abzuwarten Java Basics - Anfänger-Themen 4
Jul1n4tor Scanner error bei Eingabe die kein Integer ist Java Basics - Anfänger-Themen 4
S Größte Zahl nach Eingabe der Zahl 0 ausgeben Java Basics - Anfänger-Themen 6
M Dialogbox sofort neustarten, falls aktuelle Eingabe falsch Java Basics - Anfänger-Themen 11
M Dialogbox solange abfragen, bis gültige Wert-Eingabe Java Basics - Anfänger-Themen 12
S OOP Java Eingabe in verschiedene Datenbank Tabellen eintragen Java Basics - Anfänger-Themen 7
A Bei VierGewinnt Eingabe per Buchstabe (a,b,c...) Java Basics - Anfänger-Themen 2
java-starter Erste Schritte Eingabe in Char wert umwandeln Java Basics - Anfänger-Themen 7
Lion.King Subtraktion nach Eingabe im Terminal Java Basics - Anfänger-Themen 7
X Erste Schritte Scanner eingabe wird übersprungen Java Basics - Anfänger-Themen 4
L Dauerhaftes Speichern einer Eingabe bei einer ArrayList Java Basics - Anfänger-Themen 26
J In der Ausgabe wird ohne Eingabe in den else Block gesprungen. Java Basics - Anfänger-Themen 0
J In der Ausgabe wird ohne Eingabe in den else Block gesprungen. Java Basics - Anfänger-Themen 5
J Mein Programm läuft bei der ersten Eingabe nicht mehr weiter, woran liegt das? Java Basics - Anfänger-Themen 6
M Eingabe limit Java Basics - Anfänger-Themen 8
brypa Programm mit Eingabe Java Basics - Anfänger-Themen 129
C Potenzberechnung über switch case. Taschenrechner mit Eingabe über einen grafischen Dialog Java Basics - Anfänger-Themen 22
D falsche eingabe erkennen Java Basics - Anfänger-Themen 2
H Eingabe tätigen bevor Graphics g Fenster öffnet Java Basics - Anfänger-Themen 5
H For-Schleife bis Index von Eingabe laufen lassen Java Basics - Anfänger-Themen 24
Hamudi Bachir 2D Array eingabe vom Benutzer Java Basics - Anfänger-Themen 31
S Warum erscheint bei mir "Hallo Welt" und nicht die aktuelle Eingabe? Java Basics - Anfänger-Themen 16
J Jtable Eingabe nach Klick ausserhalb der Tabelle übernehmen Java Basics - Anfänger-Themen 6
B Array bei jeder Eingabe um eins erweitern Java Basics - Anfänger-Themen 3
TimoN11 IntelliJ , Ausgabe von einem Quellcode in Eingabe eines Quellcodes Java Basics - Anfänger-Themen 1
M Nach einer erstmaligen Eingabe, eine zweite Eingabe nur noch gegen bestätigung möglich Java Basics - Anfänger-Themen 2
chocobear26 Interface JOptionPane - Dialog_Fenster zeigt immer vorherige Eingabe an. Java Basics - Anfänger-Themen 4
E JavaFX Taschenrechner Eingabe im Textfield beschränken Java Basics - Anfänger-Themen 2
M Regex nur Zahlen und Punkt zulassen, Keine Eingabe(Leeres TextFeld) nicht zulassen Java Basics - Anfänger-Themen 6
M JTextField nur Zahleneingaben zulassen, eingabe sperren Java Basics - Anfänger-Themen 24
E Timer trotz erwartender Eingabe durchlaufen lassen Java Basics - Anfänger-Themen 11
K falsche Eingabe abfangen Java Basics - Anfänger-Themen 8
N Eingabe erkennen, ob groß oder kleingeschrieben worden ist Java Basics - Anfänger-Themen 22
N Fehlerausgabe bei falscher Eingabe der Users Java Basics - Anfänger-Themen 3
N Eingabe des Users direkt hinter die Ausgabe Java Basics - Anfänger-Themen 3
N Eingabe Kommazahlen über Scanner Java Basics - Anfänger-Themen 2
O Mehrfache Scanner-Eingabe durch Komma getrennt Java Basics - Anfänger-Themen 6
M String array durch Eingabe begrenzen Java Basics - Anfänger-Themen 7
iman Eingabe von Benutzer Filter machen. Java Basics - Anfänger-Themen 7
M Input/Output JTextField Eingabe in String Variable speichern Java Basics - Anfänger-Themen 15
D Eingabe einscannen, ohne vorher einen Datentypen anzugeben? Java Basics - Anfänger-Themen 1
M Verschiedene Eingabe = Verschiedene Ausgaben Java Basics - Anfänger-Themen 5
H Eingabe Java Basics - Anfänger-Themen 7
F Bedingung für Eingabe Java Basics - Anfänger-Themen 2
K Durch eine Text eingabe etwas Ausführen Java Basics - Anfänger-Themen 5
Dimax Erste Schritte String Eingabe Prüfen Java Basics - Anfänger-Themen 11
R Eingabe String umwandeln zu Integer Werten Java Basics - Anfänger-Themen 8
B Türme von Hanoi mit einer beliebigen aber gültigen Eingabe lösen Java Basics - Anfänger-Themen 5
D While Schleife bei Bedarf durch Eingabe stoppen Java Basics - Anfänger-Themen 15
J Eingabe Einschränken Java Basics - Anfänger-Themen 1
Zrebna Compiler-Fehler Java-Compiler wird nach 'javac' keyword-Eingabe nicht gestartet (Erste Übung) Java Basics - Anfänger-Themen 18
A Datentypen Unterschiedliche Datentypen in einer Eingabe einlesen Java Basics - Anfänger-Themen 2
D Array via Eingabe befüllen Java Basics - Anfänger-Themen 6
M Wie kann ich eine Eingabe im Java-Swing übergeben? Java Basics - Anfänger-Themen 1
N Abbrechen einer Eingabe endet im Fehler Java Basics - Anfänger-Themen 3
S Konsolen eingabe Java Basics - Anfänger-Themen 17
M Scanner-Eingabe nach gewissem Zeitraum überprüfen Java Basics - Anfänger-Themen 2
x-tshainge Bei if (eingabe = = ... ) enter als eingabe nehemen Java Basics - Anfänger-Themen 4
S in ActionListener auf Eingabe aus anderem Frame warten Java Basics - Anfänger-Themen 2
S Eingabe in anderer Klasse verwenden Java Basics - Anfänger-Themen 3
T Input/Output Falsche Eingabe ausgeben Java Basics - Anfänger-Themen 3
R Ratespiel mit Return und einer Eingabe Java Basics - Anfänger-Themen 1
K Eingabe in Array speichern und Ausgeben Java Basics - Anfänger-Themen 9
J Eingabe des Scanners an einer bestimmten Position Java Basics - Anfänger-Themen 6
J Input/Output Den zweiten Output erst nach Eingabe ausgeben Java Basics - Anfänger-Themen 4
S Eingabe auf Richtigkeit und Reihenfolg überprüfen Java Basics - Anfänger-Themen 3
R Java CMD Eingabe verbergen Java Basics - Anfänger-Themen 4
L Eingabe überprüfen Java Basics - Anfänger-Themen 7
M Eingabe des Benutzers Verwenden Java Basics - Anfänger-Themen 9
T Input/Output Int Eingabe auf Zahl überprüfen Java Basics - Anfänger-Themen 30
S Method mit Eingabe abrufen Java Basics - Anfänger-Themen 1
N Operatoren Suchen nach einer bestimmten Eingabe (durch Scanner) Java Basics - Anfänger-Themen 7
M Erste Schritte primzahlen ermitteln, nur zahlen als eingabe erlauben Java Basics - Anfänger-Themen 34
K Überprüfen ob Eingabe ein Float ist Java Basics - Anfänger-Themen 4
G Warum funktioniert das Programm für negative Eingabe nicht? Java Basics - Anfänger-Themen 3
O Erste Schritte Eingabe anweisungen eliminieren Java Basics - Anfänger-Themen 3
G Objekt Instanziierung von Eingabe abhängig machen Java Basics - Anfänger-Themen 5
E Wie Passwort-Eingabe (ohne Echo!) über Konsole ? Java Basics - Anfänger-Themen 4
B Interface JTextField Eingabe als String verwenden Java Basics - Anfänger-Themen 3
F Abfrage ob Eingabe eine Zahl ist Java Basics - Anfänger-Themen 3
H Alternative Eingabe Java Basics - Anfänger-Themen 3
L Bei falscher Eingabe soll NaN zurückgegeben werden, Rückgabetyp jedoch double Java Basics - Anfänger-Themen 3
J Methoden Eingabe Methode nur Buchstaben Java Basics - Anfänger-Themen 4
F Die Teilersumme einer Eingabe berechnen Java Basics - Anfänger-Themen 11
H Leere Eingabe in einem array Java Basics - Anfänger-Themen 11
K Input/Output Nullstring als Eingabe Java Basics - Anfänger-Themen 4
M Eingabe im Terminal nicht möglich Java Basics - Anfänger-Themen 20
D Anzahl von Zahlen bei eingabe begrenzen Java Basics - Anfänger-Themen 37
T Input/Output Double und String als Eingabe einlesen Java Basics - Anfänger-Themen 9
N Error bei eingabe eines Punktes Java Basics - Anfänger-Themen 1
M Messandwendung nach Zeit und eigener Eingabe Java Basics - Anfänger-Themen 4
B Problem beim Angeben einer Eingabe Java Basics - Anfänger-Themen 12
D Fehler bei String eingabe via Scanner Java Basics - Anfänger-Themen 6
V char Eingabe aber nur für Buchstaben Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben