» »

pomoč pri javascriptu

pomoč pri javascriptu

blink182 ::

V četrtek imam izpit, vendar nikakor ne morem ugotoviti kako bi rešil te naloge, zato bi prosil koga ki zastopi to, če bi mi lahko malce razložil vprašanja in utemeljil odgovore.
Napisal bom nekaj vprašanj, pa upam da mi boste lahko pomagali.
-------------------------------------------------------------------------------------
# Podan je stavek if(p1) if(p2) s1; else s2; else s3; Poleg tega vemo, da sta p1 in p2 oba enaka false Kateri od stavkov s1, s2 in s3 se bodo izvršili?

1. s1, s2, s3
2. s2, s3
3. s3
4. Izvršil se ne bo noben od treh stavkov.
Kako bi se morala koda v vprašanju sploh vpisati da bi delovala v javascriptu?

-------------------------------------------------------------------------------------
# Kako z uporabo zanke for dosežemo, da se bo v oknu brskalnika izpisalo 1234 ?

1. for (i = 0; i < 4; i++) document.write(i + 1);
2. for (i = 0; i < 4; i++); document.write(i + 1);
3. for (i = 0; i < 4; i++) document.write(i);
4. for (i = 0; i < 4; i++); document.write(i);

Tu vem, da je pravilen odgovor 1. Vem tudi da 2 in 3 nista pravilna, bega pa me, zakaj pride drugi 5, kaj v bistvu spremeni ; da pride do te razlike?

------------------------------------------------------------------------------
# Podan je stavek for(i = 3, j = 1; i > 0; i--) j *= i; Kakšno vrednost bo imela spremenljivka j, ko se stavek izvrši do konca?

1. 1
2. 2
3. 3
4. 6
Zanka for vem, kako izračuna izraz j*=i tudi vem, vendar pa ne znam tega dvojega povezati.
na koncu bo vrednost i=0, kako pa potem izračunamo j? Če bi ga vstavili v j=j*i bi dobili 0 to pa ni pravilno.
------------------------------------------------------------------------------------


No recimo da je to za enkrat vse.
Kako delujejo posamezne zanke vem, vendar pri teh vprašanjih mi je vse čudno in ne vem kako bi vse povezal.
Vem da če to vpišem v program bom rezultate dobil, vendar bi jaz rad razumel kako se do rezultata pride, ne da mi ga vrže računalnik ven, saj izpitu ne bomo imeli računalnikov.

Upam da mi bo lahko kdo čimprej pomagal.

Lp

Maystr ::

1. Taka struktura:
if(p1):-false
if(p2):-false
else(s2):
else(s3):

če je tole prav potem se izvrši s3.
Najprej preveri pogoj za prvi if, če ta ne drži gre avtomatsko na else. Če bi prvi if držal, bi šel na drugi if in tako naprej.

2.
i=0,1,2,3
mu prišteješ ena in dobiš 1234
Odgovor je 1. Nevem pa kaj je razlika med 1 in drugo. (ne poznam sintakse)

3.
i se ustavi pri 1. Koraki za j pa so:
1. i=3 j=3*1=3
2. i=2 j=2*3=6
3. i=1 j=1*6=6

Odgovor je 6.

blink182 ::

1. Taka struktura:
if(p1):-false
if(p2):-false
else(s2):
else(s3):

če je tole prav potem se izvrši s3.
Najprej preveri pogoj za prvi if, če ta ne drži gre avtomatsko na else. Če bi prvi if držal, bi šel na drugi if in tako naprej.


Hvala, se pravi če bi npr. prvi držal in drugi ne, bi se izvedel prvi else.? Če pa prvi ne drži ali noben pa se izvede drugi else?


3.
i se ustavi pri 1. Koraki za j pa so:
1. i=3 j=3*1=3
2. i=2 j=2*3=6
3. i=1 j=1*6=6

Odgovor je 6.


Aha, se pravi, če bi bilo pri zanki for na koncu --i (namesto i--), bi se pa i ustavil pri 0 in bi bil rezultat 0?

Najlepša hvala za odgovore, bi pa prosil če bi se dalo komu še tole nalogo pojasniti

Imam pa še eno nalogo ki je ne zastopim a mi vedno ko jo hočem objaviti nepiše da sem pozabil zaključiti HTML oznako.

No naloga je v glavnem podobna tretju, le da je po zanki for še if (i%2) j+=i.

To potem pomeni da se j izračunava le kadar je i ki pride iz zanke for deljiv z 2?

Zgodovina sprememb…

  • spremenil: blink182 ()

frudi ::

if (i%2) j+=i

if (expression) statement - to je splošna sintaksa if stavka. V JavaScriptu se bo statement izvedel, kadar je expression karkoli, razen:
- false
- 0
- '' (prazen string)
- null
- undefined
V konkretnem primeru to pomeni, da kadar i NI deljiv z 2, j prištej vrednost i. Ni pa iz tvojega pisanja razvidno, kje leži ta stavek - 'le da je po zanki for še if...'. Par možnosti je:
1.
for (i = 3, j = 1; i > 0; i--) j *= i; if (i%2) j+= 1;
kar je ekvivalentno
for (i = 3, j = 1; i > 0; i--) {
  j *= i;
}
if (i%2) {
  j += i;
}

V tem primeru se ta zadnji if izvrši šele po zaključku for zanke. Takrat je i == 1, torej ni deljiv z 2 in se j+=i izvede. Takrat je j == 6, i == 1, torej je na koncu vrednost j == 7.
2.
for (i = 3, j = 1; i > 0; i--) { j *= i; if (i%2) j+= 1; }
kar je ekvivalentno
for (i = 3, j = 1; i > 0; i--) {
  j *= i;
  if (i % 2) {
    j += i;
  }
}
V tem primeru pa se bo if evaluiral na vsakem koraku for zanke. Pogoj bo izpolnjen, ko bo i == 3 in i == 1, torej bodo vrednosti j:
- i = 3, j = 1 * 3 = 3, j = 3 + 3 = 6;
- i = 2, j = 6 * 2 = 12;
- i = 1, j = 12 * 1 = 12; j = 12 + 1 = 13.
1ACDoHVj3wn7N4EMpGVU4YGLR9HTfkNhTd... in case I've written something useful :)


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Python iskanje podvojenih vrednosti

Oddelek: Programiranje
181466 (1179) BlueRunner
»

Javascript problemcek

Oddelek: Programiranje
141562 (1355) tempoFlow
»

[JavaScript] Sortiranje šumnikov

Oddelek: Programiranje
152112 (1846) MarkookraM
»

[fork] Apache C module vs. Java

Oddelek: Programiranje
452167 (1726) PaX_MaN
»

JavaScript naloge za faks (ustni izpit)

Oddelek: Šola
182324 (1864) Lumix

Več podobnih tem