A “special value” 1111 will be used to signify the end of the input sequence. Th
ID: 3621175 • Letter: A
Question
A “special value” 1111 will be used to signify the end of the input sequence. This value is not to be considered part of the input data set. However, any value > 1111 that is entered prior to 1111 is still valid. Zero and negative values are also valid. Empty input sets are also valid.Use the following algorithm, shown in Java-like syntax:
n=0;
read in;
while in != 1111 {
vals[n]=in;
n++;
read in;
}
for (i=0;i<n-1;i++) {
for (j=0;j<n-1;j++) {
if (vals[j] > vals[j+1]) {
// swap
temp=vals[j];
vals[j]=vals[j+1];
vals[j+1]=temp;
}
}
}
for (i=0;i<n;i++) {
print vals[i]
}
Use the following line to set up memory to hold the input:
.data
vals: .space 4000
Explanation / Answer
please rate - thanks
.data
numbers: .space 36
message1: .asciiz "Enter an integer: 1111 to exit "
message2: .asciiz "The array contains the following: "
next_line: .asciiz " "
.text
.globl main
main:
la $a1, numbers # $a1 is the base address of the array
li $a2, 9 # $a2 = 9;
li $t0, 0 # i = 0;
li $t1,1111
loop:
# cout << message1 << endl;
la $a0, message1
li $v0, 4
syscall
# cin >> numbers[i];
li $v0, 5
syscall
beq $v0,$t1,sort
addi $t0,4
sw $v0, ($a1)
addi $a1, $a1, 4 # move the array over by 1 element
j loop
sort:
la $t4, numbers #t0 is number up to outter loop
la $t1, numbers #t1 is number comparing to inner loop
addi $t1,4
la $t8,numbers
add $t8,$t0,$t8
la $t9,numbers
add $t9,$t0,$t9
addi $t9,-4
loops: lw $t2,($t4) #get number 1 outter loop
lw $t3,($t1) #get number 2 inner loop
blt $t2,$t3,next #don't need to swap
sw $t3,($t4) #swap
sw $t2,($t1)
next: addi $t1,4
blt $t1,$t8,loops #inner loop done?
addi $t4,4 #yes-increment outter loop
move $t1,$t4
addi $t1,4
blt $t4,$t9,loops #outter loop done?
printArray:
la $a1,numbers
# cout << message2 << endl;
la $a0, message2
li $v0, 4
syscall
loop1:
blez $t0, done
li $v0, 1
lw $a0, 0($a1)
syscall
#cout << " " << endl;
la $a0, next_line
li $v0, 4
syscall
addi $a1, $a1, 4
addi $t0, $t0, -4
j loop1
done:
j done
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.