Определить число пассажиров, имеющих более двух вещей - Pascal ABC
Формулировка задачи:
Зада )
Багаж пассажира характеризуется количеством и общей массой вещей. Дан файл Bagazh, содержащий сведения о багаже нескольких пассажиров. Сведения о багаже каждого пассажира представляют собой запись с двумя полями: одно поле целого типа (количество вещей) и одно поле действительное (масса вещей в килограммах). Определить:
а) число пассажиров, имеющих более двух вещей, и число пассажиров,
количество вещей, которых превосходит среднее;
б) имеется ли пассажир, багаж которого состоит из одной вещи
массой менее Т [кг].
файл должен создаваться программой
Решение задачи: «Определить число пассажиров, имеющих более двух вещей»
textual
Листинг программы
type bagaz=record kol:integer; ves:real; end; var bg:bagaz; k,i,n,k2,ks:integer; f:file of bagaz; t,sr:real; begin //создание файла assign(f,'bagaz'); rewrite(f); write('Число пассажиров k'); readln(k); writeln('Введите данные о багаже, окончание ввода Esc:'); for i:=1 to k do begin writeln('Багаж ',i); write(' Количество мест: ');readln(bg.kol); write(' Вес: ');readln(bg.ves); write(f,bg); end; //определение среднего количества вещей reset(f); n:=0;sr:=0; while not eof(f) do begin read(f,bg); n:=n+1; sr:=sr+bg.kol; end; sr:=sr/n; writeln('Среднее число вещей=',sr:0:0); write('Введите вес 1 вещи для поиска t='); readln(t); //определение данных по условию reset(f); k2:=0; ks:=0; k:=0; while not eof(f) do begin read(f,bg); if bg.kol>2 then k2:=k2+1; if bg.kol>sr then ks:=ks+1; if (bg.kol=1)and(bg.ves<t)then k:=1; end; close(f); writeln('Число пассажиров, имеющих более 2х вещей=',k2); writeln('Число пассажиров, имеющих вещей больше среднего=',ks); if k=1 then write('Есть пассажир у которого 1 вещь массой менее ',t:0:1); end.
Объяснение кода листинга программы
- Создается тип данных
bagaz
, который представляет собой запись с тремя полями:kol
(количество вещей),ves
(вес вещей) иend
. - Создается переменная
bg
типаbagaz
, которая будет использоваться для записи данных о багаже. - Создаются переменные
k
,i
,n
,k2
иks
типаinteger
и инициализируются нулем. - Создается файл
f
типаfile of bagaz
. - Записывается сообщение
Число пассажиров k
в файлf
. - Пользователю предлагается ввести данные о багаже для k пассажиров. Для каждого багажа записывается количество мест и вес в файл
f
. - Сбрасываются счетчики
n
иsr
для подсчета среднего количества вещей и общего количества вещей соответственно. - Пока не достигнут конец файла
f
, считывается информация о багаже, увеличивается счетчикn
и обновляется среднее количество вещей. - После ввода всех данных, вычисляется среднее количество вещей как отношение суммы количества вещей к количеству вещей.
- Запрашивается вес одной вещи для поиска.
- Сбрасывается счетчик
k2
иks
для подсчета количества пассажиров с более чем двумя вещами и количеством вещей больше среднего соответственно. - Пока не достигнут конец файла
f
, считывается информация о багаже. Если количество вещей больше двух и вес вещей меньше заданного, то увеличивается счетчикk
. - Закрывается файл
f
. - Выводится количество пассажиров с более чем двумя вещами (
k2
). - Выводится количество пассажиров с вещами больше среднего (
ks
). - Если k=1, выводится сообщение о пассажире с одной вещью массой менее заданного.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д