Исходник программы, считывающей массив из файла

Исходник программы, считывающей массив из файла

В уроке мы рассмотрели только как считать одно число, символ или же строку. А сегодня разберем как считать массив из множества элементов.

Для начала опишем файл из которого будем брать сам массив, затем опишем сам массив в который будем записывать.

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

Кстати, если Вы увлекаетесь аниме, то возможно вас заинтересует граница пустоты!
Дата: 2013-11-17 14:24:16   Просмотров: 10456