User:CrowChaos
1,ASCII procedure TForm1.Button2Click(Sender: TObject); var z: Char; //inicializácia znaku x,y: Integer; //inicializácia súradníc begin
x:=10; //zadanie súradníc y:=40; for z:='A' to 'Z' do //priradenie znaku od A-Z begin Image1.Canvas.TextOut(x,y,' + z + =' + IntToStr(Ord(z))); //výpis znaku, funkcia Ord vráti vnútorný kód znaku (ASCII kód),čiže číslo z intervalu <0..255> x:=x+100; if x+80 > Image1.Width then begin x:=10; Inc(y,19); end; end;
end; 2,List
procedure TForm1.Button2Click(Sender: TObject);
var
subor:TextFile; s: Char; slova:Integer;
begin
slova :=1; AssignFile(subor, 'peter.txt'); Reset(subor); while not Eof(subor) do begin Read(subor, s); if s=' ' then begin Inc(slova); end; end; CloseFile(subor); Memo1.Lines.Append('počet slov =' + IntToStr(slova));
end;
3,Pole znakových reťazcov
procedure TForm1.Button2Click(Sender: TObject); var subor: TextFile; s: String; r,zn, max_dl: Integer; begin
r:=0; zn:=0; max_dl:=0; AssignFile(subor, 'clanok.txt'); Reset(subor); while not Eof(subor) do //pokiaľ nie je koniec súboru begin Readln(subor, s); Inc(r); // zvýš počet riadkov o 1 Inc(zn, Length(s)); //zvýš celkový počet znakov v riadkoch if Length(s) > max_dl then max_dl:=Length(s); end; CloseFile(subor); Memo1.Lines.Append('pocet riadkov =' + IntToStr(r)); Memo1.Lines.Append('pocet znakov =' + IntToStr(zn)); Memo1.Lines.Append('najdlhší riadok =' + IntToStr(max_dl));
end;
4,Test
procedure TForm1.Button1Click(Sender: TObject);
var
subor:textfile;
slovo:integer;
z:char;
begin
slovo:=0;
assignfile (subor, 'test.txt');
reset (subor);
while not eof(subor) do
begin read (subor, z); if z=' ' then inc (slovo); end;
memo1.lines.append ('počet slov = ' + inttostr(slovo)); end;
EOF (End Of File) – pri čítaní z textového súboru oznámi, že sme už prečítali všetky riadky, čiže, že sme na konci súboru.
5,Dĺžka reťazca
procedure TForm1.Button10Click(Sender: TObject); var s:textfile; a:integer; r,k:string; begin assignfile (s,'slovnik.txt'); reset(s); a:=0; while not eof(s) do begin readln(s,r); if a<length(r) then
begin k:=r; a:=length(r); end;
end; image1.canvas.TextOut(10,10, 'Najdlhšie slovo je: ' + k); image1.canvas.textout (10, 30 , 'a jeho dĺžka je ' + inttostr(a)+ ' písmen.'); end; 6,Výpis hodnôt
procedure TForm1.Button7Click(Sender: TObject); var s:textfile; r:string; y:integer; begin assignfile(s,'teplota.txt'); reset(s); y:=10; while not eof(s) do
begin readln(s,r); if r[1]='-' then begin image1.canvas.textout(10,y, r); y:=y+20; end; end;
end;
7Textový súbor
procedure TForm1.Button6Click(Sender: TObject);
var
s:textfile;
r:string;
a,y:integer;
begin
assignfile (s,'meno.txt');
reset(s);
a:=0;
y:=30;
while not eof(s) do
begin readln(s,r); if r[length(r)]='a' then begin image1.canvas.textout (10,y, r); y:=y+20; a:=a+1; end; end;
closefile(s); image1.canvas.textout(10,10, 'počet ženských mien: '+ inttostr(a)); end; 8,Vyhľadávanie v súbore
procedure TForm1.Button2Click(Sender: TObject);
var
s:textfile;
i, max, min :integer;
begin
assignfile(s, 'vyska.txt');
reset(s);
max:= -maxint;
min:= maxint;
while not eof (s) do
begin
readln (s,i);
if i> max then max:=i; // za týmto stačí dať namiesto if else if i< min then min:=i;
end; if max= -maxint then memo1.lines.append ('Súbor je prázdny.') else begin memo1.Lines.Append ('Najnižší žiak má '+ inttostr(min) + ' cm.'); memo1.lines.append ('Najvyšší žiak má ' + inttostr(max) + ' cm.'); end; end;
9,Článok
procedure TForm1.Button4Click(Sender: TObject);
var
s,f:textfile;
z:char;
begin
assignfile(s, 'zuzka.txt');
reset(s);
assignfile(f, 'zuzka_opraveny.txt');
rewrite(f);
while not eof(s) do
begin read (s,z); if z= '*' then z:=' '; write (f, z); end;
closefile(s); closefile (f); end;
10,Malá násobilka
procedure TForm1.Button6Click(Sender: TObject);
var
x,y,i,a:integer;
begin
Image1.canvas.font.color:=clblack;
y:=30;
for a:=1 to 10 do
begin
x:=30;
for i:=1 to 10 do begin //Image1.canvas.Font.color:=random(256*256*256); image1.canvas.textout (x,y, inttostr(i*a)); x:=x+30; end;
y:=y+30; end; end;
11,Štvorce
procedure TForm1.Button1Click(Sender: TObject);
var
i,x,a,b:integer;
begin
x:=10;
a:=10;
b:=20;
for i:=1 to 10 do
begin
image1.canvas.rectangle (x,10, x+a,b);
x:=x+a;
a:=a+5;
b:=b+5;
end;
end;
12,Vnorený cyklus
procedure TForm1.Button1Click(Sender: TObject);
var
i,a,x,y:integer;
begin
y:=10;
for i:=1 to 10 do
begin;
//image1.canvas.Pen.Color:=random(255*255*255);
x:=10; for a:=1 to i do begin image1.canvas.Ellipse (x,y, x+10, y+10); x:=x+15; end;
y:=y+15;
end;
end;
13,Počet cifier
procedure TForm1.Button8Click(Sender: TObject); var a:integer; r:string; begin r:=edit1.text; a:=length(r); image1.canvas.textout(10,10, inttostr(a)); end;
14,Mocniny čísla
procedure TForm1.Button1Click(Sender: TObject);
var
i,a:integer;
r:string;
begin
a:=1;
r:=;
for i:=1 to 10 do
begin
r:=r +' '+ inttostr(a*a); a:=a+1;
end; image1.canvas.textout(10,10, r);
r:=; a:=1; for i:=1 to 10 do begin r:=r + ' ' + inttostr(a*a*a); a:=a+1; end; image1.Canvas.textout (10,25,r); end; 15,Prevrátené číslo
procedure TForm1.Button4Click(Sender: TObject);
var
i,a,b:integer;
begin
a:=strtoint(edit1.text);
b:=0;
for i:=1 to 4 do
begin
b:=b*10 + a mod 10;
a:=a div 10;
end;
image1.canvas.TextOut(10,10, inttostr(b));
end;
16,Delitele čísla
procedure TForm1.Button9Click(Sender: TObject);
var
a,i,y,b:integer;
begin
a:=strtoint(edit1.text);
y:=10;
for i:=1 to a do
begin
if a mod i = 0 then begin b:= a div i; image1.canvas.textout (10,y, inttostr(b)); y:=y+20; end;
end; end;
17,Prvočíslo a,i,b:Integer; begin a:StrtoInt(Edit1.text); b:0; for i := 1 to a do
begin
if a mod i=0 then b:= b+1; Image1.Canvas.textout(10,100, pocet delitelov +inttostr(b); if b =2 then Image1.Canvas.textout(10,140, intostr(a) +je prvočíslo);
18,Znaky Napíšte program, pomocou ktorého zistíte, ktorý znak sa v zadanej vete vyskytuje najviac krát. Ak je takýchto znakov s najväčším výskytom viac, vypíšte všetky. Vstupné údaje: zadaná veta Výstupné údaje: počet výskytov znakov
Kniha str. 104
19,Faktoriál
procedure TForm1.Button11Click(Sender: TObject);
var
a,i,b:integer;
begin
image1.Canvas.fillrect(image1.clientrect);
a:=strtoint(edit1.Text);
b:=1;
for i:=a downto 1 do
b:=b*i;
image1.canvas.textout(10,10, inttostr(b));
//integer má malý rozsah (13! a vyššie = zlý výsledok)
//project=>compiler options=> code=> overflow
end;
Rekurzia funkcia, kt. vo svojom tele volá samu seba volanie vždy podmienené (aby sa výpočet skončil) napr.: aj faktoriál: return X * faktoriál(X - 1)
20,Podmienený príkaz
procedure TForm1.Button2Click(Sender: TObject); var
x, y, a, b: integer;
begin
Randomize; Image1.Canvas.Brush.Color := clWhite; Image1.Canvas.FillRect(Image1.ClientRect); x := Random(Image1.Width); y := Random(Image1.Height); a := Random(100) + 30; b := Random(100) + 30; case Random(2) of 0: begin Image1.Canvas.Brush.Color := clRed; Image1.Canvas.Rectangle(x, y, x + a, y + b); end; 1: begin Image1.Canvas.Brush.Color := clBlue; Image1.Canvas.Ellipse(x, y, x + a, y + b); end; end;
end;
21,Palindrom
procedure TForm1.Button7Click(Sender: TObject); var r:string; a,i:integer; z:boolean; begin image1.canvas.font.color:=clblack; r:= edit1.text; a:=length (r); z:=true; for i:=1 to (a div 2) do
begin if r[i] <> r[a+1-i] then z:= false; end;
if z=true then image1.canvas.textout (10,10, 'Je polindrom.') else image1.canvas.textout (10,10, 'Nie je palindrom.'); end;
22,Prevod čísiel procedure TForm1.Button9Click(Sender: TObject); var i,a:integer; r:string; begin image1.canvas.font.color:=clblack; i:= strtoint (edit1.text); r:=; while i<>0 do begin a:=i mod 2; i:=i div 2; if a=0 then r:='0' + r else r:='1' + r; end; image1.canvas.TextOut (10,10, r); end;
23,Náhodné čísla
procedure TForm1.Button1Click(Sender: TObject);
var
a,i:integer; r:string;
begin image1.canvas.brush.color:=clwhite; image1.canvas.fillrect (image1.clientrect); //potrebné vymazať – inak viacciferné randomize; //inak začína tým istým r:=; for i:=1 to 5 do begin a:=random (100)+1; r:= r + ' ' + inttostr(a); end; image1.canvas.textout (10,10, r); end;
24,Reťazce
procedure TForm1.Button1Click(Sender: TObject); var veta, slovo: String; i,y: Integer; begin
veta:=Edit1.Text; slovo:=; y:=80; for i:=1 to Length(veta) do if veta[i] <> ' ' then slovo:=slovo + veta[i] else if slovo <> ' ' then begin Image1.Canvas.TextOut(30, y, slovo); slovo:=; Inc(y,25); end; Image1.Canvas.TextOut(30,y,slovo);
end;
25,Ciferný súčet
a,b,i:Integer; begin a:=StrToInt(edit1.text); b:=0; for i := 1 to 10 do
begin b:=b +a mod 10; a:=a div 10;
end;
Image1.Canvas.TextOut(20,50,' ciferný súcet'+IntToStr(a) +'je' +IntToStr(b));
end;
26,Reťazec
procedure TForm1.Button8Click(Sender: TObject); var x,i:integer; r:string; begin image1.canvas.font.color:=clblack; r:= edit1.text; x:=10; for i:=length(r) downto 1 do
begin //image1.canvas.font.color:=random(256*256*256); image1.canvas.textout (x,10,r[i]); x:=x+10; end;
end;
27,Grafy funkcií
procedure TForm1.Button2Click(Sender: TObject); var i: Integer; x, y: Real; begin
Image1.Canvas.Brush.Color:=clWhite; Image1.Canvas.FillRect(Image1.ClientRect); for i:=0 to Image1.Width do begin x:= i*pi/180; y:=150-50*Sin(x); if x=0 then Image1.Canvas.MoveTo(i,Round(y)) else Image1.Canvas.LineTo(i, Round(y)); end;
end;
procedure TForm1.Button3Click(Sender: TObject); var i: Integer; x, y: Real; begin
Image1.Canvas.Brush.Color:=clWhite; Image1.Canvas.FillRect(Image1.ClientRect); for i:=0 to Image1.Width do begin x:= i*pi/180; y:=150-50*Cos(x); if x=0 then Image1.Canvas.MoveTo(i,Round(y)) else Image1.Canvas.LineTo(i, Round(y)); end;
end;
ROUND – funkcia, ktorá slúži na prekonvertovanie reálneho čísla na integer, aby sme ju mohli použiť na vykreslenie funkcie v príkaze Moveto a Lineto.
28,Práca s myšou procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
if Shift = [ssLeft] then begin Image1.Canvas.Pen.Color:=Random(256*256*256); Image1.Canvas.Ellipse(x-5,y-5,x+5,y+5); end else if Shift = [ssRight] then Image1.Canvas.FillRect(Image1.ClientRect) //else
// begin
//Image1.Canvas.Pen.Color:=Random(256*256*256); // Image1.Canvas.MoveTo(x, y); //Image1.Canvas.LineTo(x, y-50);
// end; end; vetva za lomítkami v poznámkach je tá doplňujúca časť.
29,Pole znakových reťazcov