lunedì 6 ottobre 2008
Prima implementazione del gioco del filetto
#include <stdio.h>
int board[10];
char simboli[3]={' ','X','O'};
int c;
void azzeraBoard();
void stampaBoard();
void mossaUmano();
void mossaComputer();
int vincitore();
int main() {
int i;
int finito=0;
int conta=0;
azzeraBoard();
stampaBoard();
c=0;
while (conta<9){
printf("conta=%d",conta);
mossaUmano();
conta++;
stampaBoard();
finito=vincitore();
if (finito==1)
break;
mossaComputer();
conta++;
stampaBoard();
finito=vincitore();
if (finito==1)
break;
}
if (c==0)
printf("il gioco è patto");
}
void azzeraBoard() {
int i;
for (i=1;i<10;i++) {
board[i]=0;
}
}
void stampaBoard(){
int i;
for (i=1;i<10;i++) {
if (i==1)
printf("\n___________________\n");
if ( (i==3)||(i==6)){
printf("%c", simboli[board[i]]);
printf("\n");
printf("--------\n");
} else
printf("%c |", simboli[board[i]]);
}
}
void mossaUmano(){
int numero;
int mossaGiusta=0;
while (mossaGiusta==0){
printf("\nfai la tua mossa, dammi il numero della casella");
scanf("%d",&numero);
if ((numero<1) || (numero>9) || (board[numero]>0)) {
mossaGiusta=0;
}
else {
mossaGiusta=1;
}
}
board[numero]=1;
}
void mossaComputer(){
int i;
for (i=1; i<10; i++){
if (board[i]==0) {
board[i]=2;
i=10;
}
}
}
int vincitore(){
int v=0;
if ((board[1]==board[2])&& (board[2]==board[3])&& (board[1]>0)){
v=1;
c=board[1];
}
if ((board[4]==board[5])&& (board[5]==board[6])&& (board[4]>0)){
v=1;
c=board[4];
}
if ((board[7]==board[8])&& (board[8]==board[9])&& (board[7]>0)){
v=1;
c=board[7];
}
if ((board[1]==board[4])&& (board[4]==board[7])&& (board[1]>0)){
v=1;
c=board[1];
}
if ((board[2]==board[5])&& (board[5]==board[8])&& (board[2]>0)){
v=1;
c=board[2];
}
if ((board[3]==board[6])&& (board[6]==board[9])&& (board[3]>0)){
v=1;
c=board[3];
}
if ((board[1]==board[5])&& (board[5]==board[9])&& (board[1]>0)){
v=1;
c=board[1];
}
if ((board[3]==board[5])&& (board[5]==board[7])&& (board[3]>0)){
v=1;
c=board[3];
}
printf("v=%d",v);
if (v==1) {
if (c==1)
printf("ha vinto l'umano");
if (c==2)
printf("ha vinto il computer");
}
return v;
}
giovedì 2 ottobre 2008
domenica 28 settembre 2008
Test di ingresso per la classe IVA liceo tecnico
- Le istruzioni del tipo "scrivi, write, display" sono istruzioni di __________________________,
- Le istruzioni di tipo "leggi, read, accept" sono istruzioni di__________________________ ,
- Associa alle tre frasi seguenti i corrispondenti simboli del flowchart
- a=b
- a=b
- a>b
- Leggi(a,b)
- stabilire quale è l'output del seguente programma, supponendo che da tastiera venga assegnato ad a il valore 2 e a b il valore 4
- main() {
int a;
scanf("%d",&a); a=____________
a++;
printf("%d",a);
}
- main() {
int a;
scanf("%d",&a); a=____________
a=a*a;
printf("%d",a);
}
- main() {
int a,b,s;
scanf("%d",&a); s=____________
scanf("%d",&b);
s=a+b;
printf("%d",s);
}
- In un programma C, per comunicare un risultato si utilizza l'istruzione ____________________
- In un programma C, per acquisire un dato si utilizza l'istruzione____________________
- Completa le frasi seguenti utilizzando una tra le parole elencate alla fine della domanda
- Un dato non numerico formato da più caratteri si chiama __________________________
- Un dato che cambia valore durante l'esecuzione del programma si dice ______________
- La codifica produce il programma __________________________
- Il linking produce il programma ______________________
- La compilazione produce il programma ____________________
- Un dato non numerico formato da più caratteri si chiama __________________________
"sorgente, istruzione, eseguibile, oggetto, statement, identificatore, variabile, stringa, costante"
- Un padre manda il figlio all'edicola per comprare il giornale e gli dà le seguenti istruzioni:
- Esci di casa
- Fermati all'edicola
- Paga con una banconota da 5 euro
- Fatti dare il resto di 4 euro
- Torna a casa
- Dammi il giornale
- Esci di casa
La descrizione è completa oppure manca qualche istruzione ? ______________________________
- indica l'output ______________________prodotto dall'esecuzione del seguente algoritmo:
- x ß0
a ß0
ESEGUI
aßa+1
xßx+5
scrivi(x)
RIPETI MENTRE a<=3
- indica l'output ______________________prodotto dall'esecuzione del seguente algoritmo:
- xß0
aß0
MENTRE a<3
x ßx+5
aßa+1
scrivi(x)
RIPETI
- quale valore scrive _________________con l'istruzione di output il seguente programma ?
- #include <stdio.h>
void Modifica(int y) {
y+=5;
}
int main (void) {
int x;
x=8;
Modifica(x);
printf("%d\n",x);
return 0;
}
- che cosa scrive in output _____________________________________ il seguente algoritmo ?
- Funzione Varia(a,b)
INIZIO
aßa+6
bßb+8
FINE funzione
MAIN
xß0
yß0
Varia(x,y)
Scrivi(x,y)
FINE main
- Funzione Varia(a,b)
------------------------------------------------------------------------------------------------------------------------punteggio delle risposte corrette in centesimi, supera la prova chi ha ottenuto >= 60/100:
1à3, 2à3, 3aà3, 3bà3, 3cà3 ; 4aà3, 4bà3, 4cà3, 5à4, 6à4, 7aà2, 7bà2, 7cà2, 7dà2, 7eà2, 8à8, 9à15, 10à15, 11à10, 12à10
