Entrada e Saída
Formatos de Entrada e Saída
●
●
●
A entrada é constituída apenas por variáveis de entrada, ou seja, não pode haver
enunciado como “Digite um numero:”, “Entre com seu nome:”, etc. Caso entre com
essas frases, elas serão impresso no arquivo de saída e consequentemente a
resposta estará errada
Quando o código resolver o problema, mande imprimir apenas o resultado no
formato que pedi no problema (cuidado com 'espaços' e 'quebra-de-linhas');
Não use comandos executáveis do windows, por exemplo 'system(“pause”);', ele
irá imprimir 'Pressione qualquer tecla para continuar...'' no arquivo de saída e então
a resposta estará errada.
●
●
Não esqueça de importar as classes necessárias (#include <>), em algum
momento seu código pode rodar sem ela no seu computador, porém não rodará na
máquina do juiz.
Preste bastante atenção nos limites de entrada, se seu programa não suportar o
tamanho máximo de dados exigido, ocorrerá 'wrong answer ' resposta errada. Por
exemplo:
–
int x = 1000000000000000; ← 'x' não suporta esse tamanho de numero, pois
esse tipo suporta apenas 10 caracteres.
–
uint64_t x = 1000000000000000; ← 'x' suporta esse tamanho, pois o tipo
'uint64_t pode armazenar até 20 caracteres, mas não esqueça de importar a
biblioteca #include<inttype.h>
Linguagem C
Código de entrada e saída de dados:
Bliblioteca necessária: #include <stdio.h>
Caracteres:
getchar()
Scanf(“%c”)
putchar()
printf(“%c”)
Inteiros:
scanf(“%d”)
printf(“%d”)
Exemplo:
#include <stdio.h>
int main()
{
char a,b[10];
float c;
int x;
Strings:
gets()
scanf(“%s”)
puts()
printf(“%s”)
a = getchar();
putchar(a);
scanf(“%c”,&a);
printf(“%c”,a);
Float:
scanf(“%d”,&x);
printf(“%d”,x);
gets(b);
puts(b);
scanf(“%s”,&b);
printf(“%s”,b);
scanf(“%f”)
printf(“%f”)
scanf(“%f”,&c);
printf(“%f”,c);
return 0;
}
Linguagem C++
Bibliotecas necessária:
#include <iostream>
using namespace std;
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
using namespace std;
int main()
Caracteres, Strings, Inteiros e Floats usam o
mesmo código de entrada.
{
cin>>
char a,b[10];
int i;
float x;
cout<<
cin>>a>>b>>i>>x;
cout<<a<<b<<i<<x;
return 0;
}
Exemplo de problema:
Codigo em C:
#include <stdio.h>
#include <stdlib.h>
int main()
{
int A,B,X;
scanf(“%d%d”,&A,&B);
Codigo em C++:
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
using namespace std;
int main()
{
int A,B,X;
X = A+B;
cin>>A>>B;
printf(“X = %d\n”,X);
X = A+B;
return 0;
cout<<”X = “<<X<<endl;
return 0;
}
}
Limites de entrada de dados
1 - Casos de teste já determinado:
O problema determina a quantidade de caso de testes que irá ter durante a
execução. Geralmente informam: “ A primeira linha de entrada contém um inteiro N
que indica o número de casos de teste” .
Possível solução:
for(i=0;i<n;i++)
{
....
}
2 - Casos de teste indeterminado:
O problema não define quantos casos de teste será executado. Geralmente, pedem o fim da
execução de duas formas:
●
“O final da entrada é indicado por uma linha que contém apenas dois zeros, separados por um
espaço em branco.”
Possível solução:
while(x != 0 || y != 0)
{
....
}
●
“A entrada termina com EOF.” , o problema está querendo dizer que não tem um
valor pra determinar a parada da execução, ou seja, a execução termina quando
não tiver mais dados a ser lido.
Possível solução:
while(scanf(“%d”,&n)!=EOF)
{
....
}
Tipos de erro
●
●
Wrong answer (Resposta errada):
–
Verifique se o código contém system(“pause”) ou semelhante;
–
Verifique se o código está imprimindo caracteres maiúsculos se pede
minúsculos ou o contrário;
Compilation error (Erro de compilação):
–
●
Verifique se não está faltando importar alguma biblioteca;
Runtime error (Erro em tempo de execução):
–
Verifique se o código não está acessando partes não existente no vetor. Por
exemplo:
●
–
●
Int vet[10]; vet[11] = 12;
Verifique se o tipo de entrada é o mesmo do tipo da variável que está lendo.
Apresentation error (Erro de apresentação):
–
Verifique se não está sobrando ou faltando espaço e/ou quebra de linha no
arquivo de saída.
Gerando arquivo de saída
●
Gera o executável do código no Desktop (por exemplo);
●
Cria um arquivo entrada.txt no Desktop contendo todos os casos de teste;
●
Digite no prompt cd Desktop pra entrar na pasta do desktop;
●
Digite: executavel.exe<entrada.txt>saida.txt.
Agora é só comparar se o arquivo de saída é exatamente a saída que se
pede no problema.
Bibliografia
●
Art of Programming Contest, 2nd Edition – Arefin, Ahmed Shamsul.
●
http://www.cplusplus.com/reference/
●
http://www.urionlinejudge.com.br/judge/
Download

Entrada e Saida