freeCodeCamp/curriculum/challenges/portuguese/08-coding-interview-prep/rosetta-code/execute-brain.portuguese.md

4.4 KiB

title id challengeType videoUrl localeTitle
Execute Brain**** 59e0a8df964e4540d5abe599 5 Execute o cérebro ****

Description

Escreva uma função para implementar um interpretador do Brain ****. A função terá uma string como parâmetro e deve retornar uma string como saída. Mais detalhes são fornecidos abaixo:

O RCBF é um conjunto de compiladores e intérpretes da Brainf *** escritos para o Rosetta Code em vários idiomas.

Abaixo estão os links para cada uma das versões do RCBF.

Uma implementação só precisa implementar corretamente as seguintes instruções:

{|

!Comando

!Descrição

| -

| style = "text-align: center" | > || Mova o ponteiro para a direita

| -

| style = "text-align: center" | < || Mova o ponteiro para a esquerda

| -

| style = "text-align: center" | + || Incrementar a célula de memória sob o ponteiro

| -

| style = "text-align: center" | - || Decrementar a célula de memória sob o ponteiro

| -

| style = "text-align: center" | . || Saída do caractere representado pela célula no ponteiro

| -

| style = "text-align: center" | , || Insira um caractere e armazene-o na célula no ponteiro

| -

| style = "text-align: center" | [ || Saltar após a correspondência ] se a célula abaixo do ponteiro for 0

| -

| style = "text-align: center" | ] || Pular de volta para a correspondência [ se a célula abaixo do ponteiro for diferente de zero

|}

Qualquer tamanho de célula é permitido, o suporte EOF ( E nd- O - F ile) é opcional, assim como se você tem memória limitada ou ilimitada.

Instructions

Tests

tests:
  - text: <code>brain(bye)</code> deve retornar uma string
    testString: 'assert(typeof brain(bye) === "string", "<code>brain(bye)</code> should return a string");'
  - text: '<code>brain("++++++[>++++++++++<-]>+++++.")</code should return "A"'
    testString: 'assert.equal(brain("++++++[>++++++++++<-]>+++++."),"A", "<code>brain("++++++[>++++++++++<-]>+++++.")</code should return "A"");'
  - text: '<code>brain(bye)</code> deve retornar <code>Goodbye, World!\\r\\n</code>'
    testString: 'assert.equal(brain(bye), "Goodbye, World!\r\n", "<code>brain(bye)</code> should return <code>Goodbye, World!\\r\\n</code>");'
  - text: '<code>brain(hello)</code> deve retornar <code>Hello World!\\n</code> &#39;'
    testString: 'assert.equal(brain(hello), "Hello World!\n", "<code>brain(hello)</code> should return <code>Hello World!\\n</code>");'
  - text: '<code>brain(fib)</code> deve retornar <code>1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89</code>'
    testString: 'assert.equal(brain(fib), "1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89", "<code>brain(fib)</code> should return <code>1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89</code>");'

Challenge Seed

function brain (prog) {
  // Good luck!
}

Before Test

let fib=`+

++

+++

++++

+>+>>

>>++++

+++++++

++++++++

+++++++++

++++++++++

++++++>++++

++++++++++++

+++++++++++++

+++<<<<<<[>[>>

>>>>+>+<<<<<<<-

]>>>>>>>[<<<<<<<

+>>>>>>>-]<[>++++

++++++[-<-[>>+>+<<

<-]>>>[<<<+>>>-]+<[

>[-]<[-]]>[<<[>>>+<<

<-]>>[-]]<<]>>>[>>+>+

<<<-]>>>[<<<+>>>-]+<[>

[-]<[-]]>[<<+>>[-]]<<<<

<<<]>>>>>[++++++++++++++

+++++++++++++++++++++++++

+++++++++.[-]]++++++++++<[

->-<]>+++++++++++++++++++++

+++++++++++++++++++++++++++.

[-]<<<<<<<<<<<<[>>>+>+<<<<-]>

>>>[<<<<+>>>>-]<-[>>.>.<<<[-]]

<<[>>+>+<<<-]>>>[<<<+>>>-]<<[<+

>-]>[<+>-]<<<-]`;
let hello='++++++++[>++++[>++>+++>+++>+<<<<-]>+>+>->>+[<]<-]>>.>---.+++++++..+++.>>.<-.<.+++.------.--------.>>+.>++.'
let bye='++++++++++[>+>+++>++++>+++++++>++++++++>+++++++++>++++++++++>+++++++++++>++++++++++++<<<<<<<<<-]>>>>+.>>>>+..<.<++++++++.>>>+.<<+.<<<<++++.<++.>>>+++++++.>>>.+++.<+++++++.--------.<<<<<+.<+++.---.';

Solution

// solution required