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

Ваш аккаунт

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

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

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

Формирование, сортировка и вывод(Turbo Pascal)

28K
06 декабря 2007 года
Po_QkemQ_oN
11 / / 06.12.2007
Здраствуйте, скоро сессия в универе, а я не могу получить зачёт, помогите пожалуста на языке Турбо Паскаль

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

Заранее спасибо.
247
07 декабря 2007 года
wanja
1.2K / / 03.02.2003
Код:
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;

Формирование
28K
07 декабря 2007 года
Po_QkemQ_oN
11 / / 06.12.2007
Спасибо огромное, помогите остальное пожалуйста?
247
08 декабря 2007 года
wanja
1.2K / / 03.02.2003
Код:
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;

Сортировка
28K
08 декабря 2007 года
Po_QkemQ_oN
11 / / 06.12.2007
Спасибо огромнейшее, и последнюю часть задания можно пожалуйста?)
247
09 декабря 2007 года
wanja
1.2K / / 03.02.2003
Код:
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;

Вывод
28K
09 декабря 2007 года
Po_QkemQ_oN
11 / / 06.12.2007
Спасибо тебе огромнейшее, а можно теперь ГОЛОВНУЮ часть (программу) в которую запихать все эти процедуры?
247
10 декабря 2007 года
wanja
1.2K / / 03.02.2003
Цитата: Po_QkemQ_oN
2. P2 - соpтиpовки по алфавиту заданного динамического массива, pаботая с массивом указателей на элементы этого массива...
...отсоpтиpовать содеpжимое файла F1 по убыванию года раждения...


Нет ли тут ашыпки, и если нет, то надо ли сортировать его по убыванию года рождения ручную, и при чем здесь тогда процедура P2?

28K
10 декабря 2007 года
Po_QkemQ_oN
11 / / 06.12.2007
Ошибки нет, лично я думаю, что надо чтобы он два раза как бы сортировал, тоесть был бы список, ниже список по алфавиту отсортированный, а ещё ниже отсортированный по дате рождения. Видимо так.
247
11 декабря 2007 года
wanja
1.2K / / 03.02.2003
Код:
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.

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