В предыдущем параграфе вы научились открывать файл текстового типа и записывать в него информацию. Было показано, что используя процедуру write() – можно записывать данные в строчку, а используя процедуру writeln() – можно данные записывать в столбик. Воспользуемся этими знаниями, что бы решить следующую задачу:
С клавиатуры вводится двухмерный массив, элементы которого являются целыми числами, максимальная размерность массива 100х100. Необходимо написать программу, которая записывает этот массив в текстовый файл с именем ‘MayFile5.in’ с учетом расположения элементов массива.
Так же как и задача рассмотренная в предыдущем параграфе она состоит из двух основных этапов:
1) Ввод данных с клавиатуры;
2) Запись данных в файл именем 'mayFile5.in'.
Для выполнения первого этапа надо:
ввести размерность реального массива чисел, которое будет вводиться с клавиатуры;
зная размерность массива, воспользовавшись вложенным циклом с параметром присвоить элементам массива конкретные значения.
Текст процедуры ввода данных можно взять из программы Primer_9. Текст процедуры обработки данных остается без изменений по той же причине, что и в программе PrimerF1.
Рассмотрим процедуру записи элементов массива в файл 'mayFile5.in':
procedure exi;
var
FileOut : text;
begin
{связь переменной с конкретным именем файла}
assign (FileOut, ‘mayFile5.in’);
{открытие файла для записи}
rewrite(FileOut);
{запись размерности массива и перевод курсора на новую строку}
writeln(FileOut, KolichestvoStrok,’ ‘,KolichestvoStolb);
for i:=1 to KolichestvoStrok do
begin
{запись элементов строки массива в строку через пробел}
for j:=1 to KolichestvoStolb do
write (FileOut, Chislo [i,j],’ ‘);
{перевод курсора на новую строку, после завершения работы цикла по j}
writeln(FileOut);
end;
{закрытие файла}
close(FileOut);
end;
О том, что текст основной программы не меняется можно не говорить. Сохраните эту программу под именем PrimerF5. Перед тем как запустить эту программу сделаем следующее:
- Установите курсор на строку с которой начинается описание процедуры Exi;
- Активизируйте главное меню интегрированной среды;
- Выберите из главного меню опцию Debug;
- выберите действие Breakpoint ;
- нажмите клавишу Enter или произведите действие «Cliсk».
В окне редактора данная строка будет выделена цветом. Теперь запустите программу на выполнение, нажав комбинацию клавиш "Crtl+F9". Введите исходные данные с клавиатуры. После ввода данных программа остановится и на экране компьютера появится окно редактора интегрированной среды. То есть своими предыдущими действиями мы дали указание программе приостановить работу на этой строке. Для продолжения работы можно снова нажать комбинацию клавиш "Crtl+F9", но лучше воспользуемся клавишей "F7" и посмотрим, как работает процедура Exi.
Эти действия делаются для того, что бы сделать трассировку определенного участка программы, так как при большом размере программ проводить полную трассировку бывает достаточно утомительно и необязательным. Так как исповедуя структурный подход к программированию мы имеем (см п.п.1.5):
1. Возможность «работать» (программировать) с отдельным модулем.
2. Независимость «умозрительных» машин одного уровня позволяет независимо модифицировать блоки программы без затрагивания других блоков. Как отмечал Э. Дейкстра: “…модификации программ могут быть теперь представлены заменой одной (умозрительной) машины другой подходящей машиной”.
3. Проведение отладки структурированных программ отдельными блоками.
Рис 2.8.
При трассировке текста процедуры обратите внимание на работу составного оператора.
begin
{запись элементов строки массива в строку через пробел}
for j:=1 to KolichestvoStolb do
write (FileOut, Chislo [i,j],’ ‘);
{перевод курсора на новую строку, после завершения работы цикла по j}
writeln(FileOut);
end;
Рис 2.9.
Для удаления точки остановки, произведем следующие действия:
- Активизируйте главное меню интегрированной среды;
- Выберите из главного меню опцию Debug;
- Выберите действие Breakpoint List ;
- Нажмите клавишу "Enter" или произведите действие «Cliсk»..
На экране появится диалоговое окно Breakpoint List (точки остановки) (рис 2.9) в котором будет выведен список всех точек остановки установленных в программе.
- Выделите элемент списка;
- Нажмите кнопку "Delete"(диалогового окна) или клавишу "D"(клавиатура).
Данная точка останова будет удалена из списка.
Достарыңызбен бөлісу: |