Primo programma in C++

[:it]

Jacek Jerka – Le quattro stagioni

Ecco il listato del primo programma in C++:

#include <iostream>

int main()
{
int i;
double g;
std::cout << “dammi un numero intero” << std::endl;
std::cin >> i;
std::cout << “ecco il numero intero inserito”<<i;
std::cout
return 0;
}

Il programma è all’interno di un blocco separato da parentesi graffe.

Ogni variabile usata deve essere dichiarata con il tipo più opportuno.

Nel caso specifico si nota che si sono definite due variabili una di tipo intero (int) ed una di tipo double (decimale).

Perchè questa pesantezza? Ogni variabile occupa un certo spazio di memoria ecco la relativa tabella:

int     numero intero di 2 o 4 byte

char     numero intero di 1 byte (interpretabile come codice ascii di un carattere)

float     numero in virgola mobile con 6-7 cifre significative (4 byte )

double     numero in virgola mobile con 15-16 cifre significative (8 byte )

bool     valore booleano: true o false (1 byte)

lo stesso programma può essere scritto nella seguente maniera:

#include <iostream>

using namespace std;

int main (int argc, char *argv[])
{
int i;
double g;
cout << “dammi un numero intero” << std::endl;
cin >> i;
cout << “ecco il numero intero inserito “<<i;
cout;
return 0;
}

si noti il comando

using namespace std; che permette di evitare std prima di ogni comando di input o di output.

Per creare il file eseguibile prima si compila e poi si chiede al compilatore di creare l’eseguibile stesso. Per poi eseguirlo effettivamente aprire un terminale da esegui\cmd, andare nella directory in cui si è salvato il file e quindi eseguirlo.[:en]

Jacek Jerka – Le quattro stagioni

Ecco il listato del primo programma in C++:

#include <iostream>

int main()
{
int i;
double g;
std::cout << “dammi un numero intero” << std::endl;
std::cin >> i;
std::cout << “ecco il numero intero inserito”<<i;
std::cout
return 0;
}

Il programma è all’interno di un blocco separato da parentesi graffe.

Ogni variabile usata deve essere dichiarata con il tipo più opportuno.

Nel caso specifico si nota che si sono definite due variabili una di tipo intero (int) ed una di tipo double (decimale).

Perchè questa pesantezza? Ogni variabile occupa un certo spazio di memoria ecco la relativa tabella:

int     numero intero di 2 o 4 byte

char     numero intero di 1 byte (interpretabile come codice ascii di un carattere)

float     numero in virgola mobile con 6-7 cifre significative (4 byte ) double     numero in virgola mobile con 15-16 cifre significative (8 byte ) bool     valore booleano: true o false (1 byte)

lo stesso programma può essere scritto nella seguente maniera:

#include <iostream>

using namespace std;

int main (int argc, char *argv[])
{
int i;
double g;
cout << “dammi un numero intero” << std::endl;
cin >> i;
cout << “ecco il numero intero inserito “<<i;
cout;
return 0;
}

si noti il comando

using namespace std; che permette di evitare std prima di ogni comando di input o di output.

Per creare il file eseguibile prima si compila e poi si chiede al compilatore di creare l’eseguibile stesso. Per poi eseguirlo effettivamente aprire un terminale da esegui\cmd, andare nella directory in cui si è salvato il file e quindi eseguirlo.

 

 

 

 

 [:de]

Jacek Jerka – Le quattro stagioni

Ecco il listato del primo programma in C++:

#include <iostream>

int main()
{
int i;
double g;
std::cout << “dammi un numero intero” << std::endl;
std::cin >> i;
std::cout << “ecco il numero intero inserito”<<i;
std::cout
return 0;
}

Il programma è all’interno di un blocco separato da parentesi graffe.

Ogni variabile usata deve essere dichiarata con il tipo più opportuno.

Nel caso specifico si nota che si sono definite due variabili una di tipo intero (int) ed una di tipo double (decimale).

Perchè questa pesantezza? Ogni variabile occupa un certo spazio di memoria ecco la relativa tabella:

int     numero intero di 2 o 4 byte

char     numero intero di 1 byte (interpretabile come codice ascii di un carattere)

float     numero in virgola mobile con 6-7 cifre significative (4 byte ) double     numero in virgola mobile con 15-16 cifre significative (8 byte ) bool     valore booleano: true o false (1 byte)

lo stesso programma può essere scritto nella seguente maniera:

#include <iostream>

using namespace std;

int main (int argc, char *argv[])
{
int i;
double g;
cout << “dammi un numero intero” << std::endl;
cin >> i;
cout << “ecco il numero intero inserito “<<i;
cout;
return 0;
}

si noti il comando

using namespace std; che permette di evitare std prima di ogni comando di input o di output.

Per creare il file eseguibile prima si compila e poi si chiede al compilatore di creare l’eseguibile stesso. Per poi eseguirlo effettivamente aprire un terminale da esegui\cmd, andare nella directory in cui si è salvato il file e quindi eseguirlo.

 

 

 

 

 [:]

Pubblicato in Senza categoria | Lascia un commento

Verifichiamo le nostre basi

Renè Magritte – Souvenir –

Creare nella cartella scambio una cartella con il proprio nome e cognome. All’interno di essa posizionare i programmi sviluppati salvandoli sempre con la seguente nomenclature: cognome_nome_gruppoX_esY.py dove con X si intende il gruppo ed Y il numero del relativo programma. Ad esempio Rossi_Giocchino_gruppoB_es3.py Ricordarsi di inserire l’opportuna intestazione ad ogni programma. Ricordarsi di dare le giuste autorizzazioni in lettura e scrittura altrimenti  non potrà essere corretto l’elaborato composto.

Gruppo A.

1- Emettere a video il seguente messaggio: “buona giornata da parte di nome cognome” con nome e cognome il proprio.

2- Chiedere a video che un utente inserisca un numero e stamparlo successivamente a video emettendo il seguente messaggio: ” il numero immesso è: x” con x il relativo numero.

3- Chiedere a video un numero e verificare che questo sia maggiore  di 4 se lo è, emettere il messaggio “il numero è maggiore di 4” altrimenti emettere il messaggio “il numero è minore di 4”

4- Emettere a video per 4 volte il messaggio “Ciao ” usando un ciclo while

5- Emetter a video per 7 volte il messaggio “salve” usando un ciclo for

6- calcolare la lunghezza della circonferenza dato il raggio richiesto dall’utente. Effettuare tutte le verifiche del dato immesso.

7- Creare un menù attraverso il quale l’utente possa calcolare il volume di un cubo o di un parallelepipedo o di una piramide. Tale menù deve comparire all’inizio ed alla fine delle operazioni richieste finchè l’utente non sceglie l’opzione zero che significa fine programma. Impostare opportunamente le domande per il calcolo del volume del relativo solido.

Gruppo B.

1- Emettere a video il seguente messaggio: “buongiorno da parte di nome cognome” con nome e cognome il proprio.

2- Chiedere a video che un utente inserisca un numero e stamparlo successivamente a video emettendo il seguente messaggio: ” il numero immesso è: x” con x il relativo numero.

3- Chiedere a video un numero e verificare che questo sia minore di 15 se lo è, emettere il messaggio “il numero è minore di 15” altrimenti emettere il messaggio “il numero è maggiore di 15”

4- Emettere a video per 7 volte il messaggio “Buonasera ” usando un ciclo while

5- Emetter a video per 20 volte il messaggio “Ave” usando un ciclo for

6- calcolare il perimetro di un trapezio isoscele. Effettuare tutte le verifiche dei dati immesso.

7- Creare un menù attraverso il quale l’utente possa calcolare il volume di un cubo o di un parallelepipedo o di una sfera. Tale menù deve comparire all’inizio ed alla fine delle operazioni richieste finchè l’utente non sceglie l’opzione zero che significa fine programma. Impostare opportunamente le domande per il calcolo del volume del relativo solido.

Gruppo C.

1- Emettere a video il seguente messaggio: “buonasera da parte di nome cognome” con nome e cognome il proprio.

2- Chiedere a video che un utente inserisca un numero e stamparlo successivamente a video emettendo il seguente messaggio: ” il numero immesso è: x” con x il relativo numero.

3- Chiedere a video un numero e verificare che questo sia uguale a 20 se lo è, emettere il messaggio “il numero è uguale a 20” altrimenti emettere il messaggio “il numero non è uguale a 20”

4- Emettere a video per 2 volte il messaggio “Good morning ” usando un ciclo while

5- Emetter a video per 20 volte il messaggio “Good night” usando un ciclo for

6- calcolare il perimetro di un triangolo isoscele. Effettuare tutte le verifiche dei dati immesso.

7- Creare un menù attraverso il quale l’utente possa calcolare il volume di un cubo o di un parallelepipedo o di una piramide a base quadrata. Tale menù deve comparire all’inizio ed alla fine delle operazioni richieste finchè l’utente non sceglie l’opzione zero che significa fine programma. Impostare opportunamente le domande per il calcolo del volume del relativo solido.

Pubblicato in Senza categoria | Lascia un commento

Compilatore C++

Renè Magritte – “arte della conversazione”- 1950

Per scaricare l’ambiente di sviluppo per programmare in C++ ed il relativo compilatore consiglio il seguente sito:

http://www.sitoserio.it/cpp/compilatori.htm

da tale sito poi si può scegliere poi il compilatore per il sistema operativo installato.

Si noti che in ambiente linux il compilatore è già presente nella distribuzione che si ha ma comunque si può scegliere un idle diverso a seconda delle proprie esigenze e gusti personali.

Personalmente ho testato ed è funzionante:

devcpp-4.9.9.2_setup

su windows xp a 32 bit.

Se altri hanno testato altre versioni vi prego di segnalarmelo nei commenti, grazie.

 

 

 

 

 

Pubblicato in Senza categoria | Lascia un commento

Indice di programmazione C++

[:it]0. Introduzione al C++

1. Documentazione e download programma

2. primo programma: cin; cout; main

3. Istruzione IF

4. Ciclo FOR

5.

6.

7.

8.

9.

10.

11.

12.

 [:en]0. Introduzione al C++

1. Documentazione e download programma

2. primo programma: cin; cout; main

3. Istruzione IF

4. Ciclo FOR[:de]0. Introduzione al C++

1. Documentazione e download programma

2. primo programma: cin; cout; main

3. Istruzione IF

4. Ciclo FOR[:]

Pubblicato in Senza categoria | Lascia un commento

Ancora sulla ricorsione

Guglielmo Sansoni detto Tato

Sviluppare in un qualunque linguaggio che si conosca i seguenti esercizi sulla ricorsione.

1 – Scrivere un programma che chiede all’utente di inserire un numero. Il programma stamperà a video un quadrato formato da un lato di dimensione pari al numero richiesto.

2- Scrivere un programma che chieda all’utente un numero intero. L’output sarà una lista dei suoi multipli positivi finchè questo non superi il 1000.

3. Scrivere un programma che una volta chiesto all’utente tre numeri interi stampi a video un istogramma orizzontale con le barre dell’istogramma stesso formato dai numeri immessi.

4. Scrivere un programma che una volta richiesta una parola la converta solo le vocali in lettere maiuscole.

5. Elaborare un programma che calcoli il fattoriale. Dovrà richiedere un numero intero in input. Per fattoriale si intende la seguente operazione n!=n(n-1)(n-2)(n-3) finchè il binomio è positivo e diverso da zero

Pubblicato in Senza categoria | Lascia un commento

Foglio di calcolo

Renè Magritte

Con foglio di calcolo intendo:

  • exel
  • libreoffice Calc

Tali due programmi nascono per elaborare campi valorizzati con valori numerici per favorire l’elaborazione di formule o calcoli statistici o anche semplici calcoli numerici.

Ogni icona presente sulla barra del menù effettua delle opportune operazioni sui campi che da questo momento in poi verranno chiamate celle; le stesse operazioni possono essere fatte mediante i comandi presenti sulla barra dei menù.

Scorrendo con il mouse all’interno delle celle si nota immediatamente come il riferimento ad esse si ha mediante la coppia lettera-numero.

Per inserire un numero o una parola è sufficiente, dopo aver puntato su un’opportuna cella digitarla e comparirà anche nella riga di digitazione.

Fondamentale:

Per inserire una formula che fa riferimento ad altre due valori presenti in altre due celle si deve inserire prima il simbolo di =

Pubblicato in Senza categoria | Lascia un commento

Esercizio sulla ricorsione

Renè Magritte

Questo esercizio serve per rafforzare il concetto di ricorsione.

Per capire il suo funzionamento e cosa fa si ordinino opportunamente le linee di codice incolonnandole nella maniera opportuna:

print x

else:

x= 1.0*(x+a/x)/2

print “differenza: “,diff

i=n

n=n+1

x=1

diff=x2-x

while i<n:

x2=1

app=input(“approssimazione: “)

x1=0

if diff<app and diff>0:

n=1

x2=x1

x1=x

i=0

a  = input(“inserisci il radicando “)

i=i+1

 

 

 

Pubblicato in Senza categoria | Lascia un commento

La ricorsione

Joan Mirò

La ricorsione è uno dei nuclei portanti della programmazione.

Essa serve per ordinare liste, numeri, comporre funzioni e successioni.

Per capire come usarla utilizzo la successione di Fibonacci.

La successione di Fibonacci è fondamentale per calcolare la sezione aurea.

I numeri che la compongono sono:

0 1 1 2 3 5 8 13 21 34 55 …

il numero successivo è dato dalla somma dei due numeri precedenti.

La differenza tra il numero in considerazione e quello precedente mi fornisce la sezione aurea.

L’implementazione informatica sta in queste semplici righe di codice evidenziate in rosso:

i=0
x=1
x1=0
x2=1

while i<n:
fibo= fibo1 + fibo2
                 i=i+1
                 fibo2=fibo1
                 fibo1=fibo
if fibo>1:
sezau=1.0*fibo/fibo2
print ‘sezione aurea: ‘,sezau

la ricorsione sta in fibo= fibo1+fibo2  e nel sostituire in maniera opportuna le variabile all’interno del ciclo.

Per capire i valori assunti dalle singole variabili poste all’interno del ciclo si può usare questa semplice tabella:

n Fibo Fibo1 Fibo2 sezau
i=0
i=1

 

Pubblicato in Senza categoria | Lascia un commento

Soluzione gruppo C: passaggi di base

Renè Magritte

GRUPPO C

1) 243:2 R=1 121:2 R=1 60:2 R=0 30:2 R=0 15:2 R=1 7:2 R=1 3:2 R=1  1

Adesso prendo i numeri in rosso:

243_{10}=11110011_{2}

effettuando la prova si ha:

11110011_{2}=1\cdot 2^{7}+1\cdot 2^{6}+1\cdot 2^{5}+1\cdot 2^{4}+0\cdot 2^{3}+0\cdot 2^{2}+1\cdot 2^{1}+1\cdot 2^{0}=128+64+32+16+2+1=243_{10}

2) 1001_{2}=1\cdot 2^{3}+0\cdot 1^{2}+0\cdot 2^{1}+1\cdot 2^{0}=9_{10}

3) 13:3 R=1 4:3 R=1  1

Prendendo i numeri in rosso leggendoli da destra verso sinistra si ha:

13_{10}=111_{3}

Effettuando la prova si ha:

111_{3}=1\cdot 3^{2}+1\cdot 3^{1}+1\cdot 3^{0}=9+3+1=13_{10}

4) 21_{3}=2\cdot 3^{1}+1\cdot 3^{0}=6+1=7_{10}

Effettuando al prova si ha:

7:3  R=1 2

leggendo da destra verso sinistra si ha:

7_{10}=21_{3}

5) Ricordandosi il valore delle lettere in base 16 (A=10; B=11; C=12;D=13;E=14;F=15) si ha:

AAB_{16}=10\cdot 16^{2}+10\cdot 16^{1}+11\cdot 16^{0}=2560+160+11=2731_{10}

Effettuando la pr0va:

2731:16 R=11(B) 170:16 R=10(A) 10(A)

leggendo da destra verso sinistra ho:

2731_{10}=AAB_{16}

6) 43_{6}=4\cdot 6^{1}+3\cdot 6^{0}=24+3=27_{10}

effettuando la prova si ha:

27:6 R=3 4

leggendo da destra verso sinistra ho:

27_{10}=43_{6}

7) Si deve prima passare per la base 10 e poi andare alla base 5.

7.a) 1002_{3}=1\cdot 3^{3}+0\cdot 3^{2}+0\cdot 3^{1}+2\cdot 3^{0}=29_{10}

adesso si passa alla base 5:

7.b) 29:5 R=4 5:5 R=0 1

Leggendo da destra verso sinistra:

29_{10}=104_{5}

8) Per eseguire la somma di due numeri binari è sufficiente applicare la tabellina riportata nel link del testo dell’esercizio oppure portare i due numeri in  base dieci, poi effettuare la somma e quindi riportarla in base 2 ma è molto lungo e macchinoso.

Riporto la tabellina:

Si è in base 2!

1 + 0 = 1

0 + 1 = 0

0 + 0 = 0

1 + 1 = 0 con riporto di 1

101_{2}+101_{2}=1010_{2}

considerando l’ultima cifra si ha infatti che 1 +1 = 0 resto 1 che va a sommarsi alla penultima cifra e quindi ho 1. La somma delle prime due cifre fornisce ancora 0 con resto 1 per cui scriverò 1 e 0.

Pubblicato in Senza categoria | Lascia un commento

Soluzione gruppo B: passaggi di base

Denis Nunez Rodriquez

GRUPPO B

1) 324:2 R=0 162:2 R=0 81:2 R=1 40:2 R=0 20:2 R=0 10:2 R=0 5:2 R=1 2:2 R=0 1

Adesso prendo i numeri in rosso:

324_{10}=101000100_{2}

effettuando la prova si ha:

101000100_{2}=1\cdot 2^{8}+0\cdot 2^{7}+1\cdot 2^{6}+0\cdot 2^{5}+0\cdot 2^{4}+0\cdot 2^{3}+1\cdot 2^{2}+0\cdot 2^{1}+0\cdot 2^{0}=256+64+4=324_{10}

2) 1011_{2}=1\cdot 2^{3}+0\cdot 1^{2}+1\cdot 2^{1}+1\cdot 2^{0}=11_{10}

3) 43:3 R=1 14:3 R=2 4:3 R=1 1

Prendendo i numeri in rosso leggendoli da destra verso sinistra si ha:

43_{10}=1121_{3}

Effettuando la prova si ha:

1121_{3}=1\cdot 3^{3}+1\cdot 3^{2}+2\cdot 3^{1}+1\cdot 3^{0}=27+9+6+1=43_{10}

4) 221_{3}=2\cdot 3^{2}+2\cdot 3^{1}+1\cdot 3^{0}=18+6+1=25_{10}

Effettuando al prova si ha:

25:3  R=1 8:3 R=2 2

leggendo da destra verso sinistra si ha:

25_{10}=221_{3}

5) Ricordandosi il valore delle lettere in base 16 (A=10; B=11; C=12;D=13;E=14;F=15) si ha:

AFB_{16}=10\cdot 16^{2}+15\cdot 16^{1}+11\cdot 16^{0}=2560+240+11=2811_{10}

Effettuando la pr0va:

2811:16 R=11(B) 175:16 R=15(F) 10(A)

leggendo da destra verso sinistra ho:

2811_{10}=AFB_{16}

6) 45_{6}=4\cdot 6^{1}+5\cdot 6^{0}=29_{10}

effettuando la prova si ha:

29:6 R=5 4

leggendo da destra verso sinistra ho:

29_{10}=45_{6}

7) Si deve prima passare per la base 10 e poi andare alla base 5.

7.a) 102_{3}=1\cdot 3^{2}+0\cdot 3^{1}+2\cdot 3^{0}=11_{10}

adesso si passa alla base 5:

7.b) 11:5 R=1 2

Leggendo da destra verso sinistra:

11_{10}=21_{5}

8) Per eseguire la somma di due numeri binari è sufficiente applicare la tabellina riportata nel link del testo dell’esercizio oppure portare i due numeri in  base dieci, poi effettuare la somma e quindi riportarla in base 2 ma è molto lungo e macchinoso.

Riporto la tabellina:

Si è in base 2!

1 + 0 = 1

0 + 1 = 0

0 + 0 = 0

1 + 1 = 0 con riporto di 1

1011_{2}+1001_{2}=10100_{2}

considerando l’ultima cifra si ha infatti che 1 +1 = 0 resto 1 che va a sommarsi alla penultima cifra e quindi ho ancora 0 ma con resto 1 che vado a scrivere perchè 0 + 0 = 0 ma c’è il resto. La somma delle prime due cifre fornisce ancora 0 con resto 1 per cui scriverò 1 e 0.

Pubblicato in Senza categoria | Lascia un commento