Tags:
create new tag
view all tags

Domande sul PrimoProgetto2002

  • ricordatevi di firmare la domanda


Come si fa a modificare il singolo bit della matrice?

Ogni riga della matrice di adiacenza va implementata come una singola word.

Ma come si fa a settare ad 1 un certo bit all'interno di una word messa in memoria centrale?
Più in generale, come si fa ad operare (raggiungere, settare) su di un certo bit all'interno di una word?

La prima cosa che mi è venuta in mente è stata quella di usare le operazioni bit a bit tramite opportune maschere.
In C dovrebbe essere più o meno:

if(colonna==0){
maschera=1; /*in base due è 0000 0000 0000 0000 0000 0000 0000 0001*/
word=word|maschera; /*or bitwise: forza ad 1 il LSB*/
}
else if(colonna==1){
maschera=2; /*in base due è 0000 0000 0000 0000 0000 0000 0000 0010*/
word=word|maschera; /*or bitwise: forza ad 1 il bit subito successivo LSB*/
}
//eccetera
Ma quali sono le istruzioni per operare bit a bit del MIPS? Inoltre dovrei creare 32 maschere (una per ogni colonna) ... mi sembra strano.

La seconda cosa che mi è venuta in mente è che forse la direttiva .align n del MIPS c'entra qualcosa in tutto ciò. Ma cosa? E come si usa?

AlbertoRocca [ho messo gli appunti di De Biase] - 28 Mar 2002

Per manipolare i singoli bit di ciascuna riga della matrice dovete appunto usare le istruzioni logiche del MIPS. L'idea di usare maschere è corretta. Leggete con attenzione le istruzioni del MIPS.

-- AndreaSterbini - 29 Mar 2002


Cos'è un grafo?

Vorrei sapere cosa sia un Grafo.

-- FabioLombardi - 28 Mar 2002

Un grafo (diretto) è formato da un certo numero di nodi (nel nostro caso non più di 32) e da archi che li collegano. Gli archi sono orientati (frecce) e vanno da un nodo x ad un nodo y. La matrice di adiacenza è una matrice che ha una riga ed una colonna per ogni nodo. All'incrocio della riga x e della colonna y c'e' un 1 SE E SOLO SE esiste l'arco x->y.

Ho aggiunto un esempio nel testo di PrimoProgetto2002.

-- AndreaSterbini - 29 Mar 2002


procedura di input

Vorrei sapere quali sono le stringhe da visualizzare.
"Inserisci il numero di nodi N (tra 1 e 32)" e "Inserisci il numero di archi (tra 1 e N*N)" credo possano andare bene, ma poi?
Bisogna fare una cosa di questo tipo:
"Inserisci il primo e il secondo nodo dell'arco n. 1"
"Inserisci il primo e il secondo nodo dell'arco n. 2"
"Inserisci il primo e il secondo nodo dell'arco n. 3"
ecc.
Oppure che cos'altro? Grazie

-- GiuseppeMacario - 07 Apr 2002

Va benissimo

-- AndreaSterbini - 08 Apr 2002


procedura di input 2

Un vostro collega mi ha chiesto a lezione:

Nel chiedere i nodi bisogna usare le lettere dell'alfabeto oppure basta usare i numeri da 1 a n (o da 0 a n-1) ?

Nell'esempio ho usato le lettere ma nel progetto usate i numeri.

-- AndreaSterbini - 12 Apr 2002


istruzioni shift

Qual'è la differenza tra lo shift LOGICO e quello ARITMETICO?

Quando il manuale delle istruzioni parla di variabili intende comunque dei registri o dei valori numerici (fare riferimento all'istruzione -SLLV shift left logical VARIABLE-)

-- MarcoMeini - 25 Apr 2002

http://twiki.dsi.uniroma1.it/twiki/view/Architetture2/SpimFaq2001#Shift_logical_o_arithmetic_

-- GiuseppeMacario - 25 Apr 2002


struttura del programma

Io ho organizzato il programma chiedendo gli archi e creando la matrice di adiacenza, poi stampa la matrice appena costruita e poi fa' la chiusura transitiva e stampa la matrice chiusa, quindi in output prima ci sarà la matrice non chiusa e poi dopo una riga la matrice chiusa, va bene così? E in più, ci possono essere delle procedure secondarie, che servono per le procedure principali?

-- FabioMendicino - 27 Apr 2002

Così va benissimo, visto che potro' controllare sia l'input che l'output.

Certo! usate tutte le procedure secondarie che ritenete necessarie!

-- AndreaSterbini - 29 Apr 2002


Edit | Attach | Watch | Print version | History: r11 < r10 < r9 < r8 < r7 | Backlinks | Raw View | Raw edit | More topic actions
Topic revision: r11 - 2002-04-29 - AndreaSterbini






 
Questo sito usa cookies, usandolo ne accettate la presenza. (CookiePolicy)
Torna al Dipartimento di Informatica
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2022 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback