Редактирование текста исходного модуля

Порядок выполнения работы

1. Ознакомиться с методическими указаниями.

2. Ответить на контрольные вопросы.

3. Использовать в качестве задания программу линейного вычислительного процесса по курсу «Программирование и основы алгоритмизации».

4. Загрузить интегрированный пакет Borland С++.

5. Создать файл исходного модуля заданной программы.

6. Выполнить редактирование файла исходного модуля.

7. Закрыть откорректированный файл.

8. Оформить отчет.

9. Защитить работу.

Создание исходного модуля

Исходный модуль – программа пользователя на алгоритмическом языке, введенная в ЭВМ и оформленная в виде файла на диске.

Исходный модуль формируется пользователем вводом текста программы, созданного ранее, в память ЭВМ с помощью любого редактора текста.

Интегрированные среды разработки (IDE), ориентированные на машинную обработку прикладных программ, содержат собственный текстовый редактор. Основное достоинство встроенного редактора – поддержка синтаксиса того языка программирования, на который рассчитана среда (пакет). Поэтому создание исходных модулей собственных программ производится пользователем, как правило, с его помощью.

Методика создания файла исходного модуля:

¨ подготовить текст программы пользователя;

¨ загрузить интегрированную среду Borland C++ 5.02;

¨ открыть окно текстового редактора;

¨ ввести текст программы пользователя;

¨ сформировать его в исходный модуль в виде файла на диске.

Принцип создания пользователем исходного модуля с помощью редактора реализуется схемой:

 
 

Подготовка текста программы пользователя рассматривается в курсе «Программирование и основы алгоритмизации».

Загрузка IDE осуществляется по типовой методике (см. методические указания «Машинная обработка программ пользователя в интегрированной среде Borland C++ 5.02»).

Окно текстового редактора для создания нового файла исходного модуля открывается активизацией пунктов меню и подменю (Файл\Новый\Редактор текста)

File\New\Text Edit

 

 

Результат – открытие окна текстового редактора для ввода создаваемой программы пользователя.

 

Сформированный автоматически заголовок окна определяет предлагаемую по умолчанию спецификацию создаваемого файла. Для рассматриваемого окна: диск С (локальный системный), каталог BC5 (Borland C ++ версия 5), подкаталог BIN, имя файла NONAME (без имени), версия 00 (нулевая – начальная), расширение cpp (С ++).

Площадь самого окна предназначена для контроля формирования вводимой информации.

Ввод текста программы пользователя производится по правилам аналогичным любым текстовым редакторам (смотри соответствующие методические указания).

Для фрагмента простейшей программы пользователя:

 

#include <windows.h>

#include <iostream.h>

#include <conio.h>

int main(void)

{

float a, b, x;

cout<<"a=";

cin>>a;

cout<<"b=";

cin>>b;

x=a*b;

cout<<"x=" <<x;

getch();

return 1;

}

содержимое окна после ввода имеет вид:

 

 

Вводимый текст располагается в буфере редактора в оперативной памяти ЭВМ.

Формирование введенной программы в виде файла исходного модуля необходимо для его долговременного хранения. Хранение осуществляется на магнитных носителях. В качестве носителей рекомендуются:

- локальный жесткий диск (D);

- сетевой диск (U).

Создаваемый файл желательно располагать на сетевом диске U в личной папке пользователя.

Машинная реализация сохранения создаваемого файла исходного модуля на диске осуществляется последовательностью активизаций пунктов меню и подменю (Файл\Сохранить как)

File/Save as

Выполнение этой команды подтверждается появлением диалогового окна «Save File As»для сохранения файла с новым именем, в некоторой папке на диске:

 

 

Поле «Папка» позволяет (по типовой методике) выбрать диск и требуемую папку, поле «Имя файла» – указать желаемое имя файла, отличное от NONAME (без имени), а в раскрывающемся поле «Тип файла» выбрать «C++ source (*.cpp, *.c)». Расширение файла .срр можно не указывать, оно присвоится автоматически.

Создание файла с указанной спецификацией завершается нажатием кнопки «Сохранить».

Предлагаемые окном сохранения «Save File As» компоненты спецификации по умолчанию (папка BIN, на диске C рабочей станции в каталоге BC5, имя файла noname00.cpp) могут быть использованы для создания файла с обезличенным именем. Но это не соответствует требованиям хранения файлов в сети по следующим причинам:

¨ работа с этим файлом с другой рабочей станции требует нахождения его в ресурсах сети, что требует навыков работы в сети;

¨ доступ к файлу открыт для любого другого пользователя этой рабочей станции;

¨ периодическая очистка системного каталога приведет к ликвидации этого файла;

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

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

Диск и папка задаются в поле «Папка» как строка, определяющая рабочий диск (предпочтительно – U) и личную папку пользователя. Например, для пользователя Иванова первые два параметра:

U:\Иванов

В поле «Имя файла» указывается уникальное имя, желательно отражающее суть задачи (linie). Расширение файла (срр) задается по умолчанию и предварительно отображается в поле «Тип файла» как

C++ Source (*.cpp,*.c).

Изменение расширения, если это необходимо, осуществляется активизацией поля «Тип файла» и последующим выбором желаемого.

Активизация кнопки «Сохранить» завершает создание исходного модуля. Окно Save File Asзакрывается, и в каталоге U:\Ивановрегистрируется новый файлlinie.cpp. Полная спецификация файла принимает вид:

U:\Иванов\linie.cpp.

Редактор текста IDE предоставляет пользователю и другие альтернативные варианты сохранения файла исходного модуля на диске. Например, с помощью одной из команд:

 

File/Save(Файл\Сохранить)

File/Save all(Файл\Сохранить все)

File/Close (Файл\Закрыть)

 

Команда File/Save сохраняет содержимое одного активного окна редактирования. Она выполняется активизацией пунктов главного меню File/Save либо нажатием кнопки на панели инструментов.

Команда File/Save all сохраняет содержимое всех открытых окон редактора, начиная с активного, в виде отдельных файлов. Используется, если задача реализуется несколькими взаимосвязанными программными модулями (головным и пользовательскими, при условии, что каждый из них создан в отдельном окне). Интегрированный пакет предусматривает одновременную обработку не более 32 окон.

Действие команды File/Save all аналогично последовательности команд File/Save. Выполнение команды приводит к оформлению в виде отдельного файла содержимого активного окна, а затем – всех остальных. Отображение начального варианта окна выполнения команды File/Save all при наличии трех открытых текстовых окон имеет вид:

 

 

Указание желаемого имени файла pr1.cpp и активизация кнопки «Сохранить» приводит к оформлению в виде файла pr1.cpp активного окна noname02.cpp и его деактивизации. Автоматически активизируется (подготавливается к сохранению) содержимое окна noname01.cpp. Указание имени файла pr2.cpp и нажатие кнопки «Сохранить» оформляет в виде файла pr2.cpp модуль noname01.cpp и активизирует окно noname00.cpp. Сохранение его содержимого требует изменения спецификации на pr3.cpp и последнего нажатия кнопки «Сохранить». В результате создается третий файл, окно сохранения Save File Asликвидируется, а в каталоге пользователя появляются спецификации трех созданных файлов: pr1.cpp, pr2.cpp, pr3.cpp.

При наличии одного окна с программным модулем команда File/Save all работает аналогично команде File/Save.

Оформление исходного модуля в виде файла может быть выполнено также активизацией пункта Fileглавного меню, а затем пункта Closeв открывшемся подменю. Сокращенный вид команды: File\Close(Файл\Закрыть) (Enter). Выполнение команды ликвидирует текстовое окно.

Внимание! Для предотвращения потери информации (созданного и находящегося в буфере модуля) ликвидация текстового окна предваряется появлением окна-запроса Borland C++ (модуль NONAME00.cpp был изменен. Сохранить изменения перед закрытием?):

 

 

Кнопки нижнего уровня предполагают ответы «Да», «Нет», «Отмена». Сохранение содержимого ликвидируемого окна в виде файла выполняется нажатием кнопки «Yes». При этом на экран выдается типовое окно File Save As, позволяя пользователю выполнить сохранение файла по стандартной методике. Активизация кнопки «No» приведет к ликвидации окна с потерей его содержимого. Нажатие кнопки «Cancel» закрывает окно-запрос, возвращая пользователя к работе с текстовым окном.

Сохранение программного модуля в виде файла позволяет в случае необходимости очистить буфер текстового редактора IDE от хранящегося в нем оригинала созданной программы.

Внимание! Попытка ликвидации текстового окна (однократным щелчком кнопки в правом верхнем углу окна редактирования) приводит к автоматическому предотвращению возможной потери информации, находящейся в буфере, появлением окна-запроса «Borland C++». Предлагаемые варианты позволяют пользователю выполнить любой из них (см. выше).

Редактирование текста исходного модуля

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

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

¨ исходный модуль продолжает оставаться в окне текстового редактора (буфере ОП);

¨ содержимое активизированного окна другое или само окно отсутствует.

В первом случае все готово для редактирования, а во втором – необходимо выполнить загрузку корректируемого исходного модуля по типовой методике, например командой File\Open…\имя файла(Файл\Открыть\имя).

Содержимое текстового окна модифицируется с помощью специальных команд (операций). Операции, по отношению к редактируемому тексту, делятся на:

¨ посимвольные;

¨ блочные.

В первом случае редактируемый фрагмент – символ, а во втором – группа символов (блок).

Посимвольное редактирование выполняется по типовым методикам работы с единичным знаком (ликвидация, ввод, замена, сдвиг).

Блочное редактирование требует предварительного оформления группы символов в активизированный фрагмент (выделения блока по типовой методике). Характерный признак блока – инвертированность площади, которую он занимает.

Средства редактирования скомпонованы в пункте Edit главного меню IDE. Активизация Edit производится типовой командой и приводит к открытию ниспадающего меню. Содержимое определяет активные и пассивные разделы. В большинстве случаев основные разделы неактивны, так как работа с ними требует предварительной подготовки исходного модуля. В этом случае вариант меню Edit имеет вид:

 

 

Выделение любого фрагмента существенно увеличивает количество возможных операций, предлагаемых меню Edit.

Быстрое выделение всего текста в окне редактирования осуществляется командой Редактирование\Выделить все

Edit\Select all

В этом варианте меню Edit приобретает вид:

 

 

Внимание! Активизация пункта Pasteсвидетельствуето наличии любого содержимого в буфере обмена.

Буфер обмена создается автоматически любым редактором текста для хранения фрагментов, подлежащих редактированию.

Методика редактирования:

¨ выделить корректируемый тестовый фрагмент;

¨ активизировать пункт Edit главного меню;

¨ выбрать необходимую операцию;

¨ дать команду на ее выполнение;

¨ оценить результат.

Первые два пункта выполняются по типовой методике. Третий реализуется следующими операциями блочного редактирования:

- вырезание;

- копирование;

- вставка;

- замена;

- ликвидация;

- отмена.

Рассмотрим каждую из операций.

Изъятие (вырезание) – перенос выделенного текстового фрагмента в буфер обмена с удалением его в окне редактирования.

Определение предписывает двухшаговую реализацию операции:

- выделение вырезаемого фрагмента в текстовом окне,

- ввод команды «вырезать».

Выделение текстового фрагмента выполняется по типовой методике.

В качестве команды «вырезать» используются:

¨ Edit\Cut(Редактирование\Вырезание) активизацией пункта Edit главного меню, а затем пункта Cut подменю;

¨ горячие клавиши Сtrl + X;

¨ комбинация клавиш – Shift + Delete;

¨ кнопка на панели инструментов.

Выполнение команды приводит к перемещению выделенного фрагмента из окна редактирования в буфер обмена (в окне редактирования текст справа от перемещенного фрагмента автоматически смещается влево).

 
 

Примеры фрагментов окна редактирования до и после выполнения команды:

 

Копирование – размещение копии выделенного текстового фрагмента в буфер обмена.

Способы копирования:

¨ команда Edit\Copy (Редактировать\Копировать) активизацией пункта Edit главного меню, а затем пункта Copy подменю

¨ горячие клавиши (указаны справа в меню) Ctrl + C;

¨ комбинация клавиш – Ctrl + Insert;

¨ кнопка на панели инструментов.

Выполнение команды приводит к размещению копии в буфере обмена (сам выделенный фрагмент остается в тексте).

Примеры фрагментов окна редактирования до и после выполнения команды:

 
 

Вставка –копирование содержимого буфера обмена в окно редактирования, начиная от курсора.

Определение вставки предписывает двухшаговую реализацию операции:

- расположение курсора в желаемой точке текстового окна,

- ввод команды.

Размещение курсора выполняется по типовой методике.

В качестве команд вставки используются:

¨ Edit\Paste (Редактирование\Вставить) – активизация пункта Edit главного меню, а затем пункта Paste подменю;

¨ горячие клавиши (указаны справа в меню) Ctrl + V;

¨ комбинация клавиш – Schift + Insert;

¨ кнопка на панели инструментов.

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

 
 

Примеры фрагментов окна редактирования до и после выполнения команды (в буфере хранятся строки ввода b):

 

 

Замена – замещение выделенного текстового фрагмента в окне редактирования на содержимое буфера обмена.

Определение замены предписывает двухшаговую реализацию операции:

- выделение заменяемого фрагмента в текстовом окне,

- ввод команды «вставка».

Выделение текстового фрагмента выполняется по типовой методике.

Реализация команды вставки рассмотрена выше.

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

Примеры фрагментов окна редактирования до и после выполнения команды (в буфер скопирована строка cout<<”------”):

 

 
 

Ликвидация – удаление выделенного в окне редактирования фрагмента.

Используется для удаления текстового фрагмента из копии исходного модуля в буфере редактора IDE.

Определение предписывает двухшаговую реализацию операции:

- выделение удаляемого фрагмента в текстовом окне,

- ввод команды «ликвидация».

Выделение текстового фрагмента выполняется по типовой методике.

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

¨ Edit\Clear (Редактирование\Очистить) активизацией пункта Edit главного меню, а затем пункта Clear подменю;

¨ горячие клавиши Сtrl + Delete;

¨ клавиша Delete.

В результате текстовый фрагмент удаляется из буфера редактора в ОП, но остается в теле открытого файла на диске.

Примеры фрагментов окна редактирования до и после выполнения команды:

 
 

Выполнение ликвидации визуально идентично команде «вырезать», при отсутствии выделенного фрагмента в буфере обмена.

Закрытие файла сопровождается окном-запросом «Borland C++», позволяя выбрать один из трех возможных вариантов (см. выше).

Отмена – прекращение действия последней команды редактирования.

Используется для ликвидации действия последней команды (возврата на шаг назад).

Способы отмены:

¨ команда Edit\ (Редактирование\Отменить) активизацией пункта Edit главного меню, а затем пункта Undo подменю;

¨ горячие клавиши Ctrl + Z;

¨ кнопка .

Внимание! Отмена действия команды Edit\Undo выполняется командами Edit\Redo (Редактирование\Вернуть) либо Schift + Ctrl + Z.

Рассмотренные команды редактирования позволяют выполнять практически любую корректировку текста исходного модуля. Внесенные коррективы отображаются в окне текстового редактора.

Сохранение отредактированного варианта исходного модуля либо создание новой версии его выполняется одной из рассмотренных ранее команд:

File/Save(Файл\Сохранить)

File/Save all(Файл\Сохранить все)

File/Save as…(Файл\Сохранить как)

File/Close (Файл\Закрыть)

Команды File/Save и File/Save allформируют новое (отредактированное) содержимое существующего файла исходного модуля без появления диалогового окна сохранения «Save File As».

Команда дополняется диалоговым окном сохранения «Save File As», позволяя сохранить файл по типовой методике.

Внимание! Команда File/Save as…позволяет создать новую версия файла исходного модуля, изменив его спецификацию. Исходный (редактируемый) файл остается без изменений. В результате на диске существует два файла:

- исходный модуль без изменений;

- откорректированный исходный модуль.

Активизация команды File/Close сопровождается появлением окна-запроса «Borland C++», уведомляя пользователя о возможных вариантах действий. Выбор желаемого пункта подтверждается нажатием соответствующей кнопки, приводя к закрытию файла (с учетом либо без редактирования).