Torna indietro   Hardware Upgrade Forum > Software > Programmazione

PNY RTX 5080 Slim OC, sembra una Founders Edition ma non lo è
PNY RTX 5080 Slim OC, sembra una Founders Edition ma non lo è
La PNY GeForce RTX 5080 Slim OC si distingue nel panorama delle GPU di fascia alta per il design compatto a due slot, ispirato alla NVIDIA GeForce RTX 5080 Founders Edition. In questo test analizziamo comportamento termico e prestazioni in gioco, valutando se il formato ridotto comprometta o meno l'esperienza complessiva rispetto alle soluzioni più ingombranti presenti sul mercato.
Wi-Fi 7 con il design di una vetta innevata: ecco il nuovo sistema mesh di Huawei
Wi-Fi 7 con il design di una vetta innevata: ecco il nuovo sistema mesh di Huawei
HUAWEI WiFi Mesh X3 Pro Suite è probabilmente il router mesh più fotogenico che si possa acquistare oggi in Italia, ma dietro il guscio in acrilico trasparente e le luci LED dinamiche c'è una macchina tecnica costruita attorno allo standard Wi-Fi 7, con velocità teoriche Dual-Band fino a 3,6 Gbps e una copertura fino a 120 m² una volta abbinato il router principale all'extender incluso nel kit
Core Ultra 7 270K Plus e Core Ultra 7 250K Plus: Intel cerca il riscatto ma ci riesce in parte
Core Ultra 7 270K Plus e Core Ultra 7 250K Plus: Intel cerca il riscatto ma ci riesce in parte
Abbiamo provato le nuove CPU Intel Core Ultra 7 270K Plus e Core Ultra 7 250K Plus: più core e ottimizzazioni al funzionamento interno migliorano le prestazioni, anche in virtù di prezzi annunciati interessanti. A questo si aggiungono nuove ottimizzazioni software. Purtroppo, a fronte di prestazioni di calcolo elevate, il quadro rimane incerto nel gaming, dove l'andamento rimane altalenante. Infine, rimane il problema della piattaforma a fine vita.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 24-01-2007, 13:47   #1
Dr.Speed
Senior Member
 
L'Avatar di Dr.Speed
 
Iscritto dal: Jun 2004
Città: Monselice (PD)
Messaggi: 4641
[C]problema con programmino semplice

ho un problema con l'ultima parte di questo programmino che deve farmi scrivere a schermo una stringa con i numeri che gli dico io e poi trasformarla in un numero reale, il problema si pone sulle ultime 10 righe,

il problema credo sia qui:
Codice:
			numero=numero+((v[i]-48)/j);
Codice:
#include <stdio.h>
#include <conio.h>

void main()
{
	const char INVIO=13;
	char c, v[11];
	int i=0, oldx, oldy, segno=1, spia=0;
        float numero=0;

	do
	{
		c=getche();

		switch(c)
		{
			case '0':

			v[i]=c;
			i++;
			v[i]='\0';

			break;

			case '1':

			v[i]=c;
			i++;
			v[i]='\0';

			break;

			case '2':

			v[i]=c;
			i++;
			v[i]='\0';

			break;

			case '3':

			v[i]=c;
			i++;
			v[i]='\0';

			break;

			case '4':

			v[i]=c;
			i++;
			v[i]='\0';

			break;

			case '5':

			v[i]=c;
			i++;
			v[i]='\0';

			break;

			case '6':

			v[i]=c;
			i++;
			v[i]='\0';

			break;

			case '7':

			v[i]=c;
			i++;
			v[i]='\0';

			break;

			case '8':

			v[i]=c;
			i++;
			v[i]='\0';

			break;

			case '9':

			v[i]=c;
			i++;
			v[i]='\0';

			break;

			case '-':

			if(i==0)
				segno=-1;

			break;

			case ',':

			if(spia==0)
                        {
				v[i]=c;
				spia=1;
				i++;
				v[i]='\0';
                        }

			break;

			case INVIO:
			
                        break;
		
			case '+':
			
				if(i==0)
					segno=1;

			break;

			default:

				oldx=wherex();
				oldy=wherey();
				gotoxy(1,25);                  //Va a fine schermo
				printf("Carattere sbagliato! Premi un tasto per continuare...");       
				getch();
                        	gotoxy(1,25);                  //Va a fine schermo
                        	printf("                                                            ");
				gotoxy(oldx-1, oldy);          //Torna indietro al numero errato inserito
				printf("%c\b", 32);            //Cancella con back space



		}


	}while(c!=INVIO);

        printf("\nVisual string ");
	printf("%s", v);
	printf("\nStringa convertita ");

	int spia2=0;
	float numero2=0;
	i=0;
        int j=1;

	do
	{                                              //Conversione di una stringa in numero
		if(v[i]!=',' && spia==0)
                {

			numero = numero*10+(v[i]-48);
			

		}

		if(v[i]==',')
		{
			spia=1;
                        i++;
                }

		if(spia==1)
                {
			j=j*10;
			numero=numero+((v[i]-48)/j); //qui credo sia il problema!!
		}

		i++;

	}while(v[i]!=0);

	numero=numero*segno;

	printf("%f", numero);


}
__________________
2500KCorsair H70Asrock EXTREME4 GEN38GB Corsair DDR3 1600MHz CL8Gainward GTX570 GLHSSD Samsung 830 64GBCorsair CX600Centaurion2G500206BW
\_\_\_\_\_DrSpeed_/_/_/_/_/
Dr.Speed è offline   Rispondi citando il messaggio o parte di esso
Old 24-01-2007, 14:25   #2
yorkeiser
Senior Member
 
L'Avatar di yorkeiser
 
Iscritto dal: Jul 2006
Città: Tristram
Messaggi: 517
Funziona se usi dei double al posto dei float, stai sforando sulla dimensione massima

float numero -> double numero
float numero2 -> double numero2
yorkeiser è offline   Rispondi citando il messaggio o parte di esso
Old 24-01-2007, 14:41   #3
Dr.Speed
Senior Member
 
L'Avatar di Dr.Speed
 
Iscritto dal: Jun 2004
Città: Monselice (PD)
Messaggi: 4641
pero' se scrivo un numero anche piccolissimo tipo 12,1 non me lo converte in reale, ora provo, grazie
__________________
2500KCorsair H70Asrock EXTREME4 GEN38GB Corsair DDR3 1600MHz CL8Gainward GTX570 GLHSSD Samsung 830 64GBCorsair CX600Centaurion2G500206BW
\_\_\_\_\_DrSpeed_/_/_/_/_/
Dr.Speed è offline   Rispondi citando il messaggio o parte di esso
Old 24-01-2007, 14:52   #4
Dr.Speed
Senior Member
 
L'Avatar di Dr.Speed
 
Iscritto dal: Jun 2004
Città: Monselice (PD)
Messaggi: 4641
edit, scusate
__________________
2500KCorsair H70Asrock EXTREME4 GEN38GB Corsair DDR3 1600MHz CL8Gainward GTX570 GLHSSD Samsung 830 64GBCorsair CX600Centaurion2G500206BW
\_\_\_\_\_DrSpeed_/_/_/_/_/

Ultima modifica di Dr.Speed : 24-01-2007 alle 14:55.
Dr.Speed è offline   Rispondi citando il messaggio o parte di esso
Old 24-01-2007, 16:12   #5
Dr.Speed
Senior Member
 
L'Avatar di Dr.Speed
 
Iscritto dal: Jun 2004
Città: Monselice (PD)
Messaggi: 4641
Quote:
Originariamente inviato da yorkeiser
Funziona se usi dei double al posto dei float, stai sforando sulla dimensione massima

float numero -> double numero
float numero2 -> double numero2
niente, fa la stessa cosa
__________________
2500KCorsair H70Asrock EXTREME4 GEN38GB Corsair DDR3 1600MHz CL8Gainward GTX570 GLHSSD Samsung 830 64GBCorsair CX600Centaurion2G500206BW
\_\_\_\_\_DrSpeed_/_/_/_/_/
Dr.Speed è offline   Rispondi citando il messaggio o parte di esso
Old 24-01-2007, 21:58   #6
Dr.Speed
Senior Member
 
L'Avatar di Dr.Speed
 
Iscritto dal: Jun 2004
Città: Monselice (PD)
Messaggi: 4641
nessuno ha qualche idea?
__________________
2500KCorsair H70Asrock EXTREME4 GEN38GB Corsair DDR3 1600MHz CL8Gainward GTX570 GLHSSD Samsung 830 64GBCorsair CX600Centaurion2G500206BW
\_\_\_\_\_DrSpeed_/_/_/_/_/
Dr.Speed è offline   Rispondi citando il messaggio o parte di esso
Old 25-01-2007, 10:18   #7
yorkeiser
Senior Member
 
L'Avatar di yorkeiser
 
Iscritto dal: Jul 2006
Città: Tristram
Messaggi: 517
Uhm, non ho capito che problema hai ora: compilando il tuo codice originale storpiava i numeri elevati, evidente problema di sforamento sui bit; utilizzando i double ho fatto due prove e li convertiva bene. Dovresti essere un attimino più specifico su cosa non va
yorkeiser è offline   Rispondi citando il messaggio o parte di esso
Old 25-01-2007, 18:59   #8
Dr.Speed
Senior Member
 
L'Avatar di Dr.Speed
 
Iscritto dal: Jun 2004
Città: Monselice (PD)
Messaggi: 4641
Quote:
Originariamente inviato da yorkeiser
Uhm, non ho capito che problema hai ora: compilando il tuo codice originale storpiava i numeri elevati, evidente problema di sforamento sui bit; utilizzando i double ho fatto due prove e li convertiva bene. Dovresti essere un attimino più specifico su cosa non va
si, scusami, non mi converte i numeri con piu di una cifra dopo la virgola, ad esempio funziona con 6876434324,9 ma non funziona con 1,12
__________________
2500KCorsair H70Asrock EXTREME4 GEN38GB Corsair DDR3 1600MHz CL8Gainward GTX570 GLHSSD Samsung 830 64GBCorsair CX600Centaurion2G500206BW
\_\_\_\_\_DrSpeed_/_/_/_/_/
Dr.Speed è offline   Rispondi citando il messaggio o parte di esso
Old 26-01-2007, 12:50   #9
yorkeiser
Senior Member
 
L'Avatar di yorkeiser
 
Iscritto dal: Jul 2006
Città: Tristram
Messaggi: 517
Ah capito, è un convertitore anche sui decimali
Beh, quella è sbagliata di sicuro visto che moltiplichi anche la virgola per dieci; oltretutto il tuo codice mi sembra davvero troppo lungo per un convertitore del genere.

Ti spiego al volo la procedura
inserisci un numero e sta anche bene se lo metti nell'array come hai fatto. Poniamo per esempio 39,62

Codice:
0 1 2 3 4 <-- POSIZIONE ARRAY
3 9 , 6 2 <-- CARATTERE CONTENUTO
La procedura per calcolare il double è:

scorri l'array e ti trovi la posizione della virgola, che ti serve per vedere da che esponente partire per calcolare unità, decine etc; a questo punto:

Codice:
double esponente = (double)(indice della casella con la virgola - 1)
double numero=0.0;
for (i=0 to MAX_INDICE_ARRAY)
{
    if (v[i]>='0' and v[i]<='9') 
    {
        numero=numero+((double)(v[i]-48))*esponente;
        esponente /= 10;
    }
}
Può darsi che ho dimenticato qualcosa, ma in linea di massima ci dovremmo essere. Non scordare i cast quando fai operazioni tra interi e double, altrimenti ti perdi i decimali

P.S.: quando usi lo switch, se hai vari case che portano allo stesso codice basta metterli uno sull'altro senza i break, così non riscrivi il codice ogni volta

ovvero:

case '0':
case '1':
case '2':
...
case '9':
codice
break;
__________________
Il sole è giallo

Ultima modifica di yorkeiser : 26-01-2007 alle 13:07.
yorkeiser è offline   Rispondi citando il messaggio o parte di esso
Old 27-01-2007, 01:08   #10
Dr.Speed
Senior Member
 
L'Avatar di Dr.Speed
 
Iscritto dal: Jun 2004
Città: Monselice (PD)
Messaggi: 4641
Quote:
Originariamente inviato da yorkeiser
Ah capito, è un convertitore anche sui decimali
Beh, quella è sbagliata di sicuro visto che moltiplichi anche la virgola per dieci; oltretutto il tuo codice mi sembra davvero troppo lungo per un convertitore del genere.

Ti spiego al volo la procedura
inserisci un numero e sta anche bene se lo metti nell'array come hai fatto. Poniamo per esempio 39,62

Codice:
0 1 2 3 4 <-- POSIZIONE ARRAY
3 9 , 6 2 <-- CARATTERE CONTENUTO
La procedura per calcolare il double è:

scorri l'array e ti trovi la posizione della virgola, che ti serve per vedere da che esponente partire per calcolare unità, decine etc; a questo punto:

Codice:
double esponente = (double)(indice della casella con la virgola - 1)
double numero=0.0;
for (i=0 to MAX_INDICE_ARRAY)
{
    if (v[i]>='0' and v[i]<='9') 
    {
        numero=numero+((double)(v[i]-48))*esponente;
        esponente /= 10;
    }
}
Può darsi che ho dimenticato qualcosa, ma in linea di massima ci dovremmo essere. Non scordare i cast quando fai operazioni tra interi e double, altrimenti ti perdi i decimali

P.S.: quando usi lo switch, se hai vari case che portano allo stesso codice basta metterli uno sull'altro senza i break, così non riscrivi il codice ogni volta

ovvero:

case '0':
case '1':
case '2':
...
case '9':
codice
break;
grazie
__________________
2500KCorsair H70Asrock EXTREME4 GEN38GB Corsair DDR3 1600MHz CL8Gainward GTX570 GLHSSD Samsung 830 64GBCorsair CX600Centaurion2G500206BW
\_\_\_\_\_DrSpeed_/_/_/_/_/
Dr.Speed è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


PNY RTX 5080 Slim OC, sembra una Founders Edition ma non lo è PNY RTX 5080 Slim OC, sembra una Founders Editio...
Wi-Fi 7 con il design di una vetta innevata: ecco il nuovo sistema mesh di Huawei Wi-Fi 7 con il design di una vetta innevata: ecc...
Core Ultra 7 270K Plus e Core Ultra 7 250K Plus: Intel cerca il riscatto ma ci riesce in parte Core Ultra 7 270K Plus e Core Ultra 7 250K Plus:...
PC Specialist Lafité 14 AI AMD: assemblato come vuoi tu PC Specialist Lafité 14 AI AMD: assemblat...
Recensione Nothing Phone 4(a): sempre iconico ma ora più concreto Recensione Nothing Phone 4(a): sempre iconico ma...
Le migliori 7 offerte presenti su Amazon...
L'AI agentica potrebbe trasformare Inter...
Qualcomm lancerà due chip per sma...
Xiaomi dà i numeri: ecco come &eg...
AMD annuncia Ryzen 9 9950X3D2 Dual Editi...
CyrusOne avvia la costruzione del suo pr...
Cloud in crescita, ma l’adozione dell’IA...
OpenAI cancella l'adult mode di ChatGPT:...
Google Search Live arriva in Italia: la ...
MacBook Air 15'' con chip M4 (2025) crol...
Ora è possibile trasferire file t...
Apple domina con il MacBook Neo: i lapto...
Arriva la nuova gamma di PC Dell Pro per...
DJI Avata 360: la recensione del primo d...
Il browser di Samsung arriva su Windows,...
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: 07:39.


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