2017-07-20 4 views
-1

dans mon programme, l'utilisateur doit entrer un nombre entre 10 et 99 et le programme convertira le nombre en mots. Le programme fonctionne quelque peu; Cependant, lorsque je saisis un nombre compris entre 20 et 99, disons par exemple 45, le programme affichera «Quarante cinq fois». C'est à ce moment que "Error # 2007: Le texte du paramètre doit être non nul" apparaît dans la section de sortie. Je n'arrive pas non plus à faire des chiffres de 11 à 19 pour fonctionner. Au lieu d'afficher le nombre en mots, le résultat indique "Erreur". Veuillez éditer mon code pour que le programme fonctionne correctement et imprimez correctement un nombre compris entre 10 et 99.Erreur # 2007: texte de paramètre doit être non nul

// This line makes the button, btnConvert wait for a mouse click 
// When the button is clicked, the convertNumber function is called 
btnConvert.addEventListener(MouseEvent.CLICK, convertNumber); 

// These lines make the textinputs wait for a mouse click 
// When any of these components are clicked, the clearLabels function is called 
txtinNumber.addEventListener(MouseEvent.CLICK, clearLabels); 

// Declare Global Variables 
var num:int;   // number from 10 - 99 
var tensDigit:int; // the tens digit 
var onesDigit:int; // the ones digit 
var teensDigit = [11, 12, 13, 14, 15, 16, 17, 18, 19]; 

// This is the convertNumber function 
// e:MouseEvent is the click event experienced by the button 
// void indicates that the function does not return a value 
function convertNumber(e:MouseEvent):void 
{ 
    getData(); 
    if (num < 10 || num > 99){ 
     lblOutput.text = "Invalid number. Enter a number between 10 and 99 inclusive."; 
    } 
    else{ 
     lblOutput.text = ""; 
     if (num >= 20) { 
      tensDigit = Math.floor(num/10); 
      onesDigit = num % 10; 
      tens(); 
      ones(); 
     } 
     else{ 
      tensDigit = Math.floor(num/10); 
      onesDigit = num % 10; 
      teens(); 
     } 
    } 
    lblOutput.text = 
tens(); 
lblOutput.text += onesDigit 
ones(); 




} 

// This is the getData function 
// It gets the number from the user 
function getData() 
{ 
    // complete the code here 
    num = int(txtinNumber.text); 
} 

// This is the tens function 
// It outputs the word representation of 20, 30, 40,..,90 
function tens() 
{ 
    if (tensDigit == 2 && tensDigit < 3) 
    { 
    lblOutput.text += "Twenty"; 
    } 

    else if (tensDigit == 3 && tensDigit < 4) 
    { 
    lblOutput.text += "Thirty"; 
    } 

    else if (tensDigit == 4 && tensDigit < 5) 
    { 
    lblOutput.text += "Forty"; 
    } 

    else if (tensDigit == 5 && tensDigit < 6) 
    { 
    lblOutput.text += "Fifty"; 
    } 

    else if (tensDigit == 6 && tensDigit < 7) 
    { 
    lblOutput.text += "Sixty"; 
    } 

    else if (tensDigit == 7 && tensDigit < 8) 
    { 
    lblOutput.text += "Seventy"; 
    } 

    else if (tensDigit == 8 && tensDigit < 9) 
    { 
    lblOutput.text += "Eighty"; 
    } 

    else if (tensDigit == 9 && tensDigit < 10) 
    { 
    lblOutput.text += "Ninety"; 
    } 

    else 
    { 
    lblOutput.text += "Unknown." 
    } 

} 

// This is the ones function 
// It outputs the word representaion for any number from 1 - 9 inclusive 
function ones() 
{ 
    if (onesDigit == 1) 
    { 
     lblOutput.text += " one" 
    } 

    else if (onesDigit == 2) 
    { 
     lblOutput.text += " two" 
    } 

    else if (onesDigit == 3) 
    { 
     lblOutput.text += " three" 
    } 

    else if (onesDigit == 4) 
    { 
     lblOutput.text += " four" 
    } 

    else if (onesDigit == 5) 
    { 
     lblOutput.text += " five" 
    } 

    else if (onesDigit == 6) 
    { 
     lblOutput.text += " six" 
    } 

    else if (onesDigit == 7) 
    { 
     lblOutput.text += " seven" 
    } 

    else if (onesDigit == 8) 
    { 
     lblOutput.text += " eight" 
    } 

    else if (onesDigit == 9) 
    { 
     lblOutput.text += " nine" 
    } 



} 

// This is the teens function 
// It outputs the word representation for any number from 10 - 19 inclusive 
function teens() 
{ 
    if (teensDigit == 10) 
    { 
     lblOutput.text += "Ten" 
    } 

    else if (teensDigit == 11) 
    { 
     lblOutput.text += "Eleven" 
    } 

    else if (teensDigit == 12) 
    { 
     lblOutput.text += "Twelve" 
    } 

    else if (teensDigit == 13) 
    { 
     lblOutput.text += "Thirteen" 
    } 

    else if (teensDigit == 14) 
    { 
     lblOutput.text += "Fourteen" 
    } 

    else if (teensDigit == 15) 
    { 
     lblOutput.text += "Fifteen" 
    } 

    else if (teensDigit == 16) 
    { 
     lblOutput.text += "Sixteen" 
    } 

    else if (teensDigit == 17) 
    { 
     lblOutput.text += "Seventeen" 
    } 

    else if (teensDigit == 18) 
    { 
     lblOutput.text += "Eighteen" 
    } 

    else if (teensDigit == 19) 
    { 
     lblOutput.text += "Nineteen" 
    } 

    else 
    { 
     lblOutput.text = "Error." 
    } 



} 

// This is the clearLabels function 
// e:MouseEvent is the click event experienced by the textInput 
// void indicates that the function does not return a value 
function clearLabels(e:MouseEvent):void 
{ 
    lblOutput.text = ""; 
} 

Répondre

1

Vous faites référence à la teensDigit comme si elle était un int, mais vous avez créé un tableau. Changer votre fonction teens() à

if (num == 10) { 

et ainsi de suite, plutôt que teensDigit ==


Sinon, vous pouvez simplement utiliser une table de consultation. Voici une version simplifiée de ce que vous essayiez de faire qui peut être compilé sur un projet propre.

convertNumber(7) // Outputs: seven 
convertNumber(13) // Outputs: Thirteen 
convertNumber(56) // Outputs: Fifty six 

function convertNumber(i:int):void { 
    var tens:int = Math.floor(i/10); 
    var ones:int = (i > 9 && i < 20) ? i : i % 10; 

    trace(lookup.double[tens] + lookup.single[ones]) 
} 

var lookup:Object = { 
    "single":[ 
     "", 
     "one", 
     "two", 
     "three", 
     "four", 
     "five", 
     "six", 
     "seven", 
     "eight", 
     "nine", 
     "Ten", 
     "Eleven", 
     "Twelve", 
     "Thirteen", 
     "Fourteen", 
     "Fifteen", 
     "Sixteen", 
     "Seventeen", 
     "Eighteen", 
     "Nineteen" 
    ], 
    "double":[ 
     "", 
     "", 
     "Twenty ", 
     "Thirty ", 
     "Forty ", 
     "Fifty ", 
     "Sixty ", 
     "Seventy ", 
     "Eighty ", 
     "Ninety ", 
    ] 
}