---++ Esercizio Assembler La seguente matrice rappresenta il Triangolo di Tartaglia: | 1 | 1 | 1 | 1 | 1 | 1 | | 1 | 2 | 3 | 4 | 5 | 6 | | 1 | 3 | 6 | 10 | 15 | .. | | 1 | 4 | 10 | 20 | .. | .. | | 1 | 5 | 15 | .. | .. | .. | | 1 | 6 | .. | .. | .. | 252 | Tutti gli elementi della prima riga e della prima colonna sono uguali a 1, cioè: * m(1,j)=1 per ogni valore di j * m(i,1)=1 per ogni valore di i Il generico elemento m(i,j) - cioè l'elemento a riga i e colonna j - è dato da: m(i,j) = m(i-1,j)---+ m(i,j-1) Esempio: m(3,4) = m(3,3)---+ m(2,4) = 6 + 4 = 10 -------------------------------------------------------------- Scrivere un programma Assembler SPIM che: * definisce una zona di memoria di nome MATRICE di half-words, la cui dimensione massima è 10x10; * chiede il numero di righe e colonne (numero righe = numero colonne) da console; * calcola ogni elemento della matrice tramite la subroutine ricorsiva di nome TART(i,j) tale che: * riceve in input gli indici i e j * fornisce in output il valore: * 1 se i =1 oppure j=1 * TART(i-1,j)---+ TART(i,j-1) altrimenti Si noti che utilizzando una subroutine ricorsiva l'elemento m(2,3) viene calcolato come: m(2,3)= m(1,3)---+ m(2,2) = 1 + m(1,2) + m(2,1) = 1 + 1 + 1 = 1 + 2 = 3 * costruisce una seconda matrice di nome MAT2 di bytes, della stessa dimensione di MATRICE, in cui ogni elemento MAT2(i,j) assume come valore: * la somma dei due bytes che costituiscono il valore dell'elemento MATRICE(i,j) se tale somma è minore di 255 (cioè se tale somma e' rappresentabile con un byte); * il valore assoluto della differenza dei due bytes che costituiscono il valore dell'elemento MATRICE(i,j) altrimenti; * stampi su console le due matrici MATRICE e MAT2 per righe. -- Users.AnnalisaMassini - 02 Apr 2001 <br>
This topic: Architetture2/MZ
>
PrimoEsercizioAssembler2001
Topic revision: r2 - 2001-04-17 - AndreaSterbini
Copyright © 2008-2025 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki?
Send feedback