Листинг программ

Приложение Б

Листинг программ

Приложение А

Список литературы

1. Кловский Д.Д. Теория передачи сигналов.- М.,“Связь”,1973.

2. Ткаченко А.П. Бытовая радиоэлектронная техника. Энциклопедический справочник. – Мн.: БелЭн, 1995.

3. Шинаков Ю.С. Теория передачи сигналов в электросвязи. – М.: Радио и связь. 1989.

4. Галкин, В. А. Телекоммуникации и сети [Текст]: учеб. пособие для студентов вузов по специальности «Автоматизированные системы обработки информации и управления» направления подготовки дипломированных специалистов «Информатика и вычислительная техника» / Под ред. В. А. Галкина, Ю. А. Григорьева. - М.: МГТУ им. Н.Э. Баумана, 2006.

5. Вирт Н., Алгоритмы + Структуры данных = программы Паскаль/ Пер. с англ. C.П. Забродина, А.В. Шалашова. М.: Мир, 1985.

6. Зуев Е.А., Язык программирования Turbo Pascal 7.0, М.: Унитех, 1997.


(обязательное)

program vertical_histogram;

uses graph;

const

SIZE = 55;

type

ArrType= array[1..SIZE] of integer; var

arr: ArrType;

xx: integer;

procedure Draw(y1: Integer);

var gd, gm: integer;

x, y: Integer;

begin

gd:=detect;

initgraph(gd, gm, '');

SetColor(5);

y:=100;

for x:=2 to SIZE do

begin

Line(arr[x-1], y, arr[x], y+y1);

y:=y+y1;

end;

end;

begin

for xx:= 1 to SIZE do

begin

arr[xx]:= 420 div (xx+(xx*xx));

end;

Draw(15);

writeln;

ReadLn;

end.


(обязательное)

program ferz;

{uses

SysUtils;}

type desk = array [1..8,1..8] of 0..2;

{0-пусто; 1-поле которое бьёт ферзь; 2-ферзь}

var

cur_desk: desk;

now_f: byte;

count: byte;

variants: word;

fi,fj: array[1..5] of byte;

i,j: byte;

ferzes: desk;

procedure st(ki,kj:byte);

var i:integer;

begin

for i:=1 to 8 do

begin

if cur_desk[ki,i] <> 2 then

cur_desk[ki,i]:= 1;

if cur_desk[i,kj] <> 2 then

cur_desk[i,kj]:= 1;

end

end;

procedure diag(ki,kj:byte);

var i,j:integer;

begin

for i:=1 to 8 do

for j:=1 to 8 do

begin

if abs(i-ki)=abs(j-kj) then

if cur_desk[i,j]<>2 then cur_desk[i,j]:=1;

end

end;

function filled: boolean;

var

i, j: integer;

fl: boolean;

begin

fl:=true;

for i:=1 to 8 do

for j:=1 to 8 do

if cur_desk[i,j] = 0 then fl:= false;

filled:= fl

end;

procedure print_ar;

var

i,j:integer;

begin

for i:=1 to 8 do

begin

for j:=1 to 8 do

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

writeln

end;

readln

end;

procedure put(after_i,after_j:byte);

var

old_desk: desk;

i,j: integer;

tempk: byte;

begin

old_desk:= cur_desk;

for i:=after_i to 8 do

begin

if i=after_i then tempk:=after_j

else tempk:=1;

for j:=tempk to 8 do

begin

if cur_desk[i,j] = 0 then

begin

inc(now_f);

inc(count);

fi[now_f]:=i;

fj[now_f]:=j;

cur_desk[fi[now_f],fj[now_f]]:=2;

st(fi[now_f],fj[now_f]);

diag(fi[now_f],fj[now_f]);

if count <> 5 then

begin

put(i,j);

cur_desk:= old_desk;

fi[now_f]:=0;

fj[now_f]:=0;

dec(count);

dec(now_f)

end

else

begin

fillchar(ferzes,sizeof(ferzes),0);

ferzes[fi[1],fj[1]]:= 1;

ferzes[fi[2],fj[2]]:= 1;

ferzes[fi[3],fj[3]]:= 1;

ferzes[fi[4],fj[4]]:= 1;

ferzes[fi[5],fj[5]]:= 1;

fi[now_f]:=0;

fj[now_f]:=0;

dec(count);

dec(now_f);

if filled then

begin

inc(variants);

print_ar;

cur_desk:=old_desk;

end

else

begin

cur_desk:=old_desk;

end

end

end

end

end

end;

begin

for i:=1 to 8 do

for j:=1 to 8 do

begin

count:= 0;

now_f:= 0;

fillchar(cur_desk,sizeof(cur_desk),0);

fi[1]:=i;

fj[1]:=j;

cur_desk[fi[1],fj[1]]:=2;

st(fi[1],fj[1]);

diag(fi[1],fj[1]);

inc(count);

inc(now_f);

put(i,j);

end;

write('Число вариантов: ');

writeln(variants);

readln

end.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: