Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
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;var u:integer):real;

var i:integer; z:prec;

begin

result:=x^[low(t)].x*x^[low(t)].y; u:=low(t);

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

z:=x^[i];

if (result>z^.x*z^.y) and (i mod 2=0) then

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

end;

end; procedure output(x:pt);

var i:integer;

begin

writeln;

writeln('Minimalmoe proizvedenie ravno ',MinArr(x,i):0:2,' v pozicii ',i );

end;

var

p:PT;

begin

input(p);

output(p);

dispose(p);

readln;

end.

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

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

Номер теста

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

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

1

X=1,Y=1

X=2,Y=2

X=3,Y=3

X=5,Y=5

X=7,Y=7

4.00

2

X=9,Y=3

X=8,Y=4

X=6,Y=3

X=2,Y=2

X=1,Y=1

4.00

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

program Zada4a22;

{$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;var u:integer):real;

var i:integer; z:prec;

begin

result:=x^[low(t)].x*x^[low(t)].y; u:=low(t);

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

z:=x^[i];

if (result>z^.x*z^.y) and (i mod 2<>0) then

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

end;

end; procedure output(x:pt);

var i:integer;

begin

writeln;

writeln('Minimalmoe proizvedenie ravno ',MinArr(x,i):0:2,' v pozicii ',i );

end;

var

p:PT;

begin

input(p);

output(p);

dispose(p);

readln;

end.

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

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

Номер теста

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

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

1

X=1,Y=3

X=2,Y=4

X=3,Y=5

X=4,Y=6

X=5,Y=7

3.00

2

X=1,Y=2

X=3,Y=4

X=5,Y=6

X=7,Y=8

X=9,Y=0

0.00

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

program Zada4a23;

{$APPTYPE CONSOLE}

uses

SysUtils;

const

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

type

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

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