Non conosco il Basic, ma la riga 40 usa la stessa stringa usata alle righe 10 e 20 e la mette a “carattere di terminazione” (sempre che esista in Basic).
Poi il for va a 1 a N, compresi, e aggiunge alla stringa la stringa “*” ogni iterazione.
Se come input dai 5, ad esempio, il for verà eseguito 5 volte con conseguente stringa S : “*****”.
LEN() penso sia utilizzato per verificare che la stringa in input non sia vuota (un semplice invio) e quindi evitare di fare un token impossibile (vedi sotto).
LEFT$() prende come parametri una stringa e un valore e fa un token di quella stringa da sinistra fino al carattere con posizione quella del parametro.
Che è il carattere di terminazione?
I è un' altra variabile in questo programma?
Vecchissimi ricordi...
linea 40:
Il programma scrive una stringa di N asterischi (stelle), per costruirla parte dalla stringa vuota S$ e aggiunge un asterisco ogni ciclo fino a N, inserito dall'utente.
linea 50:
È appunto il ciclo FOR.. ..NEXT (riga 70) con cui costruisce la stringa S$
linea 100:
La funzione LEN() restituisce il numero di caratteri di una stringa (lunghezza: "LENght"). In tal caso ritorna a proporre l'input se il valore è 0 cioè se all'input si preme invio il programma non termina, mentre se si scrive qualsiasi cosa il programma valuterà solo il primo carattere digitato e ricomincerà solo se questo sarà "s": minuscolo o maiuscolo.
Ovviamente, essendo un programmino dimostrativo è fatto per inserire il maggior numero di funzioni.. dal punto di vista del codice riesce ad essere assolutamente osceno e non didattico: BASIC (cosi come il FORTRAN a cui è strettamente legato) appartiene ad epoche in cui, considerata l'esiguità delle risorse, la vera qualità sta nella sintesi del codice.
Inviato dal mio Nexus 5 utilizzando Tapatalk
Nella riga 40 crea uno spazio vuoto e lo associa alla variabile S$, giusto?
Riguardo al ciclo for sono arruginito e non mi ricordo se cambia rispetto al Python oppure al Quick basic o al Pascal etc... che avevo iniziato a fare in passato.
"I" in questo caso è una variabile e vale 1 quindi il programma andrà sempre al valore N indicata dall' utente. Dico bene?
Nella riga 60 aggiunge uno spazio più un' asterisco.
Nella riga 70 va alla variabile "I" che però vale sempre 1.
Ora un pochino ho capito a quandi linee la riga 100.
Io non me ne intendo e perciò chiedo: come mai questo programmino è assolutamente osceno e non didattico?
Leggendo ho saputo che la prima versione del Basic fu il Dartmouth BASIC che deriva dal Fortan e dall' Algol ed è stato creato da 2 studenti universitari allo scopo di avere un linguaggio di programmazione che non richiedesse conoscenze di matematica, in cui l' ambito non sia quello scientifico
Secondo Wiki.com il Gw-basic (ma anche il Dartmouth Basic) a differenza del linguaggio non è strutturato proprio come l' Assembly anche se il primo è un linguaggio ad alto livello ed è interpretato.
Perché vuoi "imparare" il GWBasic? Esistono ad oggi interessanti implementazioni del BASIC (anche open source) che, a differenza dell'inutile GWBasic, sono pienamente utilizzabili per scrivere software.
Inviato dal mio Nexus 5 utilizzando Tapatalk
Ti spiego: per interesse personale/hobbystico stavo cercando su Wiki, specie su quella .com, un linguaggio per Ms-dos (intendo il sistema operativo) oppure per Windows che sia adatto a me, che mi piaccia a livello di sintassi/sematica (non sono bravo con la teoria), che sia anche o solo general o/e general purpose, che non sia limitato come il Basic o il Python, che non mi faccia poi perdere l' interesse.
Arrivando alla pagina del Basic, mi sono ritornati ricordi ed interessi passati compreso anche l' Ms-dos. Poi ho visto il Gw-basic e pensavo che come sintassi/semantica potesse andare bene ma poi mi sono reso conto di no.
Ho aperto questa discussione solamente perchè volevo risolvere i dubbi che avevo su quel codice trovato su Wiki, che mi ha un po' incuriosito. Non voglio "imparare" il Gw-basic o programmare usando linguaggio.
Se dovessi andare sul Basic riprenderò sicuramente il Quick Basic (meno limitato del Gw-basic) e quindi o il Qbasic (su Ms-dos) oppure il QB64 (su Windows 64 bit) che avevo interrotto più di volta.
Ogni tanto mi viene il desiderio/interesse di programmare.
Sono un sognatore e sono almeno un po' creativo.
Mi rendo conto che non ho la mentalità del matematico o del fisico o dell' ingegnere o del programmatore.
Però non odio la matematica anzi ci sono alcuni/degli argomenti che mi piacciono/mi interessano.
Ho un pensiero/visione po' diverso/a sul concetto di "problema" nella programmazione. Per me il "problema" c'è ad es. quando bisogna realizzare un programma o codice o funzione e non si sa come fare (o da dove iniziare) o/e si è bloccati in un punto oppure se ad es. in programma o codice o funzione c'è un errore (o più errori) che quindi oppure nel caso di un esercizio da risolvere in cui sinonimo è "problema".
Ammetto che per alcune cose vivo nel periodo storico sbagliato visto che mi piace ad es. anche l' informatica vintage.
In generale: se una cosa mi interessa o/e mi piace o/e mi incuriosisce non mi importa l' anno in cui è stata creata e quindi se è giovane o vecchia o vintage o addirittura antica.
Come linguaggi ho visto che oltre a quelli imperativi ci sono anche quelli dichiarativi, funzionali, logici, debolmente o fortemente tipizzati, scripting, paralleli, esoterici ed hardware description. Chissà se tra questi ce ne sarà almeno uno adatto per me ^^
In quello che ho scritto non ci sono critiche o/e giudizi ma sono solo pensieri,opinioni ed interessi personali che possano essere utili per avere un consiglio o/e trovare la giusta strada che fa per me indipendentemente dal mercato, dalla moda, dalla classifiche etc..
P.S. se sei arrivato fin qui spero che non sarai svenuto per terra :D
@Andretti60
Mi ero scordato del significato del $ alla fine.
Come mai non riesci più a leggere il Lisp? Cos' ha di particolare questo linguaggio?