Форум программистов, компьютерный форум, киберфорум
Pascal ABC
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/22: Рейтинг темы: голосов - 22, средняя оценка - 4.86
5 / 5 / 0
Регистрация: 15.01.2010
Сообщений: 50
1

определение точности

06.09.2010, 11:39. Показов 4303. Ответов 8
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
вычислить машинную точность E для 2х,4х,8ми,10ти,12ти,16ти байтных чисел.
вычисления ведутся с некоторым шагом - h и уменьшение ведется до определенной точности - Е, при котором машина должна вычесть а+Е=а, если условие не вып-ся, то е=е/h.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.09.2010, 11:39
Ответы с готовыми решениями:

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

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

Вычислить сумму ряда с заданной степенью точности
пожалуйста, помогите написать программу на ABC: Вычислите сумму ряда с заданной степенью точности...

Вычислить значение суммы ряда с заданной степенью точности
вычислить значение суммы ряда с заданной степенью точности ε=0,001 в точке x0 (если заданна...

8
13104 / 5885 / 1706
Регистрация: 19.09.2009
Сообщений: 8,808
06.09.2010, 13:58 2
Вычисление машинной точности для типов: Single, Double, Extended.
1. В степени двойки:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
program Project1;
 
function GetESingle : Integer;
var
  i : Integer;
  B1, B2, E : Single;
begin
  B2 := 1;
  E := 1;
  i := 0;
  repeat
    Inc(i);
    B1 := B2;
    E := E / 2;
    B2 := B1 + E;
  until B1 = B2;
  GetESingle := i;
end;
 
function GetEDouble : Integer;
var
  i : Integer;
  B1, B2, E : Double;
begin
  B2 := 1;
  E := 1;
  i := 0;
  repeat
    Inc(i);
    B1 := B2;
    E := E / 2;
    B2 := B1 + E;
  until B1 = B2;
  GetEDouble := i;
end;
 
function GetEExtended : Integer;
var
  i : Integer;
  B1, B2, E : Extended;
begin
  B2 := 1;
  E := 1;
  i := 0;
  repeat
    Inc(i);
    B1 := B2;
    E := E / 2;
    B2 := B1 + E;
  until B1 = B2;
  GetEExtended := i;
end;
 
begin
  Writeln('Вещественный тип Single. Размер: ', SizeOf(Single), ' байт.');
  Writeln('Машинная точность для типа Single: ESingle = 2^(-', GetESingle, ')');
  Writeln;
  Writeln('Вещественный тип Double. Размер: ', SizeOf(Double), ' байт.');
  Writeln('Машинная точность для типа Double: EDouble = 2^(-', GetEDouble, ')');
  Writeln;
  Writeln('Вещественный тип Extended. Размер: ', SizeOf(Extended), ' байт.');
  Writeln('Машинная точность для типа Extended: EExtended = 2^(-', GetEExtended, ')');
 
  Readln;
end.
2. В степени десятки:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
program Project1;
 
function GetESingle : Integer;
var
  i : Integer;
  B1, B2, E : Single;
begin
  B2 := 1;
  E := 1;
  i := 0;
  repeat
    Inc(i);
    B1 := B2;
    E := E / 10;
    B2 := B1 + E;
  until B1 = B2;
  GetESingle := i;
end;
 
function GetEDouble : Integer;
var
  i : Integer;
  B1, B2, E : Double;
begin
  B2 := 1;
  E := 1;
  i := 0;
  repeat
    Inc(i);
    B1 := B2;
    E := E / 10;
    B2 := B1 + E;
  until B1 = B2;
  GetEDouble := i;
end;
 
function GetEExtended : Integer;
var
  i : Integer;
  B1, B2, E : Extended;
begin
  B2 := 1;
  E := 1;
  i := 0;
  repeat
    Inc(i);
    B1 := B2;
    E := E / 10;
    B2 := B1 + E;
  until B1 = B2;
  GetEExtended := i;
end;
 
begin
  Writeln('Вещественный тип Single. Размер: ', SizeOf(Single), ' байт.');
  Writeln('Машинная точность для типа Single: ESingle = 10^(-', GetESingle, ')');
  Writeln;
  Writeln('Вещественный тип Double. Размер: ', SizeOf(Double), ' байт.');
  Writeln('Машинная точность для типа Double: EDouble = 10^(-', GetEDouble, ')');
  Writeln;
  Writeln('Вещественный тип Extended. Размер: ', SizeOf(Extended), ' байт.');
  Writeln('Машинная точность для типа Extended: EExtended = 10^(-', GetEExtended, ')');
 
  Readln;
end.
0
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
06.09.2010, 14:01 3
Еще real -4 байта, а 12 и 16 я даже не знаю...
0
13104 / 5885 / 1706
Регистрация: 19.09.2009
Сообщений: 8,808
06.09.2010, 14:08 4
Вот Real в Pascal возможно 6 байт... В Delphi Real = Double - 8 байт. Типы Single, Double и Extended - в Delphi и Pascal представлены одинаково - 4, 8 и 10 байт, соответственно (стандарт IEEE). И ещё в Delphi есть тип Real48 - 6 байт. Возможно, как раз, в Pascal тип Real соответствует именно этому типу? У меня Pascal нет под рукой - можно проверить через SizeOf(). Причём, в PascalABC и Borland Pascal этот тип может быть представлен по-разному...
0
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
06.09.2010, 14:12 5
В Турбо Паскале однозначно определено
Single=4
Real=6
Double=8
Extended=10
в других не знаю, вот integer в Турбо и например АВС это разное.
0
5 / 5 / 0
Регистрация: 15.01.2010
Сообщений: 50
06.09.2010, 15:17  [ТС] 6
у меня почему-то компиляция не выполняется((
0
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
06.09.2010, 15:25 7
studentoch'ka, По крайней мере первый код точно компилируется, я проверил.

Добавлено через 1 минуту
Наверное вы там что-то выкинули, начало должно быть такое
Delphi
1
2
3
4
5
6
7
8
program Project2;
 
{$APPTYPE CONSOLE}
 
uses
  SysUtils;
 
function GetESingle : Integer;
0
13104 / 5885 / 1706
Регистрация: 19.09.2009
Сообщений: 8,808
06.09.2010, 18:20 8
Цитата Сообщение от Puporev Посмотреть сообщение
Наверное вы там что-то выкинули, начало должно быть такое
...
{$APPTYPE CONSOLE}
А это раздел-то - Pascal. Если Mawrat в теме засветился, это ещё не значит, что тема - в Delphi.
0
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
06.09.2010, 18:34 9
Mawrat, Я уже сам запутался, туда-сюда прыгаю. Главное что код компилится...
0
06.09.2010, 18:34
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.09.2010, 18:34
Помогаю со студенческими работами здесь

Сравнить скорость сходимости (число слагаемых для достижения заданной точности Е)
Сравнить скорость сходимости (число слагаемых для достижения заданной точности Е) при вычислении...

Удалить из списка все элементы, входящие в него в точности два раза
Дан список из n целых чисел a1, a2,..., an. Удалить из списка все элементы, входящие в него в...

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

Метод Рунге-Кутта 4 порядка точности
Уважаемые Форумчане помогите решить задачу Коши для обыкновенного дифференциального уравнения y'...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru