Forum: Morse!

Forum huvudsida -> Programmering -> Morse!

Sidor: 1

Till botten

jla 20:45 - 7:e Juli 2009 | Post #1
Medlem
Inlägg: 18


Skicka PM
Hej alla!

Har gjort ett litet program som låter användaren skriva in något och sedan säger datorn det användaren skrev in på morse. Här är koden:
  1. #include <iostream>
  2. #include <fstream>
  3. #include <ctime>
  4. #include <conio.h>
  5. #include <windows.h>
  6. #include <winable.h>
  7.  
  8. using namespace std;
  9.  
  10. int main()
  11. {
  12.  
  13. char morse[5000];
  14. int i = 0;
  15. char cDoAgain;
  16. do
  17. {
  18. system("CLS");
  19. cout << "Välkommen till morseomvandlaren!" << endl << endl
  20. << "Vad vill du höra på morse? ";
  21. cin >> morse;
  22. cin.ignore();
  23. while(i < 5000)
  24. {
  25. switch(morse[i])
  26. {
  27. case 'a':
  28. cout << " ._ |";
  29. Beep(1000,100);
  30. Sleep(200);
  31. Beep(1000,500);
  32. Sleep(500);
  33. break;
  34. case 'b':
  35. cout << " _... |";
  36. Beep(1000,500);
  37. Sleep(200);
  38. Beep(1000,100);
  39. Sleep(200);
  40. Beep(1000,100);
  41. Sleep(200);
  42. Beep(1000,100);
  43. Sleep(500);
  44. break;
  45. case 'c':
  46. cout << " _._. |";
  47. Beep(1000,500);
  48. Sleep(200);
  49. Beep(1000,100);
  50. Sleep(200);
  51. Beep(1000,500);
  52. Sleep(200);
  53. Beep(1000,100);
  54. Sleep(500);
  55. break;
  56. case 'd':
  57. cout << " _.. |";
  58. Beep(1000,500);
  59. Sleep(200);
  60. Beep(1000,100);
  61. Sleep(200);
  62. Beep(1000,100);
  63. Sleep(500);
  64. break;
  65. case 'e':
  66. cout << " . |";
  67. Beep(1000,100);
  68. Sleep(500);
  69. break;
  70. case 'f':
  71. cout << " .._. |";
  72. Beep(1000,100);
  73. Sleep(200);
  74. Beep(1000,100);
  75. Sleep(200);
  76. Beep(1000,500);
  77. Sleep(200);
  78. Beep(1000,100);
  79. Sleep(500);
  80. break;
  81. case 'g':
  82. cout << " __. |";
  83. Beep(1000,500);
  84. Sleep(200);
  85. Beep(1000,500);
  86. Sleep(200);
  87. Beep(1000,100);
  88. Sleep(500);
  89. break;
  90. case 'h':
  91. cout << " .... |";
  92. Beep(1000,100);
  93. Sleep(200);
  94. Beep(1000,100);
  95. Sleep(200);
  96. Beep(1000,100);
  97. Sleep(200);
  98. Beep(1000,100);
  99. Sleep(500);
  100. break;
  101. case 'i':
  102. cout << " .. |";
  103. Beep(1000,100);
  104. Sleep(200);
  105. Beep(1000,100);
  106. Sleep(500);
  107. break;
  108. case 'j':
  109. cout << " .___ |";
  110. Beep(1000,100);
  111. Sleep(200);
  112. Beep(1000,500);
  113. Sleep(200);
  114. Beep(1000,500);
  115. Sleep(200);
  116. Beep(1000,500);
  117. Sleep(500);
  118. break;
  119. case 'k':
  120. cout << " _._ |";
  121. Beep(1000,500);
  122. Sleep(200);
  123. Beep(1000,100);
  124. Sleep(200);
  125. Beep(1000,500);
  126. Sleep(500);
  127. break;
  128. case 'l':
  129. cout << " ._.. |";
  130. Beep(1000,100);
  131. Sleep(200);
  132. Beep(1000,500);
  133. Sleep(200);
  134. Beep(1000,100);
  135. Sleep(200);
  136. Beep(1000,100);
  137. Sleep(500);
  138. break;
  139. case 'm':
  140. cout << " __ |";
  141. Beep(1000,500);
  142. Sleep(200);
  143. Beep(1000,500);
  144. Sleep(500);
  145. break;
  146. case 'n':
  147. cout << " _. |";
  148. Beep(1000,500);
  149. Sleep(200);
  150. Beep(1000,100);
  151. Sleep(500);
  152. break;
  153. case 'o':
  154. cout << " ___ | ";
  155. Beep(1000,500);
  156. Sleep(200);
  157. Beep(1000,500);
  158. Sleep(200);
  159. Beep(1000,500);
  160. Sleep(500);
  161. break;
  162. case 'p':
  163. cout << " .__. |";
  164. Beep(1000,100);
  165. Sleep(200);
  166. Beep(1000,500);
  167. Sleep(200);
  168. Beep(1000,500);
  169. Sleep(200);
  170. Beep(1000,100);
  171. Sleep(500);
  172. break;
  173. case 'q':
  174. cout << " __._ |";
  175. Beep(1000,500);
  176. Sleep(200);
  177. Beep(1000,500);
  178. Sleep(200);
  179. Beep(1000,100);
  180. Sleep(200);
  181. Beep(1000,500);
  182. Sleep(500);
  183. break;
  184. case 'r':
  185. cout << " ._. |";
  186. Beep(1000,100);
  187. Sleep(200);
  188. Beep(1000,500);
  189. Sleep(200);
  190. Beep(1000,100)



FunkyChicken 08:58 - 8:e Juli 2009 | Post #2
Nyhetsredaktör
Inlägg: 800


Skicka PM
Kul idé!
Du kan snygga upp koden lite genom att spara morsekoderna i en snyggare struktur. En dictionary vore det bästa, som mappar varje kod till varje bokstav, men det duger med en vanlig array där du har bokstaven som index och så sparar du morsekoden som tex en sträng med "1" för lång och "0" för kort så att b blir "0111" (det snyggaste vore att bara ha ett byte där varje bit representerar lång eller kort, men det är överkurs, dessutom får du hita på ett sätt att hålla reda på hur många bitar som ska användas, det varierar ju från bokstav till bokstav). Sen loopar du genom den strängen och piper långt för "1" och kort för "0" tills strängen är slut. Bara för att komma ifrån den låååånga switch-satsen alltså.




jla 11:04 - 8:e Juli 2009 | Post #3
Medlem
Inlägg: 18


Skicka PM
Tack, e lite nybörjare så tänkte inte på att använda en array, men vet du hur jag ska lösa problemet?




jla 12:57 - 8:e Juli 2009 | Post #4
Medlem
Inlägg: 18


Skicka PM
OJ!

Såg inte att hela koden inte syntes...

här är hela:

  1. #include <iostream>
  2. #include <fstream>
  3. #include <ctime>
  4. #include <conio.h>
  5. #include <windows.h>
  6. #include <winable.h>
  7.  
  8. using namespace std;
  9.  
  10. int main()
  11. {
  12.  
  13. char morse[5000];
  14. int i = 0;
  15. char cDoAgain;
  16. do
  17. {
  18. system("CLS");
  19. cout << "V\204lkommen till morseomvandlaren!\1" << endl << endl
  20. << "Vad vill du h\224ra p\206 morse? ";
  21. cin >> morse;
  22. cin.ignore();
  23. while(i < 5000)
  24. {
  25. switch(morse[i])
  26. {
  27. case 'a':
  28. cout << " ._ |";
  29. Beep(1000,100);
  30. Sleep(200);
  31. Beep(1000,500);
  32. Sleep(500);
  33. break;
  34. case 'b':
  35. cout << " _... |";
  36. Beep(1000,500);
  37. Sleep(200);
  38. Beep(1000,100);
  39. Sleep(200);
  40. Beep(1000,100);
  41. Sleep(200);
  42. Beep(1000,100);
  43. Sleep(500);
  44. break;
  45. case 'c':
  46. cout << " _._. |";
  47. Beep(1000,500);
  48. Sleep(200);
  49. Beep(1000,100);
  50. Sleep(200);
  51. Beep(1000,500);
  52. Sleep(200);
  53. Beep(1000,100);
  54. Sleep(500);
  55. break;
  56. case 'd':
  57. cout << " _.. |";
  58. Beep(1000,500);
  59. Sleep(200);
  60. Beep(1000,100);
  61. Sleep(200);
  62. Beep(1000,100);
  63. Sleep(500);
  64. break;
  65. case 'e':
  66. cout << " . |";
  67. Beep(1000,100);
  68. Sleep(500);
  69. break;
  70. case 'f':
  71. cout << " .._. |";
  72. Beep(1000,100);
  73. Sleep(200);
  74. Beep(1000,100);
  75. Sleep(200);
  76. Beep(1000,500);
  77. Sleep(200);
  78. Beep(1000,100);
  79. Sleep(500);
  80. break;
  81. case 'g':
  82. cout << " __. |";
  83. Beep(1000,500);
  84. Sleep(200);
  85. Beep(1000,500);
  86. Sleep(200);
  87. Beep(1000,100);
  88. Sleep(500);
  89. break;
  90. case 'h':
  91. cout << " .... |";
  92. Beep(1000,100);
  93. Sleep(200);
  94. Beep(1000,100);
  95. Sleep(200);
  96. Beep(1000,100);
  97. Sleep(200);
  98. Beep(1000,100);
  99. Sleep(500);
  100. break;
  101. case 'i':
  102. cout << " .. |";
  103. Beep(1000,100);
  104. Sleep(200);
  105. Beep(1000,100);
  106. Sleep(500);
  107. break;
  108. case 'j':
  109. cout << " .___ |";
  110. Beep(1000,100);
  111. Sleep(200);
  112. Beep(1000,500);
  113. Sleep(200);
  114. Beep(1000,500);
  115. Sleep(200);
  116. Beep(1000,500);
  117. Sleep(500);
  118. break;
  119. case 'k':
  120. cout << " _._ |";
  121. Beep(1000,500);
  122. Sleep(200);
  123. Beep(1000,100);
  124. Sleep(200);
  125. Beep(1000,500);
  126. Sleep(500);
  127. break;
  128. case 'l':
  129. cout << " ._.. |";
  130. Beep(1000,100);
  131. Sleep(200);
  132. Beep(1000,500);
  133. Sleep(200);
  134. Beep(1000,100);
  135. Sleep(200);
  136. Beep(1000,100);
  137. Sleep(500);
  138. break;
  139. case 'm':
  140. cout << " __ |";
  141. Beep(1000,500);
  142. Sleep(200);
  143. Beep(1000,500);
  144. Sleep(500);
  145. break;
  146. case 'n':
  147. cout << " _. |";
  148. Beep(1000,500);
  149. Sleep(200);
  150. Beep(1000,100);
  151. Sleep(500);
  152. break;
  153. case 'o':
  154. cout << " ___ | ";
  155. Beep(1000,500);
  156. Sleep(200);
  157. Beep(1000,500);
  158. Sleep(200);
  159. Beep(1000,500);
  160. Sleep(500);
  161. break;
  162. case 'p':
  163. cout << " .__. |";
  164. Beep(1000,100);
  165. Sleep(200);
  166. Beep(1000,500);
  167. Sleep(200);
  168. Beep(1000,500);
  169. Sleep(200);
  170. Beep(1000,100);
  171. Sleep(500);
  172. break;
  173. case 'q':
  174. cout << " __._ |";
  175. Beep(1000,500);
  176. Sleep(200);
  177. Beep(1000,500);
  178. Sleep(200);
  179. Beep(1000,100);
  180. Sleep(200);
  181. Beep(1000,500);
  182. Sleep(500);
  183. break;
  184. case 'r':
  185. cout << " ._. |";
  186. Beep(1000,100);
  187. Sleep(200);
  188. Beep(1000,500);
  189. Sleep(200);





achnorr 14:57 - 8:e Juli 2009 | Post #5
Medlem
Inlägg: 82


Skicka PM
är det bara i min webläsare, eller är inläggen cpbuggade ?

-------------------------
Ohhoo*



Vitdom 16:32 - 8:e Juli 2009 | Post #6
Medlem
Inlägg: 71


Skicka PM
Typ alla trådar på denna sida som har CODE-BBkoden verkar buggade.

-------------------------





jla 17:04 - 8:e Juli 2009 | Post #7
Medlem
Inlägg: 18


Skicka PM
Fick det att funka, men FunkyChicken menar du att jag ska skapa en array per bokstav eller en char med alla bokstäver???




FunkyChicken 12:30 - 9:e Juli 2009 | Post #8
Nyhetsredaktör
Inlägg: 800


Skicka PM
Typ såhär då:
http://pastebin.com/f7b6f9a22

Orkade inte skriva ut hela arrayen, du får fylla på själv, men jag hoppas du fattar tanken.

Sen måste du ha med

#include <string>

också.




jla 12:50 - 9:e Juli 2009 | Post #9
Medlem
Inlägg: 18


Skicka PM
OK, tack.




Sidor: 1

Forum huvudsida -> Programmering -> Morse!
Atom feed

Du får inte posta i den här tråden | Till toppen