type TStud=record
name:string[15];
year:integer;
end;
PStud=^TStud;
procedure (fname:string; var a:array of PStud);
var i,code:integer;
f:text;
s:string;
begin
assign(f,fname);
reset(f);
for i:=0 to 9 do
begin
new(a);
readln(f,s);
n:=pos(' ',S);
a^.name:=copy(s,1,n-1);
delete(s,1,n);
val(s,a^.year,code);
end;
close(f);
end;
Формирование, сортировка и вывод(Turbo Pascal)
В текстовом файле F1 задан список из 10 строк,содержащих фамилию не более 15 символов и год pождения : IVANOV 1976. Разpаботать пpоцедуpы: 1. P1 - фopмиpования динамического массива из стpок файла F, используя массив указателей ИК[1..10]; 2. P2 - соpтиpовки по алфавиту заданного динамического мас¬сива, pаботая с массивом указателей на элементы этого массива; 3. P3 -вывода заданного динамического массива ( входной паpаметp - массив указателей) в текстовый файл G. Используя эти пpоцедуpы, отсоpтиpовать содеpжимое файла F1 по убыванию года рождения и pезультат вывести в файл F2(text).
Заранее спасибо.
Спасибо огромное, помогите остальное пожалуйста?
Код:
procedure sortir(var a:array of PStud);
var i,j:integer;
h:PSTud;
begin
for i:=0 to 8 do
for j:=i+1 to 9 do
if a^.name>a[j]^.name then
begin
h:=a;
a:=a[j];
a[j]:=h;
end;
end;
var i,j:integer;
h:PSTud;
begin
for i:=0 to 8 do
for j:=i+1 to 9 do
if a^.name>a[j]^.name then
begin
h:=a;
a:=a[j];
a[j]:=h;
end;
end;
Сортировка
Спасибо огромнейшее, и последнюю часть задания можно пожалуйста?)
Код:
procedure print (fname:string; var a:array of PStud);
var i,code:integer;
f:text;
s:string;
begin
rewrite(f);
for i:=0 to 9 do
begin
writeln(f,a^.name,' ',a^.year);
end;
close(f);
end;
var i,code:integer;
f:text;
s:string;
begin
rewrite(f);
for i:=0 to 9 do
begin
writeln(f,a^.name,' ',a^.year);
end;
close(f);
end;
Вывод
Спасибо тебе огромнейшее, а можно теперь ГОЛОВНУЮ часть (программу) в которую запихать все эти процедуры?
Цитата: Po_QkemQ_oN
2. P2 - соpтиpовки по алфавиту заданного динамического массива, pаботая с массивом указателей на элементы этого массива...
...отсоpтиpовать содеpжимое файла F1 по убыванию года раждения...
...отсоpтиpовать содеpжимое файла F1 по убыванию года раждения...
Нет ли тут ашыпки, и если нет, то надо ли сортировать его по убыванию года рождения ручную, и при чем здесь тогда процедура P2?
Ошибки нет, лично я думаю, что надо чтобы он два раза как бы сортировал, тоесть был бы список, ниже список по алфавиту отсортированный, а ещё ниже отсортированный по дате рождения. Видимо так.
Код:
var a:array[1..10]of PStud;
i,j:integer;
h:PStud;
begin
p1('входной файл',a);//Сформировать
sortir(a);
for i:=1 to 9 do
for j:=i+1 to 10 do
if a^.year<a[j]^.year then
begin
h:=a;
a:=a[j];
a[j]:=h;
end;
print('выходной файл',a);
end.
i,j:integer;
h:PStud;
begin
p1('входной файл',a);//Сформировать
sortir(a);
for i:=1 to 9 do
for j:=i+1 to 10 do
if a^.year<a[j]^.year then
begin
h:=a;
a:=a[j];
a[j]:=h;
end;
print('выходной файл',a);
end.
Примерно так...
Спасибо