Записи "Информация о детали" - Free Pascal

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

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

Всем привет,очень прошу помочь с программой.Заранее спасибо! Информация о детали состоит из названия,веса экземпляра(в килограммах), количества экземпляров, имеющихся на складе (в штуках), статуса (заказана или нет). Написать программу для занесения в массив информации о N деталях. Найти общее количество экземпляров на складе; вывести названия и количество не заказанных деталей.

Решение задачи: «Записи "Информация о детали"»

textual
Листинг программы
  1. type
  2.     TElement = record
  3.         name: String;
  4.         weight: Single;
  5.         quantity: Word;
  6.         orderStatus: Boolean;
  7.     end;
  8.     TElementArray = Array Of TElement;
  9. procedure InputElements(var ar: TElementArray);
  10. var
  11.     i, n: LongWord;
  12.     c: Char;
  13. begin
  14.     repeat
  15.         Write('Input n(>0): '); ReadLn(n);
  16.     until (n > 0);
  17.     SetLength(ar, n);
  18.     for i := 0 to n - 1 do
  19.         with ar[i] do
  20.         begin
  21.             WriteLn;
  22.             Write('name: '); ReadLn(name);
  23.             Write('weight: '); ReadLn(weight);
  24.             Write('quantity: '); ReadLn(quantity);
  25.             repeat
  26.                 Write('Order (N/Y): '); ReadLn(c);
  27.             until (c in ['Y', 'y', 'N', 'n']);
  28.             orderStatus := c in ['Y', 'y'];
  29.         end;
  30. end;
  31. function GetTotalQuantity(const ar: TElementArray): LongWord;
  32. var
  33.     Result: LongWord = 0;
  34.     i: LongWord;
  35. begin
  36.     for i := 0 to Length(ar) - 1 do
  37.         Inc(Result, ar[i].quantity);
  38.     GetTotalQuantity := Result;
  39. end;
  40. procedure PrintUnordered(const ar: TElementArray);
  41. var
  42.     i, sum: LongWord;
  43. begin
  44.     sum := 0;
  45.     WriteLn; WriteLn('List of unordered elements:');
  46.     for i := 0 to Length(ar) - 1 do
  47.         with ar[i] do
  48.             if (Not orderStatus)
  49.             then
  50.             begin
  51.                 WriteLn(#9, name, #9, #9, quantity);
  52.                 Inc(sum, quantity);
  53.             end;
  54.     WriteLn(#9, 'Total:', #9, #9, sum);
  55.     WriteLn; WriteLn;
  56. end;
  57. var
  58.     a: TElementArray;
  59. begin
  60.     InputElements(a);
  61.     WriteLn('Total quantity: ', GetTotalQuantity(a));
  62.     PrintUnordered(a);
  63. end.

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

  1. Задача программы - ввод и обработка информации о деталях.
  2. Введенные данные сохраняются в массиве типа TElementArray.
  3. Тип TElement - это запись, содержащая поля name, weight, quantity, orderStatus.
  4. Процедура InputElements используется для ввода данных о деталях.
  5. Функция GetTotalQuantity вычисляет общее количество деталей.
  6. Процедура PrintUnordered выводит список деталей, которые не были заказаны.
  7. Переменная a используется как массив для хранения введенных данных.
  8. В конце программы выводится общее количество деталей и список неподтвержденных деталей.

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


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

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

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

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

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

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