Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14

Discussione: Qbasic e nomi

  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    451

    Qbasic e nomi

    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.

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,301
    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

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    451
    Infatti è uguale, grazie per il tuo aiuto


    Grazie.

  4. #4
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    451
    Help perkè non funziona??????

    codice:
    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$
    Io non vedo errori eppure i nomi non vengono messi in ordine alfabetico

    Grazie per il vostro aiuto.

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2004
    Messaggi
    50
    Prova magari a fare il confronto con ASC(PRIMO$) < ASC(SECONDO$)

  6. #6
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    451
    non funziona

    Questo programma mi sta facendo uscire pazzo

  7. #7
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,301
    Mi spieghi il ragionamento (errato) che hai usato per l'algoritmo di ordinamento?
    codice:
    DO UNTIL A1$ < A2$
       F$ = A1$
       A1$ = A2$
       A2$ = f$
    LOOP
    Tutti in sequenza?
    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):
    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
    Se non ho sbagliato qualcosa dovrebbe andare.


    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

  8. #8
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    451
    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

  9. #9
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    451
    ho provato a inserire questo comando sopra l'input ma non va perkè????

    print "Ultimo nome inserito è: "; a(I)


    Grazie per il tuo aiuto

  10. #10
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,301
    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:
    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
    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

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.