Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Turbo Pascal, отредактировать прогу

28K
19 декабря 2007 года
Po_QkemQ_oN
11 / / 06.12.2007
Здравствуйте, подскажите пожалуйста, как исправить, и что тут не так, почему она не работает правильно (P.S. желательно, проверьте у кого есть Turbo Pascal 7.0 прямо в нём, а не просто слова).

Вот задание:
В текстовом файле 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).

Вот текс программы:
type
TStud=record
name:string[15];
year:integer;
end;
PStud=^TStud;
procedure form (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);
code:=pos(' ',s);
a^.name:=copy(s,1,code-1);
delete(s,1,code);
val(s,a^.year,code);
end;
close(f);
end;
procedure sort(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;
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
a:array[1..10] of PStud;
i,j:integer;
h:PStud;
begin
form ('res8.txt',a);
writeln ('---------');
sort (a);
writeln ('---------');
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('res8.txt',a);
end.

Вот dan8.txt:
Rpelsinov 1984
Ekameykin 1983
Raranin 1976
Bmirnov 1975
Kalenok 1971
Strov 1967
Vebantim 1959
Ivanov 1958
Sidorov 1949
Pomidorov 1946

Нужно чтобы получилось вот так:
dan8.txt
--------
сортировка по фамилиям (по алфавиту)
--------
сортировка по году рождению

Заранее спасибо.
28K
20 декабря 2007 года
Po_QkemQ_oN
11 / / 06.12.2007
Кто-нибудь? Ну или заного написать, если отредактировать не получается ... пожалуйста
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог