Pôvodný zdrojový kód
unit Unit1;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;
type TForm1 = class(TForm) Button1: TButton; Label1: TLabel; Edit1: TEdit; Button2: TButton; Button3: TButton; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button3Click(Sender: TObject); private { Private declarations } public { Public declarations } end;
var Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject); var n: integer; begin n:= StrToInt(Edit1.Text); if n mod 2 = 0 then Label1.Caption:= 'Parne cislo' else Label1.Caption:= 'Neparne cislo'
procedure TForm1.Button2Click(Sender: TObject); begin Label1.Caption:= 'Pocet cislic: ' + IntToStr(length(Edit1.Text)); end
procedure TForm1.Button3Click(Sender: TObject); var n, pocet: integer; begin n:= StrToInt(Edit1.Text); pocet:= 0; while n>0 do begin if (n mod 10) mod 10 = 1 then inc(pocet); n:= n div 10; end; Label1.Caption:= 'Pocet jednotiek v cisle: ' + IntToStr(pocet); end;
{
[Error] Unit1.pas(40): 'END' expected but 'PROCEDURE' found [Error] Unit1.pas(45): ';' expected but 'PROCEDURE' found
--------------------------------------------------------------------------------
Očakávala sa END ale našlo sa PROCEDURE Očakávala sa ; ale našlo sa PROCEDURE
PREČO?
Prvú chybu spôsobilo chýbajúce end.
V tomto prípade je potrebné chybu hľadať niekde v programe PRED miestom, kde bola objavená.
Druhú chybu spobila chýbajúca bodkočiarka.
RIEŠENIE
Zistíme, ku ktorému begin chýba end a doplníme ho. V našom prípade ide o end na konci procedúry Button1Click.
Dopíšeme bodkočiarku za end procedúry Button2Click
Upravený zdrojový kód
--------------------------------------------------------------------------------
procedure TForm1.Button1Click(Sender: TObject); var n: integer; begin n:= StrToInt(Edit1.Text); if n mod 2 = 0 then Label1.Caption:= 'Parne cislo' else Label1.Caption:= 'Neparne cislo' end;
procedure TForm1.Button2Click(Sender: TObject); begin Label1.Caption:= 'Pocet cislic: ' + IntToStr(length(Edit1.Text)); end;
procedure TForm1.Button3Click(Sender: TObject); var n, pocet: integer; begin n:= StrToInt(Edit1.Text); pocet:= 0; while n>0 do begin if (n mod 10) mod 10 = 1 then inc(pocet); n:= n div 10; end; Label1.Caption:= 'Pocet jednotiek v cisle: ' + IntToStr(pocet); end;
--------------------------------------------------------------------------------
}
end.
Stiahnuť vzorový príklad (zdrojové kódy v Delphi) |