Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ЯП / YP2 моё

.docx
Скачиваний:
47
Добавлен:
11.05.2015
Размер:
26.29 Кб
Скачать

Министерство образования и науки РФ

ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ СИСТЕМ УПРАВЛЕНИЯ И РАДИОЭЛЕКТРОНИКИ (ТУСУР)

Кафедра комплексной информационной безопасности электронно-вычислительных систем (КИБЭВС)

Вещественные числа.Ошибки при работе с вещественными числами.

Отчет по лабораторной работе №2

по дисциплине: «Языки программирования»

Студент гр. 520-1

Мельников М.А.

Доцент каф. КИБЭВС

Романов А.С.

2013

Введение

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

Задание

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

Краткая теория

Существуют три основные ошибки вычислений, возникающие при выполнении операции над вещественными числами:

  1. Исчезновение операнда. Операнд может исчезнуть, если он относительно мал по сравнению с другим операндом.

  2. Умножение ошибки – многократное увеличение абсолютной погрешности операнда.

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

Ход работы

В качестве исходных значений принять следующие значения:

x=<номер студенческого билета><номер группы>,<дата рождения>

у=х*10-10

с=х+у

с,=округление с до 9 знака после запятой

z=х+10-8

к=округление до целого(х)

Программа была написана в среде Visual Studio 2010 C#.

Используемый тип данных – double.

Заключение

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

Приложение

Листинг программы

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

namespace YP_3

{

public partial class Form1 : Form

{

public Form1()

{

InitializeComponent();

}

private void Form1_Load(object sender, EventArgs e)

{

double x, y, c, c1, z, k, A, O, r;

x = 10520415202.29031993;

label1.Text += "x = " + x;

y = x * 0.0000000001;

label2.Text += "y = " + y;

r = Math.Round(y, 4);

label20.Text += "r = " + r;

A = Math.Abs(y - r);

label8.Text += "A = " + A;

O = A / y;

O = Math.Round(O, 10);

label9.Text += "O = " + O;

c = x + y;

label3.Text += "c = " + c;

r = Math.Round(c, 4);

label21.Text += "r = " + r;

A = Math.Abs(c - r);

label10.Text += "A = " + A;

O = A / c;

O = Math.Round(O, 10);

label11.Text += "O = " + O;

c1 = Math.Round(c, 9);

label4.Text += "c1 = " + c1;

r = Math.Round(c1, 4);

label22.Text += "r = " + r;

A = Math.Abs(c1 - r);

label12.Text += "A = " + A;

O = A / c1;

O = Math.Round(O, 10);

label13.Text += "O = " + O;

z = x + 0.00000001;

label5.Text += "z1 = " + z;

r = Math.Round(z, 4);

label23.Text += "r1 = " + r;

A = Math.Abs(z - r);

label14.Text += "A = " + A;

O = A / z;

O = Math.Round(O, 10);

label15.Text += "O = " + O;

z = x - 0.00000001;

label6.Text += "z2 = " + z;

r = Math.Round(z, 4);

label24.Text += "r2 = " + r;

A = Math.Abs(z - r);

label16.Text += "A = " + A;

O = A / z;

O = Math.Round(O, 10);

label17.Text += "O = " + O;

k = Math.Round(x);

label7.Text += "k = " + k;

label25.Text += "r = " + x;

A = Math.Abs(k - x);

label18.Text += "A = " + A;

O = A / x;

O = Math.Round(O, 10);

label19.Text += "O = " + O;

}

}

}

Соседние файлы в папке ЯП