Method (1015691), страница 4
Текст из файла (страница 4)
void Print (void);
Функция использует глобальные переменные values, info, pfirst. В случае отсутствия элементов в списке выдает на экран сообщение:
«СПИСОК ПУСТ».
Функция содержит 12 строк текста, находящегося в файле Print.c и занимает около 1 Кбайта памяти.
5.3.8. Функция Findindex
Предназначена для определения индекса элемента списка с номером nel в массивах values и info.
Поиск сводится к выполнению следующих действий:
- обнуляется счетчик элементов count;
- элементы списка перебираются в порядке, заданном значениями ссылок между элементами списка (второе поле справочной части элемента
31
списка) до тех пор, пока счетчик не достигнет значения nel;
Прототип функции имеет вид
int Findindex (int nel);
Таблица 5.4
Формальные аргументы функции Findindex
Идентификатор | Входной или выходной | Назначение |
nel | входной | порядковый |
номер | ||
искомого | ||
элемента списка |
Функция использует глобальные переменные info, pfirst, amount. Функция возвращает индекс искомого элемента в массивах values и
info, либо значение (-1), если элемент не найден.
В случае, если номер элемента меньше 1 или больше количества
элементов в списке, то на экран выдается сообщение:
"NNNNN ЭЛЕМЕНТ НЕ НАЙДЕН".
Функция содержит 10 строк текста, находящегося в файле Findindex. с и занимает около 1 Кбайта памяти.
5.3.9. Функция Valcpy
Предназначена для копирования переменной val2 в переменную vail. Обе переменные типа value (т.е. представляют последовательность из NUM целых чисел).
Прототип функции имеет вид
void Valcpy (value vail, value val2);
Функция содержит 6 строк текста, находящегося в файле Valcpy.c и занимает около 1 Кбайта памяти.
5.3.10. Функция Getact
Предназначена для запроса номера действия над списком.
32
Функция выводит на экран монитора меню и приглашение к вводу:
1 - ОЧИСТИТЬ 2 - ДОБАВИТЬ 3 - УДАЛИТЬ 4 - ПЕРЕСТАВИТЬ 5 - НАЙТИ 6 - ВЫВЕСТИ НА ЭКРАН 7 - ЗАВЕРШИТЬ =;==;> ^
Возвращает номер выбранного пользователем действия. В случае ошибочного ввода выводит на экран монитора сообщение :
«ОШИБКА ВВОДА»
и повторяет запрос.
Прототип функции имеет вид
int Getact (void);
Назначение локальных переменных описано в комментариях функции. Функция содержит 17 строк текста, находящегося в файле Getact.c и занимает около 1,5 Кбайт памяти.
5.3.11. Функция Clear
Предназначена для «очистки» списка, т.е. замены предыдущего списка на пустой список.
Прототип функции имеет вид:
void Clear (void);
Функция использует глобальные переменные pfirst, plast, amount. Она содержит 5 строк текста, находящегося в файле Clear.c и занимает около 0,5 Кбайт памяти.
5.3.12. Тестовый пример
Работоспособность программы демонстрируется на тестовом примере в приведенном ниже протоколе ее работы.
*** LIST ***
1 - ОЧИСТИТЬ 2 - ДОБАВИТЬ 3 - УДАЛИТЬ 4 - ПЕРЕСТАВИТЬ 5 - НАЙТИ 6 - ВЫВЕСТИ НА ЭКРАН 7 - ЗАВЕРШИТЬ
=> л!,
33
1 - ОЧИСТИТЬ 2 - ДОБАВИТЬ 3 - УДАЛИТЬ 4 - ПЕРЕСТАВИТЬ
5 - НАЙТИ 6 - ВЬЮЕСТИ НА ЭКРАН 7 - ЗАВЕРШИТЬ
——> ^J
ВВЕДИТЕ ЭЛЕМЕНТ СПИСКА (3 целых числа)
===>A1JA1J^J
1 - ОЧИСТИТЬ 2 - ДОБАВИТЬ 3 - УДАЛИТЬ 4 - ПЕРЕСТАВИТЬ
5 - НАЙТИ 6 - ВЫВЕСТИ НА ЭКРАН 7 - ЗАВЕРШИТЬ
===> ^J
ВВЕДИТЕ НОМЕР ЭЛЕМЕНТА СПИСКА
===>A1J
1 - ОЧИСТИТЬ 2 - ДОБАВИТЬ 3 - УДАЛИТЬ 4 - ПЕРЕСТАВИТЬ 5 - НАЙТИ 6 - ВЫВЕСТИ НА ЭКРАН 7 - ЗАВЕРШИТЬ ===> '^J
* * * СПИСОК * * * СПИСОК ПУСТ
^+******+**^с*
1 - ОЧИСТИТЬ 2 - ДОБАВИТЬ 3 - УДАЛИТЬ 4 - ПЕРЕСТАВИТЬ 5 - НАЙТИ 6 - ВЫВЕСТИ НА ЭКРАН 7 - ЗАВЕРШИТЬ
===> A2J
ВВЕДИТЕ ЭЛЕМЕНТ СПИСКА (3 целых числа)
===> A2JA2JA2J
1 - ОЧИСТИТЬ 2 - ДОБАВИТЬ 3 - УДАЛИТЬ 4 - ПЕРЕСТАВИТЬ
5 - НАЙТИ 6 - ВЬЮЕСТИ НА ЭКРАН 7 - ЗАВЕРШИТЬ
===> ^J
ВВЕДИТЕ ЭЛЕМЕНТ СПИСКА (3 целых числа)
=====> A3JA3JA3J
1 - ОЧИСТИТЬ 2 - ДОБАВИТЬ 3 - УДАЛИТЬ 4 - ПЕРЕСТАВИТЬ
5 - НАЙТИ 6 - ВЫВЕСТИ НА ЭКРАН 7 - ЗАВЕРШИТЬ
===> ^J
ВВЕДИТЕ ЭЛЕМЕНТ СПИСКА
===> A4JA4JA4J
1 - ОЧИСТИТЬ 2 - ДОБАВИТЬ 3 - УДАЛИТЬ 4 - ПЕРЕСТАВИТЬ
5 - НАЙТИ 6 - ВЫВЕСТИ НА ЭКРАН 7 - ЗАВЕРШИТЬ
==-> ^J
ВВЕДИТЕ НОМЕР ЭЛЕМЕНТА СПИСКА
=^>A1J
ИНДЕКС ЭЛЕМЕНТА НОМЕР 1= О
34
1 - ОЧИСТИТЬ 2 - ДОБАВИТЬ 3 - УДАЛИТЬ 4 - ПЕРЕСТАВИТЬ
5 - НАЙТИ 6 - ВЫВЕСТИ НА ЭКРАН 7 - ЗАВЕРШИТЬ
===> ^J
ВВЕДИТЕ НОМЕР ЭЛЕМЕНТА СПИСКА
===> A2J
1 - ОЧИСТИТЬ 2 - ДОБАВИТЬ 3 - УДАЛИТЬ 4 - ПЕРЕСТАВИТЬ 5 - НАЙТИ 6 - ВЫВЕСТИ НА ЭКРАН 7'- ЗАВЕРШИТЬ ====> ^J
* * * СПИСОК * * * СОДЕРЖИТ 3 ЭЛ-ТОВ
1 ЭЛЕМЕНТ : 2
2 ЭЛЕМЕНТ : 4
3 ЭЛЕМЕНТ : 3
******)(С*****
1 - ОЧИСТИТЬ 2 - ДОБАВИТЬ 3 - УДАЛИТЬ 4 - ПЕРЕСТАВИТЬ
5 - НАЙТИ 6 - ВЫВЕСТИ НА ЭКРАН 7 - ЗАВЕРШИТЬ
====> ^J
ДОБАВЛЕНИЕ НЕВОЗМОЖНО - НЕТ СВОБОДНОЙ ПАМЯТИ
1 - ОЧИСТИТЬ 2 - ДОБАВИТЬ 3 - УДАЛИТЬ 4 - ПЕРЕСТАВИТЬ
5 - НАЙТИ 6 - ВЫВЕСТИ НА ЭКРАН 7 - ЗАВЕРШИТЬ
====> A3J
ВВЕДИТЕ НОМЕР ЭЛЕМЕНТА СПИСКА ——> ^J
1-ОЧИСТИТЬ 2-ДОБАВИТЬ 3-УДАЛИТЬ 4-ПЕРЕСТАВИТЬ 5-НАЙТИ 6-ВЫВЕСТИ НА ЭКРАН 7-ЗАВЕРШИТЬ
===>A2J
ВВЕДИТЕ ЭЛЕМЕНТ СПИСКА (3 целых числа)
=====>A4J4J4J
1-ОЧИСТИТЬ 2-ДОБАВИТЬ 3-УДАЛИТЬ 4-ПЕРЕСТАВИТЬ 5-НАЙТИ 6-ВЫВЕСТИ НА ЭКРАН 7-ЗАВЕРШИТЬ
===>A6J
*** СПИСОК *** СОДЕРЖИТ 3 ЭЛ-ТОВ
2
3
4
1 ЭЛЕМЕНТ: 2
2 ЭЛЕМЕНТ: 3
3 ЭЛЕМЕНТ: 4
*******»********+*
1-ОЧИСТИТЬ 2-ДОБАВИТЬ 3-УДАЛИТЬ 4-ПЕРЕСТАВИТЬ 5-НАЙТИ 6-ВЫВЕСТИ НА ЭКРАН 7-ЗАВЕРШИТЬ
===>A7J
*** LIST ЗАВЕРШИЛА РАБОТУ ***
Линии разделяют «картинки», высвечиваемые на экране монитора. 5.4. Используемые технические средства
Для функционирования программы требуется IBM PC - совместимый персональный компьютер, работающий под управлением операционной системы MS-DOS версии 6.2 и выше.
5.5. Вызов и загрузка
Программа запускается под управлением операционной системы MS-DOS версии 6.2 и выше из каталога LIST, Исходные модули и исполнимый модуль программы хранятся на дискете в каталоге LIST.
Программа содержит 150 строк и занимает около 15 Кбайт памяти.
5.6. Входные данные
Все входные данные вводятся пользователем с экрана монитора. Входными данными являются:
- номер действия над списком;
- значение элемента списка;
- номер элемента списка.
Предусмотрено 7 действий : ОЧИСТИТЬ, ДОБАВИТЬ, УДАЛИТЬ, ПЕРЕСТАВИТЬ, НАЙТИ, ВВЕСТИ НА ЭКРАН, ЗАВЕРШИТЬ. Описание действий приведено в табл. 5.5.
Номер действия задается в виде натурального целого числа от 1 до 7 после появления на экране меню вида:
1 - ОЧИСТИТЬ 2 - ДОБАВИТЬ 3 - УДАЛИТЬ 4 - ПЕРЕСТАВИТЬ 5 - НАЙТИ 6 - ВЫВЕСТИ НА ЭКРАН 7 - ЗАВЕРШИТЬ
36
и приглашения к вводу
В случае выбора действия ДОБАВИТЬ необходимо при появлении на экране монитора запроса:
«ВВЕДИТЕ ЭЛЕМЕНТ СПИСКА (NUM целых числа)» и приглашения к вводу
ввести поочередно NUM целых чисел (по умолчанию NUM = 3). Каждое целое число может быть не более чем шестизначным, включая знак минуса
для отрицательных чисел.
Таблица 5.5
Действия над списком
N действия | Название действия | Назначение |
1 | ОЧИСТИТЬ | "очистка" списка, т.е. замена предыдущего списка на пустой список |
2 | ДОБАВИТЬ | добавление элемента, состоящего из 3 целых чисел в конец списка |
3 | УДАЛИТЬ | удаление из списка элемента с заданным порядковым номером |
4 | ПЕРЕСТАВИТЬ | перестановка в списке элемента с заданным порядковым номером N с (n+i)-m элементом |
5 | НАЙТИ | поиск индекса в массиве VAVUES значений элемента списка с заданным номером |
6 | ВЫВЕСТИ НА ЭКРАН | вывод на экран текущего состояния списка |
7 | ЗАВЕРШИТЬ | завершение работы со списком |
37
В случае выбора действий УДАЛИТЬ, ПЕРЕСТАВИТЬ, НАЙТИ, необходимо при появлении на экране монитора запроса:
«ВВЕДИТЕ НОМЕР ЭЛЕМЕНТА СПИСКА» и приглашения к вводу
ввести натуральное число N в диапазоне от 1 до LEN (по умолчанию LEN-3).
При некорректном вводе данных на экран монитора выдается диагностическое сообщение :
«ОШИБКА ВВОДА»
и запрос данных повторяется.
Значения символических констант LEN и NUM (определяющих максимальное количество элементов списка и количество целых чисел в последовательности, определяющей значение элемента списка) можно изменить в соответствующих директивах Препроцессора в заголовочном файле list.h. После этого обязательна перекомпиляция программы.
5.7. Выходные данные
Все выходные данные в процессе функционирования программы выводятся на экран монитора.
Выходными данными являются:
- текущее состояние списка;
- индекс элемента с заданным номером;
- диагностические сообщения.
Текущее состояние списка выводится на экран монитора после выбора действия ВЫВЕСТИ НА ЭКРАН в следующей форме:
*** СПИСОК *** СОДЕРЖИТ __N ЭЛЕМЕНТОВ 1 ЭЛЕМЕНТ: зн-е 1 зн-е 2 зн-е 3 _2 ЭЛЕМЕНТ: зн-е 1 зн-е 2 зн-е 3
_N ЭЛЕМЕНТ: зн-е 1 зн-е 2 зн-е 3
^^^^«^^«^Цс:^
38
Для вывода целых чисел, представляющих значение элемента списка отводится по 6 позиций; для вывода номера элемента и количества элементов списка - 5 позиций.
Индекс элемента списка с заданным номером выводится на экран монитора после выбора действия НАЙТИ в следующей форме:
«ИНДЕКС ЭЛЕМЕНТА НОМЕР N = значение»
Для вывода номера элемента списка и значения индекса отводится по 5 позиций.
В случае, когда невозможно выполнение действия над списком на экран монитора выводятся следующие диагностические сообщения:
- «ДОБАВЛЕНИЕ НЕВОЗМОЖНО - НЕТ СВОБОДНОЙ ПАМЯТИ»;
- «УДАЛЕНИЕ NNNNN ЭЛЕМЕНТА НЕВОЗМОЖНО»;
- «ПЕРЕСТАНОВКА NNNNN ЭЛЕМЕНТА НЕВОЗМОЖНА»;
- «NNNNN ЭЛЕМЕНТ НЕ НАЙДЕН».
Здесь NNNNN - пять позиций, отведенных для вывода целого числа.
При запросе вывода на экран монитора пустого списка выводится сообщение :
«СПИСОК ПУСТ» При выборе действия "ЗАВЕРШИТЬ" -*** LIST ЗАВЕРШИЛА РАБОТУ ***
6. ОФОРМЛЕНИЕ ТАБЛИЦ, ИЛЛЮСТРАЦИЙ И ФОРМУЛ
6.1. Таблицы
Таблицы должны оформляться по ГОСТу [5]. Все таблицы должны быть пронумерованы арабскими цифрами порядковой нумерацией в пределах всего отчета. Если таблица одна, ее не нумеруют.
Таблица должна иметь содержательный заголовок, который помещают под словом «Таблица» (с соответствующим номером) над самой таблицей.
Характерные особенности выполнения и заполнения таблиц пояснены на рис 6.1.
Таблица должна состоять из «головки», которая отделяется линией от остальной части таблицы, необходимого количества «строк»
39
(горизонтальных рядов с высотой не менее 8 мм) и «граф» (колонок), которые должны иметь заголовки и подзаголовки.
Надписи заголовков «головки», «граф» и «строю) рекомендуется начинать с прописной буквы и выполнять шрифтом 5 [7]. Надписи подзаголовков выполняются шрифтом 3,5 и начинаются со строчных букв.
Если в графах таблицы цифровые данные выражаются в различных единицах, их обозначение указывают в заголовке каждой графы. При одинаковых единицах такое обозначение помещают над таблицей справа.
В графах таблиц цифры, как правило, располагают так, чтобы числа одного разряда во всей графе были расположены точно друг под другом. Числовые величины в одной графе должны иметь одинаковое количество десятичных знаков. Дробные числа приводят в виде десятичных дробей, за исключением размера в дюймах.
Таблица 1
Рис. 6.1.
Таблицы следует размещать после первого упоминания по тексту и так, чтобы их можно было читать не поворачивая отчет. Если это невозможно, таблицу располагают так, чтобы для чтения отчет надо было повернуть по часовой стрелке. При переносе таблицы на следующую страницу отчета «головку» таблицы следует повторить и над ней поместить слова
40
«Продолжение таблицы (с указанием ее номера)». Заголовок таблицы не повторяют.
6.2. Иллюстрации
Количество иллюстраций в отчете должно быть таким, чтобы придать излагаемому тексту ясность и конкретность.
Все иллюстрации (графики, фотографии, схемы, чертежи и пр.) именуются в отчете рисунками и оформляются на форматах А4, A3 и т.д. [2]. (Форматы более А4 не рекомендуются, но рекомендуется применять масштабы по ГОСТу [8].) Они нумеруются арабскими цифрами порядковой нумерацией в пределах всего отчета. Повторные ссылки на рисунки следует давать с сокращенным словом «смотри», например: см. рис 1. Рисунки помещают сразу после ссылки на следующей странице текста. На рисунок независимо от формата (более А4) ставится один номер страницы. Рисунки следует размещать так, чтобы их можно было рассматривать, не поворачивая отчет. Если это невозможно, их располагают таким образом, чтобы надо было повернуть отчет по часовой стрелке. Если в отчете дается большое количество рисунков и они затрудняют чтение текста, их разрешается располагать по порядку номеров в конце отчета либо в приложениях.
Рисунки должны иметь название, которое помещают над рисунком. При необходимости под рисунком помещают поясняющие данные (подрисуночный текст). Надписи на рисунках выполняют чертежным шрифтом по ГОСТу [7] единообразно по размеру на протяжении всего