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

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

  1. В динамическом одномерном массиве (типа 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 //запись с двумя полями

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