ЛАБОРАТОРНАЯ РАБОТА №8 Тема: Разработка алгоритмов и программ методом пошаговой детализации обработки двумерных массивов. Организация ввода-вывода с помощью текстового файла

Цель:Развить умения разрабатывать алгоритмы и программы методом пошаговой детализации обработки двумерных массивов. Организация ввода-вывода с помощью текстового файла

Программное обеспечение: TURBO PASCAL 7.1

Оснащение:персональный компьютер, практикум

Время проведения: 2 уч. часа

 

Литература:

1. Немнюгин С.А. Turbo Pascal. Практикум. 2-е изд. СПб.: Питер, 2007. С. 86-112.

2. Немнюгин С. , Перколаб Л. Изучаем Turbo Pascal. СПб.: Питер, 2008. С. 106-133.

3. Павловская Т.А. Паскаль. Программирование на языке высокого уровня. Учебник для вузов. СПб.: Питер, 2008. С. 64-69.

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

1. Сформулируйте определение массива.

2. Приведите пример описания символьных данных.

3. Запишите структуру объявления одномерного, двухмерного массива.

4. Перечислите и приведите примеры допустимых операторов цикла.

КРАТКИЕ ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ

Для ввода и вывода числовых значений элементов массива используются циклы.

Пример.

For k := 1 To 13 Do Read(C[k]);

организует ввод 13 значений элементов массива С, а цикл

 

For k := 1 To 13 Do Write(C[k],' ');

вывод этих элементов.

 

Начальные значения элементов массива могут быть введены сразу с описанием массива как типизированная константа в разделе Const. При этом могут применяться также две формы описания:

Type имя типа = Array[тип индекса] Of базовый тип элементов;

Const имя константы : имя типа = (список констант);

или

Const имя константы : Array[тип индекса] Of базовый тип элементов = (список констант);

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

2 3 15 4

7 18 23 5

1 9 11 10

32 16 6 4


будет выглядеть следующим образом:

Const M : Array[1..4,1..4] Of Byte = (( 2, 3, 15, 4),

( 7, 18, 23, 5),

( 1, 9, 11, 10),

(32, 16, 6, 4));

В языке Паскаль допускается использование массива в целом только в операторе присваивания вида:

M1 := M2;

где M1, M2 ― два однотипных массива одинаковой размерности.

Файлы

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

Файл ― это самостоятельная последовательность символов, записанная в постоянную память компьютера.

 

В английском языке слово "file" имеет вполне понятный смысл: "вереница", что очень хорошо отражает внутреннюю структуру любого файла. Файл ― это именно вереница символов, причем связанных в определенной последовательности: символы файла не могут по своему желанию перепрыгивать с одного места на другое. "Самостоятельность" файлов заключается в том, что они не зависят от работы какой-либо программы. И даже если выключить компьютер, файлы будут продолжать свое существование на винчестере или на дискете.

Файлы могут хранить в себе все, что поддается кодированию:

· исходные тексты программ или входные данные (тесты);

· машинные коды выполняемых программ (игры, вирусы, обучающие и сервисные программы, др.);

· информацию о текущем состоянии какого-либо процесса;

· различные документы, в том числе и Интернет-страницы;

· картинки (рисунки, фотографии, видео);

· музыку.

 

Когда нужно использовать файлы

· Файлы полезны, если объем входных данных превосходит посильный при ручном вводе. (Крайним является случай, когда входные или выходные данные заведомо не могут поместиться в оперативной памяти.)

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

· Файлы необходимы, если нужно сохранять информацию о результатах работы программы, полученных при вводе различных входных данных (то есть: при поиске ошибок в программе).

Например, если вашей программе необходимо получить два или три числа (пять - уже многовато) или строку длиной символов десять, вы вполне можете задавать такие данные с клавиатуры вручную. Если же вам (а еще вероятнее ― не вам, а некоему усредненному и потому посредственному оператору) придется вводить, скажем, массив чисел 10х10, то вероятность ошибки при ручном вводе возрастает многократно. Значит, возможность этой ошибки нужно исключить: записать данные в файл, который легко отредактировать в случае необходимости. Кроме того, однажды созданный файл можно использовать многократно (может быть, с незначительными изменениями).

 

Разновидности файлов

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

· текстовыми;

· типизированными;

· нетипизированными.

 

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

В отличие от бинарных, текстовые файлы возможно создавать, просматривать и редактировать "вручную" ― в любом доступном текстовом редакторе. Кроме того, при считывании данных из текстового файла нет необходимости заботиться об их преобразовании: в языке Pascal имеются средства автоматического перевода содержимого текстовых файлов в нужный тип и формат, и это позволяет сэкономить немало времени и сил.

Описание файлов

В разделе var переменные, используемые для работы с файлами (файловые переменные), описываются следующим образом:

var f1,f2: text; {текстовые файлы}

g: file of <тип_элементов_файла>; {типизированные файлы}

in, out: file; {нетипизированные файлы}