X,y: real;
end;
PT = ^T;//ссылочный тип указателей на массивы типа T
T = array[1..n] of Rec;//тип динамического массива
procedure input(var x:pt);
var i:integer; p:real;
begin
x:=nil;
new(x);
for i:=low(T) to high(T) do
begin
write('Vvedite 4iclo ',i,' po X ');
readln(p);
x^[i].x:=p;
write('Vvedite 4iclo ',i,' po Y ');
readln(p);
x^[i].y:=p;
end;
end;
function MinArr(x:pt):real;
var i:integer;
begin
for i:=low(T) to high(T) do
if (i mod 2=0) then
begin result:=result+x^[i].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.
Таблица 1.3. Тестовый набор.
|
Тестовый набор |
|||||
Номер теста |
Исходные данные |
Ожидаемый результат |
||||
1 |
X=1,Y=1 |
X=2,Y=2 |
X=3,Y=3 |
X=5,Y=5 |
X=7,Y=7 |
7.00 |
2 |
X=5,Y=9 |
X=3,Y=7 |
X=2,Y=9 |
X=4,Y=5 |
X=3,Y=7 |
7.00 |
Текст программы:
program Zada4a14;
{$APPTYPE CONSOLE}
uses
SysUtils;
const
n = 5; //количество переменных в массиве
type
Rec = record //запись с двумя полями
X,y: real;
end;
PT = ^T;//ссылочный тип указателей на массивы типа T
T = array[1..n] of Rec;//тип динамического массива
procedure input(var x:pt);
var i:integer; p:real;
begin
x:=nil;
new(x);
for i:=low(T) to high(T) do
begin
write('Vvedite 4iclo ',i,' po X ');
readln(p);
x^[i].x:=p;
write('Vvedite 4iclo ',i,' po Y ');
readln(p);
x^[i].y:=p;
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 result:=result*x^[i].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.
Таблица 1.4. Тестовый набор.
|
Тестовый набор |
|||||
Номер теста |
Исходные данные |
Ожидаемый результат |
||||
1 |
X=1,Y=1 |
X=2,Y=2 |
X=3,Y=3 |
X=5,Y=5 |
X=7,Y=7 |
21.00 |
2 |
X=5,Y=9 |
X=3,Y=7 |
X=2,Y=9 |
X=4,Y=5 |
X=3,Y=7 |
567.00 |
-
В динамическом одномерном массиве (типа T) указателей на записи (типа Rec)
const
n = 10; //количество переменных в массиве
type
Rec = record //запись с двумя полями
X,y: real;
end;
PRec = ^Rec;//ссылочный тип указателей на записи
T = array[0..n-1] of PRec;//массив указателей на записи
PT = ^T;//ссылочный тип указателей на массивы типа T
отыскать и вывести:
-
запись с минимальным значением произведения полей x*y среди записей с чётными значениями индекса;
-
запись с минимальным значением произведения полей x*y среди записей с нечётными значениями индекса;
-
сумму полей x записей с чётными значениями индекса;
-
произведение полей y записей с нечётными значениями индекса;
Текст программы:
program Zada4a21;
{$APPTYPE CONSOLE}
uses
SysUtils;
const
n = 5; //количество переменных в массиве
type
Rec = record //запись с двумя полями