Ominide 18 punti

In alcuni casi è necessario far ripetere al computer lo stesso gruppo di operazioni.
Siccome:
I programmatori sono gente pigra(e siccome vengono pagati per fare le cose in fretta)
Un programma realizzato con i cicli è più comprensibile
In certi casi non è possibile capire a priori quante volte deve essere usato
Dove è possibile e dove necessario, si usano i cicli.
Es. facciamo sommare al computer i primi 100 numeri.
Somma = 0
somma = somma + 1
somma = somma +2
somma = somma +3

somma= somma +99
Somma = somma +100
Altra soluzione con il ciclo per Es. facciamo dire al computer i primi 100 numeri.

inizio
Somma=0
numero=1
for x=1 to 100
somma = somma+1 (IN SCRATCH SI SCRIVE cambia somma di 1 OPPURE
porta somma a somma + 1 )
dire somma
end for
fine
facciamo sommare al computer i primi 100 numeri.

inizio
Somma=0
numero=1
for x=1 to 100
numero = numero +1
somma = somma+numero (IN SCRATCH SI SCRIVE cambia somma di numero OPPURE
porta somma a somma + numero
end for
dire somma
fine

Esercizio: far scrivere al computer 50 numeri pari partendo da 6.
inizio
Numero = 6
for x= 1 to 50
Scrivi: Numero
Numero = Numero + 2
Endfor
fine

Esercizio: far scrivere al computer 50 numeri multipli di N con N inserito dall’utente partendo da 6.
inizio
Numero = 6
for x= 1 to 50
Scrivi: Numero
Numero = Numero + 2
Endfor
fine

Esercizio: far calcolare al computer la somma dei primi 50 numeri partendo da 2.
inizio
numero =0
somma=0
for x= 2 to 52
numero= numero+2
somma=somma+numero
endfor
fine

LE SUCCESSIONI
Si chiamano Successioni di Interi le sequenze di numeri ∈N nelle quali ogni termine è espresso come funzione di termini della successione stessa. Ogni termine di una successione viene quindi creato passo dopo passo (cioè ad ogni passo dell’algoritmo viene creato un nuovo elemento della successione) utilizzando i termini già creati in precedenza.
Ogni successione è definita da:
uno o più termini di partenza
una equazione matematica mediante la quale è possibile creare il nuovo termine della successione e che sarà funzione dei termini precedenti
L’equazione che definisce la serie viene espressa mediante il termine generico della successione.
Es. N_i=f(N_(x<i) ) si legge così: il termine i-esimo della successione è funzione dei termini della successione che lo precedono
Per ottenere un nuovo elemento della successione è necessario aggiornare ogni volta i valori inseriti nella funzione
Esempio di successione: i numeri interi

Numero di partenza: 0
Funzione: N_(i+1)=N_i+1
Infatti: N_0=0
N_1=N_0+1=0+1=1
N_2=N_1+1=1+1=2
N_3=N_2+1=2+1=3

Realizziamo prima un programma lineare (cioè senza cicli) che visualizza i primi 5 termini della sequenza dei numeri interi partendo da 0
Inizio
N=0
Visualizza N
N=N+1
Visualizza N
N=N+1
Visualizza N
N=N+1
Visualizza N
N=N+1
Visualizza N
Fine

Ora possiamo scrivere l’algoritmo usando i cicli:
Inizio
N=0
Visualizza N
For X=1 to 4
N=N+1
Visualizza N
EndFor
End
Adesso generalizziamo il programma chiedendo all’utente di inserire il numero di partenza della sequenza e il numero di termini della successione da visualizzare
Inizio
Input: “inserisci il termine di partenza della successione”: NInizio
Input:”Inserisci il numero di termini da visualizzare”: Quantità
Visualizza NInizio
N=NInizio
For X=NInizio to (Quantità-1)
N=N+1
Visualizza N
EndFor
End

Esempio di successione: i numeri pari
Inizio
Input: “inserisci il termine di partenza della successione”: NInizio
Input:”Inserisci il numero di termini da visualizzare”: Quantità
Visualizza NInizio
N=NInizio
For X=NInizio to (Quantità-1)
N=N+2
Visualizza N
EndFor
End

La sequenza di Fibonacci: successione nella quale ogni termine è dato dalla somma dei due termini precedenti.
Si scrive così:
N_i=N_(i-1)+N_(i-2) con N_0=1 e N_1=1
N_2=N_1+N_0=1+1=2
N_3=N_2+N_1=2+1=3
N_4=N_3+N_2=3+2=5
Perché fare i conti a mano? Usiamo Excel che, come tutti sanno, è una calcolatrice.



Abbiamo usato Excel per vedere come fare i calcoli a mano senza fare troppi calcoli.

Vediamo come inserire in un algoritmo tutto questo:
INIZIO
Ni = 1
N(i+1) = 1
N(i+2) = 0
for i=0 to 100
N(i+2) = N(i+1) + Ni
MOSTRA N(i+2)
Ni = N(i+1)
N(i+1) = N(i+2)
END FOR

Esercizio 1 successioni
Realizzare un algoritmo che visualizza N termini della successione che ha come termine di partenza N_0=4
e come termine generico:
N_i=N_(i-1)+3
N_0=4
N_1=N_0+3 =4+3=7
N_2=N_1+3=7+3=10


INIZIO
Ni=0
Ni-1=4
For i=1 to 10
Ni = Ni-1 + 3
Ni-1 = Ni
Mostra: Ni
End for


Esercizio 2 successioni
Realizzare un algoritmo che visualizza N termini della successione che ha come termine di partenza N_0=4
N_1=7 e come termine generico:
N_i=N_(i-1)+3N_(i-2)


INIZIO
Ni=0
Ni-1=7
Ni-2=4

For i=1 to 6
Ni = Ni-1 + 3*Ni-2
Ni-2 = Ni-1
Ni-1=Ni
Mostra: Ni
End for


Esercizio 3 successioni
Realizzare un algoritmo che visualizza N termini della successione che ha come termine di partenza N_0=1
N_1=2 e N_2=3 e come termine generico:
N_i=N_(i-3)+3N_(i-2)- 5N_(i-1)

INIZIO
Ni=0
Ni-1=3
Ni-2=2
Ni-3=1

For i=3 to 9
N i = Ni -3 + 3*Ni-2-5*Ni-1
Ni-3 = Ni-2
Ni-2=Ni-1
Ni-1=Ni
Mostra: Ni
End for

Passaggi per l’implementazione di una sequenza in un algoritmo funzionante:
Inizializzare i termini da cui parte la successione e che devono essere termini noti ovvero costanti
Creare il ciclo for – endfor con il numero di termini che si vogliono visualizzare
Inserire nell’algoritmo la funzione che definisce la successione calcolando il termine generico. Qui terminano i passaggi relativi al ciclo attuale. Bisogna ora preparare le variabili per il ciclo successivo
Aggiornare le variabili assegnando il valore del termine precedente della successione partendo dal più “vecchio”. Se si parte dal più “giovane” si cancellano i valori .

Se è richiesta la visualizzazione di tutti i termini della successione, visualizzare il termine che si è calcolato.

NON SOLO NUMERI
Spesso è utile gestire variabili non numeriche.
Un esempio di variabile non numerica sono le variabili STRINGA: oggetti il cui contenuto è costituito da caratteri alfanumerici ovvero lettere dell’alfabeto (maiuscole e minuscole), numeri e caratteri di punteggiatura.
Es: As34& è una stringa di caratteri alfanumerici
Es. 23562 può essere sia una stringa di caratteri sia un numero
Prendiamo due numeri: 234 e 194
Se questi sono numeri, posso calcolare 234 + 194 = 428
Se questi non sono numeri ma sono stringhe di caratteri, non posso fare la somma, ma posso fare la concatenazione, ad esempio “234” & “194” = “234194”

Queste (le stringhe) sono le variabili dal contenuto più generico possibile e vengono in genere usate per consentire all’utente l’inserimento di dati evitando situazioni imbarazzati di crasch del computer.

Le operazioni che si possono eseguire con le stringhe di caratteri sono:
concatenamento di stringhe. Es “ca” & “sa” = “casa”
estrazione di una stringa di lunghezza data. Es estraggo le prime 4 lettere da “carota”. Il risultato è “caro”
confronto di due stringhe. Es. conf = (“Luigi” = “luigi”) il risultato del confronto è una variabile logica. Ha senso fare la seguente operazione “dado”>”cavallo” ? No, a meno che non si esegua il confronto delle lunghezze delle stringhe.
Conversione di una variabile stringa in una variabile di altro tipo (es. numerica)

Esercizio: estrarre la 5° e la 7° lettera della stringa “pentagono”

INIZIO
Parola = ”pentagono”
Dire lettera 5 di Parola per 1 secondo
Dire lettera 7 di Parola per 1 secondo
FINE

Esercizio: estrarre le prime 5 lettere di “canile” e visualizzarle tutte assieme
INIZIO
i = 0
Parola = ”canile”
Risultato = “ ”
Ripeti 5 volte
Unione di risultato & lettera i di Parola
Cambia i di 1
Fine CICLO
Dire risultato per 2 secondi

Hai bisogno di aiuto in Informatica?
Trova il tuo insegnante su Skuola.net | Ripetizioni
Registrati via email