Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Звуки в азбуке морзе, beep 
:(
    Опции темы
elena1991
Дата 12.6.2014, 07:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 22.3.2014

Репутация: нет
Всего: нет



Добрый вечер! Кто знает как сделать, чтоб при нажатии клавиши "." срабатывал Beep (600,400), а при нажатии "-" Beep(600,900), например простукать какое-нибудь слово по азбуке Морзе. с++. Заранее благодарю вот программа:
Код

#include <iostream>
#include <cstring>
#include "stdafx.h"
#include <iostream>
#include <stdio.h>
#include <conio.h> 
#include <string>
#include <cstdlib> 
#include <windows.h>
using namespace std;
 
void convert (char[100]);
     int main()
     {char eng[100];
      cin >> eng;
     convert(eng);
     return 0;
}
     
void convert (char en[]){
    int eng2;
    eng2 = strlen (en);
    cout << eng2 << endl;
    for (int i = 0; i<eng2; i++){
    if (en[i] == ' ')
    cout << endl;
 
    else if (en[i] == '_')
        cout << "-...-" << endl;
    else if (en[i] == '0')
        cout << "-----" << endl;
    else if (en[i] == '1')
        cout << ".----" << endl;
    else if (en[i] == '2')
        cout << "..---" << endl;
    else if (en[i] == '3')
        cout << "...--" << endl;
    else if (en[i] == '4')
        cout << "....-" << endl;
    else if (en[i] == '5')
        cout << "....." << endl;
    else if (en[i] == '6')
        cout << "-...." << endl;
    else if (en[i] == '7')
        cout << "--..." << endl;
    else if (en[i] == '8')
        cout << "---.." << endl;
    else if (en[i] == '9')
        cout << "----." << endl;
    else if (en[i] == 'A' || en[i] == 'a')
        cout << ".-" << endl;
    else if (en[i] == 'B' || en[i] == 'b')
        cout << "-..." << endl;
    else if (en[i] == 'C' || en[i] == 'c')
        cout << "-.-." << endl;
    else if (en[i] == 'D' || en[i] == 'd')
        cout << "-.." << endl;
    else if (en[i] == 'E' || en[i] == 'e')
        cout << "." << endl;
    else if (en[i] == 'F' || en[i] == 'f')
        cout << "..-." << endl;
    else if (en[i] == 'G' || en[i] == 'g')
        cout << "--." << endl;
    else if (en[i] == 'H' || en[i] == 'h')
        cout << "...." << endl;
    else if (en[i] == 'I' || en[i] == 'i')
        cout << ".." << endl;
    else if (en[i] == 'J' || en[i] == 'j')
        cout << ".---" << endl;
    else if (en[i] == 'K' || en[i] == 'k')
        cout << "-.-" << endl;
    else if (en[i] == 'L' || en[i] == 'l')
        cout << ".-.." << endl;
    else if (en[i] == 'M' || en[i] == 'm')
        cout << "--" << endl;
    else if (en[i] == 'N' || en[i] == 'n')
        cout << "-." << endl;
    else if (en[i] == 'O' || en[i] == 'o')
        cout << "---" << endl;
    else if (en[i] == 'P' || en[i] == 'p')
        cout << ".--." << endl;
    else if (en[i] == 'Q' || en[i] == 'q')
        cout << "--.-" << endl;
    else if (en[i] == 'R' || en[i] == 'r')
        cout << ".-." << endl;
    else if (en[i] == 'S' || en[i] == 's')
        cout << "..." << endl;
    else if (en[i] == 'T' || en[i] == 't')
        cout << "-" << endl;
    else if (en[i] == 'U' || en[i] == 'u')
        cout << "..-" << endl;
    else if (en[i] == 'V' || en[i] == 'v')
        cout << "...-" << endl;
    else if (en[i] == 'W' || en[i] == 'w')
        cout << ".--" << endl;
    else if (en[i] == 'X' || en[i] == 'x')
        cout << "-..-" << endl;
    else if (en[i] == 'Y' || en[i] == 'y')
        cout << "-.--" << endl;
    else if (en[i] == 'Z' || en[i] == 'z')
        cout << "--.." << endl;
    
}
  
  
  
    
    
getch ();
system ("pause");
}
 
//Beep(600, 400);// точка
//Beep(600, 800);// тире

PM   Вверх
EgoBrain
Дата 17.6.2014, 07:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 537
Регистрация: 23.3.2008
Где: Комната

Репутация: нет
Всего: 2



elena1991, ваша программа транслирует буквы англ. алфавита в азубуку Морзе. Там никакого ввода точек и тире нет.
Если нужно выдавать звук при вывовде полученного преобразования, то можно сделать так:
Код

#include <iostream>
#include <windows.h>
#include <string>

using namespace std;

string beep_it(string str)
{
    for(int i = 0; i < str.length(); ++i)
    {
        if(str[i] == '.')
            Beep(600, 400);
        if(str[i] == '-')
            Beep(600, 800);
    }

    return str;
}

void convert (char en[])
{
    int eng2;
    eng2 = strlen (en);
    cout << eng2 << endl;

    for (int i = 0; i<eng2; i++)
    {
        if (en[i] == ' ')
        cout << endl; 
        else if (en[i] == '_')
            cout << beep_it("-...-") << endl;
        else if (en[i] == '0')
            cout << beep_it("-----") << endl;
        else if (en[i] == '1')
            cout << beep_it(".----") << endl;
        else if (en[i] == '2')
            cout << beep_it("..---") << endl;
        else if (en[i] == '3')
            cout << beep_it("...--") << endl;
        else if (en[i] == '4')
            cout << beep_it("....-") << endl;
        else if (en[i] == '5')
            cout << beep_it(".....") << endl;
        else if (en[i] == '6')
            cout << beep_it("-....") << endl;
        else if (en[i] == '7')
            cout << beep_it("--...") << endl;
        else if (en[i] == '8')
            cout << beep_it("---..") << endl;
        else if (en[i] == '9')
            cout << beep_it("----.") << endl;
        else if (en[i] == 'A' || en[i] == 'a')
            cout << beep_it(".-") << endl;
        else if (en[i] == 'B' || en[i] == 'b')
            cout << beep_it("-...") << endl;
        else if (en[i] == 'C' || en[i] == 'c')
            cout << beep_it("-.-.") << endl;
        else if (en[i] == 'D' || en[i] == 'd')
            cout << beep_it("-..") << endl;
        else if (en[i] == 'E' || en[i] == 'e')
            cout << beep_it(".") << endl;
        else if (en[i] == 'F' || en[i] == 'f')
            cout << beep_it("..-.") << endl;
        else if (en[i] == 'G' || en[i] == 'g')
            cout << beep_it("--.") << endl;
        else if (en[i] == 'H' || en[i] == 'h')
            cout << beep_it("....") << endl;
        else if (en[i] == 'I' || en[i] == 'i')
            cout << beep_it("..") << endl;
        else if (en[i] == 'J' || en[i] == 'j')
            cout << beep_it(".---") << endl;
        else if (en[i] == 'K' || en[i] == 'k')
            cout << beep_it("-.-") << endl;
        else if (en[i] == 'L' || en[i] == 'l')
            cout << beep_it(".-..") << endl;
        else if (en[i] == 'M' || en[i] == 'm')
            cout << beep_it("--") << endl;
        else if (en[i] == 'N' || en[i] == 'n')
            cout << beep_it("-.") << endl;
        else if (en[i] == 'O' || en[i] == 'o')
            cout << beep_it("---") << endl;
        else if (en[i] == 'P' || en[i] == 'p')
            cout << beep_it(".--.") << endl;
        else if (en[i] == 'Q' || en[i] == 'q')
            cout << beep_it("--.-") << endl;
        else if (en[i] == 'R' || en[i] == 'r')
            cout << beep_it(".-.") << endl;
        else if (en[i] == 'S' || en[i] == 's')
            cout << beep_it("...") << endl;
        else if (en[i] == 'T' || en[i] == 't')
            cout << beep_it("-") << endl;
        else if (en[i] == 'U' || en[i] == 'u')
            cout << beep_it("..-") << endl;
        else if (en[i] == 'V' || en[i] == 'v')
            cout << beep_it("...-") << endl;
        else if (en[i] == 'W' || en[i] == 'w')
            cout << beep_it(".--") << endl;
        else if (en[i] == 'X' || en[i] == 'x')
            cout << beep_it("-..-") << endl;
        else if (en[i] == 'Y' || en[i] == 'y')
            cout << beep_it("-.--") << endl;
        else if (en[i] == 'Z' || en[i] == 'z')
            cout << beep_it("--..") << endl;    
}    
}

int main()
{
    char eng[100];
    cin >> eng;
    convert(eng);    

    system ("pause");

    return 0;
}

PM MAIL ICQ Skype   Вверх
ColdSpirit
Дата 20.6.2014, 11:33 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 95
Регистрация: 10.12.2010

Репутация: нет
Всего: 2



elena1991, я думаю лучше вместо конструкции if..else использовать switch..case, но это конечно дело вкуса =)

Это сообщение отредактировал(а) ColdSpirit - 20.6.2014, 11:33
PM MAIL   Вверх
EgoBrain
Дата 25.6.2014, 04:27 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 537
Регистрация: 23.3.2008
Где: Комната

Репутация: нет
Всего: 2



ColdSpirit, где-то тут уже упомянали в суе: http://www.rsdn.ru/forum/cpp/4604663.all
А вот более наглядно по теме, правда незнаю насколько справедливо и уж тем более на сколько актуально: http://dev.wikitt.com/wiki/C++/%D0%9E%D0%B...8d0bbd0b820if3f (типа ассемблера со свитчем меньше).
Но вообще хвала Аллаху Оптимизатору, который смягчает кривизну мышления.

По теме добавлю, что обработка нажатий в консоле производится только в настоящем консольном режиме через функции "семейства" _kbhit()
PM MAIL ICQ Skype   Вверх
mes
Дата 25.6.2014, 09:39 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 79
Всего: 250



Цитата(ColdSpirit @  20.6.2014,  10:33 Найти цитируемый пост)
 я думаю лучше вместо конструкции if..else использовать switch..case, но это конечно дело вкуса =)

Цитата(EgoBrain @  25.6.2014,  03:27 Найти цитируемый пост)
Но вообще хвала Аллаху Оптимизатору, который смягчает кривизну мышления.

как я пoнимаю, switch case был предлoжен не в угoду скoрoсти , а в целях нагляднoсти..  ну и чтoб дoбиться гибкoсти, результат нужнo не в пoтoк сбрасывать, а вoзвращать стрoкoй.. этим же экoнoмим кучу breakoв.. 



--------------------
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.1190 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.