Lineaaralgoritmide programmeerimise tunni arendamine. Lineaarsete algoritmide programmeerimise õppetüki väljatöötamine Täisarvuline andmetüüp

| § 3.3. Lineaarse algoritmi programmeerimine

26. õppetund
§ 3.3. Lineaarse algoritmi programmeerimine

Märksõnad:

Reaalne andmetüüp
täisarvu andmetüüp
märgi andmetüüp
stringi andmetüüp
tõeväärtuslik andmetüüp

Lihtsamad on programmid, mis rakendavad lineaarseid algoritme. Kõik neis sisalduvad operaatorid täidetakse järjestikku, üksteise järel.

Lineaarsete algoritmide programmeerimisel käsitleme üksikasjalikumalt täisarvu, loogilise, märgi- ja stringi andmetüüpe.

3.3.1. Numbrilised andmetüübid

Põhiliste numbriliste andmetüüpidega olete juba tuttav täisarv Ja päris. Nendele kehtivad standardfunktsioonid, millest mõned on toodud tabelis. 3.3.

Tabel 3.3

Standardsed Pascali funktsioonid

Uurime, kuidas funktsioonid töötavad ümmargune, int Ja fraс, rakendades neid mõnele reaalsele X. Vastav programm näeb välja selline:

Käivitage programm mitu korda iga x ∈ jaoks (10,2; 10,8; -10,2; -10,8). Mida saate meile öelda nende funktsioonide tulemuse tüübi kohta?

3.3.2. Täisarvuline andmetüüp

Täisarvudega tehakse Pascali keeles järgmised toimingud: liitmine (+), lahutamine (-), korrutamine (*), täisarvu jagatise (div) saamine, täisarvu jäägi (mod) saamine ja jagamine (/). Esimese viie tehte tulemused on täisarvud. Jagamistehte tulemuseks võib olla reaalarv.

Vaatleme näidet operatsioonide div ja mod kasutamisest, kirjutades Pascalis programmi, et leida klaviatuurilt sisestatud loomuliku kolmekohalise arvu numbrite summa.

Kasutame seda, et positiivset kolmekohalist arvu saab esitada järgmise summana: x - a*100 + 6*10 + c, kus a, b, c on arvu numbrid.

Mis on arvu 123 numbrite summa? Ja numbrid -123? Kas teie tulemused vastavad programmi tulemustele? Kuidas saab programmi viga seletada ja parandada?

3.3.3. Märkide ja stringide andmetüübid

Märgi väärtuse (char type) väärtus Pascali keeles on mis tahes märgid, mida saab ekraanil kuvada, vajutades ühte klahvidest või klahvikombinatsioonist klaviatuuril, samuti mõned muud märgid, sealhulgas nähtamatud tähed. . Selliste sümbolite komplekt koosneb 256 elemendist, millest igaühele on vastavalt kasutatavale kooditabelile määratud kood - arv vahemikus 0 kuni 255.

Esimesele 32 koodile vastavad sümbolid on kontrollsümbolid ja ülejäänud on kujutatud. Kuvatavad märgid sisaldavad ka tühikut, koodi 32.

Kirjavahemärgid, aritmeetiliste tehtemärgid, numbrid, ladina suured ja väikesed tähed vastavad koodidele vahemikus 33 kuni 127. Riigitähestiku tähed vastavad koodidele, mille numbrid on alates 128.

Programmi tekstis saab märgitüübi konstandi määrata, lisades mis tahes esitatava märgi apostroofidele: “5”, “B”, “*”.

Kui märgimuutuja väärtust loetakse klaviatuurilt, tuleb see sisestada ilma apostroofideta.

Sümboli koodi leidmiseks kasutage tellimusfunktsiooni, kus sümbol on määratud parameetrina.

Sümboli koodi järgi äratundmiseks kasutage funktsiooni chr, kus sümboli kood on määratud parameetrina.

Stringi väärtuse väärtus (stringi tüüp) on suvaline märkide jada, mis on ümbritsetud apostroofidega. Pascalis (nagu algoritmilises keeles) saab stringe ühendada.

Näide. Kirjutame Pascalis programmi, milles klaviatuurilt sisestatud tähe puhul kuvatakse selle kood ekraanile. Seejärel kuvatakse ekraanile rida, mis on kasutatud kooditabeli kolme tähe jada: algsele eelnev täht; originaalkiri; tähed järgnevad originaalile.


3.3.4, Boole'i ​​andmetüüp

Nagu teate, on loogilise tüübi väärtustel ainult kaks väärtust; Pascalis see on vale Ja tõsi. Need konstandid on määratletud nii, et väär< true.

Tõeväärtused saadakse arvuliste, tähemärkide, stringide ja loogiliste avaldiste võrdlustoimingute tegemisel. Seetõttu saab Pascalis võrdlustoimingu tulemuseks määrata loogilise muutuja.

Näide. Kirjutame programmi, mis määrab väite “Arv n on paaris” tõesuse suvalise täisarvu n korral.

Lase ans on tõeväärtus muutuja ja n on täisarv muutuja. Seejärel määramisoperaatori täitmise tulemusena

ans:=n mod 2 = 0

muutuv ans määratakse väärtus tõsi mis tahes paaris n ja vale muidu.

Loogilistele muutujatele saab määrata loogiliste avaldiste väärtused, mis on konstrueeritud teile teadaolevate loogiliste funktsioonide abil ja või mitte, mis Pascalis on vastavalt tähistatud ja, või, mitte.

Näide. Kirjutame programmi, mis määrab väite “Kolmnurk külgede pikkustega a, b, c on võrdhaarne” tõesuse suvaliste täisarvude a, b, c korral.


KÕIGE TÄHTSAM

Pascali keel kasutab reaal-, täisarvu, tähemärki, stringi, loogilisi ja muid andmetüüpe. Nende jaoks on määratletud vastavad toimingud ja funktsioonid.

Küsimused ja ülesanded

1. Lugege läbi õpiku elektroonilises lisas sisalduva lõigu esitlusmaterjalid. Kasutage neid materjale küsimustele vastuste ettevalmistamisel ja ülesannete täitmisel.

2. Antud x jaoks arvutage y valemiga y = x 3 + 2,5x 2 - x + 1.

Kus:

a) astendamine on keelatud;
b) ühes määramisoperaatoris ei saa kasutada rohkem kui ühte aritmeetilist tehtet (liitmine, korrutamine, lahutamine);
c) ühes programmis ei saa kasutada rohkem kui viit määramisoperaatorit.

Vihje : teisendage avaldis järgmisele kujule: y = ((x + 2,5)x - 1)x + 1.

3. Punktide A ja etteantud koordinaatidel. Arvutage lõigu AB pikkus.

Vihje . Kaugus d punktide A (x a, y a) ja B (x b, y b) vahel on väljendatud valemiga.

4. Kolmnurga a, b, c külgede pikkused on teada. Kirjutage programm selle kolmnurga pindala arvutamiseks.

5. Kolmnurga tippude A, B, C koordinaadid on teada. Kirjutage programm selle kolmnurga pindala arvutamiseks.

6. Kui maksusumma on arvutatud rublades ja kopikates, siis maksuteenistus ümardab selle lähima rublani (kuni 50 kopikat - puudujäägiga, üle 50 kopika (sh 50) - ülejäägiga). Kasutage oma arvutit täpse maksusumma sisestamiseks ja võlgnevuse kuvamiseks.

7. Uurige juhusliku funktsiooni toimimist, käivitades programmi mitu korda:

Kuidas saada intervallist (0, x) juhuslik arv?

Kuidas saada intervallist (0, x] juhuslik arv?

Kuidas saada intervallist (n, x + n) juhuslik arv?

8. Üks ettevõte andis välja kolme kategooria loteriipileteid: noortele, täiskasvanutele ja pensionäridele. Iga kategooria piletite numbrid ulatuvad:

noortele - 1 kuni 100;
täiskasvanutele - 101 kuni 200;
pensionäridele - 201 kuni 250.

Valige arvuti abil igas kategoorias juhuslikult loteriipilet.

9. Kirjutage Pascalis programm, mis suvalise kahekohalise naturaalarvu korral määrab:

a) selle numbrite summa ja korrutis;
b) arv, mis on moodustatud algse numbri numbrite ümberpaigutamisel.

10. Kirjutage Pascalis programm, mis rakendab algoritmi, et kassapidaja annab kliendile vahetusraha(d) võimalikult väikese pangatähtede arvuga 500 (k500), 100 (klOO), 50 (k50) ja 10 (klO) rubla. .

11. Tulevad k-päeva teine. Töötage välja programm, mis põhineb sisendil k Päeva teine ​​määrab, mitu tundi on täis h ja terveid minuteid m päeva algusest on möödas. Näiteks kui k= 13 257 = 3 3600 + 40 60 + 57, siis h= 3 ja m = 40.

Näidake fraasi:

See on...tunnid...minutid

.

Ellipside asemel peaks programm väljastama hum väärtusi, eraldades need sõnadest täpselt ühe tühikuga.

12. Kirjutage Pascalis programm, mis arvutab sõna “BYTE” tähekoodide summa.

13. Kirjutage Pascalis programm, mis genereerib ja kuvab tähemärkide jada, mille koodid on 66, 69, 71, 73, 78.

14. Töötage välja programm, mis küsib kolme stringi väärtust – seotud omadussõna, nimisõna ja tegusõna – ning seejärel prindib sisestatud sõnade abil kõik võimalikud fraasid.

15. Täisarvuliste muutujate väärtused on antud: a = 10, b = 20. Mis saab olema loogilise muutuja väärtus? rez pärast määramistoimingu sooritamist?

a)rez:=(a=10) või (b>10)
b)rez: = (a>5) ja (b>5) ja (a<20) and (b<30)
c)rez: = (mitte(a<15)) or (b>20)

16. Kirjutage programm, mis siseneb tõsi, kui väide on tõene ja vale muidu:
a) kolmekohalise arvu numbrite summa X on paarisarv;
b) külgedega kolmnurk a, b, c on mitmekülgne.

Arvutama

2. ülesanne (programm 1_2)

    See on k sekund päevast. Määrake, mitu tundi (h) ja tervet minutit (m) ja sekundit (s) on selleks hetkeks möödunud.

    Määrake trapetsi pindala alustega a, b, kõrgus h ja tüvikoonuse ruumala, kui aluste pindaladeks loeme a, b.

3. Määrake kolme materiaalse punkti raskuskeskme koordinaadid massiga m 1,m 2,m 3 ja koordinaadid (x 1,y 1), (x 2,y 2), (x 3,y 3).

4. Arvutage palli ruumala ja ringi pindala antud raadiuse R jaoks ning leidke nendevaheline seos.

5. Arvutage kolmnurga külgede a, b, c mediaanid.

6. Arvutage koonuse pindala ja ruumala raadiuste ja kõrguse h järgi.

7. Leia etteantud raadiuse abil palli maht ja pindala.

8. Arvutage päeva sekund, kui osutid on h tundides, m minutites ja s sekundites, samuti nurk (kraadides) tunniosuti asukoha vahel päeva alguses ja selle asendi vahel. hetk.

9. Sisestage kahekohaline täisarv x<15. Написать программу перевода его в восьмеричную систему счисления.

10. Sisestage kahe punkti koordinaadid (x 1, y 1), (x 2, y 2). Leidke nendevaheline kaugus.

2. labor

Hargnenud algoritmide programmeerimine. Juhtimisülekande operaatorid

Tingimusliku juhtimise ülekande operaatori struktuur:

kui (<выражение>) <оператор 1> muidu <оператор 2>;

(Kui) (muu) – märksõnad,

Kus<условие>on suvaline Boole'i ​​avaldis, millel võib olla kaks väärtust: true (TRUE) ja false (FALSE);

<оператор>- iga SI-operaator lõpeb semikooloniga.

Tingimusliku lause lühivorm:

kui (<выражение>) <оператор>;

Tingimusteta hüppeoperaator: minema <идентификатор-метка>;

Silt on identifikaator. Silt asetatakse C/C++ lause ette, millele hargnete, ja eraldatakse kooloniga (:).

Näide 1. Koostage programm põhipalga arvutamiseks järgmise reegli järgi: kui töötaja tööstaaž on alla kolme aasta, siis palk 100 $, töökogemusega kolm kuni 5 aastat - 150 $, üle 5 aasta tõuseb palk igal aastal 10 dollari võrra ja rohkem kui 20-aastase kogemusega on see 300 dollarit.

Selle ülesande lahenduse programmeerimiseks määratleme ülesande matemaatilise sõnastuse:

100, kui ST< 3;

ZP= 150, kui 3 ≤ST  5;

150+ (ST -5)*10, kui 5< ST≤ 20;

300, kui ST > 20;

#kaasa

#kaasa

void main()

( int ST; //ST- kogemus (bait (täisarv) märgita tüüp)

ujuk ZP; //ZP- palk (ujuv tüüp)

printf("\nSisestage kogemus");

scanf("%d",&ST);

kui (ST<3) ZP = 100;

muidu kui (ST<5) ZP = 150;

muidu, kui (ST>=20) ZP=300;

muidu ZP=150+(ST-5)*10;

printf("\nPalk = %10.2f$\n",ZP);

Valiku operaator lüliti võimaldab olenevalt muutuja või avaldise väärtusest (valikuklahvist) täita teatud operaatoreid, mis on märgitud vastavate konstantidega.

Operaatori struktuur:

lüliti (<выражение>)

juhtum<константа 1>: <группа операторов 1>;

juhtum<константа 2>: <группа операторов 2>;

juhtum<константа N>: <группа операторов N>

vaikimisi: <операторы>;

}

Kus<выражение>- mis tahes järgu tüüpi avaldis (muutuja);

<константа>- sama tüüpi konstant nagu<выражение>;

<оператор>- suvaline C/C++ operaator.

Näide 2. Trüki kujundi nimi sõltuvalt nurkade arvust (kolmnurk, nelinurk, viisnurk, kuusnurk, hulknurk).

Ülesande realiseerimise varianti valikuoperaatori abil esindab SA (joonis 2,b) ja järgmine programm:

#kaasa

#kaasa

void main()

{

int T; // T – nurkade arv

clrscr(); // Tühjenda ekraan

printf("Sisesta nurkade arv");

scanf("%d",&T);

lüliti (T)

juhtum 1: juhtum 2: printf("See ei ole kujund\n"); murda;

juhtum 3: printf("%d nurgaga - kolmnurk\n ", T); murda;

juhtum 4: printf ("%d nurgaga - nelinurk\n ", T); murda;

juhtum 5: printf("%d nurgaga - viisnurk\n ", T); murda;

juhtum 6: printf("%d nurgaga - kuusnurk\n ", T); murda;

vaikimisi : printf("%d nurgaga - hulknurk\n ", T);

1. harjutus (programm 2_1)

Arvutage funktsiooni väärtus sõltuvalt intervallist, millesse klaviatuurilt sisestatud argument langeb:

1. Sest , a t 2 ln t kell 1
,

kus a = -0,5, b = 2 z = 1 ajal t<1,

e a t cos b t t>2 korral,

2. X jaoks ,
x2 juures,

kus a = 2,3 f = x 0,3 juures< x  2,

cos(x-a) punktis x
,

3. X jaoks , (a+b)/(e x +cosx) juures 0  x2,3,

kus a=-2,7,b=-0,27 z = (a+b)/(x+1) 2,3 x5 juures,

e x +sinx kell 7
,

4. I jaoks , a i 4 + b i at i< 10,

kus a = 2,2, b = 0,3. y = tan(i + 0,5), kui i = 10,

e 2i +
minu jaoks >10,

5. X jaoks , x 2 - 7/x 2 x juures<1.3,

kus a = 1,5 y = ax 3 + 7
1,3  x3,

lg(x + 7
) juures x
,

6. Sest [-1.4],
kell t<0.1,

kus a = 2,1, b = 0,37. z = + b juures 0,1 t 2,

kell t
,

7. X jaoks , a e sin x +2,5 x juures<0.3,

kus a = 1,5. y = e cos x + a 0,3 x juures<4,

(sin x)/ (a + e x) x  4 juures,

8. X jaoks , y = a/x + b x 2 - c punktis x
,

kus a=1,8,b=-0,5, c=3,5 (a + bx)/
x>1,2,

9.Sest t ,t
kell t>a,

kus a = 2,5 z = t sin a t juures t = a,

e -at cos a t at t

10. X jaoks , e - bx sin b x punktis x<2.3,

kus a=1,b=3. y = cos bx 2,3 juures
,

e -ax cos b x x juures

11.Sest t , a t 2 – b
kell t

kus a = 1,3, b = 6,5 z = a - b punktis a

a t 2/3 -
t>b juures,

12. X jaoks , |e -2x sin bx| x > 1 korral

kus b = -2,9 y = cos bx, kui x = 1,

e -x cos bx juures x< 1,

13. X jaoks sin (cos a x), kui x >1,

kus a = -0,8 z = tan ax x = 1 juures,

a 2 x x juures< 1,

14. X jaoks , ln bx – 1/(bx+1) punktis x< 1.3,

kus b = 1,3. y = bx + 1 1,3  x  1,7 juures,

ln bx +1/(bx+1), kui x > 1,7,

15. X jaoks [-1,1], ax 2 +bx 2/3 x juures<0.1,

kus a = 2,5, b = -0,9. z = a x 2, kui x = 0,1,

b x 2/3 x>0,1 juures.

16. Sisesta punkti koordinaadid (x, y). Printige, millises kvadrandis või koordinaatteljel see punkt asub.

17. Sisestage raadiused R 1, R 2 ja kõrgus. Arvutage kärbitud koonuse maht:
, kus S on aluste pindala. Kui R 1 = R 2 - silindri ruumala ja pindala, kui R 1 = 0 või R 2 = 0 - maht (hπr 2) ja pindala πr(
) koonuse pind.

18. Sisestage klaviatuurilt number. Määrake, millisesse numbrisüsteemi see võib kuuluda.

19. Sisestage number. Tehke kindlaks, kas see jagub kahe, kolme või viiega.

20. Sisestage a, b, h. Kui h = 0, arvutage ristküliku pindala; a = b korral leidke ruudu pindala; vastasel juhul arvutage trapetsi pindala.

2. ülesanne (programm 2_2)

1. Määrake sisestatud arvu x kaheksaga jagamise jääk ja kirjutage kaheksandkoht sõnadega.

2. Klaviatuurilt sisestatud numbri põhjal tippige selle numbri nimi.

3. Sisestage klaviatuurilt number k (1...30). Määrake, millisele nädalapäevale see vastab, kui esimene number on esmaspäev.

4. Sisestage kuupäev ja kuu number. Sisestage kuupäev sõnadega.

5. Päeva k sekund möödub. Arvutage, mitu tundi ja täisminutit on selleks hetkeks möödunud, nõustudes samal ajal sõna tähendusega (tund, tunnid, tunnid, minut, minutid, minutid).

6. Sõltuvalt kujundi tüübi arvust (N) korraldage vajalike andmete sisestamine ja arvutage N = 1 - ringi pindala, N = 2 - palli maht (4/3πR 3), N = 3 - silindri ruumala, N = 4 - sfääri pindala on 4πr 2.

7. Sisestage arv N (0 ≤ N ≤ 15). Määrake ja printige sellele vastav kuueteistkümnendsüsteem.

8. Täisarvu K (1...99) puhul trükkige välja fraas "I am K years old" teatud K väärtuste puhul asendage sõna "years" sõnaga "year" või "years".

9. Sõltuvalt joonise tüübi arvust (N) korraldage vajalike andmete sisestamine ja arvutage N = 1 jaoks - ristküliku pindala, N = 2 jaoks - rööpküliku pindala, N = 3 puhul - trapetsi pindala 1/2(a+b)h. Viimasel juhul printida, kas trapets on rööpkülik või romb.

10. Teisendage arv 0 ≤ x ≤ 31 kuueteistkümnendsüsteemiks.

11. Trüki sõnadega suvalise täisarvu jääk jagatuna viiega.

12. Kasutades sisestatud numbrit, trüki soovitud värv vikerkaaresse.

13. Koostage programm, mis näitab, et kui kahekohalise arvu numbrite summa on kolmekordne, siis arv ise jagub kolmega ilma jäägita.

14. Koostage programm, mis tõestab, et kahekohalise arvu k5 ruut (viimane number on 5) on võrdne k * ( k + 1) * 100 + 25 (st selle saab esinumbri korrutamisel k järjekorras järgmisele ja lisage "25"). Näiteks 35 * 11 = 3 * 4 * 100 + 25.

Ülesande 2 puhul määratakse valiku number, jagades üksiku valiku arvuga 12, jäägiga.

3. labor

Märksõnad:

  • tegelik andmetüüp
  • täisarvu andmetüüp
  • märgi andmetüüp
  • stringi andmetüüp
  • tõeväärtuslik andmetüüp

Lihtsamad on programmid, mis rakendavad lineaarseid algoritme. Kõik neis sisalduvad operaatorid täidetakse järjestikku, üksteise järel.

Lineaarsete algoritmide programmeerimisel käsitleme üksikasjalikumalt täisarvu, loogilise, märgi- ja stringi andmetüüpe.

4.4.1. Numbrilised andmetüübid

Olete juba tuttav põhiliste numbriliste andmetüüpidega integer ja real. Nendele kehtivad standardfunktsioonid, millest mõned on toodud tabelis. 4.2.

Tabel 4.2
Standardsed Pascali funktsioonid


Uurime funktsioonide round, int ja frac toimimist, rakendades neid mõnele reaalsele x-ile. Vastav programm näeb välja selline:

Käivitage programm mitu korda x=(10,2; 10,8; -10,2; -10,8). Mida saate meile öelda nende funktsioonide tulemuse tüübi kohta?

4.4.2. Täisarvuline andmetüüp

Täisarvudega tehakse Pascali keeles järgmised toimingud: liitmine (+), lahutamine (-), korrutamine (*), täisarvu jagatise (div) saamine, täisarvu jäägi (mod) saamine ja jagamine (/). Esimese viie tehte tulemused on täisarvud. Jagamistehte tulemuseks võib olla reaalarv.

Vaatleme näidet operatsioonide div ja mod kasutamisest, kirjutades Pascalis programmi, et leida klaviatuurilt sisestatud kolmekohalise täisarvu numbrite summa.

Kasutame asjaolu, et kolmekohalist arvu saab esitada järgmise summana: x = a 100 + b 10 + c, kus a, b, c on arvu numbrid.

4.4.3. Tähemärkide ja stringide andmetüübid

Märgi väärtuse (char type) väärtus Pascali keeles on mis tahes märgid, mida saab ekraanil ühe klahvi või klahvikombinatsiooni vajutamisega, samuti mõned muud märgid, sealhulgas nähtamatud. Selliste sümbolite komplekt koosneb 256 elemendist, millest igaühele on vastavalt kasutatavale kooditabelile määratud kood - arv vahemikus 0 kuni 255.

Esimesele 32 koodile vastavad sümbolid on kontrollsümbolid ja ülejäänud on kujutatud. Kuvatavad märgid sisaldavad ka tühikut, koodi 32.

Kirjavahemärgid, aritmeetiliste tehtemärgid, numbrid, ladina suured ja väikesed tähed vastavad koodidele vahemikus 33 kuni 127. Riigitähestiku tähed vastavad koodidele, mille numbrid on alates 128.

Programmi tekstis saab märgitüübi konstandi määrata, lisades mis tahes esitatava märgi apostroofidele: “5”, “B”, “*”.

Kui märgimuutuja väärtust loetakse klaviatuurilt, tuleb see sisestada ilma apostroofideta.

Sümboli koodi leidmiseks kasutage tellimusfunktsiooni, kus sümbol on määratud parameetrina.

Sümboli koodi järgi äratundmiseks kasutage funktsiooni chr, kus sümboli kood on määratud parameetrina.

Stringi väärtuse väärtus (stringi tüüp) on suvaline märkide jada, mis on ümbritsetud apostroofidega. Pascalis (nagu algoritmilises keeles) saab stringe ühendada.

Näide. Kirjutame Pascalis programmi, milles klaviatuurilt sisestatud tähe puhul kuvatakse selle kood ekraanile. Seejärel kuvatakse ekraanile rida, mis on kasutatud kooditabeli kolme tähe jada: algsele eelnev täht; originaalkiri; tähed järgnevad originaalile.

4.4.4. Boole'i ​​andmetüüp

Nagu teate, on loogilise tüübi väärtustel ainult kaks väärtust; Pascalis on need valed ja tõesed. Need konstandid on määratletud nii, et väär< true.

Tõeväärtused saadakse arvuliste, tähemärkide, stringide ja loogiliste avaldiste võrdlustoimingute tegemisel. Seetõttu saab Pascalis võrdlustoimingu tulemuseks määrata loogilise muutuja.

Näide. Kirjutame programmi, mis määrab väite “Arv n on paaris” tõesuse suvalise täisarvu n korral.

Olgu ans tõeväärtus muutuja ja n täisarv muutuja. Seejärel määramisoperaatori täitmise tulemusena

muutujale ans omistatakse iga paaris n väärtus tõene ja muul juhul false.


Loogilistele muutujatele saab määrata loogiliste avaldiste väärtused, mis on konstrueeritud teile teadaolevate ja või mitte loogiliste funktsioonide abil, mida Pascalis tähistatakse vastavalt ja või mitte.

Näide. Kirjutame programmi, mis määrab väite “Kolmnurk külgede pikkustega a, b, c on võrdhaarne” tõesuse suvaliste täisarvude a, b, c korral.

Kõige tähtsam

Pascali keel kasutab reaal-, täisarvu-, märgi-, string-, loogilisi ja muid andmetüüpe. Nende jaoks on määratletud vastavad toimingud ja funktsioonid.

Küsimused ja ülesanded


Esitluse kirjeldus üksikute slaidide kaupa:

1 slaid

Slaidi kirjeldus:

Edasijõudnute uuringute keskus "Moskva Interneti-hariduse piirkondlik keskus" "Lineaarsete algoritmide programmeerimine Pascalis"

2 slaidi

Slaidi kirjeldus:

Tulemuste kuvamiseks Pascalis kasutatakse operaatorit: Milline järgmistest ei sisaldu Pascali keele tähestikus? Ladina väike- ja suurtähtede allkriips Mis tähemärkide jada võib Pascali keeles olla nimeks? print start readln NEXT funktsioonisõnad vene väike- ja suurtähed _mas maS1 d2 2d _mas maS1 d2 2d NEXT kirjuta kirjuta vene väike- ja suurtähed

3 slaidi

Slaidi kirjeldus:

Valige õige Muutujate deklaratsiooni jaotis Programmi algus Programmi pealkiri Väljundoperaator Määramisoperatsioon Sisendoperaator Programmi lõpp Täisarvuliste väärtuste tüüp Reaalväärtuste tüüp readln end programmi algus:= var integer real writeln var begin:= reaalne programm kirjutamine lõpp lugemine

4 slaidi

Slaidi kirjeldus:

Loo plokkskeem klaviatuurilt sisestatud numbrite A+B liitmiseks START Sisend A,B S=A+B VÄLJUND S LÕPP programm Summa; lõpp. Var a,b,S: täisarv; alustada S= a + b; writeln('S=', S); readln(a,b);

5 slaidi

Slaidi kirjeldus:

Esimene programm: arvutage ringi ümbermõõt ja pindala, kui r=5,4 writeln("c =", c:6:4); writeln("s=", s:6:4) lõpp. Programmi tulemus: write("Sisesta r>>"); readln(r); programm n_1; const pi=3,14; var r, c, s: reaalne; algus r:=5,4; c:=2*pi*r; s:=pi*r*r; Täiustatud programm Programmi tulemus: Turbo Pascal Versioon 7.0 c =33.9120 s =91.5624 Turbo Pascal Uersion 7.0 Ringjoone ümbermõõdu ja pindala arvutamine Sisesta r>> 8.5 c =53.3800 s =226.8650

6 slaidi

Slaidi kirjeldus:

Numbrilised andmetüübid Standardsed Pascal-funktsioonid: Funktsioon Eesmärk Argumendi tüüp Tulemuse tüüp abs(x) Modulex-täisarv, reaalne Sama mis argumendiga sqr(x) Ruutx-täisarv, reaalne Sama mis argumendiga sqrt(x) Ruutjuur ofx-täisarv , reaalne reaalring(x) Ümardamine lähima täisarvuni tegelik murd(x) Täisarv osax tegelik int(x) murdosax reaaljuhuslik juhuslik arv 0-st 1-ni - päris juhuslik(x) Juhuslik arv 0-st x täisarvuni

7 slaidi

Slaidi kirjeldus:

Operatsioonid div ja mod programm n_4; var x, a, b, c, s: täisarv; begin writeln("Kolmekohalise arvu numbrite summa leidmine"); write("Sisesta algne number>>"); readln(x); a:=x div 100; b:=x mod 100 jagamine 10; c:=x mod 10; s:=a+b+c; writeln("s= ", s) lõpp. Kolmekohalist arvu saab esitada järgmise summana: x = a·100 + b·10 + c, kus a, b, c on arvu numbrid. Programm klaviatuurilt sisestatud kolmekohalise täisarvu numbrite summa leidmiseks.

8 slaidi

Slaidi kirjeldus:

Tähemärkide ja stringide andmetüübid Järjestusfunktsioon teisendab tähe selle numbrikoodiks. Sümbolid on kõik tähed ja ikoonid, mis on klaviatuuril. Märgimuutujate programmi sisestamiseks peate määrama nende jaoks märgi andmetüübi char. Funktsioon chr teisendab märgi numbrilise koodi märgiks endaks. Stringi väärtuse väärtus (stringi tüüp) on suvaline märkide jada, mis on ümbritsetud apostroofidega. W chr 87 ord W % 37 % 4 52 4 S 83 S var c: string c:= chr(52)+chr(37) with 4%

Slaid 9

Slaidi kirjeldus:

Märkide ja stringide andmetüüpide programm n_5; var a: char; kood:täisarv; b:string; begin writeln("Kood ja rida"); write("Sisesta algustäht>>"); readln(a); kood:=ord(a); b:=chr(kod–1)+a+chr(kod+1); writeln("Tähekood", a, "-", kod); writeln("Rida: ", b) end. Klaviatuurilt sisestatud tähe koodi kuvamine Kolmest tähest koosneva jada kuvamine ekraanil. Millised?

10 slaidi

Slaidi kirjeldus:

Funktsioonide ring, int ja frac uurimine Käivita programmi x jaoks mitu korda (10.2; 10.8; –10.2; –10.8). Mis on nende funktsioonide tulemuse tüüp? programm n_3; var x: päris; begin writeln("Funktsioonide round, int, frac uurimine"); write("Sisesta x>>"); readln(x); writeln("Ümardamine - ", round(x)); writeln("Täisarv osa - ", int(x)); writeln("Murdosa - ", murd(x)) lõpp. ?

11 slaidi

Slaidi kirjeldus:

START Sisend x1,x2,y1,y2 VÄLJUND S LÕPP programmi pikkus; lõpp. var x1,x2,y1,y2: täisarv; algus d=sqrt(sqr(x2-x1))+sqrt(y2-y1)); writeln('d=', d); write("SISESTAGE KOORDINAAT X1= "); readln(X1); write("SISESTAGE Y1 KOORDINAAT= "); readln(Y1); write("SISESTAGE KOORDINAAT X2= "); readln(X2); write("SISESTAGE Y2 KOORDINAAT= "); readln(Y2);

12 slaidi

Slaidi kirjeldus:

Küsimused ja ülesanded Arvutage antud x jaoks y valemiga y = x3 + 2,5x2 – x +1. Sel juhul: a) astendamise operatsioon on keelatud; b) ühes määramisoperaatoris ei saa kasutada rohkem kui ühte aritmeetilist tehtet (liitmine, korrutamine, lahutamine); c) ühes programmis ei saa kasutada rohkem kui viit määramisoperaatorit. Vihje: teisendage avaldis järgmiseks: y =((x + 2,5)x –1)x +1. Arvutage punktide A ja B antud koordinaatide abil lõigu AB pikkus. Kolmnurga a, b, c külgede pikkused on teada. Kirjutage programm selle kolmnurga pindala arvutamiseks. Kolmnurga tippude A, B, C koordinaadid on teada. Kirjutage programm selle kolmnurga pindala arvutamiseks. Kui maksusumma arvutatakse rublades ja kopikates, siis maksuteenistus ümardab selle lähima rublani (kuni 50 kopikat - puudujäägiga, üle 50 kopika (sh 50) - ülejäägiga). Kasutage oma arvutit täpse maksusumma sisestamiseks ja võlgnevuse kuvamiseks. Uurige juhusliku funktsiooni toimimist programmi korduvalt käivitades: programm n_8; var x, n: täisarv; begin writeln("Juhusliku funktsiooni uurimine"); randomize (*genereerida erinevaid juhuslikke numbreid iga kord, kui programm käivitatakse*); write("Sisesta x>>"); readln(x); write("Sisesta n>>"); readln(n); writeln("juhuslik(", x, ")=", juhuslik(x)); writeln("juhuslik(", x, ")+", n, "=", juhuslik(x)+n) lõpp. Kuidas saada intervallist (0; x) juhuslik arv? Kuidas saada intervallist (0; x] juhuslik arv? Kuidas saada intervallist (n; x + n) juhuslik arv?Üks ettevõte on väljastanud kolme kategooria loteriipileteid: noortele, täiskasvanutele ja eakatele Piletite numbrid on vahemikus: noortele - 1 kuni 100 täiskasvanutele - 101 kuni 200. Valige arvuti abil juhuslikult loteriipilet igas numbris Kirjutage programm suvalise kahekohalise arvu jaoks: a) selle numbrite summa ja korrutis. b) arv, mis on moodustatud algse numbri numbrite ümberpaigutamisel. Kirjutage Pascalis programm, mis arvutab sõna BYTE tähekoodide summa. Kirjutage Pascalis programm, mis kuvab tähemärkide jada, mille koodid on 66, 69, 71, 73, 78. Töötage välja programm, mis küsib kolme stringi väärtust – omavahel seotud omadussõna, nimisõna ja tegusõna, ning seejärel prindib välja kõik tähemärgi variandid. fraasid, kasutades sisestatud sõnu. Täisarvuliste muutujate väärtused on antud: a = 10, b = 20. Mis on loogilise muutuja rez väärtus pärast määramisoperatsiooni? a) rez:=(a=10) või (b>10) b) rez:=(a>5) ja (b>5) ja (a<20) and (b<30) в) rez:=((not(a<15)) or (b>20) Koostage programm, mis sisestab väite tõese korral tõese, muul juhul väära: a) kolmekohalise arvu x numbrite summa on paarisarv; b) kolmnurk külgedega a, b, c on skaleen. Möödas on päeva k-s sekund. Töötage välja programm, mis sisestatud päeva k-nda sekundi põhjal määrab, mitu tundi h ja minutit m on päeva algusest möödunud. Näiteks kui k = 13257 = 3 x 3600 + 40 x 60 + 57, siis h = 3 ja m = 40. Näidake fraasi: See on ... tundi ... minutit. Ellipside asemel peaks programm printima h ja m väärtused, eraldades need sõnadest täpselt ühe tühikuga. Kirjutage Pascalis programm, mis rakendab algoritmi, mille kohaselt kassapidaja annab kliendile vahetusraha(d) väikseimas pangatähtedes 500 (k500), 100 (k100), 50 (k50) ja 10 (k10) rubla. Sisendandmete näide Näide väljundandmetest xa=2 ya=1 xb= 10 yb= 7 | AB | = 10,0 Näidissisendandmed Näidisväljundandmed a =3 b =4 c=5 s = 6,0 Näidissisendandmed Näidisväljundandmed xa = 2 ya = 1 xb = 6 yb = 5 xc = 10 yc = 1 s = 16,0 Näidissisendandmed Näide väljastusandmetest 845 Üle antakse: 500 rubla rahatähed. - 1 arvuti. pangatähed 100 rubla. - 3 tk. pangatähed 50 rubla. – 0 tk. 10 rubla pangatähed - 4 asja. Sisendandmete näidis Näidisväljundandmed ROHELISED LEHED PUHUVAD ROHELISED LEHED PUHUVAD ROHELISED LEHED ROHELISED PUHUVAD LEHED PUHUVAD ROHELISED PUHUVAD ROHELISED LEHED PUHUVAD LEHED Näidis sisendandmete näide Väljundandmete näide 13 257 See on 3 tundi 40 minutit.