Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.01.2014, 23:17   #1
orandzheviyman
Пользователь
 
Регистрация: 11.11.2013
Сообщений: 74
По умолчанию Работа с указателями, записями, сортировка (Паскаль)

Код:
program STUDETNIQI;
const kol = 21; tp = '   ';
type Tstud = record
      surname:string[20];
      mod1:integer;
      mod2:integer;
      mod3:integer;
      end;
pStud = ^Tstud;
Mstud = array [1..kol] of pStud;

var A:Mstud;
    f:text;
    k,j,i:integer;
    s:string;
    elem:string[5];
    kod:integer;
    
PROCEDURE sort (var A:Mstud);
 var i,j:integer;
     x:pStud;
BEGIN
for j:=kol downto 2 do
 for i:=1 to j-1 do
  if (a[i]^.mod2>a[i+1]^.mod2) then begin
    x:=a[i];
    a[i]^:=a[i+1]^;
    a[i+1]:=x;
                                  end
end;

BEGIN
for i:=1 to kol do
 A[i]:=nil;

assign (f, 'STUDENTI.txt');
reset (f);
 for i:=1 to kol do begin
  new (A[i]);
  readln(f,s);
  A[i]^.surname:=trim(copy(s,1,20)); k:=21;
  elem:=trim(copy(s,k,5));val (elem, A[i]^.mod1,kod); inc(k,5);
  elem:=trim(copy(s,k,5));val (elem, A[i]^.mod2,kod); inc(k,5);
  elem:=trim(copy(s,k,5));val (elem, A[i]^.mod3,kod); inc(k,5);
                   end;
close (f);

sort (A);
assign (f, 'RESULT.txt');
rewrite (f);
 for i:=1 to kol do begin
  for j:=1 to 20 do
 write (f, A[i]^.surname[j]);
  write (f, inttostr(A[i]^.mod1));
  write (f, tp);
  write (f, inttostr(A[i]^.mod2));
  write (f, tp);
  write (f, inttostr(A[i]^.mod3));
  write (f, tp);
  writeln (f);
                    end;
   writeln (f); writeln (f); writeln (f);
           
 for i:=kol downto 1 do begin
  for j:=1 to 20 do
  write (f, A[i]^.surname[j]);
  write (f, inttostr(A[i]^.mod1));
  write (f, tp);
  write (f, inttostr(A[i]^.mod2));
  write (f, tp);
  write (f, inttostr(A[i]^.mod3));
  write (f, tp);
  writeln (f);
                        end;
  close (f);
  end.
Надо с помощью динамической памяти взять из файла данные о студентах, отсортировать по второй оценке и вывести в новый файл в прямом и обратном порядках.
Что не так?

Последний раз редактировалось orandzheviyman; 21.01.2014 в 23:51.
orandzheviyman вне форума Ответить с цитированием
Старый 21.01.2014, 23:23   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

А зачем ещё одну тему создавать, старая себя исчерпала?
Serge_Bliznykov вне форума Ответить с цитированием
Старый 21.01.2014, 23:39   #3
orandzheviyman
Пользователь
 
Регистрация: 11.11.2013
Сообщений: 74
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
А зачем ещё одну тему создавать, старая себя исчерпала?
эмм, да. Задание просто поменялось.
orandzheviyman вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Разобраться с указателями. Сортировка массива записей. AndrzejX Общие вопросы Delphi 0 01.03.2013 07:53
сортировка c вычисляемыми адресами, вычерпыванием, по индексам и с указателями rita-zaya123 Паскаль, Turbo Pascal, PascalABC.NET 5 19.04.2012 18:22
Работа с записями (Паскаль) patisson74 Фриланс 7 14.11.2009 03:16
Паскаль, работа с записями Veselyn Помощь студентам 11 08.03.2009 10:49
Работа с записями, паскаль Дядька Помощь студентам 5 13.02.2009 18:44