User:CrowChaos

From Free Pascal wiki
Jump to navigationJump to search

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