Форум программистов, компьютерный форум, киберфорум
Наши страницы

Интервал между нотами. - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Рисование линий http://www.cyberforum.ru/cpp-beginners/thread786933.html
Всем привет. Подскажите пожалуйста, как можно в Visual C++ 2010 (проект типа Windows Forms) рисовать линии при помощи мыши так же, как в Paint`е. Заранее спасибо.
C++ Вычислить сумму всех чисел Фибоначи, которые не превосходят 100. Вычислить сумму всех чисел Фибоначи, которые не превосходят 100. числа фибоначи: 1, 1, 2,3,5,8,13,21,34,55,89. ЗАРАНЕЕ БЛАГОДАРЮ.МИР!!! http://www.cyberforum.ru/cpp-beginners/thread786931.html
C++ Реализовать шаблон функции, которая осуществляет поиск нечетных элементов матрицы.
Реализовать шаблон функции, которая осуществляет поиск нечетных элементов матрицы.
Масив структур + бинарный файл C++
Помогите написать программу. Нужно создать массив структур. Каждая структура состоит из следующих элементов: производитель, товар, состав. Для производителя задать название и адрес фирмы. Для товара...
C++ Почему switch case начал работать неправильно? http://www.cyberforum.ru/cpp-beginners/thread786913.html
switch(T1) { case 1: Image1->Picture->LoadFromFile("E:/PRO/_Projects/First_Steps/BS/Taro/Zerkalo/1.jpg"); case 2:...
C++ Найти сумму и общее количество тех элементов заданного массива Найти сумму и общее количество тех элементов заданного массива X1,X2, … ,Xn, абсолютная вели-чина которых отличается от Р не более, чем на Т подробнее

Показать сообщение отдельно
gazlan
3133 / 1909 / 285
Регистрация: 27.08.2010
Сообщений: 5,132
Записей в блоге: 1
15.02.2013, 16:09
Учитывая, что нот всего 7, а их имена не длиннее 4 символов, я бы сделал mapping [ string -> int ] через switch:

C++
1
2
3
4
5
char pszNote1[4 + 1];
char pszNote2[4 + 1];
 
memset(pszNote1,0,sizeof(pszNote1));
memset(pszNote2,0,sizeof(pszNote2));
Читаем имена и делаем мэппинг:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
switch (*(DWORD*)pszNote1)
{
case *(DWORD*)"до": iNote1 = 0; break;
...
case *(DWORD*)"си": iNote1 = 6; break;
default: printf("%s - WTF?\n",pszNote1);  break;
}
 
и аналогично для Note2.
 
 
И выводим ответ:
 
switch (abs(iNote1 - iNote2))
{
case 0: printf("WTF?\n");  break;
case 1: printf("секунда\n");  break;
case 2: printf("терция\n");  break;
...
}
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.