Mi potete passare Algoritmo, che trova il minore in un array di n°elementi.Gli elementi naturalmente sono interi.
grazie
Mi potete passare Algoritmo, che trova il minore in un array di n°elementi.Gli elementi naturalmente sono interi.
grazie
Si chiama bubble-sort
l'esempio che ti posto è scritto in VB6
ma si adatta facilmente a qualsiasi linguaggio
codice:Private Sub Form_Load() Dim vectINPUT(5), i, j, temp As Integer vectINPUT(0) = 10 vectINPUT(1) = 70 vectINPUT(2) = 1 vectINPUT(3) = 11 vectINPUT(4) = 69 'ordina i 5 numeri in modo crescente (bubble-sort) For i = 0 To 4 For j = 0 To 4 If vectINPUT(i) < vectINPUT(j) Then temp = vectINPUT(j) vectINPUT(j) = vectINPUT(i) vectINPUT(i) = temp End If Next j Next i 'stampa a video il valore più basso Text1.Text = vectINPUT(0) stampa a video il valore più alto Text2.Text = vectINPUT(4) End Sub
...Terrible warlords, good warlords, and an english song
Pseudocodice:
FUNCTION MINIMO (A: array of INTEGER, N: INTEGER) : INTEGER;
IF (N < 1) THEN STAMPA ("Errore: deve esserci almeno un elemento.");
ELSIF (N == 1) THEN MINIMO = A[1];
ELSE
MINIMO = A[1];
FOR I = 2 TO N DO IF A[I] < MINIMO THEN MINIMO = A[I];
END FUNCTION;
END FUNCTION;
Grazie
Anche se non sono ordinati come vedi nell'algoritmo di Johnny che usa il Bubble Sort ti passo un semplice ciclo in C che dovrebbe essere comprensibile e traducibile anche per altri linguaggi:
#include <stdio.h>
#include <limits.h> /* Contiene i limiti massimi e minimi dei vari tipi di variabili, in questo caso serve INT_MAX, ovvero il valore più alto che può avere un "int" */
main() {
int i;
int minimo = INT_MAX;
int array[6] = {3,9,4,10,1,7};
for(i=0; i<n; i++) {
if(array[i] < minimo)
minimo = array[i];
}
printf("\nValore minimo = %d \n", minimo); /* Visualizza il valore minimo */
}
Powered by Slack Current - Kernel 2.6.22
Slackware Evangelist
My LUG (Linux User Group): LinuxVar (LUG di Varese)
Scusate l'OT, ma come si fa a postare in modo tale da far rimanere l'indentazione anche nella visualizzazione del post?
(Lo chiedo in particolare a Johnny)
Powered by Slack Current - Kernel 2.6.22
Slackware Evangelist
My LUG (Linux User Group): LinuxVar (LUG di Varese)
[OT] x wolf
utilizza i tag [ c o d e ] codice [ / c o d e ]
P.S. naturalmente senza gli spazi
te lo posto quà perchè domani i PVT saranno cancellati
...Terrible warlords, good warlords, and an english song
Ok, grazie JohnnyOriginariamente inviato da Johnny_Depp
[OT] x wolf
utilizza i tag [ c o d e ] codice [ / c o d e ]
P.S. naturalmente senza gli spazi
te lo posto quà perchè domani i PVT saranno cancellati
Powered by Slack Current - Kernel 2.6.22
Slackware Evangelist
My LUG (Linux User Group): LinuxVar (LUG di Varese)
Non essendo molto bravo in C++ ti faccio un esempio lostesso:
In pratica hai un vettore di 6 elementi.codice:#include <iostream.h> main(){ int vettore[6]={8,4,5,12,2,13}; for(int i=1;i<6;i++) if(vettore[i]<vettore[0]) vettore[0]=vettore[i]; cout<<"Il valore minimo del vettore è:"<<vettore[0]<<endl; return(0); }
Supponi che all'inizio il programma "crede" che il valore contenuto nella locazione vettore[0] sia il più piccolo.
Scanna tutto il vettore e, se ne trova uno più piccolo lo sostituisce al valore della locazione "vettore[0]" e così dicendo.
Poi naturalmente lo và a prendere.
L'unico difetto stà che il vettore viene scombussolato, e quindi conviene prima copiarlo, oppure inserire questo codice in una funzione e poi richiamarlo.
michele
michele.facchin@virgilio.it
Server:irc.azzurra.org | /join #c
Johnny_Depp:
BUBBLE SORT? Ma che CA**O c`entra?
E cmq una persona che posta una cosa cosi` cretina, in questa maniera idiota E SOPRATTUTTO del tipo "VOGLIO LA PAPPA PRONTA E ANCHE CALDA" per me meriterebbe solo la cancellazione senza appello del topic. E che cazzo, un minimo di disciplina non farebbe affatto male. Poi c`e` chi rompe per fare PULIZIA nei forums. E ci credo! Se tenete tutte queste schifezze!
Eh.. i moderatori di una volta!
wolf64:
Puoi anche usare come valore iniziale un elemento dell`array, che per comodita` di solito e` il primo.in questo caso serve INT_MAX
Saluti.