2011 m. balandžio 13 d., trečiadienis

"Priešistorė", I dalis

Mokiaus Naujininkų vid. mokykloje, tai 10-oje klasėje turėjome mokytoją, kuris taipogi buvo ir mūsų mokyklos svetainės administratorius/tvarkytojas. Jis šiek tiek keistokas mokytojas (tačiau bendrai paėmus, normos ribose), kiek pamenu, nemėgdavo kartotis, tai reiškia, kad iš vieno karto tekdavo įsiminti ką daro toks ir toks užrašas programoje... o tai būdavo šiokia tokia kliūtis mokymuisi. Daugiausia ką išmokome, tai paišyti pyragus, t.y. pateikti į grafinę aplinką ir ten žaisti su pyragais. Nuo to laiko iki šiol daugiau neteko naudotis grafine aplinka, nes po mokyklos, pamiršau, kaip ją susiveikti.
O iki grafinės aplinkos mokėmės pagrindus: sąlygos (if), ciklų (for, while, repeat) sakiniai.
Iš mokyklos laikų savo programų neturiu.

Po mokyklos kartkartėmis parašydavau primityvių programėlių. Pavyzdžiui, prisimenant ciklus ir pnš., parašydavau faktorialo programėlę ar kažką tokio.

Žaisdamas travianą, vietoje ėjimo į specialų puslapį, kuris turėdavo suskaičiuoti karių judėjimo laiką iš įvestų koordinačių, parašiau "traveltime5" programą, nes puslapyje esanti skaičiuoklė kiek pamenu darydavo klaidas (nesu tikras), kuomet buvo įvedami kiek didesni skaičiai. Štai programos kodas (~2008 metai):

program traveltime5;
uses crt;
var a,b,c,d,e,f,g,h,i,j,k,l:integer;
m,n,o,p,r,s:real;

begin
clrscr;

readln(b);
readln(c);
readln(l);
readln(k);

r:=sqrt(c*c+b*b);
if r<=30 then
begin
n:=r/l;
m:=trunc(n);
o:=trunc((n-trunc(n))*60);
p:=(n*60-trunc(n*60))*60;
write(m:2:0,':',o:2:0,':',p:2:0);
end
else
begin
n:=30/l+(r-30)/(l*(1+0.1*k));
m:=trunc(n);
o:=trunc((n-trunc(n))*60);
p:=(n*60-trunc(n*60))*60;
write(m:2:0,':',o:2:0,':',p:2:0);
end;

readkey;
end.

[į programą įvedami: miestų koordinačių (x ir y) skirtumai, kario vieneto greitis, arenos lygis]

, ir analogiška programa "traveltime3", kuri išmeta lentelę atsakymų, tačiau nėra patogi, kuomet reikia skaičiuoti didelius atstumus:

program traveltime3;
uses crt;
var a,b,c,d,e,f,g,h,i,j,k,l:integer;
m,n,o,p,r,s:real;

begin
clrscr;
randomize;
l:=1;

repeat
readln(l);
clrscr;
c:=0;
repeat
c:=c+1;

b:=0;

repeat
b:=b+1;
n:=sqrt(c*c+b*b)/l;
m:=trunc(n);
o:=trunc((n-trunc(n))*60);
p:=(n*60-trunc(n*60))*60;
write(m:2:0,':',o:2:0,':',p:2:0);
until b=10;

until c=20;

until l<1;

readkey;
end.

[įvedamas kario greitis; įvedus 7 (vienas iš dažniausių travian armijų greičių), kaip screenshot'e matosi, mums parodo lentelę, kurioje atsirinkę reikiamą nenulinį stulpelį (1-8) ir nenulinę eilutę (1-20), susirandame karių judėjimo trukmę]



Faktorialo programėlė, parašyta ~2009 metais:

program faktorialas;
uses crt;
var a,b,c,d,e,f,g,h,i,j:longint;
a1:byte;
begin
clrscr;

read(a);
if a>12 then
begin
a:=12;
textcolor(green);
writeln('longint reiksme mazesne uz 13!, todel pateikiama');
writeln('eilute tik faktorialu iki 12!');
textcolor(white);
end;
b:=0;
c:=1;
while b
begin
b:=b+1;
c:=c*b;
write(' ',c);
end;

readkey;
end.



Komentarų nėra:

Rašyti komentarą