write(f1,'╚═══════╩══════════════╩═════════╩══════════════════════╩════════╩═══════════╝');
close(f1);
end;
end;
end.
Job.pas
unit job;
interface
uses crt,global;
procedure poisk(a:ptr;n:byte);
procedure del(var a:ptr; var n:byte);
implementation
procedure poisk;
var cl:string[14];
t,i,k:byte;
f:boolean;
begin
writeln('Введите название лекарства');
readln(cl);
f:=false;
k:=0;
for i:=1 to n do
with a^[i] do if lek=cl then begin k:=k+1; t:=i; f:=true;
writeln;
write('╔═══════╦══════════════╦═════════╦══════════════════════╦════════╦═══════════╗');
writeln;
write('║ Номер ║ Наименование ║ Шифр ║ Страна-производитель ║ Кол-во ║ Стоимость ║');
writeln;
write('║аптеки ║ лекарства ║лекарства║ ║ ║ ║');
writeln;
writeln('╠═══════╬══════════════╬═════════╬══════════════════════╬════════╬═══════════╣');
with a^[i] do begin
write('║');write(num:4); write('║':4); write(lek:9); write('║':6);
write(shifr:6);write('║':4); write(land:21); write('║':2); write(kol:6); write('║':3);
write(price:8); write('║':4);
writeln;
end;
break;
end;
if f then begin
for i:=t+1 to n do begin
with a^[i] do if lek=cl then begin
k:=k+1;
if k mod 9=0 then begin
write('╚═══════╩══════════════╩═════════╩══════════════════════╩════════╩═══════════╝');
writeln('Нажмите любую клавишу для продолжения':40);
readln;
clrscr;
writeln;
write('╔═══════╦══════════════╦═════════╦══════════════════════╦════════╦═══════════╗');
writeln;
write('║ Номер ║ Наименование ║ Шифр ║ Страна-производитель ║ Кол-во ║ Стоимость ║');
writeln;
write('║аптеки ║ лекарства ║лекарства║ ║ ║ ║');
writeln;
end;
writeln('╠═══════╬══════════════╬═════════╬══════════════════════╬════════╬═══════════╣');
with a^[i] do begin
write('║');write(num:4); write('║':4); write(lek:9); write('║':6);
write(shifr:6);write('║':4); write(land:21); write('║':2); write(kol:6); write('║':3);
write(price:8); write('║':4);
writeln;
end;
end;
end;
write('╚═══════╩══════════════╩═════════╩══════════════════════╩════════╩═══════════╝');
end;
if not f then writeln('запись не найдена');
end;
procedure del;
var
i,t:byte;
lek1:string[14];
f:boolean;
k:char;
begin
writeln('Введите название лекарства:');
readln(lek1);
f:=false;
for i:=1 to n do
if a^[i].lek=lek1 then begin t:=i; f:=true; break; end;
if f then begin
writeln('Удалить запись? y/n');
readln(k);
if k='y' then begin
for i:=t to n-1 do
a^[i]:=a^[i+1];
n:=n-1; end;
end else writeln('запись не найдена');
end;
end.
Результаты:
Что
нужно знать:
· запись – Структурированный тип данных, состоящий из фиксированного числа компонентов одного или нескольких типов, называемых полями записи.
· операции с записями – К записи в целом применим оператор присваивания (если записи одного типа), все остальное (выражения отношения, арифметические и тд.) применимо только к полям записи.
· поле записи, селектор – Поле записи – компонента записи определенного типа и имеющая имя. Делятся на фиксированные и вариантной. Вариантная часть задается с помощью оператора case ... ofи может состоять из нескольких вариантов. Caseзадает особое поле записи – поле признака, которое определяет, какой из вариантов в каждый момент выполнения программы должна быть одна из расположенных в операторе caseконстант – константы выбора (селектора).
· статическое и динамическое распределения памяти – Статическая память – память выделяемая при запуске программы (код программы, коды подключаемых модулей, сегмент данных (глобальные переменные и типизированные константы), стек); Динамическая память (heap) – память, выделяемая по требованию программы. Heap занимает всю свободную ОП.
· переменная-указатель (ссылка) – Переменная, занимающая в памяти 4 байта и хранящая в себе адрес первого байта, переменной на значение которой указывает сылка.
· операции с указателями - ?
· разветвление программы по нескольким направлениям - ?
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.