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

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

Войти
Регистрация
Восстановить пароль
 
SuLLeN
23 / 23 / 4
Регистрация: 27.12.2011
Сообщений: 791
#1

Программа вычисления среднегеометрического - Программирование Android

15.08.2014, 21:24. Просмотров 450. Ответов 9
Метки нет (Все метки)

Доброго времени суток!

Интересует такой вопрос - как реализовать ввод кол-ва элементов и ввод самих элементов массива для вычисления среднегеометрического данных?

Я подумываю использовать 2 поля, одно для ввода числа кол-ва элементов, другое для ввода чисел самих элементов через запятую.
Перебрать числа из второго поля и добавить в одномерный массив с размерностью из первого поля.
Перемножить каждый элемент массива (Arr[i]*Arr[i+1])/n, но в конце массива будет ошибка так как вылезу за размерность массива и не знаю как отфильтровать числа из второго поля от запятых и присвоить их к Arr[i].
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.08.2014, 21:24     Программа вычисления среднегеометрического
Посмотрите здесь:

поиск среднегеометрического - Pascal
Снова накосячил с программой. Нужно найти среднегеометрическое элементов стоящих выше главной диагонали исключая саму диагональ. вот...

Программа вычисления - C++ Builder
Помогите решить эту задачу, выдаёт неправильные результаты, при x=-1 должно быть 0, при x=3 должно быть 6,95. У меня почему то при x=3...

программа вычисления пи - Pascal
Здравствуйте, помогите составить программу вычисления ряда чисел Pi=2*((2/1)*(2/3)*(4/3)*(4/5)*(6/5)*(6/7)*.... и так далее) Где каждый...

Программа вычисления - Pascal
Всем доброго времени суток! Помогите пожалуйста с написанием программы Составить программу вычисления: S=1/2-1/4+1/6-1/8+..+1/18-1/20 ...

программа вычисления tg x - Assembler
Помогите пожалуйста написать программу на ассемблере для tg x. очень надо

Программа вычисления - Assembler
Требуется помощь в таком вопросе:на 1 машине сделал программу для вычисления выражения (A-D)/B+C*E,на ней была ось хрюшка(проверить...

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

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
646kapeh064
59 / 58 / 15
Регистрация: 09.12.2013
Сообщений: 206
15.08.2014, 21:53     Программа вычисления среднегеометрического #2
Цитата Сообщение от SuLLeN Посмотреть сообщение
Я подумываю использовать 2 поля, одно для ввода числа кол-ва элементов, другое для ввода чисел самих элементов через запятую
Если надо красиво, то новые элементы массива надо добавлять кнопкой.
Но если надо просто сделать, то достаточно одного текстового поля EditText.
Затем методом split разбить строку через запятую в массив String[], и переобразовать этот массив в числовой int[].
SuLLeN
23 / 23 / 4
Регистрация: 27.12.2011
Сообщений: 791
15.08.2014, 22:46  [ТС]     Программа вычисления среднегеометрического #3
Цитата Сообщение от 646kapeh064 Посмотреть сообщение
Если надо красиво, то новые элементы массива надо добавлять кнопкой.
Но как это сделать имея одну кнопку и 2 поля? Или вообще минимум элементов на экране?

Добавлено через 4 минуты
Вот то что мне надо "Создать программу для вычисления среднегеометрического элементов одномерного массива (вводятся кол-во элементов и сами элементы)."
646kapeh064
59 / 58 / 15
Регистрация: 09.12.2013
Сообщений: 206
15.08.2014, 22:59     Программа вычисления среднегеометрического #4
Цитата Сообщение от SuLLeN Посмотреть сообщение
Но как это сделать имея одну кнопку и 2 поля? Или вообще минимум элементов на экране?
Опыт в программировании на Android имеется?
Если имеется, то в XML слое своей активити добавь нужное количество EditText (поля для ввода текста), затем добавь кнопку. Ну и обрабатывай событие клика по кнопке, в котором читай нужный текст со своего EditText.
А как именно распарсить текст, я уже написал.
SuLLeN
23 / 23 / 4
Регистрация: 27.12.2011
Сообщений: 791
15.08.2014, 23:28  [ТС]     Программа вычисления среднегеометрического #5
Цитата Сообщение от 646kapeh064 Посмотреть сообщение
XML слое своей активити добавь нужное количество EditText (поля для ввода текста), затем добавь кнопку. Ну и обрабатывай событие клика по кнопке, в котором читай нужный текст со своего EditText.
То есть, если задаю 10 элементов, значит обработчик добавит 10 полей? Не запарится ли юзер клацать по полям и вводить туда циферки?=)

Добавлено через 15 минут
Пока что так:
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
myButton1.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                if (myEdit1.getText().length() != 0){
                    myTextView1.setEnabled(false);
                    myEdit1.setEnabled(false);
                    myTextView2.setEnabled(true);
                    myEdit2.setEnabled(true);
                    
                    myButton1.setText("Подсчитать");
                    
                    if (myEdit2.getText().length() != 0){
                        n = Integer.parseInt(myEdit1.getText().toString());
                        String[] Arr = new String[n];
                        
                        Arr = myEdit2.getText().toString().split(",");
                        
                        for(i=0;i<n;i++)
                        {
                            myTextView3.append(Arr[i]+", ");
                        }
                    }
                    else if (myEdit2.getText().length() == 0){
                        
                    }
                }
                else if (myEdit1.getText().length() != 0){
                }
            }
        });
646kapeh064
59 / 58 / 15
Регистрация: 09.12.2013
Сообщений: 206
16.08.2014, 00:18     Программа вычисления среднегеометрического #6
Цитата Сообщение от SuLLeN Посмотреть сообщение
myButton1.setText("Подсчитать");
Цитата Сообщение от SuLLeN Посмотреть сообщение
if (myEdit1.getText().length() != 0){ . . . } else if (myEdit1.getText().length() != 0){ }
Интересный подход к программированию... ну допустим пускай так : )

Ты сделал пол дела, осталось массив String[] Arr перевести весь в другой массив Integer[] и произвести вычисления.
А уже после этого, вывести результат, например через AlertDialog, или через свой EditText3
SuLLeN
23 / 23 / 4
Регистрация: 27.12.2011
Сообщений: 791
16.08.2014, 18:40  [ТС]     Программа вычисления среднегеометрического #7
Цитата Сообщение от 646kapeh064 Посмотреть сообщение
Интересный подход к программированию... ну допустим пускай так : )
Как могу, так и делаю (пока главное что работает). Если есть предложения лучше, выкладывайте=)

Добавлено через 3 минуты
Цитата Сообщение от 646kapeh064 Посмотреть сообщение
или через свой EditText3
Через myTextView3 вывожу...

Добавлено через 1 час 0 минут
Цитата Сообщение от 646kapeh064 Посмотреть сообщение
осталось массив String[] Arr перевести весь в другой массив Integer[]
Вот тут я и застрял

Добавлено через 11 минут
Вроде можно так перевести:
Java
1
2
3
4
5
6
7
8
Integer[] ArrInt = new Integer[n];
                        
Arr = myEdit2.getText().toString().split(",");
for (int i=0;i<Arr.length;i++) {
try {
ArrInt[i] = Integer.parseInt(Arr[i]);
} catch (NumberFormatException nfe) {};
}
646kapeh064
59 / 58 / 15
Регистрация: 09.12.2013
Сообщений: 206
16.08.2014, 18:53     Программа вычисления среднегеометрического #8
Цитата Сообщение от SuLLeN Посмотреть сообщение
Вроде можно так перевести
Да, только так и получается, в данном случае.
SuLLeN
23 / 23 / 4
Регистрация: 27.12.2011
Сообщений: 791
16.08.2014, 19:21  [ТС]     Программа вычисления среднегеометрического #9
Ок, задание я выполнил, но так интересно как бы вы это сделали, раз мой подход интересен для вас=)))
Покажите пожалуйста, 646kapeh064.
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
package com.mine.lab_1_2;
 
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
 
public class MainActivity extends Activity {
    
    TextView myTextView1;
    TextView myTextView2;
    TextView myTextView3;
    EditText myEdit1;
    EditText myEdit2;
    Button myButton1;
    int n, i, prod;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        myTextView1=(TextView)findViewById(R.id.textView1);
        myTextView2=(TextView)findViewById(R.id.textView2);
        myTextView3=(TextView)findViewById(R.id.textView3);
        myEdit1=(EditText)findViewById(R.id.editText1);
        myEdit2=(EditText)findViewById(R.id.editText2);
        myButton1=(Button)findViewById(R.id.button1);
        
        myEdit2.setEnabled(false);
        myTextView2.setEnabled(false);
        
        myButton1.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                if (myEdit1.getText().length() != 0){
                    myTextView1.setEnabled(false);
                    myEdit1.setEnabled(false);
                    myTextView2.setEnabled(true);
                    myEdit2.setEnabled(true);
                    
                    myButton1.setText("Подсчитать");
                    
                    if (myEdit2.getText().length() != 0){
                        n = Integer.parseInt(myEdit1.getText().toString());
                        String[] Arr = new String[n];
                        Integer[] ArrInt = new Integer[n];
                        
                        Arr = myEdit2.getText().toString().split(",");
                        prod = Integer.parseInt(Arr[0]);
                        
                        for (i=0;i<Arr.length;i++) {
                            try {
                                ArrInt[i] = Integer.parseInt(Arr[i]);
                                myTextView3.append(ArrInt[i]+", ");
                                prod *= ArrInt[i];
                            } catch (NumberFormatException nfe) {};
                        }
                        prod /= Arr.length;
                        myTextView3.append("\n"+prod);
                    }
                    else if (myEdit2.getText().length() == 0){
                    }
                }
                else if (myEdit1.getText().length() != 0){
                }
            }
        });
    }
 
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }
 
}
Добавлено через 4 минуты
Так правильнее, хотя ничего в данном случае не изменится.
Java
1
2
3
4
5
6
7
for (i=0;i<Arr.length;i++) {
try {
ArrInt[i] = Integer.parseInt(Arr[i]);
} catch (NumberFormatException nfe) {};
myTextView3.append(ArrInt[i]+", ");
prod *= ArrInt[i];
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.08.2014, 21:58     Программа вычисления среднегеометрического
Еще ссылки по теме:

программа вычисления - Turbo Pascal
Составьте программу вычисления суммы тех элементов одномерного массива A(N),что расположены перед последним нулевым элементом данного...

Программа вычисления - Assembler
Ребята, помогите сделать программу. Выполнить вычисления Х согласно заданного выражения. Корректность результата проверить в отладчик...

Программа вычисления функции на C++ - C++
Пожалуйста помогите с решением задачи (Вариант 5) В случае если не видно пример V=((x-a)/(a^(2)+y))*Ln((Sqrt(a+ln(x))/(x^(0,5)-1,7) ...

Программа вычисления суммы - C++
Задание: Скажите пожалуйста почему этот код не работает. #include&lt;iostream&gt; #include&lt;iomanip&gt; #include&lt;math.h&gt; using...

Программа вычисления функции - Assembler
Имеется функция: Y=(A+1)! / 2A! Нужно составить программу. Сложение, умножение, деление, в принципе понятно, но вот с факториалом...


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

Или воспользуйтесь поиском по форуму:
Muhammad97
10 / 10 / 1
Регистрация: 10.11.2013
Сообщений: 238
16.08.2014, 21:58     Программа вычисления среднегеометрического #10
SuLLeN,

Правильнее написать вот так:

Java
1
2
3
if (myEdit1.isEmpty()){
 Toast.makeText(MainActivity.this, "Текст не может быть пустым", Toast.LENGTH_SHORT).show();
 } else {...}
Yandex
Объявления
16.08.2014, 21:58     Программа вычисления среднегеометрического
Ответ Создать тему
Опции темы

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