Coder Social home page Coder Social logo

desafio-indra's Introduction

Desafio Indra - Vaga para programador PHP

Por favor leiam este documento do começo ao fim, com muita atenção.
O intuito deste teste é avaliar seus conhecimentos técnicos em programação.
O teste consiste em resolver 3 desafios, utilizando a linguagem de programação PHP.

Instruções para entrega do desafio

  1. Primeiro, faça um fork deste projeto para sua conta no Github.
  2. Em seguida, baixe o repositório em seu ambiente local.
  3. Cada desafio deverá ser respondido em um arquivo destinado a ele, nomeado com o título do mesmo (ex: apresentando-hello-word.php), dentro de uma pasta src.
  4. Os desafios precisam ser respondidos utilizando da versão 5.* do PHP. Nenhum framework deverá ser utilizado.
  5. O uso de Docker, composer se faz opcional. Como também o uso de TDD e de comentários (pontos extras se forem aplicados).
  6. Os testes não precisam ser completos até a data limite, iremos por avaliar sua lógica e qual caminho você pensou como solução.
  7. Por fim,faça o envio do projeto ou o fork/link para o email [email protected].

Desafios

Cor de um resistor

Se você quiser construir algo usando um Raspberry Pi, provavelmente usará resistores. Para este exercício, você precisa saber duas coisas sobre eles:

  • Cada resistor tem um valor de resistência.
  • Os resistores são pequenos - tão pequenos que, se você imprimir o valor da resistência neles, seria difícil de ler.

Para contornar esse problema, os fabricantes imprimem bandas codificadas por cores nos resistores para denotar seus valores de resistência. Cada banda tem uma posição e um valor numérico.

As 2 primeiras bandas de um resistor têm um esquema de codificação simples: cada cor é mapeada para um único número.

Neste exercício, você criará um programa útil para não precisar se lembrar dos valores das bandas.

Essas cores são codificadas da seguinte forma:

  • Preto: 0
  • Marrom: 1
  • Vermelho: 2
  • Laranja: 3
  • Amarelo: 4
  • Verde: 5
  • Azul: 6
  • Violeta: 7
  • Cinza: 8
  • Branco: 9

O objetivo deste exercício é criar uma maneira:

  • verificar se a cor informada existe na lista.
  • exibir o valor númerico da cor informada de acordo com a tabela.

Distância de Hamming entre duas fitas de DNA

Calcule a distância de Hamming entre duas fitas de DNA.

Seu corpo é feito de células que contêm DNA. Essas células se desgastam regularmente e precisam ser substituídas, o que elas conseguem ao se dividir em células-filhas. Na verdade, o corpo humano médio passa por cerca de 10 quatrilhões de divisões celulares durante a vida!

Quando as células se dividem, seu DNA também se replica. Às vezes, durante esse processo, ocorrem erros e pedaços únicos de DNA são codificados com as informações incorretas. Se compararmos duas fitas de DNA e contarmos as diferenças entre elas, podemos ver quantos erros ocorreram. Isso é conhecido como "Distância de Hamming".

Lemos o DNA usando as letras C,A,G e T. Duas fitas podem se parecer com isso:

Exemplo de fitas
GAGCCTACTAACGGGAT
CATCGTAATGACGGCCT

Elas têm 7 diferenças e, portanto, a distância de Hamming é 7.

A distância de Hamming é útil para muitas coisas na ciência, não apenas na biologia, por isso é uma boa frase para se familiarizar :)

A distância de Hamming é definida apenas para sequências de comprimento igual, portanto, uma tentativa de calculá-la entre sequências de comprimentos diferentes não deve funcionar. O tratamento geral dessa situação (por exemplo, gerar uma exceção versus retornar um valor especial) pode diferir entre os idiomas.

Números Múltiplos

Escreva um programa que imprima todos os números de 1 a 100. No entanto, para múltiplos de 3, em vez do número, imprima “Indra”. Para múltiplos de 5, imprima "Minsait". Para números que são múltiplos de 3 e 5, imprima “Indra Minsait”.

Mas aqui está o problema: você pode usar apenas um if. Sem ramificações múltiplas, operadores ternários ou else.


Boa sorte! :D

desafio-indra's People

Contributors

paulovictor11 avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.