Advertisement
Guest User

Untitled

a guest
Feb 24th, 2017
53
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.33 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6.  
  7. namespace UF2PR2Solucio
  8. {
  9. class Program
  10. {
  11. static void Main(string[] args)
  12. {
  13. int opcio = 0;
  14. bool acabar = false;
  15.  
  16. while (!acabar)
  17. {
  18. Console.Clear();
  19. opcio = menuPrincipal();
  20. switch (opcio)
  21. {
  22. case 1:
  23. decimalBinari();
  24. break;
  25. case 2:
  26. binariDecimal();
  27. break;
  28. case 3:
  29. decimalHexadecimal();
  30. break;
  31. case 4:
  32. HexadecimalDecimal();
  33. break;
  34. case 5:
  35. binariHexadecimal();
  36. break;
  37. case 6:
  38. hexadecimalBinari();
  39. break;
  40. case 7:
  41. qualsevol();
  42. break;
  43. case 8:
  44. ajuda();
  45. break;
  46. case 9:
  47. acabar = true;
  48. break;
  49. default:
  50. Console.WriteLine("nEsperava un numero de l'u al 9");
  51. break;
  52. }
  53. if (!acabar) espera();
  54. }
  55. }
  56. public static void decimalBinari()
  57. {
  58. String numero;
  59.  
  60. Console.WriteLine("Entra un numero decimal: ");
  61. numero = Console.ReadLine();
  62. //Comprovacio base
  63. if (esBase(10, numero)) Console.WriteLine(Conversio(10, 2, numero));
  64. else Console.WriteLine("Esperava un numero decimal");
  65. }
  66. public static void binariDecimal()
  67. {
  68. String numero;
  69.  
  70. Console.WriteLine("Entra un numero binari: ");
  71. numero = Console.ReadLine();
  72. //Comprovacio base
  73. if (esBase(2, numero)) Console.WriteLine(Conversio(2, 10, numero));
  74. else Console.WriteLine("Esperava un numero binari");
  75. }
  76. public static void HexadecimalDecimal()
  77. {
  78. String numero;
  79.  
  80. Console.WriteLine("Entra un numero hexadecimal: ");
  81. numero = Console.ReadLine();
  82. //Comprovacio base
  83. if (esBase(16, numero)) Console.WriteLine(convertirABaseDeu(16, numero));
  84. else Console.WriteLine("Esperava un numero hexadecimal");
  85. }
  86. public static void decimalHexadecimal()
  87. {
  88. String numero;
  89.  
  90. Console.WriteLine("Entra un numero decimal: ");
  91. numero = Console.ReadLine();
  92. //Comprovacio base
  93. if (esBase(10, numero)) Console.WriteLine(Conversio(10, 16, numero));
  94. else Console.WriteLine("Esperava un numero decimal");
  95. }
  96.  
  97.  
  98. public static void binariHexadecimal()
  99. {
  100. String numero;
  101.  
  102. Console.WriteLine("Entra un numero decimal: ");
  103. numero = Console.ReadLine();
  104. //Comprovacio base
  105. if (esBase(10, numero)) Console.WriteLine(Conversio(2, 16, numero));
  106. else Console.WriteLine("Esperava un numero binari");
  107. }
  108.  
  109.  
  110. public static void hexadecimalBinari()
  111. {
  112. String numero;
  113.  
  114. Console.WriteLine("Entra un numero decimal: ");
  115. numero = Console.ReadLine();
  116. //Comprovacio base
  117. if (esBase(10, numero)) Console.WriteLine(Conversio(16, 2, numero));
  118. else Console.WriteLine("Esperava un numero hexadecimal");
  119. }
  120.  
  121.  
  122. public static void qualsevol()
  123. {//menu 7
  124. String numero;
  125. int baseInicial, baseDesti;
  126.  
  127. Console.WriteLine("Entra un numero: ");
  128. numero = Console.ReadLine();
  129. Console.WriteLine("Entra la base en que esta aquest nombre: ");
  130. baseInicial = int.Parse(Console.ReadLine());
  131. Console.WriteLine("Entra la base a la que el vols convertir: ");
  132. baseDesti = int.Parse(Console.ReadLine());
  133. //Comprovacio base
  134. if (esBase(baseInicial, numero)) Console.WriteLine(Conversio(baseInicial, baseDesti, numero));
  135. else Console.WriteLine("El nombre introduit no és de la base especificada");
  136. }
  137. public static String Conversio(int baseInicial, int baseDesti, String Numero)
  138. {
  139. String resultat;
  140. int resultatB10;
  141. //Primer convertim de base inicial a base 10
  142. resultatB10 = convertirABaseDeu(baseInicial, Numero);
  143. //Despres convertim de base 10 a base desti
  144. resultat = convertirDeBaseDeu(resultatB10, baseDesti);
  145. return "hola soc la funcio conversio";
  146. }
  147. public static String convertirDeBaseDeu(int numero, int baseDesti)
  148. {
  149.  
  150. String resultat = Conversio(10, baseDesti, numero.ToString());
  151.  
  152. //Comprovacio base
  153. if (esBase(10, numero.ToString())) Console.WriteLine(Conversio(10, baseDesti, numero.ToString()));
  154. else Console.WriteLine("Esperava un numero en base 10");
  155.  
  156. return resultat;
  157. }
  158. public static int convertirABaseDeu(int baseNum, String numero)
  159. {
  160. int resultat = 0;
  161. int llargada;
  162. int digit;
  163. int potencia = 0;
  164.  
  165. llargada = numero.Length;
  166. for (int x = llargada - 1; x >= 0; x--)
  167. {
  168. digit = (int)Char.GetNumericValue(numero[x]);
  169. if (digit == -1) digit = Convert.ToInt32(numero[x]) - 55;
  170.  
  171. resultat = resultat + (digit * Convert.ToInt32(Math.Pow(baseNum, potencia)));
  172. potencia++;
  173. }
  174.  
  175. Console.WriteLine("el valor a en decimal es : " + resultat);
  176. return resultat;
  177. }
  178.  
  179. public static Boolean esBase(int laBase, String numero)
  180. {
  181. bool resultat = true;
  182.  
  183. foreach (char digit in numero)
  184. {
  185. if (!digitPertanyBase(digit, laBase))
  186. {
  187. resultat = false;
  188. break;
  189. }
  190. }
  191. return resultat;
  192. }
  193. public static Boolean digitPertanyBase(char digit, int baseNum)
  194. {
  195. bool trobat = false;
  196. char[] simbols = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F' };
  197. int x = 0;
  198. do
  199. {
  200. if (digit == simbols[x]) trobat = true;
  201. x++;
  202. }
  203. while ((x < baseNum) && (!trobat));
  204. return trobat;
  205. }
  206.  
  207. public static int menuPrincipal()
  208. {
  209. int opcio = 0;
  210. ConsoleKeyInfo cki;
  211.  
  212. escriureMenu();
  213. cki = Console.ReadKey(true);
  214. if (Char.IsNumber(cki.KeyChar))
  215. opcio = Int32.Parse(cki.KeyChar.ToString());
  216. else opcio = 0;
  217.  
  218. return opcio;
  219. }
  220. public static void escriureMenu()
  221. {
  222. Console.WriteLine("-----------------------------");
  223. Console.WriteLine("Conversió de bases numèriques");
  224. Console.WriteLine("-----------------------------");
  225. Console.WriteLine("1 - Decimal a binari");
  226. Console.WriteLine("2 - Binari a decimal");
  227. Console.WriteLine("3 - Decimal a hexadecimal");
  228. Console.WriteLine("4 - Hexadecimal a decimal");
  229. Console.WriteLine("5 - Binari a hexadecimal");
  230. Console.WriteLine("6 - Hexadecimal a binari");
  231. Console.WriteLine("7 - D'una base a qualsevol altra");
  232. Console.WriteLine("8 - Ajuda");
  233. Console.WriteLine("9 - Sortir");
  234. }
  235. public static void ajuda()
  236. {
  237. Console.Clear();
  238. Console.WriteLine("Si saps que són les bases numèriques, no et cal gaire ajuda");
  239. Console.WriteLine("Si tens alguna queixa, pots escriure-la i,quan premis ENTER serà enviada al nostres programadors");
  240.  
  241. }
  242.  
  243.  
  244.  
  245. public static void espera()
  246. {
  247. Console.WriteLine("Prem ANY KEY per tornar al menu");
  248. Console.ReadLine();
  249. }
  250. }
  251.  
  252.  
  253. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement