1)
program sss;
const n=10;
type birthday=record
name:string[10];
year:1900..2005;
month:1..12;
day:1..31;
end;
var
man:birthday;
filename:string[10];
i:byte;
f:file of birthday;
begin
writeln('введите имя файла ');
readln(filename);
assign(f, filename);
rewrite(f);
writeln(' ',n,'введите дату рождения (день, мес, год');
with man do
begin
for i:=1 to n do
begin
write('имя:'); readln(name);
write('день:'); readln(day);
write('мес:'); readln(month);
write('год:'); readln(year);
write(f, man)
end;
end;
writeln('сведения сохранились в birthday.dat');
close(f);
end.
и вторая:
program super_2;
const n=6;
Type birthday=record
name:string[10];
year:1900..2005;
month:1..12;
day:1..31;
end;
procedure sort( var a:friends;
m:byte);
var i, j:byte;
temp:birthday;
begin
for i:=1 to m-1 do
for j:=1 to m-i do
if a[j].name>a[j+1].name then
begin
temp:=a[j];
a[j]:=a[j+1];
a[j+1]:=temp;
end;
end;
function closest_birthday( var a:friends;
m:byte;
man:birthday):byte;
var i, j:byte;
min, nmin:byte;
begin
nmin:=1; min:=a[1].month;
for i:=1 to m do
with a[i] do
begin
if (month>=man.month) and (month<=min)
then
if (month<min) or (month=min)
and (day<a[nmin].day)
then begin min:=month; nmin:=i; end;
end;
closest_birthday:=nmin;
end;
var w:friends;
fname1, fname2:string[15];
strNN:string[2];
i, count:byte;
f1: file of birthday;
f2:text;
man1, man2:birthday;
begin
writeln('введите имя файла');
readln(fname1);
assign(f1, fname1);
reset(f1);
writeln('введите дату');
write('день '); readln(man1.day);
write('мес '); readln(man1.month);
write('год: '); readln(man1.year);
count:=0;
while not eof(f1) do
begin
read(f1, man2);
if man2.month=man1.month then
begin
count:=count+1;
w[count]:=man2;
end;
end;
close(f1);
if count>1 then sort(w,count);
str(man1.month,strNN);
if man1.month<10 then strNN:='0'+strNN;
fname2:='Birth_'+strNN+'txt';
assign(f2,fname2);
rewrite(f2);
for i:=1 to count do
with w[i] do
begin
write(f2,name,' '); write(f2,day,'.');
write(f2,month,' '); writeln(f2,year);
end;
close(f2);
reset(f1);
count:=0;
while not eof(f1) do
begin
count:=count+1;
read(f1, w[count]);
if (w[count].month<man1.month)
then w[count].month:=w[count].month+12;
if (w[count].month=man1.month) and (w[count].day<man1.day)
then w[count].month:=w[count].month+12;
end;
count:=closest_birthday(w,count,man1);
if (w[count].month>12) then
w[count].month:=w[count].month-12;
writeln(w[count].name,'ближайшее день рождение в', w[count].day,
'/', w[count].month);
close(f1);
end.
(тут типа первая прога создает файл, а вторая его коректирует, но во второй он выдаёт ошибку! помогите мне её найти pleas)
