Conversion de nombre romain en nombre arabe

This commit is contained in:
Divlo 2019-09-22 10:09:25 +02:00
parent 48a9989fd8
commit a2631210fe
6 changed files with 42 additions and 8 deletions

View File

@ -25,7 +25,8 @@ Le projet est disponible sur [function.divlo.fr](https://function.divlo.fr/).
| **convertCurrency(value, currency, url)** | Convertis une valeur dans une devise dans une autre devise. [exchangeratesapi.io](https://exchangeratesapi.io/) | - value : la valeur à convertir - currency : la devise à avoir après conversion - url : l'url de la requête à l'API en fonction du paramètre dans l'url '?base=' | | **convertCurrency(value, currency, url)** | Convertis une valeur dans une devise dans une autre devise. [exchangeratesapi.io](https://exchangeratesapi.io/) | - value : la valeur à convertir - currency : la devise à avoir après conversion - url : l'url de la requête à l'API en fonction du paramètre dans l'url '?base=' |
| **utf8ToBin(s)** | UTF-8 vers Binaire | - s : la valeur à convertir | | **utf8ToBin(s)** | UTF-8 vers Binaire | - s : la valeur à convertir |
| **binToUtf8(s)** | Binaire vers UTF-8 | - s : la valeur à convertir | | **binToUtf8(s)** | Binaire vers UTF-8 | - s : la valeur à convertir |
| **convertRomanArabicNumbers(nombre)** | Convertis un nombre arabe en nombre romain. | - nombre : le nombre à convertir | | **convertArabicToRoman(nombre)** | Convertis un nombre arabe en nombre romain. | - nombre : le nombre à convertir |
| **convertRomanToArabic(str)** | Convertis un nombre romain en nombre arabe. | - str : le nombre romain à convertir |
| **armstrongNumber(nombre)** | Vérifie si un nombre fait partie des nombres d'Armstrong ou non. | - nombre : le nombre à tester | | **armstrongNumber(nombre)** | Vérifie si un nombre fait partie des nombres d'Armstrong ou non. | - nombre : le nombre à tester |
## La liste des Fonctions Annexes : ## La liste des Fonctions Annexes :

View File

@ -70,7 +70,7 @@ switch ($currentpage) {
break; break;
case '/views/function-views/convertRomanArabicNumbers.php': case '/views/function-views/convertRomanArabicNumbers.php':
$title = "Conversion d'un nombre arabe en nombre romain"; $title = "Conversion d'un nombre arabe en nombre romain";
$description = "Convertis un nombre arabe en nombre romain."; $description = "Convertis un nombre arabe en nombre romain (et l'inverse aussi).";
$image = 'https://function.divlo.fr/img/function-image/convertRomanArabicNumbers.png'; $image = 'https://function.divlo.fr/img/function-image/convertRomanArabicNumbers.png';
break; break;
case '/views/function-views/armstrongNumber.php': case '/views/function-views/armstrongNumber.php':

View File

@ -263,7 +263,7 @@ function binToUtf8(s){
} }
// Convertis un nombre arabe en nombre romain // Convertis un nombre arabe en nombre romain
function convertRomanArabicNumbers(nombre) { function convertArabicToRoman(nombre) {
// Tableau contenant chaque correspondance entre un nombre arabe et un nombre romain // Tableau contenant chaque correspondance entre un nombre arabe et un nombre romain
const correspondances = const correspondances =
[ [
@ -313,9 +313,27 @@ function convertRomanArabicNumbers(nombre) {
return chiffresRomains; return chiffresRomains;
} }
// Convertis un nombre romain en nombre arabe
function convertRomanToArabic(str) {
var result = 0;
// the result is now a number, not a string
var decimal = [1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1];
var roman = ["M", "CM","D","CD","C", "XC", "L", "XL", "X","IX","V","IV","I"];
for (var i = 0;i<=decimal.length;i++) {
while (str.indexOf(roman[i]) === 0){
//checking for the first characters in the string
result += decimal[i];
//adding the decimal value to our result counter
str = str.replace(roman[i],'');
//remove the matched Roman letter from the beginning
}
}
return result;
}
// Vérifie si un nombre fait partie des nombres d'Armstrong ou non // Vérifie si un nombre fait partie des nombres d'Armstrong ou non
function armstrongNumber(nombre) { function armstrongNumber(number) {
let nombreString = nombre.toString(); let nombreString = number.toString();
let nombreStringLength = nombreString.length; let nombreStringLength = nombreString.length;
let result = 0; let result = 0;

View File

@ -212,14 +212,23 @@ $(function () {
$("#submitConvertRomanArabicNumbers").click(function() $("#submitConvertRomanArabicNumbers").click(function()
{ {
let numbersValue = $('#numbersArabic').val(); let numbersValue = $('#numbersArabic').val();
let convertNumberType = $("#convertNumberType option:selected").text();
if(isEmptyValue(numbersValue)) { if(isEmptyValue(numbersValue)) {
$('.results').html(emptyMessageError); $('.results').html(emptyMessageError);
} }
else if (!isNaN(parseInt(numbersValue))) { else if (!isNaN(parseInt(numbersValue)) && convertNumberType === "Nombre Romain") {
let result = convertRomanArabicNumbers(parseFloat(numbersValue.replace(/\s/g,''))); let result = convertArabicToRoman(parseInt(numbersValue.replace(/\s/g,'')));
$('.results').html(`<b>${formatNumberResult(numbersValue.replace(/\s/g,''))}</b> s'écrit <b>${result}</b> en chiffres romains.`); $('.results').html(`<b>${formatNumberResult(numbersValue.replace(/\s/g,''))}</b> s'écrit <b>${result}</b> en chiffres romains.`);
} }
else if (convertNumberType === "Nombre Arabe") {
if (!isNaN(parseInt(numbersValue))) {
$('.results').html(`<b>${numbersValue}</b> est déjà en chiffres arabes.`);
} else {
let result = convertRomanToArabic(numbersValue);
$('.results').html(`<b>${numbersValue}</b> s'écrit <b>${result}</b> en chiffres arabes.`);
}
}
else { else {
$('.results').html(messageError); $('.results').html(messageError);
} }

View File

@ -54,7 +54,7 @@
</tr> </tr>
<tr> <tr>
<td><a href="./function-views/convertRomanArabicNumbers.php">Conversion d'un nombre arabe en nombre romain</a></td> <td><a href="./function-views/convertRomanArabicNumbers.php">Conversion d'un nombre arabe en nombre romain</a></td>
<td>Convertis un nombre arabe en nombre romain.</td> <td>Convertis un nombre arabe en nombre romain (et l'inverse aussi).</td>
</tr> </tr>
<tr> <tr>
<td><a href="./function-views/armstrongNumber.php">Nombre d'Armstrong</a></td> <td><a href="./function-views/armstrongNumber.php">Nombre d'Armstrong</a></td>

View File

@ -14,6 +14,12 @@
<div class="form-group"> <div class="form-group">
<label for="numbersArabic">Entrez votre nombre :</label> <label for="numbersArabic">Entrez votre nombre :</label>
<input name="numbersArabic" type="text" id="numbersArabic" placeholder="(e.g : 50)" class="form-control"> <input name="numbersArabic" type="text" id="numbersArabic" placeholder="(e.g : 50)" class="form-control">
<br>
<label for="convertNumberType">Convertir en : </label> <br>
<select id="convertNumberType">
<option value="Nombre Romain">Nombre Romain</option>
<option value="Nombre Arabe">Nombre Arabe</option>
</select>
<div class="form-row text-center"> <div class="form-row text-center">
<div class="col-12"> <div class="col-12">
<br> <br>