Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Due mesi di Battlefield 6: dalla campagna al battle royale, è l'FPS che stavamo aspettando
Due mesi di Battlefield 6: dalla campagna al battle royale, è l'FPS che stavamo aspettando
Abbiamo giocato a lungo a Battlefield 6, abbiamo provato tutte le modalità multiplayer, Redsec, e le numerose personalizzazioni. In sintesi, ci siamo concentrati su ogni aspetto del titolo per comprendere al meglio uno degli FPS più ambiziosi della storia dei videogiochi e, dopo quasi due mesi, abbiamo tirato le somme. In questo articolo, condividiamo con voi tutto ciò che è Battlefield 6, un gioco che, a nostro avviso, rappresenta esattamente ciò che questo genere attendeva da tempo
Antigravity A1: drone futuristico per riprese a 360° in 8K con qualche lacuna da colmare
Antigravity A1: drone futuristico per riprese a 360° in 8K con qualche lacuna da colmare
Abbiamo messo alla prova il drone Antigravity A1 capace di riprese in 8K a 360° che permette un reframe in post-produzione ad eliche ferme. Il concetto è molto valido, permette al pilota di concentrarsi sul volo e le manovre in tutta sicurezza e decidere con tutta tranquillità come gestire le riprese. La qualità dei video, tuttavia, ha bisogno di uno step in più per essere competitiva
Sony Alpha 7 V, anteprima e novità della nuova 30fps, che tende la mano anche ai creator
Sony Alpha 7 V, anteprima e novità della nuova 30fps, che tende la mano anche ai creator
Dopo oltre 4 anni si rinnova la serie Sony Alpha 7 con la quinta generazione, che porta in dote veramente tante novità a partire dai 30fps e dal nuovo sensore partially stacked da 33Mpixel. L'abbiamo provata per un breve periodo, ecco come è andata dopo averla messa alle strette.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 30-03-2007, 21:45   #1
k_mishima
Member
 
Iscritto dal: Jan 2007
Messaggi: 173
[C] Passaggio da var. scalare a array

Ciao, sapete come fare a passare da scalare a array?

Cioè io immetto da input uno scalare, ad esempio 435, e devo portare in qualche modo in array queste 3 cifre

Array[0]=4
array[1]=3
array[2]=5

mi serve per l'algoritmo di conversione base X a base 10
k_mishima è offline   Rispondi citando il messaggio o parte di esso
Old 31-03-2007, 14:19   #2
k_mishima
Member
 
Iscritto dal: Jan 2007
Messaggi: 173
Quote:
Originariamente inviato da VeeJ Guarda i messaggi
Un metodo sarebbe quello di continuare a dividere il numero per 10 (divisione intera) e prendere il resto della divisione (con l'operatore modulo %). Al primo passaggio otterrai le unità, al secondo le decine, ecc...
ottimo consiglio, ho risolto e il risultato viene, pero' vorrei migliorare l'algoritmo

Codice:
/*Algoritmo che converte un numero da base X a base 10*/

#include <stdio.h>
#include <math.h>
int baseXbase10 (int X, int B, int N);
main()
{
	int base_X,z,N;
	int numero_X;
	printf("Inserisci la base del numero da convertire: ");
	scanf("%d",&base_X);
	printf("\nInserisci il numero da convertire in base 10: ");
	scanf("%d",&numero_X);
	printf("\nDigita quante cifre ha il numero da convertire: ");
	scanf("%d",&N);

	z=baseXbase10(numero_X,base_X,N);
	
	printf("\n\nNumero convertito: %d\n",z);
}


int baseXbase10 (int X, int B, int N)
{
	long int ris;
	int i;
	int Array[30];
	ris=0;

	for (i=0;i<N;i++)
	{
		Array[i]=X%10;
		X/=10;
		ris=ris+Array[i]*(int)pow(B,i);
	}
	return ris;
}
Vorrei evitare di inserire N da esterno (lunghezza numero) usando qualche function tipo la strlen ma non ne conosco di function per gli interi

E poi mi resta il problema che, se devo convertire un numero esadecimale, invece di A devo scrivere 10

Consigli?
k_mishima è offline   Rispondi citando il messaggio o parte di esso
Old 31-03-2007, 20:38   #3
k_mishima
Member
 
Iscritto dal: Jan 2007
Messaggi: 173
finito in pag2, up
k_mishima è offline   Rispondi citando il messaggio o parte di esso
Old 01-04-2007, 11:48   #4
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
Innanzitutto la conversione da una base ad un'altra in genere ha senso farla quando si deve convertire una stringa (che rappresenta il numero) in un valore intero (o viceversa). Non ha molto senso, almeno secondo me, fare una conversione di base da numero intero a numero intero. Anche perché potresti al massimo arrivare a base 10, non certo base 16, ad esempio.
Cioè che senso ha dover immettere il valore intero 1001 (mille e uno) pensandolo in base 2 per ottenere il valore intero 9???

Poi che ti serve a fare l'array 'Array' se nella funzione fai:
Codice:
for (i=0;i<N;i++)
	{
		Array[i]=X%10;
		X/=10;
		ris=ris+Array[i]*(int)pow(B,i);
	}
In pratica Array[i] lo usi solo nel loop e lo usi solo come valore temporaneo, non serve quindi un array!

Poi scusa 'ris' è un long int ma poi la funzione ritorna un int??
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%)
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 02-04-2007, 13:00   #5
k_mishima
Member
 
Iscritto dal: Jan 2007
Messaggi: 173
L'eserizio mi server per esercitarmi e basta

L'array mi serve per il calcolo perchè la formula di conversione base X base 10 fa cosi'

1011.01 (base 2)= 1*10^3 +0*10^2 +1*10^1 +1*10^0 +0*10^-1 +1*10^-2

1A3C.F7 (base 16)= 1*10^3 +10*10^2 +3*10^3 +12*10^0 +15*10^-1 +7*10^-2

Per la base 16 come hai notato non posso farla, infatti avevo chiesto consigli

L'array mi serve per le cifre da moltiplicare a 10^i

Per il cast hai ragione, non ci avevo pensato

Mi restano ancora da migliorare questi 2 punti detti prima:
1 Vorrei evitare di inserire N da esterno (lunghezza numero) usando qualche function tipo la strlen ma non ne conosco di function per gli interi

2 Mi resta il problema che, se devo convertire un numero esadecimale, invece di A devo scrivere 10

Sai cosa fare? Grazie mille
k_mishima è offline   Rispondi citando il messaggio o parte di esso
Old 02-04-2007, 13:13   #6
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
Quote:
Originariamente inviato da k_mishima Guarda i messaggi
L'eserizio mi server per esercitarmi e basta

L'array mi serve per il calcolo perchè la formula di conversione base X base 10 fa cosi'
Ok ... allora almeno esercitati bene! Per quanto riguarda l'array, ripeto: non ti serve. Non ti sei accorto che nel tuo sorgente Array[i] lo usi solo come temporaneo?? E che se metti una normale variabile di tipo int è lo stesso?

Come consiglio, prova invece ad esercitarti facendo una conversione da intero a stringa e viceversa.

Conversione da intero a stringa (più facile). Immagina la seguente funzione:
void int_to_str (char *buf, int value, int radix)

Data una radice in radix, convertire il valore in value in una stringa da memorizzare nel buffer puntato da buf.

Conversione da stringa a intero (meno facile). Immagina la seguente funzione:
int str_to_int (char *str, int *pvalue, int radix)

Data una radice in radix, convertire la stringa puntata da str in un valore numerico da restituire usando il puntatore pvalue. La funzione dovrebbe ritornare 1 se tutto ok, 0 se fallita (stringa malformata ad esempio).
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%)
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 02-04-2007, 14:37   #7
k_mishima
Member
 
Iscritto dal: Jan 2007
Messaggi: 173
ehm aspetta

devo fare questo perchè è sulle slide della prof, poi quando ho finito quelli delle slide magari provo i tuoi

L'array si è temporaneo ma mi serve per applicare la formula, non trovo altra soluzione tu faresti diversamente? Come faresti?

P.s. restano cmq sempre quei 2 problemucci
p.p.s. hai un sito dove spiega a cosa servono tutte le function appartenenti alle librerie piu' famose? Ogni tanto compare sulle slide qualche function "magica" senza spiegazione e per capirla devo andare a intuito
k_mishima è offline   Rispondi citando il messaggio o parte di esso
Old 02-04-2007, 14:48   #8
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
Quote:
Originariamente inviato da k_mishima Guarda i messaggi
L'array si è temporaneo ma mi serve per applicare la formula, non trovo altra soluzione tu faresti diversamente? Come faresti?
Ripeto per l'ennesima volta. Nella tua funzione baseXbase10, l'array non serve. Se invece di usare Array[i] usi un semplice int Val, non cambia nulla!!!
Codice:
int baseXbase10 (int X, int B, int N)
{
	long int ris;
	int i;
	int Val;
	ris=0;

	for (i=0;i<N;i++)
	{
		Val=X%10;
		X/=10;
		ris=ris+Val*(int)pow(B,i);
	}
	return ris;
}
Quote:
Originariamente inviato da k_mishima Guarda i messaggi
p.p.s. hai un sito dove spiega a cosa servono tutte le function appartenenti alle librerie piu' famose? Ogni tanto compare sulle slide qualche function "magica" senza spiegazione e per capirla devo andare a intuito
Se ti riferisci a funzioni della libreria standard (C o C++), trovi tonnellate di informazioni ... giusto 2 link che suggerisco sempre in questi caso: [1] e [2].
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%)
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 05-04-2007, 00:40   #9
k_mishima
Member
 
Iscritto dal: Jan 2007
Messaggi: 173
lol, è vero, ma come vi vengono ste idee

andbin e VeeJ grazie
k_mishima è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Due mesi di Battlefield 6: dalla campagna al battle royale, è l'FPS che stavamo aspettando Due mesi di Battlefield 6: dalla campagna al bat...
Antigravity A1: drone futuristico per riprese a 360° in 8K con qualche lacuna da colmare Antigravity A1: drone futuristico per riprese a ...
Sony Alpha 7 V, anteprima e novità della nuova 30fps, che tende la mano anche ai creator Sony Alpha 7 V, anteprima e novità della ...
realme GT 8 Pro Dream Edition: prestazioni da flagship e anima racing da F1 realme GT 8 Pro Dream Edition: prestazioni da fl...
OVHcloud Summit 2025: le novità del cloud europeo tra sovranità, IA e quantum OVHcloud Summit 2025: le novità del cloud...
La costruzione del telescopio spaziale N...
HBO ha cancellato la produzione della se...
OpenAI ha pensato a una partnership (o a...
Starlink Mobile: SpaceX potrebbe lanciar...
Volkswagen trasforma lo stabilimento di ...
Meta AI più reattivo e imparziale...
In Cina la prima GPU discreta al mondo c...
Vertiv CoolCenter, il sistema di raffred...
Konecta entra nel Kraken BPO Partner Pro...
Un dialogo con l'AI sposta voti meglio d...
iPhone 17 al minimo storico: oggi il 256...
Gli utenti italiani scelgono ChatGPT: &e...
Anche Xiaomi avrà il suo trifold:...
È Natale in casa Tesla: arriva la...
Shai-Hulud diventa più cattivo: e...
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: 00:25.


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