Witam, będe pisac na zaliczenie alfabet morse'a z obsługą dzwieku itp.
ale same znaki ze A odpowiada np ._. to za pomoca czego zrobic;>
bo ostatnio mielismy, stos, liste, drzewo za pomoca czegos z tych zrobic czy czyms innym ;>
Alfabet Morse'a w C++
-
- Użytkownik
- Posty: 735
- Rejestracja: 7 lis 2005, o 23:56
- Płeć: Mężczyzna
- Lokalizacja: Łódź
- Podziękował: 2 razy
- Pomógł: 133 razy
Alfabet Morse'a w C++
Za pomocą zwykłych stringów. Kod mniej więcej będzie wyglądał tak:
przy czym morse jest funkcją zdefiniowaną mniej więcej tak:
Potem tak utworzony tekst trzeba będzie odegrać (w winapi jest funkcja beep(), która pozwala włączyć głośnik systemowy na odpowiedni czas. Jeśli będzie kropka to włączysz np. na 0.5s a jak kreska to na 1s)
Kod: Zaznacz cały
// wczytanie tekstu
string tekst;
cin >> tekst;
// zamiana kazdego znaczka
string wynik;
for(int i = 0; i < tekst.lenght(); i++)
wynik += morse(tekst[i]);
Kod: Zaznacz cały
string morse(char l)
{
switch(l)
{
case 'a': case 'A':
return "._.";
// tutaj kody wszystkich literek
}
}
Alfabet Morse'a w C++
nie, ja to zrobie z plikami mp3, ale dzieki spider za pomysl z stringiem
-- 4 czerwca 2009, 17:59 --
no tak mam kawałek kodu już i niby teraz przy wprowadzaniu słow powinno je kompilować na Morse'a a błąd wywala ...
-- 4 czerwca 2009, 17:59 --
Kod: Zaznacz cały
#include <iostream>
#include <conio.h>
#include <cstdlib>
using namespace std;
string morse(char menu);
int main()
{
string tekst;
string wynik;
cout << "Witam, prosze wprowadzic jakies slowo aby je przetlumaczyc na alfabet morse'a";
cin >> tekst;
for(int i = 0; i < tekst.lenght(); i++)
wynik += morse(tekst[i]);
string morse(char menu);
system("pause");
return 0;
}
string morse(char menu)
{
switch(menu)
{
case 'a': case 'A':
return "._";
case 'b': case 'B':
return "_...";
case 'c': case 'C':
return "_._.";
case 'd': case 'D':
return "_..";
case 'e': case 'E':
return ".";
case 'f': case'F':
return ".._.";
case 'g': case'G':
return"__.";
case 'h': case'H':
return"....";
case 'i': case'I':
return"..";
case 'j': case'J':
return".___";
case 'k': case'K':
return"_._";
case 'l': case'L':
return"._..";
case 'm': case'M':
return"__";
case 'n': case'N':
return"_.";
case 'o': case'O':
return"___";
case 'p': case'P':
return".__.";
case 'q': case'Q':
return"__._";
case 'r': case'R':
return"._.";
case 's': case'S':
return"...";
case 't': case'T':
return"_";
case 'u': case'U':
return".._";
case 'v': case'V':
return"..._";
case 'w': case'W':
return".__";
case 'x': case'X':
return"_.._";
case 'y': case'Y':
return"_.__";
case 'z': case'Z':
return"__..";
case '1':
return".____";
case '2':
return"..___";
case '3':
return"...__";
case '4':
return"...._";
case '5':
return".....";
case '6':
return"_....";
case '7':
return"__...";
case '8':
return"___..";
case '9':
return"____.";
case '0':
return"_____";
}
}
while trying to match the argument list '(std::istream, std::string)'
.\Alfabet Morse'a.cpp(15) : error C2039: 'lenght' : is not a member of 'std::basic_string<_Elem,_Traits,_Ax>'
with
[
_Elem=char,
_Traits=std::char_traits<char>,
_Ax=std::allocator<char>
]
Build log was saved at "file://c:\Documents and Settings\Sony Ericsson\Moje dokumenty\Visual Studio 2008\Projects\Alfabet Morse'a\Alfabet Morse'a\Debug\BuildLog.htm"
Alfabet Morse'a - 2 error(s), 0 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
- Szemek
- Użytkownik
- Posty: 4819
- Rejestracja: 10 paź 2006, o 23:03
- Płeć: Mężczyzna
- Lokalizacja: Gdańsk
- Podziękował: 43 razy
- Pomógł: 1407 razy
Alfabet Morse'a w C++
macieja92, polecam wykorzystywać możliwości narzędzia jakim jest Visual Studio 2008
dołącz plik nagłówkowy
#include <string>
zbuduj projekt i korzystaj z podpowiedzi IntelliSense
dołącz plik nagłówkowy
#include <string>
zbuduj projekt i korzystaj z podpowiedzi IntelliSense
Alfabet Morse'a w C++
no właśnie używałem visuala, na chwile do deva wsiadlem sprawdzic bledy
ale nie wiem czemu proram po skompilowaniu wprowadzam tekst, i nie wyswietla go jako morse'a
-- 4 czerwca 2009, 22:30 --
zapomnialem o cout << wynik;
-- 4 czerwca 2009, 23:19 --
przerobiłem tak żeby było z casem bo będzie jeszcze tryb dzwiekowy lecz wszystko jest dobrze zrobione, wciskam 1 aby do case 1 wejsc a w nim jest funkcja. Ale wywala ze koniec programu
ale nie wiem czemu proram po skompilowaniu wprowadzam tekst, i nie wyswietla go jako morse'a
-- 4 czerwca 2009, 22:30 --
zapomnialem o cout << wynik;
-- 4 czerwca 2009, 23:19 --
przerobiłem tak żeby było z casem bo będzie jeszcze tryb dzwiekowy lecz wszystko jest dobrze zrobione, wciskam 1 aby do case 1 wejsc a w nim jest funkcja. Ale wywala ze koniec programu
Kod: Zaznacz cały
#include <iostream>
#include <conio.h>
#include <cstdlib>
#include <string>
using namespace std;
void glownydomorse(string tekst, string wynik);
string morse(char menu);
int main()
{
int menu1;
cout << "Witam w programie, jest to zaawansowany technicznie alfabet Morse'a, alfabet \nMorse'a moze byc odtworzony jako dzwiek, lub jako znaki interpunkcyjne " <<
"\nodpowiadajace oznaczeniom w alfabecie.\n" << "\nJesli wciszniejsz 1, program przeniesie cie do znakowej konwersji jezyka \ndo alfabetu Morse'a." <<
"\n\nJesli wcisniesz 2, program przeniesie cie do dzwiekowej konwersji jezyka \ndo alfabetu Morse'a.";
cin >> menu1;
switch(menu1)
{
case 1:
void glownydomorse(string tekst, string wynik);
break;
case 2:
break;
}
system("pause");
return 0;
}
string morse(char menu)
{
switch(menu)
{
case 'a': case 'A':
return "._ ";
case 'b': case 'B':
return "_... ";
case 'c': case 'C':
return "_._. ";
case 'd': case 'D':
return "_.. ";
case 'e': case 'E':
return ". ";
case 'f': case'F':
return ".._. ";
case 'g': case'G':
return"__. ";
case 'h': case'H':
return".... ";
case 'i': case'I':
return".. ";
case 'j': case'J':
return".___ ";
case 'k': case'K':
return"_._ ";
case 'l': case'L':
return"._.. ";
case 'm': case'M':
return"__ ";
case 'n': case'N':
return"_. ";
case 'o': case'O':
return"___ ";
case 'p': case'P':
return".__. ";
case 'q': case'Q':
return"__._ ";
case 'r': case'R':
return"._. ";
case 's': case'S':
return"... ";
case 't': case'T':
return"_ ";
case 'u': case'U':
return".._ ";
case 'v': case'V':
return"..._ ";
case 'w': case'W':
return".__ ";
case 'x': case'X':
return"_.._ ";
case 'y': case'Y':
return"_.__ ";
case 'z': case'Z':
return"__.. ";
case '1':
return".____ ";
case '2':
return"..___ ";
case '3':
return"...__ ";
case '4':
return"...._ ";
case '5':
return"..... ";
case '6':
return"_.... ";
case '7':
return"__... ";
case '8':
return"___.. ";
case '9':
return"____. ";
case '0':
return"_____ ";
}
}
void glownydomorse(string tekst, string wynik)
{
cout << "Witam, prosze wprowadzic jakies slowo aby je przetlumaczyc na alfabet morse'a :\n";
cin >> tekst;
string morse(char menu);
for(int i = 0; i < tekst.length(); i++)
wynik += morse(tekst[i]);
cout << wynik;
}