Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

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


Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote