Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
Бауыржан
-18 / 1 / 0
Регистрация: 03.11.2013
Сообщений: 165
#1

Калькулятор (не могу разобраться, как добавить вычисление sin и cos) - Программирование Android

15.10.2014, 09:02. Просмотров 687. Ответов 0
Метки нет (Все метки)

Здрасьте! помогите разобраться не могу написать на этот калькулятор sin cos. Помогите написать калкулятор который вычисляет синус и косинус только одного любого числа
Написал код, там калькулятор выполняет действия + - * / надо ещё добавить функцию синуса и косинуса
Java
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
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
Создадим проект:
 
Project name: P0191_SimpleCalculator
Build Target: Android 2.3.3
Application name: SimpleCalculator
Package name: ru.startandroid.develop.simplecalculator
Create Activity: MainActivity
 
 
 
Откроем main.xml и нарисуем экран:
 
<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout 
xmlns:android="http://schemas.android.com/apk/res/android" 
android:orientation="vertical" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent"> 
<LinearLayout 
android:layout_width="match_parent" 
android:layout_height="wrap_content" 
android:id="@+id/linearLayout1" 
android:layout_marginLeft="10pt" 
android:layout_marginRight="10pt" 
android:layout_marginTop="3pt"> 
<EditText 
android:layout_weight="1" 
android:layout_height="wrap_content" 
android:layout_marginRight="5pt" 
android:id="@+id/etNum1" 
android:layout_width="match_parent" 
android:inputType="numberDecimal"> 
</EditText> 
<EditText 
android:layout_height="wrap_content" 
android:layout_weight="1" 
android:layout_marginLeft="5pt" 
android:id="@+id/etNum2" 
android:layout_width="match_parent" 
android:inputType="numberDecimal"> 
</EditText> 
</LinearLayout> 
<LinearLayout 
android:layout_width="match_parent" 
android:layout_height="wrap_content" 
android:id="@+id/linearLayout2" 
android:layout_marginTop="3pt" 
android:layout_marginLeft="5pt" 
android:layout_marginRight="5pt"> 
<Button 
android:layout_height="wrap_content" 
android:layout_width="match_parent" 
android:layout_weight="1" 
android:text="+" 
android:textSize="8pt" 
android:id="@+id/btnAdd"> 
</Button> 
<Button 
android:layout_height="wrap_content" 
android:layout_width="match_parent" 
android:layout_weight="1" 
android:text="-" 
android:textSize="8pt" 
android:id="@+id/btnSub"> 
</Button> 
<Button 
android:layout_height="wrap_content" 
android:layout_width="match_parent" 
android:layout_weight="1" 
android:text="*" 
android:textSize="8pt" 
android:id="@+id/btnMult"> 
</Button> 
<Button 
android:layout_height="wrap_content" 
android:layout_width="match_parent" 
android:layout_weight="1" 
android:text="/" 
android:textSize="8pt" 
android:id="@+id/btnDiv"> 
</Button> 
</LinearLayout> 
<TextView 
android:layout_height="wrap_content" 
android:layout_width="match_parent" 
android:layout_marginLeft="5pt" 
android:layout_marginRight="5pt" 
android:textSize="12pt" 
android:layout_marginTop="3pt" 
android:id="@+id/tvResult" 
android:gravity="center_horizontal"> 
</TextView> 
</LinearLayout>
 
 
 
Тут есть два поля ввода, 4 кнопки и текстовое поле для вывода. Обратите внимание на атрибут inputType для EditText. Он задает тип содержимого. Я указал numberDecimal – т.е. в поле получится ввести только цифры и запятую, буквы он не пропустит. Это удобно, не надо самому кодить различные проверки.
 
Для TextView указан атрибут gravity. Он указывает, как будет расположен текст в TextView. Не путайте с layout_gravity, который отвечает за размещение TextView в ViewGroup.
 
Теперь нам надо читать содержимое полей, определять какую кнопку нажали и выводить нужный результат. Открываем MainActivity.java и пишем код
 
public class MainActivity extends Activity implements OnClickListener {
 
  EditText etNum1;
  EditText etNum2;
 
  Button btnAdd;
  Button btnSub;
  Button btnMult;
  Button btnDiv;
 
  TextView tvResult;
 
  String oper = "";
 
  /** Called when the activity is first created. */
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
 
    // находим элементы
    etNum1 = (EditText) findViewById(R.id.etNum1);
    etNum2 = (EditText) findViewById(R.id.etNum2);
 
    btnAdd = (Button) findViewById(R.id.btnAdd);
    btnSub = (Button) findViewById(R.id.btnSub);
    btnMult = (Button) findViewById(R.id.btnMult);
    btnDiv = (Button) findViewById(R.id.btnDiv);
 
    tvResult = (TextView) findViewById(R.id.tvResult);
 
    // прописываем обработчик
    btnAdd.setOnClickListener(this);
    btnSub.setOnClickListener(this);
    btnMult.setOnClickListener(this);
    btnDiv.setOnClickListener(this);
 
  }
 
  @Override
  public void onClick(View v) {
    // TODO Auto-generated method stub
    float num1 = 0;
    float num2 = 0;
    float result = 0;
 
    // Проверяем поля на пустоту
    if (TextUtils.isEmpty(etNum1.getText().toString())
        || TextUtils.isEmpty(etNum2.getText().toString())) {
      return;
    }
 
    // читаем EditText и заполняем переменные числами
    num1 = Float.parseFloat(etNum1.getText().toString());
    num2 = Float.parseFloat(etNum2.getText().toString());
 
    // определяем нажатую кнопку и выполняем соответствующую операцию
    // в oper пишем операцию, потом будем использовать в выводе
    switch (v.getId()) {
    case R.id.btnAdd:
      oper = "+";
      result = num1 + num2;
      break;
    case R.id.btnSub:
      oper = "-";
      result = num1 - num2;
      break;
    case R.id.btnMult:
      oper = "*";
      result = num1 * num2;
      break;
    case R.id.btnDiv:
      oper = "/";
      result = num1 / num2;
      break;
    default:
      break;
    }
 
    // формируем строку вывода
    tvResult.setText(num1 + " " + oper + " " + num2 + " = " + result);
  }
}
Думаю, все понятно по каментам. Читаем значения, определяем кнопку, выполняем операцию и выводим в текстовое поле. Обработчиком нажатий на кнопки выступает Activity.
 
Все сохраним и запустим.
 
 
 
 
 
Давайте для большего функционала сделаем меню с пунктами очистки полей и выхода из приложения. Пункты будут называться Reset и Quit.
 
Добавим две константы – это будут ID пунктов меню.
 
public class MainActivity extends Activity implements OnClickListener {
 
final int MENU_RESET_ID = 1;
final int MENU_QUIT_ID = 2;
 
EditText etNum1;
(добавляете только подчеркнутый код)
 
 
 
И напишем код создания и обработки меню:
 
// создание меню
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// TODO Auto-generated method stub
menu.add(0, MENU_RESET_ID, 0, "Reset");
menu.add(0, MENU_QUIT_ID, 0, "Quit");
return super.onCreateOptionsMenu(menu);
}
 
// обработка нажатий на пункты меню
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// TODO Auto-generated method stub
switch (item.getItemId()) {
case MENU_RESET_ID:
// очищаем поля
etNum1.setText("");
etNum2.setText("");
tvResult.setText("");
break;
case MENU_QUIT_ID:
// выход из приложения
finish();
break;
}
return super.onOptionsItemSelected(item);
}
 
 
Сохраним все, запустим. Появилось два пункта меню:
Reset – очищает все поля
Quit – закрывает приложение
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.10.2014, 09:02
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Калькулятор (не могу разобраться, как добавить вычисление sin и cos) (Программирование Android):

Координаты движущегося обьекта, cos,sin - Программирование Android
Вопрос скорее из раздела &quot;для начинающих&quot;, по основам. Ниже приведён код, который реализует движение обычного символа &quot;О&quot; по экрану,...

Калькулятор, как добавить функции sin cos и корень? - C#
Как в этот калькулятор добавить синус, косинус и корень? using System; using System.Collections.Generic; using...

Вычислить сумму значений функцииz=f(sin(x)+cos(y),x+y)+f(sin(x),cos(y))+(x-y,x)+f(sin^2(x)-2,a)+f(a+3,b+1) - Pascal ABC
Вычислите z-сумму значений функции z=f(sin(x)+cos(y),x+y)+f(sin(x),cos(y))+(x-y,x)+f(sin^2(x)-2,a)+f(a+3,b+1),где f(u,t)=u+t,если u&gt;1 ...

Калькулятор sin cos в Delphi - Delphi
Написать код калькулятора, который вычисляет значения двух функций: sin(x), cos(x) по данному примеру. Вот пример: Помогите пожалуйста...

Калькулятор + - * / sin cos tg ctg - Visual Basic
Всем привет, помогите сделать калькулятор. Программа-калькулятор, выполняющая +,*,-,/, возведение в степень, cos(x), sin(x), tg(x), ctg(x),...

Вычисление sin и cos - Delphi
Исходник пожалуйста)) program Project1; {$APPTYPE CONSOLE} uses SysUtils; var

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.10.2014, 09:02
Привет! Вот еще темы с ответами:

Вычисление sin, cos, tg, ctg - C++
хотел написать прогу для вычисления sin, cos, tg, ctg по градусной мере. но никак не получается выдаёт не та значения. проверял по таблице...

Вычисление sin и cos (быстрый алгоритм) - Pascal
Задача. Вычисление sin и cos (быстрый алгоритм) Прошу исходник

Вычисление тригонометрических функции sin/cos - C++
как реализовать вычисление sin и cos в c++. так как я чайник в с++ и до меня не спервого раза доходит то что написано в книге. помогите...

Вычисление значений функций cos, sin, tg, ctg - C++ Builder
Как сделать,чтобы программа считала cos,sin,tg,ctg??? Вот код моей программы-на данном этапе считаются операции +,-,*,/ ПОМОГИТЕ...


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

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

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