Skip to content

Commit 566d151

Browse files
authored
Merge pull request #80 from meilune/master
Translated while for section
2 parents c47f044 + f033939 commit 566d151

File tree

15 files changed

+203
-203
lines changed

15 files changed

+203
-203
lines changed
Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
The answer: `1`.
1+
Atsakymas: `1`.
22

33
```js run
44
let i = 3;
@@ -8,18 +8,18 @@ while (i) {
88
}
99
```
1010

11-
Every loop iteration decreases `i` by `1`. The check `while(i)` stops the loop when `i = 0`.
11+
Kiekviena ciklo iteracija sumažina `i` per `1`. Patikrinimas `while(i)` sustabdo ciklą kai `i = 0`.
1212

13-
Hence, the steps of the loop form the following sequence ("loop unrolled"):
13+
Dėl to žingsniai iš paskutinio ciklo suformuoja tokią seką ("atskleistas ciklas"):
1414

1515
```js
1616
let i = 3;
1717

18-
alert(i--); // shows 3, decreases i to 2
18+
alert(i--); // parodo 3, sumažina i iki 2
1919

20-
alert(i--) // shows 2, decreases i to 1
20+
alert(i--) // parodo 2, sumažina i iki 1
2121

22-
alert(i--) // shows 1, decreases i to 0
22+
alert(i--) // parodo 1, sumažina i iki 0
2323

24-
// done, while(i) check stops the loop
24+
// viskas, while(i) patikrinimas sustabdo ciklą
2525
```

1-js/02-first-steps/12-while-for/1-loop-last-value/task.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@ importance: 3
22

33
---
44

5-
# Last loop value
5+
# Paskutinė ciklo vertė
66

7-
What is the last value alerted by this code? Why?
7+
Kokia yra paskutinė šio kodo vertė parodyta per alert? Kodėl?
88

99
```js
1010
let i = 3;
Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,30 @@
1-
The task demonstrates how postfix/prefix forms can lead to different results when used in comparisons.
1+
Užduotis parodo kaip priešdėlinė/podėlinė formos gali atvesti prie skirtingų rezultatų kai naudojamos palyginimui.
22

3-
1. **From 1 to 4**
3+
1. **Nuo 1 iki 4**
44

55
```js run
66
let i = 0;
77
while (++i < 5) alert( i );
88
```
99

10-
The first value is `i = 1`, because `++i` first increments `i` and then returns the new value. So the first comparison is `1 < 5` and the `alert` shows `1`.
10+
Pirmoji vertė yra `i = 1`, nes `++i` pirma padidina `i` ir tada sugrąžina naują vertę. Tad pirmasis palyginimas yra `1 < 5` ir `alert` parodo `1`.
1111

12-
Then follow `2, 3, 4…` -- the values show up one after another. The comparison always uses the incremented value, because `++` is before the variable.
12+
Tada seka `2, 3, 4…` -- vertės pasirodo viena po kitos. Palyginimui visada naudojama jau padidinta vertė, nes `++` yra prieš kintamąjį.
1313

14-
Finally, `i = 4` is incremented to `5`, the comparison `while(5 < 5)` fails, and the loop stops. So `5` is not shown.
15-
2. **From 1 to 5**
14+
Galų gale, `i = 4` yra padidinamas iki `5`, tad palyginimas `while(5 < 5)` yra netiesa ir ciklas sustoja. Tad `5` nėra parodomas.
15+
2. **Nuo 1 iki 5**
1616

1717
```js run
1818
let i = 0;
1919
while (i++ < 5) alert( i );
2020
```
2121

22-
The first value is again `i = 1`. The postfix form of `i++` increments `i` and then returns the *old* value, so the comparison `i++ < 5` will use `i = 0` (contrary to `++i < 5`).
22+
Pirmoji vertė vėlgi yra `i = 1`. Podėlinė `i++` forma padidina `i` ir tada sugrąžina *senąją* vertę, tad palyginimas `i++ < 5` naudos `i = 0` (priešingai nei `++i < 5`).
2323

24-
But the `alert` call is separate. It's another statement which executes after the increment and the comparison. So it gets the current `i = 1`.
24+
Bet šaukimas `alert` yra atskiras, Tai yra kitas teiginys, kuris yra įvykdomas po padidinimo ir palyginimo. Tad jis gauna esamą `i = 1`.
2525

26-
Then follow `2, 3, 4…`
26+
Toliau seka `2, 3, 4…`
2727

28-
Let's stop on `i = 4`. The prefix form `++i` would increment it and use `5` in the comparison. But here we have the postfix form `i++`. So it increments `i` to `5`, but returns the old value. Hence the comparison is actually `while(4 < 5)` -- true, and the control goes on to `alert`.
28+
Sustokime prie `i = 4`. Priešdėlinė forma `++i` padidintų jį ir naudotų `5` palyginime. Bet čia mes turime podėlinę formą `i++`. Tad ji padidina `i` iki `5`, bet grąžina senąją vertę. Dėl to palyginimas yra iš tikrųjų `while(4 < 5)` -- tiesa, ir controlė pereina prie `alert`.
2929

30-
The value `i = 5` is the last one, because on the next step `while(5 < 5)` is false.
30+
Vertė `i = 5` yra paskutinė, nes sekančiame žingsnyje `while(5 < 5)` būtų netiesa.

1-js/02-first-steps/12-while-for/2-which-value-while/task.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,19 +2,19 @@ importance: 4
22

33
---
44

5-
# Which values does the while loop show?
5+
# Kurias vertes parodo while ciklas?
66

7-
For every loop iteration, write down which value it outputs and then compare it with the solution.
7+
Kiekvienai ciklo iteracijai užrašykite kurią vertę ji atiduoda ir tada palygininkite tą vertę su sprendimu.
88

9-
Both loops `alert` the same values, or not?
9+
Abu ciklai `alert` tas pačias vertes ar ne?
1010

11-
1. The prefix form `++i`:
11+
1. Priešdėlinė forma `++i`:
1212

1313
```js
1414
let i = 0;
1515
while (++i < 5) alert( i );
1616
```
17-
2. The postfix form `i++`
17+
2. Podėlinė forma `i++`
1818

1919
```js
2020
let i = 0;
Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
1-
**The answer: from `0` to `4` in both cases.**
1+
**Atsakymas: nuo `0` iki `4` abiem atvejais.**
22

33
```js run
44
for (let i = 0; i < 5; ++i) alert( i );
55

66
for (let i = 0; i < 5; i++) alert( i );
77
```
88

9-
That can be easily deducted from the algorithm of `for`:
9+
Tai galima labai lengvai nustatyti iš `for` algoritmo:
1010

11-
1. Execute once `i = 0` before everything (begin).
12-
2. Check the condition `i < 5`
13-
3. If `true` -- execute the loop body `alert(i)`, and then `i++`
11+
1. Įvykdyti vieną kartą `i = 0` prieš visa kita (pradžia).
12+
2. Patikrinti sąlygą `i < 5`
13+
3. Jeigu `true` -- įvykdyti ciklo korpusą `alert(i)`, o tada `i++`
1414

15-
The increment `i++` is separated from the condition check (2). That's just another statement.
15+
Padidėjimas `i++` yra atskirtas nuo sąlygos patikrinimo (2). Tai tik dar vienas teiginys.
1616

17-
The value returned by the increment is not used here, so there's no difference between `i++` and `++i`.
17+
Vertė grąžinta padidėjimo nėra čia naudojama, tad nėra jokio skirtumo tarp `i++` ir `++i`.

1-js/02-first-steps/12-while-for/3-which-value-for/task.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,18 +2,18 @@ importance: 4
22

33
---
44

5-
# Which values get shown by the "for" loop?
5+
# Korias vertes parodo "for" ciklas?
66

7-
For each loop write down which values it is going to show. Then compare with the answer.
7+
Kiekvienam ciklui parašykite vertes, kurias jis parodys. Tada palyginkite atsakymus.
88

9-
Both loops `alert` same values or not?
9+
Abu `alert` ciklai, bet ar tos pačios vertės?
1010

11-
1. The postfix form:
11+
1. Podėlio forma:
1212

1313
```js
1414
for (let i = 0; i < 5; i++) alert( i );
1515
```
16-
2. The prefix form:
16+
2. Priešdėlio forma:
1717

1818
```js
1919
for (let i = 0; i < 5; ++i) alert( i );

1-js/02-first-steps/12-while-for/4-for-even/solution.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,4 +8,4 @@ for (let i = 2; i <= 10; i++) {
88
}
99
```
1010

11-
We use the "modulo" operator `%` to get the remainder and check for the evenness here.
11+
Mes naudojame "liekanos" operatorių `%`, kad gautume liekaną ir patikrintume lygybę.

1-js/02-first-steps/12-while-for/4-for-even/task.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@ importance: 5
22

33
---
44

5-
# Output even numbers in the loop
5+
# Grąžinkite lyginius skaičius su ciklu
66

7-
Use the `for` loop to output even numbers from `2` to `10`.
7+
Panaudokite `for` ciklą, kad gautumėte lyginius skaičius nuo `2` iki `10`.
88

99
[demo]

1-js/02-first-steps/12-while-for/5-replace-for-while/solution.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
```js run
44
let i = 0;
55
while (i < 3) {
6-
alert( `number ${i}!` );
6+
alert( `skaičius ${i}!` );
77
i++;
88
}
99
```

1-js/02-first-steps/12-while-for/5-replace-for-while/task.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,13 @@ importance: 5
22

33
---
44

5-
# Replace "for" with "while"
5+
# Pakeiskite "for" į "while"
66

7-
Rewrite the code changing the `for` loop to `while` without altering its behavior (the output should stay same).
7+
Perrašykite kodą pakeisdami ciklą `for` į `while`, nepakeisdami elgesio (turėtumėte gauti tą patį atsakymą).
88

99
```js run
1010
for (let i = 0; i < 3; i++) {
11-
alert( `number ${i}!` );
11+
alert( `skaičius ${i}!` );
1212
}
1313
```
1414

1-js/02-first-steps/12-while-for/6-repeat-until-correct/solution.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,13 @@
33
let num;
44

55
do {
6-
num = prompt("Enter a number greater than 100?", 0);
6+
num = prompt("Įveskite skaičių didesnį nei 100?", 0);
77
} while (num <= 100 && num);
88
```
99

10-
The loop `do..while` repeats while both checks are truthy:
10+
Ciklas`do..while` pakartoja kol abu patikrinimai yra truthy:
1111

12-
1. The check for `num <= 100` -- that is, the entered value is still not greater than `100`.
13-
2. The check `&& num` is false when `num` is `null` or a empty string. Then the `while` loop stops too.
12+
1. Patikrinimas dėl `num <= 100` -- tai yra, įvesta vertė vis dar nėra didesnė už `100`.
13+
2. Patikrinimas `&& num` yra neteisingas, jeigu `num` yra `null` arba tuščia eilutė. Tada `while` ciklas taip pat sustoja.
1414

15-
P.S. If `num` is `null` then `num <= 100` is `true`, so without the 2nd check the loop wouldn't stop if the user clicks CANCEL. Both checks are required.
15+
P.S. Jeigu `num` yra `null` tada `num <= 100` yra `true`, tad be antro patikrinimo ciklas nesustotų, jeigu lankytojas paspaustų CANCEL. Abu patikrinimai yra reikalingi.

1-js/02-first-steps/12-while-for/6-repeat-until-correct/task.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,12 @@ importance: 5
22

33
---
44

5-
# Repeat until the input is correct
5+
# Kartoti kol įvestis bus teisinga
66

7-
Write a loop which prompts for a number greater than `100`. If the visitor enters another number -- ask them to input again.
7+
Parašykite ciklą, kurios prašytų skaičių didesnio už `100`. Jeigu lankytojas įveda kitokį skaičių -- paprašykite dar kartą įvesti.
88

9-
The loop must ask for a number until either the visitor enters a number greater than `100` or cancels the input/enters an empty line.
9+
Ciklas turi prašyti skaičio tol kol lankytojas įves skaičių didesnį nei `100` arba atšauks (ang. cancels) įvestį arba paliks tuščią eilutę paspausdamas enter.
1010

11-
Here we can assume that the visitor only inputs numbers. There's no need to implement a special handling for a non-numeric input in this task.
11+
Čia galime numanyti, kad lankytojas ves tik skaičius. Nėra reikalo atskirai pasirūpinti neskaitine užduoties įvestimi.
1212

1313
[demo]
Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,29 @@
1-
There are many algorithms for this task.
1+
Yra daug algoritmų šiai užduočiai.
22

3-
Let's use a nested loop:
3+
Panaudokime matrioškinį ciklą:
44

55
```js
6-
For each i in the interval {
7-
check if i has a divisor from 1..i
8-
if yes => the value is not a prime
9-
if no => the value is a prime, show it
6+
Kiekvienam i intervale {
7+
patikrinkite ar i turi daliklį iš 1..i
8+
jeigu taip => vertė nėra pirminis skaičius
9+
jeigu ne => vertė yra pirminis skaičius, parodykite ją
1010
}
1111
```
1212

13-
The code using a label:
13+
Kodas naudojant etiketę:
1414

1515
```js run
1616
let n = 10;
1717

1818
nextPrime:
19-
for (let i = 2; i <= n; i++) { // for each i...
19+
for (let i = 2; i <= n; i++) { // kiekvienam i...
2020

21-
for (let j = 2; j < i; j++) { // look for a divisor..
22-
if (i % j == 0) continue nextPrime; // not a prime, go next i
21+
for (let j = 2; j < i; j++) { // ieškoti daliklio..
22+
if (i % j == 0) tęsti nextPrime; // ne pirminis skaičius, eiti prie sekančio i
2323
}
2424

25-
alert( i ); // a prime
25+
alert( i ); // pirminis
2626
}
2727
```
2828

29-
There's a lot of space to optimize it. For instance, we could look for the divisors from `2` to square root of `i`. But anyway, if we want to be really efficient for large intervals, we need to change the approach and rely on advanced maths and complex algorithms like [Quadratic sieve](https://en.wikipedia.org/wiki/Quadratic_sieve), [General number field sieve](https://en.wikipedia.org/wiki/General_number_field_sieve) etc.
29+
Yra daug vietos, kur galima jį optimizuoti. Pavyzdžiui, galėtume ieškoti daliklių nuo `2` iki `i` šaknies. Bet kokiu atveju, jeigu norime būti efektyvūs dideliems intervalams, reikia pakeisti priėjimo būdus ir pasitikėti pažengusia matematika ir sudėtingais algoritmais kaip [Quadratic sieve](https://en.wikipedia.org/wiki/Quadratic_sieve), [General number field sieve](https://en.wikipedia.org/wiki/General_number_field_sieve) etc.

1-js/02-first-steps/12-while-for/7-list-primes/task.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,16 @@ importance: 3
22

33
---
44

5-
# Output prime numbers
5+
# Atiduoti pirminius numerius
66

7-
An integer number greater than `1` is called a [prime](https://en.wikipedia.org/wiki/Prime_number) if it cannot be divided without a remainder by anything except `1` and itself.
7+
Sveikieji skaičiai didesni už `1` yra vadinami [prime](https://en.wikipedia.org/wiki/Prime_number), jeigu jie gali būti padalinti be liekanos tik iš pačio savęs arba `1`.
88

9-
In other words, `n > 1` is a prime if it can't be evenly divided by anything except `1` and `n`.
9+
Kitaip sakant, `n > 1` yra pirminis, jeigu jis negali būti lygiai padalintas iš nieko kitaip kaip tik `1` ir `n`.
1010

11-
For example, `5` is a prime, because it cannot be divided without a remainder by `2`, `3` and `4`.
11+
Pavyzdžiui, `5` yra pirminis, nes negali būti padalintas be liekanos iš `2`, `3` ir `4`.
1212

13-
**Write the code which outputs prime numbers in the interval from `2` to `n`.**
13+
**Parašykite kodą, kuris atiduotų pirminius numerius intervalu tarp `2` iki `n`.**
1414

15-
For `n = 10` the result will be `2,3,5,7`.
15+
Šiuo atveju `n = 10` rezultatas būtų `2,3,5,7`.
1616

17-
P.S. The code should work for any `n`, not be hard-tuned for any fixed value.
17+
P.S. Kodas turi veikti bet kuriam `n`, o ne paruoštas atitinkamoms vertėms.

0 commit comments

Comments
 (0)