Robocode è un progetto open source che simula il funzionameto di robot virtuali (videogames). Il linguaggio di programmazione utilizzato è Java.
Per maggiori dettagli la home del progetto è http://robocode.sourceforge.net/
Robocode è un progetto open source che simula il funzionameto di robot virtuali (videogames). Il linguaggio di programmazione utilizzato è Java.
Per maggiori dettagli la home del progetto è http://robocode.sourceforge.net/
Asterisk è un software che trasforma un normale computer in un server di comunicazione.
Gestisce comunicazione IP PBX, gateway VoIP, server per conferenze.
E ‘utilizzato da piccole imprese, grandi imprese, call center, i vettori e governi in tutto il mondo.
Asterisk è gratuito e open source.
Per maggiori dettagli http://www.asterisk.org/
Per compilare un programma scritto in assembler:
TASM <nome programma>.ASM /ZI
TLINK <nome programma>.OBG /V
TD <nome programma>
Le costanti in C++ si definiscono con la sintatti #define NOMECONSTANTE valore
e di solito come convenzione vanno scritte tutte in maiuscolo.
Esempi:
#define PIGRECO 3.1415
#define K 9.83
#define MESSAGGIOTEST "Questo è un messaggio di test"
Negli header file della libreria standar del C++ sono stati inseriti anche classi e funzioni del linguaggio C. La dichiarazione di inclusione avviene con la sintassi #include <nome_libreria>
(esempio: #include <iostream>
), da notare che non viene specificata l’estensione .h come avviene per il C.
In alternativa, se si vuole imporre l’inclusione dei una specificata libreria non presente nella directory standard del compilatore, la sintassi è la seguente #include "c:\source_prova\file_libreria.h"
. Da notare che in questo caso è necessario spedidicare persorso e nome file completo comprensivo di estensione.
Per maggiori approfodimenti consiglio su wikipedia: http://en.wikipedia.org/wiki/C++_Standard_Library
Il seguente esempio illustra come gestire funzioni esterne al file sorgente principale (quello che contiene la funzione main).
//============================================================================ // Name : cpp_main.cpp // Author : Abejan // Version : 11/03/2011 // Description : Programma principale in C++, Ansi-style //============================================================================ #include <iostream> using namespace std; //Prototipo funzione Somma contenuta nel file sorgente esterno int Somma(int x,int y); int main() { cout << "Valore di ritono della funzione Somma(3,4): " << Somma(3,4) << endl; return 0; }
//============================================================================ // Name : cpp_funzione_prova.cpp // Author : Abejan // Version : 11/03/2011 // Description : Funzione Somma due numeri interi in C++, Ansi-style //============================================================================ int Somma(int x,int y) { return x+y; }
In C++ esistono i seguenti operatori composti da simboli che specificano come devono essere utilizzati i valori (gli operandi).
Scope Resolution | :: |
Suffissi | Substript: [ ] Chiamata di funzione: “ ( ) “Inizializzazione: “ ( ) “Cast di tipo: “ ( ) “Accesso a membro: “ . ” e “-> “Post Incremento: “ ++ “Post Decremento: “ -- “ |
Unari | Indirezione: “* “Indirizzo di: “ & “Segno più: “ + “Negazione aritmetica: “ - “Negazione logica (NOT): “ ! “Completamento a 1: “ ~ “Pre Incremento: “ ++ “Pre Decremento: “ -- “Dimensione di: “ sizeof “Crea un oggetto: “ new “Elimina un oggetto: “ delete “ |
Virgola | “, “ |
Condizionale (operatore ternario) |
“e1?e2:e3 “ |
Confronto e uguaglianza | Minore di: “< "Minore o uguale a: " <= "Maggiore di: " > "Maggiore o uguale a: " >= "Uguale a: " == "Non uguale a: " != " |
Artimetici | Addizione: "+ "Sottrazione: " - "Moltiplicazione: " * "Divisione: " / "Modulo: " % " |
Shift | A sinistra: "<< "A destra: " >> " |
Bitwise (bit a bit) | Bitwise AND: "& "Bitwise OR: " | "Bitwise OR esclusivo (XOR): " ^ " |
Logici | AND Logico: && OR Logico: || |
Assegnazione | Assegnazione: = Assegnazione con addizione: += Assegnazione con sottrazione: -= Assegnazione con moltiplicazione: *= Assegnazione con divisione: /= Assegnazione con modulo: %= Assegnazione con shift a sinistra: <<= Assegnazione con shift a destra: >>= Assegnazione con AND bit a bit: &= Assegnazione con OR bit a bit: |= Assegnazione con XOR bit a bit: ^= |
Puntatori a membro | .* e ->* |
Reference | & |
In C++ esistono diversi tipi di variabili, detti anche tipi fondamentali che sono suddivisi in integrali e virgola mobile.
Tipi integrali | |
char | 1 byte E’ il più piccolo dei tipi di base |
bool | 1 byte Può memorizzazione solo valori true o false |
short | 2 byte Dimensioni comprese tra il tipo char e quelle di tipo int |
int | 4byte Dimensioni comprese tra il tipo short e quelle di tipo long |
long | 4 byte Range da – 2 147 483 648 a 2 147 483 647 |
long long | 8 byte Range da -9 223 372 036 854 775 808 a -9 223 372 036 854 775 807 |
signed | Specificatore di variabile, se il range dei dati comprende sia entremo positivo che negativo. Per esempio signed char (anche solo char) ha come range da -128 a 127 |
unsigned | Specificatore di variabile, il range dei dati comprende solo un entremo quello positivo. Per esempio unsigned char ha come range da 0 a 255 |
Tipi a virgola mobile | |
float | 4 byte |
double | 8 byte |
long double | 12 byte |
// Name : cpp_calcolo_potenza_n.cpp // Author : Abejan // Version : 10/03/2011 // Description : Calcolo della potenza intera di un numero reale in C++, Ansi-style #include <iostream> using namespace std; double x, potenza; int n, esponente; //esponente n ed esponente assoluto //metodo che calcola x elevata a esponente void CalcolaPotenzaPositiva() { potenza=1; for(int numeroVolte=1;numeroVolte <= esponente;numeroVolte++){ potenza *= x; // potenza = potenza * x } } //metodo che calcola x elevata a n void CalcolaPotenza() { if(n>=0) esponente =n; else esponente = -n; CalcolaPotenzaPositiva(); //chiamata metodo //se n è negativo calcola il reciproco if (n < 0) potenza = 1/potenza; } //metodo che stampa il risultato void ComunicaRisultato() { cout << "Il valore della potenza è: " << potenza <<endl; } //funzione principale del programma - entry point int main() { char op; //carattere di separazione tra x e n cout << "Scrivi la potenza da calcolare nel formato x^n: "; cin >> x >> op >> n; CalcolaPotenza(); ComunicaRisultato(); return 0; }
Di seguito un esempio di un programma in Cpp che stampa il valore massimo tra due numeri.
// Name : cpp_massimo_tra_due_numeri.cpp // Author : Abejan // Version : 10/03/2011 // Description : Massimo tra due numeri interi in C++, Ansi-style #include <iostream.h> #include <dos.h> //function Massimo //ritorna il valore maggiore tra i due parametri int Massimo(int a, int b){ return a >=b ? a : b; } //programma principale int main() { cout << "Il massimo tra -10 e 2 e`: " << Massimo (-10,2) << endl; sleep(4); //attesa 4 secondi return 0; }