Bonjour tout le monde!
Alors voilà, ça fait quelques semaines que je m'essaye à la programmation pour android, et j'ai enfin réussi à faire quelque chose de plus ou moins fonctionnel: un programme qui calcule la ou les réponses à une équation du second degré
AndroidEquationseconddegre.java
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 package com.android.equationduseconddegre; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.EditText; import android.widget.TextView; import android.widget.Button; import java.lang.Math; public class AndroidEquationseconddegre extends Activity { /** Called when the activity is first created. */ private EditText variableA; private EditText variableB; private EditText variableC; private float valeurA; private float valeurB; private float valeurC; private float delta; private Button BoutonCalc; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); variableA = (EditText) findViewById(R.id.ValNombreA); variableB = (EditText) findViewById(R.id.ValNombreB); variableC = (EditText) findViewById(R.id.ValNombreC); BoutonCalc = (Button) findViewById(R.id.BoutonCalculer); BoutonCalc.setOnClickListener( new OnClickListener() { public void onClick(View v) { valeurA = Integer.parseInt(variableA.getText().toString()); valeurB = Integer.parseInt(variableB.getText().toString()); valeurC = Integer.parseInt(variableC.getText().toString()); delta = (valeurB * valeurB) - ( 4 * (valeurA * valeurC)); if (delta > 0) { ((TextView)findViewById(R.id.Resultat)).setText("Il y a deux solutions: " + ((- valeurB + Math.sqrt(delta) / (2 * valeurA))) + " et " + ((- valeurB - Math.sqrt(delta) / (2 * valeurA))) + "."); } else if (delta == 0) { ((TextView)findViewById(R.id.Resultat)).setText("Il y a une solution: " + (- valeurB / (2 * valeurA)) + "."); } else { ((TextView)findViewById(R.id.Resultat)).setText("Il n'y a pas de solution."); } } }); } }
res/layout/main.xml
res/values/strings.xml
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" > <TextView android:id="@+id/NombreA" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/TexteNombreA" /> <EditText android:id="@+id/ValNombreA" android:layout_width="0dip" android:layout_height="wrap_content" android:layout_weight="1" android:ems="10" android:inputType="numberSigned" android:hint="@string/ValeurA" > <requestFocus /> </EditText> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" > <TextView android:id="@+id/NombreB" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/TexteNombreB" /> <EditText android:id="@+id/ValNombreB" android:layout_width="0dip" android:layout_height="wrap_content" android:layout_weight="1" android:ems="10" android:inputType="numberSigned" android:hint="@string/ValeurB" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" > <TextView android:id="@+id/NombreC" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/TexteNombreC" /> <EditText android:id="@+id/ValNombreC" android:layout_width="0dip" android:layout_height="wrap_content" android:layout_weight="1" android:ems="10" android:inputType="numberSigned" android:hint="@string/ValeurC" /> </LinearLayout> <Button android:id="@+id/BoutonCalculer" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/BoutonCalc"/> <TextView android:id="@+id/Resultat" android:layout_width="fill_parent" android:layout_height="fill_parent" android:text="@string/Resultat" android:textSize="20dp" /> </LinearLayout>
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 <?xml version="1.0" encoding="utf-8"?> <resources> <string name="app_name">Equation du second degré</string> <string name="BoutonCalc">Calculer</string> <string name="Resultat"/> <string name="TexteNombreA">Entrez la valeur de A </string> <string name="TexteNombreB">Entrez la valeur de B </string> <string name="TexteNombreC">Entrez la valeur de C </string> <string name="ValeurA">Entrez A</string> <string name="ValeurB">Entrez B</string> <string name="ValeurC">Entrez C</string> </resources>
Le problème, je n'arrive pas à mettre de sécurité en place pour empêcher le clic sur le bouton tant que les trois champs ne sont pas remplis. Quand on clique sur le bouton calculer, l'application plante. Eclipse me dit "unable to parse '' as integer".
Il faut aussi que je mette en place une boucle pour empêcher la valeurA d'avoir la valeur 0 afin d'éviter le division par 0, mais c'est le même problème. Si quelqu'un peut m'orienter je lui serais très reconnaissant...
Merci d'avance
Partager