For Schleife in einer anderen For Schleife?
Schreibt ein Programm, welches das kleine Einmaleins ausgibt. Hierbei müssen zwei verschachtelte Schleifen verwendet werden (also eine Schleife innerhalb eines Blocks einer anderen Schleife). Die Ausgabe des Programms soll dann ca. so aussehen:
1 x 1 = 1 2 x 1 = 2 3 x 1 = 3 ... 9 x 1 = 9 10 x 1 = 10
1 x 2 = 2 2 x 2 = 4 ... 9 x 10 = 90 10 x 10 = 100
Wie soll das gehen?
4 Antworten
Ich habe keine Ahnung, in welcher Programmiersprache du es schreiben willst. Aber das Prinzip lässt sich an einer FORTRAN-orientierten Schleifentechnik gut klarmachen.
NEXT bedeutet, die gerade laufende Schleife wird wiederholt. (Das Programm springt dann zum FOR wieder hinauf.)
PRINT "KLEINES 1 X 1"
PRINT SPACES
FOR I = 1 TO 10
FOR J = 1 TO 10
PRINT J " * " I " = " I * J
J = J + 1
IF (J < 11) NEXT J
I = I + 1
PRINT SPACES
IF (I < 11) NEXT I
END
Jetzt mach mal das, was wir früher immer einen "Schreibtischtest" genannt haben, bevor jeder von seinem Terminal aus die Hauptanlage malträtieren durfte.
MOV R0, 1
for0:
MOV R1, 1
for1:
MOV R2, R0
MUL R2, R1
;TODO: Ausgabe von R0 (Multiplikator) R1 (Multiplikand) und R2 (Produkt)
INC R1
CMP R1, 10
JG end1
JMP for1
end1:
INC R0
CMP R0, 10
JG end0
JMP for0
end0:
Sprache: Pseudocode Assembler ;)
In der ersten for-Schleife gehst du die Multiplikatoren durch, in der zweiten die Multiplikanden.
Versuche es bitte erst selbst und gucke dir dann meine Lösung an.
Hier ist die Lösung zur Aufgabe:
for(int i=1; i<=10; i++){
for(int j=1; j<=10; j++){
System.out.printf("%dx%d=%d%n", i, j, i*j);
}
}
Ausgabe:
1x1=1
1x2=2
1x3=3
1x4=4
1x5=5
1x6=6
1x7=7
1x8=8
1x9=9
1x10=10
2x1=2
2x2=4
2x3=6
2x4=8
2x5=10
2x6=12
2x7=14
2x8=16
2x9=18
2x10=20
3x1=3
3x2=6
3x3=9
3x4=12
3x5=15
3x6=18
3x7=21
3x8=24
3x9=27
3x10=30
4x1=4
4x2=8
4x3=12
4x4=16
4x5=20
4x6=24
4x7=28
4x8=32
4x9=36
4x10=40
5x1=5
5x2=10
5x3=15
5x4=20
5x5=25
5x6=30
5x7=35
5x8=40
5x9=45
5x10=50
6x1=6
6x2=12
6x3=18
6x4=24
6x5=30
6x6=36
6x7=42
6x8=48
6x9=54
6x10=60
7x1=7
7x2=14
7x3=21
7x4=28
7x5=35
7x6=42
7x7=49
7x8=56
7x9=63
7x10=70
8x1=8
8x2=16
8x3=24
8x4=32
8x5=40
8x6=48
8x7=56
8x8=64
8x9=72
8x10=80
9x1=9
9x2=18
9x3=27
9x4=36
9x5=45
9x6=54
9x7=63
9x8=72
9x9=81
9x10=90
10x1=10
10x2=20
10x3=30
10x4=40
10x5=50
10x6=60
10x7=70
10x8=80
10x9=90
10x10=100
Ich hoffe, ich konnte dir helfen; wenn du noch Fragen hast, kommentiere einfach.
LG Willibergi
https://youtube.com/watch?v=lJSQya2nrIE
10er ein mal eins mit verschachtelter for-Schleife