# About a project of processing .. I need a help

**URL:** https://discourse.processing.org/t/about-a-project-of-processing-i-need-a-help/28865
**Category:** Coding Questions
**Tags:** homework
**Created:** [March 26, 2021, 11:30am UTC](https://discourse.processing.org/t/about-a-project-of-processing-i-need-a-help/28865 "2021-03-26T11:30:30Z")
**Posts on this page:** 20
**Page:** 1

<div class="post-metadata">

### Author: ![Tassadit](https://avatars.discourse-cdn.com/v4/letter/t/eb9ed0/32.png) [@Tassadit](https://discourse.processing.org/u/Tassadit)
#### Post date: [March 26, 2021, 11:30am UTC](https://discourse.processing.org/t/about-a-project-of-processing-i-need-a-help/28865/1 "2021-03-26T11:30:30Z")

</div>

Please i need a help in my project . i hope that you help me to have the correct code.

# Nombres rationnels

Sur le modèle des nombres complexes, on se propose de réaliser une classe qui représente les nombres rationnels. Notre point de départ est :

class Rationnel { int p; // numérateur int q; // dénominateur }

_Testez votre code pour chaque question et assurez-vous que tout fonctionne correctement avant de passer à la question suivante !_

**Question 1.** Commencez par implanter une fonction `pgcd()` (hors classe) qui calcule le plus grand diviseur commun de deux nombres entiers. Utilisez [l’algorithme d’Euclide](https://fr.wikipedia.org/wiki/Algorithme_d%27Euclide#Impl%C3%A9mentation). Nous allons utiliser cette fonction pour garder nos nombres rationnels en forme irréductible (le numérateur et le dénominateur n’ont pas de diviseur commun).

Ajoutez à votre classe le constructeur suivant :

// Crée un nombre rationnel à partir d’un numérateur et un dénominateur donnés en argument Rationnel(int p, int q) { // on s’assure que le dénominateur n’est pas nul assert q != 0 : “le dénominateur ne peut pas être nul”; // on s’assure que le nombre est stocké sous forme de fraction irréductible // par exemple 42/54 → 7/9 int d = pgcd(p, q); this.p = p / d; this.q = q / d; // pour avoir une représentation unique, on s’assure que le dénominateur est positif // par exemple 3/-5 → -3/5 et -2/-3 → 2/3 if (this.q \< 0) { this.p = -this.p; this.q = -this.q; } }

Vous remarquerez l’utilisation de l’instruction `assert` . Si l’expression booléenne (dans ce cas `q != 0` ) s’évalue à `false` , le programme s’arrête avec un message d’erreur :

```auto
AssertionError: le dénominateur ne peut pas être nul

```

Testez avec :

void setup() { Rationnel r = new Rationnel(42, 0); }

Les deux points et la chaîne de caractères après sont facultatifs. Vous pouvez utiliser l’instruction `assert` pour tester vos méthodes. Voici quelques exemples de tests pour notre constructeur :

void setup() { Rationnel r1 = new Rationnel(2, 4); assert r1.p == 1 && r1.q == 2; Rationnel r2 = new Rationnel(42, -54); assert r2.p == -7 : "Le numérateur doit être -7 et pas " + r2.p; assert r2.q == 9 : "Le dénominateur doit être 9 et pas " + r2.q; }

**Question 2.** Ajoutez quelques autres constructeurs à votre classe :

- Un constructeur qui crée un nombre rationnel égal à un nombre entier donné en argument.
- Un constructeur sans argument (constructeur par défaut) qui crée le nombre rationnel zéro (0/1).
- Un constructeur qui crée un nombre rationnel qui est égal à un autre nombre rationnel donné en argument (constructeur par recopie).

**Question 3.** Ajoutez à votre classe une méthode `toString()` qui renvoie une représentation sous forme `"p/q"` . Pensez aux cas particuliers, par exemple `"3"` et pas `"3/1"` .

**Question 4.** Écrivez des accesseurs `num()` et `den()` qui renvoient le numérateur et le dénominateur d’un nombre rationnel.

**Question 5.** Écrivez un autre accesseur `val()` qui renvoie la valeur réelle d’un nombre rationnel. Par exemple, la valeur réelle de `1/4` est `0.25` .

**Question 6.** Écrivez une méthode `egal()` qui vérifie si deux nombres rationnels sont égaux. Notre constructeur a pris soin de représenter chaque nombre rationnel de façon unique, il suffit donc de vérifier si les deux numérateurs sont égaux et les deux dénominateurs sont égaux. Écrivez une autre méthode `egal()` qui vérifie si un nombre rationnel est égal à un nombre entier.

**Question 7.** Faites des méthodes `inf()` et `sup()` qui vérifient si un nombre rationnel est inférieur/supérieur à un autre nombre rationnel ou à un nombre entier.

**Question 8.** Écrivez une méthode `plus()` qui calcule la somme de deux nombres rationnels. Cette méthode doit créer un nouvel objet qui est la somme de l’objet qui l’appelle (argument implicite) et l’objet passé en argument (argument explicite). Inspirez-vous de la méthode `plus()` de la classe `Complexe` . Écrivez une autre méthode `plus()` qui calcule la somme d’un nombre rationnel et un nombre entier.

**Question 9.** Ajoutez des méthodes `moins()` , `mult()` et `div()` qui implantent soustraction, multiplication et division (par nombre rationnel et par nombre entier).

**Question 10.** Comme application de votre classe, approximez π en utilisant [la formule de Leibniz](https://en.wikipedia.org/wiki/Leibniz_formula_for_%CF%80) :

> π = 4 - 4/3 + 4/5 - 4/7 + 4/9 - …

Utilisez les quelques premiers termes et affichez l’approximation sous forme d’un nombre rationnel et d’un nombre réel. Voici les quelques premières approximations :

```auto
4 = 4 = 4.0
4 - 4/3 = 8/3 = 2.6666667
4 - 4/3 + 4/5 = 52/15 = 3.4666667
4 - 4/3 + 4/5 - 4/7 = 304/105 = 2.8952382
4 - 4/3 + 4/5 - 4/7 + 4/9 = 1052/315 = 3.3396826
...

```

---

<div class="post-metadata">

### Author: ![paulgoux](https://avatars.discourse-cdn.com/v4/letter/p/b9bd4f/32.png) [@paulgoux](https://discourse.processing.org/u/paulgoux)
#### Post date: [March 26, 2021, 11:33am UTC](https://discourse.processing.org/t/about-a-project-of-processing-i-need-a-help/28865/2 "2021-03-26T11:33:07Z")

</div>

You might need to tell a bit more. Otherwise whatever we recommend is likely to come across as generic or out of place.

---

<div class="post-metadata">

### Author: ![Tassadit](https://avatars.discourse-cdn.com/v4/letter/t/eb9ed0/32.png) [@Tassadit](https://discourse.processing.org/u/Tassadit)
#### Post date: [March 26, 2021, 11:38am UTC](https://discourse.processing.org/t/about-a-project-of-processing-i-need-a-help/28865/3 "2021-03-26T11:38:09Z")

</div>

Hello there is the all details about the project. i swear that you can help me.

---

<div class="post-metadata">

### Author: ![jb4x](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.processing.org/jb4x/32/789_2.png) [@jb4x](https://discourse.processing.org/u/jb4x)
#### Post date: [March 26, 2021, 11:38am UTC](https://discourse.processing.org/t/about-a-project-of-processing-i-need-a-help/28865/4 "2021-03-26T11:38:22Z")

</div>

We can help you but we won’t do your homework for you.  
You need to provide codes of what you have tried and pinpoint exactly what you don’t understand or can’t manage to do.

---

<div class="post-metadata">

### Author: ![Tassadit](https://avatars.discourse-cdn.com/v4/letter/t/eb9ed0/32.png) [@Tassadit](https://discourse.processing.org/u/Tassadit)
#### Post date: [March 26, 2021, 11:44am UTC](https://discourse.processing.org/t/about-a-project-of-processing-i-need-a-help/28865/5 "2021-03-26T11:44:22Z")

</div>

we don’t have this leçon. For this i don’t understand how can I make the code . We have just ‘nombres complexes’ . I don’t know what’s the principle to do it. Specially the questions 3 and 7 , et 10.

---

<div class="post-metadata">

### Author: ![jb4x](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.processing.org/jb4x/32/789_2.png) [@jb4x](https://discourse.processing.org/u/jb4x)
#### Post date: [March 26, 2021, 11:46am UTC](https://discourse.processing.org/t/about-a-project-of-processing-i-need-a-help/28865/6 "2021-03-26T11:46:58Z")

</div>

First question, they ask you to code a euclide algorithm. Have you tried that?

---

<div class="post-metadata">

### Author: ![paulgoux](https://avatars.discourse-cdn.com/v4/letter/p/b9bd4f/32.png) [@paulgoux](https://discourse.processing.org/u/paulgoux)
#### Post date: [March 26, 2021, 11:48am UTC](https://discourse.processing.org/t/about-a-project-of-processing-i-need-a-help/28865/8 "2021-03-26T11:48:31Z")

</div>

Just saw you updated your first post.

---

<div class="post-metadata">

### Author: ![Tassadit](https://avatars.discourse-cdn.com/v4/letter/t/eb9ed0/32.png) [@Tassadit](https://discourse.processing.org/u/Tassadit)
#### Post date: [March 26, 2021, 11:49am UTC](https://discourse.processing.org/t/about-a-project-of-processing-i-need-a-help/28865/9 "2021-03-26T11:49:39Z")

</div>

i don’t have a idea how can i resolve the questions , we don’t have this lecon for this i don’t know

---

<div class="post-metadata">

### Author: ![Tassadit](https://avatars.discourse-cdn.com/v4/letter/t/eb9ed0/32.png) [@Tassadit](https://discourse.processing.org/u/Tassadit)
#### Post date: [March 26, 2021, 11:50am UTC](https://discourse.processing.org/t/about-a-project-of-processing-i-need-a-help/28865/10 "2021-03-26T11:50:16Z")

</div>

Not yet . i don’t know how to began

---

<div class="post-metadata">

### Author: ![jb4x](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.processing.org/jb4x/32/789_2.png) [@jb4x](https://discourse.processing.org/u/jb4x)
#### Post date: [March 26, 2021, 11:53am UTC](https://discourse.processing.org/t/about-a-project-of-processing-i-need-a-help/28865/11 "2021-03-26T11:53:26Z")

</div>

You have a link to a wikipedia article that explains how Euclide Algorithm is working.

The skeleton of your code should be like this:

```auto
void setup() {
  println(pgcd(21, 15));
}

int pgcd(int a, int b) {
  // TO DO
}

```

You need o replace “TO DO” with some code as explained in the wikipedia article.

---

<div class="post-metadata">

### Author: ![Tassadit](https://avatars.discourse-cdn.com/v4/letter/t/eb9ed0/32.png) [@Tassadit](https://discourse.processing.org/u/Tassadit)
#### Post date: [March 26, 2021, 11:54am UTC](https://discourse.processing.org/t/about-a-project-of-processing-i-need-a-help/28865/12 "2021-03-26T11:54:18Z")

</div>

can you explain me , the 3 and 7 and 10 questions

---

<div class="post-metadata">

### Author: ![Tassadit](https://avatars.discourse-cdn.com/v4/letter/t/eb9ed0/32.png) [@Tassadit](https://discourse.processing.org/u/Tassadit)
#### Post date: [March 26, 2021, 11:54am UTC](https://discourse.processing.org/t/about-a-project-of-processing-i-need-a-help/28865/13 "2021-03-26T11:54:49Z")

</div>

i’ll try with this .

---

<div class="post-metadata">

### Author: ![jb4x](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.processing.org/jb4x/32/789_2.png) [@jb4x](https://discourse.processing.org/u/jb4x)
#### Post date: [March 26, 2021, 11:55am UTC](https://discourse.processing.org/t/about-a-project-of-processing-i-need-a-help/28865/14 "2021-03-26T11:55:52Z")

</div>

Start with question one, you haven’t even started to create the Class so no need to worry about adding some methods to it yet.

---

<div class="post-metadata">

### Author: ![Tassadit](https://avatars.discourse-cdn.com/v4/letter/t/eb9ed0/32.png) [@Tassadit](https://discourse.processing.org/u/Tassadit)
#### Post date: [March 26, 2021, 11:57am UTC](https://discourse.processing.org/t/about-a-project-of-processing-i-need-a-help/28865/15 "2021-03-26T11:57:52Z")

</div>

it’s ok for the first question. can you explain me the methode of 3 et 7 and 10

---

<div class="post-metadata">

### Author: ![jb4x](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.processing.org/jb4x/32/789_2.png) [@jb4x](https://discourse.processing.org/u/jb4x)
#### Post date: [March 26, 2021, 12:06pm UTC](https://discourse.processing.org/t/about-a-project-of-processing-i-need-a-help/28865/16 "2021-03-26T12:06:23Z")

</div>

I don’t know what to tell you, the questions are quite self explanatory:

Q3: They ask you to create a function that take the numerator and denominator and return a String (text) that represent the rational number. So if your numerator is 3 and denominator is 4 then it should return “3/4”

Q7: You need to compare your rational number against other rational numbers and integers. For example let’s imagine your rational number is 3/4 then `myRationalNumber.inf(1)` would return true because 3/4 is indeed lower than 1

Q10: You simply need to print in the console to result of the Leibniz formula using your `toString()` and `val()` functions

---

<div class="post-metadata">

### Author: ![Tassadit](https://avatars.discourse-cdn.com/v4/letter/t/eb9ed0/32.png) [@Tassadit](https://discourse.processing.org/u/Tassadit)
#### Post date: [March 26, 2021, 12:11pm UTC](https://discourse.processing.org/t/about-a-project-of-processing-i-need-a-help/28865/17 "2021-03-26T12:11:37Z")

</div>

i don’t know how to do these

---

<div class="post-metadata">

### Author: ![Tassadit](https://avatars.discourse-cdn.com/v4/letter/t/eb9ed0/32.png) [@Tassadit](https://discourse.processing.org/u/Tassadit)
#### Post date: [March 26, 2021, 12:18pm UTC](https://discourse.processing.org/t/about-a-project-of-processing-i-need-a-help/28865/18 "2021-03-26T12:18:43Z")

</div>

the questions are clear but i don’t know to resolve. i spent three days in this activities but i don’t find how to do it.

---

<div class="post-metadata">

### Author: ![jb4x](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.processing.org/jb4x/32/789_2.png) [@jb4x](https://discourse.processing.org/u/jb4x)
#### Post date: [March 26, 2021, 12:21pm UTC](https://discourse.processing.org/t/about-a-project-of-processing-i-need-a-help/28865/19 "2021-03-26T12:21:48Z")

</div>

Again, if you are not willing to give us the code that you have so far then we can’t help you.

If you are wondering about question 3 then it means that you have done Q1 and Q2, so you already have coded a rational number class. Can we see it?

---

<div class="post-metadata">

### Author: ![Chrisir](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.processing.org/chrisir/32/45_2.png) [@Chrisir](https://discourse.processing.org/u/Chrisir)
#### Post date: [March 26, 2021, 12:32pm UTC](https://discourse.processing.org/t/about-a-project-of-processing-i-need-a-help/28865/20 "2021-03-26T12:32:43Z")

</div>

> [@Tassadit](#):
>
> it’s ok for the first question.

can you show your code that you made?

> [@jb4x](#):
>
> Q3: They ask you to create a function that take the numerator and denominator and return a String (text) that represent the rational number. So if your numerator is 3 and denominator is 4 then it should return “3/4”

A function like void draw() doesn’t return anything (empty = void).

You want to return a float value as a String. So replace void with String

To make the function return a value, use return command

Here is an example with int.

```auto
int add2Numbers(int a1, int a2) {
  return a1 + a2; 
}

```

nominator and denominator is from a fraction, upper number and lower number  
see [https://www.pinterest.de/pin/224335625164717286/visual-search/?x=10&y=10&w=329&h=250&cropSource=6](https://www.pinterest.de/pin/224335625164717286/visual-search/?x=10&y=10&w=329&h=250&cropSource=6)

`return a1 + "/" + a2;`

---

<div class="post-metadata">

### Author: ![glv](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.processing.org/glv/32/18785_2.png) [@glv](https://discourse.processing.org/u/glv)
#### Post date: [March 27, 2021, 1:34am UTC](https://discourse.processing.org/t/about-a-project-of-processing-i-need-a-help/28865/21 "2021-03-27T01:34:40Z")

</div>

Bonjour,

The Processing website has references, examples and tutorials here:  
[https://processing.org/](https://processing.org/)

Other resources:

- [https://happycoding.io/](https://happycoding.io/)
- There are many others…

`:)`

[Next page](https://discourse.processing.org/t/about-a-project-of-processing-i-need-a-help/28865.md?page=2)
