Определить число пассажиров, имеющих более двух вещей - Pascal ABC

Узнай цену своей работы

Формулировка задачи:

Зада ) Багаж пассажира характеризуется количеством и общей массой вещей. Дан файл Bagazh, содержащий сведения о багаже нескольких пассажиров. Сведения о багаже каждого пассажира представляют собой запись с двумя полями: одно поле целого типа (количество вещей) и одно поле действительное (масса вещей в килограммах). Определить: а) число пассажиров, имеющих более двух вещей, и число пассажиров, количество вещей, которых превосходит среднее; б) имеется ли пассажир, багаж которого состоит из одной вещи массой менее Т [кг]. файл должен создаваться программой

Решение задачи: «Определить число пассажиров, имеющих более двух вещей»

textual
Листинг программы
  1. type
  2. bagaz=record
  3.      kol:integer;
  4.      ves:real;
  5.      end;
  6. var bg:bagaz;
  7.     k,i,n,k2,ks:integer;
  8.     f:file of bagaz;
  9.     t,sr:real;
  10. begin
  11. //создание файла
  12. assign(f,'bagaz');
  13. rewrite(f);
  14. write('Число пассажиров k');
  15. readln(k);
  16. writeln('Введите данные о багаже, окончание ввода Esc:');
  17. for i:=1 to k do
  18.  begin
  19.   writeln('Багаж ',i);
  20.   write(' Количество мест: ');readln(bg.kol);
  21.   write(' Вес: ');readln(bg.ves);
  22.   write(f,bg);
  23.  end;
  24. //определение среднего количества вещей
  25. reset(f);
  26. n:=0;sr:=0;
  27. while not eof(f) do
  28.  begin
  29.   read(f,bg);
  30.   n:=n+1;
  31.   sr:=sr+bg.kol;
  32.  end;
  33. sr:=sr/n;
  34. writeln('Среднее число вещей=',sr:0:0);
  35. write('Введите вес 1 вещи для поиска t=');
  36. readln(t);
  37. //определение данных по условию
  38. reset(f);
  39. k2:=0;
  40. ks:=0;
  41. k:=0;
  42. while not eof(f) do
  43.  begin
  44.   read(f,bg);
  45.   if bg.kol>2 then k2:=k2+1;
  46.   if bg.kol>sr then ks:=ks+1;
  47.   if (bg.kol=1)and(bg.ves<t)then k:=1;
  48.  end;
  49. close(f);
  50. writeln('Число пассажиров, имеющих более 2х вещей=',k2);
  51. writeln('Число пассажиров, имеющих вещей больше среднего=',ks);
  52. if k=1 then write('Есть пассажир у которого 1 вещь массой менее ',t:0:1);
  53. end.

Объяснение кода листинга программы

  1. Создается тип данных bagaz, который представляет собой запись с тремя полями: kol (количество вещей), ves (вес вещей) и end.
  2. Создается переменная bg типа bagaz, которая будет использоваться для записи данных о багаже.
  3. Создаются переменные k, i, n, k2 и ks типа integer и инициализируются нулем.
  4. Создается файл f типа file of bagaz.
  5. Записывается сообщение Число пассажиров k в файл f.
  6. Пользователю предлагается ввести данные о багаже для k пассажиров. Для каждого багажа записывается количество мест и вес в файл f.
  7. Сбрасываются счетчики n и sr для подсчета среднего количества вещей и общего количества вещей соответственно.
  8. Пока не достигнут конец файла f, считывается информация о багаже, увеличивается счетчик n и обновляется среднее количество вещей.
  9. После ввода всех данных, вычисляется среднее количество вещей как отношение суммы количества вещей к количеству вещей.
  10. Запрашивается вес одной вещи для поиска.
  11. Сбрасывается счетчик k2 и ks для подсчета количества пассажиров с более чем двумя вещами и количеством вещей больше среднего соответственно.
  12. Пока не достигнут конец файла f, считывается информация о багаже. Если количество вещей больше двух и вес вещей меньше заданного, то увеличивается счетчик k.
  13. Закрывается файл f.
  14. Выводится количество пассажиров с более чем двумя вещами (k2).
  15. Выводится количество пассажиров с вещами больше среднего (ks).
  16. Если k=1, выводится сообщение о пассажире с одной вещью массой менее заданного.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 3.6 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы