Skip to content

Arrays #105

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 13 commits into from
Prev Previous commit
Next Next commit
Update 'arrays' files translation.
  • Loading branch information
odsantos committed Dec 4, 2020
commit 080fb45d46174efae14296efbd9c46d0f1eeab88
4 changes: 2 additions & 2 deletions 1-js/05-data-types/04-array/1-item-value/task.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
importância: 3
importance: 3

---

# Foi o *array* copiado?

O que irá mostrar este código?
O que irá este código mostrar?

```js
let fruits = ["Maçã", "Pêra", "Laranja"];
Expand Down
8 changes: 4 additions & 4 deletions 1-js/05-data-types/04-array/10-maximal-subarray/solution.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ Por exemplo, para `[-1, 2, 3, -9, 11]`:
11
```

Na verdade, o código é um laço aninhado (*nested loop*): o externo percorre os elementos do *array*, e o interno calcula as subsomas que comecem pelo elemento atual.
Na verdade, o código é um laço aninhado (*nested loop*): o externo percorre os elementos do *array*, e o interno calcula as subsomas que começam pelo elemento atual.

```js run
function getMaxSubSum(arr) {
Expand Down Expand Up @@ -65,7 +65,7 @@ Para grandes *arrays* (1000, 10000 ou mais itens) tais algoritmos podem levar a

Vamos percorrer o *array* e guardar a atual soma partial dos elementos na variável `s`. Se, a certa altura, `s` se tornar negativo, então faça a atribuição `s=0`. O máximo desses `s` será a resposta.

Se, a descrição for demasiado vaga, por favor veja o código; é realmente curto:
Se a descrição for demasiado vaga, por favor veja o código, é realmente curto:

```js run demo
function getMaxSubSum(arr) {
Expand All @@ -89,6 +89,6 @@ alert( getMaxSubSum([1, 2, 3]) ); // 6
alert( getMaxSubSum([-1, -2, -3]) ); // 0
```

O algoritmo requere exatamente 1 passagem sobre o *array*, portanto o tempo de complexidade é O(n).
O algoritmo requere exatamente 1 passagem pelo *array*, portanto o tempo de complexidade é O(n).

Pode encontrar informação mais detalhada sobre o algoritmo aqui: [Sublista contígua de soma máxima](https://pt.wikipedia.org/wiki/Sublista_cont%C3%ADgua_de_soma_m%C3%A1xima). Se, ainda não for óbvio como isso funciona, então por favor percorra cada algoritmo nos exemplos acima e veja como trabalha, é melhor do que quaisquer palavras.
Pode encontrar informação mais detalhada sobre o algoritmo aqui: [Sublista contígua de soma máxima](https://pt.wikipedia.org/wiki/Sublista_cont%C3%ADgua_de_soma_m%C3%A1xima). Se, ainda não for óbvio porque isso funciona, então por favor rasteie cada algoritmo nos exemplos acima e veja como trabalha, é melhor do que quaisquer palavras.
2 changes: 1 addition & 1 deletion 1-js/05-data-types/04-array/10-maximal-subarray/task.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
importância: 2
importance: 2

---

Expand Down
1 change: 1 addition & 0 deletions 1-js/05-data-types/04-array/2-create-array/solution.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,3 +7,4 @@ styles[Math.floor((styles.length - 1) / 2)] = "Clássicos";
alert( styles.shift() );
styles.unshift("Rap", "Reggae");
```

2 changes: 1 addition & 1 deletion 1-js/05-data-types/04-array/2-create-array/task.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
importância: 5
importance: 5

---

Expand Down
6 changes: 3 additions & 3 deletions 1-js/05-data-types/04-array/3-call-array-this/solution.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
A invocação `arr[2]()` é sintáticamente a antiga `obj[method]()`; no papel de `obj` temos `arr`, e no papel de `method` temos `2`.

Assim, temos uma chamada da função `arr[2]` como um método de objeto. Naturalmente, como ela recebe em `this` a referência ao objeto `arr`, ela mostra como saída o *array*:
Assim, temos uma chamada da função `arr[2]` como um método de objeto. Naturalmente, como ela recebe em `this` a referência ao objeto `arr`, ela exibe o *array*:

```js run
let arr = ["a", "b"];
Expand All @@ -9,7 +9,7 @@ arr.push(function() {
alert( this );
})

arr[2](); // "a","b", function
arr[2](); // "a","b", function(){...}
```

O *array* tem 3 valores: os dois inicias, mais a função.
O *array* tem 3 valores: inicialmente dois, mais a função.
3 changes: 2 additions & 1 deletion 1-js/05-data-types/04-array/3-call-array-this/task.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
importância: 5
importance: 5

---

Expand All @@ -15,3 +15,4 @@ arr.push(function() {

arr[2](); // ?
```

5 changes: 3 additions & 2 deletions 1-js/05-data-types/04-array/5-array-input-sum/solution.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
Por favor repare no subtítulo, e em importantes detalhes da solução. Nós não convertemos `value` para número imediatamente após `prompt`, porque depois de `value = +value` não temos como diferenciar uma *string* vazia (sinal para parar) de zero (número válido). Em vez disso, o fazemos mais tarde.
Por favor repare no subtítulo, e em detalhes importantes da solução. Nós não convertemos `value` para número imediatamente após `prompt`, porque depois de `value = +value` não teríamos como ver a diferença entre uma *string* vazia (o sinal para parar) e zero (um número válido). Assim, nós o fazemos mais tarde.


```js run demo
Expand All @@ -10,7 +10,7 @@ function sumInput() {

let value = prompt("Um número, por favor?", 0);

// devemos cancelar?
// nós devemos cancelar?
if (value === "" || value === null || !isFinite(value)) break;

numbers.push(+value);
Expand All @@ -25,3 +25,4 @@ function sumInput() {

alert( sumInput() );
```

6 changes: 3 additions & 3 deletions 1-js/05-data-types/04-array/5-array-input-sum/task.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
importância: 4
importance: 4

---

Expand All @@ -7,9 +7,9 @@ importância: 4
Escreva a função `sumInput()` que:

- Peça ao utilizador por valores usando `prompt` e guarde os valores num *array*.
- Acabe o pedido quando o utilizador inserir um valor não-numérico, uma *string* vazia, ou pressione "*Cancel*".
- Não peça mais quando o utilizador inserir um valor não-numérico, uma *string* vazia, ou pressione "*Cancel*".
- Calcule e retorne a soma dos itens no *array*.

P.S. Um zero `0` é um número válido, por favor não pare a inserção com zero.
P.S. Um zero `0` é um número válido, por favor não pare de pedir com zero.

[demo]
Loading