Записи "Информация о детали" - Free Pascal
Формулировка задачи:
Всем привет,очень прошу помочь с программой.Заранее спасибо!
Информация о детали состоит из названия,веса экземпляра(в килограммах), количества экземпляров, имеющихся на складе (в штуках), статуса (заказана или нет). Написать программу для занесения в массив информации о N деталях. Найти общее количество экземпляров на складе; вывести названия и количество не заказанных деталей.
Решение задачи: «Записи "Информация о детали"»
textual
Листинг программы
- type
- TElement = record
- name: String;
- weight: Single;
- quantity: Word;
- orderStatus: Boolean;
- end;
- TElementArray = Array Of TElement;
- procedure InputElements(var ar: TElementArray);
- var
- i, n: LongWord;
- c: Char;
- begin
- repeat
- Write('Input n(>0): '); ReadLn(n);
- until (n > 0);
- SetLength(ar, n);
- for i := 0 to n - 1 do
- with ar[i] do
- begin
- WriteLn;
- Write('name: '); ReadLn(name);
- Write('weight: '); ReadLn(weight);
- Write('quantity: '); ReadLn(quantity);
- repeat
- Write('Order (N/Y): '); ReadLn(c);
- until (c in ['Y', 'y', 'N', 'n']);
- orderStatus := c in ['Y', 'y'];
- end;
- end;
- function GetTotalQuantity(const ar: TElementArray): LongWord;
- var
- Result: LongWord = 0;
- i: LongWord;
- begin
- for i := 0 to Length(ar) - 1 do
- Inc(Result, ar[i].quantity);
- GetTotalQuantity := Result;
- end;
- procedure PrintUnordered(const ar: TElementArray);
- var
- i, sum: LongWord;
- begin
- sum := 0;
- WriteLn; WriteLn('List of unordered elements:');
- for i := 0 to Length(ar) - 1 do
- with ar[i] do
- if (Not orderStatus)
- then
- begin
- WriteLn(#9, name, #9, #9, quantity);
- Inc(sum, quantity);
- end;
- WriteLn(#9, 'Total:', #9, #9, sum);
- WriteLn; WriteLn;
- end;
- var
- a: TElementArray;
- begin
- InputElements(a);
- WriteLn('Total quantity: ', GetTotalQuantity(a));
- PrintUnordered(a);
- end.
Объяснение кода листинга программы
- Задача программы - ввод и обработка информации о деталях.
- Введенные данные сохраняются в массиве типа TElementArray.
- Тип TElement - это запись, содержащая поля name, weight, quantity, orderStatus.
- Процедура InputElements используется для ввода данных о деталях.
- Функция GetTotalQuantity вычисляет общее количество деталей.
- Процедура PrintUnordered выводит список деталей, которые не были заказаны.
- Переменная a используется как массив для хранения введенных данных.
- В конце программы выводится общее количество деталей и список неподтвержденных деталей.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д