Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   функция число прописью (https://javascript.ru/forum/misc/41808-funkciya-chislo-propisyu.html)

Anna77 30.09.2013 12:48

функция число прописью
 
Здравствуйте!

function numPropis(i, num) {
alert(i + " " + num);
var q = '';
var i = parseInt(num / 10);
num = num - 10 * i;



document.write('Пользователь ввёл: ' + str + " - " + q + ' ');

рони 30.09.2013 13:37

Anna77,
где i потерялось?

рони 30.09.2013 13:37

Anna77,
Пожалуйста, отформатируйте свой код!

Для этого его можно заключить в специальные теги: js/css/html и т.п., например:
[js]
... ваш код...
[/js]


О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting.

deivan 30.09.2013 15:04

https://www.google.com/search?q=java...81%D1%8C%D1%8E

BETEPAH 30.09.2013 17:17

Цитата:

Сообщение от Anna77
Подскажите, что неверно:

Например, что за параметры в функцию передаются?
function numPropis(i, num)
var q = numPropis(num);

Почему после проверки на соответствие условиям ввода код дальше все равно не останавливается?
Что вы здесь хотели сделать?
var i = parseInt(num / 10);

Слово "неверное" - это скорее про супругов или про представителя другой религии
Вот, чуть-чуть переделал:
var str = +prompt("Введите число от 10 до 99");
if ((isNaN(str)) || (str < 10) || (str > 99) || (parseInt(str) != str)) {
	alert("Введено неправильное число!");
} else {
	var q = numPropis(str);
	alert('Пользователь ввёл: ' + str + " - " + q + ' ');
}
function numPropis(num) {
	var arr = ['один', 'два', 'три', 'четыре', 'пять', 'шесть', 'семь', 'восемь', 'девять', 'десять', 'одиннадцать', 'двенадцать', 'тринадцать', 'четырнадцать', 'пятнадцать', 'шестнадцать', 'семнадцать', 'восемнадцать', 'девятнадцать']
	var arr2 = ['двадцать', 'тридцать', 'сорок', 'пятьдесят', 'шестьдесят', 'семьдесят', 'восемьдесят', 'девяносто'];
	if (num < 20) return arr[num - 1]; 
var res = arr2[Math.floor(num / 10) - 2];
if (num % 10 != 0) res += ' ' + arr[num % 10 - 1];
	return  res;
}

Demath 30.09.2013 18:30

BETEPAH,

Для num = 20,30,...,90 чему равно arr[num % 10 - 1] ?!)

Или так

var str = +prompt("Введите число от 10 до 99");
if ((isNaN(str)) || (str < 10) || (str > 99) || (parseInt(str) != str))
  { alert("Введено неправильное число!"); } 
else
  { var q = ChisloPropis(str);
    alert('Пользователь ввёл: ' + str + " - " + q + ' ');
  }
 
function ChisloPropis(n)
{
    var b = n%10, a = (n-b)/10,  // n = 10*a+b
        A1 = ['один', 'два', 'три', 'четыре', 'пять', 'шесть', 'семь', 'восемь', 'девять'],
        A2 = ['одиннадцать', 'двенадцать', 'тринадцать', 'четырнадцать', 'пятнадцать',
               'шестнадцать', 'семнадцать', 'восемнадцать', 'девятнадцать'],
        A3 = ['десять', 'двадцать', 'тридцать', 'сорок', 'пятьдесят',
              'шестьдесят', 'семьдесят', 'восемьдесят', 'девяносто'];      
    if (n > 10 && n < 20) return A2[n-11];
    if (b == 0) return A3[a-1];
    return A3[a-1]+' '+A1[b-1];          
}

BETEPAH 30.09.2013 19:37

Demath,
поправил код, не доглядел :cray:

Anna77 01.10.2013 00:39

Мальчики, спасибо!thanks:


Часовой пояс GMT +3, время: 02:52.