Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Sony WF-1000X M6: le cuffie in-ear di riferimento migliorano ancora
Sony WF-1000X M6: le cuffie in-ear di riferimento migliorano ancora
WF-1000X M6 è la sesta generazione di auricolare in-ear sviluppata da Sony, un prodotto che punta a coniugare facilità di utilizzo con una elevata qualità di riproduzione dei contenuti audio e una cura nella riduzione del rumore ambientale che sia da riferimento
Snowflake porta l'IA dove sono i dati, anche grazie a un accordo con OpenAI
Snowflake porta l'IA dove sono i dati, anche grazie a un accordo con OpenAI
Snowflake ha presentato diverse novità per la sua piattaforma legate all'intelligenza artificiale. Quella forse più eclatante è una collaborazione con OpenAI, ma non mancano diverse nuove funzionalità che rendono la piattaforma più flessibile e in grado di rispondere meglio alle esigenze in continuo cambiamento delle aziende
Sistema Mesh Roamii BE Pro: il Wi-Fi 7 secondo MSI
Sistema Mesh Roamii BE Pro: il Wi-Fi 7 secondo MSI
Con velocità teoriche fino a 11 Gbps, gestione tramite app intelligente e protezione avanzata dei dispositivi, Roamii BE Pro porta il Wi‑Fi 7 tri‑band nelle abitazioni più esigenti. Un sistema Wi-Fi Mesh proposto da MSI allo scopo di garantire agli utenti una rete fluida e continua capace di sostenere streaming 8K, gaming competitivo e le applicazioni moderne più esigenti in termini di banda
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 28-04-2007, 18:00   #1
Morfeus81
Member
 
Iscritto dal: Jan 2007
Messaggi: 81
Matrice Magica

Salve ragazzi e da poco che ho cominciato a studiare il C e il C++ e ora mi trovo davanti un problema che proprio non riesco a risolvere.

In realtà devo sviluppare un programma che preda in input una matrice (da tastiera) e questa ci devo applicare l'algoritmo di Durer e quindi verificare che la matrice sia magica (si ricorda che una matrice A è definita magica se:
è quadrata di ordine n contiene tutti i numeri da 1 ad n^2
la somma di ogni riga e di ogni colonna è pari ad uno
stesso numero s il numero s è dato da : (n^3+n)/2
per la matrice di Durer vale anche che la somma della
diagonale è uguale alla somma dell'antidiagonale)

Vi progo potete aiutarmi nella realizzazione del programma!!!

Grazie a tutti
Morfeus81 è offline   Rispondi citando il messaggio o parte di esso
Old 29-04-2007, 16:27   #2
Ziosilvio
Moderatore
 
L'Avatar di Ziosilvio
 
Iscritto dal: Nov 2003
Messaggi: 16213
Comincia a scrivere...
__________________
Ubuntu è un'antica parola africana che significa "non so configurare Debian" Chi scherza col fuoco si brucia.
Scienza e tecnica: Matematica - Fisica - Chimica - Informatica - Software scientifico - Consulti medici
REGOLAMENTO DarthMaul = Asus FX505 Ryzen 7 3700U 8GB GeForce GTX 1650 Win10 + Ubuntu
Ziosilvio è offline   Rispondi citando il messaggio o parte di esso
Old 29-04-2007, 16:30   #3
Morfeus81
Member
 
Iscritto dal: Jan 2007
Messaggi: 81
Io ho pensato di risolverlo cosi :

#include <iostream>
#include <stdlib.h>
using namespace std;
int main(void)
{
int i, j;
int controllo;
int grandezza;
i=j=0;
bool verifica=false;

cout<<"Inserire il numero di righe e colonne della matrice\n";
cin>>grandezza;
int matrice[grandezza][grandezza];
int somme[grandezza+2];
for(i=0;i<grandezza+2;i++) somme[i]=0;
grandezza;

for(j=0;j<grandezza;j++) {
for(i=0;i<grandezza;i++) {
cout<<"\ninserire il contenuto della riga numero "<<i+1<<" colonna numero "<<j+1<<":";
cin>>matrice[j][i];
}
}

for(j=0;j<grandezza;j++) for(i=0;i<grandezza;i++) somme[j]+=matrice[j][i];
for(j=0,i=0;j<grandezza;j++,i++) { somme[grandezza]+=matrice[j][i];}
for(j=0,i=grandezza-1;j<grandezza;j++,i--) somme[grandezza+1]+=matrice[j][i];

controllo=somme[0];

for(i=0;i<grandezza+2;i++) {
if(somme[i]!=controllo) verifica=true;
controllo=somme[i];
}

if(!verifica) cout<<"\nLa matrice inserita e' un quadrato magico\n";
else cout<<"\nLa matrice inserita non e' un quadrato magico\n";

system("PAUSE");
return 0;
}

Che mi consiglieate?????

Grazie
Morfeus81 è offline   Rispondi citando il messaggio o parte di esso
Old 29-04-2007, 19:03   #4
Ziosilvio
Moderatore
 
L'Avatar di Ziosilvio
 
Iscritto dal: Nov 2003
Messaggi: 16213
Quote:
Originariamente inviato da Morfeus81 Guarda i messaggi
Che mi consiglieate?
Innanzitutto, di usare il tag CODE.

Poi:
Codice:
  cin>>grandezza;
  int matrice[grandezza][grandezza];
Se vuoi allocare la matrice solo dopo aver saputo quanto è grande, devi usare gli operatori new[] e delete[].
Altrimenti, puoi inizializzare staticamente una matrice di grandezza fissa, e porre un limite alla dimensione massima della matrice in input.
Codice:
  for(j=0;j<grandezza;j++) {
    for(i=0;i<grandezza;i++) {
      cout<<"\ninserire il contenuto della riga numero "<<i+1<<" colonna numero "<<j+1<<":";
      cin>>matrice[j][i];
      }
    }
 
  for(j=0;j<grandezza;j++) for(i=0;i<grandezza;i++) somme[j]+=matrice[j][i];
  for(j=0,i=0;j<grandezza;j++,i++) { somme[grandezza]+=matrice[j][i];}
  for(j=0,i=grandezza-1;j<grandezza;j++,i--) somme[grandezza+1]+=matrice[j][i];
 
  controllo=somme[0];
 
  for(i=0;i<grandezza+2;i++) {
  if(somme[i]!=controllo) verifica=true;
  controllo=somme[i];
  }
Qui mi sembra che non tieni conto del punto fondamentale, per cui le entrate della matrice devono essere i numeri da 1 a n^2. Puoi fare in due modi.
O crei un vettore ausiliario di istanze di ciascuna entrata, per cui istanze[k-1] contiene il numero di volte in cui k càpita nella matrice: se alla fine dell'input una delle entrate è 0 o è maggiore di 1, la matrice non è magica.
Oppure, ogni volta che inserisci un input, controlli che sia tra 1 e n^2, e se compare già tra quelli inseriti (ti serve un indice ausiliario): se succede una di queste cose, la matrice non è magica.

Inoltre, tu controlli che la somma sia sempre uguale: ma non controlli che sia anche giusta. Eppure lo sai, quanto deve valere...
__________________
Ubuntu è un'antica parola africana che significa "non so configurare Debian" Chi scherza col fuoco si brucia.
Scienza e tecnica: Matematica - Fisica - Chimica - Informatica - Software scientifico - Consulti medici
REGOLAMENTO DarthMaul = Asus FX505 Ryzen 7 3700U 8GB GeForce GTX 1650 Win10 + Ubuntu
Ziosilvio è offline   Rispondi citando il messaggio o parte di esso
Old 30-04-2007, 10:45   #5
Morfeus81
Member
 
Iscritto dal: Jan 2007
Messaggi: 81
Matrice Magica

Ops...Pensavo che quella soluzione era corretta.
Più o meno mi è chiara la tua idea ma siniceramente non so proprio come scirverlo in termine di codice.

Non è che potresti scrivermi il codice.(ti ricordo che è da poco che comincio a scrivere del codice)
Ti ringrazio mille volte.
Ciao
Morfeus81 è offline   Rispondi citando il messaggio o parte di esso
Old 30-04-2007, 12:05   #6
Ziosilvio
Moderatore
 
L'Avatar di Ziosilvio
 
Iscritto dal: Nov 2003
Messaggi: 16213
Quote:
Originariamente inviato da Morfeus81 Guarda i messaggi
Non è che potresti scrivermi il codice
No.

Scrivere il codice, è una cosa che devi imparare a fare tu.
__________________
Ubuntu è un'antica parola africana che significa "non so configurare Debian" Chi scherza col fuoco si brucia.
Scienza e tecnica: Matematica - Fisica - Chimica - Informatica - Software scientifico - Consulti medici
REGOLAMENTO DarthMaul = Asus FX505 Ryzen 7 3700U 8GB GeForce GTX 1650 Win10 + Ubuntu
Ziosilvio è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Sony WF-1000X M6: le cuffie in-ear di riferimento migliorano ancora Sony WF-1000X M6: le cuffie in-ear di riferiment...
Snowflake porta l'IA dove sono i dati, anche grazie a un accordo con OpenAI Snowflake porta l'IA dove sono i dati, anche gra...
Sistema Mesh Roamii BE Pro: il Wi-Fi 7 secondo MSI Sistema Mesh Roamii BE Pro: il Wi-Fi 7 secondo M...
Recensione HUAWEI Mate X7: un foldable ottimo, ma restano i soliti problemi Recensione HUAWEI Mate X7: un foldable ottimo, m...
Nioh 3: souls-like punitivo e Action RPG Nioh 3: souls-like punitivo e Action RPG
Il nuovo Xiaomi Watch 5 è pronto ...
Steam Deck è out of stock in dive...
Le migliori offerte Amazon del weekend, ...
PC più potente, meno spesa: su Amazon ta...
Amazon Haul: come fare acquisti 'pazzi' ...
Threads permetterà agli utenti di...
Monitor gaming in offerta su Amazon: 180...
Samsung vuole riconquistare la leadershi...
L'app di YouTube per Apple Vision Pro &e...
Fastweb + Vodafone: clienti e ricavi in ...
Artemis II: nuovo test prima del Wet Dre...
GTA 6 gratis se nasce un figlio il giorn...
Quasi la metà degli smartphone at...
DDR5 a 16 dollari al gigabyte: Framework...
Meno di 3kg per 'diventare' bionici: l'u...
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: 13:46.


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