programação

#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

Olá mundo!

Uma pergunta frequente de vários participantes do OsProgramadores no Telegram é: “Por onde eu começo?” e “como posso me preparar para conseguir o primeiro estágio ou o primeiro emprego na área de programação?” Para começar com programação é recomendável usar um computador para criar e testar programas. A prática é essencial para reforçar o que foi aprendido através de vídeos e livros. Caso você não tenha um computador, existem vários programas que você pode usar mas recomendamos a instalação e uso da App do Replit.

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

Ponteiros em C

Introdução O uso de ponteiros em C é um dos aspectos mais poderosos e importantes da linguagem, e ainda assim, um dos mais confusos para os iniciantes. O objetivo deste documento é fornecer uma introdução básica ao funcionamento e uso de ponteiros em C. Importante: Vários conceitos foram simplificados para ajudar a compreensão do tópico principal, tais como a representação exata de números em memória, gerenciamento de memória e outros.

Continue lendo

#3: Palíndromos

Números palindrômicos. Um palíndromo é uma palavra ou expressão que pode ser lida da esquerda para a direita ou da direita para a esquerda mantendo o mesmo significado. Um exemplo de palíndromo é a palavra “reviver”. Neste desafio, a idéia é imprimir todos os números palindrômicos entre dois outros números. Tal como as palavras, os números palindrômicos mantém o mesmo valor se lidos de trás para a frente. Observe que o número inicial e final devem ser incluídos nos resultados, caso também sejam palíndromos.

Continue lendo