Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Recensione vivo X300 Pro: è ancora lui il re della fotografia mobile, peccato per la batteria
Recensione vivo X300 Pro: è ancora lui il re della fotografia mobile, peccato per la batteria
vivo X300 Pro rappresenta un'evoluzione misurata della serie fotografica del produttore cinese, con un sistema di fotocamere migliorato, chipset Dimensity 9500 di ultima generazione e l'arrivo dell'interfaccia OriginOS 6 anche sui modelli internazionali. La scelta di limitare la batteria a 5.440mAh nel mercato europeo, rispetto ai 6.510mAh disponibili altrove, fa storcere un po' il naso
Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'' per spingere gli handheld gaming PC al massimo
Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'' per spingere gli handheld gaming PC al massimo
Lenovo Legion Go 2 è la nuova handheld PC gaming con processore AMD Ryzen Z2 Extreme (8 core Zen 5/5c, GPU RDNA 3.5 16 CU) e schermo OLED 8,8" 1920x1200 144Hz. È dotata anche di controller rimovibili TrueStrike con joystick Hall effect e una batteria da 74Wh. Rispetto al dispositivo che l'ha preceduta, migliora ergonomia e prestazioni a basse risoluzioni, ma pesa 920g e costa 1.299€ nella configurazione con 32GB RAM/1TB SSD e Z2 Extreme
AWS re:Invent 2025: inizia l'era dell'AI-as-a-Service con al centro gli agenti
AWS re:Invent 2025: inizia l'era dell'AI-as-a-Service con al centro gli agenti
A re:Invent 2025, AWS mostra un’evoluzione profonda della propria strategia: l’IA diventa una piattaforma di servizi sempre più pronta all’uso, con agenti e modelli preconfigurati che accelerano lo sviluppo, mentre il cloud resta la base imprescindibile per governare dati, complessità e lock-in in uno scenario sempre più orientato all’hybrid cloud
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 19-01-2008, 11:10   #1
spideylover
Junior Member
 
L'Avatar di spideylover
 
Iscritto dal: Jan 2008
Messaggi: 11
[C] - Programmazione concorrente

Ciao bellissimi!!! Sono una ragazza che sta entrando nel mondo della programmazione. Conosco molto bene il C sotto Unix infatti uso Ubuntu 7.10 Gutsy Gibson. QUello che vorrei è se c'è qualcuno che è bravo in S.O. questa è una materia molto interessante ma sono in una montagna di merda......perchè entro il 22 mi sono accorta che dovevo svolgere da ieri fino al 22 quest'elaborato....mi sono sentita 0....non ho capito bene il concetto di semafori e monitor o meglio non ho capito come implementarli. Ho cercato su internet ma nulla di implementation in C. Potreste darmi una mano per favore?

La prof non è un granchè e non ci ha fornito nessun esempio neanche uno su come svolgere l'elaborato. Infatti ci ha spiegato come funzionano i semafori....e ci ha detto di usare i semafori con thread e monitor con thread....come si implementano? Chi mi può dare una dritta. Intanto vi allego il testo.

Ho trovato anche questo codice ma non so se modificandolo potrebbe andar bene per il progetto.....
eccolo qui:

Codice:
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <semaphore.h>
#include <pthread.h>

static sem_t s1,s2;

void *thread1(void *arg)
{
	int i;
	for (i=0;i<10;i++)
	{
	   sem_wait(&s1);
	   printf("Ping\n");
           sem_post(&s2);
        }
	printf("t1 exit\n");
	pthread_exit(0);
}

void *thread2(void *arg)
{
	int i;
	for (i=0;i<10;i++)
	{
	   sem_wait(&s2);
	   printf("Pong\n");
           sem_post(&s1);
        }
	printf("t2 exit\n");
	pthread_exit(0);
}

int main()
{
	pthread_t tid1,tid2;
        void *ret;
        
        sem_init(&s1,0,1);
	sem_init(&s2,0,0);

	if (pthread_create(&tid1,NULL,thread1,NULL) <0)
	{
		fprintf(stderr,"pthread_create error for thread 1\n");
		exit(1);
	}
	if (pthread_create(&tid2,NULL,thread2,NULL) <0)
	{
		fprintf(stderr,"pthread_create error for thread 2\n");
		exit(1);
	}
	
	pthread_join(tid1,&ret);
	pthread_join(tid2,&ret);

	printf("Exit\n");
}
Salvate il file in semthread.c

gcc -o semafori semthread.c -lpthread (Linkaggio librerire del pthread in UNix)

e vedrete che Padre e Figlio giocano a ping pong.....questo l'ho capito ma come si fa a svolgere il progetto?
VI supplico di aiutarmi....sono veramente preoccupata di non farcela....grazie
ciao ciao
Immagini allegate
File Type: pdf concorrenza.pdf (15.0 KB, 22 visite)
spideylover è offline   Rispondi citando il messaggio o parte di esso
Old 19-01-2008, 11:27   #2
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
I monitor in teoria non ci sono, almeno nella implementazione più diffusa dei meccanismi di concorrenza su Linux.
Esistono però le condition che sono la struttura di sincronizzazione che più si avvicina ai monitor: in pratica le condition lavorano su una mutex, prima di chiamare una wait su una condition bisogna acquisire la rispettiva mutex. Eseguendo la wait si rilascia la mutex permettendo ad altri thread in attesa su quella mutex di lavorare.
La condition garantisce che i thread che si bloccano su una data condition vengano risvegliati quando avviene una signal sulla condition con la proprietà della mutex.

Qui una spiegazione più dettagliata della wait: http://cs.pub.ro/~apc/2003/resources...e/users-78.htm
Ovviamente leggi anche quella delle altre funzioni.
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 20-01-2008, 17:06   #3
spideylover
Junior Member
 
L'Avatar di spideylover
 
Iscritto dal: Jan 2008
Messaggi: 11
io c'ho provato ma mi va in...

Ciao ragazzi l'appuntamento della consegna è stato spostato il 25!!!! Che grazie a dio!!! comunque ho provato a buttare giù una cosa del genere:

Codice:
#include <stdio.h>

#include <stdlib.h>

#include <unistd.h>

#include <pthread.h>

#include <semaphore.h>



#define NUM_AIUTANTI 5 //aiutanti

#define NUM_SLITTE 2 //slitte

#define NUM_RENNE 5 //renne sempre in numero pari


#define SPALATE 3

pthread_mutex_t prendi;  //mutex per acquisire i 2 tipi di risorse in mutua esclusione
pthread_mutex_t rilascia; //mutex per rilasciare i 2 tipi di risorse in mutua esclusione

pthread_mutex_t mutex;  //mutex utilizzato UNICAMENTE per l'accesso in mutua esclusione al buffer di output (per mantenere formattato l'output)


sem_t renne;   //semafori inizializzati a G

sem_t slitte;     //semafori inizializzati a P



void *aiutante(void *arg)

{

	int i;

	for(i=0; i<SPALATE; i++)

	{

			

		pthread_mutex_lock(&mutex);

		

		printf("\naiutante n. %d :bevo il caffe\'\n.",arg);   //BEVE IL CAFFE

		
		sleep(1);

		

		pthread_mutex_unlock(&mutex);



		pthread_mutex_lock(&prendi); 

		sem_wait(&renne); //afferra il guanto destro

		sem_wait(&renne); //afferra il guanto sinistro

		sem_wait(&slitte);   //afferra la slitta

		pthread_mutex_unlock(&prendi);  



		pthread_mutex_lock(&mutex);



		printf("\naiutante n. %d : Ho preso renne e slitta!! vado a slittare\n",arg);  //FA QUALCOSA (slitta)

		sleep(1);

		

		pthread_mutex_unlock(&mutex);





		pthread_mutex_lock(&rilascia); 


		sem_post(&renne); //rilascia il guanto destro

		sem_post(&renne); //rilascia il guanto sinistro

		sem_post(&slitte);   //rilascia la slitta


		pthread_mutex_unlock(&rilascia); 

	}

	pthread_exit(NULL);

}









int main()

{

	int i,creazione;

	void* ret;

	pthread_t aiutanti[NUM_AIUTANTI];


	pthread_mutex_init(&mutex,NULL); //INIZIALIZZO I SEMAFORI

	pthread_mutex_init(&prendi,NULL);

	pthread_mutex_init(&rilascia,NULL);


	sem_init(&renne,0,NUM_RENNE); 

	sem_init(&slitte,0,NUM_SLITTE);



	sleep(1);

	printf("           ORE 7:30\n\nGli aiutanti sono arrivati nel cortile e vanno tutti a prendersi un caffe\'\n\n");

	sleep(1);

	printf("Ci sono %d aiutanti, %d slitte e %d paia di renne\n\n", NUM_AIUTANTI, NUM_SLITTE+1, NUM_RENNE+1);

	sleep(1);

	


	for (i=1;i<NUM_AIUTANTI+1;i++) //CREO I THREAD

	{

		creazione = pthread_create(&aiutanti[i],NULL,aiutante,(void*)i);
		if (creazione)
		{
			printf("Error;return code from pthread_create() Is %d\n",creazione);
			exit(-1);
		}

	}



	for (i=1;i<NUM_AIUTANTI+1;i++)

	{

		pthread_join(aiutanti[i],&ret);

	}

	



	for (i=1; i<NUM_AIUTANTI+1; i++)

	{

        	sleep(1);

		printf("\naiutante n. %d :bevo il caffe\'\n.",i);

	}

	sleep(1);

	printf("\n           ORE 12.00\n\nPausa Pranzo, gli aiutanti se ne vanno in mensa\n");

	sleep(1);

	printf("\n           ORE 14.00\n\nEcco gli aiutanti di ritorno, ora un caffe\' e poi al lavoro!!\n");

	sleep(1);

	

	for (i=1;i<NUM_AIUTANTI+1;i++) //CREO I THREAD

	{

		creazione = pthread_create(&aiutanti[i],NULL,aiutante,(void*)i);
		if (creazione)
		{
			printf("Error;return code from pthread_CReate() Is %d\n",creazione);
			exit(-1);
		}

	}


	for (i=1;i<NUM_AIUTANTI+1;i++)

	{

		pthread_join(aiutanti[i],&ret);

	}



	

	for (i=1; i<NUM_AIUTANTI+1; i++)

	{

        	sleep(1);

		printf("\naiutante n. %d :bevo il caffe\'\n.",i);

	}

	

	printf("\n           ORE 17.00\n\nOTTIMO LAVORO!!\n\n La giornata e\' finita... gli aiutanti se ne tornano a casa!!\n\n");

	
	sleep(5);



	pthread_mutex_destroy(&mutex);   // DISTRUGGO TUTTI I SEMAFORI

	pthread_mutex_destroy(&prendi);

	pthread_mutex_destroy(&rilascia);

	sem_destroy(&renne);

	sem_destroy(&slitte);
	
	pthread_exit(NULL);



}

Ho provato a compilarlo. Ma dopo un pò mi va in Segmentation Fault(CORe dumped) che vuol dire? Non mi è mai capitata una roba simile...
Allora provate anche voi per credere:
:read: 

1) prendete il codice
2) salvatelo in aiutanti.c
3) sotto linux compilatelo con il comando gcc -o prova aiutanti.c -lptread

Funziona un pò stranamente ma fino ad un certo punto va in segmentation fault (core dumped)
Cos'è sta storia? Non riesco a capire che cosa intende per segmentation fault.....
Grazie a chi mi aiuta a capire da cosa è dovuto questo errore e interruzione del programma...
Ciao Ciao e BUona DOmenica!!!!
spideylover è offline   Rispondi citando il messaggio o parte di esso
Old 20-01-2008, 18:51   #4
maulattu
Senior Member
 
L'Avatar di maulattu
 
Iscritto dal: Mar 2005
Città: ~
Messaggi: 740
Quote:
Originariamente inviato da spideylover Guarda i messaggi
Ciao ragazzi l'appuntamento della consegna è stato spostato il 25!!!! Che grazie a dio!!! comunque ho provato a buttare giù una cosa del genere:

Codice:
#include <stdio.h>

#include <stdlib.h>

#include <unistd.h>

#include <pthread.h>

#include <semaphore.h>



#define NUM_AIUTANTI 5 //aiutanti

#define NUM_SLITTE 2 //slitte

#define NUM_RENNE 5 //renne sempre in numero pari


#define SPALATE 3

pthread_mutex_t prendi;  //mutex per acquisire i 2 tipi di risorse in mutua esclusione
pthread_mutex_t rilascia; //mutex per rilasciare i 2 tipi di risorse in mutua esclusione

pthread_mutex_t mutex;  //mutex utilizzato UNICAMENTE per l'accesso in mutua esclusione al buffer di output (per mantenere formattato l'output)


sem_t renne;   //semafori inizializzati a G

sem_t slitte;     //semafori inizializzati a P



void *aiutante(void *arg)

{

	int i;

	for(i=0; i<SPALATE; i++)

	{

			

		pthread_mutex_lock(&mutex);

		

		printf("\naiutante n. %d :bevo il caffe\'\n.",arg);   //BEVE IL CAFFE

		
		sleep(1);

		

		pthread_mutex_unlock(&mutex);



		pthread_mutex_lock(&prendi); 

		sem_wait(&renne); //afferra il guanto destro

		sem_wait(&renne); //afferra il guanto sinistro

		sem_wait(&slitte);   //afferra la slitta

		pthread_mutex_unlock(&prendi);  



		pthread_mutex_lock(&mutex);



		printf("\naiutante n. %d : Ho preso renne e slitta!! vado a slittare\n",arg);  //FA QUALCOSA (slitta)

		sleep(1);

		

		pthread_mutex_unlock(&mutex);





		pthread_mutex_lock(&rilascia); 


		sem_post(&renne); //rilascia il guanto destro

		sem_post(&renne); //rilascia il guanto sinistro

		sem_post(&slitte);   //rilascia la slitta


		pthread_mutex_unlock(&rilascia); 

	}

	pthread_exit(NULL);

}









int main()

{

	int i,creazione;

	void* ret;

	pthread_t aiutanti[NUM_AIUTANTI];


	pthread_mutex_init(&mutex,NULL); //INIZIALIZZO I SEMAFORI

	pthread_mutex_init(&prendi,NULL);

	pthread_mutex_init(&rilascia,NULL);


	sem_init(&renne,0,NUM_RENNE); 

	sem_init(&slitte,0,NUM_SLITTE);



	sleep(1);

	printf("           ORE 7:30\n\nGli aiutanti sono arrivati nel cortile e vanno tutti a prendersi un caffe\'\n\n");

	sleep(1);

	printf("Ci sono %d aiutanti, %d slitte e %d paia di renne\n\n", NUM_AIUTANTI, NUM_SLITTE+1, NUM_RENNE+1);

	sleep(1);

	


	for (i=1;i<NUM_AIUTANTI+1;i++) //CREO I THREAD

	{

		creazione = pthread_create(&aiutanti[i],NULL,aiutante,(void*)i);
		if (creazione)
		{
			printf("Error;return code from pthread_create() Is %d\n",creazione);
			exit(-1);
		}

	}



	for (i=1;i<NUM_AIUTANTI+1;i++)

	{

		pthread_join(aiutanti[i],&ret);

	}

	



	for (i=1; i<NUM_AIUTANTI+1; i++)

	{

        	sleep(1);

		printf("\naiutante n. %d :bevo il caffe\'\n.",i);

	}

	sleep(1);

	printf("\n           ORE 12.00\n\nPausa Pranzo, gli aiutanti se ne vanno in mensa\n");

	sleep(1);

	printf("\n           ORE 14.00\n\nEcco gli aiutanti di ritorno, ora un caffe\' e poi al lavoro!!\n");

	sleep(1);

	

	for (i=1;i<NUM_AIUTANTI+1;i++) //CREO I THREAD

	{

		creazione = pthread_create(&aiutanti[i],NULL,aiutante,(void*)i);
		if (creazione)
		{
			printf("Error;return code from pthread_CReate() Is %d\n",creazione);
			exit(-1);
		}

	}


	for (i=1;i<NUM_AIUTANTI+1;i++)

	{

		pthread_join(aiutanti[i],&ret);

	}



	

	for (i=1; i<NUM_AIUTANTI+1; i++)

	{

        	sleep(1);

		printf("\naiutante n. %d :bevo il caffe\'\n.",i);

	}

	

	printf("\n           ORE 17.00\n\nOTTIMO LAVORO!!\n\n La giornata e\' finita... gli aiutanti se ne tornano a casa!!\n\n");

	
	sleep(5);



	pthread_mutex_destroy(&mutex);   // DISTRUGGO TUTTI I SEMAFORI

	pthread_mutex_destroy(&prendi);

	pthread_mutex_destroy(&rilascia);

	sem_destroy(&renne);

	sem_destroy(&slitte);
	
	pthread_exit(NULL);



}

Ho provato a compilarlo. Ma dopo un pò mi va in Segmentation Fault(CORe dumped) che vuol dire? Non mi è mai capitata una roba simile...
Allora provate anche voi per credere:
:read: 

1) prendete il codice
2) salvatelo in aiutanti.c
3) sotto linux compilatelo con il comando gcc -o prova aiutanti.c -lptread

Funziona un pò stranamente ma fino ad un certo punto va in segmentation fault (core dumped)
Cos'è sta storia? Non riesco a capire che cosa intende per segmentation fault.....
Grazie a chi mi aiuta a capire da cosa è dovuto questo errore e interruzione del programma...
Ciao Ciao e BUona DOmenica!!!!
Ciao,
in C (e anche C++) devi fare mooooolta attenzione all'uso degli indici degli array.
ci sono array definiti come
pthread_t aiutanti[NUM_AIUTANTI];
cioè composti da NUM_AIUTANTI "celle" che vanno da 0 a NUM_AIUTANTI - 1. L'errore che hai commesso è nei cicli for che vanno da 1 a NUM_AIUTANTI. Devi farli partire da 0 e farli terminare a NUM_AIUTANTI - 1.
Ti dà il segmentation fault xkè il tuo programma ha sfondato in un'area di memoria non di sua competenza, alché il kernel è arrivato è gli ha spezzato le gambine
__________________
Ciao ciao cagnolino Billy
MacMini late 2009, 2.53GHz, 4GB ram, 320GB hard disk, Snow Leopard 10.8.2 - iPod Nano 6th gen.
XBOX Live GamerTag: InsaneMau
maulattu è offline   Rispondi citando il messaggio o parte di esso
Old 20-01-2008, 22:29   #5
spideylover
Junior Member
 
L'Avatar di spideylover
 
Iscritto dal: Jan 2008
Messaggi: 11
Quote:
Originariamente inviato da maulattu Guarda i messaggi
Ciao,
in C (e anche C++) devi fare mooooolta attenzione all'uso degli indici degli array.
ci sono array definiti come
pthread_t aiutanti[NUM_AIUTANTI];
cioè composti da NUM_AIUTANTI "celle" che vanno da 0 a NUM_AIUTANTI - 1. L'errore che hai commesso è nei cicli for che vanno da 1 a NUM_AIUTANTI. Devi farli partire da 0 e farli terminare a NUM_AIUTANTI - 1.
Ti dà il segmentation fault xkè il tuo programma ha sfondato in un'area di memoria non di sua competenza, alché il kernel è arrivato è gli ha spezzato le gambine

Quindi era solo quello l'errore? Sicuro?
L'hai provato? Io lo provo....Mi sento così insicura....boh adesso vedrò speriam bene....se no
spideylover è offline   Rispondi citando il messaggio o parte di esso
Old 21-01-2008, 00:54   #6
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 spieghi cosa sono le SPALATE che si trovano nel codice, mentre nel testo non c'è alcun riferimento ?
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 21-01-2008, 09:29   #7
spideylover
Junior Member
 
L'Avatar di spideylover
 
Iscritto dal: Jan 2008
Messaggi: 11
beh

beh mi sono sbagliata a lasciarlo perchè ne dovevo fare un'altro prima di questo provandolo con i monitor (ma da lo stesso errore ) ....e allora senza riscrivere tutto il codice l'ho copiato tutto e poi modificato. COmunque sia non
sento che non ce la farò....domani ho l'esame di programmazione in C....e entro il 25 è la consegna dell'elaborato...non riesco a fare tutto tutto...vedrò di dedicare il tempo a programmazione

Ultima modifica di spideylover : 21-01-2008 alle 09:32.
spideylover è offline   Rispondi citando il messaggio o parte di esso
Old 21-01-2008, 09:50   #8
spideylover
Junior Member
 
L'Avatar di spideylover
 
Iscritto dal: Jan 2008
Messaggi: 11
si è vero

ringrazio vivamente con un mega bacio alla francese a maulattu!!!!!!! Grazie Grazie Grazie!!!!!!!!!!!!!! Che che sono! Non ci avevo fatto caso......e poi i cicli però volevo partire da 1 perchè se no che centra aiutante 0?

Per cionci...lascia stare
bada a chiudere il topic!!!
spideylover è offline   Rispondi citando il messaggio o parte di esso
Old 21-01-2008, 09:57   #9
spideylover
Junior Member
 
L'Avatar di spideylover
 
Iscritto dal: Jan 2008
Messaggi: 11
EHm maulattu ehm bello l'avatar ma ho la sensazione che sia andato in Paradiso vero....povero cagnolino è anche così bello....mi dispiace per te....io ne ho uno bianco maltese che anche lui è vecchietto e mi dispiace molto che gli fa male tutte le ossette....si chiama Pepe....ciao ciao e grazie dell'aiuto.....
spideylover è offline   Rispondi citando il messaggio o parte di esso
Old 21-01-2008, 10:11   #10
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 spideylover Guarda i messaggi
beh mi sono sbagliata a lasciarlo perchè ne dovevo fare un'altro prima di questo provandolo con i monitor
Però non c'è solo il define, lo usi anche nel codice facendo fare tre cicli dentro al thread.
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 21-01-2008, 19:35   #11
maulattu
Senior Member
 
L'Avatar di maulattu
 
Iscritto dal: Mar 2005
Città: ~
Messaggi: 740
Quote:
Originariamente inviato da spideylover;
ringrazio vivamente con un mega bacio alla francese a maulattu
grazie

Quote:
Originariamente inviato da spideylover Guarda i messaggi
EHm maulattu ehm bello l'avatar ma ho la sensazione che sia andato in Paradiso vero....povero cagnolino è anche così bello....mi dispiace per te....io ne ho uno bianco maltese che anche lui è vecchietto e mi dispiace molto che gli fa male tutte le ossette....si chiama Pepe....ciao ciao e grazie dell'aiuto.....
Già... è passato a miglior vita nel luglio del 2006... era tanto bellino e coccolone
http://www.hwupgrade.it/forum/showthread.php?t=1238758


Fine OT
__________________
Ciao ciao cagnolino Billy
MacMini late 2009, 2.53GHz, 4GB ram, 320GB hard disk, Snow Leopard 10.8.2 - iPod Nano 6th gen.
XBOX Live GamerTag: InsaneMau
maulattu è offline   Rispondi citando il messaggio o parte di esso
Old 22-01-2008, 12:48   #12
spideylover
Junior Member
 
L'Avatar di spideylover
 
Iscritto dal: Jan 2008
Messaggi: 11
si ma il programma sembra non funzionare come dovrebbe. Sono in tilt. NOn capisco più niente. Oggi mi sono fatta prendere dalla paura per l'esame e credo di averlo bucato....comunque....non ho ben capito forse o meglio non ho ben implpementato bene i due elaborati...potreste darmi una mano urgente....in questi 2 giorni? VI chiedo solo una mano....non di +...grazie...


In allegato ci sono gli spalatori e il testo originale degli spalatori ce come vedrete è simile a quello che dovrei fare.

Il testo vel lo posto dopo sono di corsa per il treno
Allegati
File Type: zip Esempi.zip (2.6 KB, 3 visite)
File Type: gz Esempi.tar.gz (1.6 KB, 3 visite)
spideylover è offline   Rispondi citando il messaggio o parte di esso
Old 23-01-2008, 22:42   #13
spideylover
Junior Member
 
L'Avatar di spideylover
 
Iscritto dal: Jan 2008
Messaggi: 11
Il testo è uguale a quello di babbonatale ma solo che al posto degli spalatori in quelli dell'allegato. Grazie
Ciao Ciao Bellissimi sono triste....c'è solo domani.. e poi plz
spideylover è offline   Rispondi citando il messaggio o parte di esso
Old 24-01-2008, 16:27   #14
spideylover
Junior Member
 
L'Avatar di spideylover
 
Iscritto dal: Jan 2008
Messaggi: 11
spideylover è offline   Rispondi citando il messaggio o parte di esso
Old 24-01-2008, 16:57   #15
banryu79
Senior Member
 
L'Avatar di banryu79
 
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
Come è andata?
banryu79 è offline   Rispondi citando il messaggio o parte di esso
Old 24-01-2008, 19:41   #16
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
esprimo un significativo ROLLEYES: -->
71104 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Recensione vivo X300 Pro: è ancora lui il re della fotografia mobile, peccato per la batteria Recensione vivo X300 Pro: è ancora lui il...
Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'' per spingere gli handheld gaming PC al massimo Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'...
AWS re:Invent 2025: inizia l'era dell'AI-as-a-Service con al centro gli agenti AWS re:Invent 2025: inizia l'era dell'AI-as-a-Se...
Cos'è la bolla dell'IA e perché se ne parla Cos'è la bolla dell'IA e perché se...
BOOX Palma 2 Pro in prova: l'e-reader diventa a colori, e davvero tascabile BOOX Palma 2 Pro in prova: l'e-reader diventa a ...
La capsula SpaceX Dragon CRS-33 ha acces...
La NASA è sempre più vicin...
Crisi delle memorie: ASUS torna al passa...
Le console next-generation potrebbero es...
Gemini cresce ancora: la quota di mercat...
Samsung sfida TSMC: la capacità produtti...
Iliad alza il prezzo della fibra ottica ...
Il prossimo low cost di POCO sarà il più...
The Elder Scrolls VI: ecco le ultime sul...
Ecco i saldi di fine anno Amazon, 34 off...
iPhone Fold: scorte limitate al lancio m...
OpenAI porterà la pubblicità in ChatGPT ...
TSMC aumenterà ancora i prezzi: nel 2026...
Marvel pubblica anche il secondo teaser ...
Nuovo accordo tra xAI e il Pentagono: l'...
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:08.


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