Open visofo opened 3 years ago
using System;
namespace exe4 { class MainClass { public static void Main (string[] args) { int[] elvA = new int[4]; int[] elvB = new int[4]; int[] elvC = new int[4]; int[] horario = new int[3]; int resposta = 1; char resp; int andAtual = 0; int andTemp = 0;
while (resposta != 0) { Console.Write ("Qual elevador mais frenquentado A, B ou C: "); resp = Convert.ToChar (Console.ReadLine ());
switch (resp) { case 'A': elvA [0] = elvA [0] + 1; Console.Write ("Em que horario [M]atutino [V]espertino ou [N]oturno? no Elevador " + resp + " :"); resp = char.Parse (Console.ReadLine ()); if (resp == 'M') elvA [1] = elvA [1] + 1; else if (resp == 'V') elvA [2] = elvA [2] + 1; else if (resp == 'N') elvA [2] = elvA [2] + 1; break; case 'B': elvB [0] = elvB [0] + 1; Console.Write ("Em que horario [M]atutino [V]espertino ou [N]oturno? no Elevador " + resp + " :"); resp = char.Parse (Console.ReadLine ()); if (resp == 'M') elvB [1] = elvB [1] + 1; else if (resp == 'V') elvB [2] = elvB [2] + 1; else if (resp == 'N') elvB [2] = elvB [2] + 1; break; case 'C': elvC [0] = elvC [0] + 1; Console.Write ("Em que horario [M]atutino [V]espertino ou [N]oturno? no Elevador " + resp + " :"); resp = char.Parse (Console.ReadLine ()); if (resp == 'M') elvC [1] = elvC [1] + 1; else if (resp == 'V') elvC [2] = elvC [2] + 1; else if (resp == 'N') elvC [2] = elvC [2] + 1; break; }
Console.Write ("Qual o Andar Visitado? :"); andAtual = int.Parse (Console.ReadLine ());
if (andTemp < andAtual) { andTemp = andAtual; }
Console.Write ("Deseja Sair?[0] Sim [1] Não :"); resposta = int.Parse (Console.ReadLine ());
}
Console.WriteLine ("O andar mais alto foi: " + andTemp);
if (elvA [0] > elvB [0] && elvA[0] > elvC [0]) {
if (elvA [1] > elvA [2] && elvA [1] > elvA [3]) { Console.WriteLine ("O elevador A é o mais ultilizado," + elvA [0] + " Seu maior Fluxo é pela Manhã!"); } else if (elvA [2] > elvA [1] && elvA [2] > elvA [3]) { Console.WriteLine ("O elevador A é o mais ultilizado," + elvA [0] + " Seu maior Fluxo é pela Tarde!"); } else if (elvA [3] > elvA [2] && elvA [3] > elvA [1]) { Console.WriteLine ("O elevador A é o mais ultilizado," + elvA [0] + " Seu maior Fluxo é pela Noite!"); }
} else if (elvB [0] > elvA [0] && elvB[0] > elvC [0]) { if (elvB [1] > elvB [2] && elvB [1] > elvB [3]) { Console.WriteLine ("O elevador A é o mais ultilizado," + elvB [0] + " Seu maior Fluxo é pela Manhã!"); } else if (elvB [2] > elvB [1] && elvB [2] > elvB [3]) { Console.WriteLine ("O elevador A é o mais ultilizado," + elvB [0] + " Seu maior Fluxo é pela Tarde!"); } else if (elvB [3] > elvB [2] && elvB [3] > elvB [1]) { Console.WriteLine ("O elevador A é o mais ultilizado," + elvB [0] + " Seu maior Fluxo é pela Noite!"); } } else if (elvC [0] > elvB [0] && elvC[0] > elvA [0]) { if (elvC [1] > elvC [2] && elvC [1] > elvC [3]) { Console.WriteLine ("O elevador A é o mais ultilizado," + elvC [0] + " Seu maior Fluxo é pela Manhã!"); } else if (elvC [2] > elvC [1] && elvC [2] > elvC [3]) { Console.WriteLine ("O elevador A é o mais ultilizado," + elvC [0] + " Seu maior Fluxo é pela Tarde!"); } else if (elvC [3] > elvC [2] && elvC [3] > elvC [1]) { Console.WriteLine ("O elevador A é o mais ultilizado," + elvC [0] + " Seu maior Fluxo é pela Noite!"); }
}
horario [0] = elvA [1] + elvB [1] + elvC [1]; horario [1] = elvA [2] + elvB [2] + elvC [2]; horario [2] = elvA [3] + elvB [3] + elvC [3];
if (horario [0] > horario [1] && horario[0] > horario [2]) { Console.WriteLine ("A manhã foi o horario mais ultizado com " + horario [0]); } else if (horario [1] > horario [0] && horario[1] > horario [2]) { Console.WriteLine("A Tarde foi mais Ultilizado com "+ horario[1]); } else if (horario [2] > horario [0] && horario[2] > horario [1]) { Console.WriteLine("A Noite foi mais Ultilizado com "+ horario[2]); } //Menor if (horario [0] < horario [1] && horario[0] < horario [2]) { Console.WriteLine ("A manhã foi o horario menos ultizado com " + horario [0]); } else if (horario [1] < horario [0] && horario[1] < horario [2]) { Console.WriteLine("A Tarde foi menos Ultilizado com "+ horario[1]); } else if (horario [2] < horario [0] && horario[2] < horario [1]) { Console.WriteLine("A Noite foi menos Ultilizado com "+ horario[2]); }
} } }
Prova Admissional APISUL Ryan Eugênio Ferreira `using System.Collections.Generic;
namespace ProvaAdmissionalCSharpApisul
{
public interface IElevadorService
{
///
/// <summary> Deve retornar uma List contendo o(s) elevador(es) mais frequentado(s). </summary>
List<char> elevadorMaisFrequentado();
/// <summary> Deve retornar uma List contendo o período de maior fluxo de cada um dos elevadores mais frequentados (se houver mais de um). </summary>
List<char> periodoMaiorFluxoElevadorMaisFrequentado();
/// <summary> Deve retornar uma List contendo o(s) elevador(es) menos frequentado(s). </summary>
List<char> elevadorMenosFrequentado();
/// <summary> Deve retornar uma List contendo o período de menor fluxo de cada um dos elevadores menos frequentados (se houver mais de um). </summary>
List<char> periodoMenorFluxoElevadorMenosFrequentado();
/// <summary> Deve retornar uma List contendo o(s) periodo(s) de maior utilização do conjunto de elevadores. </summary>
List<char> periodoMaiorUtilizacaoConjuntoElevadores();
/// <summary> Deve retornar um float (duas casas decimais) contendo o percentual de uso do elevador A em relação a todos os serviços prestados. </summary>
float percentualDeUsoElevadorA();
/// <summary> Deve retornar um float (duas casas decimais) contendo o percentual de uso do elevador B em relação a todos os serviços prestados. </summary>
float percentualDeUsoElevadorB();
/// <summary> Deve retornar um float (duas casas decimais) contendo o percentual de uso do elevador C em relação a todos os serviços prestados. </summary>
float percentualDeUsoElevadorC();
/// <summary> Deve retornar um float (duas casas decimais) contendo o percentual de uso do elevador D em relação a todos os serviços prestados. </summary>
float percentualDeUsoElevadorD();
/// <summary> Deve retornar um float (duas casas decimais) contendo o percentual de uso do elevador E em relação a todos os serviços prestados. </summary>
float percentualDeUsoElevadorE();
}
public class Program : IElevadorService
{
char elevador,turno;
int andar;
List
Program program = new Program();
do
{
program.andar = entradaAndar();
program.listaAndar.Add(program.andar);
program.elevador = entradaElevador();
program.listaElevador.Add(program.elevador);
program.turno = entradaTurno();
program.listaTurno.Add(program.turno);
} while (stopProgram() == true);
/*Console.WriteLine("\nChar Elevador: "+ program.elevador.ToString());
Console.WriteLine("\nChar Turno: "+ program.turno.ToString());
Console.WriteLine("\nInt Andar: "+ program.andar.ToString());
Console.WriteLine("\nAndares Menos Utilizados em Ordem Crescente: "+ program.andarMenosUtilizado());
Console.WriteLine("\nElevadores Mais Frequentados em Ordem Crescente: "+ program.elevadorMaisFrequentado());
Console.WriteLine("\nElevadores Mais Frequentados em Ordem Crescente: "+ program.elevadorMenosFrequentado());*/
Console.Clear();
program.listaAndar.ForEach(i => Console.Write("{0} ",i));
Console.WriteLine("\n");
program.listaElevador.ForEach(i => Console.Write("{0} ",i));
Console.WriteLine("\n");
program.listaTurno.ForEach(i => Console.Write("{0} ",i));
/*program.elevadorMenosFrequentado();*/
}
static char entradaElevador(){
char elevador;
do
{
Console.WriteLine("\nElevador(A,B,C,D ou E):");
elevador = Console.ReadKey().KeyChar;
if(elevador != 'A' && elevador != 'B' && elevador != 'C' && elevador != 'D' && elevador != 'E')
Console.WriteLine("\nDigite corretamente");
} while (elevador != 'A' && elevador != 'B' && elevador != 'C' && elevador != 'D' && elevador != 'E');
return elevador;
}
static char entradaTurno(){
char turno;
do
{
Console.WriteLine("\nPeriodo(M(Matutino) V(Vespertino) N(Noturno):");
turno = Console.ReadKey().KeyChar;
if(turno != 'M' && turno != 'V' && turno != 'N')
Console.WriteLine("\nDigite corretamente");
} while (turno != 'M' && turno != 'V' && turno != 'N');
return turno;
}
static int entradaAndar(){
int andar;
string auxInt;
do
{
Console.WriteLine("\nAndar 0 a 15:");
auxInt = Console.ReadLine();
andar = Convert.ToInt32(auxInt);
if(andar < 0 && andar > 15)
Console.WriteLine("\nDigite corretamente");
} while (andar < 0 && andar > 15);
return andar;
}
static bool stopProgram(){
var stop = "SIM";
do{
Console.WriteLine("\nContinuar Sim/Nao:");
stop = Console.ReadLine();
stop = stop.ToUpper();
if(stop != "NAO" && stop != "SIM")
Console.WriteLine("\nDigite corretamente");
}while(stop != "NAO" && stop != "SIM");
if (stop == "SIM"){
return true;
} else {
return false;
}
}
} } `
Boa tarde, acabei de terminar a prova que recebi por e-mail no dia de ontem (30/09) às 10:40, tomei a liberdade de modificar alguns itens na interface que julguei que ficariam de uma melhor forma. Caso seja necessário refazer a prova usando a interface original, não há problema nenhum.
### Segue aqui a interface alterada:
` using System.Collections.Generic;
public interface IElevadorService
{
///
/// <summary> Deve retornar um char contendo o elevador mais frequentado. </summary>
char elevadorMaisFrequentado();
/// <summary> Deve retornar uma string contendo o período de maior fluxo do elevador mais frequentado. </summary>
string periodoMaiorFluxoElevadorMaisFrequentado();
/// <summary> Deve retornar um char contendo o elevador menos frequentado. </summary>
char elevadorMenosFrequentado();
/// <summary> Deve retornar uma string contendo o período de menor fluxo de cada um dos elevadores menos frequentados (se houver mais de um). </summary>
string periodoMenorFluxoElevadorMenosFrequentado();
/// <summary> Deve retornar uma string contendo o periodo de maior utilização do conjunto de elevadores. </summary>
string periodoMaiorUtilizacaoConjuntoElevadores();
/// <summary> Deve retornar um float (duas casas decimais) contendo o percentual de uso do elevador em questão em relação a todos os serviços prestados. </summary>
float percentualDeUsoElevador(string elevador);
}
`
### Abaixo, o script desenvolvido:
` using Newtonsoft.Json;
public class ocorrencia{ public string elevador { get ; set ; } public int andar { get ; set ; } public string turno { get ; set ; } }
public class Program : IElevadorService{
//static public List<ocorrencia> ocorrencias = new List<ocorrencia>();
static public int ocrrCount = 0;
public List<ocorrencia> ocorrencias = JsonConvert.DeserializeObject<List<ocorrencia>>(File.ReadAllText("input.json"));
static Program pgm = new Program();
static void Main(string[] args)
{
Console.WriteLine("O andar " + pgm.andarMenosUtilizado() + " é o andar menos utilizado.");
Console.WriteLine("O elevador " + pgm.elevadorMaisFrequentado() + " é o mais frequentado.");
Console.WriteLine("O elevador " + pgm.elevadorMaisFrequentado() + " é mais utilizado no período " + pgm.periodoMaiorFluxoElevadorMaisFrequentado());
Console.WriteLine("O elevador " + pgm.elevadorMenosFrequentado() + " é o menos frequentado.");
Console.WriteLine("O elevador " + pgm.elevadorMenosFrequentado() + " é menos frequentado no periodo " + pgm.periodoMenorFluxoElevadorMenosFrequentado());
Console.WriteLine("A rede de elevadores é mais utilizada no período " + pgm.periodoMaiorUtilizacaoConjuntoElevadores());
Console.WriteLine(pgm.percentualDeUsoElevador("A").ToString("n2") + "% das pessoas usam o elevador A");
Console.WriteLine(pgm.percentualDeUsoElevador("B").ToString("n2") + "% das pessoas usam o elevador B");
Console.WriteLine(pgm.percentualDeUsoElevador("C").ToString("n2") + "% das pessoas usam o elevador C");
Console.WriteLine(pgm.percentualDeUsoElevador("D").ToString("n2") + "% das pessoas usam o elevador D");
Console.WriteLine(pgm.percentualDeUsoElevador("E").ToString("n2") + "% das pessoas usam o elevador E");
}
public int andarMenosUtilizado(){
int[] andares = new int[16];
foreach(ocorrencia i in ocorrencias)andares[i.andar] += 1;
return andares.Min();
}
public char elevadorMaisFrequentado(){
int[] count = new int[5];
foreach(ocorrencia i in ocorrencias){
if(i.elevador == "A") count[0]+=1;
else if(i.elevador == "B") count[1]+=1;
else if(i.elevador == "C") count[2]+=1;
else if(i.elevador == "D") count[3]+=1;
else count[4]+=1;
}
if(Array.IndexOf(count, count.Max()) == 0) return 'A';
else if(Array.IndexOf(count, count.Max()) == 1) return 'B';
else if(Array.IndexOf(count, count.Max()) == 2) return 'C';
else if(Array.IndexOf(count, count.Max()) == 3) return 'D';
else return 'E';
}
public string periodoMaiorFluxoElevadorMaisFrequentado(){
int[] count = new int[3];
foreach(ocorrencia i in ocorrencias){
if(i.elevador == pgm.elevadorMaisFrequentado().ToString()){
if(i.turno == "M")count[0]+=1;
else if(i.turno == "V")count[1]+=1;
else count[2]+=1;
}
}
if(Array.IndexOf(count, count.Max()) == 0) return "Matutino";
else if(Array.IndexOf(count, count.Max()) == 1) return "Vespertino";
else return "Noturno";
}
public char elevadorMenosFrequentado(){
int[] count = new int[5];
foreach(ocorrencia i in ocorrencias){
if(i.elevador == "A") count[0]++;
else if(i.elevador == "B") count[1]++;
else if(i.elevador == "C") count[2]++;
else if(i.elevador == "D") count[3]++;
else count[4]++;
}
if(Array.IndexOf(count, count.Min()) == 0) return 'A';
else if(Array.IndexOf(count, count.Min()) == 1) return 'B';
else if(Array.IndexOf(count, count.Min()) == 2) return 'C';
else if(Array.IndexOf(count, count.Min()) == 3) return 'D';
else return 'E';
}
public string periodoMenorFluxoElevadorMenosFrequentado(){
int[] count = new int[3];
foreach(ocorrencia i in ocorrencias){
if(i.elevador == pgm.elevadorMenosFrequentado().ToString()){
if(i.turno == "M")count[0]+=1;
else if(i.turno == "V")count[1]+=1;
else count[2]+=1;
}
}
if(Array.IndexOf(count, count.Min()) == 0) return "Matutino";
else if(Array.IndexOf(count, count.Min()) == 1) return "Vespertino";
else return "Noturno";
}
public string periodoMaiorUtilizacaoConjuntoElevadores(){
int[] count = new int[3];
foreach(ocorrencia i in ocorrencias){
if(i.turno == "M")count[0]+=1;
else if(i.turno == "V")count[1]+=1;
else count[2]+=1;
}
if(Array.IndexOf(count, count.Max()) == 0) return "Matutino";
else if(Array.IndexOf(count, count.Max()) == 1) return "Vespertino";
else return "Noturno";
}
public float percentualDeUsoElevador(string elevador){
int count = new int();
foreach(ocorrencia i in ocorrencias)
if(i.elevador == elevador) count+=1;
float x = count;
float y = ocorrencias.Count;
return (x / y) * 100;
}
} `
### E aqui temos o resultado:
O andar 0 é o andar menos utilizado. O elevador C é o mais frequentado. O elevador C é mais utilizado no período Matutino O elevador D é o menos frequentado. O elevador D é menos frequentado no período Vespertino A rede de elevadores é mais utilizada no período Matutino 34,78% das pessoas usam o elevador A 17,39% das pessoas usam o elevador B 39,13% das pessoas usam o elevador C 4,35% das pessoas usam o elevador D 4,35% das pessoas usam o elevador E
Desde já, muito obrigado pela oportunidade de participar do seu processo seletivo!
using System;
namespace exe4 { class MainClass { public static void Main (string[] args) { int[] elvA = new int[4]; int[] elvB = new int[4]; int[] elvC = new int[4]; int[] horario = new int[3]; int resposta = 1; char resp; int andAtual = 0; int andTemp = 0;
while (resposta != 0) { Console.Write ("Qual elevador mais utilizado A, B ou C: "); resp = Convert.ToChar (Console.ReadLine ());
switch (resp) { case 'A': elvA [0] = elvA [0] + 1; Console.Write ("Em que horario [M]matutino [V]vespertino ou [N]noturno? no Elevador " + resp + " :"); resp = char.Parse (Console.ReadLine ());
if (resp == 'M') elvA [1] = elvA [1] + 1; else if (resp == 'V') elvA [2] = elvA [2] + 1; else if (resp == 'N') elvA [2] = elvA [2] + 1; break; case 'B': elvB [0] = elvB [0] + 1; Console.Write ("Em que horario [M]matutino [V]vespertino ou [N]noturno? no Elevador " + resp + " :"); resp = char.Parse (Console.ReadLine ()); if (resp == 'M') elvB [1] = elvB [1] + 1; else if (resp == 'V') elvB [2] = elvB [2] + 1; else if (resp == 'N') elvB [2] = elvB [2] + 1; break; case 'C': elvC [0] = elvC [0] + 1; Console.Write ("Em que horario [M]matutino [V]vespertino ou [N]noturno? no Elevador " + resp + " :"); resp = char.Parse (Console.ReadLine ()); if (resp == 'M') elvC [1] = elvC [1] + 1; else if (resp == 'V') elvC [2] = elvC [2] + 1; else if (resp == 'N') elvC [2] = elvC [2] + 1; break; }
Console.Write ("Qual o Andar Visitado? :"); andAtual = int.Parse (Console.ReadLine ());
if (andTemp < andAtual) { andTemp = andAtual; }
Console.Write ("Deseja Sair?[0] Sim [1] Não :"); resposta = int.Parse (Console.ReadLine ());
}
Console.WriteLine ("O andar mais alto foi: " + andTemp);
if (elvA [0] > elvB [0] && elvA[0] > elvC [0]) {
if (elvA [1] > elvA [2] && elvA [1] > elvA [3]) { Console.WriteLine ("O elevador A é o mais ultilizado," + elvA [0] + " Seu maior Fluxo é pela Manhã!"); } else if (elvA [2] > elvA [1] && elvA [2] > elvA [3]) { Console.WriteLine ("O elevador A é o mais ultilizado," + elvA [0] + " Seu maior Fluxo é pela Tarde!"); } else if (elvA [3] > elvA [2] && elvA [3] > elvA [1]) { Console.WriteLine ("O elevador A é o mais ultilizado," + elvA [0] + " Seu maior Fluxo é pela Noite!"); }
} else if (elvB [0] > elvA [0] && elvB[0] > elvC [0]) {
if (elvB [1] > elvB [2] && elvB [1] > elvB [3]) { Console.WriteLine ("O elevador A é o mais ultilizado," + elvB [0] + " Seu maior Fluxo é pela Manhã!"); } else if (elvB [2] > elvB [1] && elvB [2] > elvB [3]) { Console.WriteLine ("O elevador A é o mais ultilizado," + elvB [0] + " Seu maior Fluxo é pela Tarde!"); } else if (elvB [3] > elvB [2] && elvB [3] > elvB [1]) { Console.WriteLine ("O elevador A é o mais ultilizado," + elvB [0] + " Seu maior Fluxo é pela Noite!"); } } else if (elvC [0] > elvB [0] && elvC[0] > elvA [0]) {
if (elvC [1] > elvC [2] && elvC [1] > elvC [3]) { Console.WriteLine ("O elevador A é o mais ultilizado," + elvC [0] + " Seu maior Fluxo é pela Manhã!"); } else if (elvC [2] > elvC [1] && elvC [2] > elvC [3]) { Console.WriteLine ("O elevador A é o mais ultilizado," + elvC [0] + " Seu maior Fluxo é pela Tarde!"); } else if (elvC [3] > elvC [2] && elvC [3] > elvC [1]) { Console.WriteLine ("O elevador A é o mais ultilizado," + elvC [0] + " Seu maior Fluxo é pela Noite!"); }
}
horario [0] = elvA [1] + elvB [1] + elvC [1]; horario [1] = elvA [2] + elvB [2] + elvC [2]; horario [2] = elvA [3] + elvB [3] + elvC [3];
if (horario [0] > horario [1] && horario[0] > horario [2]) { Console.WriteLine ("A manhã foi o horario mais ultizado com " + horario [0]); } else if (horario [1] > horario [0] && horario[1] > horario [2]) { Console.WriteLine("A Tarde foi mais Ultilizado com "+ horario[1]); } else if (horario [2] > horario [0] && horario[2] > horario [1]) { Console.WriteLine("A Noite foi mais Ultilizado com "+ horario[2]); } //Menor if (horario [0] < horario [1] && horario[0] < horario [2]) { Console.WriteLine ("A manhã foi o horario menos ultizado com " + horario [0]); } else if (horario [1] < horario [0] && horario[1] < horario [2]) { Console.WriteLine("A Tarde foi menos Ultilizado com "+ horario[1]); } else if (horario [2] < horario [0] && horario[2] < horario [1]) { Console.WriteLine("A Noite foi menos Ultilizado com "+ horario[2]); }
} } }
Efetuado o Upload da resposta no GITHUB: https://github.com/ThiagoRViero/Apisul
Como eu enviar as repostas