13.22 type слово=packed array[1..9] of char;
номер телефона=100000...999999;
знакомый=record фамилия:слово;
номер:номертелефона;
end;
страница=array[1..20] of знакомый;
запясная книжка=array['A'..'Z'] of страница;
Считая, что на каждой странице записной книжки указаны фамилии, начинающиеся с одной и той же буквы - индекса этой страницы, описать логическую функцию:
а) номера (ЗК,НТ,Ф), определяющую, есть ли в записной книжке ЗК сведения о знакомом с фамилией Ф, и, если есть, присваивающую параметру Ф фамилию этого знакомого.
14.33 Описать логическю функцию Path (G,N,K,D), которая определяет, есть ли в ориентированном графе G путь из вершины N в вершину K, и, если есть, присваивает параметру D длину (число дуг) кратчайшего пути из N в K.
Использовать следующее представление графа:
type вершина = (b1,b2,b3,b4,b5,b6,b7,b8);
соседи = set of вершина;
граф = array[вершина] of соседи;
(G[x] - множество вершин, которые ведут дуги из вершины x)
Помогите пожалуйста...в субботу сдавать эту лабораторную, а сделать не получсется...жду ответов.
program _13_22;
type
slovo = array[1..9] of char;
nomer_telefona = 100000..999999;
znakomiy = record
fam: slovo;
nomer: nomer_telefona;
end;
stranica = array[1..20] of znakomiy;
zapisnay_knigka = array['A'..'Z'] of stranica;
var
zk: zapisnay_knigka;
nt: nomer_telefona;
fam: slovo;
i: byte;
s: string;
procedure dobavit(fam: string; nt: nomer_telefona; var zk: zapisnay_knigka);
var
i, j: byte;
begin
for i := 1 to 20 do
if zk[fam[1], i].fam[1] = #0 then
begin
for j := 1 to length(fam) do
zk[fam[1], i].fam[j] := fam[j];
zk[fam[1], i].nomer := nt;
break;
end;
end;
function familia(zk: zapisnay_knigka; fam: slovo; var nt: nomer_telefona): boolean;
var
i: byte;
j: char;
begin
for j := 'A' to 'Z' do
for i := 1 to 20 do
if zk[j, i].fam = fam then
begin
nt := zk[j, i].nomer;
familia := true;
break;
end;
end;
begin
dobavit('Alena', 111111, zk);
dobavit('Vika', 222222, zk);
dobavit('Genia', 333333, zk);
dobavit('Nadia', 444444, zk);
dobavit('Masha', 555555, zk);
s := 'Masha';
for i := 1 to length(s) do
fam[i] := s[i];
if familia(zk, fam, nt) = true then writeln('Masha ', nt)
else writeln('Takogo znakomogo net');
readln;
end.
procedure Search(a:tVertex);
begin
Inc(L);
P[L]:=a;
if a=x then begin
Found:=true;
if L<Lmin then begin
Lmin:=L;
Pmin:=P
end
end
else for v:=Low(tVertex) to High(tVertex) do begin
if v in Neighbors-S then Search(v)
У меня не получается...а завтра лабу сдавать. напиши пожалуйста всё решение второй задачи.
Не получается - выложи хотя бы то, что пытался сделать.
Пойми - все решать за тебя я не буду. Даже не надейся. Помочь - помогу.