Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
23
Добавлен:
02.01.2020
Размер:
164.35 Кб
Скачать

X,y: real;

end;

PRec = ^Rec;//ссылочный тип указателей на записи

T = array[1..n] of PRec;//массив указателей на записи

PT = ^T;//ссылочный тип указателей на массивы типа T

procedure input(var x:pt);

var i:integer; p:real; u:prec;

begin

new(x);

for i:=low(T) to high(T) do

begin

new(u);

write('Vvedite 4iclo ',i,' po X ');

readln(p);

u^.x:=p;

write('Vvedite 4iclo ',i,' po Y ');

readln(p);

u^.y:=p;

x^[i]:=u;

end;

end;

function MinArr(x:pt):real;

var i:integer; u:prec;

begin

for i:=low(T) to high(T) do

if (i mod 2=0) then

begin u:=x^[i]; result:=result+u^.x; end;

end;

procedure output(x:pt);

begin

writeln;

writeln('Cymma po X ',MinArr(x):0:2);

end;

var

p:PT;

begin

input(p);

output(p);

dispose(p);

readln;

end.

Таблица 2.3. Тестовый набор.

Тестовый набор

Номер теста

Исходные данные

Ожидаемый результат

1

X=1,Y=3

X=2,Y=4

X=3,Y=5

X=4,Y=6

X=5,Y=7

6.00

2

X=1,Y=2

X=3,Y=4

X=5,Y=6

X=7,Y=8

X=9,Y=0

10.00

Текст программы:

program Zada4a24;

{$APPTYPE CONSOLE}

uses

SysUtils;

const

n = 5; //количество переменных в массиве

type

Rec = record //запись с двумя полями

X,y: real;

end;

PRec = ^Rec;//ссылочный тип указателей на записи

T = array[1..n] of PRec;//массив указателей на записи

PT = ^T;//ссылочный тип указателей на массивы типа T

procedure input(var x:pt);

var i:integer; p:real; u:prec;

begin

new(x);

for i:=low(T) to high(T) do

begin

new(u);

write('Vvedite 4iclo ',i,' po X ');

readln(p);

u^.x:=p;

write('Vvedite 4iclo ',i,' po Y ');

readln(p);

u^.y:=p;

x^[i]:=u;

end;

end;

function MinArr(x:pt):real;

var i:integer;

begin

result:=1;

for i:=low(T) to high(T) do

if (i mod 2<>0) then

begin u:=x^[i]; result:=result*u^.y end;

end;

procedure output(x:pt);

begin

writeln;

writeln('Proizvedenie po y ',MinArr(x):0:2);

end;

var

p:PT;

begin

input(p);

output(p);

dispose(p);

readln;

end.

Таблица 2.4. Тестовый набор.

Тестовый набор

Номер теста

Исходные данные

Ожидаемый результат

1

X=1,Y=7

X=8,Y=2

X=3,Y=9

X=4,Y=6

X=5,Y=0

0.00

2

X=5,Y=5

X=5,Y=5

X=5,Y=5

X=5,Y=5

X=5,Y=5

125.00

  1. В динамическом одномерном массиве (типа T) множеств (типа M)

const n = 10;

type

Elmnts = 0..9;

M = set of Elmnts;//множество

PT = ^T;

T = array[0..9] of PtrM;//массив множеств

отыскать и вывести:

  • множество с минимальной мощностью, среди компонентов с чётными значениями индекса;

  • множество с максимальной мощностью, среди компонентов с нечётными значениями индекса;

  • множества, содержащие заданное значение, среди компонентов с нечётными значениями индекса;

Текст программы:

3.1.

program Zada4a31;

{$APPTYPE CONSOLE}

uses

SysUtils;

const n = 10;

type

Elmnts = 0..9;

M = set of Elmnts;//множество

PT = ^T;

T = array[0..9] of M;//массив множеств

procedure input(var z:t);

var i,u,y:integer; x:m;

begin

writeln('Elementi vvedytcya clychainim obrazom');

for i:=low(elmnts) to high(elmnts) do

begin write('Ctroka ',i,'=');

for u:=0 to n-1 do

begin

y:=Random(10); write(y);

include(x,y);

end; writeln;

z[i]:=x;

x:=[];

end;

end;

function FindMinPower(z:t):integer;

var i,u,k,min:integer;

begin

result:=low(elmnts); min:=0; k:=0;

for i:=0 to 9 do

while z[i]<>[] do

begin

for u:=0 to 9 do

if u in z[i] then

begin

exclude(z[i],u);

k:=k+1;

end;

writeln('Moshost ctroki ',i,' ravna ',k);

if ((min>k) or (min=0)) and (not odd(i)) then begin result:=i; min:=k; end;

k:=0;

end;

write('Naimemshaya moshost v ');

end;

procedure output(z:t);

begin

writeln(FindMinPower(z),' ctroke');

end;

var z1:t;

begin

randomize;

input(z1);

output(z1);

readln;

end.

Тестовый набор

Номер теста

Исходные данные

Ожидаемый результат

1

8320999605

95637330449

6113145069

8945078533

1002844112

4

2

5421168179

4086250371

7480479102

6721772939

6554807832

4

3.2.

program Zada4a32;

{$APPTYPE CONSOLE}

uses

SysUtils;

const n = 10;

type

Elmnts = 0..9;

M = set of Elmnts;//множество

PT = ^T;

T = array[0..9] of M;//массив множеств

procedure input(var z:t);

var i,u,y:integer; x:m;

begin

writeln('Elementi vvedytcya clychainim obrazom');

for i:=low(elmnts) to high(elmnts) do

begin write('Ctroka ',i,'=');

for u:=0 to n-1 do

begin

y:=Random(10); write(y);

include(x,y);

end; writeln;

z[i]:=x;

x:=[];

end;

end;

function FindMaxPower(z:t):integer;

var i,u,k,max:integer;

begin

result:=low(elmnts); max:=0; k:=0;

for i:=0 to 9 do

while z[i]<>[] do

begin

for u:=0 to 9 do

if u in z[i] then

begin

exclude(z[i],u);

k:=k+1;

end;

writeln('Moshost ctroki ',i,' ravna ',k);

if ((max<k) or (max=0)) and (odd(i)) then begin result:=i; max:=k; end;

k:=0;

end;

write('Naibolhaya moshost v ');

end;

procedure output(z:t);

begin

writeln(FindMaxPower(z),' ctroke');

end;

var z1:t;

begin

randomize;

input(z1);

output(z1);

readln;

end.

Тестовый набор

Номер теста

Исходные данные

Ожидаемый результат

1

8320999605

95637330449

6113145069

8945078533

1002844112

1

2

5421168179

4086250371

7480479102

6721772939

6554807832

3

3.3.

program Zada4a32;

{$APPTYPE CONSOLE}

uses

SysUtils;

const n = 10;

type

Elmnts = 0..9;

M = set of Elmnts;//множество

PT = ^T;

T = array[0..9] of M;//массив множеств

procedure input(var z:t);

var i,u,y:integer; x:m;

begin

writeln('Elementi vvedytcya clychainim obrazom');

for i:=low(elmnts) to high(elmnts) do

begin write('Ctroka ',i,'=');

for u:=0 to n-1 do

begin

y:=Random(10); write(y);

include(x,y);

end; writeln;

z[i]:=x;

x:=[];

end;

end;

function FindOdin(z:t):string;

var i,u,k,max:integer;

begin

result:='';

for i:=0 to 9 do

while z[i]<>[] do

begin

for u:=0 to 9 do

if u in z[i] then

begin

exclude(z[i],u);

if i=u then result:=result+','+inttostr(i);

end;

end;

delete(result,1,1);

write('Ctroki c odinakovimi znaceniyami ');

end;

procedure output(z:t);

begin

writeln(FindOdin(z));

end;

var z1:t;

begin

randomize;

input(z1);

output(z1);

readln;

end.

Тестовый набор

Номер теста

Исходные данные

Ожидаемый результат

1

8320999605

95637330449

6113145069

8945078533

1002844112

0,3,4

2

5421168179

4086250371

7480479102

6721772939

6554807832

1,2,3

Вариант 4

4.1.

program Zada4a41;

{$APPTYPE CONSOLE}

uses

SysUtils;

const n = 10;

type

Elmnts = 0..9;

M = set of Elmnts;//множество

PT = ^T;

PrtM=^m;

T = array[0..9] of PrtM;//массив множеств

procedure input(var z:pt);

var i,u,y:integer; x:Prtm; k:integer;

begin

writeln('Elementi vvedytcya clychainim obrazom');

for i:=low(elmnts) to high(elmnts) do

begin write('Ctroka ',i,'=');

for u:=0 to n-1 do

begin

y:=Random(10); write(y);

include(x^,y);

end; writeln;

z[i]:=x^;

x^:=[];

end;

end;

function FindMinPower(z:pt):integer;

var i,u,k,min:integer; p:prtm;

begin

result:=low(elmnts); min:=0; k:=0;

for i:=0 to 9 do begin

p:=z^[i];

while p^<>[] do

begin

for u:=0 to 9 do

if u in p^ then

begin

exclude(p^,u);

k:=k+1;

end;

writeln('Moshost ctroki ',i,' ravna ',k);

if ((min>k) or (min=0)) and (not odd(i)) then begin result:=i; min:=k; end;

k:=0;

end;

write('Naimemshaya moshost v ');

end;

end;

procedure output(z:pt);

begin

writeln(FindMinPower(z),' ctroke');

end;

var z1:pt; z:t;

begin

randomize;

input(z1);

output(z1);

readln;

end.

Тестовый набор

Номер теста

Исходные данные

Ожидаемый результат

1

8320999605

95637330449

6113145069

8945078533

1002844112

4

2

5421168179

4086250371

7480479102

6721772939

6554807832

4

4.2.

program Zada4a42;

{$APPTYPE CONSOLE}

uses

SysUtils;

const n = 10;

type

Elmnts = 0..9;

M = set of Elmnts;//множество

PT = ^T;

PrtM=^m;

T = array[0..9] of PrtM;//массив множеств

procedure input(var z:pt);

var i,u,y:integer; x:prtm;

begin

writeln('Elementi vvedytcya clychainim obrazom');

for i:=low(elmnts) to high(elmnts) do

begin write('Ctroka ',i,'=');

for u:=0 to n-1 do

begin

y:=Random(10); write(y);

include(x^,y);

end; writeln;

z[i]:=x^;

x^:=[];

end;

end;

function FindMaxPower(z:pt):integer;

var i,u,k,max:integer; p:prtm;

begin

result:=low(elmnts); max:=0; k:=0;

for i:=0 to 9 do

p:=z^[i];

while p^<>[] do

begin

for u:=0 to 9 do

if u in p^ then

begin

exclude(p^,u);

k:=k+1;

end;

writeln('Moshost ctroki ',i,' ravna ',k);

if ((max<k) or (max=0)) and (odd(i)) then begin result:=i; max:=k; end;

k:=0;

end;

write('Naibolhaya moshost v ');

end;

procedure output(z:pt);

begin

writeln(FindMaxPower(z),' ctroke');

end;

var z1:pt;

begin

randomize;

input(z1);

output(z1);

readln;

end.

Тестовый набор

Номер теста

Исходные данные

Ожидаемый результат

1

8320999605

95637330449

6113145069

8945078533

1002844112

1

2

5421168179

4086250371

7480479102

6721772939

6554807832

3

4.3.

program Zada4a42;

{$APPTYPE CONSOLE}

uses

SysUtils;

const n = 10;

type

Elmnts = 0..9;

M = set of Elmnts;//множество

PT = ^T;

PrtM=^m;

T = array[0..9] of PrtM;//массив множеств

procedure input(var z:pt);

var i,u,y:integer; x:prtm;

begin

writeln('Elementi vvedytcya clychainim obrazom');

for i:=low(elmnts) to high(elmnts) do

begin write('Ctroka ',i,'=');

for u:=0 to n-1 do

begin

y:=Random(10); write(y);

include(x^,y);

end; writeln;

z[i]:=x^;

x^:=[];

end;

end;

function FindOdin(z:pt):string;

var i,u,k,max:integer; p:prtm;

begin

result:='';

for i:=0 to 9 do

p:=z^[i];

while p^<>[] do

begin

for u:=0 to 9 do

if u in p^ then

begin

exclude(p^,u);

if i=u then result:=result+','+inttostr(i);

end;

end;

delete(result,1,1);

write('Ctroki c odinakovimi znaceniyami ');

end;

procedure output(z:pt);

begin

writeln(FindOdin(z));

end;

var z1:pt;

begin

randomize;

input(z1);

output(z1);

readln;

end.

Тестовый набор

Номер теста

Исходные данные

Ожидаемый результат

1

8320999605

95637330449

6113145069

8945078533

1002844112

0,3,4

2

5421168179

4086250371

7480479102

6721772939

6554807832

1,2,3

Соседние файлы в папке Программирование и информатика