Написать программу для занесения в массив информации о N товарах - Pascal ABC

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

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

Сведения об экспорте/импорте товара состоят из наименования товара, страны, количества (в штуках), признака экспортный или импортный товар. Написать программу для занесения в массив информации о N товарах. Для заданного товара найти страны, в которые он экспортировался, и общий объем его экспорта. Найти наименование товара, импорт которого максимальный.

Решение задачи: «Написать программу для занесения в массив информации о N товарах»

textual
Листинг программы
Type Product = Class
   Private
     Title, Country: String; //Название и страна экспорта / импорта
     Count: Integer; //Количество товара
     Front: byte; //1 - экспорт, 2 - импорт
   Public
     Constructor Create(Title, Country:String; Count: integer; Front: byte); begin
       Self.Country:= Country;
       Self.Title:= Title;
       Self.Count:= Count;
       If Front in [1,2] then Self.Front:= Front
       else begin
         Writeln('1 - Экспорт / 2 - Импорт');
         Halt;
       end;
     end;
     //GETTERS
     Function getCountry: String; begin
       getCountry:= Country;
     end;
     Function getTitle: String; begin
       getTitle:= Title;
     end;
     Function getCount: Integer; begin
       getCount:= Count;
     end;
     Function getFront: byte; begin
       getFront:= Front;
     end;
end;
 
Var
   Products: array[1..10000] of Product;
   
   C1, C2: String; //Все переменные C - зарезервированные.
   C3,C5: Integer;
   C4: Byte;
   
   N,I,J: Integer;
begin
  Write('Введите количество товаров: '); Readln(N);
  Writeln;
  For i:=1 to N do begin
      Writeln('Товар №',i,':');
      Write('Название: '); Readln(C1);
      Write('Страна E/I: '); Readln(C2);
      Write('Количество товара: '); Readln(C3);
      Write('Экспорт / Импорт: '); Readln(C4);
      Products[i]:= Product.Create(C1,C2,C3,C4);
      Writeln;
  end;
  Write('Введите название товара: '); Readln(C1);
  C4:= 0; //C4 будем использовать как boolean
  C3:= 0; //C3 будем использовать как счетчик
  
  For i:=1 to N do if (Products[i].getTitle = C1) and (Products[i].getFront = 1) then begin
    If C4 = 0 then begin
    Writeln('Товар завозился в:');
    C4:=1;
    end;
    If C4 = 1 then begin
    Writeln(' * ',Products[i].getCountry);
    C3:= C3 + Products[i].getCount;
    If N = I then Writeln(#13 + 'Общее число товара:',C3);
    end;
  end;
  If C4 = 0 then Writeln('Данный товар отсутствует в базе данных экспорта');
  Writeln;
 
  C3:= -1; //Используем для максимума
  C1:= 'NULL'; //Название того самого товара
  C5:= 0;
  
  For i:=1 to N do begin
      For j:= i to N do if Products[j].getTitle = Products[i].getTitle then C5:= C5 + Products[j].getCount;
      If C5 > C3 then begin C3:= C5; C1:= Products[i].getTitle; end;
      C5:=0;
  end;
  Writeln('Максимальным импортом обладает товар ',C1, ' в общем количестве ',C3);
end.

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

  1. Тип данных Product это класс, который содержит приватные поля Title, Country (название и страна товара), Count (количество товара), Front (1 - экспорт, 2 - импорт).
  2. Создается экземпляр класса Product с помощью конструктора Create, который принимает в качестве параметров название, страну, количество и тип (экспорт или импорт) товара.
  3. Переменные C1, C2, C3, C4 используются для ввода данных о товарах.
  4. В цикле вводятся данные о каждом товаре (название, страна, количество, тип).
  5. Данные о товаре сохраняются в массиве Products.
  6. В следующем цикле программа ищет товар с введенным названием и проверяет, является ли он экспортом.
  7. Если товар найден и является экспортом, выводится информация о стране, в которую он экспортируется.
  8. В следующем цикле программа ищет товар с введенным названием и проверяет, является ли он импортом.
  9. Если товар найден и является импортом, выводится информация о количестве товара, завозимого в разные страны.
  10. Если товар не найден, выводится сообщение об отсутствии его в базе данных экспорта.
  11. В следующем цикле программа ищет товар с максимальным количеством импорта.
  12. Если найдено более высокое значение количества товара, обновляется значение максимального количества и название товара.
  13. Выводится информация о товаре с максимальным количеством импорта.

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

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