Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка программирование 2 семестр.doc
Скачиваний:
23
Добавлен:
27.03.2015
Размер:
470.02 Кб
Скачать
    1. Примечания

  • Переименование файлов

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

  • Использование подстановочных знаков при переименовании

Подстановочные знаки (* и ?) могут быть использованы в параметрах, задающих имена. Если они использованы в параметре имя_файла_2, то символы, замещаемые символами подстановки, будут теми же, что и в параметре имя_файла_1.

  • Команда переименования не будет работать, если имя_файла_2 уже существует.

Если имя файла, задаваемое параметром имя_файла_2, уже существует, команда rename выведет на экран следующее сообщение:

Дублирование имени файла или файл не найден

Пункт 2.

Первичный поток данных, обрабатываемых программой, представляет собой аргументы, переданные программе при запуске, аргументы функции main( ). Вторичным, порождаемым под управлением первичного, потоком является поток данных, содержащихся в файле_1, файле источнике информации.

Причем в первичном потоке могут содержаться опции запуска, инициирующие вывод справки о данной программы, такие как -h и --help (стандарт POSIX).

Пункт 3.

Выходной поток данных работы программы может быть представлен:

  1. Созданным программой переименованным файлом в случае успешного запуска программы.

  2. Выводом в стандартный поток вывода, либо в стандартный поток ошибок сообщения об ошибке.

  3. Выводом в стандартный поток вывода справочной информации об использовании данной программы.

При работе программы возможны следующие "ошибки":

  1. Программа запущена с неверным числом параметров.

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

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

Пункт 4. (схема информационных потоков)

Участники информационного взаимодействия в данной программе:

Пользователь, Программа, Операционная система, Файлы на физическом носителе.

В качестве “Пользователя” данного ПС может выступать человек, оператор ПК, либо другая программа, в случае, если проектируемое ПС планируется использовать в качестве программного сервиса (программы, работающей под управлением другой программы).

Состав участников информационно цепи:

”Источник Информации” - ”Приемник Информации” - зависит от конкретного этапа работы программы. Можно выделить следующие шаги-этапы в работе программы:

  1. Запуск программы. Пользователь (ИИ) → Программа (ПИ).

  2. Досрочное завершение работы программы с выдачей соответствующего сообщения. Программа (ИИ) → Пользователь, другая Программа (ПИ).

  3. Процесс создания копии файла под новым именем. Файлы на физическом носителе (ИИ) → Программа (ПИ) → Файлы на физическом носителе (ПИ).

Получаем следующую иерархию участников информационного обмена:

Пользователь <=> Программа <=> Операционная система <=> Файл.

Пункт 5. (описание возможных "ошибок" при работе программы)

При работе программы возможны следующие "ошибки":

  1. программа запущена с недопустимым числом параметров, то есть число параметров запуска не равно 1 — запуск без параметров, либо 2 — запуск с опцией получение справки о программе, либо 3 — запуск в ”штатном” режиме;

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

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

  4. ошибки в файловом потоке, в том числе при обработке слишком длинных файлов, либо при нарушении целостности структуры файла, отсутствие символа EOF.

Пункт 6. (правила обработки ошибок)

В случае запуска программы с недопустимым числом параметров программа должна выдать соответствующее сообщение в стандартный поток ошибок STDERR: “Слишком большое число аргументов, переданных программе” и завершить свою работу с возвратом операционной системе значения 1 (exit(1); либо return 1;).

В случае отказа в доступе к файлу источнику данных программа выдает соответствующее сообщение в стандартный поток ошибок STDERR: ”у текущего пользователя нет прав чтения файла <указывается имя файла>” и завершить свою работу с возвратом операционной системе значения 2 (exit(2); либо return 2;).

В случает отказа со стороны операционной системы в праве на создание файл приемник информации программа выдает соответствующее сообщение в стандартный поток ошибок STDERR: ”у текущего пользователя нет прав создания файла в указанной директории” и завершить свою работу с возвратом операционной системе значения 3 (exit(3); либо return 3;).

В случае если программа создала копию файла под новым именем, но у пользователя, с чьими правами запущена данная программа, нет прав на удаление файла источника данных, либо для него выставлен атрибут ”Read Only” (только для чтения), программа должна удалить, если это возможно, созданную под новым именем копию файла и в стандартный поток ошибок STDERR выдать сообщение: ”ошибка при переименовании — перемещении файла”, и завершить свою работу с возвратом операционной системе значения 4 (exit(4); либо return 4;).

Пункт 7. (Описание этапов последовательного, пошагового выполнения программы. Выделение функциональных блоков и описание их в виде отдельных модулей, функций)

  1. чтение количества аргументов функции main(int argc, char** argv), значения переменной argc.

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

  3. если количество аргументов равно одному — программа запущена без параметров (argc==1) программа выводит справочную информацию о себе, содержащую справку о формате запуска.

  4. если количество аргументов равно двум и опция запуска содержит ключ ”-h ”--help, то программа запущена в режиме вывода расширенной справки о ее использовании, включающую контактную информацию о разработчике.

if((argc==2)&&((!strcmp(argv[1],”-h”))

||(!strcmp(argv[1],"—help")))

После вывода соответствующей информации программа завершает свою работу.

  1. if(argc==3) полагаем, что программа запущена в штатном режиме переименования файла. Интерпретируем значения строк argv[1] и argv[2] как соответствующие исходное старое и новое имена файла. Организуем процедуры открытия файлов в соответствующих режимах.

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

Пункт 9. (размеченный граф состояний, соответствующий пошаговой работе программы)

Пункт 10. (Исходя из номеров вершин в графе, описывающем ПО, определить значения, возвращаемые функциями-модулями с учетом обработки ошибок и досрочного завершения работы программы)

Пункт 11. (Перейти от линейной структуры пошагового исполнения к циклической, а внутри цикла процедуру множественного выбора-ветвления.)

while(step!=0)

{

switch(step)

{

case 1: … ; step=2; break;

case 2: … ; step=3; break;

case 3: … ; step=4; break;

case 4: … ; step=0; break;

default: perror(“Error!”);/* обработка внути-

программных ошибок */

}

Примечания

    1. Термины ”первичный” и ”вторичный” потоки данных введены автором для описания порядка их обработки, в порядке создания-порождения.

    2. В данном случае под понятием "ошибка" подразумевается не сбой в работе программы, а нарушение нормального режима работы программы, приводящего к реализации главной функции программы, ради которой она создана, в следствии передаче программе заведомо неверных данных. Это не ошибка исполнения программы, а несоблюдение правил диалога между пользователем и программой, либо между взаимодействующими программами. Данные "ошибки" можно описать на этапе проектирования и в состав ПО ввести средства их обработки, как средства обработки внештатных ситуаций.

Приложение 2.

Условное обозначение элементов блок-схемы

Данный раздел составлен на основании ГОСТ 19.701-90 (ИСО 5807-85) Единая система программной документации. Схемы алгоритмов, программ, данных и систем. Условные обозначения и правила выполнения.

Символ обозначения

Использование

Символы данных

Символ данных.

Символ отображает данные, носитель данных не определен.

Запоминаемые данные.

Символ отображает хранимые данные в виде, пригодном для обработки, носитель данных не определен.

Специфические символы данных

Оперативное запоминающее устройство

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

Запоминающее устройство с последовательным доступом

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

Запоминающее устройство с прямым доступом

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

Документ

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

Ручной ввод.

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

Карта

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

Дисплей

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

Символы процесса

Процесс

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

Ручная операция

Символ отображает любой процесс, выполняемый человеком.

Подготовка

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

Решение

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

Параллельные действия

Символ отображает синхронизацию двух или более параллельных операций.

Граница цикла

Символ, состоящий из двух частей, отображает начало и конец цикла. Обе части символа имеют один и тот же идентификатор. Условия для инициализации, приращения, завершения и т.д. помещаются внутри символа в начале или в конце в зависимости от расположения операции, проверяющей условие.

Символы линий

Линия

Символ отображает поток данных или управления.

Передача управления

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

Пунктирная линия

Символ отображает альтернативную связь между двумя или более символами. Кроме того, символ используют для обведения аннотированного участка.