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

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

Восстановить пароль Регистрация
 
777Nike777
0 / 0 / 0
Регистрация: 03.10.2012
Сообщений: 12
03.10.2012, 19:57     Морзянка #1
Ребят, помогите пожалуйста! нужно в 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;
}
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
BumerangSP
 Аватар для BumerangSP
4283 / 1405 / 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
 Аватар для BumerangSP
4283 / 1405 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
03.10.2012, 20:16     Морзянка #4
Так а что он должен выводить? Пример конкретный.
ValeryS
Модератор
6377 / 4843 / 442
Регистрация: 14.02.2011
Сообщений: 16,047
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
 Аватар для BumerangSP
4283 / 1405 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
03.10.2012, 20:24     Морзянка #7
Тогда действительно как сказано выше: до strlen(k), либо пока не будет найден '\0'.
Sonyk91
 Аватар для Sonyk91
103 / 103 / 4
Регистрация: 01.10.2012
Сообщений: 1,801
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
Модератор
6377 / 4843 / 442
Регистрация: 14.02.2011
Сообщений: 16,047
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     Морзянка
Еще ссылки по теме:

Морзянка C++
"Морзянка" Free Pascal

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

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

Текущее время: 21:18. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru