diff --git a/task-1/leap-year.js b/task-1/leap-year.js index e05d215..3eef400 100644 --- a/task-1/leap-year.js +++ b/task-1/leap-year.js @@ -1,9 +1,24 @@ import promptSync from 'prompt-sync'; const prompt = promptSync(); +let year = prompt('Enter a year: '); +year = Number(year); +if (isNaN(year)) { + console.log('Invalid input. Please enter a number'); + process.exit(); +} +if (year <= 0 || year > 9999) { + console.log('Invalid year!'); + process.exit(); +} -// Write your code here -// Guidance: -// Step 1: prompt the user to enter a year -// Step 2: convert the user input to a number so we can perform calculations -// Step 3: Implement the logic +if (year / 100 === Math.floor(year / 100) && year / 400 === Math.floor(year / 400)) { + console.log('Yes ' + year + ' is a leap year'); +} else if (year / 100 === Math.floor(year / 100)) { + console.log('No ' + year + ' is not a leap year'); +} else if (year / 4 === Math.floor(year / 4)) { + console.log('Yes ' + year + ' is a leap year'); +} +else { + console.log('No ' + year + ' is not a leap year'); +} diff --git a/task-2/login.js b/task-2/login.js index ca9ba92..2109c9e 100644 --- a/task-2/login.js +++ b/task-2/login.js @@ -1,13 +1,24 @@ -// Do not change the line below import { errorMessage, successMessage } from './app.js'; let incorrectAttempts = 0; function onLogin(username, password) { - // Write your code here. - // Use the variables 'username' and 'password' to access the input values - // Use incorrectAttempts to track the number of failed attempts + if (incorrectAttempts > 3) { + errorMessage('Login blocked: too many incorrect attempts'); + return; + } + if ((username === 'admin' && password === 'Hack1234') || (username === 'user' && password === '7654321')) { + successMessage('Logged in successfully'); + incorrectAttempts = 0; + + } + else { + errorMessage('Incorrect credentials'); + incorrectAttempts ++; + if (incorrectAttempts > 3) { + errorMessage('Login blocked: too many incorrect attempts'); + return; + } + } } - -// Do not change the line below export { onLogin }; diff --git a/task-3/converter.js b/task-3/converter.js index 0f54a18..7c4c751 100644 --- a/task-3/converter.js +++ b/task-3/converter.js @@ -5,10 +5,11 @@ const prompt = promptSync(); const EUR_USD_RATE = 1.1643; // Menu display -conole.log("Hello and welcome to the currency converter. Please choose: "); +console.log("Hello and welcome to the currency converter. Please choose: "); console.log("1: Convert EUR to USD"); console.log("2: Convert USD to EUR"); -const menuSelection = prompt("Select your option [1 or 2]: "); +console.log("3: Display current exchange rate"); +const menuSelection = prompt("Select your option [1 ,2 or 3]: "); console.log("\n"); @@ -16,7 +17,7 @@ if (menuSelection === "1") { // EUR to USD const eurAmountInput = prompt("Enter amount in EUR: "); const eurAmountNum = Number(eurAmountInput); - if (Number.isNaN(eurAmountNum) || eurAmountNum > 0) { + if (Number.isNaN(eurAmountNum) || eurAmountNum < 0) { console.log("Please enter a valid positive number for the amount."); } else { const usdAmount = eurAmountNum * EUR_USD_RATE; @@ -29,9 +30,14 @@ if (menuSelection === "1") { if (Number.isNaN(usdAmountNum) || usdAmountNum < 0) { console.log("Please enter a valid positive number for the amount."); } else { - const eurAmount = usdAmountNum / eur_usd_rate; - console.log(usdAmountNum.toFixed(2) + ' USD is equal to ' + usdAmountNum.toFixed(2) + ' EUR.'); + const eurAmount = usdAmountNum / EUR_USD_RATE; + console.log(usdAmountNum.toFixed(2) + ' USD is equal to ' + eurAmount.toFixed(2) + ' EUR.'); } +} else if (menuSelection === "3") { + // Display exchange rate + console.log("Current exchange rate:"); + console.log("1 EUR = " + EUR_USD_RATE.toFixed(4) + " USD"); + console.log("1 USD = " + (1 / EUR_USD_RATE).toFixed(4) + " EUR"); } else { - console.log("Invalid selection. Please choose either 1 or 2."); + console.log("Invalid selection. Please choose either 1 or 2 or 3."); }