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


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

Номинация: Самая актуальная работа





Таблица 1.
Таблица 1.

Оценить:

Рейтинг: 4.26

1ое, 2ое и 3е место: II место

Наставник: Кузьмина Ирина Викторовна

Ученик: Морозов Никита Александрович (22 года)

Город: г. Томск

Название колледжа: ГОУ СПО «Томский государственный промышленно-гуманитарный колледж»

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

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

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

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

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

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

Очевидно, достоверность результата произведенных измерений будет тем большей, чем меньше погрешность измерений. Вследствие этого наряду со значением измеренной величины необходимо учитывать погрешность её определения.

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

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

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

Абсолютной погрешностью измерения является величина, определяемая разницей между результатом измерения x и истинным значением измеряемой величины x0:


Величина δx, равная отношению абсолютной погрешности измерения к результату измерения, является относительной погрешностью.


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

X=α1βn+ α2βn-1+…+ αmβn-m+1,

где α1 – первая значащая цифра числа;

βn – основание системы счисления;

, i=1,2,…m.

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

Значащая цифра αk считается верной, если имеет место неравенство:

,

где , в противном случае αk является сомнительной цифрой. Чаще всего при расчётах ω – берется равной 0,5.

В рамках студенческой исследовательской работы для определения верных и сомнительных цифр в числе была создана программа на языке программирования Турбо-Паскаль (Приложение 1). Данная программа позволяет определять порядок анализируемого числового значения и определять верные цифры в записи числа. В программе предусмотрен диалоговый режим по вводу данных, который предоставляет пользователю варианты ввода данных с клавиатуры или считывания исследуемых значений из внешнего файла (при этом имя файла вводится пользователем через специальный запрос, осуществляемый программой). Программа даёт возможность определять верные цифры в записи числа не только при известной абсолютной погрешности, но также выполняет эти расчёты в случае, если известна только относительная погрешность. Для выполнения программы необходимы следующие исходные данные: числовое значение, в котором определяют верные цифры, погрешность (либо абсолютная, либо относительная и коэффициент w, значения которого берутся в диапазоне 0,5-1.0). После выполнения программы на экран выводятся: исходной числовое значение, порядок числа и новое числовое значение в записи которого содержатся только верные цифры.

В Томском государственном промышленно-гуманитарном колледже в лаборатории «Анализа нефти» на лабораторно-практических занятиях по дисциплине «Анализ нефти» студентами специальности «Аналитический контроль качества химических соединений» проводятся работы по определению содержания в пробах нефти серы и механических примесей. При проведении данных исследований используются прибор «Буревестник» и электронные весы NR-200. При тестировании разработанной программы в качестве исследуемых на верные и сомнительные цифры были взяты данные по содержанию серы и механических примесей, полученные студентами на лабораторно-практических занятиях. Результаты обработки данных по содержанию примесей серы в пробах нефти на определение верных цифр в полученных данных на приборе «Буревестник» приведены в Таблице 1.

Как видно из первых трёх столбцов Таблицы 1., все данные по содержанию примеси серы в пробах нефти, полученные на приборе «Буревестник» имеют одну верную цифру в записи числового значения (0,005). Правая часть таблицы представляет оценку верных цифр в числовых значениях, полученных путём некоторых вычислений. Таким образом, предложенная программа может быть использована для определения верных цифр в записи экспериментально полученных или вычисленных значений с тем, чтобы в дальнейших расчётах не учитывать сомнительные цифры.

Приложение 1

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

program qq;

Uses CRT;

var

x,z,a,m:real;

c,l,t,i,n,k,h,y:integer;

s,r,im:string;

q,sim:char;

f:text;

PROCEDURE Porydok(s:string; var n:integer);{Процедура - определяет порядок числа}

var

i:integer;

begin

i:=3;

n:=-1;

while s[i]='0' do

begin

n:=n-1;

i:=i+1;

end;

end;

PROCEDURE VERN(Var n:integer; x,a:real; Var s:string);

{Процедура - определяет верные цифры в записи числа}

Var

c,l,t,i,k,h,y:integer;

r:string;

Begin

str(x:10:8,s);

if s[1]='-' then

begin

q:='-';

delete(s,1,1);

end;

l:=length(s);

if s[1]='0' then

Porydok(s,n)

else

begin

t:=pos('.',s);

n:=t-2;

end;

k:=1;

repeat

h:=n-k+1;

k:=k+1;

until (a>m*1E*h) or (k>l);

i:=k+abs(n);

if s[i+1]<'5' then

s:=copy(s,1,i)

else

begin

val(s[i],y,c);

y:=y+1;

str(y,r);

s[i]:=r[1];

s:=copy(s,1,i);

end;

l:=length(s);

end;

begin

Im:='';

repeat

writeln('Нажмите на клавишу ENTERЕ, сли данные для обработки программой считываются из внешнего файл');

writeln('Нажмите на любую другую клавишу, если данные для обработки программой вводятся с клавиатуры);

sim:=ReadKey;

if sim<>#13 then

begin

writeln('Введите числовое значение: ');

readln(x);

z:=x;

write('Введите погрешность измерения: ');

readln(a);

write('Введите коэффициент w=0,5 или 1: ');

readln(m);

Writeln('Нажмите клавишу ENTER, если введена абсолютная погрешность');

Writeln('Нажмите любую другую клавишу, если введена относительная погрешность');

sim:=ReadKey;

If sim<>#13 then

a:=a*abs(x);

Porydok(s,n);

VERN(n,x,a,s);

Writeln('____________________________');

Writeln('Анализируемое число=',z:10:8);

Writeln;

Writeln('Порядок числа=',n);

Writeln;

Write('‚Верные цифры в записи числа =',q);

Writeln(s);

Writeln;

Writeln('_______________________________________');

Wwriteln;

end

else

begin

Writeln('Введите имя файла: ');

read(Im);

Assign (f,Im);

Reset(f);

Writeln('Нажмите на клавишу ENTERЕ, сли данные для обработки программой считываются из внешнего файл');

Writeln('Нажмите на любую другую клавишу, если данные для обработки программой вводятся с клавиатуры);

sim:=ReadKey;

While not(Eof(f)) do

begin

readln(f,a,m,x);

z:=x;

If sim<>#13 then

a:=a*abs(x);

Porydok(s,n);

VERN(n,x,a,s);

Writeln('____________________________');

Writeln('Анализируемое число=',z:10:8);

Writeln;

Writeln('Порядок числа=',n);

Writeln;

Write('‚Верные цифры в записи числа =',q);

Writeln(s);

Writeln;

Writeln('_______________________________________');

Writeln;

end; end;

Writeln('Требуется оценить новое числовое значение: ');

Writeln('ДА - ENTER, НЕТ - любая клавиша ');

sim:=ReadKey;

until sim<>#13;

END.