Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ Блок данных с фамилиями

Автор: plafon 18.05.2004 15:03

Помогите решить эту задачу пожалуйста


Сформировать блок данных с фамилиями, считанными из файла (файл с фамилиями, предварительно нужно создать) и отсортировать их по алфавиту по всем буквам фамилии, результат вывести в файл.

Автор: BlackShadow 18.05.2004 15:18

Создаёт файл:

Код

Const
 N=10;
 Names:Array[1..N] Of String = ('Иванов','Петров','Сидоров','Путин','Чубайс',
'Жириновский','Хазанов','Петросян','Галкин','Якубович');
Var
 i:Integer;
 f:Text;
Begin
 Assign(f,'Names.Txt');
 ReWrite(f);
 For i:=1 To N Do
   WriteLn(f,Names[i]);
 Close(f)
End.


Читает, сортирует и на экран:
Код

Var
 Names:Array[0..100] Of String;
 f:Text;
 n,i,j,k:Integer;
 min:String;
Begin
 Assign(f,'Names.Txt');
 Reset(f);
 n:=0;
 While Not Eof(f) Do
 Begin
   ReadLn(f,Names[n]);
   Inc(n)
 End;
 Close(f);
 For i:=0 To n-2 Do
 Begin
   min:=Names[i];
   k:=i;
   For j:=i+1 To n-1 Do
     If min>Names[j] Then
     Begin
       min:=Names[j];
       k:=j
     End;
   If i<>k Then
   Begin
     Names[k]:=Names[i];
     Names[i]:=min
   End
 End;
 For i:=0 To n-1 Do
   WriteLn(Names[i])
End.


Есди что не так - пиши.