Introduksjon til Pascal. Read and ReadLn-prosedyrer Hva betyr lesing i pascal

Les (prosedyre)

For maskinskrevne filer, leser filkomponenten inn i en variabel.
- For tekstfiler, leser en eller flere verdier
inn i en eller flere variabler

Kunngjøring

Innskrevne filer

Prosedyre Les (F, V1 [, V2, ..., Vn]);

Tekstfiler

Prosedyre Les ([Var F: Tekst;] V1 [, V2, ..., Vn]);

Modus

Windows, ekte, beskyttet

Merknader

For strengvariabler:

Les leser alle tegn frem til (men ikke inkludert) neste linjesluttmarkør eller til Eof(F) vil bli sann. Les går ikke til neste linje etter lesing. Hvis den resulterende strengen er lengre enn maksimal lengde på strengvariabelen, avkortes den. Etter den første lesingen vil hvert påfølgende Read-anrop se linjesluttmarkøren og returnere en null-lengde streng.

Bruk flere kall til ReadLn for å lese flere strengverdier.

Når alternativet er aktivert Utvidet syntaks, kan leseprosedyren lese nullterminerte strenger til nullbaserte tegnarrayer.

For variabler som Heltall eller Ekte:

Les vil hoppe over mellomrom, tabulatorer eller linjesluttmarkører foran en numerisk linje. Hvis den numeriske strengen ikke samsvarer med det forventede formatet, oppstår det en I/O-feil, ellers blir variabelen tildelt den resulterende verdien. Neste lesing vil begynne med et mellomrom, tabulator eller linjesluttmarkør som avsluttet den numeriske strengen.

se også

Eksempel

bruker Crt, Dos;

var
F: Tekst;
Ch: Char;

begynne
(Få filnavnet fra kommandolinjen)
Tilordne (F, ParamStr (1));
Tilbakestill (F);
mens ikke EOF (F) gjør det
begynne
Les (F, Ch);
Skriv (Ch); (Vi viser innholdet i filen på skjermen)
slutt;
slutt.

Som med output-setningene, er read- og reeadln-setningene innebygde call-setninger. prosedyrer for inntasting av informasjon.

Operatører read (read) og readln, som kommer fra de to engelske ordene read og line (string) brukes i programmer for å legge inn informasjon i datamaskinens minne og " avlesninger"verdier til en variabel.

La oss vurdere arbeidet til disse operatørene og prosedyrene for å legge inn informasjon.

Programmet vårt har en readln (a) rutine. Mens du kjører programmet, når den møter readln-setningen, vil datamaskinen pause mens den venter på at informasjon skal legges inn. Etter at vi har lagt inn verdien til variabelen a - 16 fra tastaturet, vil datamaskinen tildele denne verdien til variabelen a, dvs. vil sende den til minneplassering a og fortsette programkjøringen. Vi kaller denne prosessen " ved å lese"verdier til en variabel.

Så les- og readln-prosedyrene "leser" verdiene til variablene og tilordner dem til variablene som er skrevet i dem.

Det kan være flere slike variabler, så skrives de i disse operatorene atskilt med komma, for eksempel:

les (a, b, c, n, g, j, i), lesln (e, f, k, p, d), etc.

Hva er forskjellen mellom lese- og leseprosedyrer?

Leseprosedyren vil etter seg kreve inn- eller utdata av informasjon på én linje, og readln-prosedyren gjør det mulig etter seg selv å legge inn og skrive ut informasjon fra begynnelsen av en ny linje.

For eksempel:

I programmet: skriv ("Skriv inn verdiene til a og b"); lese (a, b);

skriv ("Skriv inn informasjon på en linje");

Når denne delen av programmet kjøres, vil alt som er skrevet i den første skrivesetningen vises på skjermen, deretter vil markøren være på samme linje, og datamaskinen vil vente på verdiene til a og b til legges inn. La oss legge inn verdiene deres - 2 og 3, og skille dem med et mellomrom eller med andre ord gjennom et mellomrom. Etter det vil informasjonen som er skrevet i neste skriveerklæring vises på samme linje.

På skjermen:

Skriv inn verdier for a og b 2 3 Skriv inn informasjon på én linje

I et program:

writeln ("Skriv inn verdiene a, b og c); readln (a, b, c);

writeln ("Inndata og utdata fra begynnelsen av linjen");

På skjermen:

Skriv inn verdiene a, b og c

Input og output av informasjon fra begynnelsen av en linje

Aritmetiske operasjoner med heltall. Heltallsvariabler. Ekte type

På Pascal-språket brukes heltall, som inkluderer alle naturlige tall som dannes i prosessen med å telle objekter: 1, 2, 3, 4, 5, 6, ...; negative tall: ..., -6, -5, -4, -3, -2, -1 og tall null: 0. Heltall danner følgende serie:

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

Pascal godtar en rekke heltall fra -32768 til 32767.

Variabler som tar heltallsverdier er skrevet i beskrivelsesdelen med heltallstypen spesifisert.

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

Verdier av en annen type enn disse variablene i ett program kan ikke tildeles.

Aritmetiske operasjoner med heltall og heltallsvariabler i Pascal

"_"-tegnet betyr et mellomrom. Mellomrom mellom variabelnavn og operasjonsnavnet (div) kreves. (Kommer fra engelsk divisjon - divisjon).

Resten av a delt på b. a_mod_b

Tema: Inngang Utgang. Les (Les), Skriv (Skriv) utsagn. De enkleste lineære programmene.

La oss løse problemet ved å kommentere hver av handlingene våre i krøllete klammeparenteser. Husk at kommentaren ikke oppfattes av datamaskinen, men vi trenger den for bedre å forstå hvordan programmet fungerer.

Oppgave ... Skriv et program som tømmer skjermen og beregner produktet av to brukerangitte tall.

Program Proizv2;
Bruker
Crt; (Vi kobler til Crt-modulen)
Var
nummer1, (variabel som vil inneholde det første tallet)
nummer2, (variabel som vil inneholde det andre tallet)
rezult (variabel som vil inneholde resultatet)
: heltall;
Begynne
ClrScr; (Vi bruker prosedyren for å tømme skjermen fra Crt-modulen)
Skriv ("Skriv inn det første tallet");
Readln (nummer1);
(Tallet som legges inn av brukeren leses inn i variabelen nummer1)
Skriv ("Skriv inn det andre tallet");
(Viser tegn skrevet mellom apostrof)
Readln (nummer2);
(Tallet som legges inn av brukeren leses inn i variabelen number2)
rezult: = tall1 * tall2;
(Finn produktet av de angitte tallene og tilordne det til variabelen rezult)
Skriv ("Produkt av tall", tall1, "og", tall2, "lik", rezult);
(Vi viser en linje som inneholder svaret på problemet)
Readln; (Prosedyre for skjermforsinkelse)
Slutt.

For bedre å forstå handlingen til et program, skriv det inn på datamaskinen og test handlingen. Svar på spørsmålene:

  • hvorfor het programmet Proizv2?
  • Hvorfor la du Crt-modulen i Bruker-delen?
  • hva er hensikten med variablene nummer1, tall2, rezult?
  • hvilken type er disse variablene? hva betyr det?
  • Hvis vi tilordner variablene nummer1 og nummer2 til henholdsvis verdiene 5 og 7, hvilken linje vil datamaskinen produsere når den utfører den siste skriveprosedyren? Skriv det ned i notatboken din.
  • i hvilke linjer blir brukeren bedt om verdiene til variablene?
  • på hvilken linje forekommer multiplikasjonen av tall?
  • hva gjør oppdragsoperatøren i dette programmet?

Trening ... Endre programmet slik at det ber brukeren om en annen variabel og sender ut produktet av tre tall.

Skriv og skriv erklæringer

Vi har allerede brukt Write- og WriteLn-operatorene, men vi må dvele mer detaljert ved reglene for bruk av disse operatorene.

Skriv er en operator som brukes til å vise informasjon på skjermen. WriteLn-operatoren utfører den samme handlingen, men siden den også har slutten Ln (linje), etter å ha vist ønsket melding på skjermen, flytter den i tillegg markøren til neste linje.

Generell form:
Skriv (liste over uttrykk)
WriteLn (liste over uttrykk)

Write- og WriteLn-prosedyrene brukes ikke bare til å vise resultatet, men også for å vise ulike meldinger eller forespørsler. Dette lar deg føre en dialog med brukeren, fortelle ham når han trenger å legge inn verdier, når han får et resultat, når han har gjort en feil osv.

For eksempel, når du utfører WriteLn-prosedyren ('Found number', a), vil en linje omsluttet av apostrof bli skrevet ut, og deretter vises verdien til variabelen a.

WriteLn-setningen kan brukes uten parametere. I dette tilfellet vil en linje som består av mellomrom skrives ut og markøren flyttes til en annen linje. Noen ganger trenger vi det for en bedre oppfatning av datainndata.

Read- og ReadLn-operatører

La oss huske at hovedformålet med en datamaskin er å spare menneskelig arbeidskraft. Derfor er det nødvendig å gi en mulighet, etter å ha skrevet et program, gjenbruk det hver gang du legger inn forskjellige data. Denne fleksibiliteten i språket er gitt av Read- og ReadLn-uttalelsene. Disse operatørene legger inn informasjon fra tastaturet.

Generell form:
Les (variabel, variabel ...)
ReadLn (variabel, variabel ...)

Lese-prosedyren forventer at verdiene som er oppført i parentes, legges inn. De angitte dataene må skilles fra hverandre med mellomrom. Tildelingen av verdier skjer etter tur.

For eksempel, hvis verdiene 53 og X angis, og når Read (a, b)-setningen utføres, vil tallet 53 bli tildelt variabelen a, og bokstaven X til variabelen X. Videre, i for å unngå en nødsituasjon, må du riktig bestemme datatypen i seksjonen Var; i vårt tilfelle a: heltall og b: char.

Det er ingen spesielle forskjeller i lesing og skriving i bruken av Read- og ReadLn-operatorene. Ofte brukes ReadLn-prosedyren uten parametere på slutten av programmet for å forsinke: før du trykker på en tast resultatet av programkjøringen forblir på skjermen. Dette er veldig nyttig for å analysere resultatene.

Merk ... Når du stiller inn skjermforsinkelsen, vær oppmerksom på forrige oppføring. Hvis dataene ble forespurt av leseprosedyren, vil det ikke være noen forsinkelse.

La oss løse et problem der vi vil vurdere all mulig bruk av disse prosedyrene.

Oppgave ... Finn gjennomsnittet av tre tall.

Merk ... For å finne gjennomsnittet av flere tall legger du til disse tallene og deler summen på antallet av disse tallene.

Skriv inn oppgaveteksten og vurder hver linje nøye. Navnet på Srednee-programmet gjenspeiler innholdet i oppgaven. La oss forresten bli enige om at navnet på programmet og navnet på filen som inneholder dette programmet er det samme. Deretter kommer tilkoblingen av Crt-modulen. I Var-delen beskrives First, Second, Third som variabler av en heltallstype, og Sum er av en reell type. Operatørdelen begynner med standard ClrScr (Clear Screen) skjermrutine som finnes i Crt-modulen. Deretter, med Write-setningen, viser vi meldingen 'Skriv inn det første tallet', etter å ha mottatt som brukeren må angi nummeret.

Nå skal datamaskinen lese de angitte tegnene og legge dem inn i First-variabelen, dette vil skje når neste ReadLn (First)-setning utføres. Deretter, ved å bruke Write-setningen, ber vi om verdiene til ytterligere to tall og leser dem inn i den andre og den tredje variabelen. Deretter beregner vi summen deres og tildeler det resulterende tallet til variabelen Sum. For å finne gjennomsnittet, må du nå dele det resulterende tallet med 3 og lagre resultatet i en variabel.

Det er slett ikke nødvendig å deklarere en annen variabel for å lagre resultatet. Du kan, som i vårt program, dele verdien av Sum-variabelen med 3 og tilordne resultatet til samme Sum-variabel igjen. Nå kan du vise resultatet av beregninger på skjermen ved å bruke skriveprosedyren. Til slutt vil den siste ReadLn-rutinen forsinke utdataene våre til skjermen til en tast trykkes.

Trykk på tastene +... Skriv inn verdiene til variablene 5, 7 og 12, du vil se følgende på skjermen:

Gjennomsnittet av 5, 7 og 12 er 8,00

Se nøye på denne linjen og sammenlign den med linjen for å skrive ut resultatet i programmet vårt. Test programmet noen ganger til for forskjellige variabelverdier.

Velg sammen med læreren oppgavene som skal løses fra følgende liste:

  1. Skriv inn to tall a og b. Bruk tildelingsoperatoren til å utveksle verdiene deres:
    a) ved å bruke en mellomvariabel (x: = a; a: = b; b: = x);
    b) uten å bruke en mellomvariabel (a: = a-b; b: = a + b; a: = b-a).
  2. Skriv et program som spør brukeren om et heltall, et reelt tall, et vilkårlig tegn og en streng, og skriver deretter ut alt på én linje.
  3. Vis ditt etternavn, fornavn og patronym, og to linjer senere - fødselsdatoen din.
  4. Skriv et program for å skrive ut en av figurene med stjerner:
    a) juletrær (flere juletrær);
    b) snøfnugg (flere snøfnugg);
    c) et hus. For eksempel,

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

  5. Komponer visittkortet ditt.


    * Ivanov Sergey *
    * Proletarskaya 74 kvm. 55 *
    * Telefon 45-72-88 *
    *******************************

  6. Lag en dialog mellom brukeren og datamaskinen om et vilkårlig emne.
    For eksempel stiller en maskin to spørsmål: "Hva heter du?" hvor gammel er du?"; etter å ha skrevet inn navnet (Anton) og nummeret (15) vises på skjermen "Ja ... Om 50 år vil du være 65 år gammel, og navnet ditt vil ikke være Anton, men bestefar Anton"
  7. Spør brukeren om to tall og vis resultatet av summen, differansen, produktet og kvotienten til disse tallene med et fullstendig svar.
  8. Spør brukeren om to tall og vis resultatet av en heltallsdivisjon og resten av en heltallsdivisjon i form av en tabell. For eksempel, når du skriver inn tall 5 og 3, skal skjermen vise følgende tabell:

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

  9. Skriv et program som ber om navnet på et dyr og et tall, og viser deretter en setning som "Et ekorn spiser 10 sopp" (når du skriver inn ordet "ekorn" og tallet 10).
  10. Organisere en dialog mellom selgeren (datamaskinen) og kjøperen (brukeren) når du kjøper et produkt i henhold til følgende skjema: å tilby produktet til en bestemt pris, be om beløpet for det kjøpte produktet, bestemme og vise hvor mye penger som kjøper må betale for kjøpet.

Leseinstruksjonen er ment for å legge inn verdiene til variabler (initielle data) fra tastaturet. Generelt ser instruksjonen slik ut:

les (variabel !, variabel2, ... variabel

Her er eksempler på hvordan du skriver en lest uttalelse:

Lese en); lese (Cena, Kol);

Når lesesetningen utføres, skjer følgende:

1. Programmet setter arbeidet på pause og venter til de nødvendige dataene er skrevet inn på tastaturet og tasten trykkes .

2. Etter å ha trykket på tasten den angitte verdien tilordnes variabelen som er navngitt i setningen.

For eksempel som et resultat av å utføre instruksjonen

Les (Tempérât);

og ved å skrive linje 21, er verdien av Tempérât 21.

En lesesetning lar deg få verdiene til flere variabler. I dette tilfellet må de angitte tallene skrives på én linje og atskilt med mellomrom. For eksempel, hvis typen av variabler a, b og c er reell, så som et resultat av å utføre lesingen (a, b, c); og tastaturinndatastreng:

4.5 23 0.17

variablene vil ha følgende verdier: a = 4,5; b = 23, o; c = 0,17.

Hvis linjen inneholder flere tall enn de variablene som er spesifisert i den leste setningen, vil resten av linjen bli behandlet av den neste leste setningen. For eksempel, som et resultat av å utføre instruksjonene:

Les (a, B); les (C);

og tastaturinndatastreng

10 25 18

variabler vil motta følgende verdier: a = 10, b = 25. Les instruksjon (C); vil tilordne til variabelen med verdien 18.

Readln-instruksjonen skiller seg fra readln-instruksjonen ved at etter å ha valgt neste nummer fra linjen som legges inn fra tastaturet og tilordne den til den siste variabelen fra listen over readln-instruksjonen, går resten av linjen tapt, og neste lesning eller readln-instruksjon vil kreve ny inndata.

For eksempel, som et resultat av å utføre instruksjonen:

Readln (a, B); les (C);

og skrive inn strengen

10 25 18

variablene vil motta følgende verdier: a = 10, b = 25. Deretter vil programmet vente på at et nytt tall legges inn for å tilordne det til variabelen c.

Hver lese- eller leseinstruksjon bør innledes med en skriveinstruksjon for å fortelle brukeren hvilke data programmet forventer fra ham. For eksempel kan et fragment av programmet for å beregne kostnadene ved et kjøp se slik ut:

Writeln ("Skriv inn originaldata."); skriv ("Produktpris:"); readln (Sepa); skriv ("Antall i partiet:"); readln (Kol); skriv ("Rabatt:"); readln (Skidka);

Hvis typen data som legges inn fra tastaturet ikke samsvarer med eller ikke kan konverteres til typen variabler hvis navn er spesifisert i read (readln)-setningen, krasjer programmet (instruksjoner etter lesing utføres ikke), og en melding vises på skjermen om feil.

Pascal-programmeringsspråket bruker instruksjoner som read og readLn. Hva er de?

Hva er en lest uttalelse?

Denne instruksjonen er ment å gi input fra PC-tastaturet til forskjellige verdier av variabler ved bruk av Pascal-språket. Ordningen med å bruke den betraktede instruksjonen ser enkel ut: som les ("variabel verdi").

I praksis brukes leseinstruksjonen for å sikre at visse data leses fra en fil, og deretter blir verdiene hentet fra de tilsvarende dataene tilordnet variablene som er spesifisert når prosedyren kalles.

Hvis brukeren gjør en feil når han legger inn data, samsvarer de ikke med noen type variabler som reflekteres i instruksjonen, programmet slutter å utføre kommandoene. I dette tilfellet vises en melding på PC-skjermen om at det har oppstått en feil i applikasjonen.

Hvis programmereren bruker flere leseinstruksjoner, vil dataene legges inn på en eller annen måte på en linje. Neste hopp er bare mulig hvis gjeldende linje slutter. Du kan imidlertid lese informasjon plassert på en annen linje ved å bruke readLn-instruksjonen. La oss vurdere funksjonene mer detaljert.

Hva er readLn-instruksjonen?

Essensen av readLn-instruksjonen er å sette en betingelse i programmet som:

  • et hvilket som helst tall som legges inn i strengen tilordnes den siste variabelen av instruksjonen;
  • resten av linjen blir ikke behandlet av programmet, mens neste instruksjon vil kreve ny input.

Så du kan skrive inn instruksjonen:

readLn (C, D); les (E);

Og hvis du etter det skriver inn en rad 1 2 3 fra tastaturet, vil variabelen C få verdien 1, D - 2. Men programmet vil ikke tildele en viss verdi til variabelen E før brukeren skriver inn et nytt tall.

Som i tilfellet med leseinstruksjonen, hvis brukeren skriver inn datatypen feil ved hjelp av readLn-kommandoen, avsluttes programmet og viser en feilmelding.

Sammenligning

Hovedforskjellen mellom readLn og read er at den første prosedyren innebærer at programmet hopper til fillinjen etter den som instruksjonene er skrevet i. Den andre prosedyren lar programmet lese dataene som er plassert i neste linje, bare med tillatelse fra brukeren - hvis han trykker på Enter.

I praksis brukes readLn-instruksjonen oftest for å gi en forsinkelse mellom resultatet av applikasjonskjøringen og overgangen til neste instruksjon. Den tilsvarende forsinkelsen varer til brukeren trykker Enter.

Etter å ha bestemt hva som er forskjellen mellom readLn og read på Pascal-språket, la oss fikse konklusjonene i tabellen.