spim nach java

Neue Frage »

Auf diesen Beitrag antworten »
neuling96 spim nach java

Quellcode:
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
	.data
str1:	.ascii "Geben Sie beliebig viele Zahlen zwischen 1 und 99 ein.\n"	
	.asciiz "Eingabe von 0 beendet die Eingabe und gibt das Ergebnis aus.\n"
askstr:	.asciiz "\n?-> "
errstr:	.asciiz "Sie d�rfen nur Zahlen zwischen 1 und 99 eingeben.\n"
answstr:.asciiz "Das Ergebnis lautet: "
str2:	.asciiz "\n\n"

	.text
main:	li	$s0, 0
	li	$s1, 0

	li	$v0, 4		
	la	$a0, str1       
	syscall
	
loop:	li	$v0, 4		
	la	$a0, askstr     
	syscall

	li	$v0, 5		
	syscall
	li	$t2, 99
	bgt	$v0, $t2, error
	li	$t2, 0
	blt	$v0, $t2, error
	beqz	$v0, exit
	addi	$s1, $s1, 1
	mul	$t2, $v0, $v0
	mul	$t2, $t2, $s1
	add	$s0, $s0, $t2

	j	loop

error:	li	$v0, 4
	la	$a0, errstr	
	syscall
	j	loop

exit:	li	$v0, 4		
	la	$a0, answstr    
	syscall

	li	$v0, 1
	move	$a0, $s0
	syscall

	li	$v0, 4		
	la	$a0, str2       
	syscall
	
	li	$v0, 10
	syscall


1) Erstellen sie ein Java Programm welches gleich dem spim Programm funktioniert

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:

public class A {

public static int sum( int[] a) {
int s1 = 0;
int s0=0;

for ( int i=0; i< a.length; i++){

s1++;
int t2 = a[i]*a[i];
t2= t2*s1;
s0 += t2;

}
return s0;


}

public static void main ( String [] args) throws IllegalArgumentException{

int [] x = new int [args.length];

for ( int i=0; i< x.length; i++){

x[i] = Integer.parseInt(args[i]);
if (x[i]>99 || x[i]<0){
throw new IllegalArgumentException("Die Zahl muss kleiner als 99 oder sie muss groesser als 0 sein ");
}
}
System.out.println ( sum ( x));
}
}



Für die Gleiche Eingabe liefern beide das gleiches Ergebnis.


b) um welche matheschische Funtkion handelt es sich?

puh keine ahnung?
 
Auf diesen Beitrag antworten »
eulerscheZahl

Die Umwandung nach Java kann ich nicht prüfen (sieht für mich vernünftig aus, aber ich bin da auch Laie).

Den Javacode habe ich mal etwas umgeschrieben:
code:
1:
2:
3:
4:
5:
6:
7:
public static int sum(int[] a) {
	int s0 = 0;
	for (int i = 0; i < a.length; i++) {
		s0 += a[i] * a[i] * (i + 1);
	}
	return s0;
}

[latex]s_0 = \sum\limits_{i=0}^{n-1}{a_i^2 \cdot (i+1)}[/latex]
Auf diesen Beitrag antworten »
neuling96

vielen dank smile
 
Neue Frage »
Antworten »


Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »