Записи "Информация о детали" - 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 используется как массив для хранения введенных данных.
- В конце программы выводится общее количество деталей и список неподтвержденных деталей.