Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.78
Artishok
ЧакЭ одобряЭ
277 / 276 / 32
Регистрация: 27.12.2009
Сообщений: 1,767
#1

тригонометрия - C++

23.03.2011, 23:54. Просмотров 1315. Ответов 4
Метки нет (Все метки)

ну собственно программа вызывает функцию на ассемблере,которая вызывает 2 функции на си.результат выводит функцию которую вызывали(то есть та что на асме).
вроде код на асме должен работать.но visual studio ругается на sin и на cos!ей не нравятся целочисленные аргументы.что не так?
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
// лаба_ОС.cpp : Defines the entry point for the console application.
//
 
#include "stdafx.h"
#include "math.h"
#include <iostream>
 
using namespace std;
 
extern int _stdcall Addproc(int,int,int,int);
extern int _cdecl _Sinus(int a,int b)
{
    return ((int)sin(a+b));
}
extern int _fastcall _Cosinus(int a,int b,int c,int d)
{
    return ((int)cos(a+b*c+d));
}
 
 
 
int _tmain(int argc, _TCHAR* argv[])
{
    int k=Addproc(2,3,4,5);
    printf(" Result: %d\n",k);
    return 0;
}
Assembler
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
.686
.model flat
 
Public Addproc@16
extern _Sinus:proc
extern syscall @_Cosinus@16:proc
 
.data
.code
 
Addproc@16 proc
 push ebp
 mov ebp,esp
 push DWORD PTR [ebp+12]
 push DWORD PTR [ebp+8]
 call _Sinus
 add esp,8
 mov ebx,eax
 mov ecx,DWORD PTR [ebp+8]
 mov edx,DWORD PTR [ebp+12]
 push DWORD PTR [ebp+20]
 push DWORD PTR [ebp+16]
 call @_Cosinus@16
 add eax,ebx
 pop ebp
 ret 16
Addproc@16 endp
end

Не по теме:

вроде как есть ассемблер но проблема связана с с++

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.03.2011, 23:54
Здравствуйте! Я подобрал для вас темы с ответами на вопрос тригонометрия (C++):

Тригонометрия - C++
Здравствуйте. Есть необходимость работать с тригонометрией, но проблема в том, что углы не стандартны. Разница в том, что у меня значения...

Тригонометрия - C++
КАК найти значение выражения arcsin (формула какая нибудь)

С++ тригонометрия - C++
в общем не знаю как записать формулу в С++ тригонометрическую, пожалуйста помогите z=cos(в квадрате) ((3/8)pi-(alfa/4))-cos (в квадрате)...

Тригонометрия и обратная польская запись - C++
Как работает польская запись - понятно, однако как добавить к примеру sin(a), чтобы его не выводило, как sina, а чтобы просто посчитало?

Написать программу, производящую вычисления по заданной формуле (тригонометрия, простые циклы) - C++
(100+10 cos 0.1)(100+10cos0.2)....(100+10 cos10) Создавайте темы с осмысленными и понятными названиями - это серьезно повышает шансы,...

Тригонометрия - Алгебра
решить уравнение и найти его корни на промежутке √3*sin(2x)+2*sin^2(x)-1=2*cosx

4
Jupiter
Каратель
Эксперт С++
6561 / 3982 / 227
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
23.03.2011, 23:58 #2
Цитата Сообщение от Artishok Посмотреть сообщение
но visual studio ругается на sin и на cos!
сконверти в дабл
1
Artishok
ЧакЭ одобряЭ
277 / 276 / 32
Регистрация: 27.12.2009
Сообщений: 1,767
24.03.2011, 00:25  [ТС] #3
аргумент сконвертил в double.теперь ругается на stdcall.ну да ладно.
0
Jupiter
Каратель
Эксперт С++
6561 / 3982 / 227
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
24.03.2011, 00:58 #4
если мне не именяет память, то должно быть двойное подчеркивание __stdcall

Добавлено через 1 минуту
__cdecl __fastcall
1
Artishok
ЧакЭ одобряЭ
277 / 276 / 32
Регистрация: 27.12.2009
Сообщений: 1,767
24.03.2011, 01:19  [ТС] #5
а все равно ругается
1>лаба_ОС.obj : error LNK2001: unresolved external symbol "int __stdcall Addproc(int,int,int,int)" (?Addproc@@YGHHHHH@Z)
0
24.03.2011, 01:19
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.03.2011, 01:19
Привет! Вот еще темы с ответами:

Тригонометрия - Алгебра
Легчайший пример, но в условии нет уточнения где находится угол. Поэтому у меня получается два ответа 2, 10. А правильно должно получиться...

Тригонометрия - Алгебра
как решить? sin\alpha -2cos\alpha =1/4

Тригонометрия - Алгебра
Sinx + sin9x=2

Тригонометрия - Алгебра
Привет всем, итак вопрос, возможно глупый, но важный для меня :) вот как представить &quot;синус в квадрате икс&quot; {sin}^{2}x, что мне нужно...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.