Форматирование результатов расчетов 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Форматирование результатов расчетов



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

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

format(<строка форматов>,<список объектов форматирования>)

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

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

В таблице 1.2 рассмотрено несколько примеров использования функции format. Подробное описание функции можно найти в справочной системе Delphi.

Таблица 1.2 – Примеры использования функции format()

Обращение к функции Значения объектов форматирования Возвращаемое значение
format(‘Результат = %1.3f’, [x]) X=23.45678 Результат =23.457
format(‘%1d+%1d=%1d’,[a, b, a+b] a=12. b=13 12+13=25
format(‘%1s= %1.3f’, [r, x]) r=’Результат’. x=23.4 Результат =23.400

В первом примере спецификатор имеет значение %1.3f и относится он к переменной х. Символ f указывает на то, что форматироваться будет вещественное число, но в форме с фиксированной точкой. Число 3 после точки указывает на то, что для дробной части числа выделяется три позиции. Поэтому результат был округлен до трех знаков после точки. Число 1 перед точкой указывает на то, что общее число позиций для вывода объекта равно 1. Это явно мало, поэтому функция выделяет столько позиций, сколько требуется. В данном случае требуется 6 позиций (две на целую часть, одна на точку, и три на дробную часть). Если бы перед точкой стояло число большее 6, например 9, то слева было бы добавлено три пробела.

Во втором примере форматируются целые числа, поэтому для определения типа используется символ d. Числом задается требуемое количество позиций.

В третьем примере одним из объектов форматирования является строка символов, поэтому в качестве символа для определения типа используется буква s.

1.2.5 Контольный пример

Перед тем, как проверять работу приложения следует подготовить контрольный пример. Контрольные примеры используются для того, чтобы протестировать созданное приложение. Обычно таких примеров создается несколько, для того чтобы проверить различные варианты в работе приложения. Как следует из рисунка 1.1, в данном проекте было обработано 5 контрольных примеров. Два из них проверяли реакцию приложения на некорректные исходные данные, при которых расчет был невозможен.

В качестве примера оценим результат расчета по формуле, приведенный на рисунке 1.1. Предположим, а=4, x=3 и n=2.

При таких значениях переменных ax=64, sin2(3)<<1, и значение числителя будет чуть больше, чем 64.

Значение подкоренного выражения в знаменателе будет 4,5. Квадратный корень из 4,5 приблизительно равен 2,1.

Окончательный результат должен быть немного меньше, чем 32. Результат расчета, приведенный на рисунке 1.1, подтверждает это.

Содержание отчета

– Наименование работы.

– Цель работы.

– Задание к работе.

– Перечень компонент, использованных для создания интерфейса пользователя, с описанием их основных свойств.

– Тексты созданных модулей с пояснениями в виде комментариев для всех основных элементов модулей.

– Контрольные примеры.

– Результаты тестирования проекта, в виде рисунка с изображением интерфейса приложения с протоколом выполненных расчетов.

– Выводы об особенностях программирования расчетов по формулам.

 

 

Рекомендованая литература

1. Культин Н. Delphi 6. Программирование на Object Pascal. – СПб.:БХВ-Петербург,2002.

2. Ставровский А.Б. Турбо Pascal 7.0/ Учебник. – К.: BHV, 2000.

 

2 РАСЧЕТНО-ГРАФИЧЕСКАЯ РАБОТА № 2.
ПРОГРАММИРОВАНИЕ ЦИКЛОВ

Цели работы:

– ознакомиться с принципами использования циклов;.

– освоить изображение схем алгоритмов;

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

ЗАДАНИЯ К РАСЧЕТНО-ГРАФИЧЕСКОЙ РАБОТЕ

В работе создается приложение, в котором решается четыре задачи:

– решение трансцендентного уравнения методом итераций;

– вычисление суммы бесконечного ряда с заданной точностью;

– обработка последовательности целых чисел;

– табулирование значений некоторой функции.

Задания следует выбирать в соответствии с последней цифрой номера зачетной книжки из таблиц 2.1 - 2.3, а также таблицы 1.1 (формулы для задачи табулирования функции).

Таблица 2.1 Уравнения, решаемые методом итераций  
Вариант Уравнение Итерационная формула Ограничения  
  ab<1, x0>0  
  a>0, b>0, b/a<6, x0<π/2  
    c>0, x0>0  
  a>1, x0>0  
  ab>c, x0<π/(2b)  
  a>0, b>0 c>1, x0>0  
  a>0, c>0, x0>0  
  a>1, c>1, b<c, x0>1  
  a>0, b>0, c>0, x0>0  
  a>0, b>0, c>0, x0>0  
Таблица 2.2 Задания на вычисление сумм бесконечных[ рядов
Функция Ряд Рекуррентная формула
    e
    , для х<1
    , для х<1
    , для х<1
  , для х>1
    cos(x)
    sh(x)
    arctg(x)
    ln(1+x)
 
               

 

 

Таблица 6.5 – Варианты заданий для формы «Обработка целых чисел»
Вариант Задание
  Написать программу, которая обеспечивает вывод в компонент TMemo, в возрастающем порядке, всех трехзначных целых чисел, в десятичной записи которых нет одинаковых цифр. Рекомендуется преобразовывать числа в строки и анализировать отдельные символы.
  Обеспечить вывод в компонент TMemo всех целых чисел, попадающих в интервал от ln(X) до exp(X), где Х > 1, и вычисление суммы этих чисел. Для округления границ диапазона использовать функции Ceil() и Floor().
  Обеспечить вывод в компонент TMemo всех трехзначных целых чисел, сумма цифр которых равна введенному числу N (1< N < 27). Определить количество этих чисел. Для выделения отдельных цифр использовать преобразование чисел в строки.
  Обеспечить вывод в компонент TMemo всех целых чисел, попадающих в интервал от n1 до n2 и кратных n3. Определить количество этих чисел.
  Обеспечить вывод в компонент TMemo всех целых чисел, попадающих в интервал от n1 до n2 и которые являются удвоенными нечетными числами. Подсчитать количество этих чисел.
  В случайной последовательности из n целых чисел подсчитать количество чисел меньших m и обеспечить вывод этих чисел в компонент TMemo.
  Обеспечить вывод в компонент TMemo последовательности из n целых чисел и определить число соседств четных чисел в этой последовательности.
  Обеспечить вывод в компонент TMemo случайной последовательности из n целых чисел в диапазоне от 0 до m и подсчитать, сколько раз в ней встречалось число k.
  Найти все простые числа, которые меньше N, и вывести их в компонент TMemo. Простым называют целое число, которое нацело делится только на 1 и на себя. Для тестирования чисел можно последовательно проверять результат деления каждого числа X на числа от 2 до X/2
  Для введенного натурального числа N получить все его натуральные и вывести их в компонент TMemo. Для нахождения делителей следует последовательно проверять результат деления числа N на числа от 2 до N/2.

РЕКОМЕНДАЦИИ ПО СОСТАВЛЕНИЮ АЛГОРИТМОВ РЕШАЕМЫХ ЗАДАЧ

Итерационные алгоритмы

Алгоритм решения уравнений, приведенных в таблице 2.1 заключается в следующем. Берется какое-нибудь приближенное значение корня уравнения х0 (начальное приближение) и подставляется в итерационную формулу. Полученное по итерационной формуле новое приближенное значение корня сравнивается с предыдущим. Если эти значения существенно отличаются друг от друга, то новое приближенное значение подставляется в итерационную формулу вместо старого и получается новое приближенное значение. Так продолжается до тех пор, пока новое и старое приближения станут достаточно близкими дуг к другу.

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

Рисунок 2.1 – Схема итерационного алгоритма

 

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

(2.1)

где а – число, из которого извлекается корень, xold – приближенное значение корня, xnew – более точное, чем xold значение корня.

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

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

Для реализации этого алгоритма используется цикл REPEAT.

Схема алгоритма, реализующего этот метод, представлена на рисунке 2.1.

В алгоритме предусмотрено прерывание цикла с помощью инструкции break в том случае, если переменная Xold равна нулю, для того, чтобы исключить деление на 0.



Поделиться:


Последнее изменение этой страницы: 2017-02-07; просмотров: 213; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 52.14.150.55 (0.014 с.)