Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Destiny Rising: quando un gioco mobile supera il gioco originale
Destiny Rising: quando un gioco mobile supera il gioco originale
Tra il declino di Destiny 2 e la crisi di Bungie, il nuovo titolo mobile sviluppato da NetEase sorprende per profondità e varietà. Rising offre ciò che il live service di Bungie non riesce più a garantire, riportando i giocatori in un universo coerente. Un confronto che mette in luce i limiti tecnici e strategici dello studio di Bellevue
Plaud Note Pro convince per qualità e integrazione, ma l’abbonamento resta un ostacolo
Plaud Note Pro convince per qualità e integrazione, ma l’abbonamento resta un ostacolo
Plaud Note Pro è un registratore digitale elegante e tascabile con app integrata che semplifica trascrizioni e riepiloghi, offre funzioni avanzate come template e note intelligenti, ma resta vincolato a un piano a pagamento per chi ne fa un uso intensivo
Google Pixel 10 è compatto e ha uno zoom 5x a 899€: basta per essere un best-buy?
Google Pixel 10 è compatto e ha uno zoom 5x a 899€: basta per essere un best-buy?
Google Pixel 10 è uno smartphone che unisce una fotocamera molto più versatile rispetto al passato grazie allo zoom ottico 5x, il supporto magnetico Pixelsnap e il nuovo chip Tensor G5. Il dispositivo porta Android 16 e funzionalità AI avanzate come Camera Coach, mantenendo il design caratteristico della serie Pixel con miglioramenti nelle prestazioni e nell'autonomia. In Italia, però, mancano diverse feature peculiari basate sull'AI.
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: 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, 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: 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, 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: 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


Destiny Rising: quando un gioco mobile supera il gioco originale Destiny Rising: quando un gioco mobile supera il...
Plaud Note Pro convince per qualità e integrazione, ma l’abbonamento resta un ostacolo Plaud Note Pro convince per qualità e int...
Google Pixel 10 è compatto e ha uno zoom 5x a 899€: basta per essere un best-buy? Google Pixel 10 è compatto e ha uno zoom ...
Prova GeForce NOW upgrade Blackwell: il cloud gaming cambia per sempre Prova GeForce NOW upgrade Blackwell: il cloud ga...
Ecovacs Deebot X11 Omnicyclone: niente più sacchetto per lo sporco Ecovacs Deebot X11 Omnicyclone: niente più...
Nothing guarda al futuro: nuovi finanzia...
Realme punta sulla fascia bassa: arriva ...
Interlune creerà un centro di ric...
Stop Killing Games: 97% delle firme conv...
La GTX 2080 Ti mai arrivata sul mercato,...
Hoolow Knight: Silksong, il gioco che a ...
Duolingo crolla in Borsa: la minaccia ar...
Battlefield 6: i giocatori console potra...
Citroen Racing, la marca ritorna alle co...
Windows 10 ESU: come partecipare al prog...
ASUS Vivobook 16X a meno di 470€ su Amaz...
Con Agent Payments Protocol di Google gl...
Windows 10 muore, gli attivisti insorgon...
NVIDIA sarà il primo cliente di T...
Stellantis cancella il pick-up elettrico...
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: 05:56.


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