function Question (qname,
type,
qstring,
response,
corrects,
explan,
ifcorrect,ifwrong,ifnull,
img)
{this.qname=qname;
this.type=type;
this.qstring=qstring;
this.response=response;
this.corrects=corrects;
this.explan=explan;
this.ifcorrect=ifcorrect;
this.ifwrong=ifwrong;
this.ifnull=ifnull;
this.img=img;
}

resp=new Array("Generare segnali alternati","Generare tensioni continue","Visualizzare segnali elettrici","Misurare le resistenze")
corr=new Array("0","0","1","0")
quest001 = new Question(
"Domanda 1",
0,
"L'oscilloscopio è uno strumento che serve a:",
resp,
corr,
"",
5,
-1,
0,
"");

resp=new Array("Filamento, catodo, griglia, anodi, placche di deflessione, schermo.","Filamento, griglia, anodi, catodo, placche di deflessione, schermo.","Filamento, anodi, catodo, placche di deflessione, griglia, schermo.","Filamento, schermo, anodi, catodo, griglia, placche di deflessione")
corr=new Array("1","0","0","0")
quest002 = new Question(
"Domanda 2",
0,
"Nel cannone elettronico dell'oscilloscopio, nell'ordine si trovano:",
resp,
corr,
"",
5,
-1,
0,
"");

resp=new Array("Il catodo","L'anodo","La griglia","Il filamento")
corr=new Array("0","0","1","0")
quest003 = new Question(
"Domanda 3",
0,
"Sull'oscilloscopio, al potenziometro INTENSITY, è associata:&nbsp;&nbsp;&nbsp;",
resp,
corr,
"",
5,
-1,
0,
"");

resp=new Array("L'anodo","La griglia","Il catodo","Le placche di deflessione")
corr=new Array("1","0","0","0")
quest004 = new Question(
"Domanda 4",
0,
"Sull'oscilloscopio, al potenziometro FOCUS, è associato:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;",
resp,
corr,
"",
5,
-1,
0,
"");

resp=new Array("20","1000","2","1")
corr=new Array("0","0","1","0")
quest005 = new Question(
"Domanda 5",
0,
"Il commutatore della base dei tempi di un oscilloscopio è posto su 2 ms/div . IL numero di periodi visualizzati, per ogni divisione, di un segnale di 1 KHz, è uguale a:",
resp,
corr,
"",
5,
-1,
0,
"");

resp=new Array("Circuit Ray Tube","Circuit Ray Transmitter","Cathode Ray Transmitter","Cathode Ray Tube")
corr=new Array("0","0","0","1")
quest006 = new Question(
"Domanda 6",
0,
"Il termine C.R.T. è l'acronimo di:",
resp,
corr,
"",
5,
-1,
0,
"");

resp=new Array("E' uno strumento in grado di visualizzare contemporaneamente due forme d'onda","Non permette la visualizzazione di due tracce continue","E' un particolare tipo di oscilloscopio provvisto di due schermi","Nessuna delle altre risposte è esatta")
corr=new Array("1","0","0","0")
quest007 = new Question(
"Domanda 7",
0,
"Un oscilloscopio a doppia traccia:",
resp,
corr,
"",
5,
-1,
0,
"");

resp=new Array("Alle placche di deflessione verticali","Alle placche di deflessioni orizzontali","Alla coppia di anodi","Alla griglia di controllo")
corr=new Array("1","0","0","0")
quest008 = new Question(
"Domanda 8",
0,
"Il segnale esterno da visualizzare con l'oscilloscopio è applicato:",
resp,
corr,
"",
5,
-1,
0,
"");

resp=new Array("Agli anodi","Alle placche di deflessioni verticali","Alla griglia di controllo","Nessuna delle altre risposte è esatta")
corr=new Array("0","0","0","1")
quest009 = new Question(
"Domanda 9",
0,
"Nell'oscilloscopio, il segnale a dente di sega, è applicato:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;",
resp,
corr,
"",
5,
-1,
0,
"");

resp=new Array("Corrente","Tensione","Potenza","Resistenza")
corr=new Array("0","1","0","0")
quest010 = new Question(
"Domanda 10",
0,
"L'oscilloscopio è uno strumento di misura che consente la visualizzazione, in funzione del tempo, di qualsiasi segnale sotto forma di:",
resp,
corr,
"",
5,
-1,
0,
"");

resp=new Array("Generare il fascio di elettroni","Accellerare il fascio di elettroni","Focalizzare il fascio di elettroni","Tutte le altre risposte significative","Nessuna delle altre risposte significative")
corr=new Array("0","0","0","1","0")
quest011 = new Question(
"Domanda 11",
0,
"Il cannone elettronico dell' oscilloscopio consente di:",
resp,
corr,
"",
5,
-1,
0,
"");

resp=new Array("Interna","Esterna","Line","Tutte le altre risposte")
corr=new Array("0","0","0","1")
quest012 = new Question(
"Domanda 12",
0,
"In un oscilloscopio, la sorgente di trigger pu&ograve; essere:",
resp,
corr,
"",
5,
-1,
0,
"");

resp=new Array("AC","DC","GND","Tutte le altre risposte")
corr=new Array("0","1","0","0")
quest013 = new Question(
"Domanda 13",
0,
"In un oscilloscopio, per visualizzare segnali di piccola frequenza, il selettore d'ingresso deve essere posizionato sulla funzione:",
resp,
corr,
"",
5,
-1,
0,
"");

resp=new Array("Reticoli","Placche","Fosfori","Spot")
corr=new Array("0","0","1","0")
quest014 = new Question(
"Domanda 14",
0,
"In un oscilloscopio, la visualizzazione del fascio elettronico viene ottenuta per eccitazione di sostanze luminescenti, depositate sulla parte interna dello schermo, dette:",
resp,
corr,
"",
5,
-1,
0,
"");

resp=new Array("Vengono visualizzati segnali di piccola frequenza","Viene eliminata la eventuale componente continua del segnale","L'oscilloscopio funzione in doppia traccia","Il segnale di ingresso viene cortocircuitato a massa")
corr=new Array("0","1","0","0")
quest015 = new Question(
"Domanda 15",
0,
"In un oscilloscopio, con il selettore d'ingresso in posizione <b>AC </b>:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;",
resp,
corr,
"",
5,
-1,
0,
"");

resp=new Array("Variare il numero dei periodi del segnale visualizzato","Di spostare verticalmente l'immagine del segnale visualizzato","Di spostare orizzontalmente l'immagine del segnale visualizzato","Visualizzare i due canali contemporaneamente")
corr=new Array("0","1","0","0")
quest016 = new Question(
"Domanda 16",
0,
"In un oscilloscopio, la manopola <b><i>vertical (vertical shift)</i></b> permette di:",
resp,
corr,
"",
5,
-1,
0,
"");

resp=new Array("Segnale ad onda quadra","Segnale a dente di sega","Segnale di trigger","Segnale triangolare")
corr=new Array("0","0","1","0")
quest017 = new Question(
"Domanda 17",
0,
"In un oscilloscopio, il segnale che, sincronizzando tutti i segnali in gioco, permette di ottenere un'immagine stabile sullo schermo viene detto:",
resp,
corr,
"",
5,
-1,
0,
"");

resp=new Array("L'ampiezza del segnale visualizzato","Il numero dei periodi del segnale visualizzato","La frequenza del segnale applicato","Il tipo di segnale visualizzato")
corr=new Array("0","1","0","0")
quest018 = new Question(
"Domanda 18",
0,
"In un oscilloscopio, con il comando <b><i>Time/Div </i></b>si varia:",
resp,
corr,
"",
5,
-1,
0,
"");

resp=new Array("12 KHz","6 KHz","1,2 KHz","600 Hz")
corr=new Array("1","0","0","0")
quest019 = new Question(
"Domanda 19",
0,
"La frequenza del segnale rappresentato nell'oscilloscopio in figura è circa:",
resp,
corr,
"",
5,
-1,
0,
"12K-10Vpp.jpg");

resp=new Array("10 V","20 V","4 V","15 V")
corr=new Array("1","0","0","0")
quest020 = new Question(
"Domanda 20",
0,
"Il valore massimo ( V<sub>M </sub>) del segnale visualizzato nella figura ove compare il segnale sinusoidale (di altra domanda), &egrave;:",
resp,
corr,
"",
5,
-1,
0,
"");

resp=new Array("5 V","12 V","7 V","3 V")
corr=new Array("0","0","1","0")
quest021 = new Question(
"Domanda 21",
0,
"Il valore efficace ( V<sub>eff </sub>) del segnale visualizzato nella figura ove compare il segnale sinusoidale (di altra domanda), &egrave; circa :<br>",
resp,
corr,
"",
5,
-1,
0,
"");

resp=new Array("5 Khz","500 Hz","2500 Hz","Non si può calcolare")
corr=new Array("0","1","0","0")
quest022 = new Question(
"Domanda 22",
0,
"La frequenza del segnale rappresentato nell'oscilloscopio in figura è circa :",
resp,
corr,
"",
5,
-1,
0,
"500Hz-6Vpp.jpg");

resp=new Array("2 V","4 V","6 V","8 V")
corr=new Array("0","0","1","0")
quest023 = new Question(
"Domanda 23",
0,
"Il valore picco-picco ( V<sub>pp </sub>) del segnale visualizzato nella figura ove compare il segnale triangolare (di altra domanda), &egrave; circa :<br>",
resp,
corr,
"",
5,
-1,
0,
"");

resp=new Array("Variare la frequenza del segnale d' uscita","Variare l'ampiezza del segnale d'uscita","Aggiungere una componente continua al segnale d' uscita","Variare il tipo di segnale d'uscita")
corr=new Array("0","0","1","0")
quest024 = new Question(
"Domanda 24",
0,
"Il comando <b><i>offset&nbsp; </i></b>di un generatore di funzioni permette di:",
resp,
corr,
"",
5,
-1,
0,
"");

resp=new Array("Una linea luminosa orizzontale","Una traccia luminosa verticale","Il segnale applicato","Un segnale distorto")
corr=new Array("0","1","0","0")
quest025 = new Question(
"Domanda 25",
0,
"Escludendo il generatore a dente di sega di un oscilloscopio e applicando un segnale da visualizzare al suo ingresso verticale, sullo schermo comparirà:",
resp,
corr,
"",
5,
0,
0,
"");

questions = new Array (
quest001,quest002,quest003,quest004,quest005,quest006,quest007,quest008,quest009,quest010,quest011,quest012,quest013,quest014,quest015,quest016,quest017,quest018,quest019,quest020,quest021,quest022,quest023,quest024,quest025)

function doQuestion(quest)
{
var numdo;
var numord=eval(quest+1);
var i=-1, ii, type, myname, gadget;
type=questions[quest].type;
numdo=type>=3?1:questions[quest].response.length;
if (type<3) {
respcopy=new Array(numdo);corrcopy=new Array(numdo);
for (i=0; i<numdo; i++) respcopy[i]=questions[quest].response[i];
respcopy.sort(myrandom);
for (i=0; i<numdo; i++) {
for (ii=0; ii<numdo; ii++) {
if (respcopy[i]==questions[quest].response[ii]) {
corrcopy[i]=questions[quest].corrects[ii];break;}}}
questions[quest].response=respcopy;
questions[quest].corrects=corrcopy;}

document.writeln ("<a name=\""+questions[quest].qname+"\"></a>")
document.write("\n")
document.write("       ")
if (questions[quest].img!="") {
document.write("\n")
document.write("          <p><img border=\"0\" src=\"")
document.write(questions[quest].img)
document.write("\"></p>\n")
document.write("       ")
}
document.write("\n")
document.write("       <p><small><font face=\"Verdana,Arial\">")
document.write(numord)
document.write(". ")
document.writeln(questions[quest].qstring)
document.write("</font></small></p>\n")
document.write("       ")
for (i=0; i<numdo; i++) {
myname=questions[quest].qname;
gadget="radio";
if (type>=3) gadget="text";
else if (type==1) {
myname+="_"+(i<9?"0":"")+(i+1);
gadget="checkbox";}
document.write("\n")
document.write("          ")
document.write(" <input type="+gadget+" name=\""+myname);
if (type<3) document.write("\" value=\""+i+"\">\n")
else document.write("\" class=\"input\" value=\"\">\n")
document.write(" <small><font face=\"Verdana,Arial\">")
if (type<3) document.write(questions[quest].response[i]);
document.write("</font></small><br>\n")
document.write("       ")
}
document.write("\n")
document.write("    ")
}
function doTest() {
var count, i;
questions.sort(myrandom);
for (i=0; i<questions.length; i++) {
questions[i].qname="Domanda "+(i+1);}
count=questions.length;
for (i=0; i<count; i++) doQuestion(i);
}
function fill(s,l){
s=s+""
for (y=1;y<=l;y++)
if (s.length>=l) break; else s="0"+s;
return s
}
function CheckQName(wapf,ii,i,multi,selection){
var len;
if (!multi) return(wapf.elements[ii].name==questions[i].qname);
len=questions[i].qname.length;
if (wapf.elements[ii].name.substring(0,len)!=questions[i].qname) return false;
if (wapf.elements[ii].name.substring(len,len+1)!="_") return false;
if (eval(wapf.elements[ii].name.substring(len+1,len+3))==(selection+1)) return true;
return false;
}
function errore(uno,due,tre)
{
if (!errori) winr.document.write("<H3>Hai commesso i seguenti errori</H3>");
++errori;
winr.document.write("<p><b>"+uno+"</b><br>"+due+"<br>"+tre+"</p>");
}
function correct(wapf)
{
var i, ii, t, re, tmp, selection, multi, type, isnull, iswrong, iscorrect, evaluation=0, total=0, udat;
errori=0;
udat=new Array();
for (i=0, ii=0; i<wapf.elements.length; i++)
{tmp=wapf.elements[i];
if (tmp.name.substring(0,13)=="Quiz.UserData"){
t=tmp.name.substring(14,tmp.name.length);
re=new RegExp("_", "g");
t=t.replace(re," ");
udat[ii++]=t+": <i>"+tmp.value+"</i><br>";}}
winr=window.open('','wapres', 'titlebar=1,location=0,directories=0,menubar=1,toolbar=0,scrollbars=1,resizable=1,status=1')
winr.document.write("<html><head><title>Risultati</title><BASE target='_blank'></head><body bgcolor='#FFFFFF'><font face='Verdana, Arial'><table border=0 cellpadding=0 cellspacing=0 width='100%' bgcolor='#C0C0C0'><tr><td width='100%'><font face='Verdana, Arial' size=5 color='#FFFFFF'><b>&nbsp;Risultati</b></font></td></tr></table>")
now= new Date()
winr.document.write("<small><p>"+fill(now.getDate(),2)+"/"+fill((now.getMonth()+1),2)+"/"+now.getYear()+"&nbsp;&nbsp;"+fill(now.getHours(),2)+":"+fill(now.getMinutes(),2)+"</p>")
if (udat.length>0) {
winr.document.write("<b>Dati utente</b><br>\n");
for (i=0; i<udat.length; i++) winr.document.write(udat[i]);}

for (i=0; i<questions.length; i++) {
type=questions[i].type;
if (type==1) multi=1;
else multi=0;
isnull=true;
iscorrect=false;iswrong=false;
selection=0;
evaluation=0;
for (ii=0; ii<wapf.elements.length; ii++) {
if (CheckQName(wapf,ii,i,multi,selection)) {
if (type>=3 && wapf.elements[ii].value!="") {
isnull=false;
if (wapf.elements[ii].value.toLowerCase()==questions[i].corrects.toLowerCase()) iscorrect=true;
else iswrong=true;
++selection;}
else if (wapf.elements[ii].checked) {
if (isnull) isnull=false;
if (questions[i].corrects[selection]=="1") iscorrect=(iswrong==false)?true:false;
else {
iswrong=true;
if (multi) errore(questions[i].qname,"La casella  <i>"+questions[i].response[selection]+"</i>  non andava selezionata.",questions[i].explan)
}} else {
if (questions[i].corrects[selection]=="1") {
iswrong=true;
if (multi) errore(questions[i].qname,"La casella  <i>"+questions[i].response[selection]+"</i>  andava selezionata.",questions[i].explan);
}}
++selection;
}}
if (multi==false && (isnull || iswrong)) {
var okresp, z;
if (type>=3) okresp=questions[i].corrects;
else {
for (z=0; z<questions[i].corrects.length; z++) {
if (questions[i].corrects[z]==1) {
okresp=questions[i].response[z];
break;
}}}
errore(questions[i].qname,"La risposta corretta era <i>"+okresp+".</i>",questions[i].explan);
}
if (isnull) evaluation+=questions[i].ifnull;
else if (iswrong) evaluation+=questions[i].ifwrong;
else if (iscorrect) evaluation+=questions[i].ifcorrect;
total+=evaluation;}
if (errori) {var voc=(errori==1)?"e":"i";winr.document.write("<br><b>In totale hai commesso "+errori+" error"+voc+".</b>");}
else winr.document.write("<h3>Complimenti, non hai commesso alcun errore</h3>")
{var voc=(total==1)?"o":"i";winr.document.write("<br><b>Punteggio realizzato: "+total+" punt"+voc+".</b><br>");}

winr.document.write("</small><hr noshade><center><form>")
printest=(((navigator.appName=='Netscape') && (navigator.appVersion.charAt(0)>='4')) || (navigator.appVersion.lastIndexOf('MSIE 5') !=-1))? 'print()': 'alert("Questo pulsante funziona soltanto con Netscape Navigator 4 o Microsoft Internet Explorer 5 (o versioni successive). Per stampare con gli altri browser, seleziona il comando Stampa nel menu File.")'
winr.document.write("<input type='button' value='Stampa...' onClick='"+printest+"'>&nbsp;&nbsp;&nbsp;&nbsp;")
winr.document.write("<input type='button' value='Chiudi questa finestra' onClick='window.close()'></form></center>")
winr.document.write(aknw)
winr.document.close()
if (navigator.appVersion.lastIndexOf('MSIE 3') == -1) nomsie3=true
else nomsie3=false
if (nomsie3) winr.focus()
}
aknw="<br><p align='center'><small><small>Creato e gestito con <a title='Premi qui per visitare il sito di WebQuiz' href='http://www.smartlite.it/go.asp?OLDLO' target = '_blank'>SmartLite WebQuiz</a></small></small></p>"
function myrandom(a,b)
{
var rc;
do {rc=Math.floor(Math.random()*3)-1;} while (rc==2);
return(rc);
}

