• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Spoj i JS czyli PTEST - Zadanie próbne

Object Storage Arubacloud
0 głosów
215 wizyt
pytanie zadane 5 września 2021 w JavaScript przez Andrzej Hnatiuk Początkujący (350 p.)
edycja 5 września 2021 przez Andrzej Hnatiuk

Witam,

Od kilku miesięcy samodzielnie uczę się programowania (Front End) i dzisiaj postanowilem sprawdzic sie z JS.

Chcialem zrobic pierwsze zadanie :

https://pl.spoj.com/problems/PRIME_T/

Poprzednio przerabialem ćwiczenia na freecodecamp, udemy i scrimba.

 

Najpierw musialem wybrac miedzy Rhino, SpiderMonkey, Node.js. Po wy-googlowaniu dowiedzialem sie, ze nie sa to programy polecane dla początkujących. Potem znalazłem rozwiązanie pasujące do SpiderMonkey którego w ogóle nie rozumiem. 

let a = parseInt(readline());
let b = parseInt(readline());
print(a+b);

Po pierwsze co to jest za "print" !? To jest Python czy JS?

Potem sie okazalo ze z console.log tez dziala.

Potem probowalem wpisac w console z chroma

let a = parseInt(readline())
let b = parseInt(readline())
console.log(a+b)
VM600:1 Uncaught ReferenceError: readline is not defined
    at <anonymous>:1:9

Z console.log mam jeden blad

let a = parseInt(readline());
let b = parseInt(readline());
print(a+b);
VM314:1 Uncaught SyntaxError: Identifier 'b' has already been declared

A z print mam inny blad.

// Napisać program do dodawania dwóch liczb całkowitych. Na wejściu podane są w oddzielnych liniach dwie liczby naturalne A oraz B mniejsze od 200. Na wyjściu należy wypisać wartość ich sumy, A + B.

// Wejście
3
2
// Wyjście
// 5

let a = parseInt(readline())
let b = parseInt(readline())
console.log(a+b)

!ReferenceError: readline is not defined

W scrimba tez nie dziala

 

Nie rozumiem tez co to jest readline(). Ja sie uczylem input robic przez .value. Po wy-googlaniu dalej nie zrozumialem jaka jest roznica miedzy  readline() i .value. Nawet nie rozumiem czemu w spoj ten kod dziala a gdzie indziej nie .

 

Generalnie doszedłem do wniosku że spoj to nie najlepsze miejsce do nauki JS dla początkujących. Ale postanowiłem jeszcze zapytac, skonsultować. Bo może coś źle robię. Jezeli nie to moze zna ktos podobna strone do spoj tylko zeby mozna bylo pisac w zwyklym JS. 

Dodam tylko ze na poczatku to probowalem w taki sposob:

// Napisać program do dodawania dwóch liczb całkowitych. Na wejściu podane są w oddzielnych liniach dwie liczby naturalne A oraz B mniejsze od 200. Na wyjściu należy wypisać wartość ich sumy, A + B.

// Wejście
3
2
// Wyjście
// 5

let a = 3
let b = 2

if (a<200 && b<200){
    console.log(a+b)
} else {
    console.log("Za duze liczby")
}

 

1 odpowiedź

+1 głos
odpowiedź 5 września 2021 przez ScriptyChris Mędrzec (190,190 p.)

Rhino, SpiderMonkey i Node.js to są różne silniki/runtiime'y dla JavaScriptu. Metoda readline w Rhino służy do odczytywania strumienia stdin, zaś print do drukowania danych. Są to trochę analogiczne odpowiedniki do property value na elemencie input w DOM na stronie internetowej oraz console.log do wypisywania danych w konsoli. W przeglądarce nie ma dostępnej funkcji readline. Jest natomiast metoda print, ale on służy do drukowania treści strony za pomocą drukarki, więc nie jest tym czego potrzebujesz przy rozwiązaniu zadania.

Jeśli masz do wyboru różne warianty JS-a poza-przeglądarkowego, to poleciłbym wybrać Node, ponieważ jest chyba najbliższy temu, co jest dostępne w przeglądarce i jest najbardziej popularny. Aczkolwiek musisz pamiętać, że ma inne API (służące do zastosowań backendowych) niż JavaScript w przeglądarce.

Nawet nie rozumiem czemu w spoj ten kod dziala a gdzie indziej nie .

Zapewne kod, który przesyłasz do SPOJ-a jest uruchamiany właśnie na jednym z wybranych silników JS-a i jeśli używasz funkcji, których API nie posiada, to pojawiają się błędy, które opisałeś.

Podobne pytania

0 głosów
1 odpowiedź 694 wizyt
pytanie zadane 9 kwietnia 2019 w SPOJ przez elikgtsport Nowicjusz (160 p.)
+2 głosów
1 odpowiedź 2,200 wizyt
0 głosów
1 odpowiedź 201 wizyt
pytanie zadane 26 stycznia 2016 w C i C++ przez Einstein21 Obywatel (1,420 p.)

92,573 zapytań

141,423 odpowiedzi

319,648 komentarzy

61,959 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...