static void Main(string[] args) { #region Variaveis int subOpcao; string escolhaOp; int escolhaMenu; bool escolhaSubOpcao; bool escolhaMenuBoleano; string escolhaMenuTexto; int escolhaSubMenu = 0; string nomeFinal; int escolhaDetalhe = 0; // variavel para a escolha do sub menu na converçao de unidades #endregion do //repetição do programa enquando a opção nao for 0 { #region Menu Principal //Metodo menu e ler a escolha Class1.Menu(); escolhaMenuTexto = Console.ReadLine(); escolhaMenuBoleano = int.TryParse(escolhaMenuTexto, out escolhaMenu);//se for possivel transformar o numero if (escolhaMenuBoleano == true) { escolhaMenu = int.Parse(escolhaMenuTexto); //transformar a string num numero } else { escolhaMenu = 9999; // dar um valor para entrar no default do switch } #endregion #region Switch //Casos possiveis da escolha switch (escolhaMenu) { case 1: // Array Console.Clear(); //limpar ecra #region Array #region Vars do { // variaveis int[] numeros = { 10, 2, 3, 20, 3 }; int x = 3; int[] quemMaior = { }; int[] quemMenor = { }; int tamanhoArray = 0; int quantos = 0; int procura = 3; bool caso = false; #endregion #region Maior e Menor //apresentar os valores do array foreach (var value in numeros) { Console.Write("{0} ", value); } quemMaior = Class1.Maiores(numeros, x, quemMaior, out tamanhoArray); //chama o metodo para ver quem sao os maiores que x Console.WriteLine("\nQuantos sao maior que {0} : {1}", x, tamanhoArray); Console.WriteLine("Os numeros maiores que {0} são : ", x); Class1.Foreach(quemMaior); // mosta quem são os maiores quemMenor = Class1.Menores(numeros, x, quemMaior, out tamanhoArray); //chama o metodo para ver quem sao os menores que x Console.WriteLine("\nQuantos sao menores que {0} : {1}", x, tamanhoArray); Console.WriteLine("Os numeros menores que {0} são : ", x); Class1.Foreach(quemMenor); // mosta quem são os menores #endregion #region Quantos e Procurar numero quantos = Class1.Quantos(numeros, x); //chama o metodo para ver quantos x existe Console.WriteLine("\nQuantos nº {0} tem nossa array com numeros ? Tem : {1}", x, quantos); Console.WriteLine("\nVai procurar o nº {0} no array.", procura); caso = Class1.OndeEstaVerFal(numeros, procura, caso); //verifica se um numero procurado existe if (caso == false) { Console.WriteLine(caso); //se não houver o numero R: False } else { Class1.OndeEsta(numeros, procura); //chama o metodo para dizer a localização } #endregion #region Menu //menu Console.WriteLine("\n\n[1] - Voltar"); Console.WriteLine("[2] - Sair"); escolhaOp = Console.ReadLine(); escolhaSubOpcao = int.TryParse(escolhaOp, out subOpcao); if (escolhaSubOpcao == true) { subOpcao = int.Parse(escolhaOp); //transforma a string em numero } else { escolhaOp = "não"; //atribui uma palavra para a manipulação do "do while" } if (subOpcao == 1) { Console.Clear(); break; } else if (subOpcao == 2) { System.Environment.Exit(0); //sair } else { escolhaOp = "não"; } Console.Clear(); } while (escolhaOp == "não"); #endregion #endregion break; case 2: // Polinómo de grau 2 Console.Clear(); //limpar ecra #region Polinómio de grau 2 #region Vars do { //variaveis int a = -2, b = 6, c = 20, xis = 3; double resultadoEquacao, resultadoUm, resultadoDois, delta; double resultadoDerivada; #endregion #region Formula resolvente e derivada //Informar o utilizador Console.WriteLine("Para equação de grau 2 : A= {0} B= {1} C= {2}", a, b, c); Console.WriteLine("Para Derivada : A= {0} B= {1} C= {2} X= {3}\n", a, b, c, xis); //chamar o metodo resultadoEquacao = Class1.Resultado(a, b, c, out resultadoUm, out resultadoDois, out delta); //resultado if (a != 0 && delta >= 0) { Console.WriteLine("Resultado um : {0}", resultadoUm); Console.WriteLine("Resultado dois : {0}\n", resultadoDois); } //Mensagem de erro else { Console.WriteLine("Desculpe o numero A tem que ser diferente de 0 e o delta nao pode ser negativo"); } //chamar metodo resultadoDerivada = Class1.Derivada(a, b, c, xis); //resultado Console.WriteLine("A derivada de '' {0}x^2 + {1}x + {2} '' = {3}", a, b, c, resultadoDerivada); #endregion #region Menu //menu Console.WriteLine("\n\n[1] - Voltar"); Console.WriteLine("[2] - Sair"); escolhaOp = Console.ReadLine(); escolhaSubOpcao = int.TryParse(escolhaOp, out subOpcao); if (escolhaSubOpcao == true) { subOpcao = int.Parse(escolhaOp); } else { escolhaOp = "não"; } if (subOpcao == 1) { Console.Clear(); break; } else if (subOpcao == 2) { System.Environment.Exit(0); } Console.Clear(); } while (escolhaOp == "não"); #endregion #endregion break; case 3: Console.Clear(); //limpar ecra #region Funções matemáticas #region Vars do { double somatorio = 0; decimal factorial = 0, potencia = 0; int limiteInferior = 1, limiteSuperior = 20, valor = 5, valorElevado = 3; #endregion #region Resultados //chama metodo e dá resultado somatorio = Class1.Somatorio(limiteInferior, limiteSuperior); Console.WriteLine("O somatorio é : {0}", somatorio); //chama metodo e dá resultado factorial = Class1.Factorial(valor); Console.WriteLine("O factorial é : {0}", factorial); //chama metodo e dá resultado potencia = Class1.Potencia(valor, valorElevado); Console.WriteLine("A potencia é : {0}", potencia); #endregion #region Menu //menu Console.WriteLine("\n\n[1] - Voltar"); Console.WriteLine("[2] - Sair"); escolhaOp = Console.ReadLine(); escolhaSubOpcao = int.TryParse(escolhaOp, out subOpcao); if (escolhaSubOpcao == true) { subOpcao = int.Parse(escolhaOp); } else { escolhaOp = "não"; } if (subOpcao == 1) { Console.Clear(); break; } else if (subOpcao == 2) { System.Environment.Exit(0); } Console.Clear(); } while (escolhaOp == "não"); #endregion #endregion break; case 4: Console.Clear(); //limpar ecra #region funções estatisticas #region Vars do { //variaveis double[] valores = { 10, 20, 10, 2, 5, 2, 2, 2, 3, 3, 3, 4, 10, 10 }; double media = 0, desvio = 0, mediana = 0, maior = 0, menor = 0; double[] moda; int q = 0; #endregion #region Resultados //chama metodo e apresenta valores media = Class1.Media(valores, media); Console.WriteLine("A média é : {0}", media.ToString("0.##")); //valor com duas casas decimais //chama metodo moda = Class1.Moda(valores); //apresentar os resultados de forma agradavel para o utilizador foreach (var value in moda) { if (moda.Length > 1 && q >= 1) { Console.Write(" e {0}", value); q++; } if (moda.Length > 1 && q == 0) { Console.Write("A moda é : {0}", value); q++; } else if (moda.Length == 1) { Console.WriteLine("A moda é : {0}", value); } } //chama metodo e apresenta valores desvio = Class1.CalculoDp(valores); Console.WriteLine("\nO desvio padrão é : {0}", desvio.ToString("0.##")); //chama metodo e apresenta valores mediana = Class1.Mediana(valores); Console.WriteLine("A mediana é : {0}", mediana.ToString("0.##")); //chama metodo e apresenta valores maior = Class1.Maior(valores); Console.WriteLine("O maior é : {0}", maior.ToString("0.##")); //chama metodo e apresenta valores menor = Class1.Menor(valores); Console.WriteLine("O menor é : {0}", menor.ToString("0.##")); #endregion #region Menu //menu Console.WriteLine("\n\n[1] - Voltar"); Console.WriteLine("[2] - Sair"); escolhaOp = Console.ReadLine(); escolhaSubOpcao = int.TryParse(escolhaOp, out subOpcao); if (escolhaSubOpcao == true) { subOpcao = int.Parse(escolhaOp); } else { escolhaOp = "não"; } if (subOpcao == 1) { Console.Clear(); break; } else if (subOpcao == 2) { System.Environment.Exit(0); } Console.Clear(); } while (escolhaOp == "não"); #endregion #endregion break; case 5: Console.Clear(); //limpar ecra #region Conversor de unidades #region Vars //variaveis double valorUm = 0, valorDois = 0, resultado = 0; int valorTres = 0; bool bole; string temp; #endregion #region Resultado do { do { //ir buscas o menu das unidades e ler o seu valor Class1.SubMenu(); temp = Console.ReadLine(); bole = int.TryParse(temp, out escolhaSubMenu); if (bole == true) { escolhaSubMenu = int.Parse(temp); //string é um numero } else { escolhaSubMenu = 9999; // dar um valor para entrar no default do switch } Console.Clear(); //limpa ecra } while (escolhaSubMenu == 9999); Console.Clear(); //Limpar ecra do { // vai buscar o menu do detalhe que queremos Class1.SubMenuUnidades(escolhaSubMenu, escolhaDetalhe, valorUm, valorDois, valorTres, resultado); } while (escolhaDetalhe != 0); //abandona se o detalhe for sair (0) } while (escolhaSubMenu != 0); //abandona se no menu unidades for sair (0) #endregion #endregion break; case 6: //paginas amarelas Console.Clear(); //limpar ecra #region Paginas amarelas #region Vars do { //variaveis string nome = "Luis Mendonca Alberto Carvalho"; #endregion #region Resultado Console.WriteLine("Nome : {0}", nome); nomeFinal = Class1.OrganizaNome(nome); Console.WriteLine(nomeFinal); #endregion #region Menu //menu Console.WriteLine("\n\n[1] - Voltar"); Console.WriteLine("[2] - Sair"); escolhaOp = Console.ReadLine(); escolhaSubOpcao = int.TryParse(escolhaOp, out subOpcao); if (escolhaSubOpcao == true) { subOpcao = int.Parse(escolhaOp); } else { escolhaOp = "não"; } if (subOpcao == 1) { Console.Clear(); break; } else if (subOpcao == 2) { System.Environment.Exit(0); } Console.Clear(); } while (escolhaOp == "não"); #endregion #endregion break; //sair case 0: break; // qualquer valor diferente dos de cima default: Console.Write("Valor nao conhecido."); System.Threading.Thread.Sleep(350); //Espera meio segundo Console.Clear(); //limpa ecra break; } #endregion } while (escolhaMenu != 0); }