Loading...

Във форума е въведено ограничение, което позволява на потребителите единствено да разглеждат публикуваните въпроси.

Antoveravip avatar Antoveravip 67 Точки

Здравей,

Какво точно искаш да постигнеш, че не ми стана много ясно? Дай повече инфо.


Можеш да направиш едно инпут текстово поле в html-а и да прихващаш от него въведената стойност - ако това е за което питаш.

0
DJZoning avatar DJZoning 85 Точки

От конзолата вход, без HTML примерно конзолата да спре и да чака потребителя да вкара някаква стойност както в C# беше

int n = Console.ReadLine(); и потребителя вкарва стойност 5 примерно и после n = 5. Та как става това в JS.

В Java беше :

Scanner sc = new Scanner(System.in);
     int i = sc.nextInt();
2
Antoveravip avatar Antoveravip 67 Точки

Ако говори за javascript като за уеб приложение и итерация с потребител през уеб - то понятието конзола би трябвало въобще да го изключиш като опция - никой потребител няма да ти отвяря браузърската конзола, за да ти въвежда от там някакви неща. Това не е типично и очаквано поведение за конзолата с JS.

http://msdn.microsoft.com/en-us/library/windows/apps/hh696634.asp

Вече ако използваш javascript в друг контекст - би трябвало да потърсиш някоя библиотека:
примерно тук https://developer.mozilla.org/en-US/docs/Mozilla/Projects/SpiderMonkey/Introduction_to_the_JavaScript_shell#readline%28%29

 

Като цяло не търси държане на JS като на Java или C#. При JS нещата са предимно свързани с event-и.

1
petrovaliev95 avatar petrovaliev95 358 Точки

Наков каза, че няма лесен начин за четене от конзолата, защото попринцип този език не е направен за конзола. Ако те притеснява това как да приемаш Input-a на домашните работи и изпита, това се прави с функция която приема някаква/и променлива/и.

2
DJZoning avatar DJZoning 85 Точки
Аз намерих един начин за четене от конзолата но трудно се работи с него. Хубаво е в if-а да се каже process.exit(); защото програмата зависва, зацикля си. http://pastebin.com/cAcX1dUR
1
felix_de_suza avatar felix_de_suza 100 Точки

Според мен се има предвид да си пуснеш програмта през cmd и оттам да напишеш командата node (filename) за да можем да свикваме с ползването на конзолата, а не да въвеждаш входните данни оттам :)

2
ttitto avatar ttitto 1153 Точки

Какво му е лошото на window.prompt когато става дума просто за подаване на някакви входни данни, колкото за тестване на коректността на домашното?! 

1
DJZoning avatar DJZoning 85 Точки

Проблемът тогава, е че в условието пише: Run the program through Node.js. А ние го правим през prompt, което е в HTML-a

3
Jazastry avatar Jazastry 51 Точки

Здравейте !

Открих работещ начин да се чете от Windows Command Prompt при стартиране чрез команда  node <file_name>.js

Исползва модул на Node, който създава интерфейс за четене на данни от конзолата. Важно е да се затвори - close();. За да може да се исползва конзолата след изпълнение на програмата.

Ето JS кода който трябва да се добави в .js файла за изпълнение :

var readline = require('readline');

var rl = readline.createInterface({
    input: process.stdin,
    output: process.stdout
});

rl.question("Тук се въвежда текст по желание, изписва се преди полето за въвеждане. ", function(input) {


    // TODO: Трябва да се исползва  - answer като входна стойност за функцията/програмата.


    console.log("Тук се въвежда текста, който изскача преди резултата на функцията :", output);

    rl.close();
});

 

input се исползва за входната стойност а на мястото на output е името на променливата съдържаща изходната стойност от функцията.

При мен работи ! Пробвайте и кажете дали се получава при вас .

Ето и линк към оригиналния пост  - nodejs.org/api/readline

2
Jazastry avatar Jazastry 51 Точки
Ето например задача 1-ва от JavaScript Syntax домашното. http://pastebin.com/qrQznBXD
1
julieta.p.atanasova avatar julieta.p.atanasova 74 Точки

Ако решаваш на JavaScript задача в judge, която е била давана на изпит за C#, входът се приема с функция.

Например:

function solve(input) {
    var number= parseInt(input[0]);

return result;
}

Output-ът съответно ти е return, а не console.log();
11
ttitto avatar ttitto 1153 Точки

Може ли да дадеш пример когато инпутът е два масива на отделни редове, без да са отделени с друг символ освен нов ред! Например задача 5 от темата за Loops Arrays Strings. Ето ти подложка:

function compareChars(value) {

return value;
}
console.log(compareChars(['1', 'f', '1', 's', 'g', 'j', 'f', 'u', 's', 'q']
['1', 'f', '1', 's', 'g', 'j', 'f', 'u', 's', 'q']));

пробвах с value.split('\n'); но value си остава undefined. Оправя се когато сложа запетайка между двата масива, но пък тогава value приема стойността само на единия масив, а вторият се губи. Ако това е изпитна задача как ще се вземе входа?

1
julieta.p.atanasova avatar julieta.p.atanasova 74 Точки

Ако искаш да имаш 1 value, тогава може да приемеш инпута като масив от два масива:

console.log(compareChars([['1', 'f', '1', 's', 'g', 'j', 'f', 'u', 's', 'q'], ['1', 'f', '1', 's', 'g', 'j', 'f', 'u', 's', 'q']]));

 

Ако искаш да вземеш инпута като два отделни масива със запетая, може да промениш параметрите на функцията:

function compareChars(value1, value2){

return answer;

}

1
dsmilyanov avatar dsmilyanov 237 Точки

В JavaScript няма лесен начин да ползваш директен input от конзолата. Има workarounds, можеш целия вход да го записваш в един масив и после оттам да дърпаш каквото ти потрябва, но не работи перфектно и трябва да добавяш някакво парче код към задачата си. Както са писали колегите, в SpiderMonkey (engine-a на Mozilla) има вграден метод readline(), но той не винаги се държи както очакваш да се държи (Както Console.ReadLine() в C# например).

Що се отнася за домашните и входът към тях, ако имаш по условие HTML страница, ползвай или prompt(), или текстово поле в HTML, за да извличаш някакъв input към JavaScript-a. Ако нямяш HTML страница и файла се отваря през NodeJS, просто си напиши функцията вътре в кода (логиката) и накрая в кода просто извикай функцията като ѝ подаваш (хардкоднеш) някакви стойности (например стойностите, посочени в условието на задачата).

2
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.