Создать массив записей о косметике - 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.
Объяснение кода листинга программы
- В процедуре
vvodпроисходит чтение данных из файла и заполнение массиваmasзаписями о косметике. Каждая запись содержит информацию о фирме, данных, цене, количестве и соответствующих полях записи о косметике. - В процедуре
prosпроисходит вывод данных из массиваmas. Для каждой записи выводятся поля данных, фирмы, цены, количества и соответствующие поля записи о косметике. - В процедуре
StoimTovarпроисходит поиск в массивеmasзаписи, у которой название фирмы совпадает со введенным пользователем. Затем вычисляется стоимость этого товара и выводится на экран. - В процедуре
PostKosmetпроисходит вывод списка магазинов, которые продают определенную косметику. Для каждого магазина выводится его название, если он продает указанную косметику. - В основной части программы происходит цикл, в котором пользователю предлагается выбрать действие (ввод, просмотр, стоимость товара, вывод списка магазинов) и вводится номер действия. В зависимости от номера действия выполняется соответствующая процедура.