Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Hisense A85N: il ritorno all’OLED è convincente e alla portata di tutti
Hisense A85N: il ritorno all’OLED è convincente e alla portata di tutti
Dopo alcuni anni di assenza dai cataloghi dei suoi televisori, Hisense riporta sul mercato una proposta OLED che punta tutto sul rapporto qualità prezzo. Hisense 55A85N è un televisore completo e versatile che riesce a convincere anche senza raggiungere le vette di televisori di altra fascia (e altro prezzo)
Recensione Borderlands 4, tra divertimento e problemi tecnici
Recensione Borderlands 4, tra divertimento e problemi tecnici
Gearbox Software rilancia la saga con Borderlands 4, ora disponibile su PS5, Xbox Series X|S e PC. Tra le novità spiccano nuove abilità di movimento, un pianeta inedito da esplorare e una campagna che lascia al giocatore piena libertà di approccio
TCL NXTPAPER 60 Ultra: lo smartphone che trasforma la lettura da digitale a naturale
TCL NXTPAPER 60 Ultra: lo smartphone che trasforma la lettura da digitale a naturale
NXTPAPER 60 Ultra è il primo smartphone con tecnologia NXTPAPER 4.0 per il display, un ampio IPS da 7,2 pollici. Con finitura anti-riflesso, processore MediaTek Dimensity 7400, fotocamera periscopica e modalità Max Ink per il detox digitale, NXTPAPER 60 Ultra punta a essere il riferimento tra gli smartphone pensati per il benessere degli occhi.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 24-02-2010, 00:44   #21
wingman87
Senior Member
 
Iscritto dal: Nov 2005
Messaggi: 2775
Per non fargli scrivere quella scritta puoi aggiungere quel case che dicevo, che ignora il carattere di ritorno a capo.
A quel punto ti verrà stampato due volte il messaggio
"\nPremi A se vuoi inserire un valore nello stack, B se vuoi estrarre un valore, X se vuoi uscire:\n"
ma potresti metterlo in un if facendolo stampare solo quando selection è diverso da '\n'
wingman87 è offline   Rispondi citando il messaggio o parte di esso
Old 24-02-2010, 00:53   #22
Solido
Senior Member
 
L'Avatar di Solido
 
Iscritto dal: Jan 2004
Città: Figline(FI)
Messaggi: 5847
così?
case'X':
case'x':
exit=TRUE;
break;
case '\n':
if(selection=!'\n')
break;


nn credo perchè nn mi torna
__________________
Ho concluso felicemente molte trattative su questo forum!
Solido è offline   Rispondi citando il messaggio o parte di esso
Old 24-02-2010, 00:59   #23
wingman87
Senior Member
 
Iscritto dal: Nov 2005
Messaggi: 2775
Quote:
Originariamente inviato da Solido Guarda i messaggi
così?
case'X':
case'x':
exit=TRUE;
break;
case '\n':
if(selection=!'\n')
break;


nn credo perchè nn mi torna
No, il case '\n' conterrà solo un break;
In questo modo quando viene letto l'invio non si entra nel case default.
Fatto questo prova ad eseguire, immagino che ti stamperà due volte il messaggio che dicevo prima. A quel punto potresti mettere la stampa di quel messaggio in un if
wingman87 è offline   Rispondi citando il messaggio o parte di esso
Old 24-02-2010, 01:03   #24
Solido
Senior Member
 
L'Avatar di Solido
 
Iscritto dal: Jan 2004
Città: Figline(FI)
Messaggi: 5847
questo è il codice di ora che nn torna

Codice:
do{
          exit=FALSE;
          if(selection=!'\n'){
          printf("\nPremi A se vuoi inserire un valore nello stack, B se vuoi estrarre un valore, X se vuoi uscire:\n");
          
          }
          
          selection=getchar();
          scanf("%c", &selection);
          switch(selection)
          {
                        
                   case 'A':
                   case 'a':
                        result=TRUE;
                        while(result==TRUE){
                        get_value(&value);
                        result = push(&stack,value);}
           
                        notify_push_failure();
                                   
                       
                   break;
                   
                   case 'B':
                   case 'b':  
                         result= pop(&stack,&value);
                         if(result==TRUE)
                         print_value(value);
                         else
                         notify_pop_failure();
                   break;
                   
                   case'X':
                   case'x':        
                           exit=TRUE; 
                           break;
                           case '\n':
                                
                                break;
                           
                   default  :  
                   printf ("\nHai digitato un carattere diverso dai caratteri: A,B,X\n");
__________________
Ho concluso felicemente molte trattative su questo forum!
Solido è offline   Rispondi citando il messaggio o parte di esso
Old 24-02-2010, 01:13   #25
wingman87
Senior Member
 
Iscritto dal: Nov 2005
Messaggi: 2775
Hai scritto =! invece di !=
Inoltre c'è un getchar inutile prima dello scanf.
wingman87 è offline   Rispondi citando il messaggio o parte di esso
Old 24-02-2010, 01:21   #26
Solido
Senior Member
 
L'Avatar di Solido
 
Iscritto dal: Jan 2004
Città: Figline(FI)
Messaggi: 5847
lo scanf prima dello switch?
lo ho tolto adesso come output:
adesso dopo il buffer pieno mi compare...premi a o b o c poi : hai digitato un carattere diverso da abx
e poi premi a o b o x
__________________
Ho concluso felicemente molte trattative su questo forum!
Solido è offline   Rispondi citando il messaggio o parte di esso
Old 24-02-2010, 01:27   #27
wingman87
Senior Member
 
Iscritto dal: Nov 2005
Messaggi: 2775
Puoi postare di nuovo il codice completo? Quello che ho in locale mi funziona bene.
wingman87 è offline   Rispondi citando il messaggio o parte di esso
Old 24-02-2010, 01:29   #28
Solido
Senior Member
 
L'Avatar di Solido
 
Iscritto dal: Jan 2004
Città: Figline(FI)
Messaggi: 5847
Codice:
//Inclusioni
#include <stdio.h>
#include <stdlib.h>


//Definizioni per l'uso dei booleani
typedef unsigned short int Boolean;
#define TRUE 1
#define FALSE 0


struct stack{
       int size;
       int TOS;
       float * buffer;
       };
Boolean push(struct stack * ptr, float value);
Boolean pop(struct stack * ptr, float*value_ptr);
void get_value(float *value_ptr);
void print_value(float value);
void notify_push_failure(void); 
void notify_pop_failure(void);  
int init ( struct stack * ptr, int size);
int get_size(int*size_ptr);  
int getchar (void);
  
        
int main (void)
{
     struct stack stack;
     int size;
     float value;
     Boolean exit;
     Boolean result;
     get_size (&size);
     init(&stack,size);
     
     char selection;
     do{
          exit=FALSE;
          if(selection!='\n'){
          printf("\nPremi A se vuoi inserire un valore nello stack, B se vuoi estrarre un valore, X se vuoi uscire:\n");
          
          }
          
        
          scanf("%c", &selection);
          switch(selection)
          {
                        
                   case 'A':
                   case 'a':
                        result=TRUE;
                        while(result==TRUE){
                        get_value(&value);
                        result = push(&stack,value);}
           
                        notify_push_failure();
                                   
                       
                   break;
                   
                   case 'B':
                   case 'b':  
                         result= pop(&stack,&value);
                         if(result==TRUE)
                         print_value(value);
                         else
                         notify_pop_failure();
                   break;
                   
                   case'X':
                   case'x':        
                           exit=TRUE; 
                           break;
                           case '\n':
                                
                                break;
                           
                   default  :  
                   printf ("\nHai digitato un carattere diverso dai caratteri: A,B,X\n");
        
          }
     
     } while(exit==FALSE && selection!=EOF );
    
     system("PAUSE");
}

int get_size(int*size_ptr)
{
     printf("\n Dimensione stack:");
     scanf("%d", size_ptr);
}

int init ( struct stack * ptr, int size)
{
     ptr->size=size;
     ptr->TOS=0;
     ptr->buffer=(float*)malloc(size*sizeof(float));
}

Boolean push(struct stack * ptr, float value)
// se il buffer non è pieno allora restituisce TRUE
{
        if(ptr->TOS<ptr->size)
        {
             
            (ptr->buffer)[ptr->TOS]=value;
            (ptr->TOS)++;
            return TRUE;
        }
        else
        return FALSE;
}

Boolean pop( struct stack * ptr, float*value_ptr)
{
        if(ptr->TOS>0)
        {
              (ptr->TOS)--;
              *value_ptr=(ptr->buffer)[ptr->TOS];
              return TRUE;
        }
        else
               return FALSE;
                 
}        

void get_value(float*value_ptr)
// acquisisce un valore float da tastiera
{
              printf("\n Inserisci un valore");
              scanf("%f%", value_ptr);
}

void print_value(float value)
{
     printf("\n Il valore estratto \x8A:%f", value);
}

void notify_push_failure(void)
{ 
     printf("\n Il buffer \x8A pieno. Impossibile inserire il valore!\n");
     
     
}

void notify_pop_failure(void)
{
     printf("\n Il buffer \x8A vuoto. Impossibile estrarre il valore!\n");
      
}
__________________
Ho concluso felicemente molte trattative su questo forum!
Solido è offline   Rispondi citando il messaggio o parte di esso
Old 24-02-2010, 01:33   #29
wingman87
Senior Member
 
Iscritto dal: Nov 2005
Messaggi: 2775
C'è un errore nella funzione getvalue ecco la versione corretta:
Codice:
void get_value(float*value_ptr)
// acquisisce un valore float da tastiera
{
              printf("\n Inserisci un valore");
              scanf("%f", value_ptr);
}
C'era un % di troppo.
wingman87 è offline   Rispondi citando il messaggio o parte di esso
Old 24-02-2010, 01:40   #30
Solido
Senior Member
 
L'Avatar di Solido
 
Iscritto dal: Jan 2004
Città: Figline(FI)
Messaggi: 5847
Adesso mi torna...per quel % mi faceva casino...grazie mille sei stato gentilissimo non so come avrei fatto senza di te...ti ringrazio di cuore wingman...
spero di n trovare combinazioni che mi creino bug...cmq grazie 20000000000 per adesso
una domanda: possibile che l'ultimo valore da inserire melo stampi a video e dopo mi dica dopo : impossibile continuare ?
perchè se metto stack size=10 mi stampa 11 valori ma nel pop l'ultimo inserito non mi compare...
__________________
Ho concluso felicemente molte trattative su questo forum!

Ultima modifica di Solido : 24-02-2010 alle 01:52.
Solido è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Hisense A85N: il ritorno all’OLED è convincente e alla portata di tutti Hisense A85N: il ritorno all’OLED è convi...
Recensione Borderlands 4, tra divertimento e problemi tecnici Recensione Borderlands 4, tra divertimento e pro...
TCL NXTPAPER 60 Ultra: lo smartphone che trasforma la lettura da digitale a naturale TCL NXTPAPER 60 Ultra: lo smartphone che trasfor...
Un fulmine sulla scrivania, Corsair Sabre v2 Pro ridefinisce la velocità nel gaming Un fulmine sulla scrivania, Corsair Sabre v2 Pro...
Nokia Innovation Day 2025: l’Europa ha bisogno di campioni nelle telecomunicazioni Nokia Innovation Day 2025: l’Europa ha bisogno d...
Sierra Space: lo spazioplano Dream Chase...
Blue Origin mostra la schermatura per il...
ENEA promette pannelli solari più...
Cartello del carburante: l'AGCM ha emess...
HONOR presenta un outfit progettato con ...
CA Auto Bank e Drivalia al Salone di Tor...
Sembra un sottobicchiere, ma è un...
SPID a pagamento: Poste Italiane valuta ...
Chery lancia Lepas in Europa: il nuovo b...
Dongfeng Box, primo contatto: il perch&e...
Candidato smaschera i recruiter AI con u...
Colpo al 'pezzotto': smantellato il 70% ...
Tineco FLOOR ONE i6 Stretch a soli 299€ ...
Denodo presenta la versione 9.3 della su...
Stati Uniti, attivata la prima batteria ...
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: 22:18.


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