A
ALDon
Вводится код Морзе,нужно декодировать этот код на английские буквы.Посмотрел на Азбуку Морзе с Википедии.
[post="0"]http://en.wikipedia.org/wiki/Morse_code[/post]
Есть один пробел между каждым Морза-закодированными буквами и три пробела между каждым Морза-закодированным словом.Например:
МЫ вводим
-.. . -.-. --- -.. . .- --.. -... ..- -.- .- -- --- .-. --.. .
Выводится:
DECODE AZBUKA MORZE
Я пробовал сам решить эту задачу,но не получилось,если не трудно не надо писать код сначала,а продолжите мой код(т.е помогите исправить ошибки в моем коду)
Вот код написал
[post="0"]http://en.wikipedia.org/wiki/Morse_code[/post]
Есть один пробел между каждым Морза-закодированными буквами и три пробела между каждым Морза-закодированным словом.Например:
МЫ вводим
-.. . -.-. --- -.. . .- --.. -... ..- -.- .- -- --- .-. --.. .
Выводится:
DECODE AZBUKA MORZE
Я пробовал сам решить эту задачу,но не получилось,если не трудно не надо писать код сначала,а продолжите мой код(т.е помогите исправить ошибки в моем коду)
Вот код написал
C++:
#include <iostream>
#include <string>
using namespace std;
int main(){
string mas;
getline(cin,mas);
int i=0;
for(int i=0;i<mas.size();i++){
if(mas[i]=='.')
cout<<"E";
if(mas[i]=='-'){
if( mas[i+1]=='.'){
cout<<"N";
i++;}}
if(mas[i]=='-'){
if(mas[i+1]=='-') {
cout<<"M";
i++;}}
if(mas[i]=='-'){
if(mas[i+1]=='.') {
if(mas[i+2]=='.'){
cout<<"D";
i+2;}}}
if(mas[i]=='-'){
if(mas[i+1]=='-') {
if(mas[i+2]=='-'){
cout<<"O";
i+2;}}}
if(mas[i]=='-'){
if(mas[i+1]=='.') {
if(mas[i+2]=='.'){
if(mas[i+3]=='.'){
cout<<"B";
i+3;}}}}
if(mas[i]=='-'){
if(mas[i+1]=='.') {
if(mas[i+2]=='-'){
if(mas[i+3]=='.'){
cout<<"C";
i+3;}}}}
if(mas[i]=='-'){
if(mas[i+1]=='-') {
if(mas[i+2]=='.'){
if(mas[i+3]=='-'){
cout<<"Q";
i+3;}}}}
if(mas[i]=='-'){
if(mas[i+1]=='.') {
if(mas[i+2]=='.'){
if(mas[i+3]=='-'){
cout<<"X";
i+3;}}}}
if(mas[i]=='-'){
if(mas[i+1]=='.') {
if(mas[i+2]=='-'){
if(mas[i+3]=='-'){
cout<<"Y";
i+3;}}}}
if(mas[i]=='-'){
if(mas[i+1]=='-') {
if(mas[i+2]=='.'){
if(mas[i+3]=='.'){
cout<<"Z";
i+3;}}}}
if(mas[i]=='-'){
if(mas[i+1]=='.') {
if(mas[i+2]=='.'){
if(mas[i+3]=='.'){
if(mas[i+4]=='.'){
cout<<"6";
i+4;}}}}}
if(mas[i]=='-'){
if(mas[i+1]=='-') {
if(mas[i+2]=='.'){
if(mas[i+3]=='.'){
if(mas[i+4]=='.'){
cout<<"7";
i+4;}}}}}
if(mas[i]=='-'){
if(mas[i+1]=='-') {
if(mas[i+2]=='-'){
if(mas[i+3]=='.'){
if(mas[i+4]=='.'){
cout<<"8";
i+4;}}}}}
if(mas[i]=='-'){
if(mas[i+1]=='-') {
if(mas[i+2]=='-'){
if(mas[i+3]=='-'){
if(mas[i+4]=='.'){
cout<<"9";
i+4;}}}}}
//for(int i=0;i<mas.size();i++){
if(mas[i]=='-')
cout<<"T";
if(mas[i]=='.'){
if( mas[i+1]=='-'){
cout<<"A";
i++;}}
if(mas[i]=='.'){
if(mas[i+1]=='.') {
cout<<"I";
i++;}}
if(mas[i]=='.'){
if(mas[i+1]=='-') {
if(mas[i+2]=='.'){
cout<<"R";
i+2;}}}
if(mas[i]=='.'){
if(mas[i+1]=='.') {
if(mas[i+2]=='.'){
cout<<"S";
i+2;}}}
if(mas[i]=='.'){
if(mas[i+1]=='.') {
if(mas[i+2]=='-'){
cout<<"U";
i+2;}}}
if(mas[i]=='.'){
if(mas[i+1]=='.') {
if(mas[i+2]=='-'){
if(mas[i+3]=='.'){
cout<<"F";
i+3;}}}}
if(mas[i]=='.'){
if(mas[i+1]=='-') {
if(mas[i+2]=='-'){
if(mas[i+3]=='-'){
cout<<"J";
i+3;}}}}
if(mas[i]=='.'){
if(mas[i+1]=='-') {
if(mas[i+2]=='.'){
if(mas[i+3]=='.'){
cout<<"L";
i+3;}}}}
if(mas[i]=='.'){
if(mas[i+1]=='-') {
if(mas[i+2]=='-'){
if(mas[i+3]=='.'){
cout<<"P";
i+3;}}}}
if(mas[i]=='.'){
if(mas[i+1]=='.') {
if(mas[i+2]=='.'){
if(mas[i+3]=='-'){
cout<<"V";
i+3;}}}}
if(mas[i]=='.'){
if(mas[i+1]=='-') {
if(mas[i+2]=='-'){
if(mas[i+3]=='-'){
if(mas[i+4]=='-'){
cout<<"1";
i+4;}}}}}
if(mas[i]=='.'){
if(mas[i+1]=='.') {
if(mas[i+2]=='-'){
if(mas[i+3]=='-'){
if(mas[i+4]=='-'){
cout<<"2";
i+4;}}}}}
if(mas[i]=='.'){
if(mas[i+1]=='.') {
if(mas[i+2]=='.'){
if(mas[i+3]=='-'){
if(mas[i+4]=='-'){
cout<<"3";
i+4;}}}}}
if(mas[i]=='.'){
if(mas[i+1]=='.') {
if(mas[i+2]=='.'){
if(mas[i+3]=='.'){
if(mas[i+4]=='-'){
cout<<"4";
i+4;}}}}}
if(mas[i]=='.'){
if(mas[i+1]=='.') {
if(mas[i+2]=='.'){
if(mas[i+3]=='.'){
if(mas[i+4]=='.'){
cout<<"5";
i+4;}}}}}
}
cout<<"\n";
return 0;
}