- LinkedIn Eduardo Almeida
- Contato WhatsApp
- Email: e-mail
Neste repositório, você encontrará informações e questões relevantes para a fase de testes para o estágio em desenvolvimento ofertado pela Target Sistemas.
Class Questao01.java
1) Observe o trecho de código abaixo:
int INDICE = 13, SOMA = 0, K = 0;
enquanto K < INDICE faça
{
K = K + 1;
SOMA = SOMA + K;
}
imprimir(SOMA);
Ao final do processamento, qual será o valor da variável SOMA?
Chegamos ao resultado que a variavel SOMA = 91
.
Para comprovar esse calculo fizemos de forma direta o algoritmo:
int indice = 13;
int soma = 0;
int k = 0;
while (k < 13) {
k += 1;
soma += k;
}
System.out.println(soma);
91
Class Questao02.java
2) Dado a sequência de Fibonacci, onde se inicia por 0 e 1 e o próximo valor
sempre será a soma dos 2 valores anteriores (exemplo: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34...),
escreva um programa na linguagem que desejar onde, informado um número,
ele calcule a sequência de Fibonacci e retorne uma mensagem avisando se o
número informado pertence ou não a sequência.
IMPORTANTE:
Esse número pode ser informado através de qualquer entrada de sua preferência
ou pode ser previamente definido no código;
Fizemos um teste na função main com as funçôes desenvolvidas:
// Um número pertence à sequência de Fibonacci se e somente se um
// ou ambos os seguintes critérios forem verdadeiros:
// 5n^2 + 4 ou 5n^2 - 4 é um quadrado perfeito.
public static boolean isFibonacci(int numero) {...}
// Não optamos pela abordagem com recursão por ser menos eficiente para
// números grandes devido à repetição de cálculos.
public static int fibonacci(int numero) {...}
Teste para verdade:
Digite um número inteiro da sequencia de fibonacci: 8
Você digitou 8 ele pertence a sequencia.
O proximo número da sequencia será 13
Teste para falso:
Digite um número inteiro da sequencia de fibonacci: 11
O número 11 não pertence a sequcnia.
Class Questao03.java
3) Descubra a lógica e complete o próximo elemento:
a) 1, 3, 5, 7, __
b) 2, 4, 8, 16, 32, 64, __
c) 0, 1, 4, 9, 16, 25, 36, __
d) 4, 16, 36, 64, __
e) 1, 1, 2, 3, 5, 8, __
f) 2,10, 12, 16, 17, 18, 19, __
Defimos que seriam gerados 10 valores para as sequencias.
int quantidadeElementos = 10;
Sobre as logicas:
// Proximo número é o acréscimo de 2 ao número atual
public static int logicaA(int numero){...};
// Proximo número é o ataul multiplicado por 2
public static int logicaB(int numero){...};
// Proximo número é a base do número atual somado de 1 e elevado ao quadrado.
public static int logicaC(int numero){...};
// Proximo número é a base do número atual somado de 2 e elevado ao quadrado.
// (Quadrado perfeito de números pares)
public static int logicaD(int numero){...};
// A logica é a Sequência de Fibonacci, reaproveitaremos o algoritmo da questão 2.
public static int logicaE(int numero){...};
// Os números estão seguindo uma sequência de adições e alguns incrementos unitários.
// Não percebemos a logica real nos primeiros, mas aparentemente se manteveram
// constante em n+1, faremos o incremente adicionalmente fixo.
public static int logicaF(int numero){...};
Definimos que a função de cada logica ira preencher 10 elementos de suas listas respectivas.
Resultados:
Logica A: [1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21]
Logica B: [2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048]
Logica C: [0, 1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
Logica D: [4, 9, 16, 25, 36, 49, 64, 81, 100, 121, 144]
Logica E: [1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144]
Logica F: [2, 10, 12, 16, 17, 18, 19, 20, 21, 22, 23]
Classe No class
4) Você está em uma sala com três interruptores, cada um conectado a uma
lâmpada em uma sala diferente. Você não pode ver as lâmpadas da sala em
que está, mas pode ligar e desligar os interruptores quantas vezes quiser.
Seu objetivo é descobrir qual interruptor controla qual lâmpada.
Como você faria para descobrir, usando apenas duas idas até uma das
salas das lâmpadas, qual interruptor controla cada lâmpada?
O problema deixou algumas possibilidades.\
Analisando o cenario.
São 4 salas e 3 lampadas:
SALAS: W, X, Y, Z
INTERRUPTORES: A, B, C
Ações:
SALA W = Sala dos interruptores
Ligue o INTERRUPTOR A por 5min;
Ligue o INTERRUPTOR B;
Não ligue o INTERRUPTOR C;
Desligue o INTERRUPTOR A;
Algoritmo:
Para cada SALA na lista:
Se, lâmpada ligada:
SALA = INTERRUPTOR B
Se não, lâmpada desligada:
Se lãmpada quente:
SALA = INTERRUPTOR A
Se lâmpada fria:
SALA = INTERRUPTOR C
Solução valida:
Lâmpada X ligada? (sim/não): sim
Lâmpada Y ligada? (sim/não): não
Lâmpada Y quente? (sim/não): sim
Lâmpada Z ligada? (sim/não): não
Lâmpada Z quente? (sim/não): não
Interruptor da sala X: B
Interruptor da sala Y: A
Interruptor da sala Z: C
Se você puder identificar os interruptores de duas salas, o interruptor da terceira sala será automaticamente conhecido.
Class Questao05.java
5) Escreva um programa que inverta os caracteres de um string.
IMPORTANTE:
a) Essa string pode ser informada através de qualquer entrada de sua
preferência ou pode ser previamente definida no código;
b) Evite usar funções prontas, como, por exemplo, reverse;
Definimos que o a string pode ser inserida via terminal em um teste na
fubção main.
Sobre a função de inversão da string:
// A funçao espera uma string e retorna uma string (invertida)
// Internamente ela trabalha com uma stringbuilder e um laço
// para inverter a string original.
public static String stringInversa(String string) {
Prompt:
Digite uma string: As pessoas fortes não derrubam as outras, elas ajudam-nas a se erguerem
String invertida: mereugre es a san-maduja sale ,sartuo sa maburred oãn setrof saossep sA