Семантика языков программирования

Автор: Пользователь скрыл имя, 01 Апреля 2013 в 13:51, контрольная работа

Описание работы

Семантика - правила и условия, определяющие соотношения между элементами языка и их смысловыми значениями, а также интерпретацию содержательного значения синтаксических конструкций языка. Объекты языка программирования не только размещаются в тексте в соответствии с некоторой иерархией, но и дополнительно связаны между собой посредством других понятий, образующих разнообразные ассоциации. Например, переменная, для которой синтаксис определяет допустимое местоположение только в описаниях и некоторых операторах, обладает определенным типом, может использоваться с ограниченным множеством операций, имеет адрес, размер и должна быть описана до того, как будет использоваться в программе.

Работа содержит 1 файл

Контрольная Семантика языков программирования.doc

— 131.50 Кб (Скачать)

F: TextFile;

begin

AssignFile(F, ExtractFilePath(Application.ExeName)+'GridTermin.txt'); { File selected in dialog }

Rewrite(F);

with GridTermin do

  begin

  writeln(F,RowCount);

  writeln(F,ColCount);

  for i:=1 to RowCount-1 do

  for j:=1 to ColCount-1 do

    begin

    writeln(F,GridTermin.Cells[j,i]);

    end;

  end;

CloseFile(F);

end;

 

procedure TForm1.Button3Click(Sender: TObject);

begin

  if OpenDialog1.Execute then

        Memo1.Lines.LoadFromFile(OpenDialog1.FileName);

end;

 

procedure TForm1.Button4Click(Sender: TObject);

begin

  if SaveDialog1.Execute then

        Memo2.Lines.SaveToFile(SaveDialog1.FileName);

end;

 

procedure TForm1.GetWorlds(s:integer);

var sttmp,stl,stword:string;

oldI,i,j:integer;

FLAG:BOOLEAN;

begin

ListBox1.Clear;

                 

begin

FLAG:=FALSE;

stTmp:=Memo1.Lines[s];

oldI:=1;

for i:=1 to length(sttmp) do

  begin

  for j:=0 to high(Liksem) do

  if sttmp[i]=Liksem[j][1] then

    begin

    if (sttmp[i]=':') and (i<>length(sttmp)) and (sttmp[i+1]='=') then

      begin

      stl:=sttmp[i]+sttmp[i+1];

      stword:=copy(sttmp,oldI,i-oldI);

      oldI:=i+2;

      end else

      begin

      stl:=sttmp[i];

      stword:=copy(sttmp,oldI,i-oldI);

      oldI:=i+1;

      end;

     IF (stword<>'') and (stword<>' ') THEN ListBox1.Items.Add(stword);

     IF (stl<>'') and (stl<>' ') THEN ListBox1.Items.Add(stl);

      FLAG:=TRUE;

      break;

     end;

  end;

            IF NOT FLAG THEN

      ListBox1.Items.Add(sttmp);

end;

end;

 

procedure TForm1.Button10Click(Sender: TObject);

var i,s:integer;

begin

VARFLAG:=FALSE;

Memo2.Clear;

LitGrid.CleanupInstance;

SimGrid.CleanupInstance;

for i:=0 to LitGrid.RowCount-1 do

LitGrid.Rows[i].Clear;

for i:=0 to SimGrid.RowCount-1 do

SimGrid.Rows[i].Clear;

LitGrid.RowCount:=2;

SimGrid.RowCount:=2;

for s:=0 to Memo1.Lines.Count-1 do

begin

GetWorlds(s);

Memo2.Lines.Add('');

for i:=0 to ListBox1.Count-1 do

Memo2.Lines[s]:=Memo2.Lines[s]+ReplaceLiksemToStr(ListBox1.Items[i]);

 

end;

end;

end.


Информация о работе Семантика языков программирования