Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- unit Unit2;
- interface
- type
- item = record //товар
- name: string[50]; //его имя
- country: string[50]; //его страна
- count: integer; //количество товара
- price: double; //его цена
- end;
- list = array of item; //массив товаров
- function countfullprice(a: list): double;
- procedure sortlist(var a: list);
- procedure createspecialarr(a: list; sname: string; var b: list);
- function countsitems(a: list; scountry: string): integer;
- implementation
- uses
- Math;
- function countfullprice(a: list): double; //функция подсчета цены всех товаров
- var
- i: integer;
- begin
- Result := 0;
- for i := 0 to High(a) do //перебирая весь массив записываем в специальную переменную Result цену каждого товара
- Result := Result + a[i].price;
- end;
- procedure sortlist(var a: list); //процедура сортировки массива товаров по алфавиту
- var
- i, j, c: integer;
- notswapped: boolean;
- temp: item;
- begin
- for i := 0 to High(a) do //проходя по всему массиву
- for j := 0 to High(a) - 1 do //второй цикл прохода
- begin
- c := 1; //начинаем с первого символа
- notswapped := true; //еще не поменяли местами
- // пока не пройдем по всем символам слова минимальной длины или не поменяем
- while ((c <= min(length(a[j].country), length(a[j + 1].country))) or (notswapped)) do
- begin
- if (a[j].country[c] > a[j + 1].country[c]) then // если буква первого слова стоит в алфавите дальше, чем буква второго
- begin
- temp := a[j];
- a[j] := a[j + 1];
- a[j + 1] := temp;// меняем их местами
- notswapped := false;
- end;
- c := c + 1; // переходим к следующей букве
- end;
- end;
- end;
- procedure createspecialarr(a: list; sname: string; var b: list); // создаем массив товаров с некоторым названием
- var
- i, c: integer;
- begin
- c := 0;
- for i := 0 to High(a) do / проходя по всему массиву
- begin
- if (a[i].name = sname) then // если такое имя есть
- begin
- c := c + 1; //увеличиваем количество совпадений
- SetLength(b, c); //пересоздаем массив
- b[c - 1] := a[i]; //записываем найденный элемент в массив
- end;
- end;
- end;
- function countsitems(a: list; scountry: string): integer; //считаем количество товаров из определенной страны
- var
- i: integer;
- begin
- Result := 0;
- for i := 0 to High(a) do // проходя по всему массиву
- if (a[i].country = scountry) then //если страны совпали
- Result := Result + a[i].count; // прибавляем к количеству товаров количество данного
- end;
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement