Форум программистов, компьютерный форум, киберфорум
Программирование Android
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
23 / 23 / 12
Регистрация: 27.12.2011
Сообщений: 855
1

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

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

Author24 — интернет-сервис помощи студентам
Доброго времени суток!

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

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

Написать программу для вычисления среднегеометрического трех чисел
Написать программу для вычисления среднегеометрического трех чисел. Вычисление среднего...

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

Программа для вычисления F с описанием и вызовом процедуры вычисления
исправить ошибки в программе t=(P^2+L^2)^2 Program lab9; {F = (A^2 + B^2)^2 + (C^2 +...

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

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

Добавлено через 4 минуты
Вот то что мне надо "Создать программу для вычисления среднегеометрического элементов одномерного массива (вводятся кол-во элементов и сами элементы)."
0
59 / 58 / 16
Регистрация: 09.12.2013
Сообщений: 208
15.08.2014, 22:59 4
Цитата Сообщение от SuLLeN Посмотреть сообщение
Но как это сделать имея одну кнопку и 2 поля? Или вообще минимум элементов на экране?
Опыт в программировании на Android имеется?
Если имеется, то в XML слое своей активити добавь нужное количество EditText (поля для ввода текста), затем добавь кнопку. Ну и обрабатывай событие клика по кнопке, в котором читай нужный текст со своего EditText.
А как именно распарсить текст, я уже написал.
0
23 / 23 / 12
Регистрация: 27.12.2011
Сообщений: 855
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){
                }
            }
        });
0
59 / 58 / 16
Регистрация: 09.12.2013
Сообщений: 208
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
0
23 / 23 / 12
Регистрация: 27.12.2011
Сообщений: 855
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) {};
}
0
59 / 58 / 16
Регистрация: 09.12.2013
Сообщений: 208
16.08.2014, 18:53 8
Цитата Сообщение от SuLLeN Посмотреть сообщение
Вроде можно так перевести
Да, только так и получается, в данном случае.
0
23 / 23 / 12
Регистрация: 27.12.2011
Сообщений: 855
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];
}
0
10 / 10 / 2
Регистрация: 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 {...}
0
16.08.2014, 21:58
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.08.2014, 21:58
Помогаю со студенческими работами здесь

Программа вычисления
Всем доброго времени суток! Помогите пожалуйста с написанием программы Составить программу...

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

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

программа вычисления пи
Здравствуйте, помогите составить программу вычисления ряда чисел...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru