diff --git a/task-1/leap-year.js b/task-1/leap-year.js index e05d215..46ecaa7 100644 --- a/task-1/leap-year.js +++ b/task-1/leap-year.js @@ -1,9 +1,23 @@ import promptSync from 'prompt-sync'; const prompt = promptSync(); - -// Write your code here -// Guidance: // Step 1: prompt the user to enter a year +let input = prompt("Enter the year: "); + // Step 2: convert the user input to a number so we can perform calculations +let year = Number(input); + // Step 3: Implement the logic +if (isNaN(year) || year < 1 || year > 9999) { + console.log("Invalid year!"); +} else { + if (year % 400 === 0) { + console.log("Yes, " + year + " is a leap year"); + } else if (year % 100 === 0) { + console.log("No, " + year + " is not a leap year"); + } else if (year % 4 === 0) { + console.log("Yes, " + year + " is a leap year"); + } else { + console.log("No, " + year + " is not a leap year"); + } +} \ No newline at end of file diff --git a/task-2/login.js b/task-2/login.js index ca9ba92..3ee5f96 100644 --- a/task-2/login.js +++ b/task-2/login.js @@ -4,9 +4,25 @@ 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 login is already blocked +if (incorrectAttempts >= 4) { + errorMessage("Login blocked: Too many incorrect attempts"); + return; +} + // check valid users + const isAdmin = username === "admin" && password === "Hack1234"; + const isUser = username === "user" && password === "7654321"; + if (isAdmin || isUser) { + successMessage("Logged in successfully"); + incorrectAttempts = 0; + } else { + incorrectAttempts++; + if (incorrectAttempts >= 4) { + errorMessage("Login blocked: Too many incorrect attempts"); + } else { + errorMessage("Incorrect credentials"); + } + } } // Do not change the line below diff --git a/task-3/converter.js b/task-3/converter.js index 0f54a18..20c5e3d 100644 --- a/task-3/converter.js +++ b/task-3/converter.js @@ -1,22 +1,24 @@ import promptSync from 'prompt-sync'; const prompt = promptSync(); - // Exchange rate for EUR/USD (How much 1 EUR is in USD) const EUR_USD_RATE = 1.1643; // Menu display -conole.log("Hello and welcome to the currency converter. Please choose: "); +// BUG 1 FIXED: "conole.log" was misspelled, corrected to console.log +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 the current exchange rate"); // FEATURE added to Option 3 for displaying exchange rate +const menuSelection = prompt("Select your option [1, 2, or 3]:"); console.log("\n"); if (menuSelection === "1") { // EUR to USD - const eurAmountInput = prompt("Enter amount in EUR: "); + const eurAmountInput = prompt("Enter amount in EUR:"); const eurAmountNum = Number(eurAmountInput); - if (Number.isNaN(eurAmountNum) || eurAmountNum > 0) { + // BUG 3 FIXED: Condition was wrong (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; @@ -24,14 +26,19 @@ if (menuSelection === "1") { } } else if (menuSelection === "2") { // USD to EUR - const usdAmountInput = prompt("Enter amount in USD: "); + const usdAmountInput = prompt("Enter amount in USD:"); const usdAmountNum = Number(usdAmountInput); 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.'); + // BUG 2 FIXED: Wrong variable name (eur_usd_rate) now corrected to EUR_USD_RATE + const eurAmount = usdAmountNum / EUR_USD_RATE; + // BUG 2 Previously printed usdAmountNum twice + console.log(usdAmountNum.toFixed(2) + ' USD is equal to ' + eurAmount.toFixed(2) + ' EUR.'); } +} else if (menuSelection === "3") { + // FEATURE added to Show exchange rate + console.log(`The current exchange rate is 1 EUR = ${EUR_USD_RATE} USD.`); } else { - console.log("Invalid selection. Please choose either 1 or 2."); + console.log("Invalid selection. Please choose either 1, 2, or 3."); }