Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/23: Рейтинг темы: голосов - 23, средняя оценка - 5.00
1 / 1 / 0
Регистрация: 23.09.2019
Сообщений: 1
1

Программа накопления ошибки (Как один маленький баг угробил 28 американцев)

23.09.2019, 14:31. Показов 4646. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Напишите пожалуйста программу

Внутренний таймер системы наблюдения устроен как счетчик количества интервалов времени, прошедшего с момента включения системы. Длина интервала — 0,1 секунды. Чтобы перевести количество этих отрезков в секунды, его нужно разделить на 10, либо умножить на 0,1. В машинной арифметике деление часто подменяется умножением на обратное число для упрощения проектирования вычислительного устройства и ускорения его работы. Написать программу, имитирующую работу таймера в двоичной системе счисления. Определить накопленную ошибку за сутки работы таймера для разных значений точности: 8, 16, 24, 32.
1
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.09.2019, 14:31
Ответы с готовыми решениями:

Как из Регистра Накопления взять обороты только за один месяц
Всем добрый вечер) У кого есть свободное время,помогите мне пожалуйста с несложным вопросом. Как...

Создание игр! Маленький баг!
Помоги пожалуйста! Разочарование в самом конце. Суть игры в том что нужно поймать мышкой нло и...

как исправить баг ошибки?
Программа содержит большое число багов. Как исправить их? Читал про баг трекер.Прежде чем её...

IBM ThinkPad 600E угробил Win98. как восстановить?
Прошу совета...Есть ноут, древний, как нога мамонта - IBM ThinkPad 600E 98 года, был с...

2
2 / 2 / 1
Регистрация: 23.09.2019
Сообщений: 2
23.09.2019, 14:35 2
Код
[CPP]
 //
//Ты че думаешь мы тут супер программисты. 
//Да мы ламеры голимые, шо ты тут подсунул
[/CPP]
1
2 / 2 / 1
Регистрация: 23.09.2019
Сообщений: 2
25.09.2019, 15:07 3
Лучший ответ Сообщение было отмечено emp_alexander как решение

Решение

C++
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
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
#include <stdlib.h>
#include <stdio.h>
#include <windows.h>
#include <math.h>
#include <locale.h>
void fallibility_8();
void fallibility_16();
void fallibility_24();
void fallibility_32();
int main()
{
    int num_func;
    setlocale(LC_ALL, "Russian");
    printf("Введите погрешность(8, 16, 24 или 32): ");
    scanf("%d", &num_func);
    switch (num_func)
    {
    case 8:
        {
              fallibility_8();
              break;
        }
 
    case 16:
    {
              fallibility_16();
              break;
    }
 
    case 24:
    {
              fallibility_24();
              break;
    }
 
    case 32:
    {
              fallibility_32();
              break;
    }
    default:
        printf("Вы ввыбрали не существующий вариант, попробуйте еще раз!\n");
        break;
    }
    system("pause");
    return 0;
}
 
 
//вычисление погрешности для 8 разрядов
 
void fallibility_8()
{
    double decate_num = 0;
    double fallibility = 0;
    int bin_8[8] = { 0, 0, 0, 1, 1, 0, 0, 1 };
    //перевод в десетичную систему счисления при погрешности 8 разрядов
    for (int count = 8; count > 0; count--)
    {
 
        decate_num = bin_8[count - 1] * pow(2.0, -count) + decate_num;
    }
 
 
    printf("Погрешность за сутки: %g\n", 864000 * (0.1 - decate_num));
 
    for (int count = 0; 864000 > count; count++)
    {
        Sleep(100);
        fallibility = fallibility + (double)(0.1 - decate_num);
        printf("\rтекущая погрешность: %0.8lf", fallibility);
    }
}
 
//вычисление погрешности для 16 разрядов
 
void fallibility_16()
{
    double decate_num = 0;
    double fallibility = 0;
    int bin_16[16] = {0,0,0,1,1,0,0,1,1,0,0,1,1,0,0,1};
    //перевод в десетичную систему счисления при погрешности 16 разрядов
    for (int count = 16; count > 0; count--)
    {
 
        decate_num = bin_16[count - 1] * pow(2.0, -count) + decate_num;
    }
 
 
    printf("Погрешность за сутки: %g\n", 864000 * (0.1 - decate_num));
 
    for (int count = 0; 864000 > count; count++)
    {
        Sleep(100);
        fallibility = fallibility + (double)(0.1 - decate_num);
        printf("\rтекущая погрешность: %0.16lf", fallibility);
    }
}
 
 
//вычисление погрешности для 4 разрядов
void fallibility_24()
{
    double decate_num = 0;
    double fallibility = 0;
    int bin_24[24] = { 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1 };
    //перевод в десетичную систему счисления при погрешности 24 разрядов
    for (int count = 24; count > 0; count--)
    {
 
        decate_num = bin_24[count - 1] * pow(2.0, -count) + decate_num;
    }
 
 
    printf("Погрешность за сутки: %g\n", 864000 * (0.1 - decate_num));
 
    for (int count = 0; 864000 > count; count++)
    {
        Sleep(100);
        fallibility = fallibility + (double)(0.1 - decate_num);
        printf("\rтекущая погрешность: %0.24lf", fallibility);
    }
}
 
//вычисление погрешности для 32 разрядов
void fallibility_32()
{
    double decate_num = 0;
    double fallibility = 0; 
    int bin_32[32] = { 0,0,0,1, 1,0,0,1, 1,0,0,1, 1,0,0,1, 1,0,0,1, 1,0,0,1, 1,0,0,1, 1,0,0,1 };
    //перевод в десетичную систему счисления при погрешности 24 разрядов
    for (int count = 32; count > 0; count--)
    {
 
        decate_num = bin_32[count - 1] * pow(2.0, -count) + decate_num;
    }
 
 
    printf("Погрешность за сутки: %g\n", 864000 * (0.1 - decate_num));
 
    for (int count = 0; 864000 > count; count++)
    {
        Sleep(100);
        fallibility = fallibility + (double)(0.1 - decate_num);
        printf("\rтекущая погрешность: %.32lf", fallibility);
    }
}
1
25.09.2019, 15:07
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.09.2019, 15:07
Помогаю со студенческими работами здесь

Ошибки при записи движений документа в регистр накопления
Здравствуйте. Есть собственная конфигурация 1С 8.3 по планированию и учету проектов. В Конфигурации...

один маленький вопросик
всем привет!!!! у меня имеются три таблицы товары(id, наименование, оптовая цена, розничная...

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

40-летие высадки американцев на Луну
Бороздил тут Полуночный Граф просторы интернета.. и обнаружил такую призабавную картинку на...

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

Почему эталонные видеокарты nvidia даже топовые имеют один маленький вентиль?
На карточках asus msi или других производителей стоит по 2 или 3 мощных вентилятора, так почему же...


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

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