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

Soluzione gruppo A: passaggio di base

Pablo Picasso – 1930

GRUPPO A

1) 234:2 R=0 117:2 R=1 58:2 R=0 29:2 R=1 14:2 R=0 7:2 R=1 3:2 R=1

Adesso prendo i numeri in rosso:

234_{10}=11101010_{2}

effettuando la prova si ha:

11101010_{2}=1\cdot 2^{7}+1\cdot 2^{6}+1\cdot 2^{5}+0\cdot 2^{4}+1\cdot 2^{3}+0\cdot 2^{2}+1\cdot 2^{1}+0\cdot 2^{0}

2) 1111_{2}=1\cdot 2^{3}+1\cdot 1^{2}+1\cdot 2^{1}+1\cdot 2^{0}=15_{10}

3) 34:3 R=1 11:3 R=2 3:3 R=0 1

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

34_{10}=1021_{3}

Effettuando la prova si ha:

1021_{3}=1\cdot 3^{3}+0\cdot 3^{2}+2\cdot 3^{1}+1\cdot 3^{0}=27+6+1=34_{10}

4) 211_{3}=2\cdot 3^{2}+1\cdot 3^{1}+1\cdot 3^{0}=18+3+1=22_{10}

Effettuando al prova si ha:

22:3  R=1 7:3 R=1 2

leggendo da destra verso sinistra si ha:

22_{10}=211_{3}

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

AFA_{16}=10\cdot 16^{2}+15\cdot 16^{1}+10\cdot 16^{0}=2560+240+10=2810_{10}

Effettuando la prova:

2810:16 R=10(A) 175:16 R=15(F) 10(A)

leggendo da destra verso sinistra ho:

2810_{10}=AFA_{16}

6) 54_{6}=5\cdot 6^{1}+4\cdot 6^{0}=34_{10}

effettuando la prova si ha:

34:6 R=4 5

leggendo da destra verso sinistra ho:

34_{10}=54_{6}

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

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

adesso si passa alla base 5:

7.b) 5:5 R=0 1

Leggendo da destra verso sinistra:

5_{10}=10_{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

Soluzioni sull’esercitazione sui Cicli

Renè Magritte – Valori Personali – 1952

Esercizio 1.

La difficoltà è:

  • creare due cicli nidificati
  • annullare la variabile che si incrementa nel ciclo più interno, nel ciclo esterno

ESP027V0

Esercizio 2

La difficoltà è:

  • non andare a capo–> approfondimento istruzione print
  • un ciclo nidificato con la gestione dell’andare a capo

ESP028V0

Esercizio 3.

La difficoltà è:

  • presenza del ciclo for
  • non andare a capo
  • ordinare il comando print

ESP029V0

Esercizio 4

Le difficoltà sono:

  • ciclo for all’interno di un ciclo while
  • gestione della stringa ed accesso ai suoi elementi
  • gestione dell’OR all’interno dell’IF

ESP031V0

Esercizio 5

La difficoltà è:

  • creazione e gestione del ciclo while
  • asincronia tra il contatore ed il valore della successione
  • sostituzione delle variabili per avere il numero corretto della successione di Fibonacci
  • gestione fa intero a numero reale

ESP030V0

Pubblicato in Senza categoria | Lascia un commento

Passaggi di base

Pablo Picasso – Olga Khokhllova – 1923

Eseguire i seguenti passaggi di base

Gruppo A

-1) da 234_{10} alla base 2

– 2) da 1111_{2} alla base 10

– 3) da 34_{10} alla base 3

– 4) da 211_{3} alla base 10

– 5) da AFA_{16} alla base 10

– 6) da 54_{6} a base 10

– 7) da 12_{3} a base 5.

– 8) provare ad eseguire la somma di 1011_{2}+1001_{2}

Soluzione

Gruppo B

-1) da 324_{10} alla base 2

– 2) da 1011_{2} alla base 10

– 3) da 43_{10} alla base 3

– 4) da 221_{3} alla base 10

– 5) da AFB_{16} alla base 10

– 6) da 45_{6} a base 10

– 7) da 102_{3} a base 5.

– 8) provare ad eseguire la somma di 1011_{2}+1001_{2}

Soluzione

Gruppo C

-1) da 243_{10} alla base 2

– 2) da 1001_{2} alla base 10

– 3) da 13_{10} alla base 3

– 4) da 21_{3} alla base 10

– 5) da AAB_{16} alla base 10

– 6) da 43_{6} a base 10

– 7) da 1002_{3} a base 5.

– 8) provare ad eseguire la somma di 101_{2}+101_{2}

Soluzione

Pubblicato in Senza categoria | Lascia un commento