Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Test ride con Gowow Ori: elettrico e off-road vanno incredibilmente d'accordo
Test ride con Gowow Ori: elettrico e off-road vanno incredibilmente d'accordo
Abbiamo provato per diversi giorni una new entry del mercato italiano, la Gowow Ori, una moto elettrica da off-road, omologata anche per la strada, che sfrutta una pendrive USB per cambiare radicalmente le sue prestazioni
Recensione OnePlus 15: potenza da vendere e batteria enorme dentro un nuovo design
Recensione OnePlus 15: potenza da vendere e batteria enorme dentro un nuovo design
OnePlus 15 nasce per alzare l'asticella delle prestazioni e del gaming mobile. Ma non solo, visto che integra un display LTPO 1,5K a 165 Hz, OxygenOS 16 con funzioni AI integrate e un comparto foto con tre moduli da 50 MP al posteriore. La batteria da 7.300 mAh con SUPERVOOC 120 W e AIRVOOC 50 W è la ciliegina sulla torta per uno smartphone che promette di offrire un'esperienza d'uso senza alcun compromesso
AMD Ryzen 5 7500X3D: la nuova CPU da gaming con 3D V-Cache per la fascia media
AMD Ryzen 5 7500X3D: la nuova CPU da gaming con 3D V-Cache per la fascia media
Vediamo come si comporta il Ryzen 5 7500X3D, nuovo processore di casa AMD che fonde 6 core Zen 4 con la tecnologia 3D V-Cache, particolarmente utile in scenari come il gaming. Annunciato a un prezzo di listino di 279€, il nuovo arrivato sarà in grado di diventare un riferimento per i sistemi budget? Ecco cosa ne pensiamo.
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: 16211
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: 16211
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: 16211
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


Test ride con Gowow Ori: elettrico e off-road vanno incredibilmente d'accordo Test ride con Gowow Ori: elettrico e off-road va...
Recensione OnePlus 15: potenza da vendere e batteria enorme dentro un nuovo design   Recensione OnePlus 15: potenza da vendere e batt...
AMD Ryzen 5 7500X3D: la nuova CPU da gaming con 3D V-Cache per la fascia media AMD Ryzen 5 7500X3D: la nuova CPU da gaming con ...
SONY BRAVIA 8 II e BRAVIA Theatre System 6: il cinema a casa in formato compatto SONY BRAVIA 8 II e BRAVIA Theatre System 6: il c...
KTC H27E6 a 300Hz e 1ms: come i rivali ma a metà prezzo KTC H27E6 a 300Hz e 1ms: come i rivali ma a met&...
Microsoft Teams 'spierà' i dipend...
Michael Burry chiude Scion e fa di nuovo...
Huawei prepara i nuovi Mate 80: fino a 2...
Una e-Mountain Bike di qualità ma...
Tutte le offerte Amazon Black Friday pi&...
DJI Mini 4K Fly More Combo con 3 batteri...
Crollo di prezzo sui nuovissimi iPhone A...
Uno smartphone super economico ma potent...
Offerte Black Friday: PlayStation 5 ora ...
Samsung alza i listini fino al 60%: sta ...
Black Friday anticipato: maxi TV QLED a ...
Windows 26: un concept mostra come potre...
I 4 portatili tuttofare super scontati: ...
Black Friday anticipato: monitor da gami...
Tadus T16.20: arriva il trattore elettri...
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:03.


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