5 Replies - 317 Views - Last Post: 20 January 2010 - 04:00 AM

#1 athlon32   User is offline

  • D.I.C Regular
  • member icon

Reputation: 117
  • View blog
  • Posts: 363
  • Joined: 20-August 08

Morse Code

Posted 09 January 2010 - 06:29 PM

Description: Everything should work, just compile :DTakes a string and will translate it will produce morse code. This just makes beeps, but it would be easy to convert it to produce text as well :D

Sidenote: I'm confident I got the (morse)code right, but let me know if you spot an error.
#include <windows.h>
#include <string>
#include <algorithm>

typedef std::string::iterator siter;

using std::string;

void MorseCode(string transmission);  // prototype
void LongBeep() { Beep(700, 500); Sleep(100); }
void ShortBeep() { Beep(750, 100); Sleep(100); }

int main() {
	string letters = "Hello World!";
	MorseCode(letters);

	return 0;
}

void MorseCode(string transmission) {
	std::transform(transmission.begin(), transmission.end(), transmission.begin(), ::tolower);

	for(siter x = transmission.begin(); x != transmission.end(); x++) {
		char ch = (*x);

		switch(ch) {
			case 'a':
				ShortBeep();
				LongBeep();
				break;
			
			case 'b':
				LongBeep();
				ShortBeep();
				ShortBeep();
				ShortBeep();
				break;
			
			case 'c':
				LongBeep();
				ShortBeep();
				LongBeep();
				ShortBeep();
				break;

			case 'd':
				LongBeep();
				ShortBeep();
				ShortBeep();
				break;

			case 'e':
				ShortBeep();

			case 'f':
				ShortBeep();
				ShortBeep();
				LongBeep();
				ShortBeep();
				break;
			
			case 'g':
				LongBeep();
				LongBeep();
				ShortBeep();
				break;

			case 'h':
				ShortBeep();
				ShortBeep();
				ShortBeep();
				ShortBeep();
				break;

			case 'i':
				ShortBeep();
				ShortBeep();
				break;

			case 'j':
				ShortBeep();
				LongBeep();
				LongBeep();
				LongBeep();
				break;
			
			case 'k':
				LongBeep();
				ShortBeep();
				LongBeep();
				break;

			case 'l':
				ShortBeep();
				LongBeep();
				ShortBeep();
				ShortBeep();
				break;

			case 'm':
				LongBeep();
				LongBeep();
			
			case 'n':
				LongBeep();
				ShortBeep();
				break;
			
			case 'o':
				LongBeep();
				LongBeep();
				LongBeep();

			case 'p':
				ShortBeep();
				LongBeep();
				LongBeep();
				ShortBeep();
				break;

			case 'q':
				LongBeep();
				LongBeep();
				ShortBeep();
				LongBeep();
				break;

			case 'r':
				ShortBeep();
				LongBeep();
				ShortBeep();
				break;

			case 's':
				ShortBeep();
				ShortBeep();
				ShortBeep();
				break;

			case 't':
				LongBeep();
				break;

			case 'u':
				ShortBeep();
				ShortBeep();
				LongBeep();
				break;

			case 'v':
				ShortBeep();
				ShortBeep();
				ShortBeep();
				LongBeep();
				break;

			case 'w':
				ShortBeep();
				LongBeep();
				LongBeep();
				break;

			case 'x':
				LongBeep();
				ShortBeep();
				ShortBeep();
				LongBeep();

			case 'y':
				LongBeep();
				ShortBeep();
				LongBeep();
				LongBeep();
				break;

			case 'z':
				LongBeep();
				LongBeep();
				ShortBeep();
				ShortBeep();
			default:
				break;
		}
		Sleep(500);
	}
}


Is This A Good Question/Topic? 0
  • +

Replies To: Morse Code

#2 athlon32   User is offline

  • D.I.C Regular
  • member icon

Reputation: 117
  • View blog
  • Posts: 363
  • Joined: 20-August 08

Re: Morse Code

Posted 09 January 2010 - 06:29 PM

Description: Everything should work, just compile :DTakes a string and will translate it, and will produce morse code. This just makes beeps, but it would be easy to convert it to produce text as well :D

Sidenote: I'm confident I got the (morse)code right, but let me know if you spot an error.
#include <windows.h>
#include <string>
#include <algorithm>

typedef std::string::iterator siter;

using std::string;

void MorseCode(string transmission);  // prototype
void LongBeep() { Beep(700, 500); Sleep(100); }
void ShortBeep() { Beep(750, 100); Sleep(100); }

int main() {
	string letters = "Hello World!";
	MorseCode(letters);

	return 0;
}

void MorseCode(string transmission) {
	std::transform(transmission.begin(), transmission.end(), transmission.begin(), ::tolower);

	for(siter x = transmission.begin(); x != transmission.end(); x++) {
		char ch = (*x);

		switch(ch) {
			case 'a':
				ShortBeep();
				LongBeep();
				break;
			
			case 'b':
				LongBeep();
				ShortBeep();
				ShortBeep();
				ShortBeep();
				break;
			
			case 'c':
				LongBeep();
				ShortBeep();
				LongBeep();
				ShortBeep();
				break;

			case 'd':
				LongBeep();
				ShortBeep();
				ShortBeep();
				break;

			case 'e':
				ShortBeep();

			case 'f':
				ShortBeep();
				ShortBeep();
				LongBeep();
				ShortBeep();
				break;
			
			case 'g':
				LongBeep();
				LongBeep();
				ShortBeep();
				break;

			case 'h':
				ShortBeep();
				ShortBeep();
				ShortBeep();
				ShortBeep();
				break;

			case 'i':
				ShortBeep();
				ShortBeep();
				break;

			case 'j':
				ShortBeep();
				LongBeep();
				LongBeep();
				LongBeep();
				break;
			
			case 'k':
				LongBeep();
				ShortBeep();
				LongBeep();
				break;

			case 'l':
				ShortBeep();
				LongBeep();
				ShortBeep();
				ShortBeep();
				break;

			case 'm':
				LongBeep();
				LongBeep();
			
			case 'n':
				LongBeep();
				ShortBeep();
				break;
			
			case 'o':
				LongBeep();
				LongBeep();
				LongBeep();

			case 'p':
				ShortBeep();
				LongBeep();
				LongBeep();
				ShortBeep();
				break;

			case 'q':
				LongBeep();
				LongBeep();
				ShortBeep();
				LongBeep();
				break;

			case 'r':
				ShortBeep();
				LongBeep();
				ShortBeep();
				break;

			case 's':
				ShortBeep();
				ShortBeep();
				ShortBeep();
				break;

			case 't':
				LongBeep();
				break;

			case 'u':
				ShortBeep();
				ShortBeep();
				LongBeep();
				break;

			case 'v':
				ShortBeep();
				ShortBeep();
				ShortBeep();
				LongBeep();
				break;

			case 'w':
				ShortBeep();
				LongBeep();
				LongBeep();
				break;

			case 'x':
				LongBeep();
				ShortBeep();
				ShortBeep();
				LongBeep();

			case 'y':
				LongBeep();
				ShortBeep();
				LongBeep();
				LongBeep();
				break;

			case 'z':
				LongBeep();
				LongBeep();
				ShortBeep();
				ShortBeep();
			default:
				break;
		}
		Sleep(500);
	}
}

Was This Post Helpful? 0
  • +
  • -

#3 athlon32   User is offline

  • D.I.C Regular
  • member icon

Reputation: 117
  • View blog
  • Posts: 363
  • Joined: 20-August 08

Re: Morse Code

Posted 09 January 2010 - 06:29 PM

Description: Everything should work, just compile :DTakes a string and will translate it, and will produce morse code. This just makes beeps, but it would be easy to convert it to produce text as well :D

Sidenote: I'm confident I got the (morse)code right, but let me know if you spot an error.
#include <windows.h>
#include <string>
#include <algorithm>

typedef std::string::iterator siter;

using std::string;

void MorseCode(string transmission);  // prototype
void LongBeep() { Beep(700, 500); Sleep(100); }
void ShortBeep() { Beep(750, 100); Sleep(100); }

int main() {
	string letters = "Hello World!";
	MorseCode(letters);

	return 0;
}

void MorseCode(string transmission) {
	std::transform(transmission.begin(), transmission.end(), transmission.begin(), ::tolower);

	for(siter x = transmission.begin(); x != transmission.end(); x++) {
		char ch = (*x);

		switch(ch) {
			case 'a':
				ShortBeep();
				LongBeep();
				break;
			
			case 'b':
				LongBeep();
				ShortBeep();
				ShortBeep();
				ShortBeep();
				break;
			
			case 'c':
				LongBeep();
				ShortBeep();
				LongBeep();
				ShortBeep();
				break;

			case 'd':
				LongBeep();
				ShortBeep();
				ShortBeep();
				break;

			case 'e':
				ShortBeep();
                                break;

			case 'f':
				ShortBeep();
				ShortBeep();
				LongBeep();
				ShortBeep();
				break;
			
			case 'g':
				LongBeep();
				LongBeep();
				ShortBeep();
				break;

			case 'h':
				ShortBeep();
				ShortBeep();
				ShortBeep();
				ShortBeep();
				break;

			case 'i':
				ShortBeep();
				ShortBeep();
				break;

			case 'j':
				ShortBeep();
				LongBeep();
				LongBeep();
				LongBeep();
				break;
			
			case 'k':
				LongBeep();
				ShortBeep();
				LongBeep();
				break;

			case 'l':
				ShortBeep();
				LongBeep();
				ShortBeep();
				ShortBeep();
				break;

			case 'm':
				LongBeep();
				LongBeep();
			        break;
			case 'n':
				LongBeep();
				ShortBeep();
				break;
			
			case 'o':
				LongBeep();
				LongBeep();
				LongBeep();
                                break;

			case 'p':
				ShortBeep();
				LongBeep();
				LongBeep();
				ShortBeep();
				break;

			case 'q':
				LongBeep();
				LongBeep();
				ShortBeep();
				LongBeep();
				break;

			case 'r':
				ShortBeep();
				LongBeep();
				ShortBeep();
				break;

			case 's':
				ShortBeep();
				ShortBeep();
				ShortBeep();
				break;

			case 't':
				LongBeep();
				break;

			case 'u':
				ShortBeep();
				ShortBeep();
				LongBeep();
				break;

			case 'v':
				ShortBeep();
				ShortBeep();
				ShortBeep();
				LongBeep();
				break;

			case 'w':
				ShortBeep();
				LongBeep();
				LongBeep();
				break;

			case 'x':
				LongBeep();
				ShortBeep();
				ShortBeep();
				LongBeep();
                                break;
			case 'y':
				LongBeep();
				ShortBeep();
				LongBeep();
				LongBeep();
				break;

			case 'z':
				LongBeep();
				LongBeep();
				ShortBeep();
				ShortBeep();
                                break;
			default:
				break;
		}
		Sleep(500);
	}
}

Was This Post Helpful? 0
  • +
  • -

#4 sonicpp   User is offline

  • D.I.C Head

Reputation: 19
  • View blog
  • Posts: 58
  • Joined: 08-January 10

Re: Morse Code

Posted 17 January 2010 - 05:34 PM

You're missing some breaks in the long switch statement... I noticed "e" and "o" were missing breaks.
Was This Post Helpful? 0
  • +
  • -

#5 athlon32   User is offline

  • D.I.C Regular
  • member icon

Reputation: 117
  • View blog
  • Posts: 363
  • Joined: 20-August 08

Re: Morse Code

Posted 17 January 2010 - 07:19 PM

fixed :D
Was This Post Helpful? 0
  • +
  • -

#6 sonicpp   User is offline

  • D.I.C Head

Reputation: 19
  • View blog
  • Posts: 58
  • Joined: 08-January 10

Re: Morse Code

Posted 18 January 2010 - 06:18 PM

I tried to submit a snippet but it did not show up. Do they screen them before posting? BTW: The breaks still seem to be missing. case 'o' has 3 long beeps and then falls into 'p'... no break;
Was This Post Helpful? 0
  • +
  • -

#7 athlon32   User is offline

  • D.I.C Regular
  • member icon

Reputation: 117
  • View blog
  • Posts: 363
  • Joined: 20-August 08

Re: Morse Code

Posted 18 January 2010 - 08:06 PM

Yes, all snippets need moderator approval :) It's already fixed, but I needs approval. It may take a while to showup. Try clearing your cache :D
Was This Post Helpful? 0
  • +
  • -

#8 sonicpp   User is offline

  • D.I.C Head

Reputation: 19
  • View blog
  • Posts: 58
  • Joined: 08-January 10

Re: Morse Code

Posted 20 January 2010 - 04:00 AM

Finally the changes are there... nice job athlon32... BTW: I ran this with "SOS" in a loop then walked away from my desk. It was soooooo funny.
Was This Post Helpful? 0
  • +
  • -

Page 1 of 1