Форум программистов, компьютерный форум, киберфорум
Assembler: математика, вычисления
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.89/9: Рейтинг темы: голосов - 9, средняя оценка - 4.89
13 / 18 / 6
Регистрация: 02.05.2018
Сообщений: 545

Не совпадают результаты вычислений кусочной функции

14.12.2018, 17:03. Показов 1808. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
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
// в6 задача 2.cpp: определяет точку входа для консольного приложения.
//
 
#include "stdafx.h"
#include "iostream"
 
using namespace std;
 
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale(LC_ALL, "Russian");
    
    double result;
    double x;
    double v = 0,z = 0,tri = 3;
    double one = 1, four = -4,  six = 6, tt = 20, five = 5;
 
    cout << "Введите x: "; cin >> x;
 
_asm
    {  
        fld tt     // st(3) = 20
        fld six     // st(2) = 6
        fld four    // st(1) = -4
        fld x       // загружаем в st(0) x
        fcomi st,st(1)      // сравниваем x с 4
        jle p1        
        fcomi st,st(2)    // сравниваем с 6
        jle p2             
        fcomi st,st(3)    // сравниваем с 20
        jle p3                     
        je p4     
    
p1: 
        
    fld x   // передаем в st(0) значение x
        // cos3x надо преобразовать - cos^3 x - 3 * cos(x) * sin^2x
    fcos      // cos(x)
    fmul st, st  // cos(x) * cos(x)
    fmul st, st   //  cos^2 x * cos(x) = cos^3x
    fstp v     // сохраняем в v cos^3x
    fld x
    fcos
    fmul tri  // 3 * cos(x)
    fstp z   // cохраняем в z 3 * cos(x)
    fld x
    fsin    // sin(x)
    fmul st, st  // sin^2 x
    fld z
    fmul st(1), st   // sin^2x * (3 * cos(x))
    fsub v
    fstp result  // передаем результат деления в result
    jmp finish
    
p2:
    
    fld x    // загрузили x
    fadd one    // x + 1
    fstp z   // z = x + 1
    fld x
    fsin      // sin(x)
    fmul st, st   // sin^2(x)
    fadd one     // sin^2(x) + 1
    fstp v   // v =sin^2(x) + 1
    fld z
    fld v
    fdiv st(1), st   // x + 1 / sin^2(x) + 1
    fstp result   // сохраняем в result результат деления дроби
    jmp finish
    
p3:
        
    fld x 
    fsub five   // x - 5
    fyl2x
    fldln2
    fmul           // ln(x - 5)
    fstp result    // записываем в result значение x^2
    jmp finish
    
p4:
    
    fld x
    fldl2e                 
    fmulp   st(1),  st(0)   
    fld     st(0)
    frndint
    fsub    st(1), st(0)
    fxch    st(1)
    f2xm1        
    fld1          
    faddp   st(1), st(0)
    fscale
    fstp    st(1)
    fstp result   // записываем в result значение корень 3 степени из x
    
finish:
 
    }
    
    cout << "ассемблер: " << result << endl;
    
    if (x <= -4)
    {
        result = pow(cos(x),3) - ((3 * cos(x)) * pow(sin(x), 2));
    }
    else if (x <= 6)
    {
        result = (x + 1) / 1 + pow(sin(x), 2);
    }
    else if (x <= 20)
    {
 
        result = log(x - 5);
    }
    else
    {
        result = pow(x,0.3);
    }
 
    cout << "результат по c++: " << result << endl;
    
    system("pause");
    return 0;
}
Добавлено через 16 минут
акуально

Добавлено через 40 минут
акутально
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
14.12.2018, 17:03
Ответы с готовыми решениями:

произвести вычисление значений функций. Результаты вычислений вывести в компонент ListBox. Выбор вычисляемой функции производить, используя компонент RadioButton.
Для ЛП произвести вычисление значений функций. Результаты вычислений вывести в компонент ListBox. Выбор вычисляемой функции производить,...

Результаты вычислений равны 0
Помогите понять,где ошибка.В результате вычислений все 4 скорости(3 проекции и одна базальная) равны 0 Из-за этих нулей дальнейшие...

Непонятные результаты вычислений
Задается интервал и шаг h. При х&lt;0, у=0.2*pow(x, 2) - x - 0.1; при х=0, не должно быть ничего; при х=0.1, у=0; при остальных результатах...

3
Модератор
Эксперт по электронике
 Аватар для ФедосеевПавел
8665 / 4502 / 1670
Регистрация: 01.02.2015
Сообщений: 13,928
Записей в блоге: 13
14.12.2018, 19:24
У вас три ветки вычислений. Оцените - в которой. Сделайте на калькуляторе расчёты промежуточных результатов.
Запустите режим отладки и смотрите за содержимым регистров.
0
 Аватар для Ethereal
6773 / 2741 / 385
Регистрация: 17.02.2013
Сообщений: 4,048
17.12.2018, 17:49
Лучший ответ Сообщение было отмечено ФедосеевПавел как решение

Решение

Цитата Сообщение от cherc Посмотреть сообщение
fmul st, st // cos(x) * cos(x)
fmul st, st // cos^2 x * cos(x) = cos^3x
Косинус на косинус это косинус в квадрате. Косинус в квадрате на косинус в квадрате это косинус в четвертой степени.
2
13 / 18 / 6
Регистрация: 02.05.2018
Сообщений: 545
17.12.2018, 17:50  [ТС]
вопрос закрыт )))
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
17.12.2018, 17:50
Помогаю со студенческими работами здесь

Результаты вычислений с копейками в 1С 6.0
Да, 6.0, раритет. Но приходится работать. Знания в 1С практически нулевые. Человек, который обслуживает 1С нашей организации сказал, что в...

Записать результаты вычислений в матрицу
Вычислить значения функций F1(x) и F2 (x) таким образом, чтобы результаты были сформированы в виде трех одномерных массивов (x, F1(x) и F2...

Написать функцию, вывести результаты вычислений
помогите (сделайте за меня) За отсутствием русской раскладки пользуйтесь трансляторами.

Как записать результаты вычислений в файл
Здравствуйте, я построил график в маткаде и мне нужно записать полученные результаты в текстовый файл или Exсel, чтобы в графере или другом...

Неправильные результаты вычислений. Как исправить?
Есть такой код. Он компилится, пытается вычислять и записывает решение в другой файл. Однако решения абсурдны. Как это исправить? ...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru