ISSN 0236-235X (P)
ISSN 2311-2735 (E)

Публикационная активность

(сведения по итогам 2017 г.)
2-летний импакт-фактор РИНЦ: 0,500
2-летний импакт-фактор РИНЦ без самоцитирования: 0,405
Двухлетний импакт-фактор РИНЦ с учетом цитирования из всех
источников: 0,817
5-летний импакт-фактор РИНЦ: 0,319
5-летний импакт-фактор РИНЦ без самоцитирования: 0,264
Суммарное число цитирований журнала в РИНЦ: 6012
Пятилетний индекс Херфиндаля по цитирующим журналам: 404
Индекс Херфиндаля по организациям авторов: 338
Десятилетний индекс Хирша: 17
Место в общем рейтинге SCIENCE INDEX за 2017 год: 527
Место в рейтинге SCIENCE INDEX за 2017 год по тематике "Автоматика. Вычислительная техника": 16

Больше данных по публикационной активности нашего журнале за 2008-2017 гг. на сайте РИНЦ

Вход


Забыли пароль? / Регистрация

Добавить в закладки

Следующий номер на сайте

4
Ожидается:
16 Декабря 2018

Программный блок ввода с коррекцией

Статья опубликована в выпуске журнала № 3 за 1999 год.[ 24.09.1999 ]
Аннотация:
Abstract:
Авторы: Джагаров Ю.А. () - , ,
Ключевое слово:
Ключевое слово:
Количество просмотров: 4336
Версия для печати
Выпуск в формате PDF (1.07Мб)

Размер шрифта:       Шрифт:

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

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

Ниже описан принцип построения блока загрузки одномерного (фигура 1) и двухмерного (фигура 2) массивов на основе управления параметром цикла на примере цикла FOR-NEXT (IBM DOS QBASIC).

На фигуре 1 значение переменной N определяет мощность загружаемого массива А. Переменная К в строке 2 позволяет установить номер позиции, с которой предполагается загружать массив. Символьная переменная X$ используется для приема как вводимого числа, так и нецифрового символа, используемого в качестве кода ошибки. Оператор условного перехода в строке 6 выполняет коррекцию параметра цикла – переменная I при вводе кода ошибки. Выбор диапазона от символа "*" до символа ">" позволяет использовать в качестве кода ошибки любой нецифровой символ, в том числе и "пустой ввод" – пробел [2]. При вводе кода ошибки происходит уменьшение текущего значения переменной I на две единицы и возврат в начало цикла по оператору NEXT в строке 10. В результате предлагается выполнить ввод в предыдущую (I-1)-ю позицию. Последовательным вводом кода ошибки возможен возврат к любой ранее введенной позиции. Оператор условного перехода в строке 5 предотвращает выход за установленный переменной К нижний предел при ошибочном вводе кода ошибки в исходную позицию. Посредством ввода знака " ' " выполняется переход к следующей позиции без изменения значения, ранее введенного в эту позицию, например при продолжении ввода после внесения исправлений. При этом число, сохраняемое в данной позиции, индицируется на экране. Ввод символа "е" позволяет закончить загрузку до достижения последней позиции или перейти в режим коррекции, начиная с исходной или конечной позиции.

При передаче в переменную X$ числовой константы ее значение переводится из символьной формы в числовую с помощью функции VAL и передается в числовой массив А на место, определяемое текущим значением переменной I. При этом производится индикация числа, записанного в массив А.

После завершения ввода в строке 11 формируется соответствующее сообщение с предложением ввести символ "Y", если требуются исправления, или любой иной символ в противном случае. При вводе символа "Y" выводится сообщение об установленном значении исходной позиции и предложение ввести символ "Y", если требуется ее изменение. При вводе символа "Y" происходит переход на строку 2, что позволяет ввести новое значение в переменную К и продолжить загрузку массива, начиная с новой исходной позиции. При вводе произвольного символа переменная I принимает значение N, и осуществляется переход на строку 5, благодаря чему предлагается выполнить ввод в последнюю N-ю позицию. От последней позиции возможен возврат к любой предыдущей позиции описанным выше образом. Ввод символов управления осуществляется в ждущем режиме, что позволяет управлять блоком загрузки посредством нажатия одной клавиши.

На фигуре 2 числа М и N определяют соответственно "строки" и "столбцы" числового массива A. Переменные I и J – параметры внешнего и внутреннего циклов – управляют индексами "строк" и "столбцов". Управление возвратом выполняется по переменной J. Переменные К и L задают исходную позицию ввода. Дополнительно к изложенному выше в строке 6 выполняется переход на предыдущую (I-1)-ю строку при отрицательном значении переменой J. При этом устанавливается значение J=N-l. При I<К значение параметра I устанавливается равным К в строке 7. После возврата в начало цикла по оператору NEXT в строке 10 предлагается выполнить ввод в последнюю N-ю позицию предыдущей строки. Присвоение J=K блокирует выход за нижние пределы индексов I и J, определенные значением переменных К и L. Использование переменной R позволяет загружать строки массива, не содержащие исходную позицию – элемент А(К,L), начиная с первого элемента строки.

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

Очевидно, что описанный принцип управления параметром цикла применим и к циклам типа WHILE.

Список литературы

1.        Дьяконов В.П. Справочник по алгоритмам и программам на языке Бейсик для персональных ЭВМ. - М.: Наука, 1987. - С.65.

2.        Уолш В. Программирование на Бейсике. - М.: Радио и связь,1988. - С.319.


Постоянный адрес статьи:
http://swsys.ru/index.php?page=article&id=949
Версия для печати
Выпуск в формате PDF (1.07Мб)
Статья опубликована в выпуске журнала № 3 за 1999 год.

Возможно, Вас заинтересуют следующие статьи схожих тематик: