desafios

Conceitos essenciais para começar

Por vezes, algumas pessoas acabam encontrando dificuldades para iniciar na programação e encontram-se um pouco perdidas em meio à quantidade de recursos e opções disponíveis. Aqui nos programadores, buscamos ajudar a todos da melhor forma possível. Sem sombra de dúvida, uma das perguntas mais comuns no nosso grupo no telegram de quem está querendo iniciar é: “Por onde eu começo?“ Comumente, direcionamos as pessoas aos artigos introdutórios como o Olá Mundo e na sequência, também encaminhamo-nas para o desafio 01.

Continue lendo

#14: Expressões Numéricas

Expressões Numéricas Introdução Expressões numéricas são sequências de duas ou mais operações que devem ser realizadas respeitando determinada ordem. Para encontrar sempre um mesmo valor quando calculamos uma expressão numérica, usamos regras que definem a ordem que as operações serão feitas. 12 + 3 * 5 = 27 2 * ( 5 - 1 ) = 8 2^2 + 8 / 2 = 8 2^( 3 - 1) = 4 E assim por diante.

Continue lendo

#13: Passeio do Cavalo

Passeio do Cavalo Introdução O problema do cavalo, ou passeio do cavalo, é um problema matemático envolvendo o movimento da peça do cavalo no tabuleiro de xadrez. O cavalo é colocado no tabuleiro vazio e, seguindo as regras do jogo, precisa passar por todas as casas exatamente uma vez em movimentos consecutivos. Instruções Este desafio consiste em: Criar um programa que encontre uma solução para o passeio do cavalo.

Continue lendo

#12: Potências de 2

Potências de 2 Introdução A base 2 é uma das bases mais usadas em computação. Números nessa base são representados pela equação 2^n. Exemplo: 2^0 = 1 2^1 = 2 2^2 = 4 2^3 = 8 E assim por diante. Instruções Este desafio consiste em: Ler um arquivo de números (abaixo), contendo um número por linha. Se o número for uma potência de 2, imprimir o número seguido de true e o expoente ao qual se deve elevar 2 para obter o número.

Continue lendo

#11: Primos em Pi

Primos em Pi Introdução O número pi (π) é uma das mais famosas e mais facilmente reconhecidas constantes matemáticas. Originalmente definido como o resultado da divisão da circunferência de um círculo pelo seu diâmetro, π é um número irracional e a sua representação decimal é infinita e não se repete. Instruções Este desafio consiste em encontrar a sequência mais longa de números primos (entre 2 e 9973) no primeiro 1 milhão de casas decimais de π.

Continue lendo

#10: Turing Machine

Turing Machine Introdução Uma Máquina de Turing é um modelo computacional matemático que define uma máquina abstrata. Essa máquina manipula símbolos numa fita de papel de acordo com uma tabela de regras simples. Apesar da simplicidade do modelo, é possível construir uma Máquina de Turing capaz de simular qualquer algoritmo computacional. Funcionamento Uma máquina de Turing lê os dados de uma “fita” infinita, caracter por caracter (também conhecidos como “símbolos” na terminologia original) A máquina está sempre em um determinado “estado” (estado inicial == string “0”).

Continue lendo

#9: Big base!

Big base! Descrição Escreva um programa que leia um arquivo texto contendo uma lista de três numeros por linha: base_entrada, base_saida e numero_entrada e imprima o número fornecido (já na base de entrada) convertido para a base de saída. O formato exato da entrada é: base_entrada base_saida numero_entrada Exemplo: 10 16 1500 36 10 GOODBYE 36 16 HELLOWORLD 10 2 32452867 2 10 1234 Exemplo de saida para a entrada acima:

Continue lendo

#8: Frações simples

Frações simples Descrição Escreva um programa que leia um arquivo texto contendo uma lista de frações em ASCII (uma por linha) e produza na saída a versão simplificada de cada fração. Números simples assumem denominador 1 (apenas imprima o número). Divisões inteiras como 81/9 devem imprimir o número inteiro 9. Em caso de erros na entrada (como divisão por zero), imprima “ERR” em maíusculas. Por exemplo, data a entrada abaixo:

Continue lendo

#7: Unix tac

TAC! Em Unix (e Linux), o comando cat mostra o conteúdo de um arquivo texto na saída padrão. Um comando similar (e menos conhecido) é o tac, que exibe um arquivo texto invertendo as linhas (da última para a primeira). O problema Implemente o comando tac na sua linguagem e bibliotecas preferidas. Condições de funcionamento: O programa deve ler um arquivo do disco especificado na linha de comando e imprimir o arquivo linha a linha, começando pela última linha e terminando na primeira.

Continue lendo

#6: Anagramas

Anagramas! Um anagrama é uma palavra ou frase formada com o re-arranjo de todas as letras de uma outra palavra ou frase (sem sobra ou falta). Exemplos: A palavra barco é um anagrama da palavra cobra (todas as letras de “cobra” usadas em “barco). A palavra mar não é um anagrama da palavra roma (a letra “o” em “roma” não foi usada). A palavra sal não é um anagrama da palavra mal (a letra “s” de “sal” não existe em “mal”).

Continue lendo

#5: OBSOLETO

Atenção Este desafio foi marcado como OBSOLETO. O texto original permanecerá abaixo para efeitos de referência, mas os admins não aceitarão novas contribuições para este desafio. Processando as informações da empresa: Considere, como exemplo, o seguinte arquivo funcionarios.json, com o seguinte conteúdo: { "funcionarios":[ { "id":0, "nome":"Marcelo", "sobrenome":"Silva", "salario":3200.00, "area":"SM" }, { "id":1, "nome":"Washington", "sobrenome":"Ramos", "salario":2700.00, "area":"UD" }, { "id":2, "nome":"Sergio", "sobrenome":"Pinheiro", "salario":2450.00, "area":"SD" }, { "id":3, "nome":"Bernardo", "sobrenome":"Costa", "salario":3700.

Continue lendo

#4: OBSOLETO

Atenção Este desafio foi marcado como OBSOLETO. O texto original permanecerá abaixo para efeitos de referência, mas os admins não aceitarão novas contribuições para este desafio. Contabilizar Peças de Xadrez. O xadrez é um jogo de tabuleiro estratégico, disputado por dois jogadores e que consiste em um tabuleiro com um arranjo de 8 linhas e colunas formando 64 posições diferentes como uma matriz [8 x 8]. Existem 6 diferentes tipos de peças no xadrez e cada tipo possui uma quantidade para cada um dos jogadores (destacada por parênteses):

Continue lendo