Sono ancora io con il mio qbasic
Devo creare un programma che mi metta in ordine alfabetico i nomi che vengono inseriti da tastiera, con i numeri lo so fare ma come faccio a farlo con i nomi??????
Grazie per il vostro aiuto.
Sono ancora io con il mio qbasic
Devo creare un programma che mi metta in ordine alfabetico i nomi che vengono inseriti da tastiera, con i numeri lo so fare ma come faccio a farlo con i nomi??????
Grazie per il vostro aiuto.
Se non ricordo male dovrebbe essere uguale. Mi sembra che QBasic utilizzi lo stesso operatore di confronto sia per i numeri che per le stringhe.
Ciao.
"Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza
Infatti è uguale, grazie per il tuo aiuto
Grazie.
Help perkè non funziona??????
Io non vedo errori eppure i nomi non vengono messi in ordine alfabeticocodice:CLS PRINT "|--------------------------------------------------------|" PRINT "| Programma che mette in ordine alfabetico i nomi |" PRINT "| Autore ... |" PRINT "|--------------------------------------------------------|" INPUT "1] Inserire nome: ", A1$ INPUT "2] Inserire nome: ", A2$ INPUT "3] Inserire nome: ", A3$ INPUT "4] Inserire nome: ", A4$ INPUT "5] Inserire nome: ", A5$ INPUT "6] Inserire nome: ", A6$ INPUT "7] Inserire nome: ", A7$ INPUT "8] Inserire nome: ", A8$ INPUT "9] Inserire nome: ", A9$ INPUT "10] Inserire nome: ", A10$ DO UNTIL A1$ < A2$ F$ = A1$ A1$ = A2$ A2$ = F$ LOOP DO UNTIL A2$ < A3$ F$ = A2$ A2$ = A3$ A3$ = F$ LOOP DO UNTIL A3$ < A4$ F$ = A3$ A3$ = A4$ A4$ = F$ LOOP DO UNTIL A4$ < A5$ F$ = A4$ A4$ = A5$ A5$ = F$ LOOP DO UNTIL A5$ < A6$ F$ = A5$ A5$ = A6$ A6$ = F$ LOOP DO UNTIL A6$ < A7$ F$ = A6$ A6$ = A7$ A7$ = F$ LOOP DO UNTIL A7$ < A8$ F$ = A7$ A7$ = A8$ A8$ = F$ LOOP DO UNTIL A8$ < A9$ F$ = A8$ A8$ = A9$ A9$ = F$ LOOP DO UNTIL A9$ < A10$ F$ = A9$ A9$ = A10$ A10$ = F$ LOOP PRINT A1$, A2$, A3$, A4$, A5$, A6$, A7$, A8$, A9$, A10$
Grazie per il vostro aiuto.
Prova magari a fare il confronto con ASC(PRIMO$) < ASC(SECONDO$)
non funziona
Questo programma mi sta facendo uscire pazzo
Mi spieghi il ragionamento (errato) che hai usato per l'algoritmo di ordinamento?
Tutti in sequenza?codice:DO UNTIL A1$ < A2$ F$ = A1$ A1$ = A2$ A2$ = f$ LOOP
Praticamente esegui UNA SOLA VOLTA queste istruzioni nel caso il primo sia minore del secondo, il secondo minore del terzo, il terzo minore del quarto...
Questo porta in ultima posizione il più grande... e gli altri? Per poter fare quello che intendi fare devi appoggiarti ad un ARRAY. Inserire tutti i nomi nell'array e, tramite indicizzazione, controllarli tutti (nel caso di un bubble sort, come hai tentato di fare):
Se non ho sbagliato qualcosa dovrebbe andare.codice:DIM A(1 TO 10) AS STRING FOR I=1 TO 10 INPUT "Inserire nome: ", A(I) NEXT FOR I=1 TO 9 FOR J=I TO 10 IF A(I) > A(J) THEN F$ = A(I) A(I) = A(J) A(J) = F$ END IF NEXT NEXT FOR I=1 TO 10 PRINT A(I); " "; NEXT
Ciao.
"Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza
LeleFt ti amo
Mi spieghi solo una cosa per piacere
non hai inserito il $ davanti alle lettere perkè hai usato AS STRING giusto o sbaglio????? non ho mai usato quel comando
Grazie per il tuo aiuto sei gentilissimo
ho provato a inserire questo comando sopra l'input ma non va perkè????
print "Ultimo nome inserito è: "; a(I)
Grazie per il tuo aiuto
Scusa il ritardo, stavo sistemando un'altro codice...
Allora: non ho messo il $ perchè, appunto, ho dichiarato un array di stringhe. In questo modo non si usa più il $.
L'errore che commetti mettendo prima dell'input quella riga stà nel fatto che cerchi di stampare a video una stringa che non esiste (un elemento dell'array che non è ancora inizializzato).
Per visualizzare l'ultimo nome inserito devi scrivere quanto segue:
Ciao.codice:FOR I=1 TO 10 ' Controllo che non sia il primo, altrimenti sconfino l'array IF I>1 THEN ' L'ultimo inserito è il precedente a quello che stò elaborando PRINT "Ultino nome inserito: "; A(I-1) END IF INPUT "Inserisci nome: ", A(I) NEXT
"Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza