From 5b038bb8af14e4a4a5eb515a20e04fa7233f6bdd Mon Sep 17 00:00:00 2001 From: Miuroro Date: Wed, 21 Jan 2026 15:48:01 +0100 Subject: [PATCH] Week 2 Assignment --- task-1/leap-year.js | 18 +++++++++++++----- task-2/login.js | 35 +++++++++++++++++++++++++++++++---- task-3/converter.js | 17 +++++++++++------ 3 files changed, 55 insertions(+), 15 deletions(-) diff --git a/task-1/leap-year.js b/task-1/leap-year.js index e05d215..4b16732 100644 --- a/task-1/leap-year.js +++ b/task-1/leap-year.js @@ -2,8 +2,16 @@ import promptSync from 'prompt-sync'; const prompt = promptSync(); -// 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 +let year = prompt("Enter a year: "); +year = Number(year); + +if (Number.isNaN(year) || year <= 1 || year >= 9999) { // cheking for valid year input + console.log("Invalid year!"); +} +else if ((year % 4 === 0 && year % 100 !== 0) || (year % 400 === 0)) { + console.log(" yes, "+ year + " is a leap year."); + +}else if (year % 4 !== 0 || year % 100 === 0) { // added this to know what considered not a leap year + console.log(" no, "+ year + " is not a leap year."); +} + diff --git a/task-2/login.js b/task-2/login.js index ca9ba92..0088ef9 100644 --- a/task-2/login.js +++ b/task-2/login.js @@ -2,12 +2,39 @@ import { errorMessage, successMessage } from './app.js'; let incorrectAttempts = 0; +let isblocked = false; 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 (isblocked) { + errorMessage("Login blocked: Too many incorrect attempts"); + return; // Exit early if login is blocked + } + + + if (username === "admin" && password === "Hack1234") { + successMessage("Logged in successfully"); + incorrectAttempts = 0; + + } else if (username === "user" && password === "7654321") { + successMessage("Logged in successfully"); + incorrectAttempts = 0; + + } else { + incorrectAttempts++; + errorMessage("Incorrect credentials" + " failed attempt: " + incorrectAttempts); + + } + + if (incorrectAttempts >= 4) { + isblocked = true; // the login is now blocked + errorMessage("Login blocked: Too many incorrect attempts"); + + + } + + } + // Do not change the line below export { onLogin }; diff --git a/task-3/converter.js b/task-3/converter.js index 0f54a18..ce215be 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 the current exchange rates"); +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; @@ -26,12 +27,16 @@ if (menuSelection === "1") { // USD to EUR const usdAmountInput = prompt("Enter amount in USD: "); const usdAmountNum = Number(usdAmountInput); - if (Number.isNaN(usdAmountNum) || usdAmountNum < 0) { + 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 rates + console.log("The current exchange rate is 1 EUR = " + EUR_USD_RATE.toFixed(4) + " USD."); + } else { console.log("Invalid selection. Please choose either 1 or 2."); }