You are on page 1of 39

1.

PAPRASTOS PROGRAMOS, CIKLAI


1. Parasyti programa, kuri apskaiciuotu funkcijos reiksme:kai x>0, tai y=1, jei x kita reiksme, tai y=2.
program Funkcija_I;
var x,y:integer;
begin
WriteLn ('Ivesk x reiksme');
ReadLn (x);
if x>0 then y:= 1
else y:= 2;
WriteLn ('y=', y);
ReadLn;
end.
2. Jei 5>x>0, tai y=1, kai 10>x>=5, tai y=2, kai x>=10, tai y=4.
program Funkcija_II;
var x,y:integer;
begin
WriteLn ('Ivesk x reiksme:');
ReadLn (x);
if (x>=10) then
begin
y:=4;
WriteLn ('y=',y);
end
else if (10>x) and (x>=5)
then
begin
y:=2;
WriteLn ('y=',y);
end
else if (5>x) and (x>0)
then
begin
y:=1;
WriteLn ('y=',y);
end
else WriteLn ('y neturi sprendiniu');
ReadLn;
end.
3. Parasyti programa, kuri apskaiciuotu staciakampio zemes sklypo plota. Ilgis ir plotis ivadami is klaviaturos.
program Sklypo_plotas;
var S, x, y:longint;
begin
WriteLn ('Ivesk sklypo ilgi ir plota');
ReadLn (x,y);

{tikrinam, ar krastine(s) nera neigiamos arba lygios nuliui}


if (x<=0) or (y<=0)
then WriteLn ('Sklypo krastine(s) negali buti maziau arba lygi 0!')
else
begin
S:= x*y;
WriteLn ('Sklypo plotas yra ',S,' kvadr. vnt.');
end;
ReadLn;
end.

1
4. Parasyti programa, kuri tikrintu, ar galima is triju is klaviatūros ivestu krastiniu ilgiu sudaryti trikampi.
Trecioji krastine negali buti didesne uz kitu dveiju suma.
program Trikampio_sudarymas;
var a,b,c:real;
begin
WriteLn ('Ivesk trikampio krastiniu ilgius:');
ReadLn (a,b,c);
{tikrina, ar ilgiai nera lygus ar mazesni uz nuli}
if (a<=0) or (b<=0) or (c<=0)
then WriteLn ('a, b, c negali buti maziau arba lygus nuliui!')
else
if ((a+b)>c) and ((b+c)>a) and ((a+c)>b)
then WriteLn ('Trikampi galima sudaryti!')
else WriteLn ('Trikampio sudaryti negalima!');
ReadLn;
end.
Ciklas FOR
5. Programa apskaiciuoja dvizenkliu, t.y. nuo 10 iki 99 skaiciu suma.
Program Dvizenkliu_suma;
var x:integer;
n:longint;
begin
n:=0;
x:=0;
{kol x yra nuo 10 iki 99, vykdyk sia uzduoti n=n+x
ciklo sakinys FOR pats padidina x vienu vnt iki nurodytos ribos (99)}
for x:=10 to 99 do
n:=n+x;
WriteLn ('Visu teigiamu dvizenkliu (10-99) skaiciu suma yra ',n,'.');
ReadLn;
end.
6. Programa skaicuoja is klaviaturos ivesto sveiko teigiamo nelygaus nuliui ir mazesnio uz 17 skaiciaus faktoriala.
Program Faktorialo_skaiciavimas;
var n,i:integer;
f:longint;
begin
WriteLn ('Ivesk sveika teigiama nelygu nuliui ir mazesni uz 17 skaiciu:');
ReadLn (n);
f:=1;
if n<=0
then WriteLn ('Negalima ivesti lygaus arba mazesnio uz 0 skaiciaus!')
else begin
for i:=1 to n do
f:= f*i;
WriteLn ('Skaiciaus ',n,' faktorialas yra ',f,'.');
end;
ReadLn;
end.
7. Programa simta kartu atspausdina zodi "Labas!".
program Labas;
var i:integer;
begin
i:=0;
for i:=1 to 100 do {kol i= nuo 1 iki 100, spausdink "Labas!".}
WriteLn ('Labas!');
ReadLn;
end.

2
8. Programa apskaiciuoja visu teigiamu trizenkliu skaiciu (100-999) suma.
program Trizenkliu_suma;
var suma,x:longint;
begin
suma:=0; x:=0;
for x:=100 to 999 do
suma:=suma+x;
WriteLn ('Visu teigiamu trizenkliu skaiciu suma yra ',suma,'.');
ReadLn;
end.
9. Programa suskaiciuoja visu vienzenkliu skaiciu (0-9) suma.
Program Vienzenkliu_suma;
var x:integer;
n:longint;
begin
n:=0;
x:=0;
for x:=1 to 9 do
n:=n+x;
WriteLn ('Vienzenkliu skaitmenu suma yra ',n,'.');
ReadLn;
end.
Ciklas WHILE
10. Programa skaiciuoja visu teigiamu lyginiu dvizenkliu skaiciu suma.
Program Dvizenkliu_lyginiu_suma;
var i:integer;
n:longint;
begin
i:=8;
n:=0;
While i<=97 do
begin
i:=i+2;
n:=n+i;
end;
WriteLn ('Visu teigiamu lyginiu dvizenkliu skaiciu suma yra ',n,'.');
ReadLn;
end.
11. Programa skaiciuoja visu teigiamu nelyginiu dvizenkliu skaiciu suma.
Program Dvizenkliu_nelyginiu_suma;
var i:integer;
n:longint;
begin
i:=9;
n:=0;
While i<=98 do {paskutinis bus 98+1=99}
begin
i:=i+2; {pirmas skaicius bus 9+2=11}
n:=n+i;
end;
WriteLn ('Visu teigiamu nelyginiu dvizenkliu skaiciu suma yra ',n,'.');
ReadLn;
end.

3
12. Programa skaiciuoja visu teigiamų dvizenkliu teigiamu skaiciu (10-99) suma.
Program Dvizenkliu_suma;
var i:integer;
n:longint;
begin
i:=10;
n:=10;
While i<=98 do
begin
i:=i+1;
n:=n+i;
end;
WriteLn ('Visu dvizenkliu teigiamu skaiciu (10-99) suma yra ',n,'.');
ReadLn;
end.
13. Programa skaicuoja is klaviaturos ivesto sveiko teigiamo nelygaus 0 ir mazesnio uz 17 skaiciaus faktoriala.
Program Faktorialo_skaiciavimas;
var x,n:integer;
fk:longint;
begin
WriteLn ('Ivesk teigiama, nelygu nuliui ir mazesni uz 17 skaiciu:');
ReadLn (x);
n:=1;
fk:=1;
if (x<=0) or (x>16)
then WriteLn ('Skaicius turi buti 0<x<17!')
else
begin
While n<=x do
begin
fk:=fk*n;
n:=n+1;
end;
WriteLn ('Skaiciaus ',x,' faktorialas yra ',fk,'.')
end;
ReadLn;
end.
14. Programa apskaicuoja f-ja y=(3*x-3)/(4-2*x). Kintamojo x kitimo intervalas (0;3), kitimo zingsnis 0.2
program Funkcijos_skaiciavimas;
var x,y,v:real;
begin
x:=0;
While x<3 do
begin
v:=4-2*x;
if v<>0 then
begin
y:=(3*x-3)/v;
WriteLn ('Kai x=',x:2:2,', tai y=',y:2:2,'.');
end
else WriteLn ('Kai x=',x,', tai y yra nezinomas.');
x:=x+0.2;
end;
ReadLn;
end.

4
15. Parasyti programa, kuri suskaiciuotu, kiek is klaviaturos ivedamas sveikas teigiamas skaicius turi skaitmenu.
Program Skaitmenu_skaicius;
var i,n,r:longint;
begin
WriteLn ('Ivesk sveika teigiama skaiciu:');
ReadLn (n);
r:=n; {kintamasis reikalingas issaugoti pradinei reiksmei}
i:=0;
if n<0 {tikrina, ar ivestas skaicius nera neigiamas}
then WriteLn ('Neigiamo skaiciaus ivesti negalima!')
else
begin
While n div 10>0 do
begin
i:=i+1;
n:=n div 10;
end;
i:= i+1;
WriteLn ('Skaicius ',r,' turi ',i,' skaitmeni/is.');
end;
ReadLn;
end.
16. Programa skaiciuoja visu dvizenkliu teigiamu skaiciu (0-99) suma.
Program Dvizenkliu_suma;
var i:integer;
n:longint;
begin
i:=0;
n:=0;
While i<=98 do
begin
i:=i+1;
n:=n+i;
end;
WriteLn ('Visu dvizenkliu teigiamu skaiciu (10-99) suma yra ',n,'.');
ReadLn;
end.
17. Programa skaiciuoja visu vienzenkliu teigiamu skaiciu (0-9) suma.
Program Vienzenkliu_suma;
var i:integer;
n:longint;
begin
i:=0;
n:=0;
While i<=8 do
begin
i:=i+1;
n:=n+i;
end;
WriteLn ('Visu vienzenkliu teigiamu skaiciu (10-99) suma yra ',n,'.');
ReadLn;
end.

5
Ciklas REPEAT
18. Programa apskaiciuoja is klaviaturos ivesto sveiko skaiciaus (0>x>17) faktoriala.
program Faktorialo_skaiciavimas;
var i,n:integer;
f:longint;
begin
WriteLn ('Ivesk teigiama didesni uz nuli ir mazesni uz 17 skaiciu:');
ReadLn (n); {skaicius, kurio faktoriala reikia apskaiciuoti}
i:=0; f:=1;
Repeat
i:=i+1;
f:=f*i;
until i=n;
WriteLn ('Skaiciaus ',n,' faktorialas yra ',f,'.');
Readln;
end.
19. Programa apskaiciuoja is klaviaturos ivesto sveiko teigiamo skaiciaus skaitmenu kieki.
Program Skaitmenu_skaicius;
var i:integer;
n,r:longint;
begin
WriteLn ('Ivesk sveika teigiama skaiciu:');
ReadLn (n);
r:=n; {pradinio skaiciaus issaugojimas}
i:=0;
if n<0 {tikrina, ar ivestas skaicius nera neigimas}
then WriteLn ('Negalima ivesti neigiamo skaiciaus!')
else
begin
Repeat
n:=n div 10;
i:=i+1;
until n<1;
WriteLn ('Skaicius ',r, ' turi ',i,' skaitmeni/is.');
end;
ReadLn;
end.
20. Programa apskaiciuoja visu teigiamu vienzenkliu skaiciu suma.
program Vienzenkliu_suma;
var i,n:integer;
begin
i:=0; n:=0;
Repeat
i:=i+1;
n:=n+i;
until i>=9;
WriteLn ('Visu vienzenkliu teigiamu skaiciu suma yra ',n,'.');
ReadLn;
end.

6
21. Programa is klaviaturos ivesta sveika 5-zenkli skaiciu paraso is kitos puses.
program Atbulas_penkiazenklis;
var s1,s2,s3,s4,s5,x,pr,gl:longint; {pr - pradinis, gl - galutinis}
begin
WriteLn ('Ivesk sveika keliazenkli skaiciu:');
ReadLn (pr);
x:=pr; {pradines reiksmes issaugojimui}
s1:= x div 10000; {pirmas skaiciu}
s2:= (x div 1000) mod 10; {antras skaiciu}
s3:= (x div 100) mod 10; {trecias skaiciu}
s4:= (x div 10) mod 10; {ketvirtas skaiciu}
s5:= (x div 1) mod 10; {penktas skaicius}
gl:= ((s5 * 10000)+(s4*1000)+(s3*100)+(s2*10)+s1);
WriteLn ('Skaiciaus ',pr,' is kitos puses parasytas skaicius ',gl,'.');
ReadLn;
end.
22. Programa apskaiciuoja funkcija y=e pakeltas laipsniu (2x-2). Kintamasis x kinta nuo 0 iki 3. Kitimo zingsnis 0.3.
program Kelimas_laipsniu;
var x,y:real; {argumento tipas butinai turi buti realus}
begin
x:=0;
Repeat
y:=exp(2*x-2);
WriteLn ('Kai x= ',x:2:2,', tai y= ',y:2:2,'.'); {rezultatas - real}
x:=x+0.3;
until x>3;
ReadLn;
end.
Sudėtingesni uždaviniai
23. Programa is klaviaturos ivesta sveika penkiazenkli skaiciu paraso is kitos puses.
program Atbulas_penkiazenklis;
var s1,s2,s3,s4,s5,x,pr,gl:longint; {pr - pradinis, gl - galutinis}
begin
WriteLn ('Ivesk sveika penkiazenkli skaiciu:');
ReadLn (pr);
x:=pr; {pradines reiksmes issaugojimui}
s1:= x div 10000; {pirmas skaicius}
s2:= (x div 1000) mod 10; {antras skaicius}
s3:= (x div 100) mod 10; {trecias skaicius}
s4:= (x div 10) mod 10; {ketvirtas skaicius}
s5:= (x div 1) mod 10; {penktas skaicius}
gl:= ((s5 * 10000)+(s4*1000)+(s3*100)+(s2*10)+s1);
WriteLn ('Skaiciaus ',pr,' is kitos puses parasytas skaicius ',gl,'.');
ReadLn;
end.

7
24. Apskaiciuoti s = 1 + ½ +1/4 +…+1/2n +…
program funkc_naud;
var sum,eps,narys:real;
n:integer;
function vard(n:integer):longint;
var snd:integer;
f:longint;
begin
f:=1; snd:=1;
for snd:=1 to n do
f:=f*2;
vard:=f;
end;
begin
Readln (eps);
sum:=0;
narys:=1; n:=0;
while narys>eps do
begin
sum:=sum+narys;
n:=n+1;
narys:=1/vard(n);
end;
writeln ('suma=',sum:5:2);
readln;
end.
25. Kasininkas gauna pinigų sumą, kurią reikia išmokėti. Kokiais pinigais reikia išmokėti tą sumą, kad
kupiūrų kiekis būtų minimalus?
program Min_kupiuros;
var sum:longint;
s1,s2,s3,s4,s5,s6,s7,s8,s9:longint;
begin
WriteLn ('Iveski suma, kuria reikia ismoketi');
ReadLn (sum);
s1:= sum div 500;
s2:= (sum-(s1*500)) div 200;
s3:= (sum-(s1*500)-(s2*200)) div 100;
s4:= (sum-(s1*500)-(s2*200)-(s3*100)) div 50;
s5:= (sum-(s1*500)-(s2*200)-(s3*100)-(s4*50)) div 20;
s6:= (sum-(s1*500)-(s2*200)-(s3*100)-(s4*50)-(s5*20)) div 10;
s7:= (sum-(s1*500)-(s2*200)-(s3*100)-(s4*50)-(s5*20)-(s6*10)) div 5;
s8:= (sum-(s1*500)-(s2*200)-(s3*100)-(s4*50)-(s5*20)-(s6*10)-(s7*5)) div 2;
s9:= (sum-(s1*500)-(s2*200)-(s3*100)-(s4*50)-(s5*20)-(s6*10)-(s7*5)-(s8*2)) div 1;
WriteLn (sum,' Lt suma patogiausia ismoketi tokio nominalo pinigais:');
WriteLn ('-----------------');
WriteLn ('---',s1,' po 500 Lt---');
WriteLn ('---',s2,' po 200 Lt---');
WriteLn ('---',s3,' po 100 Lt---');
WriteLn ('---',s4,' po 50 Lt ---');
WriteLn ('---',s5,' po 20 Lt ---');
WriteLn ('---',s6,' po 10 Lt ---');
WriteLn ('---',s7,' po 5 Lt ---');
WriteLn ('---',s8,' po 2 Lt ---');
8
WriteLn ('---',s9,' po 1 Lt ---');
WriteLn ('-----------------');
ReadLn;
end.

26. Programa suskaiciuoja bet kokio skaiciaus, ivesto is klaviaturos, skaitemnu skaiciu.
program labas;
var x,ks,sk:longint;
begin
writeln ('iveskite sveika skaiciu nesibaigianti nuliu'); {nesibaigianti nuliu nes apvertus ji jis bus neteisingas}
readln (sk);
x:=sk; {nes sk nuolat kinta o mums gale jo reikia pradinio}
ks:=0; {sumos kaupimo uzdavinys}
while sk >=10 do
begin
ks:=(ks+sk mod 10)*10;
{sk mod 10 atpjauna paskutini skaitmeni,daugina is desimt, kad po to pridejus antra nuo gal skaitmeni skaicius graziai rikiuotusi}
sk:=sk div 10; {palieka skaiciu be paskutinio skaitmens}
end;
ks:=ks+sk; {prijungti paskutiniam skaitmeniui, ks visa laika kito ir cia jis yra galutinis be paskutinio skaitmens}
writeln (x,'atbulai',ks);
readln;
end.
27. Programa skaicuoka įvestos skaičių sekos narių sumą ir daro tai tol, kol bus įvestas skaičius 777.
program Skaiciu_seka;
var s, x:integer;
begin
s:=0;
Repeat
WriteLn ('Ivesk skaiciu');
ReadLn (x);
begin
if x=777
then Writeln ('Ciklas baigtasm suma',s)
else s:=s+x;
end;
WriteLn ('Skaiciu sekos suma: ',s);
until x=777;
ReadLn;
end.
28. Programa sukeicia penkiazenkio skaiciaus I-aja pozicija su 4-aja
program penkiazenklio_keitinys;
var x,sk1,sk2,sk3,sk4,sk5,Pr,Ap:integer;
begin
{Ivesto 5-zenklio skaiciaus pirma skaitmeni sukeicia su ketvirtuoju}
WriteLn ('Ivesk sveika penkiazenkli skaiciu: ');
ReadLn (x);
Pr:=x;
sk1:= x mod 10;
sk2:= (x div 10) mod 10;
sk3:= (x div 100) mod 10;
sk4:= (x div 1000) mod 10;
sk5:= x div 10000;
Ap:= ((sk2*10000)+(sk3*1000)+(sk4*100)+(sk5*10)+sk1);
WriteLn ('Pradinis skaicius ',Pr,' apverstas bus: ',Ap);
ReadLn;
end.

9
29. Programa parodo, kiek laiko rodys laikrodis po vienos minutes. Pradinis laikas ivedamas is klaviaturos.
program Laikas;
var val, min:integer;
begin
WriteLn ('Ivesk valandas:');
ReadLn (val);
WriteLn ('Ivesk minutes:');
ReadLn (min);
if (val<0) or (val>24) or (min<0) or (min>60) {tikrina, ar ivestas laikas egzistuoja}
then WriteLn ('Valandos turi buti 25>val>0, minutes - 60>min>0!')
else
begin
if val=24 {nustato 24 valandu ir ne daugiau riba}
then
begin
val:=00; {kai val=24, tai po 1 min laikas pradedamas skaiciuoti is naujo}
min:=01;
end
else
begin
if min<>60 {jei laikrodis rodo 60 min, tai po 1 min prasideda nauja val ir minutes lygios 0 }
then min:=min+1
else
begin
val:=val+1;
min:=00;
end;
end;
if (val<10) and (min<10) {nuliu rodymui}
then WriteLn ('Po minutes laikrodis rodys 0',val,':0',min,'.')
else WriteLn ('Po minutes laikrodis rodys ',val,':',min,'.');
end;
ReadLn;
end.

10
2. MASYVAI: rasymas, skaitymas is keliu masyvu, rusiavimas
1. Programa suformuoja studentų sesijos pažymių masyvą ir apskaičiuoja bendrą vidurkį. Masyvo duomenys,
t.y. 5 pažymiai (studentų sesijos pažymių vidurkiai) įvedami is klaviatūros.
program Masyvo_sudarymas;
var i:byte;
vid:real;
Paz:array [1..5] of byte;
begin
vid:=0; {kintamojo isvalymas}
for i:=1 to 5 do
begin
ReadLn (Paz[i]);
vid:= vid + Paz[i];
end;
vid:= vid/i;
WriteLn ('Vidurkis yra ',vid:5:2,'.');
ReadLn;
end.
2. Programa suformuoja studentų pavardžių masyvą ir jį atspausdina. Pavardės (iš viso 5) įvedamos iš
klaviatūros.
program Masyvo_sudarymas;
var i:byte;
Pav:array [1..5] of string [10];
begin
{-------Ivedinimas--------}
for i:=1 to 5 do
ReadLn (Pav[i]);
{------Isvedimas-----------}
for i:=1 to 5 do
WriteLn (pav[i]);
ReadLn;
end.
3. Programa suformuoja skaičių matricą: iš eilės įvestus skaičius išdėsto 6-iomis eilutėmis ir 5 stulpeliais.
program Matricos_formavimas;
var i,j:byte;
Paz:array [1..6,1..5] of byte;
begin
for i:=1 to 6 do {kol i I-aja eilute nesurasomi 5 nariai, tol nepersokama i II-aja}
for j:=1 to 5 do
ReadLn (Paz[i,j]);
{---------spausdinimas-----------}
for i:=1 to 6 do
begin
for j:=1 to 5 do
Write(Paz[i,j],' ');
WriteLn;
end;
ReadLn;
end.

11
4. Programa paprašo suvesti 20-ies studentų pažymius, kuriuos išsaugoja faile pazymiai.txt.
program tekst;
type pazymys=array [1..20] of byte;
var paz:pazymys;
i:integer;
failas:text;
begin
Assign (failas,'pazymiai.txt'); {susieja logini faila su fiziniu failu diske}
Rewrite (failas);
for i:= 1 to 20 do
begin
WriteLn (i,' studento pazymys');
ReadLn (paz[i]);
WriteLn (failas,paz[i]); {Ishsaugoja ivestus duomenis faile pazymiai.txt}
end;
Close (failas); {uzdaro faila}
end.
5. Nuskaito duomenis (pažymius) iš failo pazymiai.txt ir juos atspausdina.
program tekst;
type pazymys=array [1..20] of byte;
var paz:pazymys;
i:integer;
failas:text;
begin
Assign (failas,'pazymiai.txt'); {susieja logini faila su fiziniu failu diske}
Reset (failas); {nuskaito duomenis ish failo pazymiai.txt}
for i:= 1 to 20 do
begin
ReadLn (failas,paz[i]);
WriteLn (i,'-ojo studento pazymys ',paz[i],'.'); {duomenis, nuskaitytus ish failo pazymiai.txt, isveda i ekrana}
end;
Close (failas); {uzdaro faila pazymiai.txt}
ReadLn;
end.
6. Nuskaito duomenis (pažymius) iš failo pazymiai.txt ir randa mažiausia pažymį. Jį atspausdina.
program minimumo_paieska;
type pazymys=array [1..20] of byte;
var paz:pazymys; i,min:integer;
failas:text;
begin
Assign (failas,'pazymiai.txt'); {susieja logini faila su fiziniu failu diske}
Reset (failas); {nuskaito duomenis ish failo pazymiai.txt}
min:=100; {pradine minimumo reiksme}
for i:= 1 to 20 do
begin
ReadLn (failas,paz[i]);
if paz[i]<min {iesko minimalios reiksmes faile pazymiai.txt}
then min:=paz[i];
end;
WriteLn ('Minimali reiksme faile Pazymiai.txt yra ',min,'.');

12
Close (failas); {uzdaro faila pazymiai.txt}
ReadLn;
end.

7. Programa nuskaito duomenis (pažymius) iš failo pazym.txt, suranda maksimalią reiksmę ir ją atspausdina.
program maksimumo_paieska;
type pazymys=array [1..20] of byte;
var paz:pazymys;
i,max:integer;
failas:text;
begin
Assign (failas,'pazym.txt'); {susieja logini faila su fiziniu failu diske}
Reset (failas); {nuskaito duomenis ish failo pazymiai.txt}
max:=-100; pradine maksimumo reiksme}
for i:= 1 to 20 do
begin
ReadLn (failas,paz[i]);
if paz[i]>max {iesko minimalios reiksmes faile pazymiai.txt}
then max:=paz[i];
end;
WriteLn ('Maksimali reikshme faile Pazym.txt yra ',max,'.');
Close (failas); {uzdaro faila pazymiai.txt}
ReadLn;
end.
8. Programa nuskaito iš trijų failų (Dalykai.txt, Pazymiai.txt ir Vardai.txt) duomenis, atspausdina juos ir
randa, iš kokio dalyko studentė Jovita turi didžiausią pažymį.
program max_pazymys;
type pazymys=array[1..20,1..5] of byte; {pazymiai.txt masyvas}
vardai=array[1..20]of string; {vardai.txt masyvas}
dalykai=array[1..5]of string; {dalykai.txt masyvas}
var paz:pazymys;
i,j,max:integer; ijov,imax:byte; vard:vardai; dalyk:dalykai; failas:text;
begin
{------------- Veiksmai su pazymiu masyvu -----------------------------}
assign(failas,'pazymiai.txt'); {kint. failas susiejimas su failu pazymiai.txt}
reset(failas); {procedura, paruosianti faila pazymiai.txt skaitymui}
for i:=1 to 20 do
begin
writeln; {iterpia tuscia eilute}
for j:=1 to 5 do
begin
read(failas,paz[i,j]);
write(paz[i,j],' ');
end;
end;
close(failas); {uzdaro faila pazymiai.txt}
readln;
{-------------Veiksmai su vardu masyvu-------------------------------}
assign(failas,'vardai.txt '); {kint. failas susiejamas su failu vardai.txt}
reset(failas); {paruosia faila vardai.txt skaitymui}
for i:=1 to 20 do
begin
readln(failas,vard[i]);
13
writeln(i,' ',vard[i]);
end;
close(failas); {uzdaro faila vardai.txt}
readln;
{-----------Veiksmai su dalyku masyvu----------------------------------}
assign(failas,'dalykai.txt '); {kint.failas susieja su failu dalykai.txt}
reset(failas); {paruosia faila dalykai.txt skaitymui}

for i:=1 to 5 do
begin
readln(failas,dalyk[i]);
writeln(i,' ',dalyk[i]);
end;
close(failas); {uzdaro faila dalykai.txt}
{------------Maksimalaus Jovitos pazymio paieska---------------------}
for i:=1 to 20 do
if vard[i]='Jovita' then ijov:=i; {isimena Jovitos vardo elemento numeri vardu masyve}
max:=0;
for i:=1 to 5 do
if paz[ijov,i]>max then {iesko maksimalaus pazymio Jovitos pazymiu masyvo eiluteje}
begin
max:=paz[ijov,i];
imax:=i; {isimena maksimalaus pazymio vieta eiluteje, tai ir bus dalyko numeris}
end;
WriteLn;
WriteLn('Dalykas, is kurio Jovita turi diziausia pazymi: ',dalyk[imax]);
readln;
end.
Failų pavyzdžiai

Dalykai.txt
1. Matematika
2. Informatika
3. Ekonomika
4. Filosofija
5. Logika

Pažymiai.txt
1. 4 5 6 7 8 Vardai.txt
2. 9 8 7 9 8
3. 6 7 5 7 6 1. Onute
4. 10 9 10 10 9 2. Joniukas
5. 8 7 8 6 8 3. Maryte
6. 8 7 9 7 8 4. Petriukas
7. 5 6 5 4 6 5. Ingute
8. 5 5 6 5 6 6. Danas
9. 7 6 7 7 8 7. Danute
10. 6 9 8 9 8 8. Vytautas
11. 9 7 8 6 9 9. Rosita
12. 10 10 10 10 9 10. Rimas
13. 9 9 9 8 8 11. Daiva
14. 9 7 9 6 8 12. Saulius
15. 4 5 6 4 4 13. Jovita
16. 6 5 7 6 7 14. Gintaras
17. 8 9 9 8 9 15. Milda
18. 7 6 8 7 6 16. Osvaldas
19. 5 6 4 5 6 17. Deimante
20. 10 9 10 8 9 18. Kestas
14
19. Reda 20. Jurate

9. Programa nuskaito is triju failu (Dalykai.txt, Pazymiai.txt ir Vardai.txt) duomenis, atspausdina juos ir suskaiciuoja
kiekvieno studento pazymiu vidurki.
program max_pazymys;
type pazymys=array[1..20,1..5] of byte; {pazymiai.txt masyvas}
vardai=array[1..20]of string; {vardai.txt masyvas}
dalykai=array[1..5]of string; {dalykai.txt masyvas}
var paz:pazymys; vard:vardai; dalyk:dalykai;
i,j,max:integer; vid:real; failas:text;
begin
{------------- Veiksmai su pazymiu masyvu -----------------------------}
assign (failas,'pazymiai.txt'); {kint. failas susiejimas su failu pazymiai.txt}
reset (failas); {procedura, paruosianti faila pazymiai.txt skaitymui}
for i:=1 to 20 do
begin
WriteLn; {iterpia tuscia eilute}
for j:=1 to 5 do
begin
read (failas,paz[i,j]);
write (paz[i,j],' ');
end;
end;
close (failas); {uzdaro faila pazymiai.txt}
readln;
WriteLn;
{-------------Veiksmai su vardu masyvu-------------------------------}
assign (failas,'vardai.txt ');
reset (failas);
for i:=1 to 20 do
begin
readln (failas,vard[i]);
writeln (i,' ',vard[i]);
end;
close(failas);
readln;
{-----------Veiksmai su dalyku masyvu----------------------------------}
assign (failas,'dalykai.txt ');
reset (failas);
for i:=1 to 5 do
begin
readln(failas,dalyk[i]);
writeln(i,' ',dalyk[i]);
end;
close(failas);
WriteLn;
{--------------Vidurkio skaiciavimas-------------------}
assign (failas,'pazymiai.txt');
reset (failas);
vid:=0;
for j:=1 to 20 do
begin
for i:=1 to 5 do

15
begin
Read (failas,Paz[i,j]);
vid:= vid + Paz[i,j];
end;
vid:= vid/i;
WriteLn (j,'-ojo studento vidurkis yra ',vid:5:2);
vid:=0;
end;
close (failas);
readln;
end.
3. MASYVAI: rasymas ir skaitymas is dvimacio masyvo, rusiavimas
1. Stomatologinė klinika teikia 4 rūšių paslaugas, kurių pavadinimai pateikti tekstiniame faile Paslaugos.dat. Klinikoje
dirba 4 stomatologai, kurių vardai pateikti faile Dantistai.txt. Faile Sumos.ttt pateikti kiekvieno dantisto uždirbti pinigai
(patalpinti stulpelyje), teikiant faile išvardintas paslaugas. Parašyti programą, kuri iš tekstinių failų apskaičiuotų ir
atspausdintų kiekvienoje paslaugoje uždirbtų pinigų vidurkį. Perrašykite failą Sumos.ttt, papildydami jį vidurkių
stulpeliu, o naujas failas turi būti pavadintas Jūsų vardu.
program kontrolinis_2F;
var sum:array[1..4,1..5]of real; Pradinio failo Sumos.ttt
ssum:array[1..4] of real; pavyzdys
i,j:integer;
f1,f2:text; 5678.9 6543.6 8768.5 6854.9
begin 7658.4 4325.7 4684.8 5439.0
for i:=1 to 4 do {masyvo valymas} 5432.7 8976.5 6754.5 6585.5
ssum[i]:=0; 4987.6 6478.6 6543.2 5987.3
assign(f1,'sumos.ttt');
reset(f1);
Galutinio failo Kontras.ttt pavyzdys
for i:=1 to 4 do
begin 5678.90 6543.60 8768.50 6854.90 6961.48
for j:=1 to 4 do 7658.40 4325.70 4684.80 5439.00 5526.98
read(f1,sum[i,j]); 5432.70 8976.50 6754.50 6585.50 6937.30
readln(f1); 4987.60 6478.60 6543.20 5987.30 5999.18
end;
for i:=1 to 4 do
for j:=1 to 4 do
ssum[i]:=ssum[i]+sum[i,j];
for i:=1 to 4 do
begin
sum[i,5]:=ssum[i]/4;
writeln(sum[i,5]);
end;
assign(f2,'kontras.ttt');
rewrite(f2);
for i:=1 to 4 do
begin
for j:=1 to 5 do
write(f2,sum[i,j]:6:2,' ');
writeln(f2);
end;
Close(f1);
Close(f2);
ReadLn;
end.
2. Programa nuskaito duomenis (siuo atveju 6 skaicius)is failo Rus_File.txt ir surikiuoja juos nuo maziausio iki
didziausio.
program rusiavimas;
uses crt;
16
type skaiciai=array[1..6] of integer;
var skait:skaiciai;
i,j,k,a:integer;
failas:text;
begin
clrscr; {isvalo ekrana}
{--------------Nuskaitymas is failo-------------------}
Assign (failas,'Rus_File.txt');
Reset (failas);
WriteLn ('=====================');

for i:=1 to 6 do
begin
ReadLn (failas,skait[i]);
WriteLn (skait[i]);
end;
WriteLn ('------------------');
WriteLn ('Isrusiuoti:');
{-----------------Rusiavimas---------------------------}
for i:=1 to 5 do
begin
k:=i;
for j:=i+1 to 6 do
if skait[j] < skait[k]
then
begin
a:=skait[j];
skait[j]:=skait[k];
skait[k]:=a;
end;
end;
{-------------------Atspausdinimas-------------------}
for i:=1 to 6 do
WriteLn (skait[i]);
WriteLn ('======================');
Close (failas);
ReadLn;
end.
3. Programa nuskaito duomenis (siuo atveju 6 skaicius)is failo Rus_File.txt ir surikiuoja juos nuo maziausio
iki didziausio.
program rusiavimas;
uses crt;
type skaiciai=array[1..6] of integer;
var skait:skaiciai;
i,j,k,a:integer;
failas:text;
begin
clrscr; {isvalo ekrana}
{--------------Nuskaitymas is failo-------------------}
Assign (failas,'Rus_File.txt');
Reset (failas);
WriteLn ('= = = = = = = = = = = = = = = = =');
for i:=1 to 6 do
begin
ReadLn (failas,skait[i]);
WriteLn (skait[i]);
end;
17
WriteLn ('------------------');
{-----------------Rusiavimas---------------------------}
WriteLn ('Isrusiuoti:');
for i:=1 to 5 do
begin
k:=i;
for j:=i+1 to 6 do
if skait[j] < skait[k]
then
begin
a:=skait[j];
skait[j]:=skait[k];
kait[k]:=a;
end;
end;
{-------------------Atspausdinimas-------------------}
for i:=1 to 6 do
WriteLn (skait[i]);
WriteLn ('======================');
{-------Krypties nustatymo procedura-------}
for i:=2 to 6 do
for j:=i downto 2 do
if skait[j] < skait[j-1]
then
begin
a:=skait[j];
skait[j]:=skait[j-1];
skait[j-1]:=a;
end;
Close (failas);
ReadLn;
end.
4. Programa nuskaito duomenis is dvimacio masyvo, apskaiciuoja kiekvieno vaiko vidurki, suformuodama nauja stulpeli,
ir pagal ta vidurki surikiuoja visus vaikus nuo turincio didziausia vidurki iki turincio maziausia. Taip pat programa
nustato eiluciu ir stulpeliu masyve skaiciu.
Program r_mat_f; Ekonomika Informatika Vadyba Matematika Uzsienio Sociologija
Onyte 0.327 1.857 5.936 6.997 0.770 0.178
var i,j,k,n,m :integer;
Petriukas 3.397 0.296 0.766 5.387 4.229 1.488
s, av:real; Joniukas 7.471 0.508 7.213 0.330 6.400 4.293
ap:string[12]; Ingute 9.512 7.116 8.928 0.612 2.966 1.034
pz:string[3]; Kazyte 8.431 1.043 6.452 8.840 8.046 5.535
x:array[1..30,1..10] of real; Dovile 8.528 4.953 5.504 8.453 7.078 6.553
v:array[1..30] of real; Agne 3.015 9.882 5.178 9.790 2.672 4.511
p:array[1..30] of string[12]; Asta 4.902 5.684 0.339 2.949 3.285 6.822
d:array[1..30] of string[12]; Ada 3.491 2.824 7.165 8.431 0.987 9.488
a:array[1..10] of real; Ala 6.117 9.943 5.227 8.696 5.206 5.616
Ausra 9.672 6.089 1.772 5.334 7.201 0.824
f,fn:text; Aidas 2.962 9.163 7.254 3.200 3.240 1.756
begin Kaziukas Ekonomika 2.255 8.625 3.585 5.209 Uzsienio
6.264 Sociologija
2.756
Informatika Vadyba Matematika Vidurkis
assign(f,'Rnd1r.txt'); Petre Dovile 8.528 6.5874.953
1.4635.504
1.337
8.4535.180
7.0784.190
6.5537.828
6.845
assign(fn,'Rnd1rf.txt'); Kestas Ala 9.5589.943
6.117 1.4445.227
7.260
8.6961.751
5.2061.218
5.6165.816
6.801
reset(f); Kazyte 8.431 1.043 6.452 8.840 8.046 5.535 6.391
rewrite(fn); Kestutis 8.729 3.392 2.097 9.590 4.522 7.126 5.909
i:=1; Agne 3.015 9.882 5.178 9.790 2.672 4.511 5.841
while not Eoln(f) do {end of line - eilutes pabaiga} Petrute 7.799 6.442 8.431 4.564 0.244 6.644 5.687
begin Kastis 5.335 2.299 8.981 5.548 5.845 5.668 5.613
Ada 3.491 2.824 7.165 8.431 0.987 9.488 5.398
read (f,d[i]);
Ausra 9.672 6.089 1.772 5.334 7.201 0.824 5.149
i:=i+1; Jone 5.748 4.857 1.140 2.721 6.340 9.935 5.124
end; Ingute 9.512 7.116 8.928 0.612 2.966 1.034 5.028
readln(f); Kaziukas 2.255 8.625 3.585 5.209 6.264 2.756 4.782
i:=1; Aidas 2.962 9.163 7.254 3.200 3.240 1.756 4.596
while not Eof(f) do {end of file - failo pabaiga} Kestas 9.558 1.444 7.260 1.751 1.218 5.816 4.508
begin Petre 6.587 1.463 1.337 5.180 4.190 7.828 4.431
read(f,p[i]); Joniukas 7.471 0.508 7.213 0.330 6.400 4.293 4.369
Asta 4.902 5.684 0.339 2.949 3.285 6.822 3.997
Kastytis
18 4.013 2.089 7.750 2.659 3.678 0.822 3.502
Onyte 0.327 1.857 5.936 6.997 0.770 0.178 2.678
Petriukas 3.397 0.296 0.766 5.387 4.229 1.488 2.594
matrica surusiuota pagal vidurki mazejimo tvarka
s:=0;
j:=1;
while not Eoln(f) do
begin
read (f,x[i,j]);
read(f,pz);
s:=s+x[i,j];
j:=j+1;
end;
readln(f);
n:=j-1;
v[i]:=s/n;
i:=i+1;
end;
m:=i-1; {nuskaityta ir apskaiciuotas vidurkis}
Close(f);
writeln('eiluciu=',m,' stulpeliu=',n);
for i:=2 to m do
for j:=i downto 2 do {perraso mazejancia tvarka}
if v[j]>v[j-1]
then
begin
av:=v[j];
v[j]:=v[j-1];
v[j-1]:=av; {jei netenkina rusiavimo tvarkos tai sukeiciami vietomis}
for k:=1 to n do
begin
a[k]:=x[j,k];
x[j,k]:=x[j-1,k];
x[j-1,k]:=a[k];
end;
ap:=p[j];
p[j]:=p[j-1];
p[j-1]:=ap;
end; {masyvai surusiuoti, lieka surasyti i faila}
for i:=1 to n do
write(fn,d[i]);
write(fn,'Vidurkis ');
writeln(fn);
for i:=1 to m do
begin
write(fn,p[i]);
for j:= 1 to n do
write(fn,x[i,j]:6:3);
write(fn,v[i]:6:3);
writeln(fn);
end;
writeln(fn, 'matrica surusiuota pagal vidurki mazejimo tvarka');
Close(fn);
ReadLn;
End.
5. Programa nuskaito duomenis is dvimacio masyvo, apskaiciuoja kiekvieno vaiko vidurki, suformuodama nauja stulpeli,
ir pagal ta vidurki surikiuoja visus vaikus nuo turincio didziausia vidurki iki turincio maziausia. Taip pat programa
nustato eiluciu ir stulpeliu masyve skaiciu.
Program r_mat_f;
var i,j,k,n,m:integer;
s, av:real;
ap:string[12];
pz:string[3];
x:array[1..30,1..10] of real;
v:array[1..30] of real;
p:array[1..30] of string[12];
d:array[1..30] of string[12];
a:array[1..10] of real;
f,fn:text;

19
begin
assign(f,'Rnd1r.txt');
assign(fn,'Rnd1rff.txt');
reset(f);
rewrite(fn);
for i:=1 to 6 do
read (f,d[i]);
readln(f);

for i:=1 to 20 do
begin
read(f,p[i]);
s:=0;
j:=1;
for j:=1 to 6 do
begin
read (f,x[i,j]);
{read(f,pz);}
s:=s+x[i,j];
end;
readln(f);
v[i]:=s/6;
end; {nuskaityta ir apskaiciuotas vidurkis}
Close(f);
{rusiavimas}
for i:=2 to 20 do
for j:=i downto 2 do
if v[j]>v[j-1] then
begin
av:=v[j];
v[j]:=v[j-1];
v[j-1]:=av; {jei netenkina rusiavimo tvarkos tai sukeiciami vietomis}
for k:=1 to 6 do
begin
a[k]:=x[j,k];
x[j,k]:=x[j-1,k];
x[j-1,k]:=a[k];
end;
ap:=p[j];
p[j]:=p[j-1];
p[j-1]:=ap;
end; {masyvai surusiuoti, lieka surasyti i faila}
for i:=1 to 6 do
write(fn,d[i]);
write(fn,'Vidurkis ');
writeln(fn);
for i:=1 to 20 do
begin
write(fn,p[i]);
for j:= 1 to 6 do
write(fn,x[i,j]:6:3);
write(fn,v[i]:6:3);
writeln(fn);
end;
writeln(fn, 'matrica surusiuota pagal vidurki mazejimo tvarka');
Close(fn);
ReadLn;
End.

20
6. Programa nuskaito dvimati masyva, atspausdina ji ekrane ir surusiuota visus mokinius pagal pirmojo dalyko
pazymius nuo maziausio iki blogiausio, naujaji dvimati masyva atspausdina ekrane.
program SUPRATIMAS_01;
uses crt;
type vardai=array[1..15] of string [13]; {vardu eilutes aprasas}
rezultatai=array[1..15,1..7] of real; {skaiciu aprasas}
dalykai=array[1..7] of string [12]; {dalyku aprasas}
var vard:vardai;
rez:rezultatai;
dal:dalykai;
f1:text;
i,j,m,a:integer;
temp1:string;
temp2:real;
begin
ClrScr;
Assign (f1,'bendras.txt');
Reset (f1);
{skaitymas}
j:=1;
while not Eoln(f1) do Bendras.txt
begin Ekonomika Informatika Vadyba Matematika Uzsienio Sociologija
Read (f1,dal[j]); Onyte 0.327 1.857 5.936 6.997 0.770 0.178
j:=j+1; Petriukas 3.397 0.296 0.766 5.387 4.229 1.488
end; Joniukas 7.471 0.508 7.213 0.330 6.400 4.293
ReadLn (f1); Ingute 9.512 7.116 8.928 0.612 2.966 1.034
for i:=1 to 15 do Kazyte 8.431 1.043 6.452 8.840 8.046 5.535
begin Dovile 8.528 4.953 5.504 8.453 7.078 6.553
Read (f1,vard[i]); Agne 3.015 9.882 5.178 9.790 2.672 4.511
for j:=1 to 6 do Asta 4.902 5.684 0.339 2.949 3.285 6.822
Read (f1,rez[i,j]); Ada 3.491 2.824 7.165 8.431 0.987 9.488
ReadLn (f1); Ala 6.117 9.943 5.227 8.696 5.206 5.616
end; Ausra 9.672 6.089 1.772 5.334 7.201 0.824
Aidas 2.962 9.163 7.254 3.200 3.240 1.756
{spausdinimas} Kaziukas 2.255 8.625 3.585 5.209 6.264 2.756
for j:=1 to 6 do Petre 6.587 1.463 1.337 5.180 4.190 7.828
Write (dal[j]); Kestas 9.558 1.444 7.260 1.751 1.218 5.816
WriteLn;
for i:=1 to 15 do
begin
Write (vard[i]);
for j:=1 to 6 do
Write (rez[i,j]:5:3,' ');
WriteLn;
end;
{NEVEIKIA :( rusiavimas pagal stulpelio pavadinima}
{WriteLn ('Ivesk dalyko, pagal kuri nori atlikti rikiavima, pavadinima:');
ReadLn (subject);
m:=0;
for j:=1 to 6 do
if dal[j]=subject then m:=j;
WriteLn (m);}

{rusiavimas pagal 1 stulpeli}


ReadLn;
for a:=1 to 15 do
for i:=1 to 14 do
if rez[i,1] > rez [i+1,1]
then
begin
temp1:=vard[i];
vard[i]:=vard[i+1];
vard[i+1]:=temp1;
for j:=1 to 6 do
begin
temp2:=rez[i,j];
rez[i,j]:=rez[i+1,j];

21
rez[i+1,j]:=temp2;
end;
end;
{modifikuoto masyvo spausdinimas}
for i:=1 to 6 do
Write (dal[i]);
WriteLn;
for i:=1 to 15 do
begin
Write (vard[i]);
for j:=1 to 6 do
Write (rez[i,j]:5:3,' ');
WriteLn;
end;
Close (f1);
ReadLn;
end.

7. Duoti du failai: 1kiek.txt ir 2sum.dat. Faile 1kiek.txt stulpeliu surasyti vaistu pavadinimai, o salia kiekvieno vaisto yra nurodytas
kiekis. Faile 2sum.dat duoti tu paciu vaistu pavadinimai, isrikiuoti kita tvarka, o salia kiekvieno vaisto nurodyta suma. Programa turi
atspausdinti pradinius failus ekrane, o taip pat sudauginti to paties vaisto suma ir kieki. Gauta kiekvieno vaisto sandauga atspausdinti
ekrane.
program egzam_A1; 1kiek.txt 2sum.dat
uses crt; Etacizinas 142 Gentamicinas 2949
type vaistai=array [1..31] of string [14];
sumos=array [1..31] of longint;
Amoksiklavas 198 Coldrex 2283
kiekiai=array [1..31] of integer; Digoksinas 234 Azelastinas 3303
var vai_s:vaistai; Ampicilinas 260 Amoksicilinas 3423
vai_k:vaistai; Coldaktas 276 Kalcitoninas 4525
sum:sumos; Gemcitabinas 284 Ditaminas 4629
kiek:kiekiai;
Actoveginas 292 Adrenalinas 5709
i,j:integer;
san:longint; Anastrazolas 333 Etacizinas 5818
f1,f2:text; Nizatidinas 369 Cimetidinas 5948
begin Lovastafinas 374 Clozapinas 5056
ClrScr; Adrenalinas 384 Actoveginas 6173
Assign (f1,'1kiek.txt'); Baklafenas 393 Anastrazolas 8225
Reset (f1); Insulinas 393 Amoksiklavas 9325
Assign (f2,'2sum.dat'); Ditaminas 399 Leustatinas 9471
Reset (f2); Drotaverinas 410 Gemcitabinas 8128
{failo 2sum.dat skaitymas} Coldrex 411 Benzokainas 5264
for i:=1 to 31 do Flucinaras 434 Biseptolis 1267
begin Gentamicinas 439 Chondrosan 14532
Read (f2,vai_s[i]); Atropinas 443 Drotaverinas 15199
Read (f2,sum[i]); Cimetidinas 445 Nizatidinas 16142
ReadLn (f2); Clozapinas 446 Ampicilinas 16442
end; Leustatinas 447 Nikotinas 17165
{failo 1kiek.txt skaitymas} Nikotinas 448 Asparkamas 23023
for j:=1 to 31 do Kalcitoninas 452 Insulinas 23147
begin Menotropinas 488 Atropinas 24216
Read (f1,vai_k[j]); Asparkamas 495 Lovastafinas 26127
Read (f1,kiek[j]); Biseptolis 504 Digoksinas 27175
ReadLn (f1); Chondrosan 514 Coldaktas 28243
end; Benzokainas 572 Baklafenas 29285
{failo 2sum.dat spausdinimas} Azelastinas 581 Menotropinas 33227
WriteLn ('*** Failo 2sum.dat spausdinimas ***'); Amoksicilinas 799 Flucinaras 42187
for i:=1 to 31 do
begin
Write (vai_s[i]);
Write (sum[i]);
WriteLn;
end;
ReadLn;
{failo 1kiek.txt spausdinimas}
WriteLn ('*** Failo 1kiek.txt spausdinimas ***');
for j:=1 to 31 do
22
begin
Write (vai_k[j]);
Write (kiek[j]);
WriteLn;
end;
ReadLn;
{dauginimas}
for i:=1 to 31 do
for j:=1 to 31 do
if vai_s[i]=vai_k[j]
then
begin
san:=(sum[i])*(kiek[j]);
WriteLn (vai_s[i],' suma * ',vai_k[j],' kiekis: ',san);
ReadLn;
end;
Close (f1); Close (f2);
ReadLn;
end.
4. KONTROLINIO DARBO NR.1 UŽDUOTYS

1. Parašyti programą funkcijos reikšmių lentelei apskaičiuoti ir atspausdinti, kai x kinta nuo –5 iki +5 su
žingsneliu 0,29
nežinoma, kai x>4 arba x<0;
Y= 6-1,5x, kai 2< x  4;
3x, kai 0 x <2;
0, kai x = 2.
program A2;
uses crt;
var x,y:real;
begin
ClrScr;
WriteLn ('=======================================');
x:=-5; y:=0;
While x<0 do
begin
WriteLn ('> kai x=',x:2:2,', tai y reiksme nezinoma <');
x:=x+0.29;
end;
WriteLn ('=======================================');
While x<2 do
begin
y:=3*x;
WriteLn ('> kai x=',x:2:2,', tai y=',y:2:2,' <');
x:=x+0.29;
end;
if x=2 then
begin
y:=0;
WriteLn ('> kai x=',x:2:2,', tai y=',y:2:2,' <');
end;
WriteLn ('=======================================');
While x<=4 do
begin
y:=6-(1.5*x);
WriteLn ('> kai x=',x:2:2,', tai y=',y:2:2,' <');
x:=x+0.29;
end;
WriteLn ('=======================================');
While x<5 do
begin
23
WriteLn ('> kai x=',x:2:2,', tai y reiskme nezinoma <');
x:=x+0.29;
end;
WriteLn ('=======================================');
ReadLn;
end.
2. Parašyti programą įvesto šešiaženklio skaičiaus transformacijai: antrą skaitmenį sukeičiant su . penktuoju
pvz:.284579 turėtų būti transformuotas taip 274589.
program A3_E3;
uses crt;
var s1,s2,s3,s4,s5,s6:longint; {tarpiniai skaiciai}
trans,prad:longint; {pradinis ir transformuotas skaiciai}
begin
ClrScr;
WriteLn ('Iveskite sesiazenkli skaiciu:');
ReadLn (prad);
s1:= prad div 100000; {pirmas skaicius}
s2:= (prad mod 100000) div 10000; {antras skaicius}
s3:= (prad mod 10000) div 1000; {trecias skaicius}
s4:= (prad mod 1000) div 100; {ketvirtas skaicius}
s5:= (prad mod 100) div 10; {penktas skaicius}
s6:= prad mod 10; {sestas skaicius}
trans:=((s1*100000)+(s2*10)+(s3*1000)+(s4*100)+(s5*10000)+(s6*1));
WriteLn ('Transformuotas sesiazenklis skaicius: ',trans,'.');
ReadLn;
end.
3. Parašyti programą funkcijos reikšmių lentelei apskaičiuoti, kai x kinta nuo –5 iki +10 su žingsneliu 0,35
nežinoma, kai 2>x>0 arba 6>x>4;
Y= 2-x, kai -2< x  0;
8-x, kai 6 x <8;
2, kai 2 x  4;
0 kai x  2 arba x 8.
program B2;
uses crt;
var x,y:real;
begin
ClrScr;
WriteLn ('=======================================');
x:=-5; y:=0;
While x<=-2 do
begin
y:=0;
WriteLn ('kai x=',x:2:2,', tai y=',y:2:2);
x:=x+0.35;
end;
WriteLn ('=======================================');
While x<=0 do
begin
y:=2-x;
WriteLn ('kai x=',x:2:2,', tai y=',y:2:2);
x:=x+0.35;
end;
WriteLn ('=======================================');
While x<1.99 do {?????????????}
begin
WriteLn ('kai x=',x:2:2,',tai y nezinomas');
x:=x+0.35;
end;
24
WriteLn ('=======================================');
While x<=4 do
begin
y:=2;
WriteLn ('kai x=',x:2:2,', tai y=',y:2:2);
x:=x+0.35;
end;
WriteLn ('=======================================');
While x<6 do
begin
WriteLn ('kai x=',x:2:2,', tai y nezinomas');
x:=x+0.35;
end;
WriteLn ('=======================================');
While x<8 do
begin
y:=8-x;
WriteLn ('kai x=',x:2:2,', tai y=',y:2:2);
x:=x+0.35;
end;
WriteLn ('=======================================');
While x<=10 do
begin
y:=0;
WriteLn ('kai x=',x:2:2,', tai y=',y:2:2);
x:=x+0.35;
end;
WriteLn ('=======================================');
ReadLn;
end.
4. Parašyti programą įvesto septynženklio skaičiaus transformacijai sukeičiant trečią skaimenį su ketvirtu.
program B3_D3_F3;
uses crt;
var s1,s2,s3,s4,s5,s6,s7:longint; {tarpiniai skaiciai}
trans,prad:longint; {pradinis ir transformuotas skaiciai}
begin
ClrScr;
WriteLn ('Iveskite septynzenklis skaiciu:');
ReadLn (prad);
s1:= prad div 1000000; {pirmas skaicius}
s2:= (prad mod 1000000) div 100000; {antras skaicius}
s3:= (prad mod 100000) div 10000; {trecias skaicius}
s4:= (prad mod 10000) div 1000; {ketvirtas skaicius}
s5:= (prad mod 1000) div 100; {penktas skaicius}
s6:= (prad mod 100) div 10; {sestas skaicius}
s7:= prad mod 10; {septintas skaicius}
trans:=((s1*1000000)+(s2*100000)+(s3*1000)+(s4*10000)+(s5*100)+(s6*10)+(s7*1));
WriteLn ('Transformuotas septynzenklis skaicius: ',trans,'.');
ReadLn;
end.
5. Parašyti programą funkcijos reikšmių lentelei apskaičiuoti, kai x kinta nuo –1 iki +12 su žingsneliu 0,37
0, kai x11 arba x<0;
Z= 2x, kai 0 x  3;
6-x, kai 3< x 4;
1, kai 4< x 8;
x-7, kai 8< x 9;
20-2x, kai 9< x <11;
25
program C2;
uses crt;
var x,y:real;
begin
ClrScr;
WriteLn ('=======================================');
x:=-1; y:=0;
While x<0.0001 do
begin
y:=0;
WriteLn ('kai x=',x:2:2,', tai y=',y:2:2);
x:=x+0.37;
end;
WriteLn ('=======================================');
While x<3 do
begin
y:=2*x;
WriteLn ('kai x=',x:2:2,', tai y=',y:2:2);
x:=x+0.37;
end;
WriteLn ('=======================================');
While x<4 do
begin
y:=6-x;
WriteLn ('kai x=',x:2:2,', tai y=',y:2:2);
x:=x+0.37;
end;
WriteLn ('=======================================');
While x<7.999 do
begin
y:=1;
WriteLn ('kai x=',x:2:2,', tai y=',y:2:2);
x:=x+0.37;
end;
WriteLn ('=======================================');
While x<9 do
begin
y:=x-7;
WriteLn ('kai x=',x:2:2,', tai y=',y:2:2);
x:=x+0.37;
end;
WriteLn ('=======================================');
While x<11 do
begin
y:=20-(2*x);
Writeln ('kai x=',x:2:2,', tai y=',y:2:2);
x:=x+0.37;
end;
WriteLn ('=======================================');
While x<12 do
begin
y:=0;
WriteLn ('kai x=',x:2:2,', tai y=',y:2:2);
x:=x+0.37;
end;
WriteLn ('=======================================');
ReadLn;
end.
6. Parašyti programą įvesto penkiaženklio skaičiaus transformacijai sukeičiant trečią skaimenį su pirmu.
program C3;
26
uses crt;
var s1,s2,s3,s4,s5:longint; {tarpiniai skaiciai}
trans,prad:longint; {pradinis ir transformuotas skaiciai}
begin
ClrScr;
WriteLn ('Iveskite penkiazenkli skaiciu:');
ReadLn (prad);
s1:= prad div 10000; {1-as skaicius}
s2:= (prad mod 10000) div 1000; {2-as skaicius}
s3:= (prad mod 1000) div 100; {3-as skaicius}
s4:= (prad mod 100) div 10; {4-as skaicius}
s5:= prad mod 10; {5-as skaicius}
trans:=((s1*100)+(s2*1000)+(s3*10000)+(s4*10)+(s5*1));
WriteLn ('Transformuotas sesiazenklis skaicius: ',trans,'.');
ReadLn;
end.

7. Parašyti programą funkcijos reikšmių lentelei apskaičiuoti ir atspausdinti, kai x kinta nuo –5 iki +10 su
žingsneliu 0,45
nežinoma, kai 2>x>0 arba 6>x>4;
Y= 2-x, kai -2< x  0;
8-x, kai 6 x <8;
2, kai 2 x  4;
0, kai x <- 2 arba x 8.
program D2;
uses crt;
var x,y:real;
begin
ClrScr;
WriteLn ('=======================================');
x:=-5; y:=0;
While x<-2 do
begin
y:=0;
WriteLn ('kai x=',x:2:2,', tai y=',y:2:2);
x:=x+0.45;
end;
WriteLn ('=======================================');
While x<=0 do
begin
y:=2-x;
WriteLn ('kai x=',x:2:2,', tai y=',y:2:2);
x:=x+0.45;
end;
WriteLn ('=======================================');
While x<1.99 do {?????????????}
begin
WriteLn ('kai x=',x:2:2,',tai y nezinomas');
x:=x+0.45;
end;
WriteLn ('=======================================');
While x<=4 do
begin
y:=2;
WriteLn ('kai x=',x:2:2,', tai y=',y:2:2);
x:=x+0.45;
end;
WriteLn ('=======================================');
While x<6 do

27
begin
WriteLn ('kai x=',x:2:2,', tai y nezinomas');
x:=x+0.45;
end;
WriteLn ('=======================================');
While x<8 do
begin
y:=8-x;
WriteLn ('kai x=',x:2:2,', tai y=',y:2:2);
x:=x+0.45;
end;
WriteLn ('=======================================');
While x<=10 do
begin
y:=0;
WriteLn ('kai x=',x:2:2,', tai y=',y:2:2);
x:=x+0.45;
end;
WriteLn ('=======================================');
ReadLn;
end.
8. Parašyti programą konstantai C apskaičiuoti tikslumu , įvedamu iš klaviatūros, pagal eilutę

program E1;
uses crt;
var e,C,narys:real;
n:integer;
begin
ClrScr;
WriteLn ('Ivesk epsilion reiksme:');
ReadLn (e);
narys:=2/7; {imame n=1 ir apskaiciuojam, kam bus lygus narys}
C:=0; n:=1;
while narys>=e do
begin
C:=C+narys;
n:=n+1;
narys:=(sqr(n)+1)/(3*((sqr(n))*(sqr(n)))+4);
end;
WriteLn ('C=',C:2:2);
ReadLn;
end.
9. Parašyti programą funkcijos reikšmių lentelei apskaičiuoti ir atspausdinti, kai x kinta nuo –5 iki +5 su
žingsneliu 0,2
nežinoma, kai x>4 arba x<0;
Y= 6-1,5x, kai 2< x  4;
3x, kai 0 x <2;
0, kai x = 2.
program E2;
uses crt;
var x,y:real;
begin
ClrScr;
WriteLn ('=======================================');
x:=-5; y:=0;
While x<-0.01 do
begin

28
WriteLn ('kai x=',x:2:2,', tai y reiksme nezinoma');
x:=x+0.2;
end;
WriteLn ('=======================================');
While x<1.99 do
begin
y:=3*x;
WriteLn ('kai x=',x:2:2,', tai y=',y:2:2);
x:=x+0.2;
end;
WriteLn ('=======================================');
x:=2;
if x=2 then
begin
y:=1;
WriteLn ('kai x=',x:2:2,', tai y=',y:2:2);
end;
WriteLn ('=======================================');
While x<4.01 do
begin
y:=6-(1.5*x);
WriteLn ('kai x=',x:2:2,', tai y=',y:2:2);
x:=x+0.2;
end;
WriteLn ('=======================================');
While x<5 do
begin
WriteLn ('kai x=',x:2:2,', tai y reiskme nezinoma');
x:=x+0.2;
end;
WriteLn ('=======================================');
ReadLn;
end.
10. Parašyti procedūrą konstantai B apskaičiuoti tikslumu  pagal eilutę

program F1_mok;
uses crt;
var e,c,narys:real;
n:integer;
function vard(n:integer):longint;
var i:integer; f:longint; {f-sandaugos kaupimas}
begin
f:=n;
for i:=1 to n do
f:=f*5;
vard:=f;
end;
begin
ClrScr;
narys:=3/5; {imame n=1 ir apskaiciuojame, kad bus lygus narys}
ReadLn (e);
n:=1;
c:=0;
while narys>=e do
begin
c:=c+narys;
n:=n+1;
narys:=(2*n+1)/vard(n);
end;
WriteLn ('C=',C:8:5,'.');
ReadLn;
end.

29
11. Parašyti programą funkcijos reikšmių lentelei apskaičiuoti, kai x kinta nuo –5 iki +10 su žingsneliu 0,5
nežinoma, kai 2>x>0 arba 6>x>4;
Y= 2-x, kai -2< x  0;
8-x, kai 6 x <8;
2, kai 2 x  4;
0, kai x  2 arba x 8.
program F2;
uses crt;
var x,y:real;
begin
ClrScr;
WriteLn ('=======================================');
x:=-5; y:=0;
While x<-2 do
begin
y:=0;
WriteLn ('kai x=',x:2:2,', tai y=',y:2:2);
x:=x+0.5;
end;
WriteLn ('=======================================');
While x<=0 do
begin
y:=2-x;
WriteLn ('kai x=',x:2:2,', tai y=',y:2:2);
x:=x+0.5;
end;
WriteLn ('=======================================');
While x<1.99 do {?????????????}
begin
WriteLn ('kai x=',x:2:2,',tai y nezinomas');
x:=x+0.5;
end;
WriteLn ('=======================================');
While x<=4 do
begin
y:=2;
WriteLn ('kai x=',x:2:2,', tai y=',y:2:2);
x:=x+0.5;
end;
WriteLn ('=======================================');
While x<6 do
begin
WriteLn ('kai x=',x:2:2,', tai y nezinomas');
x:=x+0.5;
end;
WriteLn ('=======================================');
While x<8 do
begin
y:=8-x;
WriteLn ('kai x=',x:2:2,', tai y=',y:2:2);
x:=x+0.5;
end;
WriteLn ('=======================================');
While x<=10 do
begin
y:=0;
WriteLn ('kai x=',x:2:2,', tai y=',y:2:2);
x:=x+0.5;
end;
WriteLn ('=======================================');
ReadLn;
end.
30
ARBA
program F2_MOK;
uses crt;
var x,y:real;
poz:boolean; {pozymis}
begin
x:=-5;
while x<=10 do
begin
poz:=true;
Write ('x= ',x:5:3,' ');
if (x<=-2) or (x>=8)
then y:=0
else
if x<0
then y:=2-x
else
if (x>=2) and (x<=4)
then y:=2
else
if x>=6
then y:=8-x
else
begin
poz:=not(poz);
WriteLn ('y nezinomas');
end;
if poz then WriteLn ('y=',y:5:3);
WriteLn;
x:=x+0.5;
end;
ReadLn;
end.
5. KONTROLINIO DARBO NR.2 UŽDUOTYS
1. Kauno urėdija turi 7 girininkijas, kurių vardai pateikti tekstiniame faile Girinik.dat. Urėdijoje medieną ruošia 5 brigados, kurių
brigadininkų vardai pateikti faile Brigados.dat. Faile Kietmet.dat pateikti kiekvienos brigados paruoštos medienos kiekiai
kietmetriais kiekvienoje girininkijoje. Parašyti programą, kuri iš tekstinių failų apskaičiuotų kiekvienos brigados paruoštą
medienos kiekį (sudedant vienos brigados parengtus medienos kiekius visose girininkijose). Gauta sumarinių paruoštos medienos
kiekių eilute papildyti failą Kietmet.dat.
program k2A;
uses crt;
var sum:array[1..5,1..4] of real;
ssum:array[1..4] of real;
i,j:integer;
f1,f2:text;
begin
ClrScr;
for i:=1 to 4 do {masyvo valymas}
ssum[i]:=0;
assign(f1,'sumos.ttt');
reset(f1);
for i:=1 to 4 do {masyvo skaitymas}
begin
for j:=1 to 4 do
read(f1,sum[i,j]);
readln(f1);
end;
for i:=1 to 4 do {sumavimas}
for j:=1 to 4 do Sumos.ttt
ssum[j]:=ssum[j]+sum[i,j]; 5678.9 6543.6 8768.5 6854.9
for j:=1 to 4 do {vidurkio suskaiciavimas, patalpinimas i stulpeli} 7658.4 4325.7 4684.8 5439.0
begin 5432.7 8976.5 6754.5 6585.5
sum[5,j]:=ssum[j]; 4987.6 6478.6 6543.2 5987.3
31
write (sum[5,j]:2:2,' ');
end;
assign(f2,'k2A.ttt'); {irasymas i faila}
rewrite(f2); K2A.ttt
for i:=1 to 5 do 5678.90 6543.60 8768.50 6854.90
begin
for j:=1 to 4 do 7658.40 4325.70 4684.80 5439.00
write(f2,sum[i,j]:2:2,' '); 5432.70 8976.50 6754.50 6585.50
writeLn(f2); 4987.60 6478.60 6543.20 5987.30
end; 23757.60 26324.40 26751.00 24866.70
close(f1);
close(f2);
ReadLn;
end.
2. Kauno urėdija turi 7 girininkijas, kurių vardai pateikti tekstiniame faile Girinik.dat. Urėdijoje medieną ruošia 5 brigados, kurių
brigadininkų vardai pateikti faile Brigados.dat. Faile Kietmet.dat pateikti kiekvienos brigados paruoštos medienos kiekiai
kietmetriais kiekvienoje girininkijoje. Parašykite programą, kuri iš tekstinių failų apskaičiuotų kiekvienoje girinikijoje paruoštą
medienos kiekį (sudedant visų brigadų parengtus medienos kiekius vienoje girininkijoje). Gautu sumarinių paruoštos medienos
kiekių stulpeliu papildykite failą Kietmet.dat.
program k2B;
uses crt;
var sum:array[1..4,1..5] of real;
ssum:array[1..4] of real;
i,j:integer;
f1,f2:text;
begin
ClrScr;
for i:=1 to 4 do {masyvo valymas}
ssum[i]:=0;
assign(f1,'sumos.ttt');
reset(f1);
for i:=1 to 4 do {masyvo skaitymas}
begin
for j:=1 to 4 do {skaitome tik 4 stulpelius, kadangi 5-ojo dar nera}
read(f1,sum[i,j]);
readln(f1); Sumos.ttt
end; 5678.9 6543.6 8768.5 6854.9
for i:=1 to 4 do {sumavimas} 7658.4 4325.7 4684.8 5439.0
for j:=1 to 4 do
ssum[i]:=ssum[i]+sum[i,j];
5432.7 8976.5 6754.5 6585.5
4987.6 6478.6 6543.2 5987.3
for i:=1 to 4 do {vidurkio suskaiciavimas, patalpinimas i stulpeli}
begin
sum[i,5]:=ssum[i];
writeLn (sum[i,5]:2:2,' '); K2b.ttt
end; 5678.90 6543.60 8768.50 6854.90 27845.90
assign(f2,'k2B.ttt'); {irasymas i faila} 7658.40 4325.70 4684.80 5439.00 22107.90
rewrite(f2);
for i:=1 to 4 do
5432.70 8976.50 6754.50 6585.50 27749.20
begin 4987.60 6478.60 6543.20 5987.30 23996.70
for j:=1 to 5 do
write(f2,sum[i,j]:2:2,' ');
writeLn(f2);
end;
close(f1);
close(f2);
ReadLn;
end.
3. Transporto kontora turi 8 automobilius, kurių markės pateiktos tekstiniame faile Auto.txt. Automobilius vairuoja 4 vairuotojai,
kurių vardai pateikti faile Vairuot.txt. Faile Km.txt pateikti kiekvieno vairuotojo nuvažiuoti atstumai kilometrais su kiekvienos
markės automobiliu. Parašyti programą, kuri iš tekstinių failų apskaičiuotų ir atspausdintų vairuotojo vardą, kuris nuvažiavo
didžiausią sumarinį atstumą su visų markių automobiliais. Perrašykite failą Vairuot.txt, vietoje daugiausiai nuvažiavusio
vairuotojo įrašydami savo vardą.

32
program k2C;
uses crt;
type paslaug=array [1..20] of string;
var sum:array[1..4,1..5] of real;
ssum:array[1..4] of real;
pasl:paslaug;
i,j,imax:integer;
max:real;
f1,f2,f3:text;
begin
ClrScr;
for i:=1 to 4 do {masyvo valymas}
ssum[i]:=0;
assign(f1,'sumos.ttt');
reset(f1);
assign (f3,'paslaug.txt');
reset(f3);
for i:=1 to 4 do {sumu masyvo skaitymas}
begin
for j:=1 to 4 do {skaitome tik 4 stulpelius, kadangi 5-ojo dar nera}
read(f1,sum[i,j]);
readln(f1);
end;
for i:=1 to 4 do {paslaugu masyvo skaitymas}
begin Sumos.ttt
ReadLn (f3,pasl[i]);
WriteLn (pasl[i]);
5678.9 6543.6 8768.5 6854.9
end; 7658.4 4325.7 4684.8 5439.0
WriteLn; 5432.7 8976.5 6754.5 6585.5
for i:=1 to 4 do {sumavimas} 4987.6 6478.6 6543.2 5987.3
for j:=1 to 4 do
ssum[i]:=ssum[i]+sum[i,j];
for i:=1 to 4 do {vidurkio suskaiciavimas, patalpinimas i stulpeli} Paslaug.txt
begin chirurgija
sum[i,5]:=ssum[i]; protezavimas
writeLn (sum[i,5]:2:2,' '); plombavimas
end; nuskausminimas
assign(f2,'k2C.ttt'); {irasymas i faila}
rewrite(f2);
for i:=1 to 4 do Paslaug.txt
begin 5678.90 6543.60 8768.50 6854.90 27845.90
for j:=1 to 5 do 7658.40 4325.70 4684.80 5439.00 22107.90
write(f2,sum[i,j]:2:2,' '); 5432.70 8976.50 6754.50 6585.50 27749.20
writeLn(f2); 4987.60 6478.60 6543.20 5987.30 23996.70
end;
{maksimalios sumos paieska}
max:=0;
for i:=1 to 4 do
if sum[i,5]>max
then
begin
max:=sum[i,5];
imax:=i;
end;
WriteLn ('Max reiksme yra ',max:6:2);
WriteLn ('Paslauga, kurioje uzdirbta daugiausia, yra ',pasl[imax],'.');
pasl[imax]:='dalia';
Writeln (pasl[imax]);
close (f1);
close (f2);
close (f3);
ReadLn;

33
end.
4. Stomatologinė klinika teikia 4 rūšių paslaugas, kurių pavadinimai pateikti tekstiniame faile Paslaugos.dat. Klinikoje dirba 4
stomatologai, kurių vardai pateikti faile Dantistai.txt. Faile Sumos.ttt pateikti kiekvieno dantisto uždirbti pinigai (patalpinti
stulpelyje), teikiant faile išvardintas paslaugas. Parašyti programą, kuri iš tekstinių failų apskaičiuotų ir atspausdintų kiekvienoje
paslaugoje uždirbtų pinigų vidurkį. Perrašykite failą Sumos.ttt, papildydami jį vidurkių stulpeliu, o naujas failas turi būti
pavadintas Jūsų vardu.
program k2f;
var sum:array[1..4,1..5]of real;
ssum:array[1..4] of real;
i,j:integer;
f1,f2:text;
begin
for i:=1 to 4 do {masyvo valymas}
ssum[i]:=0;
assign(f1,'sumos.ttt');
reset(f1);
for i:=1 to 4 do {masyvo skaitymas}
begin
for j:=1 to 4 do
read(f1,sum[i,j]);
readln(f1);
end;
for i:=1 to 4 do {sumavimas}
for j:=1 to 4 do
ssum[i]:=ssum[i]+sum[i,j];
for i:=1 to 4 do {vidurkio suskaiciavimas, patalpinimas i stulpeli}
begin
sum[i,5]:=ssum[i]/4;
Sumos.ttt
writeln(sum[i,5]:2:2); 5678.9 6543.6 8768.5 6854.9
end; 7658.4 4325.7 4684.8 5439.0
assign(f2,'kontras.ttt'); {irasymas i faila} 5432.7 8976.5 6754.5 6585.5
rewrite(f2); 4987.6 6478.6 6543.2 5987.3
for i:=1 to 4 do
begin
for j:=1 to 5 do
write(f2,sum[i,j]:2:2,' '); Kontras.ttt
writeln(f2); 5678.90 6543.60 8768.50 6854.90 6961.48
end; 7658.40 4325.70 4684.80 5439.00 5526.98
close(f1);
5432.70 8976.50 6754.50 6585.50 6937.30
close(f2);
ReadLn; 4987.60 6478.60 6543.20 5987.30 5999.18
end.

34
6. EGZAMINO UŽDUOTYS, A variantas
1. Parašyti programą funkcijos reikšmių lentelei apskaičiuoti ir atspausdinti, kai x kinta nuo –7 su žingsneliu
0,37 iki 0 ir su žingsneliu 0,21 iki +7:
0, kai x<-6, arba x>6 ir x=2 bei x=-2
Y= nežinomas kai x<-4, bet x>-6 arba x<4, bet x<6
7,5x2-1,3x kai x<0, bet x>-4 arba x>0, bet x<4

program dalia1; WriteLn ('-----------------------------------------');


uses crt; while x<0 do
var x,y:real; begin
begin y:=(7.5*sqr(x))-(1.3*x);
ClrScr; WriteLn ('Kai x=',x:5:2,', tai y=',y:5:2,'.');
y:=0; x:=-7; x:=x+0.37;
WriteLn ('-----------------------------------------'); end;
while x<-6 do
{nuo 0 zingsnelis keiciasi}
begin
x:=0;
y:=0;
WriteLn ('Kai x=',x:5:2,', tai y=',y:5:2,'.'); WriteLn ('-----------------------------------------');
x:=x+0.37; while x<1.99 do
end; begin
WriteLn ('-----------------------------------------'); y:=(7.5*sqr(x))-(1.3*x);
while x<-4 do WriteLn ('Kai x=',x:5:2,', tai y=',y:5:2,'.');
begin x:=x+0.21;
WriteLn ('Kai x=',x:5:2,', tai y reiksme nezinoma.'); end;
x:=x+0.37; if x=2 then WriteLn ('Kai x=',x:5:2,', tai y=',y:5:2,'.');
end;
WriteLn ('-----------------------------------------');
WriteLn ('-----------------------------------------'); while x<4 do
while x<-1.99 do begin
begin y:=(7.5*sqr(x))-(1.3*x);
y:=(7.5*sqr(x))-(1.3*x); WriteLn ('Kai x=',x:5:2,', tai y=',y:5:2,'.');
WriteLn ('Kai x=',x:5:2,', tai y=',y:5:2,'.'); x:=x+0.21;
x:=x+0.37; end;
end; ReadLn;
if x=-2 then WriteLn ('Kai x=',x:5:2,', tai y=',y:5:2,'.'); WriteLn ('-----------------------------------------');

35
while x<6 do x:=x+0.21;
begin end;
WriteLn ('Kai x=',x:5:2,', tai y reiksme nezinoma.');
WriteLn ('----------------------------------------');
x:=x+0.21;
end; ReadLn;
end.
WriteLn ('-----------------------------------------');
while x<7 do
begin
y:=0;
WriteLn ('Kai x=',x:5:2,', tai y=',y:5:2,'.');
2. Parašyti programą įvesto penkiaženklio skaičiaus transformacijai: antrą skaitmenį sukeičiant su ketvirtu.
Pvz:.28457 turėtų būti transformuotas taip 25487.
program dalia2;
uses crt;
var s1,s2,s3,s4,s5:longint; {tarpiniai skaiciai}
trans,prad:longint; {pradinis ir transformuotas skaiciai}
begin
ClrScr;
WriteLn ('Iveskite sveika penkiazenkli skaiciu:');
ReadLn (prad);
s1:= prad div 10000; {1-asis skaicius}
s2:= (prad mod 10000) div 1000; {2-asis skaicius}
s3:= (prad mod 1000) div 100; {3-asis skaicius}
s4:= (prad mod 100) div 10; {4-asis skaicius}
s5:= prad mod 10; {5-asis skaicius}
{Skaiciaus formavimas - antro skaiciaus keitimas su ketvirtu}
trans:=((s1*10000)+(s2*10)+(s3*100)+(s4*1000)+(s5*1));
WriteLn ('Transformuotas penkiazenklis skaicius: ',trans,'.');
ReadLn;
end.
3. Duoti failai Prekes.dat, kuriame pateikiami parduotuvėje esančių prekių pavadinimai jų kiekiai, ir Kainos.txt., kuriame pateikiama
kiekvienos prekės kaina. Parašyti programą, kuri suskaičiuotų, už kokią sumą parduotuvėje yra kiekvienos prekės, sudaugindama
kiekvienos prekės kiekį ir kainą. Naujai gautus duomenis įrašyti į failą, pavadintą pirmom 7 jūsų pavardės raidėm ir skaičiumi 3. Failo
pradžioje turi būti padarytas įrašas, susidedantis iš tikslaus jūsų grupės šifro, pavardės, vardo ir gimimo datos.
program dalia3;
Bielsky3.txt Prekes.dat
uses crt; VI32, BIELSKYTE DALIA, 1983 m. liepos 30 d. Alus 300
type preke=array[1..21] of string [10]; {prekiu masyve} Parduotuveje yra prekiu uz tokias pinigu sumas: Arbata 1277
kiekis=array[1..21] of longint; {prekiu masyve} Alus 687.00 Brendis 244
Arbata 830.05 Cola 1276
kaina=array[1..21] of real; {kainu masyve} Brendis 7066.24 Degtine 1198
var prek:preke; Cola 2130.92 Gira 1733
kiek:kiekis; Degtine 15154.70
Gira 745.19
Grogas 365
kain:kaina; Grogas 1737.40 Kava 2183
i:integer; Kava 3361.82 Kokteilis 234
Kokteilis 716.04 Konjakas 1095
f1,f2,f3:text; Konjakas 85037.70 Ledai 134
m:real; Ledai 265.32 Pepsi 1086
Pepsi 2291.46
begin Romas 12394.52
Romas 326
ClrScr; Sake 14034.60
Sake 690
Samane 7526.52 Samane 404
Assign (f1,'Prekes.dat'); Sampanas 338912.60 Sampanas 1690
Reset (f1); Sidras 4744.22 Sidras 1846
Sultys 762.06 Sultys 977
Assign (f2,'Kainos.txt'); Tekila 22308.78 Tekila 773
Reset (f2); Vanduo 338.72 Vanduo 2117
Vynas 7665.84
Assign (f3,'Bielsky3.txt'); Vynas 567
Rewrite (f3);
{failu skaitymas} end;
for i:=1 to 21 do {spausdinimas}
ReadLn (f2,kain[i]); for i:=1 to 21 do
for i:=1 to 21 do WriteLn (kain[i]:5:2);
begin for i:=1 to 21 do
Read (f1,prek[i]); begin
Read (f1,kiek[i]); Write (prek[i]);
ReadLn (f1);
36
Write (kiek[i]);
WriteLn;
end;
ReadLn;
{Irasas naujai sukurtame Kainos.txt
faile} 2.29
WriteLn (f3,'VI32, 0.65
28.96
BIELSKYTE DALIA, 1983 1.67
m. liepos 30 d.'); 12.65
WriteLn (f3); 0.43
4.76
{Skaiciavimas} 1.54
WriteLn ('Parduotuveje yra 3.06
prekiu uz tokias pinigu 77.66
1.98
sumas:');
2.11
WriteLn (f3,'Parduotuveje 38.02
yra prekiu uz tokias pinigu 20.34
sumas:'); 18.63
200.54
m:=0; 2.57
for i:=1 to 21 do 0.78
begin 28.86
m:=((kiek[i])*(kain[i])); 0.16
13.52
WriteLn (prek[i],'
',m:7:2);
WriteLn (f3,prek[i],'
',m:7:2);
end;
Close (f1);
Close (f2);
Close (f3);
ReadLn;
end.

37
4. Duotas failas Masyvas.dat, kuriame duoti vaistų pavadinimai ir kiekvieno jų kiekiai. Parašyto programą, kuri
atspausdintų pradinius duomenis ekrane, surūšiuotų vaistus pagal jų kiekį mažėjimo tvarka ir naujus duomenis
atspausdintų ekrane bei faile, pavadintame 7 pirmom jūsų pavardės raidėm ir skaičiumi 4. Failo paskutiniu įrašu turi
būti jūsų gimimo data, vardas, pavardė ir grupės šifras.
Masyvas.dat
program dalia4; Validolis 324.65
uses crt; Valerijonas 123.45
type vaistas=array[1..35] of string [14]; Nizatidinas 385.42
kiekis=array[1..35] of real; Nikotinas 465.65
var vaist:vaistas; Menotropinas 521.27
kiek:kiekis; Lovastafinas 400.27
f1,f2:text; Leustatinas 456.71
i,j,a:integer; Korvalol 678.95
tmp1:string [14]; Kalcitoninas 447.75
tmp2:real; Insulinas 416.47
begin Gentamicinas 441.49
ClrScr; Gemcitabinas 295.28
Assign (f1,'Masyvas.dat'); Flucinaras 476.87
Reset (f1); Etacizinas 147.18
Assign (f2,'Bielsky4.txt'); Drotaverinas 425.99
Rewrite (f2); Ditaminas 394.71
{failu skaitymas} Penicilinas 876.54
Digoksinas 261.75
for i:=1 to 35 do Coldrex 413.83
begin Coldaktas 304.43
Read (f1,vaist[i]); Clozapinas 451.56
Read (f1,kiek[i]); Cimetidinas 450.48
Chondrosan 528.32
ReadLn (f1); Biseptolis 516.67
end; Benzokainas 584.64
{spausdinimas ekrane} Baklafenas 422.85
for i:=1 to 35 do Azelastinas 584.03
Atropinas 467.16
begin Asparkamas 518.23
Write (vaist[i]); Anastrazolas 341.25
Write (kiek[i]:5:2); Ampicilinas 276.42
WriteLn; Amoksiklavas 188.75
Amoksicilinas 795.77
end; Adrenalinas 389.09
ReadLn; Actoveginas 298.73
{rusiavimas}
WriteLn ('-------------SURUSIUOTAS MASYVAS---------------'); Bielsky4.txt
WriteLn; -------------SURUSIUOTAS MASYVAS---------------

WriteLn (f2,'-------------SURUSIUOTAS MASYVAS---------------'); Penicilinas 876.54


WriteLn (f2); Amoksicilinas 795.77
Korvalol 678.95
for a:=1 to 35 do Benzokainas 584.64
for i:=1 to 34 do Azelastinas 584.03
if kiek[i]<kiek[i+1] Chondrosan 528.32
then Menotropinas 521.27
Asparkamas 518.23
begin Biseptolis 516.67
tmp1:=vaist[i]; Flucinaras 476.87
vaist[i]:=vaist[i+1]; Atropinas 467.16
vaist[i+1]:=tmp1; Nikotinas 465.65
Leustatinas 456.71
tmp2:=kiek[i]; Clozapinas 451.56
kiek[i]:=kiek[i+1]; Cimetidinas 450.48
kiek[i+1]:=tmp2; Kalcitoninas 447.75
Gentamicinas 441.49
end;
Drotaverinas 425.99
for i:=1 to 35 do Baklafenas 422.85
begin Insulinas 416.47
Coldrex 413.83
Write (vaist[i]); Lovastafinas 400.27
Write (kiek[i]:5:2); Ditaminas 394.71
WriteLn; Adrenalinas 389.09
Write (f2,vaist[i]); Nizatidinas 385.42
Anastrazolas 341.25
Write (f2,kiek[i]:5:2); Validolis 324.65
WriteLn (f2); Coldaktas 304.43
end; Actoveginas 298.73
{Irasas naujai sukurtame faile} Gemcitabinas 295.28
Ampicilinas 276.42
WriteLn (f2,'--------------------------------------------'); Digoksinas 261.75
WriteLn (f2,'1983 m. liepos 30 d.; DALIA BIELSKYTE, VI 32'); Amoksiklavas 188.75
Close (f1); Etacizinas 147.18
Valerijonas 123.45
Close (f2); --------------------------------------------
ReadLn; 1983 m. liepos 30 d.; DALIA BIELSKYTE, VI 32
end.

You might also like