Introduktion til Pascal. Procedurer Læs og LæsLn Hvad betyder læst i pascal

læse (procedure)

For indtastede filer, læser filkomponenten til en variabel.
- For tekstfiler, læser en eller flere værdier
ind i en eller flere variable

Bekendtgørelse

Indskrevne filer

Læs Procedure(F , V1 [, V2,...,Vn ]);

Tekstfiler

Læseprocedure([ Var F: Tekst; ] V1 [, V2,...,Vn ]);

Mode

Windows Real Protected

Bemærkninger

For strengvariabler:

Læs læser alle tegn op til (men ikke inklusive) næste linjeslutmarkør eller indtil Eof(F) vil blive Sand. Læst flytter ikke til næste linje efter læsning. Hvis den resulterende streng er længere end den maksimale længde af strengvariablen, afkortes den. Efter den første læsning vil efterfølgende kald til læsning se ende-på-linjen-markøren og returnere en nul-længde streng.

Brug flere ReadLn-kald til at læse flere strengværdier.

Når indstillingen er aktiveret Udvidet syntaks, kan læseproceduren læse nullterminerede strenge ind i nul-baserede tegnarrays.

For variabler af typen Heltal eller Ægte:

Read vil springe alle mellemrum, tabulatorer eller linjeskift over, der går forud for en numerisk streng. Hvis den numeriske streng ikke matcher det forventede format, opstår der en I/O-fejl, ellers tildeles værdien til variablen. Den næste læsning starter ved det mellemrum, tabulator eller ende-på-linje-markør, der afsluttede den numeriske streng.

se også

Eksempel

bruger Crt, Dos;

var
F : tekst;
Ch : Char ;

begynde
(Hent filnavn fra kommandolinjen)
Tildel(F, ParamStr(1));
Nulstil(F);
mens ikke EOF (F) gør
begynde
Læs (F, Ch);
Skriv(Ch); (Vis indholdet af filen på skærmen)
ende ;
ende.

Såvel som for informationsoutputerklæringer er read- og reeadln-sætningerne operatører til at få adgang til indbygget procedurer for indtastning af oplysninger.

Operatørerne read (read) og readln, som kommer fra to engelske ord read (read) og line (line) bruges i programmer til at indtaste information i computerens hukommelse og " aflæsninger"værdier til en variabel.

Overvej disse operatørers arbejde og procedurer for indtastning af oplysninger.

Vores program har en readln(a) procedure. Når du kører et program, vil computeren, når den støder på en readln-sætning, holde pause, mens den venter på, at information skal indtastes. Efter at vi har indtastet værdien af ​​variablen a - 16 fra tastaturet, vil computeren tildele denne værdi til variablen a, dvs. vil sende den til hukommelsespladsen kaldet a og fortsætte programudførelsen. Vi kalder denne proces " læsning"værdier til en variabel.

Så procedurerne læser og læser "læser" værdierne af variabler og tildeler dem til de variabler, der er skrevet til dem.

Der kan være flere sådanne variabler, så er de skrevet i disse operatorer adskilt af kommaer, for eksempel:

læs(a, b, c, n, g, j, i), readln(e, f, k, p, d) osv.

Hvad er forskellen mellem læse- og readln-procedurer?

Læseproceduren vil kræve input eller output af information på en linje efter sig selv, og readln-proceduren giver dig mulighed for at indtaste og udlæse information efter sig selv fra begyndelsen af ​​en ny linje.

For eksempel:

I programmet: skriv("Indtast værdierne a og b "); læs(a,b);

write("Indtastning af information på en linje");

Når denne del af programmet køres, vil alt skrevet i den første skrivesætning blive vist på skærmen, derefter vil markøren være på samme linje, og computeren vil vente på, at værdierne a og b er ind. Lad os indtaste deres værdier - 2 og 3, adskille dem med et mellemrum eller med andre ord med et mellemrum. Derefter vil informationen skrevet i den næste skriveerklæring blive udskrevet på samme linje.

På skærmen:

Indtast værdierne for a og b 2 3 Indtast information på én linje

I et program:

writeln("Indtast a, b og c); readln(a, b, c);

writeln("Input og output information fra begyndelsen af ​​linjen");

På skærmen:

Indtast værdierne a, b og c

Indtastning og udlæsning af information fra begyndelsen af ​​en linje

Aritmetiske operationer med heltal. Variabler af heltalstype. Rigtig type

Pascal-sproget bruger heltal, som omfatter alle naturlige tal dannet i processen med at tælle objekter: 1, 2, 3, 4, 5, 6, ...; negative tal: ..., -6, -5, -4, -3, -2, -1 og tallet nul: 0. Heltal danner følgende række:

6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, ...

I Pascal varierer heltal fra -32768 til 32767.

Variabler, som tager heltalsværdier, er skrevet i beskrivelsesafsnittet med en angivelse af typen heltal (heltal).

For eksempel: var a, b, c, a1, b34, nomb: heltal;

Værdier af en anden type end disse variabler i det samme program kan ikke tildeles.

Aritmetiske operationer med heltal og variable af heltalstype i Pascal

Tegnet "_" betyder et mellemrum. Mellemrum mellem variabelnavne og operationsnavn (div) er påkrævet. (Det kommer fra den engelske division - division).

Resten af ​​at dividere a med b. a_mod_b

Emne: Input Output. Operatører Læs (Readln), Write (Writeln). De enkleste lineære programmer.

Lad os løse problemet ved at kommentere hver af vores handlinger i krøllede seler. Husk, at kommentaren ikke opfattes af computeren, og vi har brug for den for bedre at forstå, hvordan programmet fungerer.

Opgave . Skriv et program, der rydder skærmen og beregner produktet af to tal indtastet af brugeren.

ProgramProizv2;
bruger
Crt;(Inkluder Crt-modul)
Var
nummer1, (variabel, der vil indeholde det første tal)
nummer2, (variabel, der vil indeholde det andet tal)
resultat (variabel, der vil indeholde resultatet)
: heltal;
Begynde
ClrScr;(Bruger skærmrydningsrutine fra Crt-modul)
Write("Indtast det første tal");
readln(nummer1);
(Tallet indtastet af brugeren læses ind i variablen nummer1)
Write("Indtast andet tal");
(Vi viser tegn skrevet mellem apostrof på skærmen)
readln(tal2);
(Tallet indtastet af brugeren læses ind i variablen nummer2)
resultat:= nummer1 * nummer2;
(Vi finder produktet af de indtastede tal og tildeler resultatet til variablen)
Skriv ("Produktet af tallene ", nummer1, " og ", tal2, "er lig med", rezult);
(Vi viser en linje, der indeholder svaret på problemet)
Readln;(Skærmforsinkelsesprocedure)
ende.

For bedre at forstå, hvordan et program fungerer, skal du skrive det på din computer og teste det. Svar på spørgsmålene:

  • hvorfor hedder programmet Proizv2?
  • Hvorfor blev Crt-modulet placeret i sektionen Anvendelser?
  • hvad er formålet med variablerne nummer1, tal2, resultat?
  • hvilken type er disse variabler? hvad betyder det?
  • Hvis vi tildeler værdierne 5 og 7 til henholdsvis variablerne nummer1 og nummer2, hvilken linje vil computeren producere, når den sidste Write-procedure udføres? Skriv det ned i din notesbog.
  • i hvilke linjer bliver brugeren bedt om værdierne af variabler?
  • Hvilken linje er hvor tallene ganges?
  • hvad gør opgaveoperatøren i dette program?

Dyrke motion . Rediger programmet, så det beder brugeren om en anden variabel og udskriver resultatet af produktet af tre tal.

Skriv og skriv udsagn

Vi har allerede brugt Write- og WriteLn-operatorerne, men vi er nødt til at uddybe reglerne for brug af disse operatorer.

Write (engelsk skriv) - en operator, der bruges til at vise information på skærmen. WriteLn-operatoren udfører den samme handling, men da den også har slutningen Ln (linje - engelsk linje, linje), efter at have vist den ønskede besked på skærmen, flytter den desuden markøren til næste linje.

Generel form:
Skriv (liste over udtryk)
WriteLn (udtryksliste)

Write- og WriteLn-procedurerne bruges ikke kun til at vise resultatet, men også til at vise forskellige meddelelser eller forespørgsler. Dette giver dig mulighed for at have en dialog med brugeren, fortælle ham hvornår han skal indtaste værdier, hvornår han får resultatet, hvornår han lavede en fejl osv.

For eksempel, når du udfører proceduren WriteLn ('Fundet nummer', a), vil en linje omsluttet af apostrof blive udskrevet, og derefter vil værdien af ​​variablen a blive vist.

WriteLn-sætningen kan også bruges uden parametre. I dette tilfælde vil en linje bestående af mellemrum blive udskrevet, og markøren vil flytte til en anden linje. Vi har nogle gange brug for dette for en bedre opfattelse af datainput.

Læs og LæsLn udsagn

Husk, at hovedformålet med computere er at spare menneskelig arbejdskraft. Derfor er det nødvendigt at give mulighed for, efter at have skrevet et program, at bruge det gentagne gange, hver gang der indtastes forskellige data. Denne fleksibilitet i sproget leveres af Read- og ReadLn-erklæringerne. Disse operatører indtaster information fra tastaturet.

Generel form:
Læs (variabel, variabel...)
ReadLn(variabel, variabel...)

Når læseproceduren udføres, forventes værdierne i parentes. Indtastningsdataene skal være adskilt fra hinanden med mellemrum. Tildeling af værdier går efter tur.

For eksempel, hvis værdierne 53 og X er indtastet, når Read (a, b)-sætningen udføres, vil variablen a blive tildelt nummeret 53, og variablen X vil blive tildelt bogstavet X. Desuden, vi bemærker, at for at undgå en nødsituation skal du korrekt bestemme datatypen i afsnittet Var; i vores tilfælde a:heltal og b:char.

Der er ingen særlige forskelle mellem læsning og skrivning i brugen af ​​Read- og ReadLn-udsagn. Ofte bruges ReadLn-proceduren uden parametre i slutningen af ​​programmet til at forsinke: indtil der trykkes på en tast resultatet af programafviklingen forbliver på skærmen. Dette er meget nyttigt til at analysere resultater.

Bemærk . Når du indstiller en skærmforsinkelse, skal du være opmærksom på det forrige input. Hvis dataene blev anmodet om af læseproceduren, vil der ikke være nogen forsinkelse.

Lad os løse et problem, hvor vi overvejer alle mulige anvendelser af disse procedurer.

Opgave . Find gennemsnittet af tre tal.

Bemærk . For at finde gennemsnittet af flere tal, skal du tilføje disse tal og dividere summen med antallet af disse tal.

Indtast teksten til opgaven, og overvej omhyggeligt hver linje. Navnet på programmet Srednee afspejler opgavens indhold. Lad os i øvrigt blive enige om, at navnet på programmet og navnet på filen, der indeholder dette program, er det samme. Dernæst kommer tilslutningen af ​​Crt-modulet. Var-sektionen beskriver First, Second, Third som variabler af en heltalstype og Sum som en reel type. Operatørafsnittet begynder med standardproceduren for at rydde skærmen ClrScr (Clear Screen), som er placeret i Crt-modulet. Dernæst viser vi ved hjælp af Skriv-erklæringen beskeden 'Indtast det første tal' på skærmen, hvorefter brugeren skal indtaste et nummer.

Computeren skal nu læse de indtastede tegn og gemme dem i den første variabel, dette vil ske når den næste ReadLn(First) sætning udføres. Ved hjælp af Write-sætningen anmoder vi derefter om værdierne af yderligere to tal og læser dem ind i den anden og den tredje variabel. Derefter beregner vi deres sum og tildeler det resulterende tal til Sum-variablen. For at finde gennemsnittet skal du nu dividere det resulterende tal med 3 og gemme resultatet i en eller anden variabel.

Det er ikke nødvendigt at deklarere en anden variabel for at gemme resultatet. Det er muligt, som i vores program, at dividere værdien af ​​variablen Sum med 3 og igen tildele resultatet til den samme variabel Sum. Nu kan du få vist resultatet af beregningen på skærmen ved hjælp af skriveproceduren. Og endelig vil den sidste procedure ReadLn forsinke vores output på skærmen, indtil der trykkes på tasten.

Tryk på tasterne +. Indtast værdierne for variable 5, 7 og 12, du vil se følgende på skærmen:

Gennemsnit af 5, 7 og 12 er 8,00

Se omhyggeligt på denne linje og sammenlign med outputlinjen for resultatet i vores program. Test programmet et par gange mere for andre variabelværdier.

Vælg sammen med læreren opgaver, der skal løses fra følgende liste:

  1. Indtast to tal a og b. Brug tildelingsoperatoren til at udveksle deres værdier:
    a) ved at bruge en mellemvariabel (x:=a; a:=b; b:=x);
    b) uden at bruge en mellemvariabel (a:=a-b; b:=a+b; a:=b-a).
  2. Skriv et program, der beder brugeren om et heltal, et reelt tal, et vilkårligt tegn og en streng, og derefter udskrive dem alle på én linje.
  3. Vis dit efternavn, fornavn og patronym, og to linjer senere, din fødselsdato.
  4. Skriv et program til at udskrive en af ​​figurerne med stjerner:
    a) juletræer (flere juletræer);
    b) snefnug (flere snefnug);
    c) et hus, f.eks.

    *
    * *
    * *
    ***********
    * *
    * *
    * *
    * *
    ***********

  5. Sammensæt dit visitkort.


    * Ivanov Sergey *
    * Proletar på 74 kvm. 55*
    * Telefon 45-72-88 *
    *******************************

  6. Lav en dialog mellem brugeren og computeren om et vilkårligt emne.
    For eksempel stiller maskinen to spørgsmål "Hvad er dit navn?" hvor gammel er du?"; efter at have indtastet navnet (Anton) og nummeret (15), viser det "Ja ... Om 50 år vil du allerede være 65 år gammel, og dit navn vil ikke være Anton, men bedstefar Anton"
  7. Bed brugeren om to tal og vis resultatet af summen, forskellen, produktet og kvotienten af ​​disse tal som et fuldstændigt svar.
  8. Bed brugeren om to tal og vis resultatet af heltalsdivisionen og resten af ​​heltalsdivisionen som en tabel. For eksempel, når du indtaster tallene 5 og 3, skal følgende tabel vises på skærmen:

    **************************
    *X*Y*div*mod*
    **************************
    * 5 * 3 * 1 * 2 *
    **************************

  9. Skriv et program, der beder om navnet på et dyr og et nummer, og så viser en sætning som "Egernet spiser 10 svampe" på skærmen (når du indtaster ordet "egern" og tallet 10).
  10. Organiser en dialog mellem sælger (computer) og køber (bruger) ved køb af et produkt efter følgende skema: at tilbyde et produkt til en bestemt pris, anmode om mængden af ​​det købte produkt, fastlægge og vise det beløb, som køber skal betale for købet.

Læseinstruktionen er beregnet til at indtaste variable værdier (initialdata) fra tastaturet. Generelt ser instruktionen sådan ud:

læs (Variable!, Variable2, ... VariableU hvor variabel er navnet på den variabel, hvis værdi skal indtastes fra tastaturet under programafvikling.

Her er eksempler på at skrive en læst erklæring:

Læs en); læs(Cena, Kol);

Når en læsesætning udføres, sker følgende:

1. Programmet sætter sit arbejde på pause og venter, indtil de nødvendige data er indtastet på tastaturet, og der trykkes på tasten .

2. Efter at have trykket på tasten den indtastede værdi tildeles den variabel, hvis navn er angivet i sætningen.

For eksempel som følge af udførelse af instruktionen

Læs(Temperat);

og indtaste linje 21 på tastaturet, vil værdien af ​​Tempérât-variablen være tallet 21.

En læst erklæring giver dig mulighed for at få værdierne af flere variabler. I dette tilfælde skal de indtastede tal skrives på én linje og adskilles med mellemrum. For eksempel, hvis typen af ​​variable a, b og c er reel, så som et resultat af udførelse af instruktionen læst (a, b, c); og tastaturinput af linjen:

4.5 23 0.17

variabler vil have følgende værdier: a = 4,5; b = 23, o; c = 0,17.

Hvis der er flere tal i en linje end variablerne i den læste sætning, så vil resten af ​​linjen blive behandlet af den næste læste sætning. For eksempel, som et resultat af at udføre instruktionerne:

Læs (a, b); læs(C);

og tastaturinput

10 25 18

variabler vil få følgende værdier: a = 10, b = 25. Instruktion læst (C); vil tildele værdien 18 til variablen c.

Readln-instruktionen adskiller sig fra readln-instruktionen ved, at efter at have udtrukket det næste tal fra strengen indtastet på tastaturet og tildelt den til den sidste variabel i readln-instruktionens liste, går resten af ​​strengen tabt, og den næste læse- eller readln-instruktion vil kræve nyt input.

For eksempel, som et resultat af at udføre erklæringen:

readln(a, b); læs(C);

og skrive fra tastaturet

10 25 18

variablerne får følgende værdier: a = u, b = 25. Derefter venter programmet på, at der indtastes et nyt tal for at tildele det til variablen c.

Før hver læse- eller readln-instruktion bør du placere en skriveinstruktion for at fortælle brugeren, hvilke data programmet forventer af ham. For eksempel kan et fragment af et program til beregning af prisen på et køb se sådan ud:

Writeln("Indtast startdata."); write("Produktpris:"); readln(sepa); write("Mængde antal:"); readln(col); write("Rabat:"); readln(Skidka);

Hvis den type data, der indtastes fra tastaturet, ikke stemmer overens med eller ikke kan castes til den type variabler, hvis navne er angivet i read (readln) instruktionen, så går programmet ned (instruktionerne efter læsningen udføres ikke), og en meddelelsen vises på skærmen.

Pascal-programmeringssproget bruger instruktioner som read og readLn. Hvad er de?

Hvad er en læseinstruktion?

Denne instruktion er beregnet til at give input fra pc-tastaturet til forskellige værdier af variabler, når du bruger Pascal-sproget. Ordningen for at bruge den pågældende instruktion ser enkel ud: som læst ("variabel værdi").

I praksis bruges read-sætningen til at sikre, at visse data læses fra en fil, og derefter tildeles værdierne udtrukket fra de tilsvarende data til de variabler, der er angivet ved kald af proceduren.

Hvis brugeren lavede en fejl ved indtastning af data, svarer de ikke til nogen type variabler afspejlet i instruktionen, programmet stopper med at udføre kommandoer. Samtidig kommer der en besked på pc-skærmen om, at der er opstået en fejl i applikationen.

Hvis programmøren bruger flere læseinstruktioner, vil dataene blive indtastet på den ene eller anden måde på samme linje. Overgangen til den næste er kun mulig, hvis den aktuelle linje slutter. Du kan dog læse information placeret på en anden linje ved hjælp af readLn-instruktionen. Lad os overveje dets funktioner mere detaljeret.

Hvad er readLn-instruktionen?

Essensen af ​​readLn-instruktionen er at indstille en betingelse i programmet, hvorunder:

  • ethvert tal, der er indtastet i linjen, tildeles den sidste variabel i henhold til instruktionen;
  • det resterende område af linjen behandles ikke af programmet, mens den næste instruktion kræver nyt input.

Så du kan indtaste instruktionen:

læsLn(C,D); læs(E);

Og hvis serien 1 2 3 derefter indtastes fra tastaturet, vil variablen C erhverve værdien 1, D - 2. Men programmet vil ikke tildele en bestemt værdi til variablen E, før brugeren indtaster et nyt tal.

Som med read-sætningen, hvis brugeren indtaster en datatype forkert via readLn-kommandoen, afsluttes programmet og rapporterer, at der er opstået en fejl.

Sammenligning

Den største forskel mellem readLn og read er, at den første procedure involverer, at programmet hopper til filens linje efter den, hvori instruktionerne er skrevet. Den anden procedure giver programmet mulighed for kun at læse de data, der er placeret på den næste linje med brugerens tilladelse - hvis han trykker på Enter.

I praksis bruges brugen af ​​readLn-instruktionen oftest til at give en forsinkelse mellem resultatet af applikationsudførelsen og overgangen til den næste instruktion. Den tilsvarende forsinkelse varer, indtil brugeren trykker på Enter.

Efter at have bestemt, hvad der er forskellen mellem readLn og read i Pascal, lad os rette konklusionerne i tabellen.