Записи "Информация о детали" - 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.

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

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

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


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

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

13   голосов , оценка 3.769 из 5
Похожие ответы