Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
777Nike777
0 / 0 / 0
Регистрация: 03.10.2012
Сообщений: 12
#1

Морзянка - C++

03.10.2012, 19:57. Просмотров 772. Ответов 10
Метки нет (Все метки)

Ребят, помогите пожалуйста! нужно в borland c++ написать программу чтобы вводимый текст переводился в последовательность точек и тире с помощью азбуки Морзе. Я вроде написал код, но что то тут не так.....
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
#include <iostream.h>
main()
{
int i;
char k[100];
cout<<"Vvedite slovo \n";
cin>>k;
for (i=0; i<100; i++)
{
switch(k[i])
{
                        case'a': cout<<".\a-\a "; break;
                        case'b': cout<<"-\a.\a.\a.\a "; break;
                        case'w': cout<<".--\a "; break;
                        case'g': cout<<"-\a-\a.\a "; break;
                        case'd': cout<<"-\a.\a.\a "; break;
                        case'e': cout<<".\a" ; break;
                        case'v': cout<<".\a.\a.\a-\a "; break;
                        case'z': cout<<"-\a-\a.\a.\a "; break;
                        case'i': cout<<".\a.\a "; break;
                        case'k': cout<<"-\a.\a-\a "; break;
                        case'l': cout<<".\a-\a.\a.\a "; break;
                        case'm': cout<<"-\a-\a "; break;
                        case'n': cout<<"-\a.\a "; break;
                        case'o': cout<<"-\a-\a-\a "; break;
                        case'p': {cout<<".\a-\a-\a.\a "; break;
                        case'r': cout<<".\a-\a.\a "; break;
                        case's': cout<<".\a.\a.\a "; break;
                        case't': cout<<"-\a "; break;
                        case'u': cout<<".\a.\a-\a "; break;
                        case'f': cout<<".\a.\a-\a.\a "; break;
                        case'h': cout<<".\a.\a.\a.\a "; break;
                        case'c': cout<<"-\a.\a-\a.\a "; break;
                        case'q': cout<<"-\a-\a.\a-\a "; break;
                        case'y': cout<<"-\a.\a-\a-\a "; break;
                        case'j': cout<<".\a-\a-\a-\a "; break;
                        case'x': cout<<"-\a.\a.\a-\a "; break;
                                case'1': cout<<".\a-\a-\a-\a-\a "; break;
                                case'2': cout<<".\a.\a-\a-\a-\a "; break;
                                case'3': cout<<".\a.\a.\a-\a-\a "; break;
                                case'4': cout<<".\a.\a.\a.\a-\a "; break;
                                case'5': cout<<".\a.\a.\a.\a.\a "; break;
                                case'6': cout<<"-\a.\a.\a.\a.\a "; break;
                                case'7': cout<<"-\a-\a.\a.\a.\a "; break;
                                case'8': cout<<"-\a-\a-\a.\a.\a "; break;
                                case'9': cout<<"-\a-\a-\a-\a.\a "; break;
                                case'0': cout<<"-\a-\a-\a-\a-\a "; break;
                                case',': cout<<".\a-\a-\a-\a-\a.\a "; break;
}
}
return 0;
}
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.10.2012, 19:57     Морзянка
Посмотрите здесь:

Морзянка - C++
Короч дела такие..... Все вроде работает.... но мне нужно что бы руссие буковки переводи, и как наоборот сделать, не пойму... и еще...

Морзянка - C++
Всем привет !! Написал программу которая переводит слова в морзянка. Теперь мне надо написать программу которая будет все делать наоборот...

Морзянка... - C++
В одном из учебников наткнулся на задачу - написать переводчик англ. букв и цифр в азбуку Морзе. Сделал так: #include &lt;stdio.h&gt; ...

Морзянка. Вводимый с клавиатуры текст перевести в последовательность точек и тире с помощью азбуки Морзе. - C++
Народ, помогите плз решить 2 задачки на С оч надо... 1)Морзянка. Вводимый с клавиатуры текст перевести в последовательность...

Морзянка - PascalABC.NET
Заданный текст(вводимый с клавиатуры) представить последовательностью точек и тире с помощью азбуки морзе. Если возможно , сопроводить...

Морзянка - C#
Задание: &quot;Реализовать возможность кодирования открытого текста и декодирования шифрограммы по правилам азбуки Морзе. Предусмотреть...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
BumerangSP
4286 / 1408 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
03.10.2012, 20:06     Морзянка #2
777Nike777, после case 'p' скобка, наверное, не нужна (ну, и самая последняя скобка тоже).
777Nike777
0 / 0 / 0
Регистрация: 03.10.2012
Сообщений: 12
03.10.2012, 20:13  [ТС]     Морзянка #3
все равно не то, я ввожу например слово из четырех букв, а он совсем другое переводит
BumerangSP
4286 / 1408 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
03.10.2012, 20:16     Морзянка #4
Так а что он должен выводить? Пример конкретный.
ValeryS
Модератор
6551 / 5017 / 463
Регистрация: 14.02.2011
Сообщений: 16,738
03.10.2012, 20:17     Морзянка #5
Цитата Сообщение от 777Nike777 Посмотреть сообщение
for (i=0; i<100; i++)
крутить нужно не 100 раз а до конца строки (пока не встретится 0)
в свитче нет default а если встретится неописаный символ(например русские буквы)?
Большие буквы надо приводить к маленьким
'A'и 'a' это разные символы
или писать так
C++
1
2
case'A':
case'a': cout<<".\a-\a "; break;
777Nike777
0 / 0 / 0
Регистрация: 03.10.2012
Сообщений: 12
03.10.2012, 20:20  [ТС]     Морзянка #6
должен выводить вводимое слово, но только в точках и тире, а он выводит не понятно что
BumerangSP
4286 / 1408 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
03.10.2012, 20:24     Морзянка #7
Тогда действительно как сказано выше: до strlen(k), либо пока не будет найден '\0'.
Sonyk91
111 / 111 / 4
Регистрация: 01.10.2012
Сообщений: 1,915
Завершенные тесты: 1
03.10.2012, 20:29     Морзянка #8
Добавь только не #include <iostream>, а #include <iostream.h>
Звуковой сигнал будет работать только в том случае, если на компьютере установлен динамик! (который пищит при запуске)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
#include <iostream>
 
 
using namespace std;
void main()
{
    int i;
    char k[100] = "";
    cout<<"Vvedite slovo \n";
    cin>>k;
    for (i=0; i<strlen(k); i++)
    {
        switch(k[i])
        {
            case'a': cout<<".\a-\a "; break;
            case'b': cout<<"-\a.\a.\a.\a "; break;
            case'w': cout<<".--\a "; break;
            case'g': cout<<"-\a-\a.\a "; break;
            case'd': cout<<"-\a.\a.\a "; break;
            case'e': cout<<".\a" ; break;
            case'v': cout<<".\a.\a.\a-\a "; break;
            case'z': cout<<"-\a-\a.\a.\a "; break;
            case'i': cout<<".\a.\a "; break;
            case'k': cout<<"-\a.\a-\a "; break;
            case'l': cout<<".\a-\a.\a.\a "; break;
            case'm': cout<<"-\a-\a "; break;
            case'n': cout<<"-\a.\a "; break;
            case'o': cout<<"-\a-\a-\a "; break;
            case'p': cout<<".\a-\a-\a.\a "; break;
            case'r': cout<<".\a-\a.\a "; break;
            case's': cout<<".\a.\a.\a "; break;
            case't': cout<<"-\a "; break;
            case'u': cout<<".\a.\a-\a "; break;
            case'f': cout<<".\a.\a-\a.\a "; break;
            case'h': cout<<".\a.\a.\a.\a "; break;
            case'c': cout<<"-\a.\a-\a.\a "; break;
            case'q': cout<<"-\a-\a.\a-\a "; break;
            case'y': cout<<"-\a.\a-\a-\a "; break;
            case'j': cout<<".\a-\a-\a-\a "; break;
            case'x': cout<<"-\a.\a.\a-\a "; break;
            case'1': cout<<".\a-\a-\a-\a-\a "; break;
            case'2': cout<<".\a.\a-\a-\a-\a "; break;
            case'3': cout<<".\a.\a.\a-\a-\a "; break;
            case'4': cout<<".\a.\a.\a.\a-\a "; break;
            case'5': cout<<".\a.\a.\a.\a.\a "; break;
            case'6': cout<<"-\a.\a.\a.\a.\a "; break;
            case'7': cout<<"-\a-\a.\a.\a.\a "; break;
            case'8': cout<<"-\a-\a-\a.\a.\a "; break;
            case'9': cout<<"-\a-\a-\a-\a.\a "; break;
            case'0': cout<<"-\a-\a-\a-\a-\a "; break;
            case',': cout<<".\a-\a-\a-\a-\a.\a "; break;
        }
    }
    cin>>k; //для выхода нажать клавишу символов, затем интер
}
777Nike777
0 / 0 / 0
Регистрация: 03.10.2012
Сообщений: 12
03.10.2012, 20:30  [ТС]     Морзянка #9
парни, большое спасибо, вот теперь все правильно работает
ValeryS
Модератор
6551 / 5017 / 463
Регистрация: 14.02.2011
Сообщений: 16,738
03.10.2012, 20:54     Морзянка #10
777Nike777, для спасибы кнопка есть

Добавлено через 2 минуты
Цитата Сообщение от Sonyk91 Посмотреть сообщение
for (i=0; i<strlen(k); i++)
я бы так написал, вдруг пользователь слово больше ста букв введет
C++
1
for (i=0; i<100&&k[i]!=0; i++)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.10.2012, 20:58     Морзянка
Еще ссылки по теме:

Морзянка (Азбука морзе) и ее перевод - Pascal ABC
Может кто помочь? Есть программа uses crt; const mrz:array of string= ...

Курсовая "Морзянка" - Visual C++
Задание: Разработать программу, которая считывает текст из файла (*.txt), выводит его в этом виде на экран, переводит его согласно азбуке...

"Морзянка" - Free Pascal
Доброго времени суток. Думаю, многие знакомы с этой задачей. Так вот, мне нужно ввести доп/элементы в азбуку, которая распознает(пока) лишь...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Sonyk91
111 / 111 / 4
Регистрация: 01.10.2012
Сообщений: 1,915
Завершенные тесты: 1
03.10.2012, 20:58     Морзянка #11
ValeryS, Из за этих пользователей столько проверок нужно делать =). Что иногда кажется это не программка, а крепость от кривых рук пользователя! =)
Yandex
Объявления
03.10.2012, 20:58     Морзянка
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru