Tipi e valori limite in C++

I tipi disponibili in C/C++, sono i seguenti:

Tipo Costante valore Minimo Costante valore Massimo
signed short int SHRT_MIN SHRT_MAX
unsigned short int 0 USHRT_MAX
signed int INT_MIN INT_MAX
unsigned int 0 UINT_MAX
signed long int LONG_MIN LONG_MAX
unsigned long int 0 ULONG_MAX
signed long long LLONG_MIN LLONG_MAX
unsigned long long 0 ULLONG_MAX
signed char SCHAR_MIN SCHAR_MAX
unsigned char 0 UCHAR_MAX
float FLT_MIN FLT_MAX
double DBL_MIN DBL_MAX
long double LDBL_MIN LDBL_MAX


Il seguente programmino stampa i valori numerici minimi e massimi dei tipi sopra riportati; le costanti sono definite nel file <climits>. Il codice è scaricabile in calce all'articolo.


#include <iostream>
#include <climits>
#include <float.h>

using namespace std;

int main()
{
    // Usa climits e float.h
    cout << "Valore min e max per signed short int "   << SHRT_MIN  << " ** " << SHRT_MAX  << endl;
    cout << "Valore min e max per unsigned short int " << 0         << " ** " << USHRT_MAX << endl;
    cout << "Valore min e max per signed int "         << INT_MIN   << " ** " << INT_MAX   << endl;
    cout << "Valore min e max per unsigned int "       << 0         << " ** " << UINT_MAX  << endl;
    cout << "Valore min e max per signed long int "    << LONG_MIN  << " ** " << LONG_MAX  << endl;
    cout << "Valore min e max per unsigned long int "  << 0         << " ** " << ULONG_MAX << endl;
    cout << "Valore min e max per signed long long "   << LLONG_MIN << " ** " << LLONG_MAX << endl;
    cout << "Valore min e max per unsigned long long " << 0         << " ** " << ULLONG_MAX << endl;

    cout << "Valore min e max per signed char "        << SCHAR_MIN << " ** " << SCHAR_MAX << endl;
    cout << "Valore min e max per unsigned char "      << 0         << " ** " << UCHAR_MAX << endl;

    cout << "Valore min e max per float "             << FLT_MIN    << " ** " << FLT_MAX   << endl;
    cout << "Valore min e max per double "            << DBL_MIN    << " ** " << DBL_MAX   << endl;
    cout << "Valore min e max per long double "       << LDBL_MIN   << " ** " << LDBL_MAX  << endl;

    return 0;
}

Il risultato varia a seconda della piattaforma; nel mi caso il risultato è il seguente:

Valore min e max per signed short int -32768 ** 32767
Valore min e max per unsigned short int 0 ** 65535
Valore min e max per signed int -2147483648 ** 2147483647
Valore min e max per unsigned int 0 ** 4294967295
Valore min e max per signed long int -2147483648 ** 2147483647
Valore min e max per unsigned long int 0 ** 4294967295
Valore min e max per signed long long -9223372036854775808 ** 9223372036854775807
Valore min e max per unsigned long long 0 ** 18446744073709551615
Valore min e max per signed char -128 ** 127
Valore min e max per unsigned char 0 ** 255
Valore min e max per float 1.17549e-038 ** 3.40282e+038
Valore min e max per double 2.22507e-308 ** 1.79769e+308
Valore min e max per long double 3.3621e-4932 ** 1.18973e+4932
Allegati:
FileDescrizioneDimensione del FileDownloadsCreato
Scarica questo file (Tipi.cpp)Tipi.cppCalcolo valori massimi e minimi per i tipi di variabile in C/C++1 kB5372013-01-08 17:41

wget con Quick Test Professional

I seguente codice può essere utilizzato in Quick Test Professional (o con poche modifiche anche trasformato in un VB Script), per estrarre il codice generato da una URL del tipo: http://www.bertadanilo.name/random.php che restituisce un numero generato randomicamente. Tale URL può anche essere vista come un rest web service.

Lo script è composto dalle seguenti routine:

  1. Funzione wgetToFile: si comporta come il classico comando wget di un sistema *ix; più esattamente di comporta come wget -o <nomefile> <url>, salvando i contenuti in un file di testo. La routine accetta come parametri di input l'indirizzo url da cui estrarre i dati e il nome del file saveTo in cui salvarli. Non effettua alcun tipo di elaborazione sui dati estratti.
*****************************************************************************************************
'     DANILO BERTA - 06/11/2012
'  
'
'  wgetToFile:   la funzione legge il contenuto associato ad una URL e 
'                            lo salva in un file temporaneo (parametro saveTo)

' Input:   url =  nella forma  http:// www.nomeurl.xxx
'         saveTo = nome del file temporaneo nel quale salvare il contenuto letto
' Output: il contenuto del file puntato dall'URL
'******************************************************************************************************
  Function  wgetToFile(URL,saveTo)

        ' Creo instanza dii ServerXMLHTTP (non di  XMLHTTP perchè ci sono problemi di cache)
        Set objXMLHTTP = CreateObject("MSXML2.ServerXMLHTTP")

        ''Eseguo la richiesta
        objXMLHTTP.open "GET", URL, false
        objXMLHTTP.setRequestHeader "Pragma", " no-cache"
        objXMLHTTP.setRequestHeader "Cache-Control", "max-age=0"
        objXMLHTTP.send()
        
        If  objXMLHTTP.readyState=4 And  objXMLHTTP.Status = 200 Then
            Set objADOStream = CreateObject("ADODB.Stream")
            objADOStream.Open
            objADOStream.Type = 1 'adTypeBinary
        
            objADOStream.Write objXMLHTTP.responseBody
                        objADOStream.Position = 0 'Posizione dello stream all'inizio
        
            Set objFSO = Createobject("Scripting.FileSystemObject")
            If objFSO.Fileexists(saveTo) Then objFSO.DeleteFile saveTo
            Set objFSO = Nothing
        
            objADOStream.SaveToFile saveTo
            objADOStream.Flush
            objADOStream.Close
            Set objADOStream = Nothing
        Else
          ' Fallisco il test
          desErrore = "La URL " + URL + "  ha restituito un codice HTTP diverso da 200 e pari a:  " & CStr(objXMLHTTP.status) &  " equivalente a: " & objXMLHTTP.statusText
          Reporter.ReportEvent micFail,"Funzione wgetToFile",desErrore
                    ExitTest            
        End if
        
        Set objXMLHTTP = Nothing

  End Function

  1. Funzione readFile: legge il contenuto del file e lo restituisce. La routine accetta come parametri di input il nome del file fileName e non effettua alcun tipo di elaborazione sui dati estratti.

'*****************************************************************************************************
'     DANILO BERTA - 06/11/2012
'    
'
'  readFile:  la funzione legge il contenuto del file passato in input 
'                            e lo restituisce

' Input:       :  fileName =  stringa con il nome del file da leggere
' Output:   :  il contenuto del file puntato dall'URL
'******************************************************************************************************
Function readFile(fileName)

      ' Variabile di appoggio contenuto file
             strCharacters = ""

      ' Apro il file e lo leggo carattere per carattere
      Set objFSO = CreateObject("Scripting.FileSystemObject")
      ' Verifico se il file esiste...
            If objFSO.FileExists(fileName) then
        Set objFile = objFSO.OpenTextFile(fileName, 1)
        Do Until objFile.AtEndOfStream
          strCharacters =  objFile.ReadAll
        Loop
      else
          ' Fallisco il test
          Reporter.ReportEvent micFail,"Funzione readFile", "Il file " & fileName & " non è stato trovato "
                    ExitTest
      end if

      'Ritorno il contenuto del file
            readFile = strCharacters

End Function

  1. Funzione getCodice: legge il contenuto del file e restituisce il codice in esso contenuto (ossia il numero casuale generato). La routine accetta come parametri di input il nome del file fileName e la url da cui leggere i dati. Non fa altro che chiamare le due routine precedenti e restituire il codice estratto.

'*****************************************************************************************************
'     DANILO BERTA - 06/11/2012
'    
'
'  wgetToFile:   la funzione restituisce il codice  letto dalla URL, richiamando le
'                            due funzioni  wgetToFile e readFile

' Input: :  url =  nella forma  http:// www.nomeurl.xxx
'          fileTemp = nome del file temporaneo nel quale salvare il contenuto letto
' Output:: il codice 
'******************************************************************************************************
Function getCodice(URL,fileName)

  'Scrivo il contenuto nel file temporale
     wgetToFile  URL,fileName
   'Estraggo l'otput dal file
    output = readFile (fileName)
  'Estraggo il codice
  arrOut = split(output)
  'Restituisco il codice 
  getCodice = arrOut(UBound(arrOut))
End Function

Lo spezzone di codice che segue, chiama la routine getCodice precedente e lo restituisce attraverso un MessageBox.

    
  ' Parametri
    URL = "http://www.bertadanilo.name/random.php"
    fileName = "C:\key.txt"

  ' Chiamata alla generazione del codice 
  Code = getCodice(URL,fileName)
  MsgBox "Valore = " & Code ,vbOK,"Titolo" 

In calce al presente articolo potete scaricare il codice completo funzionante (e farne quello che volete).

Allegati:
FileDescrizioneDimensione del FileDownloadsCreato
Scarica questo file (wget_qtp.txt)wget QTPProgramma HP Quick Test Professional facenti le funzioni del comando wget linux/unix4 kB6122013-01-07 19:32
Copyright © 2017 Berta Danilo. Tutti i diritti riservati.
Joomla! è un software libero rilasciato sotto licenza GNU/GPL.