Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Roborock Qrevo Curv 2 Flow: ora lava con un rullo
Roborock Qrevo Curv 2 Flow: ora lava con un rullo
Qrevo Curv 2 Flow è l'ultima novità di casa Roborock per la pulizia di casa: un robot completo, forte di un sistema di lavaggio dei pavimenti basato su rullo che si estende a seguire il profilo delle pareti abbinato ad un potente motore di aspirazione con doppia spazzola laterale
Alpine A290 alla prova: un'auto bella che ti fa innamorare, con qualche limite
Alpine A290 alla prova: un'auto bella che ti fa innamorare, con qualche limite
Abbiamo guidato per diversi giorni la Alpine A290, la prima elettrica del nuovo corso della marca. Non è solo una Renault 5 sotto steroidi, ha una sua identità e vuole farsi guidare
Recensione HONOR Magic 8 Lite: lo smartphone indistruttibile e instancabile
Recensione HONOR Magic 8 Lite: lo smartphone indistruttibile e instancabile
Abbiamo provato a fondo il nuovo Magic 8 Lite di HONOR, e per farlo siamo volati fino a Marrakech , dove abbiamo testato la resistenza di questo smartphone in ogni condizione possibile ed immaginabile. Il risultato? Uno smartphone praticamente indistruttibile e con un'autonomia davvero ottima. Ma c'è molto altro da sapere su Magic 8 Lite, ve lo raccontiamo in questa recensione completa.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 11-11-2013, 18:45   #1
g0t3nk5
Member
 
Iscritto dal: Oct 2005
Città: AP
Messaggi: 168
Linguaggi di programmazione con tipi statici

Sto studiando per un'esame sui linguaggi di programmazione. Mi sono imbattuto in questa domanda..

Si consideri il seguente frammento in uno pseudolinguaggio con tipi statici, dove f e una certa funzione di due argomenti:

int i,j;
float y,z;
y = f(i,j);
z = f(y,i);

Si fornisca (i) una possibile intestazione per la funzione f e (ii) le ipotesi che occorre fare sul sistema di tipi dello pseudolinguaggio anche l'intestazione data in (i) sia corretta.


La prima risposta che mi viene in mente è che se il linguaggio supporta funzioni polimorfe, potrei semplicemente avere una funzione f così definita:

float f(<T1> param1, <T2> param2)

__________________
The Grand essentials of happiness are: something to do, something to love, and something to hope for.

Ultima modifica di g0t3nk5 : 12-11-2013 alle 02:59.
g0t3nk5 è offline   Rispondi citando il messaggio o parte di esso
Old 12-11-2013, 10:13   #2
Riordian
Senior Member
 
L'Avatar di Riordian
 
Iscritto dal: Mar 2006
Città: Genova
Messaggi: 2457
cavolo la teoria è anni che non la vedo in questi termini... tieni conto di una cosa. A una funzione che richiede float puoi passare degli int quindi la firma
potrebbe essere benissimo float f(float paramA, float paramB) e funzionare tranquillamente
__________________
tag XBOX live Aldair74
Nick PSNRiordian
Affari conclusi con: Anf3t4m1n Krocca magomagnani amoredipippa mone_82 raszagale bizzy89 Andrew_db
Riordian è offline   Rispondi citando il messaggio o parte di esso
Old 12-11-2013, 10:38   #3
Oceans11
Senior Member
 
L'Avatar di Oceans11
 
Iscritto dal: Sep 2005
Città: Torino
Messaggi: 606
Quote:
tieni conto di una cosa. A una funzione che richiede float puoi passare degli int quindi la firma potrebbe essere benissimo float f(float paramA, float paramB) e funzionare tranquillamente
in realtà potrebbe anche essere:
int f (int paramA, int paramB)
come pure:
double f (double paramA, double paramB)
e ogni possibile combinazione di tipi numerici dei parametri e del valore di ritorno.
In alcuni casi perdi precisione o avrai troncamento, in altri "sprechi" memoria.

Mentre non credo che tu possa usare tipi parametrici, vista la tipizzazione statica.
__________________
"Se proprio dovete piratare un prodotto, preferiamo che sia il nostro piuttosto che quello di qualcun altro." [Jeff Raikes]
"Pirating software? Choose Microsoft!"
Oceans11 è offline   Rispondi citando il messaggio o parte di esso
Old 12-11-2013, 11:36   #4
Riordian
Senior Member
 
L'Avatar di Riordian
 
Iscritto dal: Mar 2006
Città: Genova
Messaggi: 2457
Quote:
Originariamente inviato da Oceans11 Guarda i messaggi
in realtà potrebbe anche essere:
int f (int paramA, int paramB)
come pure:
double f (double paramA, double paramB)
e ogni possibile combinazione di tipi numerici dei parametri e del valore di ritorno.
In alcuni casi perdi precisione o avrai troncamento, in altri "sprechi" memoria.

Mentre non credo che tu possa usare tipi parametrici, vista la tipizzazione statica.
non penso che in questo caso gli convenga fare una cosa del genere perchè, come dici giustamente anche te, avresti perdita dei dati. A un int non puoi passare float a meno di cast, il compilatore darebbe un errore o comunque, anche se il compilatore facesse dei cast impliciti e non ti desse errore (con c# per esempio non compila proprio comunque, appena provato), perderesti info sul dato. Per esempio se passi un float 3.5 a un int questo legge 3 e perdi info. Visto che questa è la domanda di un test secondo me meglio non fare una cosa del genere
__________________
tag XBOX live Aldair74
Nick PSNRiordian
Affari conclusi con: Anf3t4m1n Krocca magomagnani amoredipippa mone_82 raszagale bizzy89 Andrew_db

Ultima modifica di Riordian : 12-11-2013 alle 11:44.
Riordian è offline   Rispondi citando il messaggio o parte di esso
Old 12-11-2013, 12:04   #5
Oceans11
Senior Member
 
L'Avatar di Oceans11
 
Iscritto dal: Sep 2005
Città: Torino
Messaggi: 606
Quote:
Originariamente inviato da Riordian Guarda i messaggi
non penso che in questo caso gli convenga fare una cosa del genere perchè, come dici giustamente anche te, avresti perdita dei dati. A un int non puoi passare float a meno di cast, il compilatore darebbe un errore o comunque, anche se il compilatore facesse dei cast impliciti e non ti desse errore (con c# per esempio non compila proprio comunque, appena provato), perderesti info sul dato. Per esempio se passi un float 3.5 a un int questo legge 3 e perdi info. Visto che questa è la domanda di un test secondo me meglio non fare una cosa del genere
Codice:
#include <stdio.h>

int f (int paramA, int paramB) {
	return paramA+paramB;
}

int main(int argc, char *argv[]) {
	float a = 5.5f;
	float b = 6.6f;
	printf("somma: %d\n", f(a,b));
	
	return 0;
}
codice stupido, tanto per provare.
compilato con
Codice:
gcc -Wall -pedantic -o test test.c
neanche un warning. Dà il risultato che mi aspettavo senza cast.
gcc 4.8.2

tra l'altro c# permette i generici, non credo sia un linguaggio fortemente tipizzato
__________________
"Se proprio dovete piratare un prodotto, preferiamo che sia il nostro piuttosto che quello di qualcun altro." [Jeff Raikes]
"Pirating software? Choose Microsoft!"

Ultima modifica di Oceans11 : 12-11-2013 alle 12:06. Motivo: typo
Oceans11 è offline   Rispondi citando il messaggio o parte di esso
Old 12-11-2013, 12:47   #6
Riordian
Senior Member
 
L'Avatar di Riordian
 
Iscritto dal: Mar 2006
Città: Genova
Messaggi: 2457
Quote:
Originariamente inviato da Oceans11 Guarda i messaggi
Codice:
#include <stdio.h>

int f (int paramA, int paramB) {
	return paramA+paramB;
}

int main(int argc, char *argv[]) {
	float a = 5.5f;
	float b = 6.6f;
	printf("somma: %d\n", f(a,b));
	
	return 0;
}
codice stupido, tanto per provare.
compilato con
Codice:
gcc -Wall -pedantic -o test test.c
neanche un warning. Dà il risultato che mi aspettavo senza cast.
gcc 4.8.2

tra l'altro c# permette i generici, non credo sia un linguaggio fortemente tipizzato

guarda ho provato, una cosa del genere o la casto o non compila. E il risultato che mi darebbe è 11 invece di 12.1.
__________________
tag XBOX live Aldair74
Nick PSNRiordian
Affari conclusi con: Anf3t4m1n Krocca magomagnani amoredipippa mone_82 raszagale bizzy89 Andrew_db
Riordian è offline   Rispondi citando il messaggio o parte di esso
Old 12-11-2013, 12:49   #7
Oceans11
Senior Member
 
L'Avatar di Oceans11
 
Iscritto dal: Sep 2005
Città: Torino
Messaggi: 606
Quote:
Originariamente inviato da Riordian Guarda i messaggi
guarda ho provato, una cosa del genere o la casto o non compila. E il risultato che mi darebbe è 11 invece di 12.1.
11 è il risultato che mi aspetto infatti. Il problema della compilazione starà nel compilatore che usi. Qual'è?
__________________
"Se proprio dovete piratare un prodotto, preferiamo che sia il nostro piuttosto che quello di qualcun altro." [Jeff Raikes]
"Pirating software? Choose Microsoft!"
Oceans11 è offline   Rispondi citando il messaggio o parte di esso
Old 12-11-2013, 12:53   #8
Oceans11
Senior Member
 
L'Avatar di Oceans11
 
Iscritto dal: Sep 2005
Città: Torino
Messaggi: 606
wikipedia

Gli ultimi due punti dell'elenco:
Quote:
* Le sole conversioni implicite consentite sono quelle "safe", ovvero che non espongono al rischio di perdita di dati causata dalla diversa tipologia di dato. Ad esempio non sono consentite conversioni implicite fra integer e boolean o fra enumerati ed integer.
* C# non possiede i "template" (tipici del C++), ma nella versione 2.0 sono stati introdotti i "generic".
alla luce di questo dicevo che c# non ha tipizzazione statica, quindi non è questo il caso. In c89 invece si può fare, se sai cosa stai facendo.
__________________
"Se proprio dovete piratare un prodotto, preferiamo che sia il nostro piuttosto che quello di qualcun altro." [Jeff Raikes]
"Pirating software? Choose Microsoft!"
Oceans11 è offline   Rispondi citando il messaggio o parte di esso
Old 12-11-2013, 13:08   #9
Riordian
Senior Member
 
L'Avatar di Riordian
 
Iscritto dal: Mar 2006
Città: Genova
Messaggi: 2457
Quote:
Originariamente inviato da Oceans11 Guarda i messaggi
wikipedia

Gli ultimi due punti dell'elenco:


alla luce di questo dicevo che c# non ha tipizzazione statica, quindi non è questo il caso. In c89 invece si può fare, se sai cosa stai facendo.
è proprio questo il punto, troppi rischi per farlo secondo me. Sono pochi i casi in cui sei assolutamente sicuro che una chiamata del genere non provochi danni all'applicazione.
__________________
tag XBOX live Aldair74
Nick PSNRiordian
Affari conclusi con: Anf3t4m1n Krocca magomagnani amoredipippa mone_82 raszagale bizzy89 Andrew_db
Riordian è offline   Rispondi citando il messaggio o parte di esso
Old 12-11-2013, 13:19   #10
Riordian
Senior Member
 
L'Avatar di Riordian
 
Iscritto dal: Mar 2006
Città: Genova
Messaggi: 2457
Quote:
Originariamente inviato da Oceans11 Guarda i messaggi
wikipedia

Gli ultimi due punti dell'elenco:


alla luce di questo dicevo che c# non ha tipizzazione statica, quindi non è questo il caso. In c89 invece si può fare, se sai cosa stai facendo.

http://msdn.microsoft.com/it-it/library/ms173105%28v=vs.90%29.aspx
__________________
tag XBOX live Aldair74
Nick PSNRiordian
Affari conclusi con: Anf3t4m1n Krocca magomagnani amoredipippa mone_82 raszagale bizzy89 Andrew_db
Riordian è offline   Rispondi citando il messaggio o parte di esso
Old 12-11-2013, 13:22   #11
Oceans11
Senior Member
 
L'Avatar di Oceans11
 
Iscritto dal: Sep 2005
Città: Torino
Messaggi: 606
Quote:
Originariamente inviato da Riordian Guarda i messaggi
è proprio questo il punto, troppi rischi per farlo secondo me. Sono pochi i casi in cui sei assolutamente sicuro che una chiamata del genere non provochi danni all'applicazione.
Posso essere d'accordo, ma al quesito "si fornisca una possibile intestazione per la funzione f" non mi sento di escludere anche queste. Sono quantomeno da considerare, anche per sottolineare il comportamento di un linguaggio staticamente tipizzato e dei suoi compilatori.

Detto questo, personalmente, tra le varie risposte poi, sceglierei quella che procuri meno problemi.

ps: grazie per il link, devo non aver capito le differenze tra staticamente tipizzato e le conversioni di tipo.
__________________
"Se proprio dovete piratare un prodotto, preferiamo che sia il nostro piuttosto che quello di qualcun altro." [Jeff Raikes]
"Pirating software? Choose Microsoft!"

Ultima modifica di Oceans11 : 12-11-2013 alle 13:26. Motivo: edit
Oceans11 è offline   Rispondi citando il messaggio o parte di esso
Old 12-11-2013, 13:29   #12
Riordian
Senior Member
 
L'Avatar di Riordian
 
Iscritto dal: Mar 2006
Città: Genova
Messaggi: 2457
Quote:
Originariamente inviato da Oceans11 Guarda i messaggi
Posso essere d'accordo, ma al quesito "si fornisca una possibile intestazione per la funzione f" non mi sento di escludere anche queste. Sono quantomeno da considerare, anche per sottolineare il comportamento di un linguaggio staticamente tipizzato e dei suoi compilatori.

Detto questo, personalmente, tra le varie risposte poi, sceglierei quella che procuri meno problemi.
Questo è sicuro,
Di nulla per il link servirà anche al ragazzo che ha aperto il post magari che si sarà perso nelle nostre discussioni
Riordian è offline   Rispondi citando il messaggio o parte di esso
Old 12-11-2013, 13:33   #13
Oceans11
Senior Member
 
L'Avatar di Oceans11
 
Iscritto dal: Sep 2005
Città: Torino
Messaggi: 606
ok, in realtà non avevo proprio capito una mazza!

per tipizzazione statica si intende che il tipo di una variabile è deciso a compile time.
c, java, c#, c++ vs javascript (ad esempio) o python.
(Non riesco ad ogni modo a spiegarmi i generici e i template, o il polimorfismo)

le conversioni (implicite ed esplicite) dipendono dunque dal compilatore e linguaggio, a prescindere dalla tipizzazione.

@g0t3nk5: sorry per il leggero OT, spero sia stato utile.
__________________
"Se proprio dovete piratare un prodotto, preferiamo che sia il nostro piuttosto che quello di qualcun altro." [Jeff Raikes]
"Pirating software? Choose Microsoft!"
Oceans11 è offline   Rispondi citando il messaggio o parte di esso
Old 12-11-2013, 13:34   #14
vendettaaaaa
Senior Member
 
L'Avatar di vendettaaaaa
 
Iscritto dal: Jan 2012
Messaggi: 1267
Quote:
Originariamente inviato da Oceans11 Guarda i messaggi
tra l'altro c# permette i generici, non credo sia un linguaggio fortemente tipizzato
I generici sono come i template del C++ dal punto di vista della tipizzazione, che rimane forte e statica. C# è anche più tipizzato di C++ perchè non permette appunto di assegnare un double ad un int senza cast esplicito, cosa permessa in C++ perchè si porta dietro la retrocompatibilità col C.
vendettaaaaa è offline   Rispondi citando il messaggio o parte di esso
Old 12-11-2013, 13:39   #15
Oceans11
Senior Member
 
L'Avatar di Oceans11
 
Iscritto dal: Sep 2005
Città: Torino
Messaggi: 606
Quote:
Originariamente inviato da vendettaaaaa Guarda i messaggi
I generici sono come i template del C++ dal punto di vista della tipizzazione, che rimane forte e statica. C# è anche più tipizzato di C++ perchè non permette appunto di assegnare un double ad un int senza cast esplicito, cosa permessa in C++ perchè si porta dietro la retrocompatibilità col C.
e la questione del polimorfismo?
__________________
"Se proprio dovete piratare un prodotto, preferiamo che sia il nostro piuttosto che quello di qualcun altro." [Jeff Raikes]
"Pirating software? Choose Microsoft!"
Oceans11 è offline   Rispondi citando il messaggio o parte di esso
Old 12-11-2013, 13:47   #16
Riordian
Senior Member
 
L'Avatar di Riordian
 
Iscritto dal: Mar 2006
Città: Genova
Messaggi: 2457
Quote:
Originariamente inviato da Oceans11 Guarda i messaggi
e la questione del polimorfismo?
non sono un bravo prof per cui ti passo un link

http://msdn.microsoft.com/it-it/library/ms173152.aspx

poi io mi ricordo che anche l'overload era una tecnica per il polimorfismo oltre l'override

http://msdn.microsoft.com/it-it/libr...vs.100%29.aspx
__________________
tag XBOX live Aldair74
Nick PSNRiordian
Affari conclusi con: Anf3t4m1n Krocca magomagnani amoredipippa mone_82 raszagale bizzy89 Andrew_db

Ultima modifica di Riordian : 12-11-2013 alle 13:51.
Riordian è offline   Rispondi citando il messaggio o parte di esso
Old 12-11-2013, 14:08   #17
vendettaaaaa
Senior Member
 
L'Avatar di vendettaaaaa
 
Iscritto dal: Jan 2012
Messaggi: 1267
Quote:
Originariamente inviato da Oceans11 Guarda i messaggi
e la questione del polimorfismo?
Parli di ereditarietà. Il polimorfismo è una conseguenza dell'ereditarietà.
E' una cosa necessaria perchè altrimenti si escluderebbe una grossa fetta di problemi risolvibili con il linguaggio.
Semplicemente: in alcuni casi non è in alcun modo possibile stabilire a compile time il tipo di oggetti che saranno utilizzati nel programma. Ad esempio, se il programma chiede all'utente di riempire un array di forme geometriche con triangoli, quadrati, cerchi a suo piacimento.
Tieni conto però che ereditarietà non significa mancanza di tipizzazione. Il tuo programma in C++/C#/Java eccetera dovrà maneggiare, nel senso che allocherà, puntatori alla classe base, ad esempio "FormaGeometrica", e poi assegnerà a questi puntatori oggetti di classe derivata,
FormaGeometrica* forma = new Cerchio(raggio);
allocati dinamicamente nella heap. Quindi non farti ingannare: la tipizzazione è cmq statica, perchè a compile time sai che nella stack allocherai memoria per tenere un puntatore a FormaGeometrica, e solo a runtime assegnerai un oggetto a quel puntatore.
Il polimorfismo è una conseguenza: a prescindere dal fatto che la tua forma geometrica sia un cerchio o un rettangolo, ad un certo punto nel codice vorrai calcolarne l'area. Però il tuo codice viene compilato prima di sapere cosa maneggerai, e quindi devi metterci una funzione che vada bene per tutte le possibili forme geometriche. Allora si stabilisce un'interfaccia comune alle forme geometriche, cioè che ogni oggetto che deriva dalla classe base abbia dei metodi con lo stesso nome, cosicchè il codice scritto a compile time sia valido, ma poi a runtime venga chiamata la versione "specializzata" per quella particolare forma geometrica in modo automatico. Il polimorfismo significa questo: stesso nome della funzione (o metodo) per tutte le classi che derivano da, e quindi hanno proprietà in comune con, una classe base più generica, ma comportamento diverso in base alla vera natura dell'oggetto di quella classe (nell'esempio, cambia la formula con cui si vuole calcolare l'area).

Ultima modifica di vendettaaaaa : 12-11-2013 alle 14:11.
vendettaaaaa è offline   Rispondi citando il messaggio o parte di esso
Old 12-11-2013, 14:44   #18
Oceans11
Senior Member
 
L'Avatar di Oceans11
 
Iscritto dal: Sep 2005
Città: Torino
Messaggi: 606
Quote:
Originariamente inviato da vendettaaaaa Guarda i messaggi
Parli di ereditarietà. Il polimorfismo è una conseguenza dell'ereditarietà.
Tieni conto però che ereditarietà non significa mancanza di tipizzazione. Il tuo programma in C++/C#/Java eccetera dovrà maneggiare, nel senso che allocherà, puntatori alla classe base [...] allocati dinamicamente nella heap.
Quindi non farti ingannare: la tipizzazione è cmq statica, perchè a compile time sai che nella stack allocherai memoria per tenere un puntatore.
perfetto, non potevo chiedere di meglio.
__________________
"Se proprio dovete piratare un prodotto, preferiamo che sia il nostro piuttosto che quello di qualcun altro." [Jeff Raikes]
"Pirating software? Choose Microsoft!"
Oceans11 è offline   Rispondi citando il messaggio o parte di esso
Old 12-11-2013, 14:58   #19
g0t3nk5
Member
 
Iscritto dal: Oct 2005
Città: AP
Messaggi: 168
Vi ringrazio a tutti delle risposte, non mi aspettavo una discussione così accesa.

Ne approfitto per porre un altro quesito sempre sulla tipizzazione.

Si consideri il seguente frammento di codice Java, dove A e B sono due classi diverse, di tipo non confrontabile:

A[] as = new A[10];
Object[] ao = as;
B[0] = new B();

Si dica se il precedente frammento e corretto oppure no dal punto di vista dei tipi.


Sulla terza riga, ovvero l'assegnamento di B[0], non c'è un errore in quanto l'array B non eiste/non è stato inizializzato???

Un'altra domanda che mi ha messo in difficoltà è questa:

Nello scope delle dichiarazioni:

int n;
string s;
int g(int x, real y){...}

si consideri l'espressione

g(f(n), f(s))

Si diano ipotesi sul linguaggio e/o sul nome f anche tale espressione sia correttamente tipizzata.


A differenza della prima domanda del thread in questo caso una variabile è numerica e l'altra di tipo string, che non sono tipi compatibili tra loro (nel senso che non credo che il compilatore farebbe cast implicito).

Grazie di nuovo.
__________________
The Grand essentials of happiness are: something to do, something to love, and something to hope for.

Ultima modifica di g0t3nk5 : 12-11-2013 alle 15:13.
g0t3nk5 è offline   Rispondi citando il messaggio o parte di esso
Old 12-11-2013, 15:01   #20
Riordian
Senior Member
 
L'Avatar di Riordian
 
Iscritto dal: Mar 2006
Città: Genova
Messaggi: 2457
Quote:
Originariamente inviato da g0t3nk5 Guarda i messaggi
Vi ringrazio a tutti delle risposte, non mi aspettavo una discussione così accesa.

Grazie di nuovo.
ala fine di tutto la firma della funzione da utilizzare secondo me è questa:

float f(float paramA, float paramB)
a cui puoi passare sia float che int con tipizzazione statica
__________________
tag XBOX live Aldair74
Nick PSNRiordian
Affari conclusi con: Anf3t4m1n Krocca magomagnani amoredipippa mone_82 raszagale bizzy89 Andrew_db
Riordian è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Roborock Qrevo Curv 2 Flow: ora lava con un rullo Roborock Qrevo Curv 2 Flow: ora lava con un rull...
Alpine A290 alla prova: un'auto bella che ti fa innamorare, con qualche limite Alpine A290 alla prova: un'auto bella che ti fa ...
Recensione HONOR Magic 8 Lite: lo smartphone indistruttibile e instancabile Recensione HONOR Magic 8 Lite: lo smartphone ind...
Sony WF-1000X M6: le cuffie in-ear di riferimento migliorano ancora Sony WF-1000X M6: le cuffie in-ear di riferiment...
Snowflake porta l'IA dove sono i dati, anche grazie a un accordo con OpenAI Snowflake porta l'IA dove sono i dati, anche gra...
Arianespace potrebbe lanciare il primo r...
Google Pixel 10a disponibile al prezzo m...
Microsoft Copilot nei guai: email riserv...
AOC a 399€ su Amazon: QD-OLED 240 Hz e 0...
La Cina ha recuperato dal mare il primo ...
Boeing CST-100 Starliner: la NASA rende ...
hiop e TaDa uniscono le forze per trasfo...
Thermal Grizzly mostra il Ryzen 7 9850X3...
AMD Ryzen 'Olympic Ridge' Zen 6 per desk...
Donald Trump renderà pubbliche in...
Prezzo mai visto da mesi: ECOVACS DEEBOT...
Non solo S26, Samsung sta per lanciare a...
Windows 11 avrà a breve uno Speed...
Ask Intel: l'assistente IA che ti aiuta ...
Nasce Freedom.gov: il portale USA per 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: 23:33.


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