В уроке мы рассмотрели только как считать одно число, символ или же строку. А сегодня разберем как считать массив из множества элементов.
Для начала опишем файл из которого будем брать сам массив, затем опишем сам массив в который будем записывать.
type tarray=array [1..100] of integer;
var inp,outp:text;
a:tarray;
i,n:integer;
Далее добавим файлы (входной и выходной).
После проводим само считывание. Считывание производится как обычное считывание. Считывание можно производить двумя способами: до тех пор пока не кончится файл или в начале файла указать количество элементов массива.
Если известна размерность массива:
read(inp,n);
for i:=1 to n do
read(inp,a[i]);
Если размерность неизвестна:
i:=1;
while not oef(inp) do begin
read(inp,a[i]);
inc(i);
end;
Чтобы не просто выводить исходный массив отсортируем его по возрастанию. Используем сортировку выбором.
Procedure Vibor (var a:Tarray; m:integer);
var i, j, k, min:integer;
Begin
For i:=1 to m-1 do begin
min := a[i];
k := i;
For j:=i+1 to m do
if a[j]<min then begin
min := a[j];
k := j;
end;
a[k] := a[i];
a[i] := min;
end;
End;
Вот вся программа полностью.
type tarray=array [1..100] of integer;
var inp,outp:text;
a:tarray;
i,n:integer;
Procedure Vibor (var a:Tarray; m:integer);
var i, j, k, min:integer;
Begin
For i:=1 to m-1 do begin
min := a[i];
k := i;
For j:=i+1 to m do
if a[j]<min then begin
min := a[j];
k := j;
end;
a[k] := a[i];
a[i] := min;
end;
End;
begin
assign(inp,'input.txt');
assign(outp,'output.txt');
reset(inp);
rewrite(outp);
read(inp,n);
for i:=1 to n do
read(inp,a[i]);
vibor(a,n);
for i:=1 to n do
write(outp,a[i],' ');
close(inp);
close(outp);
end.
Скачать исходник Паскаль: files.pas
Кстати, если Вы увлекаетесь аниме, то возможно вас заинтересует граница пустоты!