06/02/14 10:33
Sheeep
Salve,
ho scritto un programma che cerca, all'interno di un array, il valore massimo e il valore minimo dei numeri contenuti in esso.
La grandezza dell'array non è definita, bensì viene scelta dall'utente al momento dell'esecuzione del programma.
Una volta stabilita la grandezza attraverso una serie di cicli l'utente inserisce i valori (N INTERI).
Esempio esecuzione
Inserisci la grandezza: 5
### Creo un array grande 5 ###
Inserisci i valori:
a[0] = n
a[1] = m
..
a[5] = z
##### Inserisco i valori nelle caselle disponibili dell'array appena creato #####
Ora. Lo script funziona correttamente per i numeri interi, io vorrei convertirlo per i numeri floating point.
Esempio
grandezza array: 3 (n intero)
Valori array:
a[0] = 13.3 (n float)
a[1] = 143.543
a[2] = 500.232
###########################################
Codice
Qualcuno mi può dare una mano?
ho scritto un programma che cerca, all'interno di un array, il valore massimo e il valore minimo dei numeri contenuti in esso.
La grandezza dell'array non è definita, bensì viene scelta dall'utente al momento dell'esecuzione del programma.
Una volta stabilita la grandezza attraverso una serie di cicli l'utente inserisce i valori (N INTERI).
Esempio esecuzione
Inserisci la grandezza: 5
### Creo un array grande 5 ###
Inserisci i valori:
a[0] = n
a[1] = m
..
a[5] = z
##### Inserisco i valori nelle caselle disponibili dell'array appena creato #####
Ora. Lo script funziona correttamente per i numeri interi, io vorrei convertirlo per i numeri floating point.
Esempio
grandezza array: 3 (n intero)
Valori array:
a[0] = 13.3 (n float)
a[1] = 143.543
a[2] = 500.232
###########################################
Codice
.data array: .word 0 #Inizializzo l'array grandezza: .asciiz "Inserisci la grandezza (n intero) : " elementi: .asciiz "Inserisci gli elementi : " max: .asciiz "Il valore massimo: " min: .asciiz "\nIl valore minimo: " .text .globl main main: li $v0, 4 la $a0, grandezza syscall li $v0, 5 #Prendo la grandezza dell'array syscall move $t0, $v0 move $t1, $v0 li $v0, 4 la $a0, elementi syscall la $t3, array ### Prima ricerca se ho solo un elemento allora il primo è uguale all'ultimo quindi stampo ### prima_ricerca: beq $zero, $t0, risultato_prima_ricerca_1_1 li $v0, 5 syscall sw $v0, 0($t3) addi $t3, $t3, 4 addi $t0, $t0, -1 j prima_ricerca risultato_prima_ricerca_1_1: lw $t3, array la $s0, array move $s1,$t3 move $s2,$t3 ###Seconda ricerca se la grandezza dell'array è > 1 ### seconda_ricerca: beq $t1,$zero, risultato_generale # t1 contiene la grandezza del array slt $t0, $s1, $t3 # Se il valore massimo s1 è minore del valore dell'array t3 allora sposto il numero in t0 beq $t0 ,$zero, proseguo_ricerca #Quindi continuo con la ricerca per il minimo move $s1, $t3 # Altrimenti sposto il valore t3 nel max $s1 proseguo_ricerca: slt $t0, $t3, $s2 # Se il valore dell'array t3 è minore di s2 allora sposto tutto in t0 beq $t0 ,$zero, trovato #Trovato move $s2,$t3 #Sposto il valore t3 nel max j trovato trovato: addi $s0, $s0, 4 lw $t3, 0($s0) addi $t1, $t1 ,-1 j seconda_ricerca risultato_generale: li $v0, 4 la $a0, max syscall li $v0, 1 move $a0, $s1 syscall li $v0, 4 la $a0, min syscall li $v0, 1 move $a0, $s2 syscall exit: li $v0, 10 syscall # end of program
Qualcuno mi può dare una mano?
Ultima modifica effettuata da Sheeep 06/02/14 10:35
aaa