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

Перечислимый тип enum ,что это? - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Найти элементы матрицы, меньшие среднего арифметического http://www.cyberforum.ru/cpp-beginners/thread959631.html
Как написать два цикла в одно, при выводе наименьшего среднего арифметического? //* С клавиатуры вводится размерность целочисленной матрицы, затем сама матрица.Найти элементы меньшие среднего арифметического. //* Разрешается при этом использовать только один оператор цикла(кроме цикла ввода матрицы). #include <iostream> # include <windows.h> using namespace std; int main()
C++ Линейный список Есть такая детская считалка: n детей стали в круг. Начиная отсчет от первого, убирают каждого k-го ребёнка, замыкая круг после каждого удаления. Нужна программа, которая за значением n и k выводит номера детей в том порядке, по которому они были убраны из круга. Есть код создания линейного списка. #include "stdafx.h" #include "stdlib.h" #include "string.h" typedef struct St { http://www.cyberforum.ru/cpp-beginners/thread959627.html
C++ Необходимо вывести в консоль меню с пунктами
Не могу понять как сделать меню?
Программа перевода целого числа без знака в двоичную систему счисления C++
Здравствуйте . Помогите , пожалуйста , реализовать программу перевода целого числа без знака в двоичную систему счисления , при этом выдать результат от младшего байта к старшему . Объясните , пожалуйста , алгоритм решения . Всё облазил - не пойму , как это всё можно сделать. Заранее огромное спасибо за помощь !
C++ Не происходит конвертация типа int в float http://www.cyberforum.ru/cpp-beginners/thread959612.html
int r = 130; r = (float)r/255; r равен 0. Почему не произошла конвертация типа?
C++ Как можно сравнить введенные символы с теми что есть в массиве? Как можно сравнить что было введено с клавиатуры? #include <iostream> using namespace std; int main() { char x={"норма"}; {"нормально";} {"нармально";} {"жить можно";} {"все ок";} {"норм";} {"хорошо";} {"харашо";} char e= {"плохо";} {"хреново";} {"хриново";} {"хренова";} {"хринова";} char r= {"сыпоц1";} char q= "да"; char a= "нет"; char z= "я"; подробнее

Показать сообщение отдельно
DmitryM5
Love~
 Аватар для DmitryM5
51 / 51 / 3
Регистрация: 27.08.2013
Сообщений: 743
Записей в блоге: 1
22.09.2013, 13:15     Перечислимый тип enum ,что это?
Не пойму зачем он нужен,если все равно он возвращает целые числа?
Как обращаться именно к имени(string) элемента типа enum?К примеру вывести имя из enum.Не помогает даже cast ...
В моем понимании,будто бы это просто воображение,и я представляю,что 1-это первый элемент(имя у меня в голове),2-это второй элемент (имя у меня в голове)...ит.д.
Кто нибудь объясните на примере моей задачи,вывод пришлось делать,хотя думал проще можно вывести....:

Единицы длины пронумерованы следующим образом: 1 — дециметр, 2 — километр, 3 — метр, 4 — миллиметр, 5 — сантиметр. Дан номер единицы длины (целое число в диапазоне 1–5) и длина отрезка в этих единицах (вещественное число). Найти длину отрезка в метрах.
Указание: используйте в решении перечисление для единиц длины.

part4.h:
C++
1
2
3
4
5
6
#ifndef PART4_H
#define PART4_H
enum  dlina{dc=1,km,m,mm,sm};
void printdlina(int i);
double find(int i,double v);
#endif /*PART4_H*/
Task6.cpp:
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
/
#include <iostream>
#include <locale>
#include "part4.h"
 
using namespace std;
void printdlina(int i) {
     switch(i) {
     case 1: {
         cout<<"Дециметр"<<endl;
         break;
     }
     case 2: {
         cout<<"Километр"<<endl;
         break;
     }
     case 3: {
         cout<<"Метр"<<endl;
         break;
     }
      case 4: {
         cout<<"Миллиметр"<<endl;
         break;
    }
    
     }
}
 
 
double find(int i,double v) {
    if ( (i<1)||(i>5) ) {
        throw std::range_error("number of day should be in a range [1, 5]");
    }
     dlina a=static_cast<dlina>(i); 
 
     switch(a) {
     case 1: 
         return v/10;
     case 2: 
         return v*1000;
     case 3: 
         return v;
     case 4: 
         return v/1000;
     case 5:
         return v/100;
     }
}
main4.cpp
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <locale>
#include "part4.h"
 
using namespace std;
 
int main() {
    std::locale::global(std::locale(""));
    int i;
    double v;
    cout<<"Введите номер единицы длины (1-5) и значение этой длины "<<endl;
    cin>>i>>v;
    cout<<"Исходная длина ";
    printdlina(i);
    cout<<" Значение = "<<v;
    cout<<" После перевода в метры значение  = "<<find(i,v)<<endl;
    system("pause");
    return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 01:35. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru