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

что и зачем следует, а так же как работет - C++

Восстановить пароль Регистрация
 
Mr.Fox
 Аватар для Mr.Fox
1 / 1 / 0
Регистрация: 27.03.2011
Сообщений: 53
03.05.2011, 13:11     что и зачем следует, а так же как работет #1
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
int askInteger()
{
        int ret = 0;
        char cnt = getch();
        while(cnt >= '0' && cnt <= '9')
        {
                ret *= 10;
                ret += cnt - '0';
                cout << cnt;
                cnt = getch();
        }
        cout << "   ";
        return ret;
};
Объясните пожалуйста что и зачем следует, а так же как работет..
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.05.2011, 13:11     что и зачем следует, а так же как работет
Посмотрите здесь:

Что следует дальше за C++? C++
C++ Как сделать так что бы массив выводил наоборот
Так, норм задачка, гляньте, скажите что да как C++
C++ Сравнить 2 файла по содержанию. Что следует изучить?
C++ Куда следует пойти туристам, что бы попасть на автобусную остановку?
C++ #define sqr(a) (a)*(a) - зачем так много скобок?
C++ Зачем преобразовывать itsVal в int, если эта переменная и так объявлена как тип int
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ValeryLaptev
Эксперт С++
1010 / 789 / 46
Регистрация: 30.04.2011
Сообщений: 1,598
03.05.2011, 13:20     что и зачем следует, а так же как работет #2
Это функция ввода с клавиатуры последовательности цифр и получение целого числа
Цитата Сообщение от Mr.Fox Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
int askInteger()
{
        int ret = 0;                          
        char cnt = getch();                       // -- получить символ с клавиатуры
        while(cnt >= '0' && cnt <= '9')         // -- пока символ = цифра
        {
                ret *= 10;                            // -- то, что было в ret до этого - умножаем на 10  
                ret += cnt - '0';                    // -- добавляем полученную цифру
                cout << cnt;                        // -- выводим цифру - для проверки ?
                cnt = getch();                     // -- получаем следующую цифру
        }
        cout << "   ";                              // -- выводим пробелл
        return ret;                                  // -- возвращаем полученное число
};

Объясните пожалуйста что и зачем следует, а так же как работет..
Проверьте хотя бы на последовательности цифр 3412
mimicria
return (true);
 Аватар для mimicria
1956 / 1093 / 91
Регистрация: 19.04.2011
Сообщений: 2,344
03.05.2011, 13:20     что и зачем следует, а так же как работет #3
Не знаю, что Вы хотели сделать, но это бред:
C++
1
2
int ret = 0;
ret *= 10;
kazak
 Аватар для kazak
3029 / 2350 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
03.05.2011, 13:23     что и зачем следует, а так же как работет #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
int askInteger()
{
        int ret = 0;
        char cnt = getch(); // считали символ с клавиатуры
        while(cnt >= '0' && cnt <= '9') // пока считанный символ является цифрой
        {
                ret *= 10; // умножаем ret на 10
                ret += cnt - '0'; // прибавляем к ret число соответствующее цифре
                cout << cnt; // выводим считанный символ
                cnt = getch(); // считываем новый символ с клавиатуры
        }
        cout << "   "; // выводим пробел
        return ret; // возвращаем ret, который содержит число, соответствующее введенной строке
};
ValeryLaptev
Эксперт С++
1010 / 789 / 46
Регистрация: 30.04.2011
Сообщений: 1,598
03.05.2011, 13:24     что и зачем следует, а так же как работет #5
Нет. Это не бред. Подумайте как следует, и прикиньте для второй цифры...
kazak
 Аватар для kazak
3029 / 2350 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
03.05.2011, 13:24     что и зачем следует, а так же как работет #6
mimicria, это не бред
mansp
18 / 18 / 0
Регистрация: 07.11.2010
Сообщений: 136
03.05.2011, 13:24     что и зачем следует, а так же как работет #7
Код
int askInteger() //функция которрая возвращает переменную типа инт
{
        int ret = 0; // создаем переменную типа инт и инициализируем нулём
        char cnt = getch(); //считываем символ с консоли ( getch()) и записываем в пеерменную цнт типа чар
        while(cnt >= '0' && cnt <= '9')//цикл пока цнт меньше равнои 9 и больше равно 0
        {
                ret *= 10;// умножаем переменную рет на 10 равносильно ret=ret*10
                ret += cnt - '0';// к переменной рет плюсуем разницу символов (cnt - '0')
                cout << cnt;//выводим на екран переменную цнт
                cnt = getch();// опят считываем с клавиатуры символ и записываем в цнт
        }
        cout << "   ";//выводим пробел на екра
        return ret;//возвращаем переменную рет
};
kazak
03.05.2011, 13:25
  #8

Не по теме:

однако, синхронность

Mr.Fox
 Аватар для Mr.Fox
1 / 1 / 0
Регистрация: 27.03.2011
Сообщений: 53
03.05.2011, 13:28  [ТС]     что и зачем следует, а так же как работет #9
большое спасибо господа программисты за помощь
раскрою замысел: мне надо было осуществлять ввод чисел с клавиатуры в одну строку, т.е. число - enter и т.д., а по нажатию enter осуществляется переход на строку вниз, что мне и хотелось избежать. вот...
mimicria
return (true);
 Аватар для mimicria
1956 / 1093 / 91
Регистрация: 19.04.2011
Сообщений: 2,344
03.05.2011, 13:29     что и зачем следует, а так же как работет #10
Цитата Сообщение от kazak Посмотреть сообщение
mimicria, это не бред
А по-моему бред, ибо:
C++
1
2
3
 int ret;
 cin >> ret;
 return ret;
kazak
 Аватар для kazak
3029 / 2350 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
03.05.2011, 13:32     что и зачем следует, а так же как работет #11
Цитата Сообщение от mimicria Посмотреть сообщение
А по-моему бред, ибо:
C++
1
2
3
 int ret;
 cin >> ret;
 return ret;
вы не внимательны, товарищ.
ValeryLaptev
Эксперт С++
1010 / 789 / 46
Регистрация: 30.04.2011
Сообщений: 1,598
03.05.2011, 13:33     что и зачем следует, а так же как работет #12
Не бред.
Задание такое.
mimicria
return (true);
 Аватар для mimicria
1956 / 1093 / 91
Регистрация: 19.04.2011
Сообщений: 2,344
03.05.2011, 13:35     что и зачем следует, а так же как работет #13
Про работу со второй цифрой я понял. Вся программа бред =) Озвучьте задание дословно
ValeryLaptev
Эксперт С++
1010 / 789 / 46
Регистрация: 30.04.2011
Сообщений: 1,598
03.05.2011, 13:39     что и зачем следует, а так же как работет #14
Цитата Сообщение от mimicria Посмотреть сообщение
Про работу со второй цифрой я понял. Вся программа бред =) Озвучьте задание дословно
Это не к нам. Чел просил откомментить, мы откомментили. Чел все понял, его удовлетворило.
Еще раз: эта функция вводит с клавиатуры последовательность клавиш-цифр и выдает соответствующее целое число (без знака).
Кстати, почти что именно так реализован сам cin...
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.05.2011, 13:44     что и зачем следует, а так же как работет
Еще ссылки по теме:

C++ Как сделать так что бы выводило не -1.#IND
C++ Зачем взятие адреса нулевого элемента массива, если сама переменная и так его содержит?
C++ Вычисление ближайшей точки, что не так? как переделать ?
C++ Что следует учить после C++?
C++ Что следует ЗНАТЬ для начала изучения C++?

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
mimicria
return (true);
 Аватар для mimicria
1956 / 1093 / 91
Регистрация: 19.04.2011
Сообщений: 2,344
03.05.2011, 13:44     что и зачем следует, а так же как работет #15
Цитата Сообщение от kazak Посмотреть сообщение
вы не внимательны, товарищ.
Точно! Более правильной реализацией будет:
C++
1
2
3
 unsigned int ret=0;
 cin >> ret;
 return ret;
Yandex
Объявления
03.05.2011, 13:44     что и зачем следует, а так же как работет
Ответ Создать тему
Опции темы

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