How to use gets() and print()

Някой може ли да ми каже как да използвам gets() и print() функциите в VS code? Също така и как да използвам gets() в array?

Здравей,

за да можем да проверяваме решенията на задачи, които решавате сме добавили няколко допълнителни функции, който не са част от тези, които JavaScript езикът предоставя. Това са gets() и print().

Приемане на входни данни от конзолата

gets() - приема един ред, въведен в конзолата

Ако, например, имаме примерните входни данни:

apple orange pear kiwi
42
const line = gets();
const number = +gets();

След изпълнение line ще има стойност "apple orange pear kiwi", a number ще има стойност 42.

Извеждане на входни данни на конзолата

Вместо добре познатия console.log(), при изпълнение на кода в Learn системата, използваме print(). Функцията ще изведе на конзолата съобщението, което ѝ подадем.

Пример:

print(5);
print(Math.sqrt(4));

След изпълнение, на конзолата ще се изпечатат 5 и 2.

Разработване локално

Когато решаваш задача локално (например във Visual Studio Code) може да копираш и поставиш следния код в началото на всеки .js файл:

const getGets = (arr) => {
    let index = 0;

    return () => {
        const toReturn = arr[index];
        index += 1;
        return toReturn;
    };
};

// Test input
const testInput = [
  '5',
  '1 3',
  '123 -3',
  '4 -150',
];

const gets = this.gets || getGets(testInput ); // if the code is ran locally, use getGets. If it's ran in Learn, use gets
const print = this.print || console.log; // if the code is ran locally, use console.log. If it's ran in Learn, use print

Функцията getGets() служи да “предаде” testInput на програмата. Можеш да заменяш съдържанието на testInput с примерния вход на задачата, която решаваш. Последните два реда казват, че ако кода се изпълнява в Learn системата, за четене на входни данни да се използва функцията gets(), ако се изпълнява локално (когато я решаваш), да се използва getGets(). Същото важи и за print(). Ако кода се изпълнява в Learn, да се използва print(). Ако е локално, да се използва console.log().

Ето как би изглеждало примерно решение на задача, която приема масив от числа и намира сумата им. В условието, за примерени входни данни е даден масива [1, 2, 3, 4].

const getGets = (arr) => {
  let index = 0;

  return () => {
    const toReturn = arr[index];
    index += 1;
    return toReturn;
  };
};

// Here we put the example input so we can test the solution before submitting it
const testInput = [
  '1, 2, 3, 4'
];

const gets = this.gets || getGets(testInput);
const print = this.print || console.log;

const numbers = gets(); // numbers is "1, 2, 3, 4"
const numbersSplit = numbers.split(", "); // we use .split() to produce an array from a string, so we get [1, 2, 3, 4]

let sum = 0;
for (const number of numbersSplit) {
  sum += +number; // right now, number is a string so we use + in front of it to convert it to an actual number
}

print(sum);

Успех,
Тодор