Paskalio kalba ir Turbo Paskalio aplinka
Struktūrinio
programavimo
savarankiški darbai
Turbo Paskalio aplinka
Kintamieji ir jų reikšmės
Algoritmuose užrašomi veiksmai su duomenimis.
Bendriausia prasme duomenys skirstomi į pastovius
(konstantas) ir kintamus (kintamuosius). Kintamieji žymimi
vardais, atliekant programą jie įgyja reikšmes. Konstantos ir
kintamieji, sujungti operacijų (veiksmų) ženklais, sudaro
reiškinius.
Duomenys gali būti sveikieji ir realieji skaičiai, simboliai,
tekstas ir pan. Duomenų rūšys programavime vadinamos
duomenų tipais.
Mažiausia yra natūraliųjų skaičių aibė, didžiausia — realiųjų.
Taigi kiekvieną natūralųjį skaičių galima laikyti sveikuoju,
kiekvieną sveikąjį — racionaliuoju, kiekvieną racionalųjį —
realiuoju skaičiumi.
Sveikieji skaičiai
integer -32768..32767 word 0..65535
longint -2147483648..
2147483647
byte 0..255
shortint -128..127
Priskyrimo sakinys
Priskyrimo sakinys — tai kintamasis ir reiškinys, atskirti priskyrimo simboliu (:=). Atlikus programą gauta reiškinio reikšmė priskiriama kairėje esančiam kintamajam.
Priskyrimo sakinių pavyzdžiai:
sk := 5;
suma := x + y;
Atlikus priskyrimo sakinį, kintamasis, kurio vardas parašytas kairėje simbolio := pusėje, įgyja reiškinio, esančio dešinėje pusėje, reikšmę. Reiškinys kartais gali būti sudarytas tik iš vienos konstantos (skaičiaus) arba iš vieno kintamojo.
Programos struktūra. Sąlygų tikrinimas ir valdančios struktūros
Loginiai duomenys. Programuojant operuojama ne tik sveikųjų bei realiųjų skaičių, bet ir loginio tipo duomenimis. Loginiai kintamieji gali įgyti tik dvi reikšmes: true (teisinga) ir false (neteisinga) . Su jais galima atlikti logines operacijas: neigimą (inversiją), sudėtį (disjunkciją) ir daugybą (konjunkciją).
Loginius duomenis, kaip ir skaičius, galima vartoti rašymo sakiniuose, su jais galima atlikti logines operacijas, jų reikšmes galima priskirti loginiams kintamiesiems.
Kintamieji, galintys įgyti logines reikšmes, aprašuose žymimi žodžiu boolean. Terminas kilęs iš logikos algebros pradininko D. Būlio (George Boole, 1815-1869) pavardės.
Loginės operacijos
Inversija (Inversijos operacija labai paprasta: ją atlikus, esama loginė reikšmė pakeičiama priešinga. Ji žymima sutartiniu žodžiu not („ne“) ir paprastai vadinama lietuviškai — neigimu. )
Konjunkcija (Konjunkcija — tai labai svarbi loginė operacija, kuri reikalinga norint sujungti du teiginius. Šnekamojoje kalboje tai dažniausiai atliekama vartojant jungtuką „ir“. )
Disjunkcija (Disjunkcijos operacija atlieka loginės sudėties vaidmenį. Šnekamojoje kalboje teiginiai panašiai jungiami jungtuku „arba“. )
Pasirinkimas: vienas iš dviejų veiksmų
Sąlyginio sakinio schema
if < sąlyga (loginis reiškinys)>
then <sakinys_1>
else <sakinys_2>;
Pasirinkimas: vienas iš dviejų veiksmų
Sutrumpinto sąlyginio sakinio schema.
Kartais tam tikrų veiksmų seką reikia atlikti tik
tada, kai sąlyga tenkinama. Tokiu atveju antrąją
sakinio šaką (kartu ir žodį else) galima praleisti.
if <sąlyga (loginis reiškinys) > then < sakinys >;
Pasirinkimas: vienas iš keleto veiksmų
program minimumas;
var a, b, c, min: integer;
begin
read (a, b, c);
if a < b
then if a < c
then min := a
else min := c
else if b < c
then min := b
else min := c;
writeln (min)
end.
Sudėtinio sakinio schema
begin
sakinys_1 ;
sakinys_2 ;
...
sakinys_n
end;
Varianto sakinys
Paskalio kalba pasirinkimą iš dviejų, trijų ar daugiau variantų programuojame tokiu sakiniu:
case selektorius of
1 reikšmė : 1 sakinys;
2 reikšmė : 2 sakinys;
...
n reikšmė : n sakinys;
else sakinys;
end;
Kaip ir sąlygos sakinyje, dalies „else sakinys“ gali nebūti.
Cikliniai procesai. Programų analizės priemonės
Tą patį veiksmą dažnai tenka kartoti daug
kartų. Sudarant algoritmus, kartojimo
veiksmai išreiškiami ciklu. Ciklas — vieno
svarbiausių algoritmo konstrukcijų; reta
programa gali be jo apseiti.
Veiksmų kartojimas daug kartų vadinamas
ciklu. Algoritmai, turintys ciklų, vadinami
cikliniais algoritmais.
Ciklo KOL schema Paskalio kalboje
Šis ciklas dažnai vadinamas nežinomo
kartojimų skaičiaus ciklu (arba while ciklu —
„kol“). Šio tipo ciklo sakinys vartojamas tada,
kai programuojant nežinomas ciklo kartojimų
skaičius. Lietuviškai jį galima būtų vadinti
KOL ciklu.
while <sąlyga> do <sakinys> ;
Bendra žinomo kartojimų skaičiaus schema
Ciklas FOR (IKI). Tokiam atvejui, kai ciklo kartojimų skaičius žinomas iš anksto, Paskalio kalba turi patogesnį ciklą — vadinamąjį žinomo kartojimų skaičiaus ciklą arba tiesiog ciklą for.
for <ck> := <cp> to <cg> do <sakinys>;
ck-ciklo kintamasis;
cp-jo pradinė reikšmė;
cg-galutinė reikšmė.
Ciklo sakinys REPEAT
Jeigu žinoma, kad tam tikrą sakinių seką bent vieną kartą tikrai reikia atlikti, o paskui ją kartoti arba nekartoti priklausomai nuo susidariusių sąlygų, tai vartojamas ciklo sakinys repeat (kartoti):
Repeat sakinio struktūra:
Repeat <akinių seka> until <sąlyga>;
Savikontrolės klausimai
1. Kurie iš šių teiginių teisingi?
a) ciklas, prasidedantis žodžiu while, gali būti
neatliktas nė vieno karto;
b) ciklas, prasidedantis žodžiu repeat, gali būti
neatliktas nė vieno karto;
c) ciklas, prasidedantis žodžiu while arba
repeat, gali būti atliktas vieną kartą.
Užduotys
1. Pradiniai duomenys – trys skaičiai a, b ir c. Parašykite loginį reiškinį, kurio reikšmė būtų true, tada ir tiktai tada, kai:
a) visų trijų kintamųjų a, b ir c reikšmės lygios;
b) visų trijų kintamųjų a, b ir c reikšmės skirtingos;
c) kurių nors dviejų kintamųjų reikšmės lygios;
d) visų trijų kintamųjų a, b ir c reikšmės yra lyginiai skaičiai;
e) visų trijų kintamųjų reikšmės yra teigiamos, bet ne didesnės kaip 100.
Užduotys
2. Kintamųjų reikšmės yra tokios: a = 10, b = 20.. Kokios šių loginių reiškinių reikšmės:
a) (a = 10) and (b = 20);
b) (a <> 10) or (b = 20);
c) (a > 5) and (b > 5) and (a < 20) and (b < 30);
d) (a > 5) and (b > 5) and (a < 10) and (b < 30);
e) (a > 5) and (b > 5) or (a < 10) and (b < 30);
f) (not (a < 15)) or (not (b < 30));
g) not (a = b);
h) not (not (a = b));
i) not (not (not (a = b)))?
Užduotys
3. Parašykite loginį reiškinį, kurio reikšmė būtų true, jeigu iš trijų atkarpų. kurių ilgiai duoti (yra kintamųjų a, b, ir c reikšmės), galima sudaryti:
a) trikampį,
b) lygiašonį trikampį,
c) lygiakraštį trikampį.
4. Kokios bus kintamųjų a ir b reikšmės, atlikus šią sakinių seką:
a := 1; b := 1;
while a <= 3 do
a := a+1; b := b+1;
Užduotys
4. Kokius skaičius matysime ekrane atlikę šią programą.
program bandymas;
var a, b, i: integer;
begin
a := 0;
b := 5;
for i := a to b do
begin
write(i: 2);
b := b-1
end; writeln end.
Literatūra
G.Grigas. Programavimas. – Vilnius, 1998.
J.Blonskis, V. Dagienė. Programavimo pradmenys. – Vilnius, 2001.
V.Dagienė, G.Grigas. Programavimo pradmenų uždavinynas. – Vilnius, 2000.
B.Burgis, A.Kulikauskas. Kompiuterija. – Kaunas, 2000.
V.Dagienė. Informatikos pradmenys. II dalis. – Vilnius, 1998.
A.Vidžiūnas ir J.Blonskis. Turbo paskalis 7.0./Vartotojo vadovas. – Kaunas, 1997.
J.Blonskis ir kt. Programavimas./Vadovėlis. – Kaunas, 2000.
V.Tumasonis. Paskalis ir Turbo Paskalis 7.0. – Vilnius, 1993.