Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Un mostro da MSI: QD-OLED WQHD a 500 Hz con AI Care e DisplayPort 2.1a
Un mostro da MSI: QD-OLED WQHD a 500 Hz con AI Care e DisplayPort 2.1a
Abbiamo potuto mettere le mani in anteprima sul nuovo monitor MSI dedicato ai giocatori: un mostro che adotta un pannello QD-OLED da 26,5 pollici con risoluzione 2560 x 1440 pixel, frequenza di aggiornamento fino a 500 Hz e tempo di risposta di 0,03 ms GtG
DJI Neo 2 in prova: il drone da 160 grammi guadagna il gimbal e molto altro
DJI Neo 2 in prova: il drone da 160 grammi guadagna il gimbal e molto altro
DJI aggiorna la sua linea di droni ultraleggeri con Neo 2, un quadricottero da 160 grammi che mantiene la compattezza del predecessore ma introduce una stabilizzazione meccanica a due assi, sensori omnidirezionali e un sistema LiDAR
L'IA "seria" di Appian è diversa: inserita nei processi e rispetta dati e persone
L'IA "seria" di Appian è diversa: inserita nei processi e rispetta dati e persone
Ad Appian Europe 2025, l'azienda parla molto della sua visione di cos'è e come dovrebbe essere usata l'intelligenza artificiale: è uno strumento che va sempre adoperato dalle persone, che devono rimanere responsabili dei processi all'interno dell'azienda. Non è un giocattolo con cui sperimentare, ma un aiuto per superare le sfide di business più importanti
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 16-09-2008, 10:47   #21
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
Quote:
Originariamente inviato da Vincenzo1968 Guarda i messaggi
P.S.
Approfitto per chiedere il permesso a Cionci di postare le due mail che ha tolto nel post precedente. Ho cancellato ogni riferimento all'autore delle mail, compreso il numero di telefono della società.
Se vuoi, ma non vedo come possa contribuire alla discussione
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 16-09-2008, 10:51   #22
Vincenzo1968
Bannato
 
Iscritto dal: Mar 2008
Città: Villabate(PA)
Messaggi: 2515
E per la richiesta che ho fatto nel post di risposta a Banryu? Posso ripostarle le e-mail?

Ciao
Vincenzo1968 è offline   Rispondi citando il messaggio o parte di esso
Old 16-09-2008, 10:53   #23
Vincenzo1968
Bannato
 
Iscritto dal: Mar 2008
Città: Villabate(PA)
Messaggi: 2515
Quote:
Originariamente inviato da cionci Guarda i messaggi
Se vuoi, ma non vedo come possa contribuire alla discussione
In nessun modo, ma dato che il mio codice è stato definito 'pietoso' e 'porcata', ci tengo. Grazie



Vincenzo1968 è offline   Rispondi citando il messaggio o parte di esso
Old 16-09-2008, 11:48   #24
Vincenzo1968
Bannato
 
Iscritto dal: Mar 2008
Città: Villabate(PA)
Messaggi: 2515
Cionci,

non riesco a compilare il tuo codice:

error C2061: syntax error : identifier 'matrix'

Il codice è questo:

Codice:
#include <iostream>
#include <fstream>
#include <sstream>
#include <vector>
#include <time.h>

using namespace std;

class DataMatrix
{
   vector<float *> matrix;
   int currentColumn;
   int columns;
   int rows;
public:
   DataMatrix(int columns)
   {
       this->columns = columns;
       rows = 0;
       newLine();
   }

   void insert(float f)
   {
       matrix.back()[currentColumn++] = f;
   }

   void newLine()
   {
	   matrix.push_back(new matrix[columns]);
       rows++;       
   }

   int getRows() { return rows; };
   int getColumns() { return columns; };

   float getElement(int row, int column)
   {
      return matrix[row][column];
   }

   ~DataMatrix()
   {
       while(matrix.size() > 0)
       {
            delete[] matrix.back(); 
            matrix.pop_back();
       }
   }
};


class MalformedLineException
{
   int row;
   int column;
   string message;
public:
   MalformedLineException(int row, int column)
   {
      this->row = row;
      this->column = column;
      
      ostringstream oss;
      oss << "Malformed line at row " << row << " and column " << column;
      message = oss.str();
   }
   
   string getMessage() { return message; };
   int getRow() { return row; };
   int getColumn() { return column; };
};

int countColumns(string line)
{
    istringstream iss(line);
    int lineCounter = 0;

    while(1)
    {
        float tmp;
        iss >> tmp;

        if(iss.fail() && !iss.eof())
            throw MalformedLineException(1, lineCounter + 1);

        if(iss.eof())
           break;

        lineCounter++;
    }

    return lineCounter;
}

void parseLine(string line, DataMatrix &data)
{
   istringstream iss(line);
   
   for(int i = 0; i < data.getColumns(); ++i)
   {
      float f;
      iss >> f;

      if(iss.fail())
         throw MalformedLineException(data.getRows(), data.getColumns());

      data.insert(f);      
   }
}

int main()
{
	int rows;
	clock_t c_start, c_end;

	c_start = clock();

   ifstream inputFile("C:\\Temp\\test3.txt");
   try
   {      
      string line;
      getline(inputFile, line);

      int columns = countColumns(line);
      DataMatrix data(columns);

	  rows = 1;
      while(1)
      {
          if(inputFile.fail())
             break;

          data.newLine();
          parseLine(line, data);

          getline(inputFile, line);
		  rows++;
      }

		cout << endl;
		cout << "v[0][0] -> " << data.getElement(0, 0) << endl;
		cout << "v[" << data.getRows() - 1 << "][" << data.getColumns() - 1 << "] -> " << data.getElement(rows - 1, columns - 1) << endl;
   }
   catch(MalformedLineException ex)
   {
       cout << ex.getMessage(); 
   }

	c_end = clock();

	printf("\nTempo impiegato -> %5.5f secondi\n", (double)(c_end - c_start) / CLOCKS_PER_SEC);

   return 0;
}
e la linea interessata, all'interno della funzione NewLine, è questa:

Codice:
	   matrix.push_back(new matrix[columns]);
Vincenzo1968 è offline   Rispondi citando il messaggio o parte di esso
Old 16-09-2008, 11:55   #25
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
matrix.push_back(new float[columns]);

Sorry, ma l'ho scritto di getto senza compilarlo
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 16-09-2008, 12:04   #26
Vincenzo1968
Bannato
 
Iscritto dal: Mar 2008
Città: Villabate(PA)
Messaggi: 2515
Adesso compila ma, eseguendolo, va in crash
Forse è qualche cavolata che ho combinato io modificando il codice.
Vincenzo1968 è offline   Rispondi citando il messaggio o parte di esso
Old 16-09-2008, 12:05   #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
Mi alleghi il file con i dati ?
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 16-09-2008, 12:20   #28
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
Corretto:
Codice:
#include <iostream>
#include <fstream>
#include <sstream>
#include <vector>
#include <ctime>

using namespace std;

class DataMatrix
{
    vector<float *> matrix;
    int currentColumn;
    int columns;
    int rows;
public:
    DataMatrix(int columns)
    {
        this->columns = columns;
        rows = 0;
    }

    void insert(float f)
    {
        matrix.back()[currentColumn++] = f;
    }

    void newLine()
    {
        currentColumn = 0;
        matrix.push_back(new float[columns]);
        rows++;
    }

    int getRows()
    {
        return rows;
    }

    int getColumns()
    {
        return columns;
    }

    float getElement(int row, int column)
    {
        return matrix[row][column];
    }

    ~DataMatrix()
    {
        while (matrix.size() > 0)
        {
            delete[] matrix.back();
            matrix.pop_back();
        }
    }
};


class MalformedLineException
{
    int row;
    int column;
    string message;
public:
    MalformedLineException(int row, int column)
    {
        this->row = row;
        this->column = column;

        ostringstream oss;
        oss << "Malformed line at row " << row << " and column " << column;
        message = oss.str();
    }

    string getMessage()
    {
        return message;
    }

    int getRow()
    {
        return row;
    }

    int getColumn()
    {
        return column;
    }
};

int countColumns(string line)
{
    istringstream iss(line);
    int columnCounter = 0;

    while (1)
    {
        float tmp;
        iss >> tmp;

        if (iss.fail() && !iss.eof())
            throw MalformedLineException(1, columnCounter + 1);

        columnCounter++;

        if (iss.eof())
            break;
    }

    return lineCounter;
}

void parseLine(string line, DataMatrix &data)
{
    istringstream iss(line);

    for (int i = 0; i < data.getColumns(); ++i)
    {
        float f;
        iss >> f;

        if (iss.fail())
            throw MalformedLineException(data.getRows(), i + 1);

        data.insert(f);
    }
}

int main()
{
    clock_t c_start, c_end;

    c_start = clock();

    ifstream inputFile("data.txt");
    if (inputFile.fail())
    {
        cout << "Error opening file" << endl;
        return 1;
    }

    try
    {
        string line;
        getline(inputFile, line);

        int columns = countColumns(line);
        DataMatrix data(columns);

        while (!inputFile.fail())
        {
            data.newLine();
            parseLine(line, data);

            getline(inputFile, line);
        }

        cout << endl;
        cout << "v[0][0] -> " << data.getElement(0, 0) << endl;
        cout << "v[" << data.getRows() - 1 << "][" << data.getColumns() - 1 << "] -> " << data.getElement(data.getRows() - 1, data.getColumns() - 1) << endl;
    }
    catch (MalformedLineException ex)
    {
        cout << ex.getMessage();
    }

    c_end = clock();

    printf("\nTempo impiegato -> %5.5f secondi\n", (double)(c_end - c_start) / CLOCKS_PER_SEC);

    return 0;
}

Ultima modifica di cionci : 16-09-2008 alle 12:24.
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 16-09-2008, 12:27   #29
banryu79
Senior Member
 
L'Avatar di banryu79
 
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
Quote:
Originariamente inviato da Vincenzo1968 Guarda i messaggi
E per la richiesta che ho fatto nel post di risposta a Banryu? Posso ripostarle le e-mail?
OT
Il link non riesco a raggiungerlo ma avendo letto il testo delle mail la situazione mi appare chiara.
A proposito complimenti, dev'essere una bella soddisfazione
__________________

As long as you are basically literate in programming, you should be able to express any logical relationship you understand.
If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it.
(Chris Crawford)
banryu79 è offline   Rispondi citando il messaggio o parte di esso
Old 16-09-2008, 12:29   #30
Vincenzo1968
Bannato
 
Iscritto dal: Mar 2008
Città: Villabate(PA)
Messaggi: 2515
Quote:
Originariamente inviato da cionci Guarda i messaggi
Mi alleghi il file con i dati ?
Questo è il file.

Ciao
Vincenzo1968 è offline   Rispondi citando il messaggio o parte di esso
Old 16-09-2008, 12:29   #31
Vincenzo1968
Bannato
 
Iscritto dal: Mar 2008
Città: Villabate(PA)
Messaggi: 2515
Quote:
Originariamente inviato da banryu79 Guarda i messaggi
OT
Il link non riesco a raggiungerlo ma avendo letto il testo delle mail la situazione mi appare chiara.
A proposito complimenti, dev'essere una bella soddisfazione
Grazie
Vincenzo1968 è offline   Rispondi citando il messaggio o parte di esso
Old 16-09-2008, 12:35   #32
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
Quote:
Originariamente inviato da Vincenzo1968 Guarda i messaggi
Compila male su Linux
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 16-09-2008, 12:47   #33
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
Quote:
Originariamente inviato da cionci Guarda i messaggi
Compila male su Linux
Ho tolto itoa (non standard) e messo una snprintf al suo posto.

v[0][0] -> 9707.6
v[99999][364] -> 7608.32

Tempo impiegato -> 23.97000 secondi

Ovviamente ottimizzando la compilazione. Core 2 Duo 2,16 Ghz
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 16-09-2008, 12:51   #34
Vincenzo1968
Bannato
 
Iscritto dal: Mar 2008
Città: Villabate(PA)
Messaggi: 2515
Quote:
Originariamente inviato da cionci Guarda i messaggi
Ho tolto itoa (non standard) e messo una snprintf al suo posto.

v[0][0] -> 9707.6
v[99999][364] -> 7608.32

Tempo impiegato -> 23.97000 secondi

Ovviamente ottimizzando la compilazione. Core 2 Duo 2,16 Ghz

Cionci scusami,

ho postato il file sbagliato(è un file di testo che contiene il mio intervento sul forum).
Purtroppo il file dei dati, anche zippato, è troppo grosso(più di 100 MB). Puoi ricostruirlo al volo con la funzione che ho postato qualche post fa.

Ciao
Vincenzo1968 è offline   Rispondi citando il messaggio o parte di esso
Old 16-09-2008, 12:58   #35
Vincenzo1968
Bannato
 
Iscritto dal: Mar 2008
Città: Villabate(PA)
Messaggi: 2515
Questo è il tempo sulla mia macchina:

Vincenzo1968 è offline   Rispondi citando il messaggio o parte di esso
Old 16-09-2008, 13:15   #36
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
Quote:
Originariamente inviato da cionci Guarda i messaggi
Ho tolto itoa (non standard) e messo una snprintf al suo posto.

v[0][0] -> 9707.6
v[99999][364] -> 7608.32

Tempo impiegato -> 23.97000 secondi

Ovviamente ottimizzando la compilazione. Core 2 Duo 2,16 Ghz
Il tuo con le stesse ottimizzazioni (-O3), stesso progetto e lo stesso file di dait:
Tempo impiegato -> 17.29000 secondi

array[0][0] -> 9707.6
array[99999][365] -> 0

Quindi in definitiva la differenza non è poi così immensa (soprattutto contando che il file è veramente grande). Vlae davvero la pena perdere leggibilità e manutenibilità in favore di una così risicata differenza ? Imho no. Poi casomai il file fosse dieci volte più grande se ne potrebbe anche parlare.
E quello in C++ è anche migliorabile. Basta fare un po' di profiling.
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 16-09-2008, 13:23   #37
Vincenzo1968
Bannato
 
Iscritto dal: Mar 2008
Città: Villabate(PA)
Messaggi: 2515
Quote:
Originariamente inviato da cionci Guarda i messaggi
Il tuo con le stesse ottimizzazioni (-O3), stesso progetto e lo stesso file di dait:
Tempo impiegato -> 17.29000 secondi

array[0][0] -> 9707.6
array[99999][365] -> 0

Quindi in definitiva la differenza non è poi così immensa (soprattutto contando che il file è veramente grande). Vlae davvero la pena perdere leggibilità e manutenibilità in favore di una così risicata differenza ? Imho no. Poi casomai il file fosse dieci volte più grande se ne potrebbe anche parlare.
E quello in C++ è anche migliorabile. Basta fare un po' di profiling.
Eppure, sulla mia macchina(compilatore visual studio 2008), ottengo 35 secondi contro 99.
Provo a compilare col watcom e ti faccio sapere.
Vincenzo1968 è offline   Rispondi citando il messaggio o parte di esso
Old 16-09-2008, 13:25   #38
xciaoatuttix
Member
 
L'Avatar di xciaoatuttix
 
Iscritto dal: Jul 2008
Messaggi: 255
complimenti vincenzo ottime prestazioni
penso che in un linguaggio come il c++ le prestazioni contano eccome altrimenti che senso ha usare il c++ per complicarsi la vita.
uso python e via
xciaoatuttix è offline   Rispondi citando il messaggio o parte di esso
Old 16-09-2008, 13:59   #39
Vincenzo1968
Bannato
 
Iscritto dal: Mar 2008
Città: Villabate(PA)
Messaggi: 2515
Quote:
Originariamente inviato da xciaoatuttix Guarda i messaggi
complimenti vincenzo ottime prestazioni
penso che in un linguaggio come il c++ le prestazioni contano eccome altrimenti che senso ha usare il c++ per complicarsi la vita.
uso python e via
Ciao xciaoatuttix,

grazie

x Cionci: ho qualche problema a compilare il tuo codice col watcom. Il mio sono riuscito a compilarlo ma ho dovuto includere gli header del c:

Codice:
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <malloc.h>
#include <time.h>

using namespace std;
Il problema è nelle righe che contengono ostringstream e istringstream. Il messaggio di errore è:

sintax error; probable cause: missing ';'

Sai se c'è modo di risolvere la cosa?

P.S.
I tempi del mio codice, col watcom, scendono a 29.32800 secondi
Vincenzo1968 è offline   Rispondi citando il messaggio o parte di esso
Old 16-09-2008, 14:01   #40
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
Prova con

#include <sstream>
cionci è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Un mostro da MSI: QD-OLED WQHD a 500 Hz con AI Care e DisplayPort 2.1a Un mostro da MSI: QD-OLED WQHD a 500 Hz con AI C...
DJI Neo 2 in prova: il drone da 160 grammi guadagna il gimbal e molto altro DJI Neo 2 in prova: il drone da 160 grammi guada...
L'IA "seria" di Appian è diversa: inserita nei processi e rispetta dati e persone L'IA "seria" di Appian è divers...
Polestar 3 Performance, test drive: comodità e potenza possono convivere Polestar 3 Performance, test drive: comodit&agra...
Qualcomm Snapdragon X2 Elite: l'architettura del SoC per i notebook del 2026 Qualcomm Snapdragon X2 Elite: l'architettura del...
Pazzesco Black Friday Amazon: TV Hisense...
GoPro HERO13 Black: la versione completa...
L'Europa fa retromarcia sugli obblighi p...
Amazon Black Friday: 2 portatili gaming ...
50 idee regalo sotto i 50€, con gli scon...
Ecco un robot Lefant con mappatura laser...
Sundar Pichai (Google): il 'vibe coding'...
Lenovo Legion 7i, con una NVIDIA GeForce...
Sconti fino al 40% sui robot Roborock: l...
Stampante HP quasi regalata per il Black...
POCO lancia due nuovi tablet: ecco Pad X...
Leonardo ha svelato Michelangelo Dome, i...
iPhone Air non convince e i produttori c...
Prime Video supera Netflix in Italia? So...
Qualcomm Snapdragon 8 Elite Gen 6 avr&ag...
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: 10:00.


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