Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Microsoft Surface Pro 12 è il 2 in 1 più compatto e silenzioso
Microsoft Surface Pro 12 è il 2 in 1 più compatto e silenzioso
Basato su piattaforma Qualcomm Snapdragon X Plus a 8 core, il nuovo Microsoft Surface Pro 12 è un notebook 2 in 1 molto compatto che punta sulla facilità di trasporto, sulla flessibilità d'uso nelle differenti configurazioni, sul funzionamento senza ventola e sull'ampia autonomia lontano dalla presa di corrente
Recensione REDMAGIC Astra Gaming Tablet: che spettacolo di tablet!
Recensione REDMAGIC Astra Gaming Tablet: che spettacolo di tablet!
Il REDMAGIC Astra Gaming Tablet rappresenta una rivoluzione nel gaming portatile, combinando un display OLED da 9,06 pollici a 165Hz con il potente Snapdragon 8 Elite e un innovativo sistema di raffreddamento Liquid Metal 2.0 in un form factor compatto da 370 grammi. Si posiziona come il tablet gaming più completo della categoria, offrendo un'esperienza di gioco senza compromessi in mobilità.
Dopo un mese, e 50 foto, cosa abbiamo capito della nuova Nintendo Switch 2
Dopo un mese, e 50 foto, cosa abbiamo capito della nuova Nintendo Switch 2
Dopo un mese di utilizzo intensivo e l'analisi di oltre 50 scatti, l'articolo offre una panoramica approfondita di Nintendo Switch 2. Vengono esaminate le caratteristiche che la definiscono, con un focus sulle nuove funzionalità e un riepilogo dettagliato delle specifiche tecniche che ne determinano le prestazioni
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 24-01-2007, 12:02   #21
robs05
Member
 
Iscritto dal: Jan 2007
Messaggi: 112
ragazzi ho letto i post e vi ringrazio....però vorrei procedere a passi.

prima di tutto adesso sto cercando di realizzare un algoritmo per la creazione delle cartelle.....come posso riempire la casella che nella cartella della tombola nn contiene nessun numero?
robs05 è offline   Rispondi citando il messaggio o parte di esso
Old 24-01-2007, 12:29   #22
yorkeiser
Senior Member
 
L'Avatar di yorkeiser
 
Iscritto dal: Jul 2006
Città: Tristram
Messaggi: 517
Se lavori con strutture ad interi ci puoi mettere uno 0, altrimenti qualsiasi numero non compreso tra 1 e 90
yorkeiser è offline   Rispondi citando il messaggio o parte di esso
Old 24-01-2007, 12:48   #23
robs05
Member
 
Iscritto dal: Jan 2007
Messaggi: 112
quindi

typedef struct cartella
{
int righe[3];
int colonne[9];
}
robs05 è offline   Rispondi citando il messaggio o parte di esso
Old 24-01-2007, 12:50   #24
robs05
Member
 
Iscritto dal: Jan 2007
Messaggi: 112
scusa typedef è satto un lapsus
robs05 è offline   Rispondi citando il messaggio o parte di esso
Old 24-01-2007, 13:49   #25
yorkeiser
Senior Member
 
L'Avatar di yorkeiser
 
Iscritto dal: Jul 2006
Città: Tristram
Messaggi: 517
E' un'idea, puoi progettarlo come meglio credi, anche a stringhe al posto dei numeri se lo preferisci. Il typedef lo puoi usare senza problemi

Codice:
main()
{

typedef int bool;

typedef struct
{
    int numero;
    bool uscito;
} def_cartella;

def_cartella cartella [3][5]; //array di struct (da dove esce il 9 ??)

cartella[0][0].numero=12;
cartella[0][0].uscito=0; //false
cartella[1][0].numero=15;
printf("%d",cartella[0][0]);
printf("%d",cartella[1][0]);
oppure te lo fai coi puntatori, è lo stesso con la differenza che ti allochi la memoria dinamicamente, nel caso volessi avere un numero imprecisato di giocatori o ne vuoi aggiungere a runtime

Codice:
def_cartella* cartella;
cartella=(def_cartella*)malloc(3*5*sizeof(def_cartella));
cartella->numero=12;
(cartella+1)->numero=15;
printf("%d",cartella->numero);
printf("%d",(cartella+1)->numero);
Questa è solo un'idea, lo puoi fare in tanti modi
yorkeiser è offline   Rispondi citando il messaggio o parte di esso
Old 24-01-2007, 14:16   #26
robs05
Member
 
Iscritto dal: Jan 2007
Messaggi: 112
sto cercando prima di creare una cartella.
solo ceh la funzione rand nn va bene...questo è un abozzo adeso dovrei are in modo ceh per ogni riga ci sia un numero diverso per decina e che nn compare due volte lo stesso numero..
giusto?


Codice:
#include <stdlib.h>
#include <stdio.h>
#include <time.h>

void main()
{

srand(time(NULL));

int i,j;    
    struct cartella
    {
    int c1[3];
    int c2[3];
    int c3[3];
    int c4[3];
    int c5[3];
    };
struct cartella uno;


for(i=0;i<5;i++)
    uno.c1[i]=1+rand()%90;
        
    for(j=0;j<3;j++)   
       {
       for(i=0;i<5;i++)
          {
          printf(" %d",uno.c1[i]);    
          }
        printf("\n");
        }  

system("pause");
return 0; 

}
robs05 è offline   Rispondi citando il messaggio o parte di esso
Old 24-01-2007, 18:44   #27
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Il modo più semplice è usare la stessa funzione di estrazione che ti ho postato nella pagina prima (magari modificandola estraendo le strutture dati static ed infilandole in una struct per poterle utilizzare in estrazioni diverse azzerando la struttura dati)...

Fai le estrazioni usando la funzione che ti ho postato prima e ti tieni il conto dei numeri estratti per ogni decina (basta un vettore di 10 elementi per 3 righe), se il numero estratto all'i-esima estrazione appartiene ad una decina con già 3 elementi estratti non ne tieni di conto, lo scarti ed esegui nuovamente l'i-esima estrazione.

Attento che la tombola ha una concezione particolare di "decina", da 1-9 sono della prima decina, ma da 80 a 90 sono della nona, mentre per le restanti vanno da x0 a x9. Credo che tu debba tenere conto anche di questo.

Per memorizzare le cartelle di bastano 3 vettori da 5 elementi. Saprai in quale vettore dovrai andare ad inserire l'elemento estratto sfruttando il contatore delle decine ed il contatore degli elementi in ogni vettore.

Ricapitolando, ti serve una struttura di questo tipo:

int cartella[3][5];

int contatori_riga[3];
int flag_decine[3][10];

Estraggo un numero da 1 a 90 senza ripetizione (vedere l'algoritmo precedente).

int riga = 0;
La riga dove andrò ad inserire l'elemento sarà data da:

- per ogni contatore_riga == 5 incremento di 1 "riga"
- per ogni riga a partire del valore corrente di "riga" che ha già la decina estratta presente, incrementi "riga" di 1
- se "riga" è = 3 significa che tale decina è presente in ogni riga e scarti l'estratto, altrimenti vai ad inserire l'estratto nella riga "riga" e nella casella "contatore_riga", incrementi "contatore_riga", metti un 1 nella posizione corrispondente di "flag_decine".

E' più semplice a farsi che a dirsi.
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 25-01-2007, 09:15   #28
robs05
Member
 
Iscritto dal: Jan 2007
Messaggi: 112
int estratto = estrai_da_0_a_N(89 - estrazioni);


nn riesco a capire questo
robs05 è offline   Rispondi citando il messaggio o parte di esso
Old 25-01-2007, 12:14   #29
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
La puoi sostituire con una qualsiasi funzione che genera valori random da 0 a N...ad esempio: rand()%(90-estrazioni)
Oppure con una qualsiasi trattata qui: http://www.hwupgrade.it/forum/showthread.php?t=1196677
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 25-01-2007, 12:18   #30
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Per farti capire cosa volevo dire nella prima parte del post per "estrazione della struttura dati static":

Codice:
struct estrazione
{
   int estratti[90];
   int numero_estrazioni;
};


int estrai_numero(struct estrazione *e)
{	
	int i = 0;
	int estratto = estrai_da_0_a_N(89 - e->numero_estrazioni);

	for(i = 0; i <= estratto; ++i)
		estratto += e->estratti[i];

	e->estratti[estratto]++; 
	e->numero_estrazioni++;
	estratto++; //lo riporto da 1 a 90
  
        return estratto;
}
La struttura deve essere azzerata per iniziare una nuova serie di estrazioni.
Quindi la dovrai azzerare per ogni cartella e per l'estrazione dei numeri durante il gioco.
Ovviamente la funzione dovrai chiamarla in questo modo:

struct estrazione e;
....
....
estratto = estrai_numero(&e);

Ultima modifica di cionci : 25-01-2007 alle 12:21.
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 26-05-2008, 12:06   #31
corzand
Member
 
Iscritto dal: Dec 2007
Messaggi: 52
UP!

Quote:
Originariamente inviato da Ziosilvio Guarda i messaggi
Il gioco è un po' più complicato di quanto sembra.

Le cartelle della tombola hanno nove colonne e tre righe, e su ogni riga devono esserci esattamente cinque numeri, mentre su ogni colonna deve esserci almeno un numero (questa condizione non c'è nella traccia dell'esercizio). Per cui, devi considerare anche l'opzione in cui una casella non contiene nessun numero.
(In realtà, la tombola tradizionale ha 48 cartelle prestabilite; potresti usare quelle.)

Inoltre, questo è un caso in cui ti serve che la probabilità di estrazione dei numeri sia uniformemente distribuita, per cui un brutale "1+(rand()%90)" non va bene.
La cosa più semplice, credo sia mettere i numeri da 1 a 90 in una lista, e poi rimuoverli man mano che vengono estratti. Per estrarre un numero,
- ti metti all'inizio della lista,
- scorri in avanti di un numero di posizioni scelto a caso, e
- estrai quel numero dalla lista.
Se fai così, ti servono un contatore del numero di elementi nella lista, e una funzione che, dato N, ti genera un valore equidistribuito tra 0 ed N-1. Fai un salto nella sottosezione "tutorial" e cerca quello sulle sequenze pseudorandom.

Chiedi troppo: qui non si fanno i compiti altrui.
Sto preparando proprio ora un progetto di un'applicazione che simuli appunto il gioco della tombola..
Il problema maggiore è sicuramente quello di generare le cartelle, in quanto l'algoritmo è più complesso di quel che si pensa..

Avevo pensato ad una cosa del genere:
- Ciclo for di 90 iterazioni
- Una lista da cui ogni iterazione vado a pescare un numero.
- Una lista con 6 cartelle vuote (Matrici 3x9 di interi).
- Tento di aggiungere quel numero ad una cartella estratta casualmente tra le 6. *
- Se non riesco ad aggiungere provo su un'altra cartella.
- Alla fine di ogni iterazione controllo se e quali cartelle sono state completate, e le rimuovo dalla Lista.

* Il problema è nel metodo di aggiunta del numero cartella..
Codice:
	public boolean addNumber(int num)
	{
		int columnIndex = (num == 90 ? 8 : num/10);
		int rowIndex;
		for (rowIndex= 0; rowIndex< 3 && tabNums[rowIndex][columnIndex]!=0; rowIndex++);
		if (rowIndex == 3)
			return false;
		else
		{
			while(rowIndex <= 2)
			{
				int contRow=0;
				for(int i=0; i<9;i++)
				{
					if( tabNums[rowIndex][i]!=0)
						contRow++;
				}
				if(contRow  == 5)
					rowIndex ++;
				else if(tabNums[rowIndex][columnIndex] == 0)
				{
					tabNums[rowIndex][columnIndex]=num;
					return true;
				}
				else
				{
					rowIndex++;
				}
			}
			return false;
		}
	}
ovviamente come ben capirete l'algoritmo è in java..
Ebbene, ciò che non riesco a controllare è come imporre che per ogni colonna vi sia almeno un numero..
Spero possiate aiutarmi, ciao!
corzand è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Microsoft Surface Pro 12 è il 2 in 1 più compatto e silenzioso Microsoft Surface Pro 12 è il 2 in 1 pi&u...
Recensione REDMAGIC Astra Gaming Tablet: che spettacolo di tablet! Recensione REDMAGIC Astra Gaming Tablet: che spe...
Dopo un mese, e 50 foto, cosa abbiamo capito della nuova Nintendo Switch 2 Dopo un mese, e 50 foto, cosa abbiamo capito del...
Gigabyte Aero X16 Copilot+ PC: tanta potenza non solo per l'IA Gigabyte Aero X16 Copilot+ PC: tanta potenza non...
vivo X200 FE: il top di gamma si è fatto tascabile? vivo X200 FE: il top di gamma si è fatto ...
Hanno creato l’IA che li ha sostituiti: ...
Broadcom cambia ancora il programma per ...
Un processore quasi del tutto sconosciut...
Tutte le migliori offerte AliExpress son...
Grazie al telescopio ALMA e al JWST &egr...
Elon Musk apre un ristorante: ecco il pr...
Stranger Things 5, ecco il primo teaser ...
SpaceX ha lanciato con un razzo spaziale...
L'UE punta forte sull'IA e mette 200 mil...
Hanoi dice addio ai motorini a benzina: ...
AMD Ryzen AI 5 330: 4 core e NPU da 50 T...
Tesla sta per lanciare la Model YL: pass...
Scegliere la cartuccia giusta: i consigl...
'Non è un nuovo gioco, ma lo semb...
Google Discover con riassunti generati d...
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: 20:09.


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