Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


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




Назначение файла

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

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

assign(f,'input.txt'); ― то переменной f будет соответствовать файл, из которого производится считывание входных данных, вплоть до того момента, когда в программе встретится, скажем, команда

assign(f,'output.txt'); ― после которой переменной f будет уже соответствовать тот файл, куда выводятся результаты.

Строка '<имя_файла>' может содержать полный путь к файлу. Если путь не указан, файл считается расположенным в той же директории, что и исполняемый модуль программы. Именно этот вариант обычно считается наиболее удобным.

 

Открытие файла

В зависимости от того, какие действия программа собирается производить с открываемым файлом, возможно троякое его открытие:

reset(f); ― открытие файла для считывания из него информации; если такого файла не существует, попытка открыть его вызовет ошибку и аварийную остановку работы программы. Эта же команда служит для возвращения указателя на начало файла;

rewrite(f); ― открытие файла для записи в него информации; если такого файла не существует, он будет создан; если файл с таким именем уже есть, вся содержавшаяся в нем ранее информация исчезнет;

append(f); ― открытие файла для записи в него информации (указатель помещается в конец этого файла). Если такого файла не существует, он будет создан; а если файл с таким именем уже есть, вся содержащаяся в нем ранее информация будет сохранена, потому что запись будет производиться в его конец.

 

Закрытие файла

После того как ваша программа закончит работу с файлом, очень желательно закрыть его:

close(f);

 

В противном случае информация, содержащаяся в этом файле, может быть потеряна.

 

Считывание из файла

Чтение данных из файла, открытого для считывания, производится с помощью команд read() и readln(). В скобках сначала указывается имя файловой переменной, а затем ― список ввода.

Пример.

read(f,a,b,c); ― читать из файла f три переменные a, b и c. После выполнения этой процедуры указатель в файле передвинется за переменную с;

readln(f,a,b,c); ― читать из файла f три переменные a, b и c, а затем перевести указатель ("курсор") на начало следующей строки; если кроме уже считанных переменных в строке содержалось еще что-то, то этот "хвост" будет проигнорирован.

Если вспомнить, что в памяти компьютера любой файл записывается линейной последовательностью символов и никакой разбивки на строки там реально нет, то действия процедуры readln() можно пояснить так: читать все указанные переменные, а затем игнорировать все символы вплоть до ближайшего символа "конец строки" или "конец файла". Указатель при этом перемещается на позицию непосредственно за первым найденным символом "конец строки".

Запись в файл

Сохранять переменные в файл, открытый для записи командами rewrite(f) или append(f), можно при помощи команд write() и writeln(). Так же как в случае считывания, первой указывается файловая переменная, а за ней - список вывода:

write(f,a,b,c); ― записать в файл f переменные a,b и c;

writeln(f,a,b,c); ― записать в файл f переменные a, b и c, а затем записать туда же символ " конец строки ".

Выводить в текстовый файл можно переменные любых базовых типов (вместо значений логического типа выведется их строковый аналог TRUE или FALSE) или строки.

Структурированные типы данных можно записывать только поэлементно.

МЕТОДИЧЕСКИЕ УКАЗАНИЯ

В квадратной матрице n-го порядка найти и вывести на экран строку, сумма элементов которой максимальна.

Program matrica;

Сonst Nmax = 20;

Var A: Array [1..nmax, 1..nmax ] Of Real;

i,j,N,Nstr: Byte;

S,Smax: Real;

Begin

Writeln ('Ввести порядок матрицы (не более ',nmax,')');

Readln (n);

For i:=1 To N Do

Begin

Writeln ('Введите элементы ',i,'-й строки ');

For j:=1 To N Do Read (A[i,j]);

S:=0;

For j:=1 To N Do S:=S + A[i,j];

If i=1 Then

Begin

Nstr:=1;

Smax:=S;

End

Else if S > Smax Then

Begin

Nstr:=i;

Smax:=s;

End;

End;

Writeln ('Номер строки: ',nstr);

For j:=1 To N Do Write (A[nstr,j]:10:3);

Writeln;

End.

СОДЕРЖАНИЕ РАБОТЫ: Написать алгоритм, составить блок-схему и отладить программу. Данные введены и выведены из файла и в файл.

Вариант Задание
№1, 9 Определить среднее арифметическое элементов строк двухмерного массива и сформировать новый одномерный массив.
№2, 10 Определить среднее арифметическое элементов столбцов двухмерного массива и сформировать новый одномерный массив.
№3, 11 Определить среднее арифметическое всех элементов двухмерного массива.
№4, 12 Определить среднее арифметическое максимальных элементов строк двухмерного массива.
№5, 13 Определить среднее арифметическое минимальных элементов строк двухмерного массива.
№6, 14 Определить среднее арифметическое максимальных элементов столбца двухмерного массива.
№7, 15 Определить среднее арифметическое минимальных элементов столбца двухмерного массива.
№8, 16 Определить сумму индексов минимального и максимального элемента двухмерного массива.

ВОПРОСЫ ВЫХОДНОГО КОНТРОЛЯ:

1. Приведите примеры описания массива.

2. Опишите принцип ввода-вывода элементов многомерного массива.

3. Как получить доступ к определенному элементу многомерного массива?

4. Опишите принцип использования вложенных циклов.

ДОМАШНЕЕ ЗАДАНИЕ

Выучить определение массива, определение, размещение в памяти; операции с элементами многомерного массива.






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


Дата добавления: 2016-10-06; Мы поможем в написании ваших работ!; просмотров: 505 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Ваше время ограничено, не тратьте его, живя чужой жизнью © Стив Джобс
==> читать все изречения...

2245 - | 2190 -


© 2015-2025 lektsii.org - Контакты - Последнее добавление

Ген: 0.009 с.