. A p. Esercizio n. 147 S. Dopo aver caricato in memoria centrale un array monodimensionale (vettore) di M elementi numerici interi, individuare l’elemento maggiore ed il minore. Visualizzare il vettore iniziale ed i risultati dell’elaborazione. Analisi dei dati di input e di output br V( ) 14 5 4 –2 10 11 15 1 10 5 7 8 1 4 7 0 0 –4 7 2 li MIN MAX Esempi N 7 5 8 Semantica Dimensione del vettore (numero elementi) Singolo elemento numerico del vettore Elemento minore Elemento maggiore i Output MIN –2 1 –4 se Input M V( ) MAX 15 10 7 PROGRAMMA PRINCIPALE SOTTOPROGRAMMA MIN - MAX INIZIO MIN - MAX MAX = MAXINT* (–1) ht CARICA © INIZIO Es Flow-chart relativo all’algoritmo risolutivo MIN - MAX MIN = MAXINT I = 1, N ig VISUALIZZA yr VISUALIZZA MIN, MAX C op FINE VERO V(I) > MAX FALSO MAX = V(I) VERO V(I) < MIN MIN = V(I) FINE MIN - MAX FALSO Note . A Esercizi sull’elaborazione di strutture dati vettoriali (array) p. Note S. Il sottoprogramma CARICA è lo stesso di quello presentato nell’esercizio n. 144. Il sottoprogramma VISUALIZZA è lo stesso di quello presentato nell’esercizio n. 145. Codifica in Turbo Pascal PROGRAM Eser147; i USES WINCRT; br VAR n,i,sw: INTEGER; v:array[1..100] of REAL; min,max: REAL; li {SOTTOPROGRAMMA CARICA} PROCEDURE carica; Es se BEGIN WRITELN('Digita la dimensione del vettore '); READLN(n); FOR i:=1 to N DO BEGIN WRITELN('Digita l''elemento ',i,' del vettore '); READLN(v[i]); END; END; {SOTTOPROGRAMMA MIN _ MAX} PROCEDURE min _ max; ht © BEGIN max:=maxint; max:=max*(-1); min:=MAXINT; FOR i:=1 to N DO BEGIN IF v[i] > max THEN max:=v[i]; IF v[i] < min THEN min:=v[i]; END; END; BEGIN END; ig {SOTTOPROGRAMMA VISUALIZZA} PROCEDURE visualizza; FOR i:=1 to N DO WRITELN(v[i]:8:1); {PROGRAMMA PRINCIPALE} yr BEGIN op CLRSCR; WRITE('Esercizio 147 - Programma di calcolo del minimo e massimo in un vettore.'); WRITELN(' '); carica; min _ max; visualizza; WRITELN('Il maggiore è ',max:8:1); WRITELN('Il minore è ',min:8:1); END. C END. . A Esercizio n. 147 Interfaccia p. Implementazione in Visual Basic se li br i S. Note sull’interfaccia: Tipo Form CommandButton Label ht Label © CommandButton Textbox ig MAX Label Textbox yr MIN op CommandButton C Proprietà Name Name Caption TabIndex Name Caption TabIndex Name Caption Name Caption Name Text Locked Name Caption Name Text Locked Name Caption TabIndex Name Caption TabIndex Es Rif. CommandButton Valore Form_Es147 Cmd_Carvet Caricamento Vettore 2 Cmd_MaxMin Visualizzazione vettore, Maggiore e Minore 3 lblvo lblmax Maggiore: txtmax True lblmin Minore: txtmin True CmdReset Reset dati 6 CmdUscita Uscita 7 . A Esercizi sull’elaborazione di strutture dati vettoriali (array) p. Codice: S. Private Sub Form_Load() CmdReset.Enabled = False Cmd_Carvet.Enabled = True Cmd_Media.Enabled = False End Sub Es li se Private Sub Cmd_MaxMin_Click() Visual_Vettore n, v(), Strv Max_Min_Vettore n, v(), max, min Cmd_MaxMin.Enabled = False lblvo.Caption = "Vettore: " & Strv lblvo.Visible = True txtmax.Text = CStr(max) lblmax.Visible = True txtmax.Visible = True txtmin.Text = CStr(min) lblmin.Visible = True txtmin.Visible = True CmdReset.Enabled = True Cmd_MaxMin.Enabled = False End Sub br i Private Sub Cmd_Carvet_Click() Carica_Vettore n, v() Cmd_Carvet.Enabled = False Cmd_Media.Enabled = True End Sub op yr ig ht © Private Sub CmdReset_Click() lblvo.Visible = False lblvo.Caption = "" Strv = "" lblmax.Visible = False txtmax.Text = "" txtmax.Visible = False lblmin.Visible = False txtmin.Text = "" txtmin.Visible = False CmdReset.Enabled = False Cmd_Carvet.Enabled = True For i = 1 To n v(i) = 0 Next i End Sub C Private Sub CmdUscita_Click() End End Sub . A Esercizio n. 147 p. Modulo Vettore li br i S. Dim i As Byte Dim max, min As Integer Dim Strv As String Public Sub Carica_Vettore(n As Byte, v() As Integer) Do n = Val(InputBox("Digita la dimensione del vettore (max: 50) ",_ "Digitazione Dimensione Vettore")) Loop Until n > 0 And n <= 50 ReDim v(1 To n) For i = 1 To n v(i) = Val(InputBox("Inserisci il " & CStr(i) & " °elemento",_ "Digitazione Elemento Vettore")) Next i End Sub se Public Sub Visual_Vettore(n As Byte, v() As Integer, Strv As String) For i = 1 To n Strv = Strv & v(i) & "; " Next i End Sub © Es Public Sub Max_Min_Vettore(n As Byte, v() As Integer, max As Integer, _ min As Integer) max = -32768 min = 32767 For i = 1 To n If v(i) > max Then max = v(i) If v(i) < min Then min = v(i) Next i End Sub ht Note al codice Il programma in Visual Basic, conformemente al flow chart presentato, utilizza subroutine contenute nel modulo vettore ed in particolare: C op yr ig • Carica_vettore • Visual_vettore • Max_Min_vettore Caricamento del vettore in memoria centrale Visualizzazione del vettore nella stringa Strv Determinazione del maggiore e del minore elemento del vettore . A p. Esercizio n. 147 S. Dopo aver caricato in memoria centrale un array monodimensionale (vettore) di M elementi numerici interi, individuare l’elemento maggiore ed il minore. Visualizzare il vettore iniziale ed i risultati dell’elaborazione. Analisi dei dati di input e di output br V( ) 14 5 4 –2 10 11 15 1 10 5 7 8 1 4 7 0 0 –4 7 2 li MIN MAX Esempi N 7 5 8 Semantica Dimensione del vettore (numero elementi) Singolo elemento numerico del vettore Elemento minore Elemento maggiore i Output MIN –2 1 –4 se Input M V( ) MAX 15 10 7 PROGRAMMA PRINCIPALE SOTTOPROGRAMMA MIN - MAX INIZIO MIN - MAX MAX = MAXINT* (–1) ht CARICA © INIZIO Es Flow-chart relativo all’algoritmo risolutivo MIN - MAX MIN = MAXINT I = 1, N ig VISUALIZZA yr VISUALIZZA MIN, MAX C op FINE VERO V(I) > MAX FALSO MAX = V(I) VERO V(I) < MIN MIN = V(I) FINE MIN - MAX FALSO Note . A Esercizi sull’elaborazione di strutture dati vettoriali (array) p. Note S. Il sottoprogramma CARICA è lo stesso di quello presentato nell’esercizio n. 144. Il sottoprogramma VISUALIZZA è lo stesso di quello presentato nell’esercizio n. 145. Codifica in Turbo Pascal PROGRAM Eser147; i USES WINCRT; br VAR n,i,sw: INTEGER; v:array[1..100] of REAL; min,max: REAL; li {SOTTOPROGRAMMA CARICA} PROCEDURE carica; Es se BEGIN WRITELN('Digita la dimensione del vettore '); READLN(n); FOR i:=1 to N DO BEGIN WRITELN('Digita l''elemento ',i,' del vettore '); READLN(v[i]); END; END; {SOTTOPROGRAMMA MIN _ MAX} PROCEDURE min _ max; ht © BEGIN max:=maxint; max:=max*(-1); min:=MAXINT; FOR i:=1 to N DO BEGIN IF v[i] > max THEN max:=v[i]; IF v[i] < min THEN min:=v[i]; END; END; BEGIN END; ig {SOTTOPROGRAMMA VISUALIZZA} PROCEDURE visualizza; FOR i:=1 to N DO WRITELN(v[i]:8:1); {PROGRAMMA PRINCIPALE} yr BEGIN op CLRSCR; WRITE('Esercizio 147 - Programma di calcolo del minimo e massimo in un vettore.'); WRITELN(' '); carica; min _ max; visualizza; WRITELN('Il maggiore è ',max:8:1); WRITELN('Il minore è ',min:8:1); END. C END. . A p. Esercizio n. 147 S. Dopo aver caricato in memoria centrale un array monodimensionale (vettore) di M elementi numerici interi, individuare l’elemento maggiore ed il minore. Visualizzare il vettore iniziale ed i risultati dell’elaborazione. Analisi dei dati di input e di output br V( ) 14 5 4 –2 10 11 15 1 10 5 7 8 1 4 7 0 0 –4 7 2 li MIN MAX Esempi N 7 5 8 Semantica Dimensione del vettore (numero elementi) Singolo elemento numerico del vettore Elemento minore Elemento maggiore i Output MIN –2 1 –4 se Input M V( ) MAX 15 10 7 PROGRAMMA PRINCIPALE SOTTOPROGRAMMA MIN - MAX INIZIO MIN - MAX MAX = MAXINT* (–1) ht CARICA © INIZIO Es Flow-chart relativo all’algoritmo risolutivo MIN - MAX MIN = MAXINT I = 1, N ig VISUALIZZA yr VISUALIZZA MIN, MAX C op FINE VERO V(I) > MAX FALSO MAX = V(I) VERO V(I) < MIN MIN = V(I) FINE MIN - MAX FALSO Note . A Esercizi sull’elaborazione di strutture dati vettoriali (array) p. Note S. Il sottoprogramma CARICA è lo stesso di quello presentato nell’esercizio n. 144. Il sottoprogramma VISUALIZZA è lo stesso di quello presentato nell’esercizio n. 145. Codifica in Turbo Pascal PROGRAM Eser147; i USES WINCRT; br VAR n,i,sw: INTEGER; v:array[1..100] of REAL; min,max: REAL; li {SOTTOPROGRAMMA CARICA} PROCEDURE carica; Es se BEGIN WRITELN('Digita la dimensione del vettore '); READLN(n); FOR i:=1 to N DO BEGIN WRITELN('Digita l''elemento ',i,' del vettore '); READLN(v[i]); END; END; {SOTTOPROGRAMMA MIN _ MAX} PROCEDURE min _ max; ht © BEGIN max:=maxint; max:=max*(-1); min:=MAXINT; FOR i:=1 to N DO BEGIN IF v[i] > max THEN max:=v[i]; IF v[i] < min THEN min:=v[i]; END; END; BEGIN END; ig {SOTTOPROGRAMMA VISUALIZZA} PROCEDURE visualizza; FOR i:=1 to N DO WRITELN(v[i]:8:1); {PROGRAMMA PRINCIPALE} yr BEGIN op CLRSCR; WRITE('Esercizio 147 - Programma di calcolo del minimo e massimo in un vettore.'); WRITELN(' '); carica; min _ max; visualizza; WRITELN('Il maggiore è ',max:8:1); WRITELN('Il minore è ',min:8:1); END. C END. . A Esercizio n. 147 Interfaccia p. Implementazione in Visual Basic se li br i S. Note sull’interfaccia: Tipo Form CommandButton Label ht Label © CommandButton Textbox ig MAX Label Textbox yr MIN op CommandButton C Proprietà Name Name Caption TabIndex Name Caption TabIndex Name Caption Name Caption Name Text Locked Name Caption Name Text Locked Name Caption TabIndex Name Caption TabIndex Es Rif. CommandButton Valore Form_Es147 Cmd_Carvet Caricamento Vettore 2 Cmd_MaxMin Visualizzazione vettore, Maggiore e Minore 3 lblvo lblmax Maggiore: txtmax True lblmin Minore: txtmin True CmdReset Reset dati 6 CmdUscita Uscita 7 . A Esercizi sull’elaborazione di strutture dati vettoriali (array) p. Codice: S. Private Sub Form_Load() CmdReset.Enabled = False Cmd_Carvet.Enabled = True Cmd_Media.Enabled = False End Sub Es li se Private Sub Cmd_MaxMin_Click() Visual_Vettore n, v(), Strv Max_Min_Vettore n, v(), max, min Cmd_MaxMin.Enabled = False lblvo.Caption = "Vettore: " & Strv lblvo.Visible = True txtmax.Text = CStr(max) lblmax.Visible = True txtmax.Visible = True txtmin.Text = CStr(min) lblmin.Visible = True txtmin.Visible = True CmdReset.Enabled = True Cmd_MaxMin.Enabled = False End Sub br i Private Sub Cmd_Carvet_Click() Carica_Vettore n, v() Cmd_Carvet.Enabled = False Cmd_Media.Enabled = True End Sub op yr ig ht © Private Sub CmdReset_Click() lblvo.Visible = False lblvo.Caption = "" Strv = "" lblmax.Visible = False txtmax.Text = "" txtmax.Visible = False lblmin.Visible = False txtmin.Text = "" txtmin.Visible = False CmdReset.Enabled = False Cmd_Carvet.Enabled = True For i = 1 To n v(i) = 0 Next i End Sub C Private Sub CmdUscita_Click() End End Sub . A Esercizio n. 147 p. Modulo Vettore li br i S. Dim i As Byte Dim max, min As Integer Dim Strv As String Public Sub Carica_Vettore(n As Byte, v() As Integer) Do n = Val(InputBox("Digita la dimensione del vettore (max: 50) ",_ "Digitazione Dimensione Vettore")) Loop Until n > 0 And n <= 50 ReDim v(1 To n) For i = 1 To n v(i) = Val(InputBox("Inserisci il " & CStr(i) & " °elemento",_ "Digitazione Elemento Vettore")) Next i End Sub se Public Sub Visual_Vettore(n As Byte, v() As Integer, Strv As String) For i = 1 To n Strv = Strv & v(i) & "; " Next i End Sub © Es Public Sub Max_Min_Vettore(n As Byte, v() As Integer, max As Integer, _ min As Integer) max = -32768 min = 32767 For i = 1 To n If v(i) > max Then max = v(i) If v(i) < min Then min = v(i) Next i End Sub ht Note al codice Il programma in Visual Basic, conformemente al flow chart presentato, utilizza subroutine contenute nel modulo vettore ed in particolare: C op yr ig • Carica_vettore • Visual_vettore • Max_Min_vettore Caricamento del vettore in memoria centrale Visualizzazione del vettore nella stringa Strv Determinazione del maggiore e del minore elemento del vettore