Er resultatet av å utføre en uttalelse. Betinget operatør? Operatørens bruksbegrensninger

I forrige avsnitt ble vi kjent med strukturen til et program i Pascal, lærte å beskrive data og så på oppgaveoperatøren. Dette er nok til å skrive et datakonverteringsprogram. Men resultatet av disse transformasjonene vil ikke være synlige for oss.

Å sende ut data fra tilfeldig tilgangsminne Skriveutgangsoperatøren brukes på monitorskjermen:

Her, i parentes, er en utdataliste plassert - en liste over uttrykk hvis verdier er skrevet ut. Disse kan være numeriske, symbolske og logiske uttrykk, inkludert variabler og konstanter.

Et vilkårlig sett med tegn innelukket i apostrof regnes som en strengkonstant. En strengkonstant kan inneholde alle tegn som er skrevet på tastaturet.

Eksempel. Write ("s=", s)-setningen utføres slik:

  1. Symboler innelukket i apostrof vises på skjermen: s=
  2. Verdien til variabelen som er lagret i en RAM-celle kalt s, vises på skjermen.

Hvis verdien av variabelen s er 15 og den er av heltallstype, vil skjermen vise: s=15.

Hvis verdien av variabelen s er 15, men den er av reell type, vil følgende vises på skjermen: s=l.5E+01.

Når utdatasetningen utføres, skrives alle elementene i utdatalisten ut umiddelbart etter hverandre. Som et resultat av skriveoperatoren (1, 20, 300), vil sekvensen av tall 120300 vises på skjermen, som vil bli oppfattet av oss som tallet 120300, og ikke som tre separate numeriske konstanter. Du kan gjøre utdataene mer tilgjengelige for persepsjon på forskjellige måter:

Utgående format er et heltall angitt etter kolon som bestemmer hvor mange posisjoner på skjermen den viste verdien skal oppta. Hvis det er færre siffer i et tall enn posisjonene som er reservert for det på skjermen, blir de ledige posisjonene supplert med mellomrom til venstre for tallet. Hvis antallet spesifisert i utdataformatet etter kolon er mindre enn nødvendig, vil det automatisk økes til minimumskravet.

For å skrive ut et reelt tall i fastpunktformat, er to parametere spesifisert i utdatalisten for hvert uttrykk:

  1. det totale antallet stillinger som er tildelt for antallet;
  2. antall posisjoner i brøkdelen av tallet.

Når en ny skrivesetning utføres, fortsetter utgangen på samme linje. For å hoppe til en ny linje, bruk Writeln-operatoren. Det er ingen andre forskjeller mellom skrive- og skriveutsagnene.

4.2.2. Første program på Pascal-språket

Ved å bruke operatørene diskutert ovenfor, vil vi lage et program som beregner omkretsen og arealet til en sirkel med en radius på 5,4 cm.

De første dataene i dette problemet er radiusen: r - 5,4 cm. Resultatet av programmet skal være verdiene C - omkretsen og S - området av sirkelen. C, S og r er mengder av reell type.

De første dataene og resultatene er relatert til relasjoner kjent fra matematikkkurset: C = 2πr, S = πr +. Et program som implementerer beregninger ved hjelp av disse formlene vil se slik ut:

Dette programmet er riktig og løser problemet. Når du kjører det, vil du få følgende resultat:

Likevel har programmet vi kompilerte en betydelig ulempe: det finner omkretsen og arealet til en sirkel for en enkelt radiusverdi (5,4 cm).

For å beregne omkretsen og arealet til en sirkel for en annen radiusverdi, må du gjøre endringer direkte i programteksten, nemlig endre tilordningsoperatøren. Å gjøre endringer i et eksisterende program er mildt sagt ikke alltid praktisk (for eksempel når programmet er stort og det er mange oppdragsoperatører). Nedenfor vil du bli kjent med en operatør som lar deg legge inn startdata mens programmet kjører, uten å endre programteksten.

4.2.3. Tastaturinngang

For å legge inn variable verdier i RAM, bruk leseinndataoperatoren:

Når lesesetningen er utført, går datamaskinen inn i data-ventemodus: brukeren må legge inn data fra tastaturet og trykke på Enter-tasten. Flere verdier for numeriske typevariabler kan angis atskilt med mellomrom eller komma. Når du legger inn tegnvariabler, behandles mellomrom og komma som tegn, så de kan ikke legges inn.

Den første variabelverdien som legges inn av brukeren, plasseres i minneplasseringen hvis navn er plassert først i inndatalisten, osv. Derfor må typene inngangsverdier (inngangsstrøm) samsvare med variablene spesifisert i variabelen beskrivelsesdelen.

Eksempel. La

var i, j: heltall; x: ekte; a:char;

La oss tilordne variablene i, j, x og verdiene 1, 0, 2,5 og "A". For å gjøre dette bruker vi operatøren les (i, j, x, a) og organiserer inngangsstrømmen på en av følgende måter:

Her brukte vi ikke bare ulike skilletegn (mellomrom, komma), men representerte også inngangsstrømmen som én, to og fire linjer.

Du kan også bruke readln-operatoren til å legge inn data fra tastaturet, som bare skiller seg fra read-operatoren ved at etter at den er utført, flytter markøren til en ny linje.

La oss forbedre program n_1 ved å organisere dataregistrering i det ved å bruke leseoperatoren. Og slik at brukeren vet hva programmet er ment for og forstår hvilken handling datamaskinen forventer av ham, vil vi vise den tilsvarende tekstmeldinger ved å bruke Writeln-operatoren:

Resultatet av det forbedrede programmet:

Nå kan programmet vårt beregne omkretsen og arealet til en sirkel for enhver verdi av r. Det løser med andre ord ikke et enkelt problem, men en hel klasse med problemer. I tillegg organiserer programmet tydelig og enkelt innspillingen av innledende data og resultatet av de oppnådde resultatene. Dette sikrer et vennlig brukergrensesnitt.

Det viktigste

For å legge inn variable verdier i RAM, brukes read- og readln-inndataoperatorene.

For å sende ut data fra RAM til monitorskjermen, brukes skrive- og skrive-utgangsoperatorene.

Inndata av innledende data og utdata av resultater bør organiseres klart og praktisk; dette sikrer et vennlig brukergrensesnitt.

Spørsmål og oppgaver

  1. Skriv en setning som lar deg angi verdien til summavariabelen mens programmet kjører.
  2. Heltallsvariablene i, y, k må tildeles henholdsvis verdiene 10, 20 og 30. Skriv ned input-setningen som tilsvarer inngangsstrømmen:
      a) 20 10 30
      b) 30 20 10
      c) 10 30 20
  3. Beskriv variablene som trengs for å beregne arealet til en trekant basert på dens tre sider, og skriv en setning som gir de nødvendige inndataene.
  4. Hva er resultatet av å utføre uttalelsen?
      a) skriv (a)
      b) skriv (1 a ")
      c) skriv (1 a=1, a)
  5. Hvilken type er variabelen f hvis følgende tall ble vist på skjermen etter å ha utført skrive(f)-setningen?
      a) 125
      b) 1,25E+2
  6. Hvordan kan jeg vise et reelt tall i fastpunktformat?
  7. Skriv ned operatorene for å legge inn to tall og skrive dem ut i omvendt rekkefølge.
  8. Her er et fragment av programmet:

    lese en); lese(b); c:=a+b; skriv(a, b); skriv (c)

    Forenkle det ved å redusere antall input- og output-setninger.

  9. Her er et fragment av programmet:

    a:=10; b:=a+l: a:=b-a; skriv (a, b)

    Hvilke tall vil vises på dataskjermen?

  10. Skriv et program som beregner arealet og omkretsen til et rektangel basert på dets to sider.

Datautgang
Utdata fra RAM til monitorskjermen:
skrive
(<выражение 1> ,< выражение 2> , ...,< выражение N>)
utdataliste
Uttrykk - symbolske, numeriske, logiske,
inkludert variabler og konstanter
Eksempel:
skriv("s=", s).
For s=15 vil skjermen vise: s=15.
Informasjon i anførselstegn vises på skjermen
uten endringer

Output organisasjonsalternativer
Alternativ
organisering av uttak
Ingen separatorer
Inferensoperatør
skriv(1, 20, 300).
Resultat
120300
Legg til skilletegn skriv (1, ',' , 20,
– komma
’, ’, 300)
1, 20, 300
Legg til skilletegn skriv (1, ' ', 2, ' ', 3)
– mellomrom
1 20 300

Utgående format
Utdataformatet lar deg angi antall posisjoner
på skjermen som er opptatt av den viste verdien.
skriv(e:x:y)
x - det totale antallet stillinger som er tildelt for antallet;
y - antall posisjoner i brøkdelen av tallet.
Inferensoperatør
Utførelsesresultat
operatør
skriv(‘s=‘, s:2:0);
s=15
skriv(‘s=‘, s:3:1);
s=15,0
skriv(‘s=‘, s:5:1);
s=
skriveln
15.0
- utgang fra en ny linje!

Første program
program n_1;
const pi=3,14;
var r, c, s: ekte;
begynne
r: = 5,4;
c:=2*pi*r;
Resultatet av programmet:
s:=pi*r*r;
writeln("c="", c:6:4);
writeln("s=", s:6:4)
Turbo Pascal
Versjon 7.0
slutt.
c = 33,9120
s = 91,5624

Tastaturinngang
Legge inn variable verdier i RAM:
lese
(<имя переменной1>, …, <имя переменной N>)
inndataliste
Utførelse av leseerklæringen:
1) datamaskinen går i databeredskapsmodus:
2) brukeren legger inn data fra tastaturet:
flere variabelverdier
numeriske typer kan angis
atskilt med mellomrom eller komma;
når du legger inn tegnvariabler
Mellomrom og komma kan ikke brukes;
3) brukeren trykker på Enter-tasten.

Tastaturinngang
!
Inndataverditypene må samsvare
variabeltyper spesifisert i beskrivelsesdelen
variabler.
var i, j: heltall;x: ekte;a: char;
les(i, j, x, a);
alternativer for å organisere inndatastrømmen:
1 0 2,5 A 1,0 1
2,5, A 0
2.5
EN
Etter at readln-setningen er utført, flyttes markøren til
ny linje.

Forbedret program
program n_1;
const pi=3,14;
var r, c, s: ekte;
begynne
writeln("Regn ut omkretsen og arealet til en sirkel");
write("Skriv inn r>>");
readln(r);
c:=2*pi*r;
Resultatet av programmet:
s:=pi*r*r;
writeln("c="", c:6:4);
Pascal versjon 7.0
writeln("s=", s:6:4) Turbo
Beregning av omkretsen og arealet til en sirkel
Skriv inn r >> 8.5
slutt.
c = 53,3800
s = 226,8650

Det viktigste
For å legge inn variable verdier i RAM
Lese- og leseinndataoperatorene brukes.
For å vise data fra RAM på skjermen
Monitoren bruker skrive- og skrive-utgangsoperatorene.
Inndata av innledende data og utdata av resultater må
være klart og praktisk organisert; dette sikrer
brukervennligheten til brukergrensesnittet.

Spørsmål og oppgaver
1) Gitt et programfragment:
a:=10; b:=a+1: a:=b–a; skriv (a, b)
Hvilke tall vil vises på dataskjermen?
2) Beskriv variablene som trengs for beregningen
arealet av en trekant langs dens tre sider, og
skrive en uttalelse som gir innspill
nødvendige innledende data.
3) Hva er resultatet av å utføre uttalelsen?
a) skriv (a)
b) skriv("a")
c) skriv("a=", a)
4) Heltallsvariablene i, j, k må tilordnes
verdiene er henholdsvis 10, 20 og 30.
Skriv ned input-setningen som svarer til input
strøm:
a) 20 10 30
b) 30 20 10
c) 10,30,20

Operatør er et språkelement som spesifiserer en fullstendig beskrivelse av handlingen som skal utføres. Hver operatør er en komplett frase av et programmeringsspråk og definerer et fullstendig fullført stadium av databehandling. Operatorer kan inkludere funksjonsord, data, uttrykk og andre operatorer. I engelske språk dette konseptet betegnet med ordet "erklæring", som også betyr "forslag".

Hver operatør i et hvilket som helst programmeringsspråk har en spesifikk syntaks Og semantikk. Under syntaks operatør forstås som et system av regler (grammatikk) som bestemmer registreringen ved hjelp av elementene i alfabetet av dette språket, som sammen med ulike symboler inkluderer for eksempel funksjonsord. Under semantikk operatør forstå betydningen, dvs. de handlingene som tilsvarer posten til en bestemt operatør. For eksempel, ta opp i:= i + 1 er et eksempel på en syntaktisk korrekt notasjon oppdragsoperatør i Pascal-språket, hvis semantikk i dette tilfellet er som følger: trekk ut verdien av minnecellen som tilsvarer variabelen i, legg den til med en og skriv resultatet til den samme minnecellen.

I de fleste prosedyreprogrammeringsspråk er settet med operatører nesten det samme og består av en oppdragsoperatør, utvalgsoperatører, sløyfeoperatører, en prosedyreanropsoperatør og hoppoperatører. Noen ganger skilles det også mellom tomme (ingen handling) og sammensatte operatorer. Mange operatører er en måte å representere visse algoritmiske konstruksjoner på (se " Algoritmiske design” ) på et programmeringsspråk. La oss se på operatørgrupper mer detaljert ved å bruke Pascal-språksyntaksen.

Oppdragsoperatør

Tilordning er en datamaskinhandling som et resultat av at en variabel mottar verdien av et beregnet uttrykk (den plasseres i minnecellen som tilsvarer variabelen). For å beskrive en slik handling i programmeringsspråk, er det oppdragsoperatør.

Generelt er oppdragsoperatøren skrevet slik:

<переменная> <знак присваивания> <выражение>

For eksempel, i Pascal brukes symbolkombinasjonen som et tilordningstegn: =. På en rekke andre språk er det et likhetstegn.

Resultatet av å utføre oppdragsoperatøren er en endring i tilstanden til dataene: alle andre variabler enn variabel, som ligger på venstre side av oppdragsoperatøren, endrer ikke betydningen, men den spesifiserte variabel får verdien uttrykkene, vises på høyre side av oppdragsoperatøren. I de fleste tilfeller kreves det at typen uttrykkene matchet typen variabel. Hvis dette ikke er tilfelle, anses operatoren enten som syntaktisk feil, eller typen av uttrykket konverteres til typen av variabelen (se " Datatyper” ).

Utvalgte operatører

Disse operatørene kalles annerledes betingede uttalelser. Betingede utsagn brukes til å programmere algoritmer som inneholder en algoritmisk forgreningskonstruksjon.

Det finnes flere typer betingede utsagn i programmeringsspråk. Den fullstendige betingede setningen tilsvarer den algoritmiske strukturen til full forgrening:

I et programmeringsspråk har den tilsvarende betingede operatøren formen:

hvis B deretter S1 ellers S2

Hvis uttrykket B, som beregnes i begynnelsen av utførelsen av den betingede setningen, har verdien "true", da vil setningen bli utført S1, ellers - operatør S2. Operatører S1 Og S2 kan være sammensatt.

Den algoritmiske strukturen til ufullstendig forgrening er implementert ved hjelp av en ufullstendig betinget operatør, som har formen:

hvis B deretter S

Her B er et logisk uttrykk, og S- vilkårlig operatør. Operatør S vil bli utført hvis uttrykk B er sant.

Hvis en betinget operatør implementerer bare to valggrener ("ja" og "nei"), må du bruke variant operatør (sak-operatør) kan du programmere en struktur med flere grener. Variantoperatoren ser slik ut:

sak E av

Utført denne operatøren som dette: betydningen av uttrykket E søkte blant verdiene oppført i operatørposten V1, V2, …, Vn, og hvis en slik verdi blir funnet, blir den tilsvarende operatøren utført S1, S2, …, Sn.

I forskjellige programmeringsspråk kan syntaksen og til og med semantikken til de listede operatørene variere, men mulighetene som programmereren får av slike konstruksjoner er omtrent de samme.

Eksempel 1. I artikkelen " Algoritmiske design”2 ble det gitt et eksempel på å skrive en algoritme for å løse en generalisert andregradsligning ved bruk av forgreningskonstruksjoner. Her er et fragment av et program i Pascal som implementerer den samme algoritmen:

hvis a = 0 deretter

hvis b = 0 deretter

hvis c = 0 deretter writeln("x - hvilken som helst")

ellers writeln("ingen røtter")

ellers skrivln(-c/b)

ellers begynne

D:= b*b - 4*a*c;

hvis D< 0 deretter writeln("ingen røtter")

ellers begynne

x1:= -b + sqrt(D);

x2:= -b - sqrt(D);

skrivln(x1:0:2,""", x2:0:2)

Løkkeuttalelser

Sløyfeoperatører implementerer sykliske algoritmiske strukturer; de brukes til handlinger som gjentas mange ganger. I mange programmeringsspråk er det tre typer sløyfeoperatorer: "med forutsetning", "med etterbetingelse", "med parameter".

En nødvendig og tilstrekkelig algoritmisk struktur for programmering av løkker er en løkke "med en forutsetning", så den kan kalles hovedtypen løkke. Sløyfeoperatøren med en forutsetning ser slik ut:

mens B gjøre S

Operatør S, som en løkke opprettes for gjentatt utførelse kalles sløyfens kropp. Utførelse av en løkkeoperator reduseres til gjentatt kjøring av løkkelegemet inntil verdien av det logiske uttrykket B sant (til det blir usant). Faktisk implementerer lignende loop-setninger gjentatt utførelse av betingede setninger hvis B deretter S, mens tilstanden er sann B.

Eksempel 2. Vurder bruken av en slik sløyfeoperator for å beregne summen av sifrene til et naturlig tall N:

samtidig som N>0 begynne

S:= S + N mod 10;

N:=N div 10

I en sløyfe med en postbetingelse går sløyfens kropp foran betingelse B. I motsetning til en sløyfe med en forutsetning, er B her betingelsen for å avslutte sløyfen. Sløyfeoperatøren med postcondition i Pascal har formen:

gjentar seg før B

Med denne organiseringen av syklusen, kroppen av syklusen S må utføres minst én gang.

På nesten alle prosessspråk er det sløyfeoperatør med parameter. Det kan representeres skjematisk slik:

til< variabel > E1 til E2 steg E3 gjøre S

Her er meningen variabel(syklusparameter) endres fra verdien av uttrykket E1 til E2 i trinn av E3. For hver slik verdi av en sløyfeparameter, utføres operatoren S. I Pascal-språket er konseptet med et trinn fraværende i beskrivelsen av denne operatøren, og selve trinnet for en heltallsløkkeparameter kan være lik enten 1 eller -1. Operatoren "løkke med parameter" brukes til å programmere looper med et spesifisert antall repetisjoner. Den er ikke egnet for programmering av iterative løkker (hvis antall repetisjoner er ukjent på forhånd).

Prosedyre ringe operatør

I artikkelen " Subrutiner” beskriver i detalj denne typen subrutine, for eksempel prosedyrer. Standard programmeringsspråkrutiner som er inkludert i et av rutinebibliotekene, samt brukerrutiner beskrevet inne i denne blokken, kalles ved å bruke operatøren prosedyrekall:

<имя процедуры>(E1,E2,…,En)

Her er E1,E2,...,En variabler eller uttrykk som representerer faktiske parametere tilgang til prosedyren. Mest brukt standard prosedyrer er datainn- og utdataprosedyrer (lese og skrive i Pascal).

Å kalle en prosedyre er semantisk ekvivalent med å utføre blokken som er beskrevet som prosedyrens kropp, etter å ha ført inn startverdiene til noen variabler (verdiparametere) eller erstatte navnene på noen variabler (variable parametere) med navnene på faktiske variabler spesifisert når prosedyren kalles.

Eksempel 3. La oss beskrive prosedyre abc:

prosedyre abc(a,b:heltall; var c: heltall);

Å kalle denne prosedyren abc(2,3,x) tilsvarer en handlingsblokk:

Hoppoperatører

Den mest kjente operatøren i denne gruppen av operatører er den ubetingede hoppoperatøren gå til. Hvis du legger til alle eller noen av de eksisterende programsetningene tagger, så i programmet blir det mulig å bruke en overgangsoperatør av skjemaet:

gå til<метка>

Etiketten i dette tilfellet tilsvarer begynnelsen av setningen som programkjøringen skal fortsette fra. Denne operatøren lar deg skrive algoritmer i et programmeringsspråk som har en vilkårlig kompleks struktur. Men ofte er bruken av ubetinget overgang uberettiget, fordi fører til forvirrende, dårlig lesbart program. Nesten den eneste meningsfulle bruken av operatøren gå til er en utgang fra flere nestede løkker samtidig, for eksempel ved behandling av todimensjonale arrays.

Eksempel 4. Anta at vi må bestemme om en todimensjonal matrise a inneholder et element lik 0:

til i:= 1 til N gjøre

for j:= 1 til N gjøre

hvis a = 0 så begynn

1: hvis b deretter skriv("er") ellers skriv("nei");

Et program utviklet i henhold til reglene for strukturert programmering bør ikke inneholde ubetingede hoppoperatorer. Programmet ovenfor uten å bruke operatøren gå til kan skrives om som følger:

mens ikke b og(Jeg< N) begynne

mens ikke b og(j< N) begynne

hvis a = 0 deretter b:= sant;

hvis b deretter skriv("er") ellers skriv("nei");

I dette tilfellet er det strukturerte programmet mindre visuelt enn programmet med gå til.

Andre hoppoperatorer kan være definert i programmeringsspråk. For eksempel, i Pascal: gå i stykker(tidlig avbrudd av loopen, overgang til en setning som må utføres etter slutten av loopen), Fortsette(tidlig fullføring av gjeldende loop-iterasjon og overgang til neste), exit(tidlig avbrudd av subrutinen, gå ut av den), stoppe(tidlig avbrudd av programmet, overgang til slutten). Lignende operatører finnes i språkene C, C++ og Java.

Sammensatt operatør

En sammensatt setning er en gruppe setninger omsluttet av operatørparenteser (i Pascal - begynneslutt; i C, C++ - (…)).

Den sammensatte operatøren ble introdusert i programmeringsspråk for å lette beskrivelsen av språkkonstruksjoner. For eksempel, i Pascal, er den kjørbare delen av hver blokk (program, prosedyre, funksjon) en sammensatt setning. På nøyaktig samme måte består kroppen til en hvilken som helst sløyfeoperatør av bare én operator, kanskje en sammensatt. Et alternativ til en sammensatt operator kan være et funksjonsord som indikerer slutten på en bestemt operator, for eksempel, SLUTT OM på grunnleggende språk.

Emnet "Programmeringsspråkoperatører" studeres vanligvis bare i sammenheng med et spesifikt programmeringsspråk. Når man vurderer det, er det viktig å vise sammenhengen mellom grunnleggende algoritmiske konstruksjoner og operatorer: Algoritmiske konstruksjoner er skrevet i et programmeringsspråk ved å bruke de tilsvarende operatorene. Unntaket er på en måte det sekvensielle designet; det bestemmer den lineære rekkefølgen av handlinger. Handlinger i et strengt lineært program implementeres kun av oppdragserklæringer og prosedyrekallerklæringer.

I den innledende fasen av å lære programmering, møter skolebarn mange problemer. Den første psykologiske barrieren de må overvinne er når de lærer oppgaveoperatøren. En av hovedoppgavene du må løse sammen med elevene dine, er å bytte ut verdiene til to variabler. Du kan be skolebarn om å mentalt løse problemet med hvordan du bytter innholdet i to skuffer, for eksempel et skrivebord. Vanligvis, på dette stadiet av diskusjonen, innser elevene at en tredje boks (variabel) er nødvendig for å løse problemet. Men når de skriver denne algoritmen, forvirrer de ofte hvilken del av tildelingsoperatøren (venstre eller høyre) en bestemt variabel skal vises i.

Feil ved å skrive aritmetiske og logiske uttrykk oppstår på grunn av uvitenhet om forrangen til operasjoner som brukes i uttrykket. Samtidig betyr operasjoner ikke bare aritmetikk, men også sammenligningsoperasjoner og logiske koblinger, og på C-språket oppgaveoperasjonen, som er svært uvanlig for skoleelever. Situasjonen er komplisert av det faktum at i forskjellige programmeringsspråk har de samme operasjonene forskjellige relative prioriteter. Du bør også være oppmerksom på samsvaret mellom typene av variabelen og uttrykket på venstre og høyre side av tilordningsoperatøren (se " Datatyper”).

Når du mestrer utvalgsoperatorer, er det nyttig å la elevene programmere en algoritme som inneholder en flergrenstruktur, både ved å bruke en kombinasjon av betingede utsagn og ved å bruke en utvalgsoperator.

Eksempel. Til en heltallsvariabel N Skriv inn personens alder i år. Skriv inn uttrykket " Jeg er K år gammel”, erstatter ordet årår eller årets avhengig av antallet K. Her er to løsninger på dette problemet:

hvis(k mod 100) i

deretter writeln("Jeg er ",k," år gammel")

sak k mod 10 av

0,5..9:writeln("Jeg er ",k," år gammel");

1:writeln("Jeg er ",k," år gammel");

2..4:writeln("Jeg er ",k," år gammel");

var k, n: heltall;

readln(k); n:= k mod 10;

hvis(k mod 100) i

deretter writeln("Jeg er ",k," år gammel") ellers

hvis n=1 deretter writeln("Jeg er ",k," år gammel")

hvis(n >=) og(n<= 4)

deretter writeln("Jeg er ",k," år gammel")

ellers writeln("Jeg er ",k," år gammel")

Når du vurderer sløyfeoperatører, er det nyttig å foreslå å programmere samme oppgave på tre forskjellige måter ved å bruke tre sløyfeoperatører, og omvendt, basert på betingelsene for problemet, lære å bestemme hvilken sløyfeoperatør som er best egnet i et bestemt tilfelle.

Prosedyren samtale operatør er enkel ved første øyekast. Her er det viktig å forklare reglene for å overføre parametere til prosedyrer og funksjoner, forskjellen mellom variable parametere og verdiparametere (i sistnevnte tilfelle kan vi sende ikke bare variabelnavnet, men også en konstant eller til og med et uttrykk for den tilsvarende type). Formelle og faktiske parametere må samsvare i type, men ikke i navn, noe som er langt fra åpenbart for studentene.

Å studere det betingede og spesielt det sammensatte utsagnet er en god mulighet til å snakke med studenter om programmets skrivestil. Det er flere vanlige måter å skrive strukturerte programmer på i Pascal, men de inkluderer alle innrykk for å imøtekomme nestede strukturer. Viktig for opptak av programmer og kommentarer.

Programkoden er vist i fig. 4,3-9.

Alternativ Strict On Option Eksplisitt ved import System.Math Public Class Form1 "Funksjon for å legge inn koordinatene til et punkt i en TextBox Function vvod(ByVal T As TextBox) As Single Return CSng(Val(T.Text)) End Function "Prosedyre for utgang av resultatet i en TextBox Sub vivod (ByVal Z As Single, ByVal T As TextBox) T.Text = CStr(Z) End Sub "Funksjon for å beregne lengden til et segment fra koordinatene til to punkter Public Function Segment Length(ByVal x1 As Single, _ ByVal y1 As Single, ByVal x2 As Single, _ ByVal y2 As Single) As Single Return CSng(Sqrt((x2 - x1) ^ 2 + (y2 - y1) ^ 2)) End Function "Prosedyre for beregne omkretsen og arealet til en trekant Sub PS(ByVal x1 As Single, ByVal y1 As Single, _ ByVal x2 As Single, ByVal y2 As Single, _ ByVal x3 As Single, ByVal y3 As Single, _ ByRef P As Single , ByRef S As Single) Dim A, B, C, Pp As Single A = Segment Length(x1 , y1, x2, y2)"Kaller funksjonen for å beregne lengden på negativet. B = Lengde på segmentet (x2, y2, x3, y3) C = Lengde på segmentet (x3, y3, x1, y1) P = (A + B + C) : Pp = P / 2 S = CSng(Sqrt(Pp * (Pp - A) * (Pp - B) * (Pp - C))) End Sub "Prosedyre for å behandle klikkhendelsen på knappen Button1 Private Sub Button1_Click(ByVal sender Som System.Object, _ ByVal e As System.EventArgs) Håndterer Button1.Click Dim x1 Som Enkel, x2 Som Enkel, x3 Som Enkel Dim y1 Som Enkel, y2 Som Enkel, y3 Som Enkel Dim Per Som Enkel, Plo Som Enkel x1 = vvod(TextBox1) : x2 = vvod(TextBox2) : x3 = vvod(TextBox3 ) y1 = vvod(TextBox6) : y2 = vvod(TextBox7) : y3 = vvod(TextBox8) PS(x1, y1, x2, y2, x3, y3, Per, Plo) vivod(Plo, TextBox4) : vivod TextBox5) End Sub Private Sub Button2_Click(ByVal sender Som System.Object, _ ByVal e As System.EventArgs) Håndterer Button2.Click End End Sub End Class

Kjører applikasjonen og får resultater

Resultatet er vist i fig. 4,3-10.

Bevis på riktigheten av resultatet

A=
= 2,82843 B =
= 2

C = = 2 P = A + B + C = 6,828427; Рр = Р/2 = 3,414213 S= = 2


Sikkerhetsspørsmål om emnet

"Strukturen av VB-programmer, moduler og prosedyrer.

Programmeringsverktøy for lineære strukturalgoritmer"

1. Hva er en matematisk modell?

2. Hva er hovedstadiene involvert i å løse problemer på en datamaskin?

3. Hvilke stadier av datamaskinproblemløsning utføres uten deltakelse fra en datamaskin?

4. Hva kalles en matematisk modell av et objekt eller fenomen?

5. Hva er de sekvensielle trinnene i programutviklingsprosessen?

6. Hva er en algoritme?

7. Hvilke grunnleggende egenskaper bør en algoritme ha?

8. Hvilke måter er det å beskrive algoritmer på?

9. Hvilke grafiske symboler er vanligvis avbildet i algoritmediagrammer?

10. Hvordan fungerer tolken?

11. Hvordan fungerer kompilatoren?

12. Hvilken algoritme kalles lineær?

13. Hvilken algoritme kalles syklisk?

14. Hvilken algoritme kalles forgrening?

15. Hva er forskjellen mellom å bestå resultatene av funksjoner og prosedyrer?

16. Beviser det å oppnå et plausibelt resultat at programmet er riktig?

17. Hvilke feil kan forbli uoppdaget hvis du ikke sjekker (viser, blar) programmet?

18. Hvordan er det å teste et program forskjellig fra å feilsøke det?

19. Er det mulig å bevise riktigheten av et program gjennom testing?

20. På hvilket stadium av programmet beregnes referansetestresultatene?

21. List opp hovedstadiene i testprosessen.

22. Hva er forskjellen mellom syntaksfeil og semantiske feil?

23. Hva indikerer maskinens mangel på syntaksfeilmeldinger?

24. Hvilke typer feil kan ikke oversetteren oppdage?

25. Hva er programmet?

26. På hvilket stadium finner søket etter og eliminering av feil i programmet sted?

27. Hva er et programmeringssystem?

28. Hva er prosedyren?

29. Hva er fordelene med et program som har prosedyrer?

30. Hvilke prosedyreprogrammeringsverktøy er tilgjengelige i VB?

31. Hvordan utveksles data mellom individuelle programprosedyrer?

32. Hva er faktiske og formelle parametere?

33. Hvordan passere som en parameter: en konstant, en variabel, et uttrykk?

34. Hvordan brukes globale variabler?

35. Hvordan brukes lokale variabler?

36. Hva er formelle parametere?

37. Hva er de faktiske parameterne?

38. Hva skjer når en prosedyre kalles?

39. Hvordan kan parametere overføres til en prosedyre?

40. Hvilke parametere sendes av verdi?

41. Hvilke parametere sendes til adressen?

42. Hva er prosedyreprogrammeringsverktøy?

43. Hva er resultatet av å utføre en funksjon?

44. Hvordan skal individuelle variabler deklareres slik at de er lokale innenfor en funksjon?

45. Hvilken setning brukes for å avslutte en funksjon tidlig?

46. Hva kontrolleres når man kaller opp funksjoner og prosedyrer?

47. Hvordan skal formelle parametere deklareres for å overføre en variabel parameter etter verdi?

48. Hvordan skal formelle parametere deklareres for å sende en variabel parameter til en adresse?

49. Hvordan kalles en funksjonsprosedyre fra det anropende programmet?

50. Hva kan resultatet av prosedyren være?

51. Hvilken erklæring brukes for å avslutte en prosedyre tidlig?

52. Hvor kan beskrivelser av funksjoner og prosedyrer finnes?

53. Hvor vil en variabel som er deklarert ved hjelp av Public-operatøren være tilgjengelig?

54. Hvor kan den private operatøren være lokalisert?

55. Hva er en kommentar og reglene for å skrive den?

56. Hva er verdiene til variablene i begynnelsen av programmet?

57. Hvorfor er prosedyrer og funksjoner beskrevet (definert)?

58. Hvordan kalles prosedyrer?

59. Hvordan kalles funksjoner?


Relatert informasjon.





Topp