Научная статья на тему 'ПРОГРАММИРОВАНИЕ АРИФМЕТИЧЕСКИХ ОПЕРАЦИЙ В ПОЗИЦИОННОЙ СИСТЕМЕ С ОСНОВАНИЕМ P'

ПРОГРАММИРОВАНИЕ АРИФМЕТИЧЕСКИХ ОПЕРАЦИЙ В ПОЗИЦИОННОЙ СИСТЕМЕ С ОСНОВАНИЕМ P Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
16
4
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ПОЗИЦИОННЫЕ СИСТЕМЫ СЧИСЛЕНИЯ / АРИФМЕТИКА В ПОЗИЦИОННЫХ СИСТЕМАХ СЧИСЛЕНИЯ / СИСТЕМЫ СЧИСЛЕНИЯ / POSITIONAL NUMBER SYSTEMS / ARITHMETIC IN POSITIONAL NUMBER SYSTEMS / NUMBER SYSTEMS

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Зверева Т.С., Савенкова Е.О., Манаков А.С.

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

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

DEVELOPMENT OF ATTENTION OF CHILDREN OF PRESCHOOL AGE IN GAME ACTIVITY

This article reveals a program that performs arithmetic operations on numbers in positional numeral systems the work with the image to output the result in the graphics window.

Текст научной работы на тему «ПРОГРАММИРОВАНИЕ АРИФМЕТИЧЕСКИХ ОПЕРАЦИЙ В ПОЗИЦИОННОЙ СИСТЕМЕ С ОСНОВАНИЕМ P»

МАТЕМАТИКА, ИНФОРМАТИКА И ИНЖЕНЕРИЯ

УДК 004.021

Зверева Т. С. студент бакалавриата Савенкова Е. О. студент бакалавриата Манаков А. С. студент бакалавриата Воронежский государственный педагогический университет

Россия, г. Воронеж ПРОГРАММИРОВАНИЕ АРИФМЕТИЧЕСКИХ ОПЕРАЦИЙ В ПОЗИЦИОННОЙ СИСТЕМЕ С ОСНОВАНИЕМ P

Аннотация:

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

Ключевые слова: позиционные системы счисления, арифметика в позиционных системах счисления, системы счисления

Zvereva T.S. Savenkova E. O. Manakov A.S. bachelor students Voronezh State Pedagogical University

Russia, Voronezh DEVELOPMENT OF ATTENTION OF CHILDREN OF PRESCHOOL AGE IN GAME ACTIVITY

Annotation:

This article reveals a program that performs arithmetic operations on numbers in positional numeral systems the work with the image to output the result in the graphics window.

Key words: positional number systems, arithmetic in positional number systems, number systems

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

В позиционных системах счисления все зависит от положения значения цифры. Они являются удобными для проведения вычислительных операций,

благодаря этому получили широкое распространение.

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

Программа написана на языке PascalABC.NET. В качестве данных в программе используются целые положительные числа, вводимые с клавиатуры. В данной работе для выполнения арифметических операций в позиционных систем счисления используется несколько функций и процедур. Для вывода информации в виде картинки применяется модуль GraphABC, который представляет собой простую графическую библиотеку и предназначен для создания графических и анимационных программ. Рисование осуществляется в специальном графическом окне.

В модуле GraphABC определен ряд констант, типов, процедур, функций и классов для рисования в графическом окне, которые рассмотрены ниже.

Для того чтобы отыскать позицию символа в алфавите, необходимо пройтись по всему алфавиту и если текущий символ будет равен искомому, то нужно завершить поиск, и возвратить позицию искомого символа. function find(c: string): integer; var

i: integer; begin

for i:=0 to alf_length do

ifalf[i]=c then

break;

result:=i;

end;

Следующим этапом будет создание процедуры для отображения суммы и разности с выводом в графическом окне. Для того чтобы вывести в графическом окне, необходимые числа и остаток, нужно задать цвет рисования (SetFontColor) и размер шрифта (SetFontSize),ширину линии (SetPenWidth) и цвет линии (SetPenColor). Необходимой функцией в программе является - функция (functiondel_prob_nach), которая удаляет нули в начале строки, кроме последнего, используется при сложении и вычитании. functiondel_prob_nach(x: string): string; begin

while (x[1]='0') and (length(x)>1) do

delete(x,1,1);

result:=x;

end;

Следующая функция необходима для того, чтобы заменить, имеющиеся

нули пробелами.

functionupdate_zero(x: string): string; var

i: integer; begin

whilepos('0',x)>0 do begin

i:=pos('0',x); delete(x,i,1); insert(' ',x,i); end;

result:=x;

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

Функция разности работает в том случае, если уменьшаемое больше вычитаемого. Принцип работы данной функции основан на том, что сначала необходимо добиться, чтобы числа стали равной длины. Если соответствующие разряды числа x >= числа у, то производим вычитание. Если процедура прошла, успешна, то делаем визуализацию.

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

• в первом цикле проходим в обратной последовательности по цифрам второго числа;

• во втором цикле проходим в обратной последовательности по цифрам первого числа;

• в третьем цикле проходим по всем столбцам матрицы в обратной последовательности;

• в четвертом цикле проходим по всем символам вертикально; Далее убираем не нужные нули и определяем максимальную длину

числа х и у. Определить максимальную длину числа и вывести массив на экран, задав цвет, размер шрифта.

Процедура деления состоит в следующем, необходимо нарисовать число, которое будем делить, задать цвет и размер шрифта и вывести его в графическом окне. Циклом while определяем второе число. if length(y)<length(x) then while k<length(x) do

Затем определяем количество снесенных, чисел смещаемся вправо на разряд и получаем остаток: xost:=k-length(ost)-1;

Если в остатке 0 , то убираем его и меняем его на пустоту, если остаток не пустой, то выполняем вычитание. Из остатка вычитаем число которое подобрали.Далее выводим последний остаток, число, ответ, вертикальную и горизонтальную полосу. xost:=k-length(ost)-1; for t:=1 to length(ost) do

textout(nachx+fontSize*(xost+t),nachy+yost*fontSize,ost[t]); for t:=1 to length(y) do

textout(nachx+(length(x)+t)*fontSize,nachy,y[t]); for t:=1 to length(cel) do

textout(nachx+(length(x)+t)*fontSize,nachy+fontSize,cel[t]); line(nachx+length(x)*fontSize+10,nachy,nachx+length(x)*fontSize+10,nac hy+fontSize*2);

line(nachx+length(x)*fontSize+10,nachy+fontSize,nachx+(length(x)+length (cel)+1)*fontSize,nachy+fontSize); end;

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

functionisValid(x: string; osn: integer): boolean;

vari: integer;

begin

result:=true;

fori:=1 tolength(x) do

iffind(x[i])>=osn then

result:=false;

end;

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

write('Введите основание: '); readln(osn); write(osn); write(' Введите А: ');

repeat readln(a);

untilisValid(a,osn); write(a);

write(' Введите B: ');

repeat

readln(b);

untilisValid(b,osn);

write(b);

write(' Укажите действие: '); readln(znak); write(znak); case (znak) of '+' : res:=sum(a,b,osn,true); '-' : res:=razn(a,b,osn,true); '*' : pro(a,b,osn); '/' :delenie(a,b,osn); elsewrite('Действие указано неверно!'); end;

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

• при выборе системы счисления необходимо учитывать зависимость длины числа и количество устойчивых состояний элементов от основания системы счисления;

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

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

Использованные источники: 1. Стариченко Б. Е. Теоретические основы информатики. Учебник для вузов. - 3-е изд. перераб. и доп. - М.: Горячая линия - Телеком, 2016. - 400 с.: ил.

i Надоели баннеры? Вы всегда можете отключить рекламу.