MODULO 4: LE STRUTTURE ITERATIVE: FOR, WHILE E DO LOOP UNTIL

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "MODULO 4: LE STRUTTURE ITERATIVE: FOR, WHILE E DO LOOP UNTIL"

Transcript

1 MODULO 4: LE STRUTTURE ITERATIVE: FOR, WHILE E DO LOOP UNTIL La struttura di ripetizione o iterativa o ciclo Essa, in generale, consente di ripetere l esecuzione di una porzione di algoritmo più volte, finché è verificata una certa condizione. Essa può essere di tre tipi: - a iterazione prestabilita o ciclo a contatore - a iterazione a controllo di testa o ciclo a condizione iniziale. - a iterazione a controllori coda o ciclo a condizione finale. La struttura a iterazione prestabilita (FOR - TO - NET) Essa, nel metodo del diagramma a blocchi, si rappresenta cosi: Essa utilizza: 1) un nuovo blocco, l esagono, che al suo interno contiene: una variabile conteggio come ad es. i, j, k 2) un valore finale, VF, scelto dal programmatore, che stabilisce a priori il numero massimo di iterazioni, ad es. 10, 100 3) blocco istruzioni che rappresenta la porzione di algoritmo da iterare, cioè il corpo dell algoritmo 4) un piccolo rombo che sottintende ad ogni iterazione l incremento della variabile conteggio ad es. i i + 1; j j + 1 La ripetizione del blocco istruzioni avviene finché la variabile conteggio assume un valore < = al valore finale VF prestabilito, mentre si arresta quando la variabile conteggio assume un valore > del valore finale VF prestabilito. Quando si usa tale struttura a iterazione prestabilita? Essa si usa quando nell algoritmo ci sono una o più istruzioni che si ripetono un numero di volte prestabilito. PROBLEMA1: Trovare l algoritmo che letti 10 numeri interi N1, N100, calcoli la loro somma e la stampi a video. (Suggerimento: usare il controllo inputbox per leggere i 100 numeri) Prima di applicare il metodo dei 5 passi, cerchiamo di capire meglio il problema: Ricordiamo che l algoritmo che risolveva il problema della somma di due numeri x e y, richiedeva 3 variabili: di cui 2 per i numeri N1 e N2 e una per la variabile som. Qui, invece, il nostro problema è di fare la somma di 100 numeri, quindi dovremmo usare 101 variabili: di cui 100 per i numeri N1,., N100 e una per la variabile somma SOM. Inoltre, dovremmo leggere la prima variabile N1 e poi sommarla alla variabile somma SOM, leggere la seconda variabile N2 e poi sommarla alla variabile somma SOM, leggere la 100 variabile N100 e poi sommarla alla variabile somma SOM. Tale soluzione fa prevedere un algoritmo lunghissimo. Come possiamo ovviare a questo problema? 1 1 Nota.: per far rendere conto gli allievi che effettivamente tale soluzione è lunghissima conviene disegnare alla lavagna a sx l algoritmo senza ciclo (fermandosi alla lettura e alla somma parziale delle prime due variabili n1 e n2, scrivendo i puntini, e poi scrivendo la lettura e la somma parziale della variabile n100) e a dx l algoritmo con il ciclo 1

2 Osservazione: In tale soluzione si ripetono 100 volte la coppia di istruzioni: lettura della variabile Ni e somma del valore della variabile Ni al valore della variabile somma SOM. Allora per quanto suddetto, possiamo usare una struttura a iterazione prestabilita per la coppia di istruzioni suddette, N Numero generico da sommare SOM Somma totale dei 10 numeri E una stringa di caratteri 2. inizializza som a 0 3. Per I che va da 1 a leggi il numero N 5. assegna a som, la quantità som + N 6. vai al prossimo I e torna al passo 3 7. scrivi a video il valore di som 8. fine. Net 5) Codifica del corpo dei pulsanti di calcolo Private Sub btnsomma_click(byval sender As System.Object, ByVal e As System.EventArgs) Handles btnsomma.click Dim i, numero, som As Integer For i = 1 To 10 x = "inserisci " & i & ") numero" ' le 2 & servono per concatenare il 1 messaggio:"inserisci " al valore corrente di i, al 2 messaggio ") numero" numero = Val(InputBox(x)) som = som + numero Next lblrisultato.text = som 6) L esecuzione del programma fa apparire a video 10 finestre per l input box del tipo: 2

3 PROBLEMA2: Trovare l algoritmo che letti M numeri interi, calcoli la loro somma e la stampi a video. (Suggerimento: usare il controllo textbox per leggere la dimensione N dei numeri e tante inputbox per leggere gli N numeri) M N Dimensione dei numeri Numero generico da sommare SOM Somma totale dei 10 numeri I E l indice del ciclo E una stringa di caratteri 2. inizializza som a 0 3. leggi M 4. per I che va da 1 a M 5. leggi il numero N 6. assegna a som, la quantità som+n 7. vai al prossimo I e torna al passo 4 8. scrivi a video il valore di som 9. fine. Net 5) Codifica del corpo dei pulsanti di calcolo Private Sub btnsomma_click() Dim i, n, m, som As Integer m = Val(txtMnumeri.Text) For i = 1 To m x = "inserisci " & i & ") numero" ' le 2 & servono per concatenare il 1 messaggio: "inserisci ", al valore corrente di i, al 2 messaggio ") numero" n = Val(InputBox(x)) som = som + n Next lblrisultato.text = som PROBLEMA3: Trovare l algoritmo che permette di calcolare il maggiore tra 10 numeri interi letti in input e di scriverlo in output 2 Prima di applicare il metodo dei 5 passi, cerchiamo di capire meglio il problema: Tale problema è semplicemente la generalizzazione dello stesso problema visto precedentemente al caso di tre numeri interi, che richiedeva al massimo 2 confronti nel caso peggiore, se si utilizzava la variabile maggiore inizializzata al primo numero letto. 2 Nota: successivamente questo algoritmo si può complicare ricercando oltre al maggiore anche il minore e successivamente generalizzarlo alla ricerca del maggiore e minore in una sequenza di M numeri interi letti in input. 3

4 N E il numero letto MA E il maggiore dei 10 numeri I E l indice del ciclo E una stringa di caratteri 2. leggi il primo numero e assegnalo a max 3. per I che va da 2 a leggi il I) numero 5. se il numero del passo 4 > max allora a max, assegna il nuovo numero, fine se 6. vai al prossimo I e torna al passo 3 7. scrivi a video max 8. fine 5) Codifica del corpo dei pulsanti di calcolo Dim i, numero, max As Integer x="inserisci il 1) numero" numero = Val(InputBox(x)) max = numero For i = 2 To 10 x = "inserisci " & i & ") numero" ' le 2 & servono per concatenare "inserisci " 'al valore corrente di i, e al 2 msg ") numero" numero = Val(InputBox(x)) If (numero > max) Then max = numero Next txtmax.text = max. Net PROBLEMA4: Trovare l algoritmo che letti M numeri interi, calcoli il maggiore degli M numeri e lo stampi a video. M N E la dimensione dei numeri. E il numero letto MA E il maggiore degli N numeri letti I E l indice del ciclo E una stringa di caratteri 2. leggi la dimensione M 3. leggi il primo numero e assegnalo a MA 4

5 4. per I che va da 2 a M 5. leggi il I) numero 6. se il numero del passo 4 > MA allora a MA, assegna il nuovo numero, fine se 7. vai al prossimo I e torna al passo 4 8. scrivi a video MA 9. fine 5) Codifica del corpo dei pulsanti di calcolo Non effettuata poiché è la stessa del problema 3 precedente dove al posto di 10 c è M PROBLEMA5: Trovare l algoritmo che letti i primi M numeri naturali, calcoli e stampi a video il messaggio è positivo se il numero letto è positivo e il messaggio è negativo se il numero letto è negativo. (Suggerimento: usare la funzione Inputbox( ) per leggere gli M numeri e la funzione Msgbox( ) per stampare gli M messaggi a video) M N E la dimensione dei numeri. E il numero letto I E l indice del ciclo E una stringa di caratteri 2. leggi la dimensione M 3. per I che va da 1 a M 4. leggi il I) numero, N 5. se il numero N del passo 4 > 0 allora stampa il messaggio è positivo altrimenti stampa il messaggio è negativo, fine se 7. vai al prossimo I e torna al passo 3 8. fine 5) Codifica del corpo del pulsante btncalcola_click Dim m, n, i As Integer m = Val(txtM.Text) For i = 1 To m x = "inserisci il " & i & ") numero" n = Val(InputBox(x)) If (n > 0) Then MsgBox("numero è positivo") Else MsgBox("numero è negativo") ' incremento indice i del ciclo Next 6) L esecuzione del programma fa apparire a video N coppie di finestre del tipo seguente: 5

6 PROBLEMA6: Trovare l algoritmo che letti M numeri naturali, calcoli e stampi a video il messaggio è pari se il numero letto è pari e il messaggio è dispari se il numero letto è dispari. (Suggerimento: usare la funzione Inputbox( ) per leggere gli M numeri e la funzione Msgbox( ) per stampare gli M messaggi a video; la funzione mod per calcolare il resto) M N E la dimensione dei numeri. E il numero letto I E l indice del ciclo E una stringa di caratteri 2. leggi la dimensione M 3. per I che va da 1 a M 4. leggi il I) numero N 5. se il numero N MOD 2 = 0 allora stampa il messaggio è pari, altrimenti stampa il messaggio è dispari, fine se 7. vai al prossimo I del passo 3 8. fine 5) Codifica del corpo del pulsante btncalcola_click Dim m, n, i As Integer m = Val(txtM.Text) For i = 1 To m x = "inserisci il " & i & ") numero" n = Val(InputBox(x)) If (n Mod 2 = 0) Then MsgBox("numero è pari") Else MsgBox("numero è dispari") Next 6) L esecuzione del programma fa apparire a video N coppie di finestre del tipo seguente: 6

7 PROBLEMA7: Trovare l algoritmo che letti N numeri naturali, calcoli la media tra il 1 elemento, l ultimo elemento e l elemento centrale e la stampi a video. N Num E la dimensione dei numeri E il numero letto I Som Media R Q Meta E l indice del ciclo Somma dei 3 elementi E la media dei 3 elementi E il resto della divisione E il quoziente della divisione Posizione dell elemento centrale Numero Intero Numero Decimale Numero Intero Numero Intero Numero Intero 2. leggi la dimensione N 3. Assegna a Q, N / 2 4. Assegna a R, N 2 * Q 5. Se R = 0 allora Meta = N / 2 altrimenti Meta = N / 2 +1, fine se 6. Per I che va da 1 a N 7. Leggi Numero, Num 8. Se I=1 allora assegna a Som, Som+Num 9. Se I=Meta allora assegna a Som, Som+Num 10. Se I=N allora assegna a Som, Som+Num 11. Incrementa I, di 1 e torna al passo Assegna a Media, Som / Scrivi Media 14. fine (Test effettuato con i seguenti numeri: 1, 2, 3, 4, 5. In tal caso infatti la somma=1+3+5=9 e quindi la media è 9 / 3 = 3 ) 5) Codifica del corpo del pulsante btncalcolamedia_click Dim N, NUM, Q, R As Integer Dim Meta, SOM, I As Integer Dim MEDIA As Decimal N = Val(txtN.Text) Q = N / 2, R = N - 2 * Q If R = 0 Then Meta = Q Else Meta = Q + 1 For I = 1 To N NUM=InputBox("Numero? ) If (I = 1) Then SOM = SOM + NUM If (I = Meta) Then SOM = SOM + NUM If (I = N) Then SOM = SOM + NUM Next MEDIA = SOM / 3 txtmedia.text = MEDIA 7

8 PROBLEMA8: Trovare l algoritmo che letti N numeri naturali, calcoli la media tra gli elementi di indici pari e la stampi a video. N Num E la dimensione dei numeri E il numero letto I Som Media Cont E l indice del ciclo Somma degli elementi di indici I pari E la media degli elementi di indici pari Contatore di elementi di indici pari Numero Intero Numero Decimale Numero Intero 1. Inizio 2. Leggi N 3. Assegna a Cont, N / 2 4. Per I che va da 1 a N 5. Leggi Numero, Num 6. Q = I / 2 7. R = I 2 * Q 8. Se R=0 allora assegna a Som, Som+Num 9. Incrementa I, di 1 e torna al passo Assegna a Media, Som / Cont 11. Scrivi Media 12. Fine (Test effettuato con i seguenti numeri: 1, 2, 3, 4, 5, 6, 7. In tal caso infatti la somma = = 12 e quindi la media è 12 / 3 = 4 ) 5) Codifica del corpo del pulsante btncalcolamedia_click Dim N, NUM, Q, R, I As Integer Dim Som, Cont As Integer Dim MEDIA As Decimal N = Val(txtN.Text) SOM = 0 Cont = N/2 su N numeri letti i pari sono N/2 For I = 1 To N NUM = InputBox("NUMERO?") Q = I / 2 R = I - (2 * Q) If R = 0 Then SOM = SOM + NUM Next MEDIA = (SOM / ContNumIndPari) txtmedia.text = MEDIA La struttura a iterazione a controllo di testa (WHLE - END WHILE) Essa, nel metodo del diagramma a blocchi, si rappresenta cosi: 8

9 Essa permette di iterare una porzione di algoritmo finché è vera una certa condizione stabilita non a priori. Essa si dice a controllo di testa poiché la condizione è posta all inizio ovvero prima del blocco di istruzioni dell algoritmo da iterare. Quando si usa tale struttura a iterazione a controllo di testa? Essa si usa quando non si sa a priori quante volte si deve iterare il corpo dell algoritmo e la porzione di algoritmo da iterare potrebbe essere eseguita anche nessuna volta. PROBLEMA9: Trovare un algoritmo che letto un numero NUM, controlli che esso sia non negativo cioè che è vera la condizione di ciclo NUM > = 0. Nel caso la condizione di ciclo è vera proceda a leggere altri numeri interi. Nel caso la condizione di ciclo è falsa, esca dal programma stampando il messaggio Lettura terminata. (Suggerimento: Il programma termina quando l utente legge un numero NUM < 0) NUM E il numero da leggere. E una stringa di caratteri 2. leggi il primo numero, NUM 3. finché il numero letto NUM è > = 0 esegui 4. leggi un numero 5. vai al passo 3 6. stampa il messaggio lettura terminata 7. fine 5) Codifica del pulsante btncalcola_click Test al computer Private Sub btnlegginumeri_click() Dim num As Integer Const x As String x = "inserisci numero" ' lettura del primo numero num = Val(InputBox(x)) 'inizio ciclo while While (num > = 0) ' lettura dei rimanenti numeri num = Val(InputBox(x)) End While 'fine ciclo while se la condizione è falsa MsgBox("Lettura terminata") PROBLEMA10: Trovare un algoritmo che letto un numero NUM, controlli che esso sia non negativo, cioè che è vera la condizione di ciclo NUM > = 0. Nel caso la condizione di ciclo è vera, se il numero è anche = 0 lo conti e poi continui a leggere altri numeri. Nel caso la condizione di 9

10 ciclo è falsa, esca dal programma stampando a video la quantità dei numeri 0 inseriti (Suggerimento: Il programma termina quando NUM < 0) NUM E il numero da leggere. CONT E il contatore dei numeri = 0 E una stringa di caratteri 2. assegna a CONT, 0 3. leggi il primo numero, NUM 4. finché il numero NUM letto è > = 0 esegui 5. se NUM=0 allora incrementa CONT, fine se 6. leggi un altro numero, NUM 7. torna al passo 4 8. stampa il messaggio lettura terminata 9. fine Test al Computer 5) Codifica del pulsante btncalcola_click Private Sub btncontazero_click ( ) Dim num, cont As Integer ' lettura del primo numero cont = 0 x = Hai inserito " & cont & " numeri = 0") num = Val(InputBox( Num? )) 'inizio ciclo while While (num > = 0) If (num = 0) Then cont = cont + 1 ' lettura dei rimanenti numeri num = Val(InputBox( Num? )) End While 'fine ciclo while se la condizione è falsa MsgBox() PROBLEMA11: Trovare un algoritmo che letto un numero NUM, controlli che esso sia non negativo, cioè che è vera la condizione di ciclo NUM > = 0. Nel caso la condizione di ciclo è vera, se il numero è anche positivo lo sommi e lo conti e continui a leggere altri numeri. Nel caso la condizione di ciclo è falsa, esca dal programma stampando a video la media dei numeri positivi inseriti. (Suggerimenti: utilizzare una variabile contatore cont che conti i numeri non negativi letti ed altre due variabili somma e media, il programma termina quando NUM < 0) 10

11 NUM E il numero da leggere. CONT SOM MEDIA E il contatore solo dei numeri > 0 E la somma solo dei numeri > 0 E la media solo dei numeri > 0 E una stringa di caratteri Decimal 2. assegna a CONT e a SOM, 0 3. leggi il primo numero, NUM 4. finché il numero letto è > = 0 esegui 5. se NUM è anche > 0 allora assegna a SOM, SOM * NUM e incrementa di 1, CONT, fine se 6. leggi un altro numero, NUM 7. torna al passo 4 8. assegna a MEDIA, SOM / CONT 9. stampa MEDIA 10. fine 5) Codifica del pulsante btncalcola_click Test al Computer Private Sub btnmedia_click( ) Dim num, cont, som As Integer Dim media As Decimal cont = 0 som = 0 Test al Computer x = "inserisci numero" ' lettura del primo numero num = Val(InputBox(x)) 'inizio ciclo while While (num > = 0) If (num > 0) then som = som + num cont = cont + 1 endif ' lettura dei rimanenti numeri num = Val(InputBox(x)) End While 'fine ciclo while se la condizione è falsa media = som / cont MsgBox("La media è " & media) PROBLEMA12: Trovare un algoritmo che letta una parola PAR, controlli che sia diversa da. Nel caso la condizione di ciclo è vera, calcoli la sua lunghezza e la sommi e poi continui a leggere altre parole. Nel caso la condizione di ciclo è falsa, esca dal programma stampando a 11

12 video il messaggio la somma delle lunghezze delle parole inserite. (Suggerimenti: utilizzare la funzione PAR.lenght per determinare la lunghezza di PAR, una variabile somma, il programma termina quando la PAR inserita è nulla) PAR Parola da leggere. SOM Somma delle lunghezze delle parole L Lunghezza di una parola E una stringa di caratteri 2 leggi parola, PAR 3. finché la parola, PAR è non nulla esegui 4. assegna ad L, la lunghezza di PAR 5. assegna a SOM, SOM + L 6. leggi un altra parola, PAR 7. torna al passo 3 8. stampa SOM 9. fine Test al Computer Private Sub btnsommalungh_click( ) Dim PAR, x As String Dim som, l As Integer x = "inserisci la parola" PAR = InputBox(x) While PAR <> "" l = PAR.Length som = som + l PAR = InputBox(x) End While MsgBox("somma lunghezze è " & som) PROBLEMA13: Una parola si dice che è palindroma se è leggibile nello stesso modo da destra a sinistra e viceversa come ad es. anna, osso, salas, ecc Trovare un algoritmo che letta una parola PAR, controlli se essa sia palindroma. Per controllare ciò utilizzare una variabile booleana, BIT inizializzata al valore TRUE. Se alla fine del ciclo BIT sarà ancora = TRUE allora si stampi a video il messaggio: la parola & PAR & è palindroma, altrimenti se BIT = FALSE, allora si stampi il messaggio la parola & PAR & non è palindroma. (Suggerimenti: utilizzare la funzione PAR.lenght, il programma termina non appena esso si rende conto che 2 caratteri simmetrici della PAR analizzata sono diversi assegnando a BIT il valore FALSE; la condizione del ciclo while deve essere doppia e deve usare l operatore logico di congiunzione AND. Tale condizione doppia sarà vera finchè entrambe sono vere). 12

13 PAR Parola da leggere. I, J Indici dei caratteri di PAR L BIT Lunghezza di una parola Variabile booleana, true e false 2 leggi parola, PAR; assegna ad I, il valore 0 3. finché la parola è non nulla esegui 4. assegna a L, la lunghezza di PAR e BIT, true 5. finchè I < L/2 and BIT = true esegui 6. assegna a J, L - I 1 7. se PAR(I) < > PAR (J) allora BIT = false 6. incrementa l indice I, di 1 e vai al passo 5 9. se BIT = true allora stampa il messaggio: la parola è palindroma altrimenti stampa il messaggio: la parola non è palindroma 10. fine 3) Diagramma a blocchi Test al Computer 5) Codifica del pulsante btncalcola_click Private Sub btnpalindroma_click( ) Dim PAR As String Dim l As Integer ' lungh = lunghezza della parola letta PAR Dim i, j As Integer ' i e j sono gli indici dei caratteri di PAR Dim bit As Boolean ' bit è una variabile booleana = true o false PAR = InputBox("inserisci la parola") l = PAR.Length bit = True bit è true finchè i caratteri confrontati sono = i = 0 ' i=0 poichè il 1 carattere della parola PAR ha indice = 0 While (i < l/2 And bit = True) 'entrambe vere? j = l - i 1 ' j contiene la posizione del carattere di PAR simmetrico a i If (PAR(i) <> PAR(j)) Then bit è false quando i caratteri simmetrici sono diversi bit = False i = i + 1 End While If (bit = True) Then MsgBox("la parola " & PAR & " è palindroma") Else MsgBox("la parola " & PAR & " non è palindroma") 13

14 OSSERVAZIONE: Del problema13 produrre su carta il seguente test al diagramma a blocchi disegnato. Test dell algoritmo. Usare PAR = anna in modo da avere i seguenti valori PAR Lungh bit i j PAR(i) PAR (j) anna 4 true 0 3 a a 1 2 n n 2 La struttura a iterazione a controllo di coda (DO - LOOP - UNTIL) Essa, nel metodo del diagramma a blocchi, si rappresenta cosi: Essa permette di iterare una porzione di algoritmo finché è falsa una certa condizione stabilita non a priori. Essa si dice a controllo di coda poiché la condizione è posta alla fine ovvero dopo il blocco di istruzioni dell algoritmo da iterare. Quando si usa tale struttura a iterazione a controllo di coda? Essa si usa quando non si sa a priori quante volte si deve iterare il corpo dell algoritmo e la porzione di algoritmo da iterare potrebbe essere eseguita almeno una volta. RIPETIAMO I PROBLEMI 7,8,9,10, 11 CON IL CICLO DO LOOP UNTIL PER FAR NOTARE LE DIFFERENZE TRA ESSI. PROBLEMA14: Trovare un algoritmo che letto un numero NUM, controlli che esso sia non negativo cioè che è falsa la condizione di ciclo NUM < 0. Nel caso la condizione di ciclo è falsa proceda a leggere altri numeri interi. Nel caso la condizione di ciclo è vera esca dal programma stampando il messaggio Lettura terminata. (Suggerimento: Il programma termina quando l utente legge un numero NUM < 0, nella label descrizione modificare la proprietà autosize a false) NUM E il numero da leggere. E una stringa di caratteri 2. Fai le seguenti istruzioni 3. leggi il numero, NUM 4. finché NUM < 0 è falsa torna al passo 2 5. stampa il messaggio lettura terminata 6. fine 14

15 TEST AL COMPUTER Private Sub btnlegginumeri_click() 'Dichiarazione delle variabili Dim num As Integer x = "inserisci numero" 'inizio ciclo do loop until Do num=val(inputbox(x)) Loop Until (num < 0) 'fine ciclo do loop until se la condizione è vera MsgBox("Lettura terminata") PROBLEMA15: Trovare un algoritmo che letto un numero NUM, controlli che esso sia = 0 e nel caso positivo lo conti. Successivamente controlli, usando la condizione di ciclo, che esso sia non negativo cioè che è falsa la condizione NUM < 0. Nel caso la condizione di ciclo è falsa proceda a leggere altri numeri interi ed a contarli se sono anche = 0. Nel caso la condizione di ciclo è vera esca dal programma stampando a video la quantità dei numeri 0 inseriti (Suggerimento: Il programma termina quando l utente legge un numero NUM < 0) NUM E il numero da leggere. CONT E il contatore dei numeri = 0 E una stringa di caratteri 2. assegna a CONT, 0 3. Fai le seguenti istruzioni: 4. leggi il numero, NUM 5. se NUM = 0 allora incrementa CONT, fine se 6. la condizione NUM < 0 è falsa, vai al passo 4 7. stampa il messaggio lettura terminata 8. fine Test al computer 5) Codifica del pulsante btncalcola_click Private Sub btncontazero_click ( ) Dim num, cont As Integer ' lettura del primo numero x = "inserisci numero" cont = 0 15

16 'inizio ciclo do loop until Do ' lettura dei numeri num = Val(InputBox(x)) If (num = 0) Then cont = cont + 1 loop until (num < 0) 'fine ciclo do loop until se la condizione è vera MsgBox("Hai inserito " & cont & " numeri = 0") PROBLEMA16: Trovare un algoritmo che letto un numero NUM, controlli che esso sia > 0 e nel caso positivo lo sommi e lo conti. Successivamente controlli, usando la condizione di ciclo, che esso sia non negativo cioè che è falsa la condizione NUM < 0. Nel caso la condizione di ciclo è falsa proceda a leggere altri numeri, a sommarli e a contarli se sono anche > 0. Nel caso la condizione di ciclo è vera esca dal programma stampando a video la media dei numeri inseriti. (Suggerimenti: utilizzare una variabile contatore cont che conti i numeri non negativi letti ed altre due variabili somma e media, il programma termina quando l utente legge un numero NUM < 0) NUM E il numero da leggere. CONT SOM MEDIA E il contatore solo dei numeri > 0 E la somma dei numeri > 0 E la media dei numeri > 0 E una stringa di caratteri Decimal 2. assegna a CONT e a SOM, 0 3. fai le seguenti istruzioni: 4. leggi il numero, NUM 5. se NUM > 0 allora assegna a SOM, SOM * NUM e incrementa di 1, CONT, fine se 6. finchè NUM < 0 è falso, vai al passo 4 7. assegna a MEDIA, SOM / CONT 8. stampa MEDIA 9. fine Test al computer 5) Codifica del pulsante btncalcola_click Private Sub btnmedia_click() Dim num, cont, som As Integer Dim media As Decimal ' lettura del primo numero x = "inserisci numero" 16

17 cont = 0 som = 0 'inizio ciclo do loop until Do num = Val(InputBox(x)) If (num > 0) Then som = som + num cont = cont + 1 Loop Until (num < 0) 'fine ciclo do loop until se la condizione è vera media = som / cont MsgBox("La media è" & media) PROBLEMA17: Trovare un algoritmo che letta una parola PAR, controlli che la sua lunghezza sia > 0 e nel caso positivo la sommi. Successivamente controlli, usando la condizione di ciclo, che la parola non sia =, cioè che è falsa la condizione PAR =. Nel caso la condizione di ciclo è falsa proceda a leggere altre parole ed a sommarne le lunghezze. Nel caso la condizione di ciclo è vera esca dal programma stampando a video il messaggio somma lunghezze è & som. (Suggerimenti: utilizzare la funzione PAR.lenght per determinare la lunghezza di PAR, una variabile somma, il programma termina quando la PAR inserita è nulla) PAR Parola da leggere. SOM Somma delle lunghezze delle parole L Lunghezza di una parola E una stringa di caratteri 2. fai le seguenti istruzioni: 3. leggi la parola PAR 4. assegna ad L, la lunghezza di PAR 5. se la lunghezza L > 0 allora assegna a SOM, SOM + L, fine se 6. finchè PAR= è falso torna al passo 3 8. stampa SOM 9. fine Test al Computer 5) Codifica del pulsante btncalcola_click Private Sub btnsommalungh_click( ) Dim PAR, x As String Dim som, l As Integer 17

18 x = "inserisci la parola" Do PAR = InputBox(x) l = PAR.Length If (l > 0) Then som = som + l End if Loop Until (PAR = "") MsgBox("somma lunghezze è " & som) PROBLEMA18 Una parola si dice che è palindroma se è leggibile nello stesso modo da destra a sinistra e viceversa come ad es. anna, ossesso, ecc. Trovare un algoritmo che letta una parola PAR, controlli se essa sia palindroma. Per controllare ciò utilizzare una variabile booleana, BIT inizializzata al valore TRUE. Se alla fine del ciclo BIT sarà ancora = TRUE allora si stampi a video il messaggio: la parola & PAR & è palindroma, altrimenti se BIT = FALSE, allora si stampi il messaggio la parola & PAR & non è palindroma. (Suggerimenti: utilizzare la funzione PAR.lenght; il programma termina non appena esso si rende conto che 2 caratteri simmetrici della PAR analizzata sono diversi assegnando a BIT il valore FALSE; la condizione del ciclo do loop until deve essere doppia e deve usare l operatore logico di congiunzione OR. Tale condizione doppia sarà falsa finchè entrambe sono false ) PAR Parola da leggere. I, J Indici dei caratteri di PAR L BIT Lunghezza di una parola Variabile booleana, true e false 2 leggi parola, PAR 3. assegna a L, lenght(par), BIT, true, I a 0 5. fai le seguenti istruzioni: 6. Assegna a J, L-I-1 3) Diagramma a blocchi 7. se PAR(I) < > PAR(J) allora a BIT, False 8. incrementa I, di 1 6. finchè (I >L/2 OR BIT=False) è falsa vai al se BIT=True allora parola palindroma altrimenti stampa parola non palindroma 10. fine Test al Computer 18

19 5) Codifica del pulsante btncalcola_click Private Sub btnpalindroma_click( ) Dim PAR, x As String Dim l As Integer ' lungh = lunghezza della parola letta PAR Dim i, j As Integer ' i e j sono gli indici dei caratteri di PAR Dim bit As Boolean ' bit è una variabile booleana = true o false x = "inserisci la parola" i = 0 ' i=0 poichè il 1 carattere della parola PAR ha indice = 0 PAR = InputBox(x) l = PAR.Length bit = True 'bit è true finchè i caratteri confrontati sono = Do j = l - i - 1 ' j contiene la posizione del carattere di PAR simmetrico a i If (PAR(i) <> PAR(j)) Then 'bit è false quando i caratteri simmetrici sono diversi bit = False i = i + 1 Loop Until (i > = l / 2 Or bit = False) 'entrambe false? If (bit = True) Then MsgBox("la parola " & PAR & " è palindroma") Else MsgBox("la parola " & PAR & " non è palindroma") OSSERVAZIONE: Del problema18 produrre su carta il seguente test al diagramma a blocchi disegnato: PAR = anna in modo da avere i seguenti valori PAR Lungh bit i j PAR(i) PAR (j) Produrre altri test a vostra scelta su carta, anna 4 true 0 3 a a testando l algoritmo con altre parole scelte 1 2 n n a caso. 2 ESERCIZI PER CASA CON IL CICLO WHILE O CON IL CICLO DO LOOP UNTIL PROBLEMA19: Per una serata da ballo al "Maccheroni" di Latina, leggere una serie di amici da invitare, finchè l'utente non inserisce la parola "FINE" e stampare quanti hanno nel contatto come ultimo carattere la vocale "n" (pulsante LeggiStampa) (Ad es. se leggo i contatti: TogniN, AlbertoN, MarangoN, De Carlini, Baldassarre, ecc. devo stampare: contn = 3) PROBLEMA20: Per una indagine Statistica, leggere una serie di nomi di Supermercati, finchè l'utente non inserisce la parola "STOP" e stampare quanti hanno il nome lungo al massimo 5 caratteri (pulsante LeggiStampa) (Ad es. se leggo i nomi: Todis, Sidis, Conad, Lidl, Eurospin ecc. devo stampare: cont5 = 3) 19

Ripasso di: Algoritmi con le strutture di Selezione e cicliche in VB.Net Prof. M. Simone - ITCG Padre S. Lener Classe 4Gx Marcianise A.S.

Ripasso di: Algoritmi con le strutture di Selezione e cicliche in VB.Net Prof. M. Simone - ITCG Padre S. Lener Classe 4Gx Marcianise A.S. MODULO 2 Algoritmi con le strutture di Selezione e cicliche in VB.Net 1) Si parla di struttura di selezione ad una via, quando il percorso falso non è presente. Essa, nel metodo del diagramma a blocchi,

Dettagli

Programma del corso. Elementi di Programmazione. Introduzione agli algoritmi. Rappresentazione delle Informazioni. Reti di Calcolatori

Programma del corso. Elementi di Programmazione. Introduzione agli algoritmi. Rappresentazione delle Informazioni. Reti di Calcolatori Programma del corso Introduzione agli algoritmi Rappresentazione delle Informazioni Reti di Calcolatori Architettura del calcolatore Elementi di Programmazione Esempi di algoritmi e programmi Conversione

Dettagli

La ricerca dicotomica

La ricerca dicotomica La ricerca dicotomica Se l array è ordinato, la ricerca di un elemento può essere realizzata in modo più efficiente rispetto alla ricerca sequenziale, utilizzando la ricerca dicotomica. Si usa il termine

Dettagli

PROGRAMMAZIONE STRUTTURATA

PROGRAMMAZIONE STRUTTURATA PROGRAMMAZIONE STRUTTURATA Programmazione strutturata 2 La programmazione strutturata nasce come proposta per regolamentare e standardizzare le metodologie di programmazione (Dijkstra, 1965) Obiettivo:

Dettagli

Esercitazione 4. Comandi iterativi for, while, do-while

Esercitazione 4. Comandi iterativi for, while, do-while Esercitazione 4 Comandi iterativi for, while, do-while Comando for for (istr1; cond; istr2) istr3; Le istruzioni vengono eseguite nel seguente ordine: 1) esegui istr1 2) se cond è vera vai al passo 3 altrimenti

Dettagli

PROGRAMMAZIONE: Le strutture di controllo

PROGRAMMAZIONE: Le strutture di controllo PROGRAMMAZIONE: Le strutture di controllo Prof. Enrico Terrone A. S: 2008/09 Le tre modalità La modalità basilare di esecuzione di un programma è la sequenza: le istruzioni vengono eseguite una dopo l

Dettagli

Introduzione a Visual Basic Lezione 2 Cicli e anomalie

Introduzione a Visual Basic Lezione 2 Cicli e anomalie a Visual Basic Lezione 2 Mario Alviano Introduzione all informatica Università della Calabria http://alviano.net/introinfo A.A. 2008/09 Introduzione Perché i cicli? Un esempio concreto Finora abbiamo visto

Dettagli

VBA è un linguaggio di scripting derivato da Visual Basic, da cui prende il nome. Come ogni linguaggio ha le sue regole.

VBA è un linguaggio di scripting derivato da Visual Basic, da cui prende il nome. Come ogni linguaggio ha le sue regole. Excel VBA VBA Visual Basic for Application VBA è un linguaggio di scripting derivato da Visual Basic, da cui prende il nome. Come ogni linguaggio ha le sue regole. 2 Prima di iniziare. Che cos è una variabile?

Dettagli

Dall algoritmo al programma

Dall algoritmo al programma Dall algoritmo al programma Il concetto di algoritmo Un algoritmo è una sequenza di passi necessari per risolvere un problema o eseguire una computazione In alcuni casi, lo stesso problema/computazione

Dettagli

6 - Blocchi e cicli. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

6 - Blocchi e cicli. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo 6 - Blocchi e cicli Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://pages.di.unipi.it/milazzo milazzo di.unipi.it

Dettagli

Le Strutture di controllo Del Linguaggio C. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni

Le Strutture di controllo Del Linguaggio C. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni Le Strutture di controllo Del Linguaggio C Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni STRUTTURE DI CONTROLLO PRIMITIVE SEQUENZA SELEZIONE (o scelta logica) ITERAZIONE NON PRIMITIVE

Dettagli

Problema: dati i voti di tutti gli studenti di una classe determinare il voto medio della classe.

Problema: dati i voti di tutti gli studenti di una classe determinare il voto medio della classe. Problema: dati i voti di tutti gli studenti di una classe determinare il voto medio della classe. 1) Comprendere il problema 2) Stabilire quali sono le azioni da eseguire per risolverlo 3) Stabilire la

Dettagli

Preparati per il compito in classe Modulo 5

Preparati per il compito in classe Modulo 5 Preparati per il compito in classe Modulo 5 Hai i dati relativi a una serie di N (con N < 20) cinema, per ogni cinema si conoscono il nome e l incasso. Scrivi un programma che, presi in input tali dati,

Dettagli

Le strutture di controllo in C++

Le strutture di controllo in C++ Le strutture di controllo in C++ Docente: Ing. Edoardo Fusella Dipartimento di Ingegneria Elettrica e Tecnologie dell Informazione Via Claudio 21, 4 piano laboratorio SECLAB Università degli Studi di Napoli

Dettagli

Istruzioni iterative. Istruzioni iterative

Istruzioni iterative. Istruzioni iterative Istruzioni iterative Esempio: Leggere 5 interi, calcolarne la somma e stamparli. Variante non accettabile: 5 variabili, 5 istruzioni di lettura, 5... int i1, i2, i3, i4, i5; scanf("%d", &i1):... scanf("%d",

Dettagli

in termini informali: un algoritmo è una sequenza ordinata di operazioni che risolve un problema specifico

in termini informali: un algoritmo è una sequenza ordinata di operazioni che risolve un problema specifico Click to edit Algoritmo Master title style algoritmo: un insieme ordinato di operazioni non ambigue ed effettivamente computabili che, quando eseguito, produce un risultato e si arresta in un tempo finito

Dettagli

28/02/2014 Copyright V. Moriggia

28/02/2014 Copyright V. Moriggia Informatica per la Finanza 3 Le variabili in VBA Altri I/O 28/02/2014 Copyright 2005-2007 V. Moriggia 1 28/02/2014 3.2 Le variabili in VBA V. Moriggia 1 28/02/2014 3.3 Dichiarazione di variabili in VBA

Dettagli

Algoritmi e soluzione di problemi

Algoritmi e soluzione di problemi Algoritmi e soluzione di problemi Dato un problema devo trovare una soluzione. Esempi: effettuare una telefonata calcolare l area di un trapezio L algoritmo è la sequenza di operazioni (istruzioni, azioni)

Dettagli

Compitino di Laboratorio di Informatica CdL in Matematica 13/11/2007 Teoria Compito A

Compitino di Laboratorio di Informatica CdL in Matematica 13/11/2007 Teoria Compito A Matematica 13/11/2007 Teoria Compito A Domanda 1 Descrivere, eventualmente utilizzando uno schema, gli elementi funzionali di una CPU. Domanda 2 Java è un linguaggio compilato o interpretato? Motivare

Dettagli

DAL DIAGRAMMA AL CODICE

DAL DIAGRAMMA AL CODICE DAL DIAGRAMMA AL CODICE Un diagramma di flusso Appare, come un insieme di blocchi di forme diverse che contengono le istruzioni da eseguire, collegati fra loro da linee orientate che specificano la sequenza

Dettagli

Algoritmo per l ordinamento di un array

Algoritmo per l ordinamento di un array Algoritmo per l ordinamento di un array Spesso si ha la necessità di lavorare con vettori ordinati, cioè si devono mettere gli elementi in ordine alfabetico se sono stringhe o in in ordine di grandezza

Dettagli

Informatica ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE. Francesco Tura. F. Tura

Informatica ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE. Francesco Tura. F. Tura Informatica ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE Francesco Tura [email protected] 1 Lo strumento dell informatico: ELABORATORE ELETTRONICO [= calcolatore = computer] Macchina multifunzionale Macchina

Dettagli

Appunti di informatica. Lezione 10 anno accademico Mario Verdicchio

Appunti di informatica. Lezione 10 anno accademico Mario Verdicchio Appunti di informatica Lezione 10 anno accademico 2016-2017 Mario Verdicchio Esercizio Scrivere un programma che, data una sequenza di 10 interi (scelta dall utente), la ordini in ordine crescente Soluzione

Dettagli

Un esempio per iniziare. Il controllo del programma in C. Altri cenni su printf() Esercizi (printf) printf( 8!=%d, fatt);

Un esempio per iniziare. Il controllo del programma in C. Altri cenni su printf() Esercizi (printf) printf( 8!=%d, fatt); Un esempio per iniziare Il controllo del programma in C DD Cap.3 pp.91-130 /* calcolo di 8!*/ #include #define C 8 int main() int i=1; int fatt=1; while (i

Dettagli

Esercitazione 3. Espressioni booleane I comandi if-else e while

Esercitazione 3. Espressioni booleane I comandi if-else e while Esercitazione 3 Espressioni booleane I comandi if-else e while Esercizio Si consideri la seguente istruzione: if (C1) if (C2) S1; else S2; A quali delle seguenti interpretazioni corrisponde? if (C1) if

Dettagli

VBA Principali Comandi

VBA Principali Comandi VBA Principali Comandi Sintassi Significato Esempio Dim As Dichiarazione Dim x As Integer di una variabile Dim , , ,.,

Dettagli

= < < < < < Matematica 1

= < < < < < Matematica  1 NUMERI NATURALI N I numeri naturali sono: 0,1,2,3,4,5,6,7,8,9,10,11,12,13,... L insieme dei numeri naturali è indicato con la lettera. Si ha cioè: N= 0,1,2,3,4,5,6,7,.... L insieme dei naturali privato

Dettagli

Introduzione alla programmazione Esercizi risolti

Introduzione alla programmazione Esercizi risolti Esercizi risolti 1 Esercizio Si determini se il diagramma di flusso rappresentato in Figura 1 è strutturato. A B C D F E Figura 1: Diagramma di flusso strutturato? Soluzione Per determinare se il diagramma

Dettagli

Istruzioni iterative (o cicliche)

Istruzioni iterative (o cicliche) Dipartimento di Informatica e Sistemistica Antonio Ruberti Sapienza Università di Roma Istruzioni iterative (o cicliche) Corso di Fondamenti di Informatica Laurea in Ingegneria Informatica (Canale di Ingegneria

Dettagli

Introduzione alla programmazione Algoritmi e diagrammi di flusso. Sviluppo del software

Introduzione alla programmazione Algoritmi e diagrammi di flusso. Sviluppo del software Introduzione alla programmazione Algoritmi e diagrammi di flusso F. Corno, A. Lioy, M. Rebaudengo Sviluppo del software problema idea (soluzione) algoritmo (soluzione formale) programma (traduzione dell

Dettagli

Matlab. Istruzioni condizionali, cicli for e cicli while.

Matlab. Istruzioni condizionali, cicli for e cicli while. Matlab. Istruzioni condizionali, cicli for e cicli while. Alvise Sommariva Università degli Studi di Padova Dipartimento di Matematica 17 marzo 2016 Alvise Sommariva Introduzione 1/ 18 Introduzione Il

Dettagli

Costrutti condizionali e iterativi

Costrutti condizionali e iterativi Costrutti condizionali e iterativi Introduction to Fortran 90 Paolo Ramieri, CINECA Aprile 2014 Strutture di controllo Le strutture di controllo permettono di alterare la sequenza di esecuzione delle istruzioni

Dettagli

Linguaggio C - le strutture di controllo: sequenza, selezione, iterazione

Linguaggio C - le strutture di controllo: sequenza, selezione, iterazione Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Linguaggio C - le strutture di controllo: sequenza, selezione, iterazione

Dettagli

Introduzione a Visual Basic Lezione 1 Concetti base e istruzioni condizionali

Introduzione a Visual Basic Lezione 1 Concetti base e istruzioni condizionali a Visual Basic Lezione 1 Concetti base e istruzioni condizionali Mario Alviano Introduzione all informatica Università della Calabria http://alviano.net/introinfo A.A. 2008/09 Introduzione Un esempio:

Dettagli

Algoritmi e dintorni: La radice quadrata Prof. Ettore Limoli. Formule iterative

Algoritmi e dintorni: La radice quadrata Prof. Ettore Limoli. Formule iterative Algoritmi e dintorni: La radice quadrata Prof. Ettore Limoli Formule iterative L algoritmo che, comunemente, viene presentato a scuola per l estrazione della radice quadrata è alquanto laborioso e di scarsa

Dettagli

5 Array Cicli iterativi Contenuto di cella 28/02/2014 Copyright V. Moriggia 1

5 Array Cicli iterativi Contenuto di cella 28/02/2014 Copyright V. Moriggia 1 Informatica per la Finanza 5 Array Cicli iterativi Contenuto di cella 28/02/2014 Copyright 2005-2013 V. Moriggia 1 28/02/2014 7.2 ARRAY V. Moriggia 1 28/02/2014 5.3 Esercizio Trovare il maggiore tra 3

Dettagli

Strutture di Controllo

Strutture di Controllo Introduzione Strutture di Controllo per strutture condizionali e cicliche Quando si affronta la programmazione si devono indicare al computer delle istruzioni da eseguire. Se il computer potesse comprendere

Dettagli

Sviluppo di programmi

Sviluppo di programmi Sviluppo di programmi Per la costruzione di un programma conviene: 1. condurre un analisi del problema da risolvere 2. elaborare un algoritmo della soluzione rappresentato in un linguaggio adatto alla

Dettagli

Altrimenti, il M.C.D. di a e b è anche divisore di r (e.g. a=15,b=6,r=3 che è il M.C.D.)

Altrimenti, il M.C.D. di a e b è anche divisore di r (e.g. a=15,b=6,r=3 che è il M.C.D.) Elaboratore Un elaboratore o computer è una macchina digitale, elettronica, automatica capace di effettuare trasformazioni o elaborazioni sui dati digitale l informazione è rappresentata in forma numerica

Dettagli

Errori frequenti Cicli iterativi Array. Cicli e array. Laboratorio di Programmazione I. Corso di Laurea in Informatica A.A.

Errori frequenti Cicli iterativi Array. Cicli e array. Laboratorio di Programmazione I. Corso di Laurea in Informatica A.A. Cicli e array Laboratorio di Programmazione I Corso di Laurea in Informatica A.A. 2016/2017 Calendario delle lezioni Lez. 1 Lez. 2 Lez. 3 Lez. 4 Lez. 5 Lez. 6 Lez. 7 Lez. 8 - Introduzione all ambiente

Dettagli

Definizione di algoritmo

Definizione di algoritmo L algoritmo Il termine algoritmo deriva da AL-KWHARIZMI, matematico arabo vissuto nell VIII secolo d.c. considerato il padre dell algebra. In realtà i primi algoritmi risalgono a 4000 anni fa e sono descritti

Dettagli

Laboratorio di Programmazione Lezione 2. Cristian Del Fabbro

Laboratorio di Programmazione Lezione 2. Cristian Del Fabbro Laboratorio di Programmazione Lezione 2 Cristian Del Fabbro Prossima lezione GIOVEDÌ 29 OTTOBRE 14:00 Input da tastiera package input; import java.io.*; public class Input { public static void main(string[]

Dettagli

COSA SONO I FLOW CHART

COSA SONO I FLOW CHART COSA SONO LOW CHART flow chart sono schemi che descrivono visivamente come procede l esecuzione di un programma. Essi non sono legati ad uno specifico linguaggio: dato un flow chart, il programmatore può

Dettagli

Formalismi per la descrizione di algoritmi

Formalismi per la descrizione di algoritmi Formalismi per la descrizione di algoritmi Per descrivere in passi di un algoritmo bisogna essere precisi e non ambigui Il linguaggio naturale degli esseri umani si presta a interpret non univoche Si usano

Dettagli

Problemi, algoritmi e oggetti

Problemi, algoritmi e oggetti Fondamenti di informatica Oggetti e Java Luca Cabibbo Capitolo 5 Marzo 2007 1 Fondamenti di informatica: Oggetti e Jav Contenuti... Problemi e algoritmi comprensione del problema identificazione di un

Dettagli

Diagrammi di flusso. Un metodo per rappresentare graficamente gli algoritmi. sotto programma. Input/ Output. Start. predicato Elaborazione Stop

Diagrammi di flusso. Un metodo per rappresentare graficamente gli algoritmi. sotto programma. Input/ Output. Start. predicato Elaborazione Stop Diagrammi di flusso Un metodo per rappresentare graficamente gli algoritmi. Input/ Output sotto programma Start predicato Elaborazione Stop La programmazione strutturata Un algoritmo è strutturato in blocchi

Dettagli

Esempi di Problemi Iterativi

Esempi di Problemi Iterativi Corso di Laurea Ingegneria Civile Elementi di Informatica Esempi di Problemi Iterativi C. Limongelli Esempi di Problemi Iterativi 1 Contenuti Esercizi: Palindroma Anagramma Fibonacci Esempi di Problemi

Dettagli

Programma del corso. Elementi di Programmazione. Introduzione agli algoritmi. Rappresentazione delle Informazioni. Architettura del calcolatore

Programma del corso. Elementi di Programmazione. Introduzione agli algoritmi. Rappresentazione delle Informazioni. Architettura del calcolatore Programma del corso Introduzione agli algoritmi Rappresentazione delle Informazioni Architettura del calcolatore Reti di Calcolatori Elementi di Programmazione Algoritmi e programmi Algoritmo Sequenza

Dettagli

Iterazione determinata e indeterminata

Iterazione determinata e indeterminata Iterazione determinata e indeterminata Le istruzioni iterative permettono di ripetere determinate azioni più volte: un numero di volte fissato = iterazione determinata Esempio: fai un giro del parco di

Dettagli

Informatica B. Sezione D. Scuola di Ingegneria Industriale Laurea in Ingegneria Energetica Laurea in Ingegneria Meccanica

Informatica B. Sezione D. Scuola di Ingegneria Industriale Laurea in Ingegneria Energetica Laurea in Ingegneria Meccanica Scuola di Ingegneria Industriale Laurea in Ingegneria Energetica Laurea in Ingegneria Meccanica Dipartimento di Elettronica, Informazione e Bioingegneria Informatica B Sezione D Franchi Alessio Mauro,

Dettagli

Corso di Informatica di Base

Corso di Informatica di Base Corso di Informatica di Base A.A. 2011/2012 Algoritmi e diagrammi di flusso Luca Tornatore Cos è l informatica? Calcolatore: esecutore di ordini o automa Programma: insieme di istruzioni che possono essere

Dettagli

Modulo 1 Concetti di base della Tecnologia dell Informazione

Modulo 1 Concetti di base della Tecnologia dell Informazione Modulo 1 Concetti di base della Tecnologia dell Informazione 1.0.1.1 1.0.1.2 1.0.1.3 Algoritmi Definizione di algoritmo e sua rappresentazione grafica Per algoritmo si intende un procedimento, che permette

Dettagli

Programmazione in Python. Moreno Marzolla

Programmazione in Python. Moreno Marzolla Programmazione in Python Moreno Marzolla http://www.moreno.marzolla.name/ Copyright 2011, Moreno Marzolla (http://www.moreno.marzolla.name/teaching/labinf2011/) This work is licensed under the Creative

Dettagli

Prof. Giuseppe Chiumeo. Avete già studiato che qualsiasi algoritmo appropriato può essere scritto utilizzando soltanto tre strutture di base:

Prof. Giuseppe Chiumeo. Avete già studiato che qualsiasi algoritmo appropriato può essere scritto utilizzando soltanto tre strutture di base: LA STRUTTURA DI RIPETIZIONE La ripetizione POST-condizionale La ripetizione PRE-condizionale INTRODUZIONE (1/3) Avete già studiato che qualsiasi algoritmo appropriato può essere scritto utilizzando soltanto

Dettagli

Visual basic base Lezione 13. Ancora su ListBox e cicli

Visual basic base Lezione 13. Ancora su ListBox e cicli Ancora su ListBox e Cicli Ancora su ListBox e cicli Oggi torniamo sulle ListBox e i cicli. Per prima cosa vogliamo mostrare come gestire le ListBox in cui vogliamo permettere una selezione multipla. Per

Dettagli

Laboratorio di programmazione

Laboratorio di programmazione Laboratorio di programmazione 9 novembre 2016 Sequenze di Collatz Considerate la seguente regola: dato un numero intero positivo n, se n è pari lo si divide per 2, se è dispari lo si moltiplica per 3 e

Dettagli

Rappresentazione con i diagrammi di flusso (Flow - chart)

Rappresentazione con i diagrammi di flusso (Flow - chart) Rappresentazione con i diagrammi di flusso (Flow - chart) Questo tipo di rappresentazione grafica degli algoritmi, sviluppato negli anni 50, utilizza una serie di simboli grafici dal contenuto evocativo

Dettagli

Excel & VBA. Excel e Visual Basic for Application

Excel & VBA. Excel e Visual Basic for Application Excel & VBA Excel e Visual Basic for Application Automazione Excel con VBA incorpora la tecnologia dell automazione (OLE automation) Excel dialoga con VBA attraverso un insieme di comandi detto libreria

Dettagli

Informatica/ Ing. Meccanica/ Prof. Verdicchio/ 14/02/2012 / Foglio delle domande / VERSIONE 1

Informatica/ Ing. Meccanica/ Prof. Verdicchio/ 14/02/2012 / Foglio delle domande / VERSIONE 1 Informatica/ Ing. Meccanica/ Prof. Verdicchio/ 14/02/2012 / Foglio delle domande / VERSIONE 1 1) Il bus in un computer trasporta a) solo dati b) solo istruzioni c) sia dati sia istruzioni 2) In una sequenza

Dettagli

Algoritmi di Ricerca. Esempi di programmi Java

Algoritmi di Ricerca. Esempi di programmi Java Fondamenti di Informatica Algoritmi di Ricerca Esempi di programmi Java Fondamenti di Informatica - D. Talia - UNICAL 1 Ricerca in una sequenza di elementi Data una sequenza di elementi, occorre verificare

Dettagli

Cosa si intende con stato

Cosa si intende con stato Il concetto di stato Cosa si intende con stato I una particolare configurazione delle informazioni di una macchina, che in qualche modo memorizza le condizioni in cui si trova, e che cambia nel tempo passando

Dettagli

Introduzione agli algoritmi e alla programmazione in VisualBasic.Net

Introduzione agli algoritmi e alla programmazione in VisualBasic.Net Introduzione agli algoritmi e alla programmazione in VisualBasic.Net Definizione di utente e di programmatore L utente è colui che usa il computer anche se non è in grado di programmarlo. Il programmatore

Dettagli

Codice Gray. (versione Marzo 2007)

Codice Gray. (versione Marzo 2007) Codice Gray (versione Marzo 27) Data una formula booleana con n variabili, per costruire una tavola di verità per questa formula è necessario generare tutte le combinazioni di valori per le n variabili.

Dettagli

VISUAL BASIC FOR APPLICATION

VISUAL BASIC FOR APPLICATION VISUAL BASIC FOR APPLICATION LA PIATTAFORMA DI SVILUPPO GLI ELEMENTI DI VBA Finestra di progetto: mostra l elenco gerarchico dei progetti aperti e di tutti i moduli di codice e finestre di interfaccia

Dettagli

STRUTTURA E LOGICA DI FUNZIONAMENTO DEL COMPUTER

STRUTTURA E LOGICA DI FUNZIONAMENTO DEL COMPUTER 1 STRUTTURA E LOGICA DI FUNZIONAMENTO DEL COMPUTER Un computer e una macchina che riceve in ingresso delle informazioni, le elabora secondo un determinato procedimento e produce dei risultati che vengono

Dettagli

IMPOSTAZIONI DI EXCEL. Per rendere disponibile l ambiente di sviluppo di Visual Basic for Application in Excel:

IMPOSTAZIONI DI EXCEL. Per rendere disponibile l ambiente di sviluppo di Visual Basic for Application in Excel: Impostazioni di Excel IMPOSTAZIONI DI EXCEL Per rendere disponibile l ambiente di sviluppo di Visual Basic for Application in Excel: Excel Options / Popular oppure Excel Options / Customize ribbon selezionare:

Dettagli

Informatica/ Ing. Meccanica/ Edile/ Prof. Verdicchio/ 30/06/2016/ Foglio delle domande / VERSIONE 1

Informatica/ Ing. Meccanica/ Edile/ Prof. Verdicchio/ 30/06/2016/ Foglio delle domande / VERSIONE 1 Informatica/ Ing. Meccanica/ Edile/ Prof. Verdicchio/ 30/06/2016/ Foglio delle domande/ VERSIONE 1 1) In Python, se scrivo v = [ ] in un programma, vuol dire che a) v è un quadrato b) v è un insieme vuoto

Dettagli

Array in Fortran 90. Ing. Luca De Santis. Anno accademico 2006/2007. DIS - Dipartimento di informatica e sistemistica

Array in Fortran 90. Ing. Luca De Santis. Anno accademico 2006/2007. DIS - Dipartimento di informatica e sistemistica Array in Fortran 90 Ing. Luca De Santis DIS - Dipartimento di informatica e sistemistica Anno accademico 2006/2007 Fortran 90: array DIS - Dipartimento di informatica e sistemistica 1 / 25 Cosa vedremo

Dettagli

Strutture di controllo in C++

Strutture di controllo in C++ Strutture di controllo in C++ Fondamenti di Informatica R. Basili a.a. 2006-2007 Il controllo: selezione Spesso la sequenza delle istruzioni non e prevedibile a priori ma dipende strettamente dalle configurazioni

Dettagli

Laboratorio di programmazione

Laboratorio di programmazione Laboratorio di programmazione Lezione II Tatiana Zolo [email protected] 1 IL PROGRAMMA C++ Istruzioni (espressioni terminate da ; ) istruzioni di dichiarazione (es. int x = 0;); istruzioni di assegnamento

Dettagli

Fondamenti di Informatica. Algoritmi di Ricerca e di Ordinamento

Fondamenti di Informatica. Algoritmi di Ricerca e di Ordinamento Fondamenti di Informatica Algoritmi di Ricerca e di Ordinamento 1 Ricerca in una sequenza di elementi Data una sequenza di elementi, occorre verificare se un elemento fa parte della sequenza oppure l elemento

Dettagli

RAPPRESENTAZIONE GLI ALGORITMI NOTAZIONE PER LA RAPPRESENTAZIONE DI UN ALGORITMO

RAPPRESENTAZIONE GLI ALGORITMI NOTAZIONE PER LA RAPPRESENTAZIONE DI UN ALGORITMO RAPPRESENTAZIONE GLI ALGORITMI NOTAZIONE PER LA RAPPRESENTAZIONE DI UN ALGORITMO Rappresentazione degli algoritmi Problema Algoritmo Algoritmo descritto con una qualche notazione Programma Defne del procedimento

Dettagli

5 - Istruzioni condizionali

5 - Istruzioni condizionali 5 - Istruzioni condizionali Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it

Dettagli

Fondamenti di Informatica T-1 Modulo 2

Fondamenti di Informatica T-1 Modulo 2 Fondamenti di Informatica T-1 Modulo 2 1 Obiettivi di questa esercitazione 1. Array 2 Esercizio 1 Creare un programma che legga da input un numero non noto a priori di interi (al più 10) terminati da 0.

Dettagli

Laboratorio di Programmazione

Laboratorio di Programmazione Laboratorio di Programmazione Laurea in Bioinformatica Docente: Carlo Drioli Web: www.scienze.univr.it/fol/main?ent=oi&id=39990 Programmazione: Dati Strutture di controllo Algoritmi Materiale tratto dai

Dettagli

Lezione 7: La Formalizzazione degli Algoritmi - Strutture di Controllo e Selettive La Programmazione Strutturata (3 p) Giovedì 21 Ottobre 2010

Lezione 7: La Formalizzazione degli Algoritmi - Strutture di Controllo e Selettive La Programmazione Strutturata (3 p) Giovedì 21 Ottobre 2010 Università di Salerno Corso di FONDAMENTI DI INFORMATICA Corso di Laurea Ingegneria Corso B Docente : Ing. Anno Accademico 2010-2011 Lezione 7: La Formalizzazione degli Algoritmi - Strutture di Controllo

Dettagli

Prof. Pagani Corrado ALGORITMI ESERCITAZIONI CICLI

Prof. Pagani Corrado ALGORITMI ESERCITAZIONI CICLI Prof. Pagani Corrado ALGORITMI ESERCITAZIONI CICLI DIAGRAMMA A BLOCCHI: SWITCH DIAGRAMMA BLOCCHI: WHILE DIAGRAMMA BLOCCHI: FOR for (inizializzazione contatore, condizione, incremento) { istruzioni ; }

Dettagli

Sviluppo di programmi. E ora, finalmente. Si comincia! 1. Analizzare il problema. 2. Progettare una soluzione (1) E necessario capire:

Sviluppo di programmi. E ora, finalmente. Si comincia! 1. Analizzare il problema. 2. Progettare una soluzione (1) E necessario capire: Sviluppo di programmi Per scrivere un programma C corretto bisogna: E ora, finalmente Si comincia! DD Cap. pp.4974 Analizzare il problema (input, output, casi estremali) 2. Progettare una soluzione (algoritmo)

Dettagli

Algoritmi e basi del C Struttura di un programma

Algoritmi e basi del C Struttura di un programma Algoritmi e basi del C Struttura di un programma Marco D. Santambrogio [email protected] Ver. aggiornata al 17 Marzo 2015 Compitini Compitini di INFO: 24 Aprile 2015 4.15pm @ C.G.1 (Ed. 9) 21

Dettagli

Linguaggi di programmazione - Principi e paradigmi 2/ed Maurizio Gabbrielli, Simone Martini Copyright The McGraw-Hill Companies srl

Linguaggi di programmazione - Principi e paradigmi 2/ed Maurizio Gabbrielli, Simone Martini Copyright The McGraw-Hill Companies srl Approfondimento 2.1 Non è questo il testo dove trattare esaurientemente queste tecniche semantiche. Ci accontenteremo di dare un semplice esempio delle tecniche basate sui sistemi di transizione per dare

Dettagli

Esercizi di programmazione in linguaggio C - Costrutto iterazione

Esercizi di programmazione in linguaggio C - Costrutto iterazione Esercizi di programmazione in linguaggio C - Costrutto iterazione prof. Roberto uligni 1. [potenze1] Scrivere un programma che visualizzi il valore di tutte le prime n potenze di 2 con n richiesto all'utente

Dettagli

Matlab : le basi. Vediamo ora un esercizio di calcolo: Il volume di una sfera è dato da V=4*π*r 3 /3 dove r è il raggio.

Matlab : le basi. Vediamo ora un esercizio di calcolo: Il volume di una sfera è dato da V=4*π*r 3 /3 dove r è il raggio. Matlab : le basi Vediamo ora un esercizio di calcolo: Il volume di una sfera è dato da V=4*π*r 3 /3 dove r è il raggio. Usare Matlab per calcolare il raggio di una sfera che ha un volume maggiore del 30%

Dettagli

6) Descrivere con un diagramma a blocchi un algoritmo che legga da input due numeri ne calcoli il prodotto in termini di somme ripetute.

6) Descrivere con un diagramma a blocchi un algoritmo che legga da input due numeri ne calcoli il prodotto in termini di somme ripetute. I due esercizi seguenti su un esempio semplice (trovare il massimo tra due o tra tre numeri) introducono la descrizione di algoritmi con diagrammi a blocchi, le strutture di controllo sequenza e condizione,

Dettagli

1 PARTE Introduzione agli algoritmi e alla programmazione in VisualBasic.Net

1 PARTE Introduzione agli algoritmi e alla programmazione in VisualBasic.Net 1 PARTE Introduzione agli algoritmi e alla programmazione in VisualBasic.Net Definizione di utente e di programmatore L utente è qualsiasi persona che usa il computer anche se non è in grado di programmarlo.

Dettagli