Advertisement
mattSilva

Estudos Matt

Sep 20th, 2017
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.35 KB | None | 0 0
  1. using System;
  2.  
  3. namespace Estudo
  4. {
  5. class MainClass
  6. {
  7. public static void Main (string[] args)
  8. {
  9. int nPos;
  10. string conf;
  11. conf = "0";
  12.  
  13. do
  14. {
  15.  
  16. Console.WriteLine("**Programa para Estudos Sobre Vetor***\n");
  17. Console.WriteLine("Digite 1 e aperte ENTER para iniciar o programa\nDigite 2 e aperte ENTER para finalizar o programa");
  18. conf = Console.ReadLine();
  19.  
  20. if ((conf != "1") && (conf != "2"))
  21. {
  22. Console.WriteLine("Entre apenas com 1 ou 2!");
  23. Console.ReadKey();
  24. Console.Clear ();
  25. }
  26.  
  27. }while ((conf != "1") && (conf != "2"));
  28.  
  29. Console.Clear ();
  30.  
  31. do
  32. {
  33. if (conf == "1")
  34. {
  35.  
  36. Console.WriteLine("Insira abaixo o número de posições do vetor e aperte ENTER:");
  37. nPos = int.Parse(Console.ReadLine());
  38. int[] numeros = new int[nPos]; //{23,36,21,56,76,54,8,9,99}; <-- se eu quiser definir um vetor com números específicos para cada posição
  39. Console.Clear();
  40. Console.WriteLine("Você definiu a quantidade de {0} posiçoes.\nAperte ENTER para prosseguir...", nPos);
  41. Console.ReadKey();
  42. Console.Clear();
  43.  
  44. for (int i = 0; i < numeros.Length; i++)
  45. {
  46. Console.Write("Insira o conteúdo númérico da posição {0} do vetor: ", i+1);
  47. numeros[i] = int.Parse(Console.ReadLine());
  48. Console.Clear ();
  49. }
  50.  
  51. Console.WriteLine("Aperte ENTER para ordenar o conteúdo das posiçoes:");
  52. Console.ReadKey();
  53. Console.Clear();
  54.  
  55.  
  56. //Ordenação do Vetor
  57.  
  58. for (int i = 0; i < numeros.Length - 1; i++)
  59. {
  60. for (int o = i + 1; o < numeros.Length; o++)
  61. {
  62. if (numeros [o] < numeros [i])
  63. {
  64. int auxiliar = numeros [o];
  65. numeros [o] = numeros [i];
  66. numeros [i] = auxiliar;
  67. }
  68. }
  69. }
  70.  
  71.  
  72.  
  73. //Início da busca binária
  74.  
  75. int meio, fim, inicio, busca;
  76. bool naoAchou;
  77.  
  78. inicio = 0;
  79. fim = numeros.Length;
  80. meio = (inicio + fim) / 2;
  81. naoAchou = false;
  82.  
  83. do
  84. {
  85. //Exibição das posições do vetor e seu conteúdo respectivo
  86.  
  87. for (int i = 0; i < numeros.Length; i++)
  88. {
  89. Console.Write ("Posição {0}: ", i);
  90. Console.WriteLine (numeros [i]);
  91. }
  92.  
  93. Console.WriteLine ("Escreva abaixo o valor que deseja buscar e o programa \n apresentará a posição correspondente no vetor:");
  94. busca = Convert.ToInt32 (Console.ReadLine ());
  95. if ((busca > numeros[nPos-1]) || (busca < numeros[0]))
  96. {
  97. Console.WriteLine("Digite apenas números dentro do intervalo do vetor\n(menor= {0} / maior= {1})", numeros[0], numeros[nPos-1]);
  98. Console.ReadKey();
  99. Console.Clear();
  100. }
  101.  
  102. }while((busca > numeros[nPos-1]) || (busca < numeros[0])) ;
  103.  
  104. //Lógica da busca binária
  105.  
  106. while ((numeros[meio] != busca) && (naoAchou == false))
  107. {
  108.  
  109. if (busca > numeros [meio])
  110. {
  111. inicio = meio + 1;
  112. meio = (inicio + fim) / 2;
  113. }
  114. else if (busca < numeros [meio])
  115. {
  116. fim = meio - 1;
  117. meio = (inicio + fim) / 2;
  118. }
  119. if ((inicio > fim) || (fim < inicio))
  120. {
  121. naoAchou = true;
  122. }
  123.  
  124. }
  125.  
  126. //Exibição da posição buscada
  127.  
  128. Console.WriteLine ();
  129. if (busca == numeros [meio])
  130. {
  131. Console.WriteLine("Você buscou o número {0}, na posição {1}!", busca, meio);
  132. Console.WriteLine("Aperte ENTER para prosseguir...");
  133. Console.ReadKey();
  134. Console.Clear();
  135. }
  136. else if (naoAchou == true)
  137. {
  138. Console.WriteLine ("Não encontrado no índice");
  139. Console.WriteLine("Aperte ENTER para prosseguir...");
  140. Console.ReadKey();
  141. Console.Clear();
  142. }
  143. do
  144. {
  145.  
  146. Console.WriteLine("Deseja testar o programa novamente?");
  147. Console.Write ("Digite 1 para SIM ou 2 para NÃO: ");
  148.  
  149. conf = Console.ReadLine();
  150.  
  151. if ((conf != "1") && (conf != "2"))
  152. {
  153. Console.WriteLine("Entre apenas com 1 ou 2!");
  154. Console.ReadKey();
  155. Console.Clear ();
  156. }
  157. Console.Clear();
  158.  
  159. }while ((conf != "1") && (conf != "2"));
  160.  
  161. }
  162. if (conf == "2")
  163. {
  164. Console.WriteLine("Obrigado!");
  165. Console.ReadKey();
  166. }
  167. } while (conf == "1");
  168. }
  169. }
  170. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement