Lez. 11 (10/11) - PBElementi di Programmazione1 Lezione 11 Esercizi
Lez. 11 (10/11) - PBElementi di Programmazione2 Domanda 1 Option Explicit Option Base 1 Function prova(ByVal a As Integer, ByRef b As Integer) As Integer Dim c As Integer c = a + b b = a Mod b prova = b + 1 End Function Sub ex() Dim x As Integer, y As Integer, z As Double y = 10 x = 5 z = prova(y, x) y = prova(8, y) z = x / y End Sub Mostrare la valorizzazione delle variabili durante lesecuzione del presente programma
Lez. 11 (10/11) - PBElementi di Programmazione3 Domanda 1 Option Explicit Option Base 1 Function prova(ByVal a As Integer, ByRef b As Integer) As Integer Dim c As Integer c = a + b b = a Mod b prova = b + 1 End Function Sub ex() Dim x As Integer, y As Integer, z As Double y = 10 x = 5 z = prova(y, x) y = prova(8, y) z = x / y End Sub x y z a b c prova ^x ^x ^x ^x < ^y ^y ^y ^y NB: 8 : 10 = 0 0 8
Lez. 11 (10/11) - PBElementi di Programmazione4 Domanda 2 Trasformare usando listruzione do While... Loop Do A = A + 3 If A > 5 Then Do B = B -1 C = C + 1 Loop While (C>0) End If C = 2 Loop While (A < B)
Lez. 11 (10/11) - PBElementi di Programmazione5 Domanda 2 Trasformare usando listruzione do While... Loop Do A = A + 3 If A > 5 Then Do B = B -1 C = C + 1 Loop While (C>0) End If C = 2 Loop While (A < B) A = A + 3 If A > 5 Then B = B -1 C = C + 1 Do While (C>0) B = B -1 C = C + 1 Loop End If C = 2 Do While (A < B) A = A + 3 If A > 5 Then B = B -1 C = C + 1 Do While (C>0) B = B -1 C = C + 1 Loop End If C = 2 Loop
Lez. 11 (10/11) - PBElementi di Programmazione6 Domanda 2 Do x=x+1 Loop While x >0 x=x+1 Do While x>0 x=x+1 Loop APPLICAZIONE REGOLA GENERALE
Lez. 11 (10/11) - PBElementi di Programmazione7 Domanda 2 Do x=x+1 Do y = y +1 Loop While y<0 Loop x >0 x=x+1 Do y = y +1 Loop While y<0 Do While x>0 x=x+1 Do y = y +1 Loop While y<0 Loop Partenza Passo 1: E indifferente partire Dal ciclo interno o esterno
Lez. 11 (10/11) - PBElementi di Programmazione8 Domanda 2 x=x+1 Do y = y +1 Loop While y<0 Do While x>0 x=x+1 Do y = y +1 Loop While y<0 Loop x=x+1 y = y +1 Do While y<0 y = y +1 Loop Do While x>0 x=x+1 y = y + 1 Do While y<0 y = y +1 Loop Passo 1Passo 2
Lez. 11 (10/11) - PBElementi di Programmazione9 Domanda 2 Do x = x +1 Loop While x < 0 X 5 6 x=x+1 Do while x <0 x= x + 1 Loop X 5 6 Do while x <0 x= x + 1 Loop X 5 Vera equivalenza Equivalenza errata
Lez. 11 (10/11) - PBElementi di Programmazione10 Domanda 3 Date le seguenti dichiarazioni: Dim a As Boolean, b As Boolean Dim c As Double, d As Integer ed i seguenti valori iniziali: a = False b = True c = 2.5 d = 4 Indicare il valore delle espressioni: d = d / 3 + c a = b OR (c > d - c) c = d / 3 + 7
Lez. 11 (10/11) - PBElementi di Programmazione11 Domanda 3 Date le seguenti dichiarazioni: Dim a As Boolean, b As Boolean Dim c As Double, d As Integer ed i seguenti valori iniziali: a = False b = True c = 2.5 d = 4 Indicare il valore delle espressioni: d = d / 3 + c a = b OR (c > d - c) c = d / d = d / 3 + c d= d= 4 arrotonda!!! a = b OR _ (c > d - c) True OR True True c = d / C=8.333
Lez. 11 (10/11) - PBElementi di Programmazione12 Domanda 4 Il codice che segue genera un errore di esecuzione; indicare quale e quale istruzione lo provoca: Option Explicit Option Base 1 Sub ex() Dim vet(3 To 8) vet(7) = 6 vet(8) = 1 vet(1) = 3 End Sub
Lez. 11 (10/11) - PBElementi di Programmazione13 Domanda 4 Il codice che segue genera un errore di esecuzione; indicare quale e quale istruzione lo provoca: Option Explicit Option Base 1 Sub ex() Dim vet(3 To 8) vet(7) = 6 vet(8) = 1 vet(1) = 3 End Sub Vet(1) non esiste
Lez. 11 (10/11) - PBElementi di Programmazione14 Domanda 5 Mostrare il contenuto della cella A2 dopo lesecuzione del seguente codice: Option Explicit Sub ex() Dim S As String S = "prova a provare" S = Replace(S, "va", "XX") Range("A1").Value = S Range("A2").Value=_ Left(S, 4) Range("A3").Value=_ right(S, 4) End Sub
Lez. 11 (10/11) - PBElementi di Programmazione15 Domanda 5 Mostrare il contenuto della cella A2 dopo lesecuzione del seguente codice: Option Explicit Sub ex() Dim S As String S = "prova a provare" S = Replace(S, "va", "XX") Range("A1").Value = S Range("A2").Value=_ Left(S, 4) Range("A3").Value=_ right(S, 4) End Sub proXX a proXXre proX XXre
Lez. 11 (10/11) - PBElementi di Programmazione16 Domanda 6 Date le seguenti dichiarazioni: Dim a As Integer, d As Double Dim c As Boolean, b As Boolean ed i seguenti valori iniziali: a = 8 d = 2.5 c = True b = False Indicare il valore delle espressioni: d = d / 3 + c a = b AND (c > 0) c = d /3 + 7 d valore iniziale
Lez. 11 (10/11) - PBElementi di Programmazione17 Domanda 6 Date le seguenti dichiarazioni: Dim a As Integer, d As Double Dim c As Boolean, b As Boolean ed i seguenti valori iniziali: a = 8 d = 2.5 c = True b = False Indicare il valore delle espressioni: d = d / 3 + c a = b AND (c > 0) c = d /3 + 7 d valore iniziale d = d / 3 + c d = (-1) d = a=b AND (c > 0) a= false AND false a=False c=true
Lez. 11 (10/11) - PBElementi di Programmazione18 Domanda 7 Scrivere lintestazione della funzione ft() che ha tre parametri X, Y, Z; di questi il primo è di tipo Double gli altri due sono facoltativi di tipo Integer il primo per valore, il secondo per riferimento. La funzione restituisce un tipo Double.
Lez. 11 (10/11) - PBElementi di Programmazione19 Domanda 7 Scrivere lintestazione della funzione –ft() –che ha tre parametri X, Y, Z; –di questi il primo è di tipo Double –gli altri due sono facoltativi di tipo Integer il primo per valore, il secondo per riferimento. –La funzione restituisce un tipo Double.
Lez. 11 (10/11) - PBElementi di Programmazione20 Domanda 7 Scrivere lintestazione della funzione ft() che ha tre parametri X, Y, Z; di questi il primo è di tipo Double gli altri due sono facoltativi di tipo Integer il primo per valore, il secondo per riferimento. La funzione restituisce un tipo Double. function ft( X as Double, _ Optional ByVal _ Y As Integer,_ Optional Z As Integer ) As Double
Lez. 11 (10/11) - PBElementi di Programmazione21 Domanda 8 Indicare il contenuto delle celle B1 ed B2 dopo lesecuzione del seguente codice VBA: Option Explicit Sub ex() Dim x As Double, y As Double x = 4 y = 8 y = y ^ 2 + x / 3 x = y + 10 Range("B1").Value = Application.WorksheetFunction.Floor(x, 1) Range("B2").Value = y End Sub
Lez. 11 (10/11) - PBElementi di Programmazione22 Domanda 8 Indicare il contenuto delle celle B1 ed B2 dopo lesecuzione del seguente codice VBA: Option Explicit Sub ex() Dim x As Double, y As Double x = 4 y = 8 y = y ^ 2 + x / 3 x = y + 10 Range("B1").Value = _ Application.WorksheetFunction.Floor(x, 1) Range("B2").Value = y End Sub x y B1 = 75 B2 =