Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Antigravity A1: drone futuristico per riprese a 360° in 8K con qualche lacuna da colmare
Antigravity A1: drone futuristico per riprese a 360° in 8K con qualche lacuna da colmare
Abbiamo messo alla prova il drone Antigravity A1 capace di riprese in 8K a 360° che permette un reframe in post-produzione ad eliche ferme. Il concetto è molto valido, permette al pilota di concentrarsi sul volo e le manovre in tutta sicurezza e decidere con tutta tranquillità come gestire le riprese. La qualità dei video, tuttavia, ha bisogno di uno step in più per essere competitiva
Sony Alpha 7 V, anteprima e novità della nuova 30fps, che tende la mano anche ai creator
Sony Alpha 7 V, anteprima e novità della nuova 30fps, che tende la mano anche ai creator
Dopo oltre 4 anni si rinnova la serie Sony Alpha 7 con la quinta generazione, che porta in dote veramente tante novità a partire dai 30fps e dal nuovo sensore partially stacked da 33Mpixel. L'abbiamo provata per un breve periodo, ecco come è andata dopo averla messa alle strette.
realme GT 8 Pro Dream Edition: prestazioni da flagship e anima racing da F1
realme GT 8 Pro Dream Edition: prestazioni da flagship e anima racing da F1
realme e Aston Martin Aramco F1 Team si sono (ri)unite dando alla vita un flagship con chip Snapdragon 8 Elite Gen 5 e design esclusivo ispirato alle monoposto di Formula 1. La Dream Edition introduce la nuova colorazione Lime Essence abbinata al tradizionale Aston Martin Racing Green, decorazioni intercambiabili personalizzate e una confezione a tema F1, intorno a uno smartphone dall'ottima dotazione tecnica con batteria da 7000mAh ricaricabile a 120W e isola fotografica intercambiabile
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 23-11-2012, 19:12   #1
Tioz90
Senior Member
 
L'Avatar di Tioz90
 
Iscritto dal: Feb 2007
Città: Como
Messaggi: 2551
[MIPS] Aiuto nel realizzare un programma

Ciao ragazzi, vi posto il codice C che ho scritto come guida per aiutarmi a realizzare lo stesso programma in Assembly MIPS.

In pratica voglio fare in modo che l'utente possa inserire un numero N e che venga creata una matrice di dimensione (N,N), che successivamente gli venga richiesto che valore inserire in ogni cella della matrice e infine che venga visualizzato il determinante.

In C funziona perfettamente ma sto avendo problemi a capire come allocare runtime la memoria per memorizzare l'array in Assembly.
Grazie mille a chi ha voglia di darci un'occhiata

Codice:
#include <stdio.h> 

void matrix(int d); 
int determinante(int dim,int matrix[dim][dim]); 
int indice(int ind); 

int main(void) 
{
   int d; //dimensione matrice
   printf("Dimensione matrice?: "); 
   scanf("%d",&d); //memorizza la dimensione in d
   matrix(d); //chiama la funz matrix
   system("pause");
   return 0;
} 

void matrix(int dim) //funz matrix
{ 
   int i,j; 
   int m[dim][dim]; //crea matrice d*d (dim*dim)
   
   //creazione matrice
   printf("Inserire gli elementi della matrice %dx%d :\n",dim,dim); //inserisce i dati nella matrice uno per uno
   for(i=0;i<dim;++i) //scorre la linea
   { 
      for(j=0;j<dim;++j) //scorre la colonna
      { 
         printf("Inserire l'elemento della posizione (%d,%d): ", i+1,j+1);
         scanf("%d",&m[i][j]); //inserisce il dato nella matrice
      } 
   } 
   
   printf("\n\nMatrice creata:\n\n");
   
   for(i=0;i<dim;++i) //scorre la linea
   { 
      for(j=0;j<dim;++j) //scorre la colonna
      { 
                         printf("%d\t", m[i][j]);
      }
                         printf("\n");
   }                   
   
   
   //stampa determinante
   printf("\n\nIl determinante della matrice e': %d\n",determinante(dim,m)); 
} 

int determinante(int dim,int matrix[dim][dim]) 
{ 
   int i,j,k; 
   int D=0;

	//se la matrice e' una 1x1
   if(dim==1)
		D=matrix[0][0]; 
		
		
   for(i=0;i<dim&&dim>1;++i) //scorre righe
   { 
      int mattemp[dim-1][dim-1]; //crea una matrice delle stesse dimensioni di prima (dim-1 perchè se creo una matrice d=3 se comincio a contare da i=0 ne creerebbe una 4x4)
      for(j=0;j<dim;++j) //scorre colonne 
      { 
         for(k=1;k<dim&&j!=i;++k) //controllo sugli indici, controlla se il contatore è minore della dimensione della matrice e controlla che non sia sulla diagonale
         { 
            if(j<i) //se l'indice j delle colonne è minore dell'indice i delle righe mette nella matrice temporanea mattemp il valore che si torva in quella posizione
                   mattemp[j][k-1]=matrix[j][k]; 
            if(j>i) 
                   mattemp[j-1][k-1]=matrix[j][k]; 
         } 
      } 
      D=D+indice(i)/*passa i alla funz indice che ritorna 1,-1*/*matrix[i][0]/*considera una matrice di un elemento*/*determinante(dim-1,mattemp)/*passa alla funz determinante la dimensione della sottomatrice e la matrice stessa e ne restituisce il determinante*/
      ; //calcola il determinante
   } 
   return D; 
} 
	//indice 1,-1 a seconda della posizione considerata
int indice(int ind) //funzione indice
{ 
   if(ind%2==0)
               return 1; //controlla se la divisione tra indice colonna e indice riga è pari o dispari
   else 
        return -1; 
}
__________________
DFI Blood Iron; Intel E6400 (FSB wall>600Mhz); 2x1GB Corsair XMS2 800MHz; POV 9800GX2; Seagate Cheetah 15K.3 36GB;
Tagan Piperock Series 600W, Acer AL2216W

Ultima modifica di Tioz90 : 23-11-2012 alle 19:33.
Tioz90 è offline   Rispondi citando il messaggio o parte di esso
Old 23-11-2012, 21:11   #2
Tioz90
Senior Member
 
L'Avatar di Tioz90
 
Iscritto dal: Feb 2007
Città: Como
Messaggi: 2551
Credo di esserci riuscito
Posto qui per referenza futura

Codice:
######## Questa sezione legge i dati da mettere nella cella della matrice ########	
						
					move	$s1,$s0
					li		$t1,0				
	forriga:										#ciclo for per visualizzare l'indice di riga
					li		$t2,0
	forcolonna:										#ciclo for per visualizzare l'indice di colonna
					li		$v0,4					#stampa messaggio inserisci
					la		$a0,inserisci
					syscall
					li		$v0,1					#stampa l'indice di riga
					move	$a0,$t1
					syscall
					li		$v0,4					#stampa separatore
					la		$a0,virgola
					syscall
					li		$v0,1					#stampa l'indice di colonna
					move	$a0,$t2
					syscall
					li		$v0,4					#stampa la parentesi di chiusura
					la		$a0,parentesi
					syscall
					
					li		$v0,5					#legge il dato da mettere nella cella
					syscall
					sw		$v0,0($s0)				#salva il dato letto nell'array
					addi	$s0,4					#punta al prossimo elemento dell'array
					
					li		$v0,4					#va a capo
					la		$a0,capo
					syscall
					
					addi	$t2,1					#incrementa il contatore di colonna
					blt		$t2,$t0,forcolonna		#controllo del for interno (colonna)
					addi 	$t1,1					#incrementa il contatore di riga
					blt		$t1,$t0,forriga			#controllo del for esterno (riga)
					
##################################################################################
__________________
DFI Blood Iron; Intel E6400 (FSB wall>600Mhz); 2x1GB Corsair XMS2 800MHz; POV 9800GX2; Seagate Cheetah 15K.3 36GB;
Tagan Piperock Series 600W, Acer AL2216W
Tioz90 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Antigravity A1: drone futuristico per riprese a 360° in 8K con qualche lacuna da colmare Antigravity A1: drone futuristico per riprese a ...
Sony Alpha 7 V, anteprima e novità della nuova 30fps, che tende la mano anche ai creator Sony Alpha 7 V, anteprima e novità della ...
realme GT 8 Pro Dream Edition: prestazioni da flagship e anima racing da F1 realme GT 8 Pro Dream Edition: prestazioni da fl...
OVHcloud Summit 2025: le novità del cloud europeo tra sovranità, IA e quantum OVHcloud Summit 2025: le novità del cloud...
Un mostro da MSI: QD-OLED WQHD a 500 Hz con AI Care e DisplayPort 2.1a Un mostro da MSI: QD-OLED WQHD a 500 Hz con AI C...
Clair Obscur Expedition 33: il lancio su...
Ci risiamo, la censura colpisce Roblox: ...
Gli iPhone 17 Pro perdono una funzione d...
Windows 11 non cresce e riduce la sua qu...
Linus Torvalds durissimo su Elon Musk: '...
Il sogno del metaverso crolla? Zuckerber...
Axiom Space ha completato un importante ...
Gli aeroplani Airbus utilizzeranno i sat...
Una nuova immagine della cometa interste...
'La soluzione a un problema che non esis...
Radeon RX 9000 sì, Ryzen 9000 no:...
Amazon versa 180 milioni al Fisco e canc...
Meta, il Board di Supervisione guarda o...
DJI rivoluziona le consegne aeree: il nu...
Fibercop e Microsoft Italia uniscono per...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 08:04.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Served by www3v