RomeoSFS
Новичок
|
здравствуйте помогите пожалуйста вставить поиск в задачку program spisoks; uses crt; const n=10000; type spisok=record tovar:string[20]; tip:string[10]; end; type massa=record cas:integer; min:integer; end; var tbl:array[1..n] of spisok; vr:array [1..n]of massa; f:Text; k,y:integer; procedure Make; var l:string; n,i:integer; begin textcolor(green); writeln('Создание файла'); textcolor(black); writeln('Введите имя файла'); readln(l); assign(f,l); rewrite(f); n:=0; Repeat n:=n+1; Write(n,' Название товара '); ReadLn(tbl[n].tovar); If tbl[n].tovar <>'^' then begin Write(' Стоимость единицы товара в руб', n); readln (vr[n].min); Write(' Колличество шт.', n); ReadLn(tbl[n].tip); Write(' масса в кг ', n); ReadLn(vr[n].cas); end; until tbl[n].tovar='^'; for i:=1 to n-1 do begin writeln(f,tbl.tovar); writeln (f,vr.min); writeln(f,tbl.tip); writeln(f,vr.cas); end; close(f); writeln('Данные сохраннены, нажмите Enter.'); readln; end; procedure show; var i:integer; l:string; begin textcolor(green); writeln('Просмотр файла'); textcolor(black); writeln('Введите имя файла'); readln(l); assign(f,l); reset(f); writeln('*****************СПИСОК ТОВАРОВ******************'); writeln('====ТОВАР====|=СТОИМОСТЬ=|=КОЛЛИЧЕСТВО=|==МАССА=='); i:=0; while not eof(f) do begin inc(i); readln(f,tbl.tovar); readln(f,vr.min); readln(f,tbl.tip); readln(f,vr.cas); writeln(' ' ,tbl.tovar,' | ' ,vr.min,' | ',tbl.tip,' | ',vr.cas ); writeln('----------------------------------------------------'); end; readln; close(f); end; Procedure Sortirovka; var i,j,m: Integer; p : spisok; k : massa; S :string; begin m:=0; writeln('Введите имя файла:'); readln(S); assign(f,S); reset(f); while not eof(f) do begin inc(m); readln(f,tbl[m].tovar); readln(f,vr[m].min); readln(f,tbl[m].tip); readln(f,vr[m].cas); end; For I:=1 to M do Begin For J:=1 to M-I do Begin if tbl[J].tovar[1] > tbl[J+1].tovar[1] then begin p.tovar:=tbl[J].tovar; k.min:=vr[J].min; p.tip:=tbl[j].tip; k.cas:=vr[J].cas; tbl[J].tovar:=tbl[J+1].tovar; vr[J].min:=vr[J+1].min; tbl[J].tip:=tbl[J+1].tip; vr[J].cas:=vr[J+1].cas; tbl[J+1].tovar:=p.tovar; vr[J+1].min:=k.min; tbl[J+1].tip:=p.tip; vr[J+1].cas:=k.cas; end; end; end; For I:=1 to m do Begin textcolor(red); writeln('*Товар* ',tbl.tovar,' *Стоимость* ',vr.min,' *Колличество* ',tbl.tip,'масса',vr.cas); end; textcolor(blue); writeln('Для продолжения нажмите Enter'); readln; M:=0; end; begin textbackground(10); k:=0; repeat clrscr; writeln('programma spisok'); writeln('1.Создание'); writeln('2.Показ'); writeln('3.Сортировка '); writeln('4.Выход'); write('Выберите действие:'); readln(y); case y of 1:Make; 2:show; 3:Sortirovka; 4:k:=1; end; until k=1; end.
|