Создать массив записей о косметике - Turbo Pascal

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

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

Помогите кто может...я понимаю как ввести часть там где Косметика(духи\шампунь), а вот как ввести все остальное... Создать массив записей, структура которого:

Решение задачи: «Создать массив записей о косметике»

textual
Листинг программы
type
    kosmetika=record
                    dyxu,shampyn:string[50];
                    end;
    tovar=record
                data:string[20];
                firma:string[50];
                cena:integer;
                Kol:integer;
                Kosm:kosmetika;
                end;
    mas=array  [1..20] of tovar;
var
    a:mas ;
    I,N,w:integer;
procedure vvod(var a:mas; var N:Integer);
begin
Writeln('Kol vvodimix firm = ');
Readln(n);
for i:=1 to n do
    begin
    write('data -> ');readln(a[i].data);
    write('Firma -> '); readln(a[i].Firma);
    Write('Cena -> ');readln(a[i].cena);
    write('Kol -> ');readln(a[i].kol);
    write('Dyxu -> ');readln(a[i].Kosm.Dyxu);
    write('Shampyn -> ');readln(a[i].Kosm.Shampyn);
    writeln;
    end;
Writeln('Vvod dannix zaverchen! To Enter ...');
readln;
end;
 
procedure pros(a:mas; n:integer);
begin
for I:=1 to n do
    begin
    writeln('Data -> ',a[i].data);
    writeln('Firma -> ',a[i].firma);
    writeln('Cena ->',a[i].cena);
    writeln('Kol -> ',a[i].kol);
    writeln('Dyxu -> ',a[i].Kosm.Dyxu);
    writeln('Shampyn ->',a[i].Kosm.Shampyn);
    writeln;
    writeln('To Ente ...');
    readln;
    end;
 
end;
 
procedure StoimTovar(a:mas; n:integer);
var sto:integer;
    s:string[50];
Begin
Write('Vvedite nazvanie firma -> '); readln(s);
for i:=1 to n do
    if a[i].firma=s then sto:=a[i].cena*a[i].kol;
writeln('Symmarnai stoimost tovarov -> ',sto);
writeln('To Enter ...');
readln;
end;
 
procedure PostKosmet(a:mas; n:integer);
var dy,sham:string[50];
begin
write('Vvedite nazvanie dyxov -> ');readln(dy);
write('Vvedite nazv shampyn -> ');readln(sham);
writeln('Spisok magazinov:');
for i:=1 to n do
    if (dy=a[i].kosm.dyxu) or (sham=a[i].kosm.Shampyn) then writeln(a[i].firma);
 
writeln('To Enter ...');
readln;
end;
 
begin
w:=10;
while w<>0 do
      begin
      writeln('1 Vvod');
      writeln('2 prosmotr');
      writeln('3 Stoimost tovara v veden firma');
      writeln('4 Vivod firm gde est iskom kosmetika');
      writeln('0 vixod');
      readln(w);
      case w of
           1:vvod(a,n);
           2:pros(a,n);
           3:StoimTovar(a,n);
           4:PostKosmet(a,n)
           end;
      end;
 
end.

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

  1. В процедуре vvod происходит чтение данных из файла и заполнение массива mas записями о косметике. Каждая запись содержит информацию о фирме, данных, цене, количестве и соответствующих полях записи о косметике.
  2. В процедуре pros происходит вывод данных из массива mas. Для каждой записи выводятся поля данных, фирмы, цены, количества и соответствующие поля записи о косметике.
  3. В процедуре StoimTovar происходит поиск в массиве mas записи, у которой название фирмы совпадает со введенным пользователем. Затем вычисляется стоимость этого товара и выводится на экран.
  4. В процедуре PostKosmet происходит вывод списка магазинов, которые продают определенную косметику. Для каждого магазина выводится его название, если он продает указанную косметику.
  5. В основной части программы происходит цикл, в котором пользователю предлагается выбрать действие (ввод, просмотр, стоимость товара, вывод списка магазинов) и вводится номер действия. В зависимости от номера действия выполняется соответствующая процедура.

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


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

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

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