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

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

Восстановить пароль Регистрация
 
Артём 33регион
0 / 0 / 0
Регистрация: 15.02.2013
Сообщений: 5
15.02.2013, 15:26     Интервал между нотами. #1
Составить программу которая бы реализовала следующий алгоритм: по введённым названиям двух нот (до ре ми фа соль ля си) определить интервал, образованный нотами. Секунда-это интервализ двух соеденённых нот (по кругу) терция-интервал через ноту и т.д.(кварта квинта секста септима)
ЗАРАНЕЕ БЛАГОДАРЮ. ЛЮБИТЕ ДРУГ ДРУГА)))
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
gazlan
2857 / 1805 / 271
Регистрация: 27.08.2010
Сообщений: 4,888
Записей в блоге: 1
15.02.2013, 16:09     Интервал между нотами. #2
Учитывая, что нот всего 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;
...
}
Venom33
 Аватар для Venom33
19 / 19 / 0
Регистрация: 26.01.2013
Сообщений: 287
15.02.2013, 17:33     Интервал между нотами. #3
ему бы полегче.
Артём 33регион
0 / 0 / 0
Регистрация: 15.02.2013
Сообщений: 5
15.02.2013, 18:03  [ТС]     Интервал между нотами. #4
да да)
Venom33
 Аватар для Venom33
19 / 19 / 0
Регистрация: 26.01.2013
Сообщений: 287
15.02.2013, 18:06     Интервал между нотами. #5
gazlan,
проще-это начальный уровень:
conio.h, stdio.h, math.h
gazlan
2857 / 1805 / 271
Регистрация: 27.08.2010
Сообщений: 4,888
Записей в блоге: 1
15.02.2013, 18:48     Интервал между нотами. #6
Три раза switch() и четыре - printf() - боюсь, проще мне не удастся.
Yandex
Объявления
15.02.2013, 18:48     Интервал между нотами.
Ответ Создать тему
Опции темы

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