type
Shoes = record
Art: string[15];
Name: string[20];
Kol: integer;
Price: real;
end;
procedure vvod_obuvi;
var q:integer; F:
file of Shoes;
Boty: Shoes;
begin
assign(F,'Lev');
reset(F);
while q <> 0 do
begin
Seek(F,FileSize(F));
writeln('Введите артикул');
readln(Boty.Art);
writeln('Введите название обуви');
readln(Boty.Name);
writeln('Введите количество пар');
readln(Boty.Kol);
writeln('Введите цену за пару');
readln(Boty.Price);
write(F,Boty);
writeln('Добавить новую обувь? Если да, введите 1,если нет - введите 0');
readln(q);
end;
close(F);
end;
procedure poisk_ar;
var q:integer;
Art1: string;
F: file of Shoes;
Boty: Shoes;
begin
assign(F,'lev');
Reset(F);
while q<>0 do
writeln('Введите нужный вам артикул');
readln(Art1);
writeln('Введенный вами артикул: ',Art1);
while Eof(F) <> True do
begin
read(F, Boty);
if Art1 = Boty.Art then
writeln('Наименование: ',Boty.Name,' Количество пар: ',Boty.Kol,' Цена: ',Boty.Price);
end;
writeln('Хотите ли найти ещё один артикул? Если да, введите 1,если нет - введите 0');
readln(q);
Close(F);
end;
procedure poisk_gen;
var F: file of Shoes;
q: integer;
Boty: Shoes;
begin
assign(F,'lev');
reset(F);
while q <>0 do
while Eof(F) <> True do
begin
read(F,Boty);
if ('Ж' = Boty.Art[1]) or ('ж' = Boty.Art[1]) then begin
writeln('Наименование: ',Boty.Name, ' Количество пар ', Boty.Kol);
end;
end;
writeln('Желаете продолжить? Если да, введите 1,если нет - введите 0');
readln(q);
Close(F);
end;
procedure smotr;
var F: file of Shoes;
Boty: Shoes;
begin
assign(F,'lev');
reset(F);
while Eof(F) <> True do begin
read(F,Boty);
writeln('Артикул: ',Boty.Art,'; Наименование: ',Boty.Name,'; Количество пар: ',Boty.Kol,'; Цена: ',Boty.Price);
end;
readln;
end;
var
Boty: Shoes;
F: file of Shoes;
n,s: integer;
begin
writeln('Введите название файла:');readln(n);
Assign(f,n+'.dat');
Rewrite(f);
writeln('Файл ',n+'.dat',' успешно создан.');
close(f);
writeln('1 - ввод обуви');
writeln('2 - поиск по артикулам');
writeln('3 - поиск среди женской обуви');
writeln('4 - просмотр ассортимента');
readln(s);
case s of
1:vvod_obuvi;
2:poisk_ar;
3:poisk_gen;
4:smotr;
end;
end.
Непонятный вопрос
В чем именно проблема?
Зачем?
Автор же видимо просто хочет вызвать определенную процедуру в зависимости от выбранного пункта меню.
Проблема в том, что при запуске программы и выборе первого пункта, программа завершает работу.
Да, вы правы.
А что выводит?
Какой Паскаль?
Паскаль ABC
Сначала выполняется то что до case, потом я ввожу значение оно выводить и программа завершает свою работу.
Наверное case зациклить нужно, и добавить в него выбор функции завершения работы.
И тут q
не инициализировано.
Большое спасибо!