QuickBasic | |
Dato for første version | 1985 - 1989 |
---|---|
Udviklere | Microsoft Corporation |
Sidste version | QBX 7.1 |
Påvirket af | GRUNDLÆGGENDE , GRUNDLÆGGENDE , GW-GRUNDLÆGGENDE |
Påvirket | Visual Basic |
Operativ system | PC-DOS , OS / 2 , MS-DOS , Windows 95 , Windows 98 , Windows Me |
Licens | MS - EULA |
Internet side | www.microsoft.com |
QuickBasic (QB) er et tolket computersprog og henviser også til Microsofts integrerede udviklingsmiljø til redigering, fejlretning, kørsel og kompilering af det samme sprog under MS-DOS . Det er en variant af BASIC- sproget , beregnet til begyndere i programmering, og har arvet sin syntaks og en stor del af instruktionerne, generelt meget tæt på engelsk.
Compileren giver dig mulighed for at generere 16-bit MS-DOS .exe- eksekverbare filer ved hjælp af en compiler, der er optimeret til 8088 (undtagen i senere versioner, hvor der kan vælges specielle optimeringer 286 ) og en linker .
Der er en version kaldet Professional Development System (PDS) Quick Basic Extended (QBX) med versionsnumre større end eller lig med 7.x.
En let version, baseret på version 4.5 af den fulde version og navngivet QBasic , blev leveret i version 1.0 med MS-DOS-systemet og tilgængelig på Windows 95 og Windows 98 CD-Rom . Med denne version kan kildekoden kun fortolkes og ikke kompileres til en .exe- fil . Så for at køre et sådant program er QBasic-miljøet nødvendigt.
Dette program fungerer ikke på Windows- systemer i deres 64-bit version, fordi det er en 16-bit DOS- applikation . Det kan dog fås til at arbejde ved hjælp af en DOS- emulator som DosBox .
Følgende tastaturgenveje kan bruges i QuickBasic-editoren:
Når du udfører et program med QuickBasic-tolken, er det muligt at bruge Ctrl + -kombinationen Pausetil at afbryde dens udførelse og derefter F5genoptage det.
Endelig karakteren ? i starten af linjen erstattes automatisk af PRINT- instruktionen .
QuickBasic-miljøet skelner i modsætning til mange andre programmeringssprog mellem en instruktion og en funktion .
Et program skrevet i QuickBasic kan beskrives som en række instruktioner, som hver giver maskinen en bestemt ordre. To instruktioner skal adskilles af en ny linje eller af tegnet " : " ( kolon ), hvis de findes i fortsættelsen på den samme linje. Bemærk, at vognreturen arves fra BASIC , forfædren til QuickBasic, som krævede nummerering af hver instruktionslinje. Denne nummerering er nu valgfri og har tendens til at overbelaste koden til et program, men kan stadig bruges til at placere etiketter i programmet for at styre dets flow.
En funktion skal derimod inkluderes i et matematisk udtryk, og dens primære rolle er at returnere en værdi, når den kaldes. En funktion kan dog have en indflydelse på udførelsen af programmet (for eksempel ved at blokere denne, mens du venter på data).
Et komplet og fleksibelt program kræver nødvendigvis brug af variabler (ord, som en værdi er knyttet til). Deres anvendelse i QuickBasic er meget forenklet og er beskrevet i de følgende punkter.
I QuickBasic skal et variabelnavn overholde følgende regler:
For at definere typen af en variabel i QuickBasic, skal du tilføje et bestemt tegn i slutningen af dets navn. Her er de tre vigtigste datatyper for dette sprog:
Der er også to andre numeriske typer: lange heltal og dobbeltpræcisionsrealiteter, der faktisk svarer til de to numeriske typer, der er nævnt ovenfor, men hvis størrelse i hukommelsen fordobles, hvilket har en tendens til at bremse processen.
Endelig findes den boolske type ikke i sig selv, men kan gengives ved hjælp af numeriske typer, der tager værdien 0 for FALSE og enhver anden værdi, der ikke er nul, for TRUE.
Baseret på de tidligere regler er følgende eksempler forkerte variabelnavne: Your_Name $ , Peter & Paul , 7aqui2play% , response $ .
Følgende navne er dog gyldige: YourName $ , PeterAndPaul , aqui2jouer% , response $ .
Det skal også bemærkes, at følgende navne: Variabel , VARIABEL , variabel , vArIaBlE er helt ækvivalente og henviser til den samme variabel. Hvis du skriver det samme navn med en anden sag , ændrer QuickBasic Editor automatisk alle forekomster af dette navn for kun at beholde den sidste version, du skrev.
På QuickBasic-sprog er det ikke nødvendigt at erklære en variabel for at bruge den. Således, hvis en variabel bruges i en formel, når den ikke var blevet deklareret eller brugt før, vil den automatisk tage nulværdien, der svarer til dens type, uden at udløse en fejl. For at erklære en variabel eller ændre dens værdi kan du bruge følgende syntaks:
NomDeLaVariable = ValeurNår en sådan linje udføres i programmet, vil variablen med navnet Variabelnavn tage værdien placeret til højre for “ = ” -tegnet ( lig ), som kan være en rå værdi, f.eks. Et matematisk udtryk så kompliceret som nødvendigt. Det er også muligt at genbruge navnet på variablen i højre side (og derfor kalde på dens værdi) som i følgende eksempel:
Total = Total + TaxesHøjre sidemedlem beregnes derefter (det er summen af variablerne i alt og afgifter ) og tildeles derefter variablen i alt . Det er også vigtigt at bemærke, at variabler aldrig ændres uden for tildelingslinjerne. I dette eksempel ændres Total ikke automatisk i overensstemmelse hermed , selvom variablen Skatter ændres senere .
Ældre versioner afledt af BASIC-sproget krævede brug af LET- instruktionen i begyndelsen af linjen for at foretage en opgave, men denne instruktion er blevet valgfri i QuickBasic.
QuickBasic-sproget har grundlæggende operatorer, der kan klassificeres i fire kategorier. Deres prioritet kan specificeres ved hjælp af parenteser .
Digitale operatørerDisse er de standard matematiske operatorer: " + " for addition, " - " for subtraktion, " * " for multiplikation, " / " for division, " \ " for hele division og " ^ " for magt. Deres prioritet er den normale prioritet for disse matematiske operationer.
Relationelle operatørerDisse operatorer bruges til at teste en relation mellem to numeriske data, idet denne relation er: " = " for lige (må ikke forveksles med tildelingen, der bruger det samme symbol), " <> " for forskellige, " < " for strengt mindre, " <= " for mindre end eller lig, " > " for større og " > = " for større eller lig.
Operatører på strengeDe eneste to operatører, der er tilgængelige for tegnstrenge, er sammenkædningsoperatoren (som giver dig mulighed for at placere to tegnstrenge ende til ende), repræsenteret af symbolet " + ", og ligestillingsoperatoren (som giver dig mulighed for at teste, om to strenge er ens) , repræsenteret af symbolet " = ".
Boolske operatørerDe boolske operatører bruges til at teste forholdet mellem de relationelle operatører. De vigtigste er: " OG " for AND, " IKKE " for IKKE, " ELLER " for den inklusive ELLER, og " XOR " for den eksklusive ELLER.
Det er nødvendigt at strukturere et program, så det adopterer forskellige adfærd i henhold til dets tidligere fremskridt eller i henhold til brugerens valg. Kontrolstrukturer gør det således muligt at kontrollere de dele af koden, som ikke bør udføres under visse omstændigheder, eller som tværtimod skal gentages. De strukturer, der anvendes i QuickBasic, er standardstrukturer, hvis variationer findes i de fleste programmeringssprog.
En IF- blok eller betinget blok har formen: HVIS ... DAN… ELSE… SLUT HVIS . En sådan blok kan tage to syntakser. Den første er:
IF [condition] THEN [instructions] ELSE [instructions] END IFDenne syntaks kan bruges i det tilfælde, hvor instruktionsblokkene er korte nok til ikke at forstyrre læsbarheden af programmet. Den anden syntaks har følgende form:
IF [condition] THEN [instructions] ELSEIF [condition] THEN [instructions] (…) ELSE [instructions] END IFDenne anden syntaks, som er mere strømlinet, giver dig også mulighed for at bruge ELSEIF- nøgleordet uden begrænsning.
I begge tilfælde skal betingelsen efter IF verificeres for at den tilsvarende blok med udsagn kan udføres. Hvis dette ikke er tilfældet, er det det samme med hver af de ELSEIF'er, der blev fundet efter. Hvis der ikke er nogen betingelse, udføres instruktionerne efter ELSE .
Den DO ... LOOP løkke giver alle mulige typer af betingede løkker. Dens mest anvendte syntaks er:
DO [{WHILE|UNTIL} condition] [instructions] LOOPDen betingede blok, der følger DO- nøgleordet, begynder enten med WHILE- nøgleordet , i hvilket tilfælde sløjfen skal gentages LENGE, som betingelsen er sand; eller ved hjælp af nøgleordet UNTIL , hvilket omvendt indikerer, at loop skal gentages, indtil betingelsen er sand. Denne betingede blok kan også placeres efter LOOP- nøgleordet , hvilket tvinger sløjfen til at udføre mindst en gang. Det kan også udelades, hvilket skaber en uendelig løkke, som skal forlades af EXIT DO-sætningen .
FOR ... NEXT- sløjfen gentager en instruktionsblok et foruddefineret antal gange, samtidig med at en tællervariabel er opdateret. Dens syntaks er som følger:
FOR variable = début TO fin [STEP pas] [instructions] NEXT variableModvariablen (kaldet variabel ovenfor) tager alle værdier mellem start og slut i rækkefølge med det angivne trin , som kan være negativ, og som standard er lig med 1, hvis den udelades.
Her er et lille program med masser af kommentarer, der koder en slags lotteri i QuickBasic. Det er med vilje ret forenklet og ufuldstændigt for at gøre det lettere at forstå. Til kommentarer foretrak vi at bruge apostrofen i stedet for REM- instruktionen , fordi sidstnævnte ikke tillader dig at placere en kommentar i slutningen af en instruktionslinje. For bedre at kunne genkende dem vises kommentarerne her i gråt.
' Ce programme code un loto en QuickBasic. RANDOMIZE TIMER ' Initialise le générateur de nombres aléatoires (nécessaire pour pouvoir utiliser la fonction RND). CLS ' On efface l'écran. PRINT "***** Petit Loto en QuickBasic *****" ' Affiche un message d'accueil. INPUT "Entrez votre nom : ", Nom$ ' On demande son nom au joueur pour le stocker dans la variable Nom$. ' Le symbole '$' signifie que la variable est de type chaîne de caractères (ce qui est naturellement adapté). Cagnotte% = 100 ' On affecte la valeur 100 à la variable Cagnotte%. ' Le symbole '%' signifie que la variable est de type entier (ce qui permettra de faire des opérations dessus). PRINT "Votre cagnotte contient :"; Cagnotte% 'On affiche le contenu de la cagnotte. PRINT "--- Début du jeu ---" INPUT "Combien voulez-vous miser ? ", Mise% ' On demande au joueur combien il veut miser... INPUT "Sur quel nombre souhaitez-vous miser (de 1 à 5) ? ", NombreMise% ' ...et sur quel nombre. Cagnotte% = Cagnotte% - Mise% ' On soustrait la mise à la cagnotte. NombreTire% = INT (rnd * 5) + 1 ' On génère un nombre aléatoire compris entre 1 et 5. IF NombreMise% = NombreTire% THEN ' Si le joueur a parié le bon nombre... Cagnotte% = Cagnotte% + 3 * Mise% PRINT "Bravo, il fallait miser le"; NombreTire%; "! Votre cagnotte contient désormais :"; Cagnotte% ' Dans une instruction PRINT, on peut utiliser le point-virgule pour afficher plusieurs types de données sur la ' même ligne, comme ici des chaînes de caractères (entre guillemets) et des entiers (NombreTire% et Cagnotte%). ELSE ' Si le joueur a parié sur un mauvais nombre... PRINT "Perdu ! Il fallait miser le"; NombreTire%; "... Il vous reste :"; Cagnotte% END IF ' Le bloc IF se termine ici. PRINT "Au revoir "; Nom$; " !" ' Message de fin qui reprend le nom du joueur (qui avait été demandé au début). END ' Termine correctement le programme (peut être omis en fin de code).Det er muligt at åbne dette program i QuickBasic-editoren for at teste det eller ændre det. For at gøre dette skal du bare kopiere det og gemme det i en .BAS- fil (til dette skal du bare indsætte den i en tekstfil, hvis udvidelse kan ændres efter at have gemt den). Alt der er tilbage er at finde denne fil ved hjælp af kommandoen Åbn i redigeringsmenuen.
To vigtige punkter skal bemærkes. Først og fremmest viser editoren ikke syntaksfremhævning, hvilket betyder, at al kode vil have en farve i editoren. Dette understreger kun instruktioner ved altid at vise dem med store bogstaver og farve ikke kommentarer eller strenge. Derudover vil åbning under DOS af en tekstfil, der er oprettet under Windows, for eksempel resultere i dårlig håndtering af accenttegn, som vil blive erstattet af andre tegn. Du skal bare skrive dem igen, så alt er tilbage til det normale.
Dette program er naturligvis kun et glimt af sproget. Det bliver nødvendigt at tilføje mange funktioner for at gøre det komplet, såsom:
Tilføjelse af disse funktioner er relativt ligetil og kan være en interessant øvelse.
FreeBASIC , en anden compiler, der stort set er kompatibel med QuickBasic-kode.