Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Motorola edge 70 Fusion FIFA World Cup 26 Edition: un ottimo smartphone per i fan del calcio
Motorola edge 70 Fusion FIFA World Cup 26 Edition: un ottimo smartphone per i fan del calcio
Motorola edge 70 Fusion FIFA World Cup 26 Edition porta la maglia iridata su uno smartphone accessibile: display Extreme AMOLED da 6,78 pollici a 144Hz, fotocamera Sony LYTIA 710 con moto ai, Snapdragon 7s Gen 3 abbinato a 8GB di RAM, batteria da 5200 mAh con ricarica TurboPower a 68W e certificazione IP68/IP69, il tutto in una veste PANTONE Silhouette con logo dorato a 24 carati, moto buds bass incluse in confezione e contenuti software dedicati ai Mondiali 2026
Renault 5 elettrica al giudizio definitivo: solo stupore iniziale o premi meritati?
Renault 5 elettrica al giudizio definitivo: solo stupore iniziale o premi meritati?
Dopo più di un anno dal primo test drive ci siamo rimessi al volante della Renault 5 E-Tech Electric, questa volta utilizzandola come prima auto per circa due settimane. Scoprite con noi se il progetto convince ancora
HONOR CHOICE Projector Air Pro: piccolo, portatile e con Netflix
HONOR CHOICE Projector Air Pro: piccolo, portatile e con Netflix
Un proiettore economico, che fa della portabilità e immediatezza i suoi punti di forza. Adatto per una camera da letto o per la casa vacanze, è basato su sistema proprietario Linux ma offre piena compatibilità ufficiale a Netflix
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 20-07-2003, 11:45   #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
a2000: fai un eseguibile in Fortan e ci dici quanto ci metti...
Devi ordinare anche in numeri del vettore...
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 20-07-2003, 12:37   #22
verloc
Senior Member
 
L'Avatar di verloc
 
Iscritto dal: Jan 2000
Messaggi: 551
Quote:
Originariamente inviato da cionci
a2000: fai un eseguibile in Fortan e ci dici quanto ci metti...
Devi ordinare anche in numeri del vettore...
Pruvucatio magistris!


Quann' o fortran nun zerv a nu Katz

Ultima modifica di verloc : 20-07-2003 alle 12:42.
verloc è offline   Rispondi citando il messaggio o parte di esso
Old 20-07-2003, 13:03   #23
misterx
Senior Member
 
Iscritto dal: Apr 2001
Città: Milano
Messaggi: 3741
ragazzi, è meno semplice di quanto si pensi

un'oretta a mio avviso non basta
misterx è offline   Rispondi citando il messaggio o parte di esso
Old 20-07-2003, 13:58   #24
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
Io ci ho messo circa un'ora e 20...se vuoi ti faccio vedere il codice...
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 20-07-2003, 14:33   #25
a2000
Bannato
 
L'Avatar di a2000
 
Iscritto dal: Jan 2001
Messaggi: 1976
Quote:
Originariamente inviato da cionci
a2000: fai un eseguibile in Fortan e ci dici quanto ci metti...
Devi ordinare anche in numeri del vettore...
ecco questo è un esempio di programmazione ridondante a priori alias programmazione ad oggetti (già fatti ... da altri).
se devi inserire ordinatamente numeri in un vettore ordinato (che poi col ca++o che uso un vettore) che bisogno c'è di riordinare il vettore.
e anche se dovessi riordinare tutto il vettore ?
cioè, dico, il secondo esercizio dopo "ciao mondo".

ma dioveth ragazzi !

e poi lo ripeto ancora: fortran == basic
e ancora di più VFortran === VBasic

non ci metto molto: inserisco il codice nel traduttore automatico Basic <-> Fortran (fatto in VBA ) e via di run !

cose del genere:
Codice:
Exit Sub	RETURN
Exit Function	RETURN
Exit For	EXIT
	
End Sub	End Subroutine
__Sub	__Subroutine
End Function	End Function
	
For_	Do_
Next_	End Do_!
_To_	:
_To_	,_
_Step_	,_
	
If_	If_(
_Then Stop	)_Stop
_Then Call	)_Call
_Then Return	)_Return
_Then Exit	)_Exit
_Then	)_Then

notte ! :P

Ultima modifica di a2000 : 20-07-2003 alle 14:41.
a2000 è offline   Rispondi citando il messaggio o parte di esso
Old 20-07-2003, 15:00   #26
verloc
Senior Member
 
L'Avatar di verloc
 
Iscritto dal: Jan 2000
Messaggi: 551
Quote:
Originariamente inviato da cionci
Io ci ho messo circa un'ora e 20...se vuoi ti faccio vedere il codice...
Posta posta...
che sta roba serve sempre
verloc è offline   Rispondi citando il messaggio o parte di esso
Old 20-07-2003, 15:07   #27
a2000
Bannato
 
L'Avatar di a2000
 
Iscritto dal: Jan 2001
Messaggi: 1976
e capirai ... !

verlocc ta'ia fa' u mazz altro che serve sempre !
a2000 è offline   Rispondi citando il messaggio o parte di esso
Old 20-07-2003, 15:29   #28
verloc
Senior Member
 
L'Avatar di verloc
 
Iscritto dal: Jan 2000
Messaggi: 551
Quote:
Originariamente inviato da a2000
e capirai ... !

verlocc ta'ia fa' u mazz altro che serve sempre !
Non osare...
lo sai... che me lo sto già facendo
verloc è offline   Rispondi citando il messaggio o parte di esso
Old 21-07-2003, 08:43   #29
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 a2000
se devi inserire ordinatamente numeri in un vettore ordinato (che poi col ca++o che uso un vettore) che bisogno c'è di riordinare il vettore.
Allora non hai capito cosa vuole misterx...
Il problema sta proprio nell'analizzare l'input in modo da inserire una nuova persona al posto giusto o aggiungere i numeri alla lista se la persona è già esistente...e bisogna anche ordinarli (come richiesto dall'esempio postato da misterx)...
L'ordinamento in se non è un problema (tant'è che in C++ si fa con una istruzione)...ma il problema è il parsing della stringa e il conseguente inserimento della stringa nel file in maniera opportuna...

Codice:
#include <iostream>
#include <strstream>
#include <algorithm>
#include <vector>
#include <map>
#include <string>
#include <fstream>

#include <cstdlib>

using namespace std;

struct ltstr
{
	bool operator()(const string s1, const string s2) const
	{
		return s1 < s2;
	}
};

typedef vector<int> vdati;
typedef vector<int>::iterator ivdati;
typedef map<string, vdati, ltstr> vpersone;
typedef map<string, vdati, ltstr>::iterator ivpersone;
typedef map<string, vpersone, ltstr> vcitta;
typedef map<string, vpersone, ltstr>::iterator ivcitta;

class database {
	vcitta v;
public:
	database() { };
	bool aggiungi(const string &cit, const string &persona, const string &dati);
	bool aggiungi_citta(const string &citta);
	friend ostream &operator<<(ostream &os, database &db);
};

bool database::aggiungi_citta(const string &citta)
{
	v[citta].size();
	return true;
}


bool database::aggiungi(const string &cit, const string &persona, const string &dati)
{
	vdati tmp;
	int start = 0;
	for(int i=0; i<dati.size(); ++i)
	{
		if(!isdigit(dati[i]))
		{
			if(start == i)
				return false;
			else
			{
				tmp.push_back(atoi(dati.substr(start,i-start).c_str()));
				start = i + 1;
			}
		}	
		else
		{
			if((i+1) == dati.size() && (i-start+1) > 0)
				tmp.push_back(atoi(dati.substr(start,i-start+1).c_str()));
		}
	}

	if(v[cit][persona].size() > 0)
		for(ivdati ivd = tmp.begin(); ivd < tmp.end(); ivd++)
			v[cit][persona].push_back(*ivd);
	else
		v[cit][persona] = tmp;
		
	sort(v[cit][persona].begin(), v[cit][persona].end());
	return true;
}

ostream &operator<<(ostream &os, database &db)
{
	for(ivcitta itc = db.v.begin(); itc != db.v.end(); itc++)
	{
		os << (*itc).first;
		for(ivpersone itp = (*itc).second.begin(); itp != (*itc).second.end(); itp++)
		{
			if(itp == (*itc).second.begin())
				os << "\t";
			else				os << endl;
				os << (*itp).first;
			vdati &tmp = (*itp).second;
			os << "\t";
			for(int i = 0; i < tmp.size(); i++)
			{
				os << tmp[i];
				if(i != (tmp.size()-1))
					os << "-";
			}
		}
		os << endl;
	}
	return os;	
}

istream &operator>>(istream &is, database &db)
{
	string citta;
	while(!is.fail())
	{
 		char buf[4097];
		is.getline(buf, 4096, '\n');
		if(is.fail())
		{
			is.setstate(ios::goodbit);
			continue;
		}
		int i = 0;
		int tab[4096];
		int count = 0;
		while(buf[i])
		{
			if(buf[i] == '\t')
			{
				tab[count++] = i;
				buf[i] = '\0';
			}
			++i;
		}
		string persona;
		string dati;
		switch(count)
		{
		case 0:
			db.aggiungi_citta(buf);
			break;
		case 2:
			citta = buf;
 			persona = buf + tab[0] + 1;
			dati = buf + tab[1] + 1;
			if(!db.aggiungi(citta, persona, dati))
				throw string(buf);
			break;
		case 1:
 			persona = buf;
			dati = buf + tab[0] + 1;
			if(!db.aggiungi(citta, persona, dati))
				throw string(buf);
			break;
		default:
			throw string(buf);
		}
	}
	return is;
}

int main()
{
	database db;
	ifstream f1("dati.txt");
	f1 >> db;
	f1.close();

	cout << "Stato iniziale del file :" << endl;
	cout << db;
	
	cout << endl << "Inserisci i campi separati dal TAB (una riga vuota per terminare) :" << endl;

	char buf[4097];

	do
	{
		cin.getline(buf,4096,'\n');
		strstream st;
		st << buf;
		if(strlen(buf) > 1)
		{
			try {
				st >> db;
			}
			catch(string e)
			{
				cout << endl << "Errore nella riga '" << e << "'" << endl;
			}
		}
	}while(strlen(buf) > 1);
	
	cout << endl << "Stato finale del file :" << endl;
	cout << db;

	ofstream f2("dati.txt");
	f2 << db;
	f2.close();
	system("PAUSE");
	return 0;
}
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 21-07-2003, 09:34   #30
a2000
Bannato
 
L'Avatar di a2000
 
Iscritto dal: Jan 2001
Messaggi: 1976
oh mi signor ... 150 righe di codice per una cosa così !

la metà della metà delle righe di codice bastano e avanzano !

saludi. :P
a2000 è offline   Rispondi citando il messaggio o parte di esso
Old 21-07-2003, 09:35   #31
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
Ok...fai pure te il programma funzionante e guardiamo quanto tempo e righe ci metti...

Ultima modifica di cionci : 21-07-2003 alle 09:38.
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 21-07-2003, 10:02   #32
misterx
Senior Member
 
Iscritto dal: Apr 2001
Città: Milano
Messaggi: 3741
Quote:
Originariamente inviato da cionci
Ok...fai pure te il programma funzionante e guardiamo quanto tempo e righe ci metti...

hai la mailbox full
misterx è offline   Rispondi citando il messaggio o parte di esso
Old 21-07-2003, 10:08   #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
Visto...era è libera...
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 21-07-2003, 10:47   #34
verloc
Senior Member
 
L'Avatar di verloc
 
Iscritto dal: Jan 2000
Messaggi: 551
Quote:
Originariamente inviato da cionci
Allora non hai capito cosa vuole misterx...
clap clap clap (fatti: non parole)

grazie Cionci

Dai una occhiata a questo ( testalo e dimmi che ne pensi )
Codice:
//  file conversions.h
//  this is a personal modification of wonderful Kevlin Henney's lexical_cast,
//  please refer to http://www.boost.org  for info
//
//  purpose: simple runtime conversions from-to types
//  i.e   string-char* etc   to double-int etc without exceptions
//
//  feel free to do what you want with this file
//
//  [email protected]
//
// SAMPLE
/*

#include <stdio.h>  //for getchar
#include <string>
#include "conversions.h"
int main(int argc, char** argv)
{
  
  double number;
  cout.precision(15);            
  string strNumber("1234.56666666666666");
  char* szNumber="534,768";

  //Conversion  string to double 
   
  if(convert<string,double>(strNumber,number))  
  {
    cout.imbue(std::locale("")); 
    cout<<number<<endl;
  }
  else cout<<"Bad conversion of \"1234.56666666666666\" :"<<'\n'<<"my locale needs comma"<<'\n';

  if(convert<char *,double>(szNumber,number))   
  {
    cout.imbue(std::locale("")); 
    cout<<number<<endl;
  }
  else cout<<"Bad conversion of char * 534,768"<<'\n';
    
 //Conversion  double to string   
  double num2 =999.99;
  char *sznum2;
   
  if(convert<double,char *>(num2,sznum2)) cout<<sznum2<<endl ; 
  else cout<<"Bad conversion"<<'\n';
  getchar();
}

*/


#ifndef CONVERSIONS_H    
#define CONVERSIONS_H

#include <iostream>
#include <sstream>  //stringstream header
#include <locale>
//#include <vector>
using namespace std;

template<typename Source,typename Target >
bool convert(Source &arg,Target &result)
{
  stringstream interpreter;
  //for locale decimal separator reading
  interpreter.imbue(std::locale(""));
  

  if(
     !(interpreter << arg) ||
     !(interpreter>>result )  ||      
     !(interpreter >> std::ws).eof() 
     )
     
     return false;
    
     else return true; 
 
  
}


    

#endif
idea: perchè non uno stringstream per i dati ?
verloc è offline   Rispondi citando il messaggio o parte di esso
Old 21-07-2003, 11:39   #35
a2000
Bannato
 
L'Avatar di a2000
 
Iscritto dal: Jan 2001
Messaggi: 1976
Quote:
Originariamente inviato da verloc
clap clap clap (fatti: non parole)

grazie Cionci
...

lecchino.
a2000 è offline   Rispondi citando il messaggio o parte di esso
Old 21-07-2003, 11:41   #36
a2000
Bannato
 
L'Avatar di a2000
 
Iscritto dal: Jan 2001
Messaggi: 1976
e pur' fauz'

a2000 è offline   Rispondi citando il messaggio o parte di esso
Old 21-07-2003, 12:29   #37
a2000
Bannato
 
L'Avatar di a2000
 
Iscritto dal: Jan 2001
Messaggi: 1976
Quote:
Originariamente inviato da ilsensine
Potresti mantenere il numero di post inutili al di sotto di un ragionevole 5%?
tranquillo, vada per il 5% e non di più.
a2000 è offline   Rispondi citando il messaggio o parte di esso
Old 21-07-2003, 14:35   #38
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 verloc
Dai una occhiata a questo ( testalo e dimmi che ne pensi )
Dovrebbe andare bene... Comunque non sono un'aquila su queste cose... Ad esempio stringstream è la prima volta che la vedo !!!
Comunque il modo che hai usato per fare la conversione è molto simile a quello che ho usato io per dare una riga inserita dallo stdin in pasto all'operatore >> della classe database...

Insomma a2000, ma questo programma ?
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 21-07-2003, 14:51   #39
verloc
Senior Member
 
L'Avatar di verloc
 
Iscritto dal: Jan 2000
Messaggi: 551
Quote:
Originariamente inviato da a2000
lecchino.
:P

si però lui ce l'ha fatto vedere...tu no perchè ce l'hai PICCOLO
verloc è offline   Rispondi citando il messaggio o parte di esso
Old 21-07-2003, 14:58   #40
verloc
Senior Member
 
L'Avatar di verloc
 
Iscritto dal: Jan 2000
Messaggi: 551
Quote:
Potresti mantenere il numero di post inutili al di sotto di un ragionevole 5%?
non so perchè,ma anch'io... mi sento coinvolto.
"Chi va con lo zoppo..."


mi darò una regolata.
verloc è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Motorola edge 70 Fusion FIFA World Cup 26 Edition: un ottimo smartphone per i fan del calcio Motorola edge 70 Fusion FIFA World Cup 26 Editio...
Renault 5 elettrica al giudizio definitivo: solo stupore iniziale o premi meritati? Renault 5 elettrica al giudizio definitivo: solo...
HONOR CHOICE Projector Air Pro: piccolo, portatile e con Netflix HONOR CHOICE Projector Air Pro: piccolo, portati...
ASUS ProArt GoPro Edition è il notebook compatto per chi crea ASUS ProArt GoPro Edition è il notebook c...
Fable e Sol a confronto: due cartoni animati creati su un PC con RTX 3090 Fable e Sol a confronto: due cartoni animati cre...
Il Wi-Fi dell'hotel offre un aggiornamen...
Samsung Neo QLED 75'' a 895€ e il nuovo ...
Il Texas dice basta: migliaia di datacen...
Non si chiamerà Pixel Glow? Il nome uffi...
Torna Microsoft 365 Family a 89,99€: 12 ...
Nessuno sa davvero quanto rende l'AI: 30...
Galaxy S25 Edge a 499€ con fotocamera 20...
Apple ha già scelto la data di presentaz...
Musk lo dice chiaro: 'Sono le GPU miglio...
"E se parlassi con i tuoi figli?&qu...
Il nuovo 100-400mm Sony costa 900 euro: ...
I rimborsi dei dazi finiscono ai clienti...
Ricavi mai così alti per AMD: c'&...
Microsoft Bug Bounty: staccati 20 milion...
Insta360 X6 in arrivo il 12 agosto: pubb...
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: 08:40.


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