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 |
-
В динамическом одномерном массиве (типа 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 |