Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
KursovaYa_DM.docx
Скачиваний:
14
Добавлен:
11.08.2019
Размер:
276.18 Кб
Скачать
  1. Завдання 4.

    1. Запис оператора Паскаля у нормальній формі Бекуса (на вибір).

Розглянемо, як приклад для нормальної форми Бекуса оператор Паскаля «WHILE»:

У – умова

ЗМ – змінна

Д - дія

СС – службовий знак

Б – буква

Ц – цифра

БЦ – БЦ - ланцюг

Ч – число

ОП – оператор

КС – ключове слово

<КС1><УМ><КС2><Д>

<КС1>::=While

< КС2>::=Do

<У>::= |<ЗМ> <СС> <ЗМ>|<ЗМ> <СС> <Ч>

<ЗМ>::= <Б> | <Б><БЦ>

<Б>::=A|a|B|b..Z|z

<БЦ>::=<Б><БЦ>| <Ц><БЦ>

<Ц>::=1|2|3|4|5|6|7|8|9|0

<ЗМ>::=<|>|=|>=|<=

<Ч>::=<Ц>|<Ц><Ч>

<Д>::=begin<ОП>end

<ОП>::=<ЗМ><ЗМ>|<ЗМ><Ч>

    1. Запис оператора Паскаля у формі кс-граматики (на вибір).

У – умова

ЗМ – змінна

Д - дія

СС – службовий знак

Б – буква

Ц – цифра

БЦ – БЦ - ланцюг

Ч – число

ОП – оператор

КС – ключове слово

<КС1><УМ><КС2><Д>

<КС1> While

< КС2> Do

<У> <ЗМ> <СС> <ЗМ>

<У> <_ЗМ> <СС> <Ч>

<ЗМ> <Б>

<ЗМ> <Б> <БЦ>

<Б> <А>

<Б> <а>

<Б> <B>

<Б> <Z>

<Б> <z>

<БЦ> <Б> <БЦ>

<БЦ> <Ц> <БЦ>

<Ц> <1>

<Ц> <2>

<Ц> <3>

<Ц> <4>

<Ц> <5>

<Ц> <6>

<Ц> <7>

<Ц> <8>

<Ц> <9>

<Ц> <0>

<СС> << >

<СС> < >>

<СС> < = >

<СС> <<= >

<СС> <>= >

<Ч> <Ц>

<Ч> <Ц> <Ч>

<Д> <begin> <ОП> <end>

<ОП> <ЗМ><ЗМ>

<ОП> <ЗМ><Ч>

  1. Завдання 5.

7 .1.Програма для перетворення матриці суміжності в матрицю інцидентності (Лістинг 1., Лістинг 2.):

program MatrixConverter;

uses CRT;

var

contiguity: array [1..4] of array [1..4] of byte;

incidence: array [1..4] of array [1..12] of byte;

lines: integer;

i, j, k: integer;

inputIsCorrect: boolean;

begin

clrscr;

writeln('This pogram converts contiguity matrix to incidence matrix.');

lines:=0;

writeln('Enter 4x4 contiguity matrix (1: vertex are connected, 0: otherwise):');

for i:=1 to 4 do

for j:=1 to 4 do

read(contiguity[i,j]);

inputIsCorrect:=true;

for i:=1 to 4 do

for j:=1 to 4 do

begin

if (contiguity[i,j]<>1) and (contiguity[i,j]<>0) then

inputIsCorrect:=false;

if contiguity[i,j]<>contiguity[j,i] then

inputIsCorrect:=false;

if contiguity[i,j]=1 then

lines:=lines+1;

end;

if inputIsCorrect=true then

begin

for i:=1 to 4 do

for k:=1 to 12 do

incidence[i,k]:=0;

k:=0;

for i:=1 to 4 do

for j:=1 to 4 do

if (contiguity[i,j]=1) and (i<>j) then

begin

k:=k+1;

incidence[i,k]:=1;

incidence[j,k]:=2;

end;

writeln('Incidence matrix (0:none, 1: out, 2:in):');

for i:=1 to 4 do

begin

for j:=1 to k do

write(incidence[i,j],' ');

writeln;

end;

end

else

writeln('It is not an contiguity matrix.');

write('Thanks for using. Press any key to exit');

repeat until

keypressed;

end.

Лістинг 1.

Р езультат програми:

Лістинг 2.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]