Показать сообщение отдельно
  #2 (permalink)  
Старый 13.10.2018, 05:20
Аватар для Malleys
Профессор
Отправить личное сообщение для Malleys Посмотреть профиль Найти все сообщения от Malleys
 
Регистрация: 20.12.2009
Сообщений: 1,714

{

const START_ALERT = "Программа делимости. Для продолжения нажмите `OK`";
const INPUT_LIMIT = "Введите верхний предел";
const INPUT_DIVIDER = "Введите делитель";
const CANCEL_ALERT = "Вы отменили работу программы. Начните сначала.";

function main() {
	alert(START_ALERT);

	(async () => [
		await getInputData(INPUT_LIMIT),
		await getInputData(INPUT_DIVIDER)
	])()

	.then(([maxNumber, divider]) => {
		const { arrTrue, arrFalse } = sortNumber(maxNumber, divider)
		showResult(arrTrue, arrFalse, divider);
	})
	
	.catch(_ => alert(CANCEL_ALERT))
}

function getInputData(message) {
	return new Promise((resolve, reject) => {
		const input = prompt(message)

		if(input !== null) resolve(input); else reject()
	})
}

function sortNumber(max, div) {
	const arrTrue = []
	const arrFalse = []

	for(let i = 0; i <= max; i++)
		if (i % div === 0) 
			arrTrue.push(i)
		else
			arrFalse.push(i)

	return { arrTrue, arrFalse }
}

function showResult(arr1, arr2, divider) {
	console.log(`Делятся на ${divider}:`, arr1)
	console.log(`Не делятся на ${divider}:`, arr2)
}

main()

}
Ответить с цитированием