Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.94/18: Рейтинг темы: голосов - 18, средняя оценка - 4.94
 Аватар для Pro4poker
0 / 0 / 0
Регистрация: 30.07.2015
Сообщений: 75

Вычисление косинуса в программе "Калькулятор"

16.03.2016, 15:03. Показов 3728. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день, вот сделал калькулятор. Возникли сложности с косинусом. Синус считает корректно а вот косинус выдает не те значения. Нашел одну тему с похожим вопросом Код для вычисления синуса или косинуса заданного угла в градусах, сделал так как написано там(Угол(в радианах)=угол(в градусах)*pi/180, где pi=3.14159265358979.), но косинус считается не корректный если сравнивать с калькулятором windows. Выдает либо 1 в любом случае, не зависимо какое число, или просто выдает не то.
Вложения
Тип файла: zip Калькулятор.zip (7.0 Кб, 20 просмотров)
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
16.03.2016, 15:03
Ответы с готовыми решениями:

Калькулятор: как добавить вычисление синуса и косинуса
Подскажите пожалуйста как добавить синус и косинус для приложения калькулятор { double x = 0, y = 0; ...

Калькулятор: как добавить вычисление корня, квадрата синуса, косинуса
не подскажите как добавить корень,квадрат син,кос для приложения калькулятор под код case "+": c = a +...

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

11
Заблокирован
16.03.2016, 15:21
Всё правильно считает.
Pi можно и поточнее на 4 знака задать,
замену запятой на точку в текстбоксе организовать (чтобы VAL на ней не обламывался),
при выводе результата FORMAT$ заюзать, а то дробная часть за кадр уходит...
0
6644 / 1511 / 169
Регистрация: 09.01.2010
Сообщений: 4,298
16.03.2016, 17:37
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

да, все верно считает, если Dim x As Integer, y As Integer,


Visual Basic
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
Dim x#, y#, znak As Integer
Dim z
Dim s As String
Dim Pi#
Const e = 7
Dim tr As Boolean
 
Private Sub Command1_Click(Index As Integer)
If tr = True Then
Text1.Text = "": tr = False
End If
Text1.Text = Text1.Text + CStr(Index)
End Sub
 
 
 
Private Sub Command11_Click()
y = Val(Replace(Text1.Text, ",", "."))
 
Select Case znak
Case 1: z = x + y
Case 2: z = x - y
Case 3: z = x * y
Case 4: If y <> 0 Then z = x / y Else z = "Error"
End Select
If z <> "Error" Then z = Round(z, e)
Text1.Text = z
tr = False
End Sub
 
Private Sub Command12_Click()
Text1.Text = Text1.Text + "."
End Sub
 
Private Sub Command13_Click(Index As Integer)
x = Val(Replace(Text1.Text, ",", "."))
If tr = False Then tr = True
znak = Index + 1
End Sub
 
 
 
Private Sub Command15_Click(Index As Integer)
x = Val(Replace(Text1.Text, ",", "."))
Select Case Index
Case 0: s = Sin(x * Pi / 180)
Case 1: s = Cos(x * Pi / 180)
End Select
Text1.Text = Round(s, e)
 
End Sub
 
 
 
Private Sub Command19_Click()
 
Text1.Text = ""
znak = 0
z = 0
x = 0
y = 0
End Sub
 
Private Sub Command20_Click()
z = Val(Text1.Text)
z = z * (-1)
Text1.Text = z
End Sub
 
 
 
Private Sub Form_Load()
Pi = 4 * Atn(1)
tr = False
End Sub
0
 Аватар для Pro4poker
0 / 0 / 0
Регистрация: 30.07.2015
Сообщений: 75
17.03.2016, 00:22  [ТС]
Возможно какие-то числа тип cos 45 считает корректно, но cos 90 выдает непонятно число за место 0.
0
Заблокирован
17.03.2016, 06:44
Лучший ответ Сообщение было отмечено Pro4poker как решение

Решение

Цитата Сообщение от Pro4poker Посмотреть сообщение
но cos 90 выдает непонятно число за место 0
Вы невнимательный читатель
Цитата Сообщение от Shersh Посмотреть сообщение
Pi можно и поточнее на 4 знака задать,
замену запятой на точку в текстбоксе организовать (чтобы VAL на ней не обламывался),
при выводе результата FORMAT$ заюзать, а то дробная часть за кадр уходит...
Пробуйте сейчас -
Visual Basic
1
2
3
4
Private Sub Command16_Click()
s = Cos(Val(Text1.Text) * 3.14159265358979 / 180)
Text1.Text = Format(s, "0.00000000")
End Sub
1
 Аватар для Pro4poker
0 / 0 / 0
Регистрация: 30.07.2015
Сообщений: 75
17.03.2016, 13:26  [ТС]
сейчас проверю, дело в том, что pi я задал на 4 знака а вот эту фразу
"замену запятой на точку в текстбоксе организовать (чтобы VAL на ней не обламывался),
при выводе результата FORMAT$ заюзать, а то дробная часть за кадр уходит..."
я не совсем понял
0
6644 / 1511 / 169
Регистрация: 09.01.2010
Сообщений: 4,298
17.03.2016, 13:43
вариант
Вложения
Тип файла: rar Калькулятор.rar (2.2 Кб, 16 просмотров)
0
Заблокирован
17.03.2016, 13:47
Вставьте MSGBOX в свой косинус - м.б. догадаетесь, почему при 90г он не равен 0 и зачем нужен формат
Visual Basic
1
2
3
4
5
Private Sub Command16_Click()
s = Cos(Val(Text1.Text) * 3.1415926535 / 180)
Text1.Text = s
MSGBOX s,,"S="
End Sub
Про точку и запятую не парьтесь, пока не решитесь оперировать с нецелыми числами (точка на калькуляторе есть, но работает она пока что криво)
0
 Аватар для Pro4poker
0 / 0 / 0
Регистрация: 30.07.2015
Сообщений: 75
17.03.2016, 14:22  [ТС]
Хмм, я все проверил вот если так
PureBasic
1
2
s = Cos(Val(Text1.Text) * 3.14159265358979 / 180)
Text1.Text = Format(s, "0.00000000")
то считает все отлично cos 90 = 0.
Но почему если вот так
PureBasic
1
2
3
s = Cos(Val(Text1.Text) * 3.1415926535 / 180)
Text1.Text = s
MsgBox s, , "S="
выводится ответ в сообщении cos 90 = 4.00000 ( и так далее).
Ну да формат ограничил кол-во символом, но все равно как это повлияло на вычисления?
0
Заблокирован
17.03.2016, 14:31
Лучший ответ Сообщение было отмечено Pro4poker как решение

Решение

Цитата Сообщение от Pro4poker Посмотреть сообщение
выводится ответ в сообщении cos 90 = 4,48965921677393E-11
А 4,48965921677393E-11=0,0000000000448965921677393
(Почитайте https://ru.wikipedia.org/wiki/... ная_запись)
1
 Аватар для Pro4poker
0 / 0 / 0
Регистрация: 30.07.2015
Сообщений: 75
18.03.2016, 00:18  [ТС]
Спасибо, я даже и не знал.
0
0 / 0 / 0
Регистрация: 25.03.2016
Сообщений: 2
25.03.2016, 12:38
Мой вариант
 Комментарий модератора 
Загружайте вложения на форум.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
25.03.2016, 12:38
Помогаю со студенческими работами здесь

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

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

Калькулятор, добавить операцию высчитывания синуса или косинуса
Создал калькулятор,помимо основных операций (+,-,*,/). Как например добавить операцию вычитывания синуса или косинуса? Unit1; ...

Вычисление косинуса
Всем здраствуйте! Я делаю пп функцию которая расчитывает косинус, и сравнивает с стандартной функцией косинуса паскаля, вроде все сделал,...

Вычисление косинуса
Нужно вычислить cos2x при x=15 градусам с помощью степенного ряда с точностью 0.00001 Делал бездумные попытки найти что-то похожее в...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
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
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru