Se on lauseen suorittamisen tulos. Ehdollinen operaattori? Operaattorin käyttörajoitukset

Edellisessä kappaleessa tutustuimme ohjelman rakenteeseen Pascalissa, opimme kuvaamaan dataa ja katsoimme tehtäväoperaattoria. Tämä riittää tietojen muunnosohjelman kirjoittamiseen. Mutta näiden muutosten tulos ei näy meille.

Tulostaa tietoja kohteesta RAM-muisti Näytön näytössä käytetään kirjoituslähtöoperaattoria:

Täällä suluissa on tulosluettelo - luettelo lausekkeista, joiden arvot tulostetaan. Nämä voivat olla numeerisia, symbolisia ja loogisia lausekkeita, mukaan lukien muuttujat ja vakiot.

Satunnaista merkkijoukkoa heittomerkkien sisällä pidetään merkkijonovakiona. Merkkijonovakio voi sisältää mitä tahansa näppäimistöllä kirjoitettuja merkkejä.

Esimerkki. Write ("s=" , s) -käsky suoritetaan seuraavasti:

  1. Näytössä näkyvät heittomerkkien sisällä olevat symbolit: s=
  2. RAM-soluun nimeltä s tallennetun muuttujan arvo näkyy näytöllä.

Jos muuttujan s arvo on 15 ja se on kokonaislukutyyppiä, näyttöön tulee: s=15.

Jos muuttujan s arvo on 15, mutta se on reaalityyppistä, niin näytölle ilmestyy: s=l.5E+01.

Kun output-käsky suoritetaan, tulosteluettelon kaikki elementit tulostetaan välittömästi toistensa jälkeen. Täten kirjoitusoperaattorin (1, 20, 300) seurauksena näytölle tulee numerosarja 120300, jonka me näemme numerona 120300, ei kolmena erillisenä numeerisena vakiona. Voit tehdä tulostiedosta havainnointikykyisemmän eri tavoilla:

Tulostusmuoto on kaksoispisteen jälkeen merkitty kokonaisluku, joka määrittää kuinka monta kohtaa näytössä näytettävän arvon tulee olla. Jos numerossa on vähemmän numeroita kuin sille on näytöllä varattu, niin vapaita paikkoja täydennetään välilyönneillä numeron vasemmalla puolella. Jos tulostemuodossa kaksoispisteen jälkeen määritetty luku on pienempi kuin on tarpeen, se kasvaa automaattisesti vaadittuun vähimmäismäärään.

Kun haluat tulostaa reaaliluvun kiinteän pisteen muodossa, jokaiselle lausekkeelle määritetään tulosluettelossa kaksi parametria:

  1. numerolle jaettujen paikkojen kokonaismäärä;
  2. paikkojen lukumäärä luvun murto-osassa.

Kun uusi kirjoituskäsky suoritetaan, tulos jatkuu samalla rivillä. Voit siirtyä uudelle riville kirjoitusoperaattorilla. Kirjoitetun ja kirjoitetun lauseen välillä ei ole muita eroja.

4.2.2. Ensimmäinen ohjelma Pascal-kielellä

Yllä käsiteltyjen operaattoreiden avulla luomme ohjelman, joka laskee ympyrän kehän ja alueen, jonka säde on 5,4 cm.

Tämän tehtävän lähtötietona on säde: r - 5,4 cm. Ohjelman tuloksena tulee olla arvot C - ympyrän ympärysmitta ja S - ympyrän pinta-ala. C, S ja r ovat reaalityypin suureita.

Lähtötiedot ja tulokset liittyvät toisiinsa matematiikan kurssista tunnetuilla suhteilla: C = 2πr, S = πr +. Ohjelma, joka toteuttaa laskelmia näillä kaavoilla, näyttää tältä:

Tämä ohjelma on oikea ja ratkaisee ongelman. Kun suoritat sen, saat seuraavan tuloksen:

Kuitenkin laatimallamme ohjelmalla on merkittävä haittapuoli: se löytää ympyrän kehän ja alueen yhdelle sädearvolle (5,4 cm).

Jotta voit laskea ympyrän kehän ja alueen eri sädearvolle, sinun on tehtävä muutoksia suoraan ohjelman tekstiin, eli vaihdettava määritysoperaattori. Muutosten tekeminen olemassa olevaan ohjelmaan ei ole aina vähintäänkin kätevää (esimerkiksi kun ohjelma on suuri ja osoitusoperaattoreita on paljon). Alla tutustut operaattoriin, jonka avulla voit syöttää alkutietoja ohjelman ollessa käynnissä muuttamatta ohjelman tekstiä.

4.2.3. Näppäimistön syöttö

Jos haluat syöttää muuttujan arvot RAM-muistiin, käytä lukusyöttöoperaattoria:

Kun lukulause suoritetaan, tietokone siirtyy tietojen odotustilaan: käyttäjän on syötettävä tiedot näppäimistöltä ja painettava Enter-näppäintä. Numeerisille muuttujille voidaan syöttää useita arvoja välilyönneillä tai pilkuilla erotettuina. Merkkimuuttujia syötettäessä välilyöntejä ja pilkkuja käsitellään merkeinä, joten niitä ei voi syöttää.

Ensimmäinen käyttäjän syöttämä muuttujan arvo sijoitetaan siihen muistipaikkaan, jonka nimi sijaitsee ensin syöttöluettelossa jne. Siksi syötearvojen tyyppien (syöttövirta) tulee vastata muuttujassa määritettyjä muuttujatyyppejä kuvausosio.

Esimerkki. Antaa

var i, j: kokonaisluku; x: todellinen; a:char;

Määritetään muuttujat i, j, x ja arvot 1, 0, 2,5 ja "A". Käytämme tätä varten read (i, j, x, a) -operaattoria ja järjestämme syöttövirran jollakin seuraavista tavoista:

Tässä emme vain käyttäneet erilaisia ​​erottimia (välilyönti, pilkku), vaan myös esitimme syöttövirran yhtenä, kaksina ja neljänä rivinä.

Voit myös käyttää readln-operaattoria syöttääksesi tietoja näppäimistöltä, joka eroaa read-operaattorista vain siinä, että sen suorittamisen jälkeen kohdistin siirtyy uudelle riville.

Parannetaan ohjelmaa n_1 järjestämällä siihen tietojen syöttäminen read-operaattorilla. Ja jotta käyttäjä tietää, mihin ohjelma on tarkoitettu ja ymmärtää, mitä toimintoa tietokone odottaa häneltä, näytämme vastaavan tekstiviestit käyttämällä writel-operaattoria:

Parannetun ohjelman tulos:

Nyt ohjelmamme voi laskea ympyrän kehän ja alueen millä tahansa r:n arvolla. Toisin sanoen se ei ratkaise yhtä ongelmaa, vaan kokonaisen luokan ongelmia. Lisäksi ohjelma järjestää selkeästi ja kätevästi lähtötietojen syöttämisen ja saatujen tulosten tulostuksen. Tämä varmistaa ystävällisen käyttöliittymän.

Tärkein

Muuttuvien arvojen syöttämiseen RAM-muistiin käytetään luku- ja readln-syöteoperaattoreita.

Datan tulostamiseksi RAM-muistista monitorin näytölle käytetään kirjoitus- ja kirjoituslähtöoperaattoreita.

Lähtötietojen syöttäminen ja tulosten tuottaminen on järjestettävä selkeästi ja kätevästi. tämä varmistaa ystävällisen käyttöliittymän.

Kysymyksiä ja tehtäviä

  1. Kirjoita lause, jonka avulla voit syöttää summamuuttujan arvon ohjelman ollessa käynnissä.
  2. Kokonaislukumuuttujille i, y, k on annettava arvot 10, 20 ja 30. Kirjoita muistiin syöttövirtaa vastaava syöttölause:
      a) 20 10 30
      b) 30 20 10
      c) 10 30 20
  3. Kuvaile muuttujat, joita tarvitaan kolmion pinta-alan laskemiseen sen kolmen sivun perusteella, ja kirjoita lause, joka antaa tarvittavat syöttötiedot.
  4. Mikä on lauseen suorittamisen tulos?
      a) kirjoittaa (a)
      b) kirjoita (1 a ")
      c) kirjoittaa (1 a=1, a)
  5. Minkä tyyppinen muuttuja f on, jos kirjoitus (f) -käskyn suorittamisen jälkeen näytölle ilmestyi seuraava numero?
      a) 125
      b) 1,25E+2
  6. Kuinka voin näyttää reaaliluvun kiinteän pisteen muodossa?
  7. Kirjoita muistiin operaattorit kahden luvun syöttämiseen ja niiden tulostamiseen käänteisessä järjestyksessä.
  8. Tässä pätkä ohjelmasta:

    lue(a); lue(b); c:=a+b; kirjoittaa(a, b); kirjoittaa (c)

    Yksinkertaista sitä vähentämällä syöttö- ja lähtölauseiden määrää.

  9. Tässä pätkä ohjelmasta:

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

    Mitä numeroita näytetään tietokoneen näytöllä?

  10. Kirjoita ohjelma, joka laskee suorakulmion pinta-alan ja kehän sen kahden sivun perusteella.

Tietojen ulostulo
Tietojen lähettäminen RAM-muistista näytön näytölle:
kirjoittaa
(<выражение 1> ,< выражение 2> , ...,< выражение N>)
tulosluettelo
Lausekkeet - symbolinen, numeerinen, looginen,
mukaan lukien muuttujat ja vakiot
Esimerkki:
kirjoittaa("s=", s).
Jos s=15, näytöllä näkyy: s=15.
Tiedot näkyvät näytöllä lainausmerkeissä
ilman muutoksia

Tulostusorganisaatiovaihtoehdot
Vaihtoehto
vetäytymisen järjestäminen
Ei erottimia
Päätelmäoperaattori
write(1, 20, 300).
Tulos
120300
Lisää erottimet kirjoita (1, ',' , 20,
– pilkut
’, ’, 300)
1, 20, 300
Lisää erottimet, kirjoita (1, ‘’, 2, ‘’, 3)
– tilat
1 20 300

Tulostusmuoto
Tulostusmuodon avulla voit asettaa paikkojen määrän
näytössä näytetyn arvon varaamana.
kirjoittaa (s:x:y)
x - numerolle osoitettujen paikkojen kokonaismäärä;
y - paikkojen lukumäärä luvun murto-osassa.
Päätelmäoperaattori
Toteutustulos
operaattori
write('s=', s:2:0);
s = 15
write('s=', s:3:1);
s = 15,0
write('s=', s:5:1);
s=
kirjoitettu
15.0
- lähtö uudelta riviltä!

Ensimmäinen ohjelma
ohjelma n_1;
const pi = 3,14;
var r, c, s: todellinen;
alkaa
r: = 5,4;
c:=2*pi*r;
Ohjelman tulos:
s:=pi*r*r;
writeln("c="", c:6:4);
writeln("s=", s:6:4)
Turbo Pascal
Versio 7.0
loppu.
c = 33,9120
s = 91,5624

Näppäimistön syöttö
Muuttujien arvojen syöttäminen RAM-muistiin:
lukea
(<имя переменной1>, …, <имя переменной N>)
syöttöluettelo
Luetun lausunnon suorittaminen:
1) tietokone siirtyy tietojen valmiustilaan:
2) käyttäjä syöttää tiedot näppäimistöltä:
useita muuttujaarvoja
numerotyyppejä voidaan syöttää
erotettu välilyönnillä tai pilkulla;
kun syötät merkkimuuttujia
Välilyöntejä ja pilkkuja ei voi käyttää.
3) käyttäjä painaa Enter-näppäintä.

Näppäimistön syöttö
!
Syöttöarvotyyppien on vastattava toisiaan
kuvausosiossa määritellyt muuttujatyypit
muuttujia.
var i, j: kokonaisluku;x: todellinen;a: merkki;
lue(i, j, x, a);
syöttövirran järjestämisvaihtoehdot:
1 0 2,5 A 1,0 1
2.5, A 0
2.5
A
Kun readln-käsky on suoritettu, kohdistin siirtyy kohtaan
uusi rivi.

Paranneltu ohjelma
ohjelma n_1;
const pi = 3,14;
var r, c, s: todellinen;
alkaa
writeln("Laske ympyrän ympyrän ympärysmitta ja pinta-ala");
write("Syötä r>>");
readln(r);
c:=2*pi*r;
Ohjelman tulos:
s:=pi*r*r;
writeln("c="", c:6:4);
Pascal-versio 7.0
writeln("s=", s:6:4) Turbo
Ympyrän kehän ja alueen laskeminen
Kirjoita r >> 8.5
loppu.
c = 53,3800
s = 226,8650

Tärkein
Muuttuvien arvojen syöttäminen RAM-muistiin
Käytetään read- ja readln-syöttöoperaattoreita.
RAM-muistin tietojen näyttäminen näytöllä
Monitori käyttää kirjoitus- ja kirjoituslähtöoperaattoreita.
Lähtötietojen syöttäminen ja tulosten tulostaminen on välttämätöntä
olla järjestetty selkeästi ja kätevästi; tämä varmistaa
käyttöliittymän käyttäjäystävällisyys.

Kysymyksiä ja tehtäviä
1) Annettu ohjelman fragmentti:
a:=10; b:=a+1: a:=b–a; kirjoittaa (a, b)
Mitä numeroita näytetään tietokoneen näytöllä?
2) Kuvaile laskennassa tarvittavat muuttujat
kolmion pinta-ala sen kolmea sivua pitkin, ja
kirjoita lausunto syötteestä
tarvittavat alkutiedot.
3) Mikä on lauseen suorittamisen tulos?
a) kirjoittaa (a)
b) kirjoittaa ("a")
c) kirjoittaa ("a=", a)
4) Kokonaislukumuuttujat i, j, k on osoitettava
vastaavasti arvot ovat 10, 20 ja 30.
Kirjoita sisään syötettä vastaava syöttölause
stream:
a) 20 10 30
b) 30 20 10
c) 10,30,20

Operaattori on kielielementti, joka määrittää suoritettavan toiminnon täydellisen kuvauksen. Jokainen operaattori on ohjelmointikielen täydellinen lause ja määrittelee jonkin täysin valmiin tietojenkäsittelyvaiheen. Operaattorit voivat sisältää funktiosanoja, dataa, lausekkeita ja muita operaattoreita. SISÄÄN Englannin kieli tämä käsite tarkoittaa sana "lausunto", joka tarkoittaa myös "ehdotusta".

Jokaisella operaattorilla missä tahansa ohjelmointikielessä on oma syntaksi Ja semantiikka. Alla syntaksi operaattorilla tarkoitetaan sääntöjärjestelmää (kielioppi), joka määrittää sen tallennuksen käyttämällä aakkosten elementtejä tästä kielestä, joka sisältää erilaisten symbolien ohella esimerkiksi funktiosanoja. Alla semantiikka operaattori ymmärtää sen merkityksen, ts. ne toiminnot, jotka vastaavat tietyn operaattorin tietueita. Esimerkiksi äänittää i:= i + 1 on esimerkki syntaktisesti oikeasta merkinnästä toimeksiantooperaattori Pascal-kielellä, jonka semantiikka tässä tapauksessa on seuraava: poimi muuttujaa i vastaavan muistisolun arvo, lisää se yhdellä ja kirjoita tulos samaan muistisoluun.

Useimmissa proseduuriohjelmointikielissä operaattorijoukko on lähes sama ja koostuu osoitusoperaattorista, valintaoperaattoreista, silmukkaoperaattoreista, proseduurikutsuoperaattoreista ja hyppyoperaattoreista. Joskus erotetaan myös tyhjät (ei toimintaa) ja yhdistelmäoperaattorit. Monet operaattorit ovat tapa esittää tiettyjä algoritmisia rakenteita (katso " Algoritminen suunnittelu” ) ohjelmointikielellä. Tarkastellaan operaattoriryhmiä yksityiskohtaisemmin Pascal-kielen syntaksin avulla.

Tehtäväoperaattori

Tehtävä on tietokoneen toimenpide, jonka seurauksena muuttuja saa lasketun lausekkeen arvon (se sijoitetaan muuttujaa vastaavaan muistisoluun). Sellaisen toiminnon kuvaamiseksi ohjelmointikielissä on olemassa toimeksiantooperaattori.

Yleensä tehtäväoperaattori kirjoitetaan näin:

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

Esimerkiksi Pascalissa symboliyhdistelmää käytetään määritysmerkkinä: =. Monilla muilla kielillä se on tasa-arvomerkki.

Osoitusoperaattorin suorittamisen tuloksena on muutos tietojen tilassa: kaikki muut muuttujat paitsi muuttuja, joka sijaitsee tehtäväoperaattorin vasemmalla puolella, eivät muuta niiden merkitystä, vaan määritettyä muuttuja saa arvon ilmaisuja, joka näkyy määritysoperaattorin oikealla puolella. Useimmissa tapauksissa vaaditaan, että tyyppi ilmaisuja vastasi tyyppiä muuttuja. Jos näin ei ole, niin operaattoria pidetään joko syntaktisesti virheellisenä tai lausekkeen tyyppi muunnetaan muuttujan tyypiksi (katso " Tietotyypit” ).

Operaattorien valinta

Näitä operaattoreita kutsutaan eri tavalla ehdolliset lausunnot. Ehdollisia lauseita käytetään ohjelmoimaan algoritmeja, jotka sisältävät algoritmisen haarautumisrakenteen.

Ohjelmointikielissä on useita ehdollisia lausekkeita. Täysi ehdollinen lause vastaa täyden haarautumisen algoritmista rakennetta:

Ohjelmointikielessä vastaava ehdollinen operaattori on muotoa:

jos B sitten S1 muu S2

Jos ilmaisu B, joka lasketaan ehdollisen lauseen suorituksen alussa, on arvoltaan "true", silloin lause suoritetaan S1, muuten - operaattori S2. Operaattorit S1 Ja S2 voi olla yhdistelmä.

Epätäydellisen haarautumisen algoritmirakenne toteutetaan epätäydellisen ehdollisen operaattorin avulla, jonka muoto on:

jos B sitten S

Tässä B on looginen ilmaus, ja S- mielivaltainen operaattori. Operaattori S suoritetaan, jos lauseke B on tosi.

Jos ehdollinen operaattori toteuttaa vain kaksi valintahaaraa ("kyllä" ja "ei"), niin käytetään varianttioperaattori (tapaus-operaattori) voit ohjelmoida monihaaraisen rakenteen. Varianttioperaattori näyttää tältä:

tapaus E /

Esitetty tämä operaattori kuten tämä: ilmaisun merkitys E haettu operaattoritietueessa lueteltujen arvojen joukosta V1, V2, …, Vn, ja jos tällainen arvo löytyy, suoritetaan vastaava operaattori S1, S2, …, Sn.

Eri ohjelmointikielissä lueteltujen operaattoreiden syntaksi ja jopa semantiikka voivat vaihdella, mutta tällaisten rakenteiden ohjelmoijalle antamat ominaisuudet ovat suunnilleen samat.

Esimerkki 1. Artikkelissa " Algoritminen suunnittelu”2 annettiin esimerkki algoritmin kirjoittamisesta yleisen toisen asteen yhtälön ratkaisemiseksi haaroituskonstruktioiden avulla. Tässä on osa Pascalin ohjelmasta, joka toteuttaa saman algoritmin:

jos a = 0 sitten

jos b = 0 sitten

jos c = 0 sitten writeln("x - mikä tahansa")

muu writeln("ei juuria")

muu writeln(-c/b)

muu alkaa

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

jos D< 0 sitten writeln("ei juuria")

muu alkaa

x1:= -b + sqrt(D);

x2:= -b - sqrt(D);

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

Loop-lauseet

Silmukkaoperaattorit toteuttavat syklisiä algoritmirakenteita; niitä käytetään toimiin, jotka toistetaan monta kertaa. Monissa ohjelmointikielissä on kolmen tyyppisiä silmukkaoperaattoreita: "ennakolla", "jälkiehdon kanssa", "parametrilla".

Välttämätön ja riittävä algoritmirakenne silmukoiden ohjelmointiin on silmukka "ehdolla", joten sitä voidaan kutsua silmukan päätyypiksi. Silmukkaoperaattori, jolla on ennakkoehto, näyttää tältä:

kun taas B tehdä S

Operaattori S, jolle luodaan silmukka toistuvaa suoritusta varten silmukan runko. Silmukkaoperaattorin suoritus pelkistetään silmukan rungon toistuvaksi suoritukseksi, kunnes loogisen lausekkeen arvo B tosi (kunnes siitä tulee epätosi). Itse asiassa samanlaiset silmukkakäskyt toteuttavat ehdollisten lauseiden toistuvan suorituksen jos B sitten S, vaikka ehto on totta B.

Esimerkki 2. Harkitse sellaisen silmukkaoperaattorin käyttöä luonnollisen luvun numeroiden summan laskemiseen N:

sillä aikaa N>0 aloita

S: = S + N mod 10;

N:=N div 10

Silmukassa, jossa on jälkiehto, silmukan runko edeltää ehtoa B. Toisin kuin silmukassa, jossa on ennakkoehto, tässä B on ehto silmukan päättämiselle. Silmukan operaattorilla, jolla on jälkiehto Pascalissa, on muoto:

toista S siihen asti kun B

Tällä syklin organisoinnilla syklin runko S tulee suorittaa vähintään kerran.

Lähes kaikissa menettelykielissä on silmukkaoperaattori parametrin kanssa. Se voidaan esittää kaavamaisesti seuraavasti:

varten< muuttuja > E1 to E2 askel E3 tehdä S

Tässä on tarkoitus muuttuja(sykliparametri) muuttuu lausekkeen E1 arvosta E2:ksi E3:n vaiheissa. Jokaiselle tällaiselle silmukkaparametrin arvolle suoritetaan operaattori S. Pascal-kielessä askelen käsite puuttuu tämän operaattorin kuvauksesta, ja itse askel kokonaislukuparametrille voi olla joko 1 tai –1. Operaattoria "silmukka parametrien kanssa" käytetään ohjelmoimaan silmukoita, joissa on tietty määrä toistoja. Se ei sovellu iteratiivisten silmukoiden ohjelmointiin (joiden toistojen lukumäärää ei tiedetä etukäteen).

Menettelypuhelun operaattori

Artikkelissa " Aliohjelmat” kuvaa yksityiskohtaisesti tämän tyyppisiä aliohjelmia, kuten menettelyjä. Normaalit ohjelmointikielen rutiinit, jotka sisältyvät johonkin rutiinikirjastoista, sekä tässä lohkossa kuvatut käyttäjärutiinit kutsutaan käyttämällä operaattoria menettelyn kutsu:

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

Tässä E1,E2,…,En ovat muuttujia tai lausekkeita, jotka edustavat todelliset parametrit pääsy menettelyyn. Yleisimmin käytetty vakiomenettelyjä ovat tietojen syöttö- ja tulostusproseduureja (luku ja kirjoitus Pascalilla).

Proseduurin kutsuminen vastaa semanttisesti proseduurin rungoksi kuvatun lohkon suorittamista sen jälkeen, kun siihen on siirretty joidenkin muuttujien (arvoparametrien) alkuarvot tai korvattu joidenkin muuttujien (muuttujaparametrien) nimet proseduurin nimillä. todelliset muuttujat, jotka on määritetty proseduuria kutsuttaessa.

Esimerkki 3. Kuvataan menettely abc:

menettely abc(a,b:kokonaisluku; var c: kokonaisluku);

Tämän proseduurin kutsuminen abc(2,3,x) vastaa toimintolohkoa:

Hyppyoperaattorit

Tämän operaattoriryhmän tunnetuin operaattori on ehdoton hyppyoperaattori mene. Jos lisäät kaikkiin tai joihinkin olemassa oleviin ohjelmalausekkeisiin tunnisteet, niin ohjelmassa on mahdollista käyttää lomakkeen siirtymäoperaattoria:

mene<метка>

Tunniste tässä tapauksessa vastaa sen käskyn alkua, josta ohjelman suorittamista tulee jatkaa. Tämän operaattorin avulla voit kirjoittaa algoritmeja ohjelmointikielellä, jolla on mielivaltaisen monimutkainen rakenne. Mutta usein ehdottoman siirtymisen käyttö on perusteetonta, koska johtaa hämmentävään, huonoon luettava ohjelma. Lähes ainoa järkevä käyttötapa operaattorille mene on ulospääsy useista sisäkkäisistä silmukoista kerralla, esimerkiksi käsiteltäessä kaksiulotteisia taulukoita.

Esimerkki 4. Oletetaan, että meidän on määritettävä, onko kaksiulotteisessa taulukossa a elementti yhtä suuri kuin 0:

varten minä:= 1 to N tehdä

j:lle = 1 to N tehdä

jos a = 0 sitten aloita

1: jos b sitten kirjoittaa ("on") muu write("ei");

Strukturoidun ohjelmoinnin sääntöjen mukaan kehitetty ohjelma ei saa sisältää ehdottomia hyppyoperaattoreita. Yllä oleva ohjelma ilman operaattoria mene voidaan kirjoittaa uudelleen seuraavasti:

kun taas ei b ja(ts< N) aloita

kun taas ei b ja(j< N) aloita

jos a = 0 sitten b:= tosi;

jos b sitten kirjoittaa ("on") muu write("ei");

Tässä tapauksessa jäsennelty ohjelma on vähemmän visuaalinen kuin ohjelma mene.

Muita hyppyoperaattoreita voidaan määrittää ohjelmointikielissä. Esimerkiksi Pascalissa: tauko(silmukan varhainen keskeytys, siirtyminen käskyyn, joka on suoritettava silmukan päätyttyä), jatkaa(nykyisen silmukan iteraation varhainen valmistuminen ja siirtyminen seuraavaan), poistu(alirutiinin varhainen keskeytys, poistuminen siitä), pysäyttää(ohjelman varhainen keskeytys, siirtyminen sen loppuun). Samanlaisia ​​operaattoreita on kielillä C, C++ ja Java.

Yhdistelmäoperaattori

Yhdistelmälause on joukko lauseita, jotka on suljettu operaattorin sulkuihin (Pascalissa - alkaaloppu; C, C++ - (…)).

Yhdistelmäoperaattori otettiin ohjelmointikieliin helpottamaan kielirakenteiden kuvausta. Esimerkiksi Pascalissa jokaisen lohkon (ohjelma, toimintosarja, funktio) suoritettava osa on yksi yhdistelmäkäsky. Täsmälleen samalla tavalla minkä tahansa silmukkaoperaattorin runko koostuu vain yhdestä operaattorista, ehkä yhdistelmäoperaattorista. Vaihtoehto yhdistelmäoperaattorille voi olla funktiosana, joka ilmaisee tietyn operaattorin loppua, esim. LOPPU JOS peruskielellä.

Aihetta "Ohjelmointikielen operaattorit" tutkitaan yleensä vain tietyn ohjelmointikielen yhteydessä. Sitä pohdittaessa on tärkeää osoittaa algoritmisten perusrakenteiden ja operaattoreiden välinen yhteys: algoritmiset rakenteet kirjoitetaan ohjelmointikielellä vastaavia operaattoreita käyttäen. Poikkeus on tietyssä mielessä peräkkäinen suunnittelu; se määrittää toimien lineaarisen järjestyksen. Tarkkaan lineaarisen ohjelman toiminnot toteutetaan vain osoituskäskyillä ja proseduurikutsulauseilla.

Ohjelmoinnin oppimisen alkuvaiheessa koululaiset kohtaavat monia ongelmia. Ensimmäinen psykologinen este, joka heidän on voitettava, on tehtäväoperaattorin oppiminen. Yksi tärkeimmistä tehtävistä, joka sinun on ratkaistava yhdessä oppilaidesi kanssa, on kahden muuttujan arvojen vaihtaminen. Voit pyytää koululaisia ​​ratkaisemaan henkisesti ongelman kahden laatikon, esimerkiksi pöydän, sisällön vaihtamisesta. Tyypillisesti tässä keskustelun vaiheessa opiskelijat ymmärtävät, että ongelman ratkaisemiseksi tarvitaan kolmas laatikko (muuttuja). Tätä algoritmia kirjoitettaessa he kuitenkin usein hämmentävät, missä osoitusoperaattorin osassa (vasemmalla tai oikealla) tietyn muuttujan tulisi esiintyä.

Virheet aritmeettisten ja loogisten lausekkeiden kirjoittamisessa johtuvat siitä, ettei lausekkeessa käytettyjen operaatioiden etusija ole tiedossa. Samalla operaatioilla tarkoitetaan paitsi aritmeettisia, myös vertailuoperaatioita ja loogisia konnektiivisuuksia ja C-kielessä koululaisille hyvin epätavallista osoitusoperaatiota. Tilannetta mutkistaa se, että eri ohjelmointikielillä samoilla toiminnoilla on erilaiset suhteelliset prioriteetit. Sinun tulee myös kiinnittää huomiota muuttujan tyyppien ja osoitusoperaattorin vasemmalla ja oikealla puolella olevan lausekkeen väliseen vastaavuuteen (katso " Tietotyypit”).

Valintaoperaattoreita hallittaessa on hyödyllistä, että opiskelijat ohjelmoivat monihaaraisen rakenteen sisältävän algoritmin sekä ehdollisten lausekkeiden yhdistelmällä että valintaoperaattorilla.

Esimerkki. Kokonaislukumuuttujaan N Syötä henkilön ikä vuosina. Kirjoita lause " Olen K-vuotias", joka korvaa sanan vuotta päällä vuosi tai vuoden numerosta riippuen K. Tässä on kaksi ratkaisua tähän ongelmaan:

jos(k mod 100) sisään

sitten writeln("Olen ",k," vuotta vanha")

tapaus k mod 10 /

0,5..9:writeln("Olen ",k," vuotta vanha");

1:writeln("Olen ",k,"-vuotias");

2..4:writeln("Olen ",k," vuotta vanha");

var k, n: kokonaisluku;

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

jos(k mod 100) sisään

sitten writeln("Olen ",k," vuotta vanha") muu

jos n = 1 sitten writeln("Olen ",k,"-vuotias")

jos(n >=) ja(n<= 4)

sitten writeln("Olen ",k," vuotta vanha")

muu writeln("Olen ",k," vuotta vanha")

Silmukkaoperaattoreita harkittaessa on hyödyllistä ehdottaa saman tehtävän ohjelmointia kolmella eri tavalla käyttäen kolmea silmukkaoperaattoria, ja päinvastoin, opetella ongelman ehtojen perusteella määrittämään, mikä silmukkaoperaattori on sopivin tietyssä tapauksessa.

Proseduurikutsuoperaattori on ensisilmäyksellä yksinkertainen. Tässä on tärkeää selittää säännöt parametrien välittämiseksi proseduureille ja funktioille, muuttujaparametrien ja arvoparametrien ero (jälkimmäisessä tapauksessa voimme välittää muuttujan nimen lisäksi myös vastaavan vakion tai jopa lausekkeen tyyppi). Muodollisten ja todellisten parametrien on vastattava tyyppiä, mutta ei nimeä, mikä ei ole opiskelijoille itsestään selvää.

Ehdollisen ja erityisesti yhdistelmälauseen opiskelu on hyvä tilaisuus keskustella opiskelijoiden kanssa ohjelman kirjoitustyylistä. Pascalissa on useita yleisiä tapoja kirjoittaa jäsenneltyjä ohjelmia, mutta ne kaikki sisältävät sisennyksen sisäkkäisten rakenteiden mukauttamiseksi. Tärkeää ohjelmien ja kommenttien tallentamiseen.

Ohjelmakoodi näkyy kuvassa. 4.3-9.

Vaihtoehto Strict On Option Explicit On Imports System.Math Public Class Form1 "Funktion pisteen koordinaattien syöttämiseksi TextBox Function vvod(ByVal T As TextBox) Single Return CSng(Val(T.Text)) Loppufunktio "Procedure for tuloksen tulostaminen TextBox Sub vivod (ByVal Z As Single, ByVal T As TextBox) T.Text = CStr(Z) End Sub "Funktio janan pituuden laskemiseksi kahden pisteen koordinaateista 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)) Loppufunktio "Prosedure for lasketaan kolmion ympärysmitta ja pinta-ala 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, _ ByVal y3 As Single, _ ByVal y3 As Single , ByRef S As Single) Dim A, B, C, Pp As Single A = Segment Length(x1 , y1, x2, y2)"Kutsutaan funktiota negatiivisen pituuden laskemiseksi. B = Segmentin pituus (x2, y2, x3, y3) C = segmentin pituus (x3, y3, x1, y1) P = (A + B + C) : Pp = P / 2 S = CSng(Sqrt(Pp * (Pp - A) * (Pp - B) * (Pp - C))) End Sub "Painikkeen napsautustapahtuman käsittelymenettely Painike1 Yksityinen Sub Button1_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Kahvat Button1.Click Dim x1 As Single, x2 As Single, x3 As Single Dim y1 As Single, y2 As Single, y3 As Single Dim Per As Single, Plo As Single x1 = vvod(Tekstilaatikko1) : x2 = vvod(XTextBox2 v)vod3 ) y1 = vvod(Tekstilaatikko6) : y2 = vvod(Tekstilaatikko7) : y3 = vvod(Tekstilaatikko8) PS(x1, y1, x2, y2, x3, y3, Per, Plo) vivod(Plo, TextBox4) : vivod(Plo) TextBox5) Lopeta aliyksityinen alipainike2_Napsautus (ByVal lähettäjä Järjestelmä.Objekti, _ ByVal e As System.EventArgs) Kahvat Painike2.Napsauta Lopeta Ali End Class

Sovelluksen suorittaminen ja tulosten saaminen

Tulos näkyy kuvassa. 4.3-10.

Todistus tuloksen oikeellisuudesta

A=
= 2,82843 B =
= 2

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


Turvakysymykset aiheesta

”VB-ohjelmien, moduulien ja menettelytapojen rakenne.

Ohjelmointityökalut lineaarisen rakennealgoritmeille"

1. Mikä on matemaattinen malli?

2. Mitkä ovat tietokoneen ongelmien ratkaisemisen päävaiheet?

3. Mitkä tietokoneen ongelmanratkaisun vaiheet suoritetaan ilman tietokoneen osallistumista?

4. Mitä kutsutaan esineen tai ilmiön matemaattiseksi malliksi?

5. Mitkä ovat ohjelman kehitysprosessin peräkkäiset vaiheet?

6. Mikä on algoritmi?

7. Mitä perusominaisuuksia algoritmilla tulisi olla?

8. Mitä tapoja on kuvata algoritmeja?

9. Mitä graafisia symboleja yleensä esitetään algoritmikaavioissa?

10. Miten tulkki toimii?

11. Miten kääntäjä toimii?

12. Mitä algoritmia kutsutaan lineaariseksi?

13. Mitä algoritmia kutsutaan sykliseksi?

14. Mitä algoritmia kutsutaan haarautumiseksi?

15. Mitä eroa on funktioiden ja menettelyjen tulosten välittämisellä?

16. Todistaako uskottavan tuloksen saaminen, että ohjelma on oikea?

17. Mitkä virheet voivat jäädä huomaamatta, jos et tarkista (katsele, vieritä) ohjelmaa?

18. Miten ohjelman testaus eroaa sen virheenkorjauksesta?

19. Onko mahdollista todistaa ohjelman oikeellisuus testaamalla?

20. Missä ohjelman vaiheessa vertailutestitulokset lasketaan?

21. Luettele testausprosessin päävaiheet.

22. Mitä eroa on syntaksivirheillä ja semanttisilla virheillä?

23. Mitä tarkoittaa, että koneessa ei ole syntaksivirheilmoituksia?

24. Millaisia ​​virheitä kääntäjä ei pysty havaitsemaan?

25. Mikä on ohjelma?

26. Missä vaiheessa ohjelmassa olevien virheiden etsiminen ja poistaminen tapahtuu?

27. Mikä on ohjelmointijärjestelmä?

28. Mikä on menettely?

29. Mitä hyötyä on ohjelmasta, jossa on menettelyt?

30. Mitä menettelyohjelmointityökaluja on saatavilla VB:ssä?

31. Miten tietoja vaihdetaan yksittäisten ohjelmamenettelyjen välillä?

32. Mitä ovat todelliset ja muodolliset parametrit?

33. Kuinka välitetään parametrina: vakio, muuttuja, lauseke?

34. Miten globaaleja muuttujia käytetään?

35. Miten paikallisia muuttujia käytetään?

36. Mitä ovat muodolliset parametrit?

37. Mitkä ovat todelliset parametrit?

38. Mitä tapahtuu, kun menettely kutsutaan?

39. Miten parametrit voidaan siirtää prosessiin?

40. Mitkä parametrit välitetään arvolla?

41. Mitä parametreja osoitteeseen välitetään?

42. Mitä ovat prosessiohjelmointityökalut?

43. Mikä on funktion suorittamisen tulos?

44. Miten yksittäiset muuttujat tulisi ilmoittaa niin, että ne ovat paikallisia funktion sisällä?

45. Mitä lauseketta käytetään funktiosta poistumiseen aikaisin?

46. Mitä ohjataan kutsuttaessa toimintoja ja proseduureja?

47. Miten muodolliset parametrit tulee ilmoittaa, jotta muuttujaparametri välitetään arvoittain?

48. Miten muodolliset parametrit tulee ilmoittaa, jotta muuttujaparametri välitetään osoitteeseen?

49. Miten funktioproseduuria kutsutaan kutsuvasta ohjelmasta?

50. Mikä voisi olla toimenpiteen tulos?

51. Mitä lauseketta käytetään prosessista poistumiseen aikaisin?

52. Mistä toimintojen ja menettelyjen kuvaukset löytyvät?

53. Missä Public-operaattorilla ilmoitettu muuttuja on saatavilla?

54. Missä yksityinen operaattori voi sijaita?

55. Mikä on kommentti ja sen kirjoittamisen säännöt?

56. Mitkä ovat muuttujien arvot ohjelman alussa?

57. Miksi menettelyt ja toiminnot kuvataan (määritetään)?

58. Miten menettelyjä kutsutaan?

59. Miten funktioita kutsutaan?


Liittyviä tietoja.





Yläosa