Para submeter suas soluções em Javascript, você deve seguir as seguintes instruções:
- A entrada de dados deve ser feita utilizando o comando scanf, a saída deve ser feita utilizando o comando printf. Esses comandos foram desenvolvidos para o ambiente Saci e são muito parecidos com os comandos de mesmo nome na linguagem C.
Você pode utilizar o Editor Saci para desenvolver sua solução, ou pode usar os comandos scanf e printf localmente instalando a biblioteca (veja abaixo, uso avançado).
O comando de escrita printf
O comando printf é exatamente igual ao comando de mesmo nome da linguagem C. O formato geral é
onde cadeia formatadora é uma cadeia que será impressa, podendo conter especificadores de formato que serão usados para escrever as expressões da lista_de_expressoes. Os mesmos especificadores de formato da linguagem C são aceitos: %d para inteiros, %s para cadeias de caracteres, %f para números reais,...
O comando de entrada scanf
O comando scanf também é similar ao comando homônimo da linguagem C, mas com duas diferenças: na lista de variáveis do comando, os nomes das variáveis devem ser colocadas entre aspas. E há uma restrição: as variáveis utilizadas no comando scanf devem ter escopo global.
O formato geral é
onde cadeia formatadora é uma cadeia que deve conter especificadores de formato que serão usados para ler os valores da entrada para as variáveis da lista_de_variáveis. Os mesmos especificadores de formato da linguagem C são aceitos: %d para inteiros, %s para cadeias de caracteres, %f para números reais,...
Um pequeno exemplo
O exemplo abaixo lê dois valores inteiros e imprime o maior valor.
// exemplo de solução // declara duas variáveis var val1, val2; // lê dois valores inteiros scanf("%d%d", "val1", "val2"); // escreve o resultado if (val1 > val2) printf("%d\n", val1); else printf("%d\n", val2);
Usando o Editor Saci
A forma mais fácil de desenvolver as soluções em Javascript, especialmente para iniciantes, é utilizar o Editor Saci.
Você pode também baixar um arquivo compactado com o Editor Saci para Javascript. Para isso, siga os passos:
- Faça o download do Editor Saci no link abaixo (arquivo .zip)
- Copie o arquivo .zip para o computador onde o aluno vai fazer a prova (por exemplo, saci.zip).
- Descompacte o arquivo. Vai ser criada uma pasta (de nome saci)
- Dentro da pasta criada, clique duas vezes no arquivo de nome "index.html"; o navegador padrão (Firefox, Chrome, Opera...) do sistema deve abrir e mostrar a prova.
- Se não funcionar, abra uma janela de um navegador (Firefox, Chrome...) e abra o arquivo "index.html" pelo navegador. O ambiente de desenvolvimento deve aparecer como uma página do navegador.
Avançado: usando javascript localmente
Você pode também utilizar um editor de arquivos de sua preferência para desenvolver suas soluções e executar as soluções diretamente em seu computador local.
Para usar javascript localmente, é necessário inicialmente instalar nodejs, o interpretador da linguagem javascript.
Após, é necessário instalar a biblioteca scanf-printf-obi, desenvolvida para tarefas da OBI. Para isso, em uma janela de terminal, digite o comando
npm install scanf-printf-obi
Finalmente, é necessário incluir um cabeçalho no seu arquivo de solução, para importar a biblioteca:
// cabeçalho para incluir printf, scanf e fgets // em programas javascript var scanf_stub = require(''scanf-printf-obi'').scanf, printf_stub = require(''scanf-printf-obi'').sprintf, fgets_stub = require(''scanf-printf-obi\'').fgets function scanf(format) { var res = scanf_stub.apply(this, Array.prototype.slice.call(arguments, 0)); eval(res); } function printf(args){ var res = printf_stub.apply(this, Array.prototype.slice.call(arguments, 0)); process.stdout.write(res); } function fgets(args){ var res = fgets_stub.apply(this, Array.prototype.slice.call(arguments, 0)); eval(res); } // final de cabeçalho
O exemplo de solução mostrado acima, para uso local, fica assim:
// cabeçalho para incluir printf, scanf e fgets // em programas javascript var scanf_stub = require(''scanf-printf-obi'').scanf, printf_stub = require(''scanf-printf-obi'').sprintf, fgets_stub = require(''scanf-printf-obi'').fgets function scanf(format) { var res = scanf_stub.apply(this, Array.prototype.slice.call(arguments, 0)); eval(res); } function printf(args){ var res = printf_stub.apply(this, Array.prototype.slice.call(arguments, 0)); process.stdout.write(res); } function fgets(args){ var res = fgets_stub.apply(this, Array.prototype.slice.call(arguments, 0)); eval(res); } // final de cabeçalho // exemplo de solução // declara duas variáveis var val1, val2; // lê dois valores inteiros scanf("%d%d", "val1", "val2"); // escreve o resultado if (val1 > val2) printf("%d\n", val1); else printf("%d\n", val2);
Supondo que o código acima esteja armazenado em um arquivo de nome tarefa.js, então, para executar seu programa com um caso de teste armazenado no arquivo de nome entrada.txt, digite o seguinte comando em uma janela de terminal:
nodejs tarefa.js < entrada.txt