...

Documentazione Classe Terza Informatica

by user

on
Category: Documents
10

views

Report

Comments

Transcript

Documentazione Classe Terza Informatica
Documentazione Classe Terza Informatica
E’ una descrizione, scritta, di come il programma dovrebbe lavorare e come dovrebbe essere usato.
Esterna (destinata all’utente finale)
Descrive, accuratamente il modo in cui si deve usare il programma, deve essere scritta in maniera
non tecnica e non deve contenere nessun particolare sul modo in cui opera.
1. INTESTAZIONE
• Finalità del programma.
• Indovinare il numero generato dal computer che simula il lancio di due
dadi. Il giocatore ha al massimo tre possibilità per indovinare il risultato
• Autore/i : Pinco – Pallino, Gruppo : grp3 A.S. : 2010/2011
• Data inizio :25/11/2011
Data Consegna: 27/11/2011
• Tempo stimato (ore) : 4
Tempo effettivo (ore): 2
• Responsabile del progetto: Pinco
2. Istruzioni d’uso.
• Modalità d’uso :
• Inserire il numero da indovinare considerando che si avranno al massimo
tre tentativi.
• Limitazioni dati d’ingresso:
• Il numero inserito dovrà essere compreso tra 2 e 12 ( somma massima e
minima che si può ottenere dal lancio dei due dadi.
• Interpretazione dell’output:
• Verrà visualizzato un messaggio che indicherà l’esito della scelta.
Interna (ad uso del programmatore)
In particolare avremo una documentazione interna che conterrà una descrizione accurata del modo
in cui operano i vari moduli del programma al fine di effettuare delle prove o modificarlo
successivamente.Tale tipo di documentazione può essere schematizzata nel modo seguente:
1. Comprensione del problema :
• Lanciando due dadi e facendo la somma dei valori usciti, questa non può essere
minore di 2 o maggiore di 12.
• Confrontare il numero inserito dall’utente con la somma dei dadi.
• Dare al massimo tre possibilità di soluzione.
2. Informazione I/O (Identificatore variabile,costanti,..,ecc., Tipo, Finalità)
Nome
Dado1
Dadao2
scelta
somma
trovato
cont
Tipo
Int
Int
Int
Int
Int
Int
Descrizione
Contiene il valore del primo dato
Contiene il valore del secondo dato
Numero inserito dall’utente
Somma del Valore dei due dadi
Per interrompere esecuzione prima dei 3 tentativi
Conta il numero di tentativi
3. Formulazione dell’algoritmo.(descrizione discorsiva, concisa e schematica) :
si generano due numeri casuali e li si assegnano alle variabili dado1,dado2
corrispondenti al lancio dei dadi e si effettuerà la loro somma, all’interno di un ciclo
si chiederà di inserire il numero da indovinare(scelta), gestendo la variabile cont
potremo avere al massimo tre tentativi mentre la variabile trovato ci farà uscire dal
ciclo, nel caso si indovini il risultato prima dei tre tentativi
Start
Trovato = 0
Cont = 0
Caricamento Dado1 casuale
Caricamento Dado2 casuale
Somma = Dado1+Dado2
Inserimento Scelta
YES
Scelta < 2 or Scelta > 12
NO
do
NO
YES
Scelta = Somma
Incremento Cont
Incremento Trovato
Hai sbagliato ritenta
Complimenti hai indovinato
YES
Cont < 3 and Trovato ==0
NO
End
4. Test (utilizzare dati prova che mettano in difficoltà il normale svolgimento del programma.
Verificando in modo manuale se l’algoritmo formulato elabora nel modo giusto i dati in
ingresso restituendo in uscita dati corretti)
Step
1
2
3
4
Dado1
3
Step
1
2
3
4
Dado1
3
Step
1
2
3
4
Dado1
3
Dado2
3
somma
6
Dado2
3
Dado2
3
scelta trovato
0
13
0
4
0
6
1
somma
6
somma
6
cont
0
0
1
2
output
Scelta sbagliata
Sbagliato
Indovinato
scelta trovato
0
8
0
4
0
6
1
cont
0
1
2
3
output
scelta trovato
0
8
0
6
1
cont
0
1
2
output
Sbagliato
Sbagliato
Indovinato
Sbagliato
Indovinato
5. Codifica con commenti (solo le parti essenziale dell’algoritmo).
srand(time(NULL));
Trovato=0;
Cont=0;
Dado1=1+rand()%6;
Dado2=1+rand()%6;
Somma=Dado1+Dado2;
/* genera i numeri casuali tra 1 e 6
e li assegna al singolo dado */
/* somma i dadi */
do
{ printf("Inserire la scelta : ");
gets (Frase);
Num=atoi(Frase);
}
while(Num<2||Num>12);
if (scelta==Somma) Trovato++;
/* non permette di inserire numeri <2 o >12
/* gestione della variabile trovato e del numero max
di tentativi */
else
{ Cont++;
if (Cont<=2) printf("\nHai sbagliato ritenta\n\n");
}
6. Prova di esecuzione (Inserire i dati selezionati nella sezione test e verificare i risultati)
7. Data consegna progetto
Prova di accettazione
Viene eseguita dall’insegnante ed è finalizzata alla verifica del corretto funzionamento del
programma,cercando di mettere in crisi i vari moduli con casi complicati o con dati inesatti. Il
programma, dovrà essere modificato fino a quando non sarà superata questa prova.
Ringraziamenti.
Si ringrazia l’alunno Terzo Manuel della classe 3 A Inf. A.s. 2011/2012 per la fattiva e sollecite
collaborazione alla stesura di questo esempio, in particolare il grafo di flusso ed il codice scritto in
c hanno reso più esaustivo l’elaborato stesso.
#include <stdio.h>
#include <time.h>
#include <math.h>
#include <conio.h>
#include <windows.h> /* API di windows */
#define ESC 27
#define INVIO 13
void Clrscr
(void);
void Gotoxy
(int x, int y);
void TextColor
(unsigned short Colore);
main()
{
int Dado1,
Dado2,
Somma,
scelta,
Trovato,
Cont,
Tasto;
char Frase [200];
srand(time(NULL));
do
{
Trovato=0;
Cont=0;
Dado1=1+rand()%6;
Dado2=1+rand()%6;
Somma=Dado1+Dado2;
TextColor(0x0b);
Clrscr();
do
{
do
{ printf("Inserire la scelta : ");
gets (Frase);
scelta=atoi(Frase);
}
while(scelta<2||scelta>12);
if(scelta==Somma) Trovato++;
else
{ Cont++;
if (Cont<=2) printf("\nHai sbagliato ritenta\n\n");
}
}
while(Cont<3 && Trovato==0);
if(Cont==3)
{ printf("\n Game Over");
printf("\n\nLa somma dei dadi era :%d\n", Somma);
}
else printf("\nComplimenti hai indovinato\n");
printf("\nDigitare INVIO per concludere\n\nPremere un tasto qualsiasi per ripetere");
Tasto=_getch();
}
while(Tasto!=INVIO);
do
{ Clrscr();
Gotoxy(19,10);
printf("
Created by : Terzo Manuel");
Gotoxy(22,13);
printf("Digitare ESC per terminare l'applicazione");
Tasto=_getch();
Clrscr();
}
while (Tasto!=ESC);
}
/*==========================================
Cancella lo schermo.
-------------------------------------------------------------------------*/
void Clrscr (void)
{
COORD coord;
DWORD written;
CONSOLE_SCREEN_BUFFER_INFO info;
coord.X = 0;
coord.Y = 0;
GetConsoleScreenBufferInfo(GetStdHandle(STD_OUTPUT_HANDLE), &info);
FillConsoleOutputCharacter (GetStdHandle(STD_OUTPUT_HANDLE), ' ',
info.dwSize.X * info.dwSize.Y, coord, &written);
Gotoxy (1, 1);
}
/*===========================================
Posiziona il cursore di console alle coordinate x,y.
----------------------------------------------------------------------------*/
void Gotoxy
( int x,
// indice di colonna
int y
// indice di riga
)
{
COORD Cur = {x, y};
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), Cur);
}
/*===========================================
Utilizzando la funzione SetConsoleTextAttribute(HANDLE,WORD)
cambia il colore del testo da stampare in console.
----------------------------------------------------------------------------*/
void TextColor
(
unsigned short Colore // codice numerico del colore
)
{
HANDLE h = GetStdHandle ( STD_OUTPUT_HANDLE );
SetConsoleTextAttribute ( h, Colore );
}
Fly UP