Найти багаж, средний вес одной вещи, в котором отличается не более чем на 0.3 кг - Pascal
Формулировка задачи:
Багаж пассажира характеризуется количеством вещей и общим весом вещей. Сведения о багаже каждого пассажира представляют собой запись с двумя полями: одно поле целого типа (количество вещей) и одно - действительное (вес в килограммах). Найти: багаж, средний вес одной вещи, в котором отличается не более чем на 0.3 кг от общего среднего веса одной вещи; число пассажиров, имеющих более двух вещей и число пассажиров, количество вещей которых превосходит среднее число вещей.
Вообще не понял как с этим справиться...
Решение задачи: «Найти багаж, средний вес одной вещи, в котором отличается не более чем на 0.3 кг»
textual
Листинг программы
uses Crt;
type
bagaz=record//тип запись багаж
kol:byte;//кол-во
ves:real;//вес
end;
var bg:array[1..100] of bagaz;/массив записей
n,i,k,k2,ks,p:integer;
srv,srk:real;
begin
clrscr;
writeln('Введите количество пассажиров n=');
readln(n);
writeln('Введите данные о багаже');
srv:=0;srk:=0;k:=0;
for i:=1 to n do
begin
writeln('Багаж ',i);
write(' Количество мест: ');readln(bg[i].kol);
k:=k+bg[i].kol;//считаем сколько всего вещей
write(' Вес: ');readln(bg[i].ves);
srk:=srk+bg[i].kol;//считаем количество для среднего
srv:=srv+bg[i].ves;//общий вес для среднего
end;
srk:=srk/n;//среднее кол-во
srv:=srv/k;//средний вес
writeln('Средний вес 1 вещи=',srv:0:2);
p:=0;
writeln('Багаж, где средний вес одной вещи отличается не более 0.3 от среднего веса');
k2:=0;ks:=0;
for i:=1 to n do
begin
if abs(bg[i].ves/bg[i].kol-srv)<=0.3then//если разница по модулю не больше 0,3
begin
p:=1;//есть
writeln(bg[i].kol,' ',bg[i].ves:0:2);//выводим
end;
if bg[i].kol>2 then k2:=k2+1;//кол-во вещей болше 2
if bg[i].kol>srk then ks:=ks+1;//кол-во больше среднего
end;
if p=0 then writeln('Такого багажа нет!');
writeln;
writeln('Число пассажиров, имеющих более 2х вещей=',k2);
writeln('Среднее число вещей=',srk:0:0);
writeln('Число пассажиров, имеющих вещей больше среднего=',ks);
readln
end.
Объяснение кода листинга программы
- Создается тип записи
bagaz, который представляет собой одну вещь багажа. - Создается переменная
bgтипаarray[1..100] of bagaz, которая представляет собой массив 100 вещей багажа. - Создаются переменные
n,i,k,k2,ks,pиsrvиsrk, которые представляют собой счетчики, переменные для хранения суммарного количества и веса багажа. - Считывается количество пассажиров и данные о багаже.
- Для каждого пассажира:
- Выводится количество мест и вес багажа.
- Суммируется количество багажа и обновляется сумма веса.
- Обновляется общее количество багажа.
- Вычисляется среднее количество багажа и средний вес одной вещи.
- Выводится информация о багаже, где средний вес одной вещи отличается не более 0.3 от среднего веса.
- Выводится количество пассажиров, имеющих более 2х вещей, среднее количество вещей и количество пассажиров, имеющих вещей больше среднего.