Написать программу для занесения в массив информации о 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.
Объяснение кода листинга программы
- Тип данных Product это класс, который содержит приватные поля Title, Country (название и страна товара), Count (количество товара), Front (1 - экспорт, 2 - импорт).
- Создается экземпляр класса Product с помощью конструктора Create, который принимает в качестве параметров название, страну, количество и тип (экспорт или импорт) товара.
- Переменные C1, C2, C3, C4 используются для ввода данных о товарах.
- В цикле вводятся данные о каждом товаре (название, страна, количество, тип).
- Данные о товаре сохраняются в массиве Products.
- В следующем цикле программа ищет товар с введенным названием и проверяет, является ли он экспортом.
- Если товар найден и является экспортом, выводится информация о стране, в которую он экспортируется.
- В следующем цикле программа ищет товар с введенным названием и проверяет, является ли он импортом.
- Если товар найден и является импортом, выводится информация о количестве товара, завозимого в разные страны.
- Если товар не найден, выводится сообщение об отсутствии его в базе данных экспорта.
- В следующем цикле программа ищет товар с максимальным количеством импорта.
- Если найдено более высокое значение количества товара, обновляется значение максимального количества и название товара.
- Выводится информация о товаре с максимальным количеством импорта.