Вывести записи, сумма полей которых отрицательная - Pascal
Формулировка задачи:
Создать массив с 10 записей, которые имеют три поля(номер, поле 1(целые числа), поле 2(действительные числа)).Значения полей заполнить случайными числами. Вывести записи, сума полей которых отрицательная.
Решение задачи: «Вывести записи, сумма полей которых отрицательная»
textual
Листинг программы
const n=10;
type zap=record
k:byte;
x:integer;
y:real;
end;
var a:array[1..n] of zap;
i,b:byte;
begin
randomize;
writeln('Массив записей');
for i:=1 to n do
with a[i] do
begin
k:=i;
x:=-10+random(21);
y:=-10+21*random;
writeln(k:2,x:4,y:6:2);
end;
writeln('Записи в которых сумма полей отрицательна');
b:=0;
for i:=1 to n do
if a[i].x+a[i].y<0 then //если нужно добавите a[i].k+
with a[i] do
begin
k:=1;
writeln(k:2,x:4,y:6:2,' суммма=',x+y:0:2);//и сюда k+x+y
end;
end.
Объяснение кода листинга программы
- Объявляется константа
nсо значением 10. - Определяется тип
zapдля записи, содержащей поляk(типаbyte),x(типаinteger), иy(типаreal). - Создается массив
aсостоящий изnэлементов типаzap. - Объявляются переменные
iиbкак типbyte. - Генерируется случайное значение для последующих элементов массива.
- Выводится заголовок
Массив записей. - Для каждого элемента массива выполняется следующее:
- Устанавливается значение поля
kравным текущему индексу. - Устанавливаются случайные значения для полей
xиy. - Выводятся значения полей
k,x, иy.
- Устанавливается значение поля
- Выводится заголовок
Записи в которых сумма полей отрицательна. - Производится инициализация переменной
bзначением 0. - Для каждого элемента массива выполняется следующее:
- Если сумма значений полей
xиyотрицательна, то выполняется следующее:- Устанавливается значение поля
kравным 1. - Выводятся значения полей
k,x,yи суммаx+y.
- Устанавливается значение поля
- Если сумма значений полей