Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Recensione REDMI Note 17 Pro: il midrange con batteria da 8.340 mAh e ricarica veloce
Recensione REDMI Note 17 Pro: il midrange con batteria da 8.340 mAh e ricarica veloce
REDMI Note 17 Pro porta in fascia media una batteria da 8.340 mAh con ricarica HyperCharge a 67W, un display AMOLED da 6,83 pollici capace di picchi di luminosità molto elevati e una struttura certificata TÜV SÜD contro cadute e infiltrazioni d'acqua, il tutto racchiuso in una scocca da 223 grammi. Lo abbiamo provato per diversi giorni tra fotocamera, prestazioni, autonomia e prezzo sul mercato italiano
Insta360 Luna Ultra: la potenza del sensore da 1 pollice incontra la portabilità estrema
Insta360 Luna Ultra: la potenza del sensore da 1 pollice incontra la portabilità estrema
Insta360 Luna Ultra integra un sensore da 1 pollice 8K, ottiche Leica e triplo chip IA. Tra schermo OLED rimovibile, workflow I-Log a 10 bit e stabilizzazione a tre assi, analizziamo le doti tecniche di una gimbal camera pensata per i professionisti
Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa
Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa
Marvel's Wolverine porta Logan in un'avventura inedita, violenta e fortemente narrativa, costruita attorno alla sua natura di combattente e al difficile rapporto con il proprio passato. Insomniac Games punta su combattimenti spettacolari, progressione e personalizzazione, inserendo l'azione in un mondo segnato dalla persecuzione dei mutanti. Un viaggio intenso, che alterna mattanza, esplorazione e momenti sorprendentemente emotivi.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 28-04-2007, 17: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, 15:27   #2
Ziosilvio
Moderatore
 
L'Avatar di Ziosilvio
 
Iscritto dal: Nov 2003
Messaggi: 16215
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, 15: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, 18:03   #4
Ziosilvio
Moderatore
 
L'Avatar di Ziosilvio
 
Iscritto dal: Nov 2003
Messaggi: 16215
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, 09: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, 11:05   #6
Ziosilvio
Moderatore
 
L'Avatar di Ziosilvio
 
Iscritto dal: Nov 2003
Messaggi: 16215
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


Recensione REDMI Note 17 Pro: il midrange con batteria da 8.340 mAh e ricarica veloce Recensione REDMI Note 17 Pro: il midrange con ba...
Insta360 Luna Ultra: la potenza del sensore da 1 pollice incontra la portabilità estrema Insta360 Luna Ultra: la potenza del sensore da 1...
Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa Marvel's Wolverine, la recensione: Logan torna p...
DJI Romo 2: tante novità lo rendono un robot completo DJI Romo 2: tante novità lo rendono un ro...
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED Sony Bravia 9 II: il True RGB alla prova, dove l...
Atlas 960E SuperPoD, la risposta di Huaw...
IA militare e nucleare: esperti USA e ci...
Dieci mini-reattori nucleari in Europa d...
CONTROL Resonant su PC: Path Tracing, Ra...
ColorOS 17 arriva su circa 90 dispositiv...
GTA VI, il multiplayer potrebbe debuttar...
Aggiornamento KB5002914 rompe Excel: ecc...
Processo Huawei a Brooklyn: l'FBI mostra...
WhatsApp introduce nuovi temi per le cha...
NVIDIA, Google e Emerald AI uniscono le ...
iPhone 18 Pro Max, il test sulla vapor c...
Fine estate in giardino: le proposte sco...
Batterie allo stato solido dietro l'ango...
Gears of War: E-Day raggiunge la fase Go...
GTA 6 avrà un'edizione fisica, ma...
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: 16:00.


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