chore(i18n,learn): processed translations (#46622)

This commit is contained in:
camperbot
2022-06-22 06:17:46 -07:00
committed by GitHub
parent c96030c766
commit a244920079
36 changed files with 76 additions and 108 deletions
@@ -11,13 +11,13 @@ dashedName: global-scope-and-functions
JavaScript では、変数の効力の及ぶ範囲のことを<dfn>スコープ</dfn>と呼びます。 関数ブロックの外側で定義された変数は、<dfn>グローバル</dfn>のスコープを持ちます。 つまり、JavaScript コードのどこからでもその変数を参照することができます。
`let` キーワードまたは `const` キーワードを使用せずに宣言された変数は、自動的に `global` スコープで作成されます。 これは、コード内の他の場所で、または関数を再び実行するときに、意図しない結果を引き起こす可能性があります。 変数は常に `let` または `const` 宣言するようにしてください
`let` キーワードまたは `const` キーワードを使用せずに宣言された変数は、自動的に `global` スコープで作成されます。 これは、コード内の他の場所や、関数を複数回実行する場合に、意図しない結果を引き起こす可能性があります。 変数は常に `let` または `const` を使用して宣言するようにしましょう
# --instructions--
`let` または `const`を使用して、関数の外部で `myGlobal` という名前のグローバル変数を宣言し、 値 `10` で初期化してください。
関数 `fun1` の内側で、`let` キーワードまたは `const` キーワードを***使用せずに***、`oopsGlobal``5` を代入してください。
関数 `fun1` の内側で、キーワード `var``let``const` のいずれも***使用せずに***、`oopsGlobal``5` を代入してください。
# --hints--
@@ -39,7 +39,7 @@ Você deve usar aspas duplas (`"`) e quatro aspas duplas escapadas (`\"`).
assert(code.match(/\\"/g).length === 4 && code.match(/[^\\]"/g).length === 2);
```
Variável myStr deve conter a string: `I am a "double quoted" string inside "double quotes".`
Variável `myStr` deve conter a string: `I am a "double quoted" string inside "double quotes".`
```js
assert(/I am a "double quoted" string inside "double quotes(\."|"\.)$/.test(myStr));
@@ -21,7 +21,7 @@ do {
} while (i < 5);
```
O exemplo acima se comporta de forma similar a outros tipos de laços, e o array resultante se parecerá com `[0,1,2,3,4]`. No entanto, o que torna o laço `do...while` diferente de outros laços é como ele se comporta quando uma condição falha na primeira verificação. Vamos ver isso na prática: Aqui está um laço comum `while` que rodará o código no laço enquanto `i < 5`:
O exemplo acima se comporta de forma similar a outros tipos de laços, e o array resultante se parecerá com `[0,1,2,3,4]`. No entanto, o que torna o laço `do...while` diferente de outros laços é como ele se comporta quando uma condição falha na primeira verificação. Vamos ver isso na prática. Aqui está um laço comum `while` que rodará o código no laço enquanto `i < 5`:
```js
const ourArray = [];
@@ -12,7 +12,7 @@ No desafio anterior, você viu como obter dados de JSON da API de fotos de gatos
Agora, dê uma olhada nos dados retornados para entender melhor o formato JSON. Vamos relembrar um pouco da notação do JavaScript:
<blockquote>[ ] -> colchetes representam um array<br>{ } -> chaves representam um objeto<br>" " -> aspas duplas representam uma string. Elas também são usadas para nomes de chaves em JSON</blockquote>
<blockquote>[ ] -> colchetes representam um array<br>{ } -> chaves representam um objeto.<br>" " -> aspas duplas representam uma string. Elas também são usadas para nomes de chaves em JSON.</blockquote>
Entender a estrutura dos dados que uma API retorna é importante, pois influencia a forma como você obtém os valores de que necessita.
@@ -64,7 +64,8 @@ console.log('user ' + socket.request.user.name + ' connected');
```
Ele vai logar no console do servidor que está conectado!
Envie sua página quando você achar que ela está certa. Se você encontrar erros, pode conferir o projeto até este momento em <a href="" target="_blank" rel="noopener noreferrer nofollow">https://gist.github.com/camperbot/1414cc9433044e306dd7fd0caa1c6254).
Envie sua página quando você achar que ela está certa. Se você encontrar erros, pode conferir o projeto até este momento em <a href="https://gist.github.com/camperbot/1414cc9433044e306dd7fd0caa1c6254" target="_blank" rel="noopener noreferrer nofollow">https://gist.github.com/camperbot/1414cc9433044e306dd7fd0caa1c6254</a>.
# --hints--
@@ -37,7 +37,8 @@ socket.on('user count', function(data) {
```
Agora, tente carregar o seu aplicativo, autentique-se e você deve ver no console do client '1', representando a contagem de usuários no momento! Tente carregar mais clients, e autenticar para ver o número subir.
Envie sua página quando você achar que ela está certa. Se você encontrar erros, pode conferir o projeto concluído até este momento em <a href="" target="_blank" rel="noopener noreferrer nofollow">https://gist.github.com/camperbot/28ef7f1078f56eb48c7b1aeea35ba1f5).
Envie sua página quando você achar que ela está certa. Se você encontrar erros, pode conferir o projeto concluído até este momento em <a href="https://gist.github.com/camperbot/28ef7f1078f56eb48c7b1aeea35ba1f5" target="_blank" rel="noopener noreferrer nofollow">https://gist.github.com/camperbot/28ef7f1078f56eb48c7b1aeea35ba1f5</a>.
# --hints--
@@ -21,7 +21,8 @@ socket.on('disconnect', () => {
Para garantir que os clients tenham a contagem atualizada dos usuários atuais continuamente, você deve diminuir os currentUsers em 1 quando a desconexão acontece, emitindo o evento 'user count' com a contagem atualizada!
**Observação:** assim como ocorre com `'disconnect'`, todos os outros eventos que um socket pode emitir para o servidor devem ser tratados dentro do listener que estiver conectando, onde 'socket' está definido.
Envie sua página quando você achar que ela está certa. Se você encontrar erros, pode conferir o projeto concluído até este momento em <a href="" target="_blank" rel="noopener noreferrer nofollow">https://gist.github.com/camperbot/ab1007b76069884fb45b215d3c4496fa).
Envie sua página quando você achar que ela está certa. Se você encontrar erros, pode conferir o projeto concluído até este momento em <a href="https://gist.github.com/camperbot/ab1007b76069884fb45b215d3c4496fa" target="_blank" rel="noopener noreferrer nofollow">https://gist.github.com/camperbot/ab1007b76069884fb45b215d3c4496fa</a>.
# --hints--
@@ -23,7 +23,8 @@ Além disso, em `profile.pug`, adicione um link referindo-se à rota `/logout`,
```pug
a(href='/logout') Logout
```
Envie sua página quando você achar que ela está certa. Se você encontrar erros, pode conferir o projeto concluído até este momento em <a href="" target="_blank" rel="noopener noreferrer nofollow">https://gist.github.com/camperbot/136b3ad611cc80b41cab6f74bb460f6a).
Envie sua página quando você achar que ela está certa. Se você encontrar erros, pode conferir o projeto concluído até este momento em <a href="https://gist.github.com/camperbot/136b3ad611cc80b41cab6f74bb460f6a" target="_blank" rel="noopener noreferrer nofollow">https://gist.github.com/camperbot/136b3ad611cc80b41cab6f74bb460f6a</a>.
# --hints--
@@ -39,7 +39,8 @@ myDB(async client => {
```
Certifique-se de descomentar o código `myDataBase` em `deserializeUser` e de editar o seu `done(null, null)` para incluir o `doc`.
Envie sua página quando você achar que ela está certa. Se você encontrar erros, pode conferir o projeto concluído até este momento em <a href="" target="_blank" rel="noopener noreferrer nofollow">https://gist.github.com/camperbot/175f2f585a2d8034044c7e8857d5add7).
Envie sua página quando você achar que ela está certa. Se você encontrar erros, pode conferir o projeto concluído até este momento em <a href="https://gist.github.com/camperbot/175f2f585a2d8034044c7e8857d5add7" target="_blank" rel="noopener noreferrer nofollow">https://gist.github.com/camperbot/175f2f585a2d8034044c7e8857d5add7</a>.
# --hints--
@@ -30,7 +30,8 @@ app.route('/login')
res.redirect('/profile');
});
```
Envie sua página quando você achar que ela está certa. Se você encontrar erros, pode conferir o projeto até este momento em <a href="" target="_blank" rel="noopener noreferrer nofollow">https://gist.github.com/camperbot/1f7f6f76adb178680246989612bea21e).
Envie sua página quando você achar que ela está certa. Se você encontrar erros, pode conferir o projeto até este momento em <a href="https://gist.github.com/camperbot/1f7f6f76adb178680246989612bea21e" target="_blank" rel="noopener noreferrer nofollow">https://gist.github.com/camperbot/1f7f6f76adb178680246989612bea21e</a>.
# --hints--
@@ -46,7 +46,8 @@ app.route('/register')
}
);
```
Envie sua página quando você achar que ela está certa. Se você encontrar erros, pode conferir o projeto concluído até este momento em <a href="" target="_blank" rel="noopener noreferrer nofollow">https://gist.github.com/camperbot/b230a5b3bbc89b1fa0ce32a2aa7b083e).
Envie sua página quando você achar que ela está certa. Se você encontrar erros, pode conferir o projeto concluído até este momento em <a href="https://gist.github.com/camperbot/b230a5b3bbc89b1fa0ce32a2aa7b083e" target="_blank" rel="noopener noreferrer nofollow">https://gist.github.com/camperbot/b230a5b3bbc89b1fa0ce32a2aa7b083e</a>.
**OBSERVAÇÃO:** a partir deste ponto, podem surgir problemas relacionados com o uso do navegador *picture-in-picture*. Se você estiver usando uma IDE on-line que oferece uma pré-visualização do aplicativo dentro do editor, é recomendável abrir esta pré-visualização em uma nova aba.
@@ -27,7 +27,8 @@ passport.deserializeUser((id, done) => {
```
OBSERVAÇÃO: `deserializeUser` vai lançar um erro até que tenhamos definido o banco de dados na próxima etapa. Portanto, por enquanto, comente todo o bloco e apenas chame `done(null, null)` na função `deserializeUser`.
Envie sua página quando você achar que ela está certa. Se você encontrar erros, pode conferir o projeto concluído até este momento em <a href="" target="_blank" rel="noopener noreferrer nofollow">https://gist.github.com/camperbot/7068a0d09e61ec7424572b366751f048).
Envie sua página quando você achar que ela está certa. Se você encontrar erros, pode conferir o projeto concluído até este momento em <a href="https://gist.github.com/camperbot/7068a0d09e61ec7424572b366751f048" target="_blank" rel="noopener noreferrer nofollow">https://gist.github.com/camperbot/7068a0d09e61ec7424572b366751f048</a>.
# --hints--
@@ -27,7 +27,8 @@ A página não será carregada até que você renderize corretamente o arquivo d
Altere o argumento da declaração `res.render()` na rota `/` para que seja o caminho de arquivo para o diretório `views/pug`. O caminho pode ser um caminho relativo (relativo às visualizações) ou um caminho absoluto e não necessita de uma extensão de arquivo.
Se tudo correu como planejado, sua página inicial vai parar de mostrar a mensagem "`Pug template is not defined.`" e agora exibirá uma mensagem indicando que você renderizou com sucesso o modelo do Pug!
Envie sua página quando você achar que ela está certa. Se você encontrar erros, pode conferir o projeto concluído até este momento em <a href="" target="_blank" rel="noopener noreferrer nofollow">https://gist.github.com/camperbot/3515cd676ea4dfceab4e322f59a37791).
Envie sua página quando você achar que ela está certa. Se você encontrar erros, pode conferir o projeto concluído até este momento em <a href="https://gist.github.com/camperbot/3515cd676ea4dfceab4e322f59a37791" target="_blank" rel="noopener noreferrer nofollow">https://gist.github.com/camperbot/3515cd676ea4dfceab4e322f59a37791</a>.
# --hints--
@@ -41,7 +41,8 @@ O comentário suprime o erro que você normalmente veria, já que 'io' não est
Agora, tente carregar o aplicativo e autentique-se. Você deve ver no console do servidor a frase 'A user has connected'!
**Observação:** `io()` só funciona ao se conectar a um socket hospedado no mesmo url/servidor. Para se conectar a um socket externo hospedado em outro lugar, você usaria `io.connect('URL');`.
Envie sua página quando você achar que ela está certa. Se você encontrar erros, pode conferir o projeto concluído até este momento em <a href="" target="_blank" rel="noopener noreferrer nofollow">https://gist.github.com/camperbot/aae41cf59debc1a4755c9a00ee3859d1).
Envie sua página quando você achar que ela está certa. Se você encontrar erros, pode conferir o projeto concluído até este momento em <a href="https://gist.github.com/camperbot/aae41cf59debc1a4755c9a00ee3859d1" target="_blank" rel="noopener noreferrer nofollow">https://gist.github.com/camperbot/aae41cf59debc1a4755c9a00ee3859d1</a>.
# --hints--
@@ -7,11 +7,12 @@ dashedName: compare-the-properties-of-two-elements
---
# --description--
Como lembrete, este projeto está sendo criado a partir do projeto inicial seguinte, no <a href="https://replit.com/github/freeCodeCamp/boilerplate-mochachai" target="_blank" rel="noopener noreferrer nofollow">Replit</a> ou pode ser clonado do <a href="https://github.com/freeCodeCamp/boilerplate-mochachai/" target="_blank" rel="noopener noreferrer nofollow">GitHub<a>.
Lembrando que este projeto está sendo construído a partir do <a href="https://replit.com/github/freeCodeCamp/boilerplate-mochachai" target="_blank" rel="noopener noreferrer nofollow">Replit</a>, ou pode ser clonado no <a href="https://github.com/freeCodeCamp/boilerplate-mochachai/" target="_blank" rel="noopener noreferrer nofollow">GitHub</a>.
# --instructions--
Dentro de `tests/1_unit-tests.js` no teste `#8` na suite `Comparisons`, altere todos os `assert` para `assert.isAbove` ou `assert.isAtMost` para fazer com que o teste passe (seja avaliado como `true`). Não altere os argumentos passados para os asserts.
Em `tests/1_unit-tests.js`, no teste classificado como `#8` e na suíte `Comparisons`, modifique cada `assert` para `assert.isAbove` ou para `assert.isAtMost`, de maneira que cada teste passe (seja avaliado como `true`). Não altere os argumentos passados para as assertivas.
# --hints--
@@ -29,7 +30,7 @@ Todos os testes devem passar.
);
```
Você deve selecionar o método correto para a primeira asserção - `isAbove` x `isAtMost`.
Você deve escolher o método correto para a primeira afirmação - `isAbove` ou `isAtMost`.
```js
(getUserInput) =>
@@ -47,7 +48,7 @@ Você deve selecionar o método correto para a primeira asserção - `isAbove` x
);
```
Você deve selecionar o método correto para a segunda asserção - `isAbove` x `isAtMost`.
Você deve escolher o método correto para a segunda afirmação - `isAbove` ou `isAtMost`.
```js
(getUserInput) =>
@@ -61,7 +62,7 @@ Você deve selecionar o método correto para a segunda asserção - `isAbove` x
);
```
Você deve selecionar o método correto para a terceira asserção - `isAbove` x `isAtMost`.
Você deve escolher o método correto para a terceira afirmação - `isAbove` ou `isAtMost`.
```js
(getUserInput) =>
@@ -79,7 +80,7 @@ Você deve selecionar o método correto para a terceira asserção - `isAbove` x
);
```
Você deve selecionar o método correto para a quarta asserção - `isAbove` x `isAtMost`.
Você deve escolher o método correto para a quarta afirmação - `isAbove` ou `isAtMost`.
```js
(getUserInput) =>
@@ -88,7 +89,7 @@ Você deve selecionar o método correto para a quarta asserção - `isAbove` x `
assert.equal(
data.assertions[3].method,
'isAtMost',
'1 - Math.random() is > 0 and <= 1. É atMost 1 !'
'1 - Math.random() is > 0 and <= 1. It is atMost 1 !'
);
},
(xhr) => {
@@ -101,8 +102,8 @@ Você deve selecionar o método correto para a quarta asserção - `isAbove` x `
```js
/**
Desafios de back-end não precisam de solução,
pois precisariam ser testados contra o projeto funcional completo.
Confira nossas diretrizes de contribuição para saber mais.
Backend challenges don't need solutions,
because they would need to be tested against a full working project.
Please check our contributing guidelines to learn more.
*/
```
@@ -324,7 +324,7 @@ async (getUserInput) => {
};
```
Se o `value` enviado à `/api/check` não for um número entre 1 e 9, os valores retornados serão `{ error: 'Invalid value' }`
Se o `value` enviado à `/api/check` não for um número entre 1 e 9, o valor retornado será `{ error: 'Invalid value' }`
```js
async (getUserInput) => {
@@ -369,7 +369,7 @@ async (getUserInput) => {
};
```
Todos os 14 testes funcionais foram concluídos e deram aprovação. Veja `/tests/2_functional-tests.js` para o comportamento esperado para o qual você deve escrever os testes.
Todos os 14 testes funcionais foram concluídos e deram aprovação. Veja `/tests/2_functional-tests.js` para a funcionalidade esperada para o qual você deve escrever os testes.
```js
async (getUserInput) => {
@@ -21,11 +21,11 @@ Para este projeto, você vai visualizar dados de série de tempo usando um gráf
Use os dados para completar as seguintes tarefas:
- Use o Pandas para importar os dados de "fcc-forum-pageviews.csv". Define o índice para que seja a coluna "date".
- Use o Pandas para importar os dados de "fcc-forum-pageviews.csv". Define o índice para que seja a coluna `date`.
- Limpe os dados filtrando os dias em que as visualizações de página estavam nos 2,5% maiores ou nos 2,5% menores do dataset.
- Crie uma função `draw_line_plot` que use o Matplotlib para desenhar um gráfico de linhas semelhante a "examples/Figure_1.png". O título deve ser "Daily freeCodeCamp Forum Page Views 5/2016-12/2019". O rótulo no eixo x deve ser "Date" e o rótulo no eixo y deve ser "Page Views".
- Crie uma função `draw_bar_plot` para desenhar um gráfico de barras semelhante a "examples/Figure_2.png". Ele deve mostrar as médias de visualizações de página diárias para cada mês agrupadas por ano. A legenda deve mostrar os rótulos dos meses e ter o título "Months". No gráfico, o rótulo no eixo x deve ser "Years" e o rótulo no eixo y deve ser "Average Page Views".
- Crie uma função `draw_box_plot` que use o Seaborn para desenhar um diagrama de 2 caixas adjacentes similar a "examples/Figure_3.png". Esses diagramas de caixa devem mostrar como os valores são distribuídos dentro de um determinado ano ou mês e como são comparados ao longo do tempo. O título do primeiro diagrama deve ser "Year-wise Box Plot (Trend)" (Diagrama de caixas do ano (Tendência)) e o título do segundo gráfico deve ser "Month-wise Box Plot (Seasonality)" (Diagrama de caixas do mês (Sazonalidade)). Certifique-se de que as etiquetas do mês na parte inferior comecem em "Jan" e que o eixos x e y estejam rotulados corretamente. O boilerplate inclui comandos para preparar os dados.
- Crie uma função `draw_line_plot` que use o Matplotlib para desenhar um gráfico de linhas semelhante a "examples/Figure_1.png". O título deve ser `Daily freeCodeCamp Forum Page Views 5/2016-12/2019`. O rótulo no eixo x deve ser `Date` e o rótulo no eixo y deve ser `Page Views`.
- Crie uma função `draw_bar_plot` para desenhar um gráfico de barras semelhante a "examples/Figure_2.png". Ele deve mostrar as médias de visualizações de página diárias para cada mês agrupadas por ano. A legenda deve mostrar os rótulos dos meses e ter o título `Months`. No gráfico, o rótulo no eixo x deve ser `Years` e o rótulo no eixo y deve ser `Average Page Views`.
- Crie uma função `draw_box_plot` que use o Seaborn para desenhar um diagrama de 2 caixas adjacentes similar a "examples/Figure_3.png". Esses diagramas de caixa devem mostrar como os valores são distribuídos dentro de um determinado ano ou mês e como são comparados ao longo do tempo. O título do primeiro diagrama deve ser `Year-wise Box Plot (Trend)` (Diagrama de caixas do ano (Tendência)) e o título do segundo gráfico deve ser `Month-wise Box Plot (Seasonality)` (Diagrama de caixas do mês (Sazonalidade)). Certifique-se de que as etiquetas do mês na parte inferior comecem em `Jan` e que o eixos x e y estejam rotulados corretamente. O boilerplate inclui comandos para preparar os dados.
Para cada gráfico, certifique-se de usar uma cópia do data frame. Os testes unitários foram escritos para você no `test_module.py`.
@@ -22,10 +22,10 @@ Você analisará um dataset da mudança média do nível do mar global desde 188
Use os dados para completar as seguintes tarefas:
- Use o Pandas para importar os dados de `epa-sea-level.csv`.
- Use a matplotlib para criar um diagrama de dispersão usando a coluna "Year" como eixo x e a coluna "CSIRO Adjusted Sea Level" (Nível do mar ajustado) como o eixo y.
- Use a matplotlib para criar um diagrama de dispersão usando a coluna `Year` como eixo x e a coluna `CSIRO Adjusted Sea Level` (Nível do mar ajustado) como o eixo y.
- Use a função `linregress` do `scipy.stats` para obter o coeficiente angular e o ponto de interceptação da linha de y do melhor ajuste. Trace a linha de melhor ajuste na parte superior do diagrama de dispersão. Faça a linha passar pelo ano 2050 para prever o aumento do nível do mar em 2050.
- Trace uma nova linha do melhor ajuste utilizando apenas os dados do ano 2000 ao longo do último ano no dataset. Faça com que a linha passe também pelo ano 2050 para prever o aumento do nível do mar em 2050 se a taxa de crescimento continuar como está desde o ano 2000.
- O rótulo de x deve ser "Year" e o rótulo de y deve ser "Sea Level (inches)" (Nível do mar, em polegadas), e o título deve ser "Rise in Sea Level" (Aumento do nível do mar).
- O rótulo de x deve ser `Year` e o rótulo de y deve ser `Sea Level (inches)` (Nível do mar, em polegadas), e o título deve ser `Rise in Sea Level` (Aumento do nível do mar).
Os testes unitários foram escritos para você no `test_module.py`.
@@ -54,7 +54,7 @@ assert.sameMembers(sym([1, 2, 3], [5, 2, 1, 4, 5]), [3, 4, 5]);
assert.equal(sym([1, 2, 3], [5, 2, 1, 4, 5]).length, 3);
```
`sym([1, 2, 5], [2, 3, 5], [3, 4, 5])` deve retornar `[1, 4, 5]`
`sym([1, 2, 5], [2, 3, 5], [3, 4, 5])` deve retornar `[1, 4, 5]`.
```js
assert.sameMembers(sym([1, 2, 5], [2, 3, 5], [3, 4, 5]), [1, 4, 5]);
@@ -16,7 +16,7 @@ Vamos também implementar um método que faz o oposto: um método `elementAt`, q
# --instructions--
Escreva um método `isEmpty`, que verifique se a lista está vazia, um método `indexOf`, que retorna o `index` de um determinado elemento, e um método `elementAt`, que retorna um `element` em um dado `index.`
Escreva um método `isEmpty`, que verifique se a lista está vazia, um método `indexOf`, que retorna o `index` de um determinado elemento, e um método `elementAt`, que retorna um `element` em um dado `index`.
# --hints--
@@ -23,7 +23,7 @@ $$\begin{align} & 8730 - 0378 = 8352 \\\\
Podemos considerar a rotina de Kaprekar para outras bases e quantidades de algarismos. Infelizmente, não é garantido que uma constante de Kaprekar exista em todos os casos; ou a rotina pode terminar em um ciclo para alguns números de entrada ou a constante a qual a rotina chega pode diferir para números de entrada diversos. Podemos, no entanto, mostrar que, para 5 algarismos e uma base $b = 6t + 3 ≠ 9$, existe uma constante de Kaprekar.
Ex: base 15: ${(10, 4, 14, 9, 5)}\_{15}$ base 21: $(14, 6, 20, 13, 7)_{21}$
Ex: base 15: ${(10, 4, 14, 9, 5)}\_{15}$ base 21: $(14, 6, 20, 13, 7)\_{21}$
Defina $C_b$ como a constante de Kaprekar na base $b$ para 5 algarismos. Defina a função $sb(i)$ como:
@@ -19,7 +19,7 @@ Dizemos que dois números inteiros, $N$ e $M$, são pares amigáveis se $N \\neq
<li>1, 2, 5, 10, 11, 22, 55, 110, 121, 242, 605, respectivamente.</li>
</ul>
A soma dos divisores pelo primeiro valor, **1184**, é **1210** e a soma dos divisores pelo segundo valor, **1210**', é **1184**.
A soma dos divisores pelo primeiro valor, **1184**, é **1210** e a soma dos divisores pelo segundo valor, **1210**, é **1184**.
# --instructions--
@@ -8,7 +8,7 @@ dashedName: comma-quibbling
# --description--
Entre vírgulas é uma tarefa originalmente criada por Eric Lippert em seu [blog](https://blogs.msdn.com/b/ericlippert/archive/2009/04/15/comma-quibbling.aspx).
[Comma quibbling](https://rosettacode.org/wiki/Comma_quibbling) é uma tarefa originalmente definida por Eric Lippert em seu blog de 2009. Neste desafio, você criará uma `string` a partir de um `array`. Você precisa informar se o `array` não tem itens, se tem um único item ou vários itens nele.
# --instructions--
@@ -52,19 +52,19 @@ assert(typeof quibble(['ABC']) === 'string');
assert.equal(quibble(testCases[0]), results[0]);
```
`quibble(["ABC"])` deve retornar "{ABC}".
`quibble(["ABC"])` deve retornar `"{ABC}"`.
```js
assert.equal(quibble(testCases[1]), results[1]);
```
`quibble(["ABC", "DEF"])` deve retornar "{ABC and DEF}".
`quibble(["ABC", "DEF"])` deve retornar `"{ABC and DEF}"`.
```js
assert.equal(quibble(testCases[2]), results[2]);
```
`quibble(["ABC", "DEF", "G", "H"])` deve retornar "{ABC,DEF,G and H}".
`quibble(["ABC", "DEF", "G", "H"])` deve retornar `"{ABC, DEF, G and H}"`.
```js
assert.equal(quibble(testCases[3]), results[3]);
@@ -76,7 +76,7 @@ assert.equal(quibble(testCases[3]), results[3]);
```js
const testCases = [[], ["ABC"], ["ABC", "DEF"], ["ABC", "DEF", "G", "H"]];
const results = ["{}", "{ABC}", "{ABC and DEF}", "{ABC,DEF,G and H}"];
const results = ["{}", "{ABC}", "{ABC and DEF}", "{ABC, DEF, G and H}"];
```
## --seed-contents--
@@ -93,7 +93,7 @@ function quibble(words) {
```js
function quibble(words) {
return "{" +
words.slice(0, words.length - 1).join(",") +
words.slice(0, words.length - 1).join(", ") +
(words.length > 1 ? " and " : "") +
(words[words.length - 1] || '') +
"}";
@@ -12,7 +12,7 @@ Os conceitos de Markov são utilizados na aprendizagem de máquina, devido à ab
Adicionamos em segundo plano:
As regras (`rules`) no formato de array aninhado (`nested array`), e os dados (`data`) também na forma de um `array`.E as saídas (`outputs`) desejadas.
As regras (`rules`) no formato de array aninhado e os dados (`data`) também na forma de um array.E as saídas (`outputs`) desejadas.
As regras (`rules`):
@@ -82,31 +82,31 @@ Usando o algoritmo de Markov, altere os dados (`data`) para que as saídas (`out
assert(typeof markov === 'function');
```
`markov(["A -> apple","B -> bag","S -> shop","T -> the","the shop -> my brother","a never used -> .terminating rule"],"I bought a B of As from T S.")` deve retornar "I bought a bag of apples from my brother.".
`markov(["A -> apple","B -> bag","S -> shop","T -> the","the shop -> my brother","a never used -> .terminating rule"],"I bought a B of As from T S.")` deve retornar a string `I bought a bag of apples from my brother.`.
```js
assert.deepEqual(markov(rules[0], datas[0]), outputs[0]);
```
`markov(["A -> apple","B -> bag","S -> .shop","T -> the","the shop -> my brother","a never used -> .terminating rule"],"I bought a B of As from T S.")` deve retornar "I bought a bag of apples from T shop.".
`markov(["A -> apple","B -> bag","S -> .shop","T -> the","the shop -> my brother","a never used -> .terminating rule"],"I bought a B of As from T S.")` deve retornar a string `I bought a bag of apples from T shop.`.
```js
assert.deepEqual(markov(rules[1], datas[1]), outputs[1]);
```
`markov(["A -> apple","WWWW -> with","Bgage -> ->.*","B -> bag","->.* -> money","W -> WW","S -> .shop","T -> the","the shop -> my brother","a never used -> .terminating rule"],"I bought a B of As W my Bgage from T S.")` deve retornar "I bought a bag of apples with my money from T shop.".
`markov(["A -> apple","WWWW -> with","Bgage -> ->.*","B -> bag","->.* -> money","W -> WW","S -> .shop","T -> the","the shop -> my brother","a never used -> .terminating rule"],"I bought a B of As W my Bgage from T S.")` deve retornar a string `I bought a bag of apples with my money from T shop.`.
```js
assert.deepEqual(markov(rules[2], datas[2]), outputs[2]);
```
`markov(["_+1 -> _1+","1+1 -> 11+","1! -> !1",",! -> !+","_! -> _","1*1 -> x,@y","1x -> xX","X, -> 1,1","X1 -> 1X","_x -> _X",",x -> ,X","y1 -> 1y","y_ -> _","1@1 -> x,@y","1@_ -> @_",",@_ -> !_","++ -> +","_1 -> 1","1+_ -> 1","_+_ -> "],"_1111*11111_")` deve retornar "11111111111111111111".
`markov(["_+1 -> _1+","1+1 -> 11+","1! -> !1",",! -> !+","_! -> _","1*1 -> x,@y","1x -> xX","X, -> 1,1","X1 -> 1X","_x -> _X",",x -> ,X","y1 -> 1y","y_ -> _","1@1 -> x,@y","1@_ -> @_",",@_ -> !_","++ -> +","_1 -> 1","1+_ -> 1","_+_ -> "],"_1111*11111_")` deve retornar a string `11111111111111111111`.
```js
assert.deepEqual(markov(rules[3], datas[3]), outputs[3]);
```
`markov(["A0 -> 1B","0A1 -> C01","1A1 -> C11","0B0 -> A01","1B0 -> A11","B1 -> 1B","0C0 -> B01","1C0 -> B11","0C1 -> H01","1C1 -> H11"],"")` deve retornar "00011H1111000".
`markov(["A0 -> 1B","0A1 -> C01","1A1 -> C11","0B0 -> A01","1B0 -> A11","B1 -> 1B","0C0 -> B01","1C0 -> B11","0C1 -> H01","1C1 -> H11"],"")` deve retornar a string `00011H1111000`.
```js
assert.deepEqual(markov(rules[4], datas[4]), outputs[4]);
@@ -8,7 +8,7 @@ dashedName: s-expressions
# --description--
[Expressões S](https://en.wikipedia.org/wiki/S-Expression "wp: S-Expression") são uma maneira conveniente de analisar e armazenar dados.
<a href="https://rosettacode.org/wiki/S-expressions" target="_blank" rel="noopener noreferrer nofollow">Expressões S</a> apresentam dados como uma estrutura de árvore binária, tornando possível a referência de parte dos dados facilmente. Isto também torna conveniente analisar e armazenar dados.
# --instructions--
@@ -32,7 +32,7 @@ O leitor deve poder ler a entrada a seguir
(data (!@# (4.5) "(more" "data)")))
</pre>
e transformá-la em uma estrutura de dados nativa. (veja as implementações em [Pike](https://rosettacode.org/wiki/S-Expressions#Pike "\#Pike"), [Python](https://rosettacode.org/wiki/S-Expressions#Python "\#Python") e [Ruby](https://rosettacode.org/wiki/S-Expressions#Ruby "\#Ruby") para obter exemplos de estruturas de dados nativas.)
e transformá-la em uma estrutura de dados nativa.
# --hints--
@@ -7,7 +7,7 @@ dashedName: step-17
# --description--
Agora você precisa vincular o arquivo `styles.css` para que os estilos sejam aplicados novamente. Adicione um elemento `link` de fechamento automático ao elemento `head`. Dê a ele um atributo `rel` com o valor `stylesheet`, um atributo `type` com o valor `text/css` e um atributo `href` com o valor `styles.css`.
Agora você precisa vincular o arquivo `styles.css` para que os estilos sejam aplicados novamente. Adicione um elemento `link` de fechamento automático ao elemento `head`. Dê a ele o valor do atributo `rel` de `stylesheet` e o valor do atributo `href` de `styles.css`.
# --hints--
@@ -43,12 +43,6 @@ O elemento `link` deve ter o atributo `rel` com o valor `stylesheet`.
assert(code.match(/rel\s*=\s*('|")stylesheet\1/i));
```
O elemento `link` deve ter o atributo `type` com o valor `text/css`.
```js
assert(code.match(/type\s*=\s*('|")text\/css\1/i));
```
O elemento `link` deve ter o atributo `href` com o valor `styles.css`.
```js
@@ -13,7 +13,7 @@ Os elementos `p` estão aninhados em um elemento `article` com o atributo de cla
.item p { }
```
Usando o seletor acima, adicione uma propriedade `display` com valor `inline-block` para que os elementos `p` se comportem mais como elementos `inline`.
Usando o seletor acima, adicione uma propriedade `display` com valor `inline-block` para que os elementos `p` se comportem mais como elementos em linha.
# --hints--
@@ -49,7 +49,7 @@ assert(itemPDisplay === 'inline-block');
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Cafe Menu</title>
<link href="styles.css" rel="stylesheet" type="text/css" />
<link href="styles.css" rel="stylesheet"/>
</head>
<body>
<div class="menu">
@@ -9,7 +9,7 @@ dashedName: step-37
Agora está mais próximo do que você quer, mas seria legal se o sabor e o preço estivessem na mesma linha. Elementos `p` são elementos <dfn>em nível de bloco</dfn>, então eles ocupam toda a largura do seu elemento pai.
Para fazer com que fiquem na mesma linha, você precisa aplicar algum tipo de estilo aos elementos `p`, de forma que eles comecem a se comportar mais como elementos `inline`. Adicione um atributo `class` com o valor `item` para o primeiro elemento `article` sob o título `Coffee`.
Para fazer com que fiquem na mesma linha, você precisa aplicar algum tipo de estilo aos elementos `p`, de forma que eles comecem a se comportar mais como elementos <dfn>inline</dfn>. Adicione um atributo `class` com o valor `item` para o primeiro elemento `article` sob o título `Coffee`.
# --hints--
@@ -42,7 +42,7 @@ assert($('article')[0].className === 'item');
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Cafe Menu</title>
<link href="styles.css" rel="stylesheet" type="text/css" />
<link href="styles.css" rel="stylesheet"/>
</head>
<body>
<div class="menu">
@@ -9,7 +9,7 @@ dashedName: step-7
Neste projeto, você trabalhará com um arquivo CSS externo para estilizar a página. Já criamos um arquivo de `styles.css` para você. Mas antes que você possa usá-lo, você precisará vinculá-lo à página.
Adicione um elemento `link` dentro do elemento `head`. Dê a ele um atributo `rel` com o valor `stylesheet`, um atributo `type` com o valor `text/css` e um atributo `href` com o valor `styles.css`.
Adicione um elemento `link` dentro do elemento `head`. Dê a ele o atributo `rel` definido como `stylesheet` e o atributo `href` definido como `styles.css`.
# --hints--
@@ -38,12 +38,6 @@ O elemento `link` deve ter o atributo `rel` com o valor `stylesheet`.
assert(code.match(/<link[\s\S]*?rel=('|"|`)stylesheet\1/gi)?.length === 1);
```
O elemento `link` deve ter o atributo `type` com o valor `text/css`.
```js
assert(code.match(/<link[\s\S]*?type=('|"|`)text\/css\1/gi)?.length === 1);
```
O elemento `link` deve ter o atributo `href` com o valor `styles.css`. Lembre-se, letras maiúsculas e minúsculas são levadas em conta quando arquivo externos são vinculados.
```js
@@ -9,7 +9,7 @@ dashedName: step-24
Embora os marcadores vermelhos e azuis pareçam iguais, o verde está muito mais leve do que antes. Isso acontece porque a palavra-chave de cor `green` é na verdade uma nuance mais escura e está perto da metade do caminho entre o preto e o valor máximo para o verde.
Na regra do CSS `two`, defina o valor verde na função `rgb` como `127` para diminuir sua intensidade.
Na regra do CSS `.two`, defina o valor verde na função `rgb` como `127` para diminuir sua intensidade.
# --hints--
@@ -30,7 +30,7 @@ assert(new __helpers.CSSHelp(document).getStyle('.two')?.backgroundColor === 'rg
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Colored Markers</title>
<link rel="stylesheet" type="text/css" href="styles.css">
<link rel="stylesheet" href="styles.css">
</head>
<body>
<h1>CSS Color Markers</h1>
@@ -98,12 +98,6 @@ O elemento `link` deve ter o atributo `rel` com o valor `stylesheet`.
assert.match(code, /<link[\s\S]*?rel=('|"|`)stylesheet\1/)
```
O elemento `link` deve ter o atributo `type` com o valor `text/css`.
```js
assert.match(code, /<link[\s\S]*?type=('|"|`)text\/css\1/)
```
O elemento `link` deve ter o atributo `href` com o valor `styles.css`.
```js
@@ -7,7 +7,7 @@ dashedName: step-4
# --description--
Adicione um elemento `title` ao `head` e dê ao seu projeto um título de `City Skyline`. Da mesma forma, aninhe um elemento `link` de fechamento automático ao elemento `head`. Dê a ele um atributo `rel` com o valor `stylesheet`, um atributo `type` com o valor `text/css` e um atributo `href` com o valor `styles.css`.
Adicione um elemento `title` ao `head` e dê ao seu projeto um título de `City Skyline`. Da mesma forma, aninhe um elemento `link` de fechamento automático ao elemento `head`. Dê a ele o valor do atributo `rel` de `stylesheet` e o valor do atributo `href` de `styles.css`.
# --hints--
@@ -69,14 +69,7 @@ O elemento `link` deve ter um atributo `rel` com o valor `stylesheet`.
assert.match(code, /<link[\s\S]*?rel=('|"|`)stylesheet\1/)
```
O elemento `link` deve ter um atributo `type` com o valor `text/css`.
```js
assert.match(code, /<link[\s\S]*?type=('|"|`)text\/css\1/)
```
O elemento `link` deve ter um atributo `href` com o valor `styles.css`.
O elemento `link` deve ter o atributo `href` com o valor `styles.css`.
```js
assert.match(code, /<link[\s\S]*?href=('|"|`)(\.\/)?styles\.css\1/)
@@ -7,7 +7,7 @@ dashedName: step-4
# --description--
Adicione um elemento `title` ao `head`e dê ao projeto um título de `Registration Form`. Da mesma forma, aninhe um elemento `link` de fechamento automático ao elemento `head`. Dê a ele um atributo `rel` com o valor `stylesheet`, um atributo `type` com o valor `text/css` e um atributo `href` com o valor `styles.css`.
Adicione um elemento `title` ao `head`e dê ao projeto um título de `Registration Form`. Da mesma forma, aninhe um elemento `link` de fechamento automático ao elemento `head`. Dê a ele o valor do atributo `rel` de `stylesheet` e o valor do atributo `href` de `styles.css`.
# --hints--
@@ -69,13 +69,7 @@ O elemento `link` deve ter um atributo `rel` com o valor `stylesheet`.
assert.match(code, /<link[\s\S]*?rel=('|"|`)stylesheet\1/)
```
O elemento `link` deve ter um atributo `type` com o valor `text/css`.
```js
assert.match(code, /<link[\s\S]*?type=('|"|`)text\/css\1/)
```
O elemento `link` deve ter um atributo `href` com o valor `styles.css`.
O elemento `link` deve ter o atributo `href` com o valor `styles.css`.
```js
assert.match(code, /<link[\s\S]*?href=('|"|`)(\.\/)?styles\.css\1/)
@@ -7,7 +7,7 @@ dashedName: step-39
# --description--
Centralize o elemento `form` definindo a `margin` como `0 auto`. Agora, corrija o tamanho para que o máximo de `width` seja `500px`, e o mínimo `300px`. Dentro desse intervalo, faça com que ele tenha uma `width` de `60vw`.
Centralize o elemento `form` definindo a `margin` como `0 auto`. Agora, corrija o tamanho para que o máximo de width seja `500px`, e o mínimo `300px`. Dentro desse intervalo, faça com que ele tenha uma `width` de `60vw`.
# --hints--
@@ -9,7 +9,7 @@ dashedName: step-3
Vincule o arquivo CSS agora, mesmo que você ainda não tenha escrito o CSS.
Adicione um elemento `link` com um `rel` de `stylesheet`, um `type` de `text/css` e um `href` de `styles.css`.
Adicione um elemento `link` com um `rel` de `stylesheet` e um `href` de `styles.css`.
# --hints--
@@ -38,12 +38,6 @@ O elemento `link` deve ter o atributo `rel` com o valor `stylesheet`.
assert.match(code, /<link[\s\S]*?rel=('|"|`)stylesheet\1/)
```
O elemento `link` deve ter o atributo `type` com o valor `text/css`.
```js
assert.match(code, /<link[\s\S]*?type=('|"|`)text\/css\1/)
```
O elemento `link` deve ter o atributo `href` com o valor `styles.css`.
```js
@@ -96,12 +96,6 @@ O elemento `link` deve ter o atributo `rel` com o valor `stylesheet`.
assert.match(code, /<link[\s\S]*?rel=('|"|`)stylesheet\1/)
```
O elemento `link` deve ter o atributo `type` com o valor `text/css`.
```js
assert.match(code, /<link[\s\S]*?type=('|"|`)text\/css\1/)
```
O elemento `link` deve ter o atributo `href` com o valor `styles.css`.
```js