Вывод матрицы в виде таблицы.


Для правильного размещения элементов матрицы на экране следует единым образом сформатировать вывод каждого элемента исходя из оценки их порядка и требуемой точности. Например, так:

for i:=1 to 10 do

begin

for j:=1 to 20 do write(a[i,j]:5:1);

writeln

end;

Пример. Даны n, квадратная вещественная матрица a(n´n). Преобразовать ее следующим образом: посчитать сумму элементов, стоящих под главной диагональю и записать ее во все элементы главной диагонали.

Решение.

Пусть i означает номер строки, j – номер столбца. Главная диагональ характеризуется условием i=j. Цикл (двойной) по области под главной диагональю организуется следующим образом: внешний цикл делается по строкам (параметр i пробегает от 2 до n), внутренний цикл по j при фиксированном i (т.е. по i-й строке) начинается с j=1, а заканчивается перед элементом на главной диагонали, т.е. при j=i–1.  

Программа.

program pr7;

type matr=array[1..20,1..20] of real;

var a:matr;

i,j,n:integer ;

s:real;

begin

repeat

writeln(¢введите n<=20¢);

read(n)

until n<=20;

for i:=1 to 20 do

begin

writeln(¢введите ¢,i,¢ строку из ¢,n,¢ чисел¢);

read(a[i,j])

end;

s:=0;

for i:=2 to n do

for j:=1 to i-1 do s:=s+a[i,j];

for i:=1 to n do a[i,i]:=s;

for i:=1 to n do

begin

for j:=1 to n do write(a[i,j]:7:2);

writeln

end;

end.

 

8. Файлы

 

Файловый тип представляет собой произвольной длины последовательность однотипных компонент.

Задание файлового типа:

type <имя типа>=file of <тип компонент>;

Тип компонент файла может быть любым, кроме файлового.

В то же время под файлом еще понимается поименованная область внешней памяти компьютера (либо логическое устройство – потенциальный источник или приемник информации).

Любой файл (как именованная область на диске) становится доступным программе только после выполнения процедуры открытия файла. Она заключается в связывании ранее объявленной файловой переменной с именем данного файла и его инициализации (указании направления обмена информации: чтение из файла или запись в него).

Файловая переменная связывается с именем файла с помощью стандартной процедуры assign:

assign(<ф.п.>,<имя файла>);

где:

<ф.п.> – файловая переменная,

<имя файла> – текстовое выражение, содержащее имя файла на диске.

С каждым файлом связано понятие текущего указателя, указывающего на определенную позицию в данном файле.

Инициализация файла для чтения делается с помощью стандартной процедуры reset:

reset(<ф.п.>);

При этом указатель, связанный с этим файлом устанавливается на начало файла.

Стандартная процедура

rewrite(<ф.п.>);

инициирует файл, связанный с переменной <ф.п.> для записи. Если данный файл на диске уже существовал, то он уничтожается и создается новый файл с таким же именем, при этом указатель устанавливается на начало.

Стандартная процедура

append(<ф.п.>);

инициирует запись в уже существующий файл для его расширения. При этом указатель устанавливается в конец файла. Процедура append применима только к текстовым файлам, т.е. таким, у которых файловая переменная имеет стандартный тип text (см. далее).

Текстовые файлы.

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

Для доступа к таким файлам применяются процедуры read, readln (чтение из файла) и write, writeln (запись в файл). Первым параметром в названных процедурах должна быть файловая переменная.

Процедура read обеспечивает ввод символов, строк и чисел. Обращение:

read(<ф.п.>,<список ввода>);

При этом файл, связанный с переменной <ф.п.> должен быть предварительно инициирован (открыт) для чтения.

По исполнении процедуры read указатель, связанный с данным файлом, смещается вперед в соответствии с количеством считанных компонент файла. Повторное обращение к процедуре read обеспечит ввод начиная с позиции указателя.

Процедура readln(<ф.п.>,<список ввода> аналогична процедуре read с той разницей, что после считывания последней переменной оставшаяся часть строки пропускается, и указатель устанавливается на начало следующей строки, поэтому следующее обращение к read или readln начнется с первого символа новой строки.

Процедура write(<ф.п.>,<список ввода>) обеспечивает вывод информации в текстовый файл, связанный с переменной <ф.п.>, предварительно инициированный для записи.

Процедура writeln(<ф.п.>,<список ввода>) аналогична процедуре write с той разницей, что после вывода строки указатель устанавливается на начало новой строки, таким образом, следующее обращение к процедурам write или writeln обеспечит вывод с начала новой строки.

По окончании всех записей в файл для сохранения их на диске файл следует закрытьпроцедурой

close(<ф.п.>);

Если этого не сделать, записи не сохраняются!



Дата добавления: 2016-09-06; просмотров: 1914;


Поиск по сайту:

Воспользовавшись поиском можно найти нужную информацию на сайте.

Поделитесь с друзьями:

Считаете данную информацию полезной, тогда расскажите друзьям в соц. сетях.
Poznayka.org - Познайка.Орг - 2016-2024 год. Материал предоставляется для ознакомительных и учебных целей.
Генерация страницы за: 0.01 сек.