Jedes Element in 2 Arrays mit gleicher Position addieren

Status
Nicht offen für weitere Antworten.
Hi Leute !

Mal kurz mein Programm:

Ich möchte zwei Polynome einlesen. Das erste Polynom in ein Array und das zweite Polynom in ein zweites Array.
Habe ich soweit auch schon geschafft:

Code:
import java.io.*;


public class Polynome
{
	
	public static void main(String[] args)
	{
	
		int Grad1=0;
		int Grad2=0;
		int j,ergebnis; 
		
		BufferedReader eingabe = new BufferedReader(new InputStreamReader(System.in));
	
		
	try
	{	
		
	System.out.print("Grad des 1.Polynoms: ");
	Grad1 = Integer.parseInt(eingabe.readLine());
	System.out.print("---------------------\n");
		
		
	for(int i=0; i<Grad1+1; i++)
	{
		int polynom1[] = new int[Grad1+1];
		
		System.out.print(i+ "."+ "Koeffizient "+ "("+ "x"+ ((Grad1)-i)+ ")"+ ": ");
		polynom1[i] = Integer.parseInt(eingabe.readLine());
	}	
	
	
	System.out.print("\n\n");
	
	
	
	System.out.print("Grad des 2.Polynoms: ");
	Grad2 = Integer.parseInt(eingabe.readLine());
	System.out.print("---------------------\n");		
					
	for(j=0; j<Grad2+1; j++)
	{
		int polynom2[] = new int[Grad2+1];
	
		System.out.print(j+ "."+ "Koeffizient "+ "("+ "x"+ (Grad2-j)+ ")"+ ": ");
		polynom2[j] = Integer.parseInt(eingabe.readLine());		
	}			
									
	
			
	
	} // Ende try{}



	catch(IOException e){}		
	}
}



Problem:

Ich möchte beide Polynome nun miteinander addieren. Man kann ja aber nur Koeffizienten mit den gleichen x addieren.

Wie kann ich jetzt den ersten Wert des 1.Arrays mit dem zweiten Wert des 2.Array miteinander addieren usw. ??

Vielen DAnk für eure Hilfe 🙂
 
Du hast z.B.

3x² + 4x + 5 und 7x² + 8x + 1

Im ersten Array steht:

arr[0] = 3
arr[1] = 4
arr[2] = 5

Im zweiten :

arr2[0] = 7
arr2[1] = 8
arr2[2] = 1

Nach Addition soll da stehen:

arr[0] = 10
arr[1] = 12
arr[2] = 6

oder was?

Falls ja einfach in ner schleife den wert des einen arrays zum andern hinzuaddieren.....

oder erläuter mal was du willst.
 
Bin mir jetzt nicht ganz sicher, aber ich würde es mal mit einer for schleife probieren. Allerdings woher weisst du denn welches Array Element mit welchem addiert werden soll. Aber wenn es immer ein Index weiter ist dann dürfte es ja kein problem sein

Code:
for(int i=0;i<polynom2.length;i++){
int sum = polynom[i]+polynom2[i+1];
}
 
Um die Polynome zu addieren mußt Du von Hinten die Array's anfangen zu addieren, denn der Grad der Polynome kann unterschiedlich sein:

z.B.: 4x + 5 und 2x² + 3x + 7

Pol1[0] = 4
Pol1[1] = 5

Pol2[0]=2
Pol2[1]=3
Pol2[2]=7

Das Ergebnis Array hat logischerweise auch "3 Zeilen". Du musst Dabei hinten anfangen (also 5+7).
Das Ergebnis sieht dann wie folgt aus:

Erg[0]=2
Erg[1]=7
Erg[2]=12
 
nur mal so angedacht, aber was ist wenn jemand bei der eingabe sich nicht an die reihenfolge hält also z.B. 3x² + 4x + 5 und 8x+7x² + 1
 
Hier ein Vorschlag:

Du machst eine Schleife, die von hinten über das "kurze Array" geht und in jedem Durchlauf die Zahl mit der aus dem "längerem Array" addiert. Die Lösung funktioniert natürlich auch für den Fall, dass beide Arrays die gleiche Länge haben.
 
Sky:
Um die Polynome zu addieren mußt Du von Hinten die Array's anfangen zu addieren, denn der Grad der Polynome kann unterschiedlich sein:

.. was aber auch nicht das problem löst, wenn die polynome lauten:
3x² + 7x -5 und
8x³ + 7x² - 5x

wenn solche eingaben möglich sind sollte man evtl den exponenten von x nehmen und diesen als index für ein neues array.
also:
poly1[0] = -5
poly1[1] = 7
poly1[2] = 0
poly1[3] = 0

poly2[0] = 0
poly2[1] = 5
poly2[2] = 7
poly2[3] = 8

die länge der neuen arrays (bei mir poly1/2) könnte sich dann aus der größten potenz ergeben.[/quote][/quote]
 
@norman: guck Dir mal an, wie die Eingabe funktioniert. Du wirst merken, dass jeder User der Lesen kann derartige Polynome nicht eingeben kann!
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben