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

Диапазон значений - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Функция С++ http://www.cyberforum.ru/cpp-beginners/thread438075.html
Добрый день. Пишу свой софт, столкнулся с проблемой. ТЗ софта такая, создаем файл (любой без разницы txt/pdf/html и т.д) в любом каталоге. Софт мне в командной строке показывает дата создание, вес файл, расширение файла, название. Теперь я хочу чтобы показывал место расположение, то есть создал я файл в папке Program Files что в командной строке показывал место расположение файла. Пример! ...
C++ Удаление столбцов из матрицы содержащих число 1 дана матрица необходимо удалить столбцы содержащие 1. Хелп плиз(( где то рядом но.... #include<iostream> #include<iomanip> #include<cstdlib> #include<cstddef> using namespace std; http://www.cyberforum.ru/cpp-beginners/thread438068.html
C++ q-sort сортировка
Здраствуйте , не могу понять где в коде ошибка . Выдает такое :d:\program files\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.4.1\..\..\..\libmingw32.a(main.o):main.c|| undefined reference to `WinMain@16| ||=== Build finished: 1 errors, 0 warnings ===| вот код : //#include "stdafx.h" #include "ctime"
Задача на строки: Вывести директорию файла. C++
Задача: из полного адреса файла выделить его основную директорию. Если файл находится в корневой директории, вывести символ "\". Считать что адрес введен всегда правильно. Короче, если дан адрес C:\AMD\Catalyst_Mobility_64-Bit_Util.exe на экран вывести AMD. Вот наброски: #include "stdafx.h" #include <iostream> #include "stdio.h" #include "string.h"
C++ В произвольной тексте на русском языке вывести строки, содержащие более 5 букв "о" http://www.cyberforum.ru/cpp-beginners/thread438029.html
Привет всем! Вобщем у меня проблема, есть задачка: В произвольной тексте на русском языке вывести строки, содержащие более 5 букв "о". Не подскажите как это реализовать?) как поменять буквы в тексте я уже понял, а вот над этим ломаю голову. Вот что я попытался сделать(ясно дело бред написал:)) #include "stdafx.h" #include<iostream> #include<string> #include<fstream>
C++ Помогите найти ошибку //Даны три положительных числа а, b, c. Проверить, могут ли они быть длинами сторон треугольника. Если да, то вычислить площадь этого треугольника. #include <math.h> #include <iostream> using namespace std; void main() { int a, b, c; подробнее

Показать сообщение отдельно
fasked
Эксперт C++
 Аватар для fasked
4924 / 2504 / 180
Регистрация: 07.10.2009
Сообщений: 4,306
Записей в блоге: 1
30.01.2012, 18:54     Диапазон значений
Всегда можно просто набросать горстку if-else-statements и сделать из нее отдельную функцию

C++
1
2
3
4
5
6
7
8
9
10
int calculate_b(int a)
{
   if (a >= 0 && a < 10)
      return 0;
   else
   if (a >= 11 && a < 20)
      return 1;
   else
      return 2;
}
Чуть усовершенствова получаем такой вариант:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
template<typename T>
bool in_between(T a, T min, T max) 
{
   return a >= min && a <= max;
}
 
int calculate_b(int a)
{
   if (in_between(a, 0, 10))
      return 0;
   else
   if (in_between(a, 11, 20))
      return 1;
   else
      return 2;
}
Можно вообще сделать enum, который будет обозначать диапазон значений и уже его использовать в switch:
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
#include <iostream>
 
enum b_range
{
   B_RANGE_0,
   B_RANGE_1,
   B_RANGE_2
};
 
template<typename T>
bool in_between(T a, T min, T max) 
{
   return a >= min && a <= max;
}
 
b_range get_range(int a)
{
   if (in_between(a, 0, 10))
      return B_RANGE_0;
   else
   if (in_between(a, 11, 20))
      return B_RANGE_1;
   else
      return B_RANGE_2;
}
 
int main()
{
   int a = rand();
   int b = 0;
   
   switch (get_range(a))
   {
   case B_RANGE_0:
      b = 0;
      break;
      
   case B_RANGE_1:
      b = 1;
      break;
      
   case B_RANGE_2:
      b = 2;
      break;
   }
}
А еще можно написать класс, который будет кастоваться в int и обратно
В общем-то есть куча способов, а какой будет предпочтительнее зависит от конкретной задачи.
 
Текущее время: 15:38. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru