Information

Learn everything about the CodCad!.

  • Olá CodCad!

  • Olá, seja bem vindo ao CodCad!

    Somos uma plataforma de ensino de programação online e totalmente gratuita, com cursos que variam desde introdução a programação até assuntos e técnicas mais avançadas para competições. Pronto para entender como o site funciona?

    Se você acabou de se cadastrar, a parte mais importante de nosso site é o curso, e você pode acessá-lo no menu superior. Você encontrará cinco cursos diferentes (programação básica, técnicas de programação, algoritmos de grafos, matemática computacional e estruturas de dados), então basta escolher um baseado naquilo que você quer aprender. Se você não faz a menor ideia do que é programar, não se preocupe, você está no lugar certo! Nosso curso introdutório tem um tutorial completo do zero, e é feito para que alguém que nunca programou na vida já termine a primeira aula com um programa rodando!

  • Aulas

  • Como começo a aprender?

    Utilize o menu para acessar a página de Curso lá você encontrar cursos de diferentes níveis de conhecimento. Comece pelo curso de Programação Básica e conforme adquire conhecimentos vá progredindo para os assuntos mais avançados.

    Nossos cursos são estruturados como árvores, e o ideal é que você faça uma nível completo da árvore por vez. Clicando em uma aula, você terá acesso a toda a introdução teórica que você precisa para aprender os conteúdos que ela aborda, com explicações detalhadas e exemplos de códigos.

  • Além de aprender o conteúdo, o que mais posso fazer?

    No canto superior direito você encontrará um menu com três itens:

    O primeiro é um pequeno inseto, e clicando nele você pode reportar um bug. Pode ser um erro na aula, algo que não carregou direito ou qualquer outra coisa que você ache que não está acontecendo da maneira esperada na aula.

    Se você tiver alguma dúvida sobre a aula, o do meio é um balãozinho e, clicando nele, você abre a seção de comentários. Você pode fazer perguntas e nossa comunidade ativa irá respondê-lo. Se quiser ser notificado sobre cada novo comentário na aula, para saber quando lhe responderam, por exemplo, marcar a opção seguir tópico, um botãozinho abaixo da caixa de texto em que você escreve os comentários, à direita da tela.

    O último, um quebra cabeças, leva para a próxima etapa da aula, a prática! Aqui você encontrar problemas para você treinar o conteúdo aprendido em cada aula.

  • Problemas

  • Como começo a resolver problemas?

    Após você aprender o conteúdo de cada aula, coloque seus conhecimentos em prática e faça programas de verdade! Quando você clicar no item de problemas da aula, aparecerão todos os problemas relacionados a esta lição. Cada vez que você resolve um deles, aparecerá um certinho verde do lado do nome dele.

    Clicando no nome do problema você será levado para o enunciado.

  • O que devo fazer para resolver um problema?

    Um problema pede que você escreva um programa eficiente que faça uma tarefa determinada pelo seu enunciado. Mais especificamente, seu programa deverá produzir a saída esperada para uma determinada entrada. A entrada são as informações, os dados que o seu programa irá receber e a saída são os que ele irá produzir. Geralmente, usamos a entrada e saída padrão, o que é explicado na primeira aula de programação básica. Imagine por exemplo, que seu programa deve conseguir somar dois números. A entrada serão dois inteiros e saída esperada é a soma deles. Deste modo, quando o seu programa receber como entrada a linha “2 7”. deverá produzir a linha “9” como saída.

  • Como é organizado o enunciado de um problema no CodCad?

    O enunciado do problema será dividido nas seguintes partes.

    Explicação: um pequeno texto que relata o que o programa deve fazer. Geralmente, tem uma pequena história lúdica para contextualizar o problema.

    Entrada: especifíca como será o arquivo de entrada que seu programa irá receber.

    Saída: especifíca como deve ser o arquivo de saída que seu programa irá produzir.

    Exemplo de entrada: dá um exemplo de uma ou mais entradas que seu programa pode receber.

    Exemplo de saída: informa a saída esperada para cada exemplo de entrada fornecido.

    Alguns problemas também podem ter uma seção com “informações sobre a pontuação”. Esta parte dá as especificações de cada subconjunto (subtask) do problema. Para corrigir seu problema, seu programa passará por vários testes. Em cada um deles, ele receberá uma entrada e, se produzir a saída correta, acertará aquele caso de teste. Uma subtask é um conjunto de casos de teste e vale alguns pontos do problema. Para ganhar os pontos de uma subtask, seu programa deve responder corretamente a todos os casos de teste dela. Um problema pode ter uma ou mais subtasks, e a soma das pontuações de todas elas sempre será 100 pontos. Desse modo, se você ganhar 100 pontos significa que que seu programa acertou todos os casos de teste do problema, portanto, está correto.

    Imagine o seguinte exemplo. Um programa tem 3 subtasks, cada uma com 5 casos de teste. As subtasks valem 20, 30 e 50 pontos. Se seu programa acertar todos os casos de teste da primeira subtask e errar um da segunda e outro da terceira, ele só ganhará os 20 pontos da primeira subtask, pois você só ganha os pontos das subtasks em que você acerta todos os casos de teste.

  • Ok, li o enunciado, e agora?

    Entendido o enunciado (ou não), você irá para o menu no canto superior direito e observará várias opções:

    Achei um bug: Serve para reportar bugs no problema. Se você achar que algo no enunciado não está correto, nos avise.

    Estatísticas: aqui você encontra todos os dados sobre as submissões (tentativas de solução) de outros usuários para este problema. Você encontrará o percentual de acerto, respostas com melhores tempos de execução e quais foram as últimas submissões feitas. O significado de cada um desses termos será explicado mais a frente.

    Comentários: aqui você tem acesso à seção de comentários do problema. Se você tiver qualquer dúvida não hesite em perguntar, com certeza alguém irá lhe ajudar.

    Enviar solução: aqui você pode enviar um código que tenta resolver o problema apresentado. Você pode escrever na caixa de texto do site ou submeter um arquivo que você salvou em seu computador. Faça um desses dois e clique em submeter.

    Visualizar submissões: Aqui você verá todas as suas submissões (envios de soluções) para o problema.

  • O que é uma submissão?

    Quando você submete (envia) uma solução de um problema para o CodCad você terá uma nova submissão. Cada submissão contém algumas informações:

    ID: número único de identificação da sua submissão. Clicando nele, você pode visualizar o código que você escreveu. Outros usuários não têm acesso ao seu código.

    Problema: nome do problema. Clicando aqui você pode voltar para o enunciado do problema.

    Status: indica qual foi o resultado da submissão do seus problema, informando a pontuação obtida. Os possíveis resultados são:

    • Compilation Error (CE): erro de compilação. Seu programa não pode ser compilado por erro de sintaxe no código.

    • Run Time Error (RTE): erro em tempo de execução. Por algum motivo, seu programa teve que ser interrompido durante a sua execução pelo sistema operacional do juiz. Isso tem várias possíveis causas: seu programa pode ter usado uma quantidade de memória acima do limite permitido ou ter tentado usar memória inválida (acessado uma variável que não tinha declarado), por exemplo.

    • Time Limit Exceeded (TLE): tempo limite excedido. Seu programa não apresentou erros operacionais (não significa que produziria a resposta certa, mas apenas que não violou nenhuma condição do sistema operacional que causaria Run Time Error), mas permaneceu em execução por um tempo maior que o limite definido para o problema e, por isso, teve que ser interrompido pelo juiz.

    • Wrong Answer (WA): resposta errada. Seu programa não teve problemas de execução e terminou antes do limite de tempo, mas errou algum dos casos de teste, produzindo uma saída diferente da esperada (correta) para uma determinada entrada.

    • Accepted (AC): aceito. Seu programa não teve problemas de execução, terminou antes do limite de tempo e acertou todos os casos de teste de todas as subtasks, ganhando 100 pontos. Aí sim! =D

    • Se o seu programa compilar (não levar CE) mas não responder corretamente todos os casos de teste (ou seja, não ganhar o status Accepted), então ele errou (por RTE, TLE ou WA) um ou mais casos de teste. Deste modo, será exibido, como status, o primeiro tipo de erro que ele cometeu.

    • Suponha que seu problema tem 3, subtasks, que valem 20, 30 e 50 pontos, respectivamente. Imagine que seu programa resolveu corretamente todos os casos de teste da primeira subtask, leve um TLE em um dos casos da segunda e responda corretamente os seus outros casos e leve RTE em todos os casos da terceira. O status a ser exibido será TLE, que foi o primeiro erro detectado pelo juiz, na segunda subtask.

    Pontuação: indica qual foi a pontuação obtida pelo seu programa. Se ele levar AC, ganhará 100 pontos.

    Data: indica a data e a hora da submissão.

Close